" Mechanism: Limited Direct Execution " 운영체제가 CPU를 가상화하기 위해서는 물리적인 CPU를 여러 작업이 동시에 실행되는 것처럼 공유해야 합니다. 기본 아이디어는 CPU를 시간을 나눠가며 여러 프로세스에 할당하여 가상화하는 것입니다 (time sharing). 여기에는 두 개의 도전과제가 있습니다. 첫번째로, 가상화를 구현할 때 성능을 최적화해야 합니다. 시스템에 오버헤드를 최소화하는 효율적인 가상화 방법을 고려해야 합니다. 두번째로, CPU를 제어하면서 효율적으로 프로세스를 실행해야 합니다. 운영체제는 프로세스가 영원히 실행되거나 보안에 위협이 되지 않도록 효과적으로 제어해야 합니다. 이를 위해서는 하드웨어와 운영체제의 협력과 지원이 필요합니다. 운영체제 개발자들은 ..
"추상화: 프로세스" 이 장에서는 OS가 제공하는 가장 기본적인 추상화 중 하나인 '프로세스'에 대해 논의한다. 비공식적으로 프로세스의 정의는 실행 중인 프로그램이다. 프로그램은 실행을 기다리는 일련의 명령어(정적 데이터)이다. 디스크에 놓여 있다가, 운영 체제가 이러한 바이트를 가져와 실행하게 함으로써, 프로그램을 유용한 것으로 변환하고 이를 프로세스라 한다. 우리는 한 번에 한 개 이상의 프로그램을 실행하고 싶은 경우가 종종있다. 예를 들어, 데스크톱이나 노트북에서 웹 브라우저, 메일 프로그램, 게임, 음악 플레이어 등을 실행하고 싶을 수 있다. 이때 시스템은 동시에 수십 또는 수백 개의 프로세스를 실행하는 것처럼 보인다. 문제 핵심: 물리적 CPU가 몇 개뿐이다. 그런데 OS는 어떻게 수많은 CPU..