flow-vector
article thumbnail
CPU 가상화(2) - 스케줄러(1)

스케줄링 정책 지금까지는 CPU 가상화를 구현하는 저수준의 기법인 “제한적 직접 실행”에 대해 알아 보았다. 제한적 직접실행을 통해 프로세스간 전환이 되는 과정(문맥 교환)을 이해하고 어떻게 운영체제의 주도하에 시스템(물리 장치들)을 관리 할 수 있는지 알 수 있었다. 그렇다면 운영체제는 어떤 원칙을 통해 프로세스를 전환할까? A 프로세스 실행중 타이머 인터럽트가 발생 했다. 수많은 프로세스중 어떤 프로세스로 전환할까? 운영체제는 특정한 원칙을 가지고 있고 이를 “스케쥴링 정책” 이라고 한다. 아래의 질문을 통해 어떻게 정책들이 발전해 왔는지 알아보고자 한다. 핵심 가정은 무엇일까? 어떤 평가 기준으로 정책을 평가할 수 있을까? 핵심 가정 아래의 가정들은 비현실적이긴 하지만 차차 가정을 줄여 나가면서 최..

article thumbnail
CPU 가상화(1) - 제한적 직접 실행(Limited Direct Execution)

"운영체제 : 아주 쉬운 세가지 이야기"를 읽으면서 핵심 내용을 정리하였습니다. 이화여대 반효경 교수님의 운영체제 강의를 듣고 복습 차원에서 책 한권을 완독해 보고자 합니다. 잘못된 정보가 있다면 댓글 남겨주시면 감사하겠습니다! 제한적 직접 실행 (Limited Direct Execution) CPU 가상화를 구현하기 위한 핵심적인 기법 직접 실행만으로는 부족한가? 프로세스가 CPU에 올라가서 실행되는 것을 직접 실행이라고 하는데, 어떤것이 부족해서 직접 실행에 '제한' 이라는 키워드가 붙게 되었을까? 우선 "직접 실행" 시 운영체제가 하는 일에 대해서 먼저 알아보자. 직접 실행 시 운영체제가 하는 일 실행하려는 프로그램을 프로세스 리스트에 추가한다. 프로그램을 위한 메모리를 할당한다. 프로그램을 메모리..