초코딩(chocoding)

CPU의 스케줄링이란? / 선점형 스케줄링과 비선점형 스케줄링 본문

[혼공컴운] 혼자 공부하는 컴퓨터 구조와 운영체제

CPU의 스케줄링이란? / 선점형 스케줄링과 비선점형 스케줄링

sweetychocoding 2024. 4. 4. 14:45
728x90

선점형 스케줄링과 비선점형 스케줄링을 알아보기 전에

CPU의 스케줄링에 대해 알아보아야 한다.

 

CPU의 스케줄링이란?

=> 프로세스가 작업을 수행하려면 스케줄러로부터 CPU를 할당 받아야 한다.

     CPU 스케줄러는 ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할 지 결정한다.

 

CPU 스케줄링을 각 프로세스에게 공평하게, 또 효율적이게 하기 위해서 고려해야 하는 사항들이 있다.

 

 

- 선점형 스케줄링과 비선점형 스케줄링

=> 선점(preemptive)이란 "빼앗을 수 있음"을 말한다.

즉, 선점과 비선점 스케줄링 방식은 어떤 프로세스가 CPU를 할당 받으면

이를 운영체제가 강제로 회수할 수 있는 스케줄링 방식인 지, 아닌 지에 대한 내용이다.

 

1. 선점형 스케줄링

-> 실행 상테에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있다.

-> 우선순위가 높은 프로세스를 먼저 수행할 때 유리하고

     빠른 응답 시간을 요구하는 대화식 시분할 시스템에 유용하다.

-> 많은 오버헤드(overhead)를 초래한다.

     (* overhead : 프로그램의 실행 흐름에서 나타나는 현상 중에 하나로, 특정 기능을 수행하는데 드는 간접적인 시간, 메모리 등 자원을 말함)

 

 

2. 비선점형 스케줄링

-> 어떤 프로세스가 실행 상태에 들어가면 그 프로세스가 끝나거나

    CPU를 자진 반납하는 경우가 아니라면 계속 실행되는 것을 말한다.

-> 응답 시간을 예측할 수 있고 일괄 처리 방식이 적합하다.

-> 모든 프로세스에 요구에 대해 공정하다.

-> context switch에 대한 오버헤드도 없고 스케줄러가 할 일도 적어져 효율적일 수 있으나

    전체 시스템의 처리율이 떨어지게 된다.

728x90