CS/OS

[운영체제/OS] CPU 스케쥴링 - (3)

0. 들어가면서 지난 시간에는 FCFS, RR, SJF 스케줄링 기법에 대해 공부했습니다. 그리고 그 중에서 SJF 스케줄링은 Expected burst time이 가장 작은 작업에 우선순위를 높게 할당하는 방식이라고 설명했는데요. 이번 글은 어떻게 burst time을 추정해야 하는가에 대해 이야기하는 것으로 시작하려고 합니다. 1. CPU Burst time 추정의 한계 CPU burst time을 측정을 위해서는 과거에 이 프로세스가 CPU를 사용했던 시간 기록을 이용하는데요. CPU burst time을 측정하는 크게 두 가지 방법이 있습니다. Simple Average : 이 프로세스의 과거 CPU 사용 시간들에 대해 동일한 Weight를 주는 방식으로 평균값을 구한다. Exponential A..

2021.06.14 게시됨

CS/OS

[운영체제/OS] CPU 스케쥴링 - (2)

0. 들어가면서 지난 글에서는 CPU 스케줄링 정책은 Selection Function과 Decision Mode라는 두 가지 관점에서 설계된다는 것을 보았고, Preemptive, NonPreemptive, Prorirty 등의 개념에 대해 공부했습니다. [운영체제/OS] CPU 스케쥴링 - (1) 1. 들어가면서 CPU 스케줄링은 어떤 프로세스를 어느 시간동안 실행시킬 것인가를 결정하는 과정이라고 생각할 수 있습니다. 스케줄링을 공부하기 이전에 두 가지 용어를 우선 정의하면 좋을 것 studyandwrite.tistory.com 이번 시간에는 여러 가지 CPU 스케줄링 기법들을 하나하나 살펴보고 각 스케줄링 방법의 특징과 장단점들에 대해서 알아보겠습니다. 1. FCFS Scheduling FCFS S..

2021.06.14 게시됨

CS/OS

[운영체제/OS] CPU 스케쥴링 - (1)

1. 들어가면서 CPU 스케줄링은 어떤 프로세스를 어느 시간동안 실행시킬 것인가를 결정하는 과정이라고 생각할 수 있습니다. 스케줄링을 공부하기 이전에 두 가지 용어를 우선 정의하면 좋을 것 같은데요. Nonpreemptive scheduling : 이미 할당된 자원을 다른 프로세스가 빼앗을 수 없는 방식 Preemptive scheduling : Time slice가 소진되었거나 I/O Interrupt, system call 등이 발생하면 현 실행 프로세스로부터 강제로 CPU를 회수하여 프로세스를 스위칭하는 방식 이 두 가지 용어는 앞으로 정말 많이 나올 예정이니, 헷갈리지 않게 잘 알아두면 좋을 것 같습니다. 헌편, 예전에 프로세스의 다섯 가지 상태에 대해서 글을 썼을 때 참고한 그림이 있었습니다. ..

2021.06.14 게시됨