📄️ 제3장: 가상화에 관한 대화
교수 : 이제 운영체제의 세 주제 중 첫 번째 주제인 가상화에 대해 이야기 할 시간이 되었네.
📄️ 제4장: 프로세스의 개념
이 장에는 운영체제가 제공하는 핵심 개념 중 하나인 프로세스(process)에 대해 논의한다. 일반적으로 프로세스는 실행 중인 프로그램으로 정의한다 [VCG65; Han70]. 프로그램 자체는 생명이 없는 존재다. 프로그램은 디스크 상에 존재하며 실행을 위한 명령어와 정적 데이터의 묶음이다. 이 명령어와 데이터 묶음을 읽고 실행하여 프로그램에 생명을 불어넣는 것이 운영체제이다.
📄️ 제5장: 막간: 프로세스 API
여담 : 막간
📄️ 제6장: 제한적 직접 실행 원리
CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다. 기본적인 아이디어는 간단하다. 한 프로세스를 잠시 동안 실행하고 다른 프로세스를 또 잠깐 실행하고, 이런 식으로 계속해서 잠깐씩 실행시키면 된다. 이러한 방식처럼 CPU 시간을 나누어 씀으로써 가상화를 구현할 수 있다.
📄️ 제7장: 스케줄링: 개요
이제 프로세스를 실행시키기 위한 문맥 교환 등의 저수준 기법에 대해서는 분명하게 이해하고 있어야 한다. 그렇지 않다면 한 두 장 이전으로 돌아가서 이러한 기법들이 어떻게 동작하는지에 대한 설명을 다시 읽기 바란다. 운영체제 스케줄러의 고수준 정책에 관해서는 이해가 필요하다. 이제부터 다양한 스케줄링 정책(scheduling policy)을 소개하고 그에 관한 이해를 높일 것이다. 이러한 정책은 원칙(discipline)이라고도 불리며 많은 똑똑하고 부지런한 사람들이 오랫동안 개발한 정책들이다.
📄️ 제8장: 스케줄링: 멀티 레벨 피드백 큐
이 장에서는 멀티 레벨 피드백 큐(Multi-level Feedback Queue, MLFQ)로 알려진 가장 유명한 스케줄링 기법에 대해 논의한다. 멀티 레벨 피드백 큐 (MLFQ) 스케줄러는 Compatible Time-Sharing System(CTSS)에 사용되며 Corbato 등에 의해 1962년에 최초로 소개되었다 [CDD62]. 이 연구와 Multics에 대한 후속 연구로 Corbato는 최고 영예인 Turing Award를 받았다. 이 스케줄러는 수년 동안 다듬어져 일부 현대 시스템에까지 발전되었다.
📄️ 제9장: 스케줄링: 비례 배분
스케줄링 : 비례 배분
📄️ 제10장: 멀티프로세서 스케줄링 (고급)
이 장에서는 멀티프로세서 스케줄링(multiprocessor scheduling)의 기본을 소개한다. 이 주제는 다소 고급에 속하기 때문에 병행성(concurrency) 주제를 어느 정도 깊게 공부한 이후에 다루는 것이 가장 좋다. 병행성은 이 책의 두 번째 주요 내용이다.
📄️ 제11장: CPU 가상화에 관한 마무리 대화
교수: 자, 자네, 무엇을 배웠나?