Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
Computer Science/운영체제

5. CPU 스케줄링

by Toughie 2023. 8. 29.

🖥️ CPU 스케줄링 🖥️ 

운영체제가 CPU를 어떻게 관리할까?

CPU 사용이 필요한 프로세스들이 차례로 돌아가며 사용하는 것이 가장 공정한 스케줄링일까?

프로세스마다 우선순위가 다르다는 점을 생각해보자.

입출력 작업이 많은 프로세스 (io bound) -> 프로세스가 대기 상태에 머무르는 시간이 많음(이 때는 CPU 안 씀)

그래서 입출력 작업이 많은 프로세스를 먼저 실행시키고(어차피 금방 대기 상태에 머물러서 CPU를 안 쓸테니)

이후에 CPU 집중 프로세스를 실행해서 CPU를 많이 쓰는것이 효율적

스케줄링 큐

다음으로 CPU를 사용시킬 프로세스의 PCB를 모두 살펴보는 것은 비효율적이다.

스케줄링 큐는 반드시 선입선출(FIFO) 방식일 필요는 없음

 

 

같은 큐 내부에서도 우선순위별로 처리됨.

선점형(preemptive) 스케줄링, 비선점형(non-preemptive) 스케줄링

선점형 스케줄링(우선순위에 따라 선점 가능형으로 이해하면 좋음)

- 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유 가능.

- 비교적 응답이 빠르다는 장점, 처리 시간을 예측하기 힘들고 높은 우선순위 프로세스들이 계속 들어오는 경우 오버헤드 발생.

- 어느 한 프로세스의 자원 독점을 막고(시간 지나면 나와야 되니까), 프로세스들에 골고루 자원을 배분할 수 있음.

but context switching 즉 문맥 교환 과정에서 오버헤드가 발생할 수 있음.

 

비선점형 스케줄링 (선점 못함 기다려)

 

- 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식.
(자원 독점의 위험)
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있지만, 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기해야할 수도 있다.

(처리시간 편차가 적은 특정 프로세스 환경에 용이)

 

학습 출처: https://www.youtube.com/watch?v=bls_GjX-4U8&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl 

 

'Computer Science > 운영체제' 카테고리의 다른 글

7. 동기화(synchronization)  (0) 2023.09.02
6. CPU 스케줄링 알고리즘  (0) 2023.08.30
4. 스레드  (0) 2023.08.29
3. 프로세스 상태와 계층 구조  (0) 2023.08.28
2. 프로세스 개요  (0) 2023.08.27