Scheduling
포스트 난이도: HOO_Middle
# Scheduling
Scheduling(스케줄링)란 2개 이상의 Processes들이나 Threads들로부터 작업 수행에 대한 순서를 정해주어 CPU가 효율적으로 운영될 수 있도록 해주는 것을 의미한다.
한마디로 우리가 계획표를 작성하듯이 제한된 CPU를 가지고 여러 프로세스나 스레드가 작업을 나눠서 수행할 수 있도록 일정을 정해주는 걸 의미한다.
여기서 유의할 점은 Process나 Thread가 말하는 Scheduling은 비슷한 개념이지만 다소 차이점을 가지고 있다.
# Scheduler, Scheduling Algorithm
Scheduling에는 Scheduler와 Scheduling algorithm에 대한 개념을 정확히 이해해야 한다.
- Scheduler: OS component가 Scheduling에 대한 결정을 하는데 이것을 Scheduler라고 한다.
- Scheduling algorithm: Scheduler가 사용하는 알고리즘을 말한다.
# Scheduling이 필요한 이유
Scheduling은 새로운 Process를 생성하거나 기존 Process를 종료할 때 필요하다.
또한 Process blocks들을 I/O할때 Semaphore를 하기 위해서 필요하다.
Scheduling은 Processes들이 blocked되어 I/O가 실행되기 전에 wait 상태를 만들 때에도 필요하다.
마지막으로 Scenarios도 Scheduling이 필요하다.
# CPU-bound, I/O-bound
bound에는 CPU와 I/O bound가 있다.
Compute-bound 또는 CPU-bound라고 불리는 bound는 computing하는데에 시간을 많이 쓴다.
반면에 I/O bound는 I/O를 하기 위해서 wait하는 시간에 집중한다.
'Computer Science' 카테고리의 다른 글
[Automata] Automata란? (0) | 2022.03.07 |
---|---|
[Operating System] Preemptive Scheduling Algorithm (0) | 2022.03.04 |
[Operating System] OS Structure (0) | 2022.03.04 |
[Operating System] System Calls Example Tables (0) | 2022.03.04 |
[Operating System] Shell과 System Call: Prompt, POSIX (0) | 2022.03.04 |
댓글