### Multilevel Queue ### : priority queue를 수행할 때 ready queue를 여러개 두어 process 관리/검색하기 쉽다. : 구현 복잡도는 증가한다 1. : 각 입력된 process가 process에 맞는 queue에 할당이 되면 그 process가 끝날때까지 영원히 해당 queue에 대기를 타는 형식 => 융통성이 없지만 관리하기 좋다. : Process 유형에 따라 process를 별도의 queue로 분할 합니다. : Heterogeneous processes(이질 process)는 서로 다른 성능 요구사항과 일정 요구 사항을 갖습니다. : 각 대기열에는 자체 예약 정책이 있습니다. : 체계적이고 조직적인 scheduling 관리 방법 : 입력된..
### Priority Scheduling ### : 우선순위가 process에 할당 되고 우선순위에 따라 cpu할당하는 방식(SJF...) : 우선순위가 같으면 FCFS랑 같다 : SJF는 우선순위가 cpu burst의 역수인 경우입니다 (cpu burst가 클수록 우선순위가 낮습니다.) : Preemptive(선점) / Non-preemptive(비선점) scheduling : priority를 얼마나 잘 반영하느냐가 중요한 성능 지표 1. : 우선순위가 낮은 process는 cpu를 할당 받지 못할 수도 있습니다. (높은 우선순위 process만 cpu 독점) => 무기한 차단(계속 우선 순위가 높은 process만..
### Round Robin[RR] Scheduling ### : process사이에 우선순위를 두지 않고, 순서대로 시간단위(time quantum)로 cpu를 할당하는 방식 (각 process는 사전 정의된 cpu time(time quantum, time slice) 동안 cpu를 할당합니다.) : fifo(first input first output) queue를 사용한다.(준비 대기열은 circular queue를 사용합니다.) : time quantum은 일반적으로 10~100msec입니다. : scheduler은 ready queue를 돌고 각 process에 1time quantum씩 cpu를 할당한다.(골고루 자원을 나눠주는 방식) : 미리 정해진 time quantum..
### Scheduling Algorithm ### : 성능을 최적할 수 있는 방법 • Maximize CPU utilization. • Maximize throughput. • Minimize turnaround time. • Minimize waiting time. • Minimize response time. 1. : ready queue에 먼저 들어온 process가 먼저 cpu를 할당 받는 것 : FIFO(First input, First output) 대기열로 관리 됩니다. : Non-preemptive scheduling(비선점성) : 간단하고 구현하기 쉽다. 1. process가 ready queue(fifo)에 삽입되면 process의 PCB가 queue의 tail에..
### Dispatcher ### : cpu scheduler가 scheduling을 수행할때 동반되는 module : ready queue의 scheduler가 선택한 process에 cpu 코어를 할당하는 것 : process에서 process로 context 전환 : kernel mode에서 user mode로 전환 : 중지된 작업을 재개하기 위해 사용자 프로그램에서 올바른 위치로 이동(jumping 작업) (얼마나 자주 dispatching rating, context switching이 일어나는 것이 전체 시스템 성능에 영향을 미친다) : dispatcher가 한 process를 중지하고 다른 p..
### CPU scheduling이 필요한 이유 ### : multiple process, limited resources에서 cpu 자원을 잘 할당 하여 시스템 수준을 끌어 올리기 위해서 (cpu 코어에서 한 번에 하나의 프로세스만 실행 할 수 있습니다.) : cpu가 idle이 될 때 마다 ready queue에서 프로세스 중 하나를 선택합니다. : ready queue의 프로세스 중 어떤 프로세스를 running queue로 만들 것인가(cpu를 할당 할 것인가) => i/o등과 같은 자원을 사용할 수 없어 다른 process의 실행이 ready 상태인 동안 한 process가 cpu를 사용할 수 있게 하는 프로세스로 cpu를 최대한 활용하게 하는 것 1. When a ..
1. Many-to-One Model : 여러 user thread + one kernel thread : 여러 thread를 병렬로 실행 할 수 없습니다.(1개씩) : one thread blocking은 모두 block합니다. 2. One-to-One Model : user thread와 같은 수의 kernel thread : user thread의 개수가 많은 경우에 overhead가 발생한다 => 성능 문제 발생 : window, linux에서 사용 3.Many-to-Many Model : Many-to-One Model + One-to-One Model : parallellism을 할 수 있으며 많은 수의 thread의 수를 받아들일 수 있습니다. : 구현하기 어렵습니다.