본문 바로가기
Computer Science

[Operating System] Scheduling

by Henry Cho 2022. 3. 4.
728x90

Scheduling


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# 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하는 시간에 집중한다.

 


728x90

댓글