전체 글 15

WSL에서 커널 컴파일하기

서론 WSL(Windows Subsystem for Linux)은 리눅스 시스템을 NT커널에 탑재하여 리눅스의 주요 기능을 사용할 수 있는 시스템이다. WSL1이 리눅스를 NT커널에서 드라이브를 통해 돌리는 반면, WSL2는 Hyper-V기술을 이용해 진짜 리눅스 커널을 탑재했다. 위 그림을 보면 리눅스커널이 Hyper-V위에서 NT 커널과 함께 병렬적으로 돌아간다는 것을 확인할 수 있다. wsl2에서는 윈도우 C 드라이브를 /mnt/c에 마운트해서 사용자 파일을 접근하는 것도 가능하다. 커널 컴파일 하기 우선 이 실습은 wsl2에서 진행된다. wsl version1을 사용중이라면 wsl2로 업데이트 하고 실습해야한다. wsl2에서는 실제 리눅스 커널을 탑재했으니 커널 컴파일도 가능하다. 단, wsl2에..

7. Scheduling: Introduction

서론 파트 6에서 cpu에서 돌아가는 프로세스를 바꿀때 os의 역할이 무엇이고 어떤 일이 벌어지는지 살펴봤다. 이번 파트에서는 os가 어떤 기준으로 다음 프로세스를 스케쥴링 하는지 한번 살펴보자 Workload Assumptions 이번 파트의 내용을 이해하기 위해서는 몇가지 가정이 필요하다 1. 각각의 작업은 같은 시간동안 수행된다. 2. 모든 작업은 cpu에 같은 시간에 도착한다. 3. 각각의 작업은 끝날때까지 멈추지 않고 동작한다. 4. 모든 작업은 I/O같은 동작 없이 cpu만 사용한다. 5. os는 각각의 작업의 총 수행시간을 알고있다. Scheculing Metrics 운영체제의 스케쥴링 성능을 측정하는 기준을 scheduling metric이라고 부른다. 그 중 하나인 turnaround t..

6. Mechanism: Limited Direct Execution

서론 프로세스는 CPU위에서 돌아간다. 프로세스의 수 만큼의 CPU가 없기 때문에 time sharing을 통해서 CPU가상화(virtualization)를 구현한다. 이 가상화를 구현할 때 성능(performance)은 최대한 유지하면서 프로세스를 제대로 제어(control)할 수 있어야 한다. Basic Technique: Limited Direct Execution Problem #1: Restricted Operations 우선 limited direct execution과 반대의 개념인 directed execution을 알아보자. directed execution는 프로세스를 CPU위에서 바로 돌리는 것이다. 프로세스가 CPU를 직접 사용하니 이 방법을 사용하면 프로그램의 성능이 높아진다는 장..