### 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의 수를 받아들일 수 있습니다. : 구현하기 어렵습니다.
### Thread ### : 프로세스가 할당받은 자원을 이용하는 실행의 단위 : thread ID, PC(program counter), register set, stack으로 구성된다. : 여러 기능을 담당하는 module 들로 세밀하게 분할 할 수 있는 단위 => process(프로그램 하나를 돌리는 것)에서 여러 thread가 공통 code/ data/ os resource(open files and signal)을 공유합니다. 1. Singlethreading : traditional processes에서 사용된다. : request가 도착 할 때마다 새로운 process를 생성한다. 2. Multithreading : 하나의 process에서 운용하는 둘 이상의 thr..