[운영체제] CPU 스케줄링 단계와 목적

2024. 12. 8. 23:32·CS/운영체제

 


 

1. CPU 스케줄링 단계

스케줄링의 단계

 

고수준 스케줄링

  • 장기 스케줄링, 작업 스케줄링, 승인 스케줄링이라고 하기도 한다.
  • 시스템 내의 전체 작업수를 조절한다. 작업은 운영체제에서 다루는 일의 가장 큰 단위로, 1개 또는 여러 개의 프로세스로 이루어진다.
  • 전체 시스템의 부하를 고려하여 어떤 작업을 시스템이 받아들일지 혹은 거부할지를 결정한다.
  • 고수준 스케줄링에 따라 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해진다. => 멀티 프로그래밍 정도

저수준 스케줄링

  • 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정한다.
  • 준비 상태 -> 실행 상태, 실행 상태 -> 대기 상태, 대기 상태 -> 준비 상태 등 프로세스 상태를 변화시키는 것을 예로 들 수 있다.
  • 저수준 스케줄링은 아주 짧은 시간 안에 일어나기 때문에 단기 스케줄링이라고 하기도 한다.

중간 수준 스케줄링

  • 시스템에 과부하가 걸려 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다. 보류된 프로세스는 처리 능력에 여유가 생기면 다시 활성화 된다.
  • 중지(suspend)와 활성화(active)로 전체 시스템의 활성화된 프로세스를 조절하여 과부하를 막는다. 즉, 일부 프로세스를 중지 상태로 옮겨 나머지 프로세스가 원만하게 작동하게 한다.
  • 저수준 스케줄링이 원만하게 이루어지도록 완충(buffer)하는 역할을 한다.

 

2. 스케줄링의 목적

CPU 스케줄링의 원래 목적은 '모든 프로세스가 공평하게 작업하도록 하는 것'이다. 시스템 자원을 효율적으로 배분하여 전체적인 시스템의 성능을 높이고, 프로세스의 개수가 증가해도 성능의 갑작스러운 변화가 없도록 확장성을 고려해야 한다.

  • 공평성: 모든 프로세스가 공평하게 자원을 배정 받아야 한다.
  • 효율성: 시스템 자원이 유휴 시간 없이 사용되도록 해야하고, 유휴 자원을 사용하려는 프로세스에 우선권을 준다.
  • 안정성: 우선순위를 파악해서 중요 프로세스가 먼저 작동하도록 배정하여 시스템 자원을 점유하거나 파괴하는 프로세스로부터 자원을 보호해야 한다.
  • 확장성: 프로세스가 증가해도 시스템이 안정적으로 작동해야 한다.
  • 반응 시간 보장: 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 한다.
  • 무한 연기 방지: 특정 프로세스의 작업이 무한히 연기되어서는 안 된다.

 

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

[운영체제] 프로세스 다중 큐(multiple queue)  (0) 2024.12.13
[운영체제] 스케줄링 시 고려 사항  (0) 2024.12.09
[운영체제] 스레드  (0) 2024.11.27
[운영체제] 프로세스 계층구조  (0) 2024.11.26
[운영체제] 프로세스 제어 블록  (0) 2024.11.25
'CS/운영체제' 카테고리의 다른 글
  • [운영체제] 프로세스 다중 큐(multiple queue)
  • [운영체제] 스케줄링 시 고려 사항
  • [운영체제] 스레드
  • [운영체제] 프로세스 계층구조
초오오이
초오오이
  • 초오오이
    초이
    초오오이
  • 전체
    오늘
    어제
    • 분류 전체보기 (101)
      • PHP (4)
      • Laravel (7)
      • Vue.js (5)
      • CS (73)
        • WEB (1)
        • 컴퓨터 구조 (12)
        • 운영체제 (24)
        • 네트워크 (24)
        • 자료구조 & 알고리즘 (12)
      • etc (6)
        • 자격증 (3)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
초오오이
[운영체제] CPU 스케줄링 단계와 목적
상단으로

티스토리툴바