분류 전체보기

이해에 도움이 되었던 참고 페이지 https://web.stanford.edu/class/cs140/projects/pintos/pintos_7.html#SEC131 MLFQS 목표 반환 시간의 최적화 | 짧은 시간을 먼저 실행시키자! 그런데 실행 시간의 정보를 어떻게 알 수 있지? 응답 시간의 최적화 이 목표를 이루려면 프로세스에 대한 정보가 필요하다. 따라서 실행 중인 작업의 특성을 알아내고 스케쥴링에 사용하자. 특징 우선순위(priority level)이 다른 여러 개의 큐로 구성되고, 높은 우선순위를 가진 큐에 존재하는 작업이 선택될 가능성이 높다. 각각의 큐엔 둘 이상의 작업이 존재할 수 있고, Round Robin 스케쥴링 알고리즘이 사용되어 작어이 처리된다. 우선순위를 작업의 특성에 따라 동..
Implement priority scheduling and priority donation in Pintos. 실행 중인 스레드보다 우선순위가 높은 스레드가 ready list에 추가될 때 어떻게 해야 하는가? Donation ? | Priority Inversion 높은 우선순위를 가진 H가, 낮은 우선순위의 L이 가진 공유 자원(lock, acquired)을 사용해야 하는데 하지 못하고 대기할 때 우선순위 반전 현상이 발생한다. 아래 도표에서처럼, H는 blocked되어 대기 상태로 존재한다. 그런데 H가 대기하고 있는데 중간 우선순위를 가진 H가 ready list에 있다면, H는 또다시 밀린다. 즉, H가 밀리는 '반전 현상' 이 발생한다. 어떻게 해결할까? 높은 우선순위를 가진 스레드가 낮은 ..
Context Switching 문맥 교환 CPU에서 프로그램 실행을 잠시 중단하고 다른 프로그램을 실행하는 것 현재 실행중이던 프로세스가 (어떤 이유에서건) 중단되었때 행하는 기법이다. 만약 OS가 현재 실행중인 프로세스를 멈추고 다른 프로세스를 실행해야 할 때 실행한다. 먼저, 해당 프로세스의 레지스터값들을 저장한다. 나중에 해당 프로세스가 다시 CPU에 올라왔을 때, 이 레지스터값들을 복원하여(에를 들어 해당 값을 실제 물리 레지스터에 다시 저장함으로써) 일시정지 하였던 부분부터 재실행한다. 이 문맥 교환 시 만약 interrupt 등이 발생하면 곤란하므로 os는 인터럽트를 비활성화(불능화) 하거나, lock을 사용해 동시성 문제를 예방한다. Scheduling이란? 운영 체제가 실행해야 하는 여러..
J융
'분류 전체보기' 카테고리의 글 목록 (10 Page)