본문 바로가기

OS

[질문] 프로세스 스케줄링 & CPU 스케줄링

728x90

프로세스 스케줄링 관련 질문

  1. 프로세스 스케줄링이란?
  2. 프로세스 스케줄러에는 어떤 것들이 존재하나요?
  3. 사용자와 시스템 관점에서 어떤 기준을 선호하게 되나요?

 

1. 프로세스 스케줄링이란? 

프로세스가 작업을 수행할 때 언제, 어떤 프로세스에 CPU를 할당할 것인지 결정하는 작업을 의미

기본적으로 멀티 프로그래밍과 시분할에 기반, 메모리 내에 실행 준비된 프로세스 중 하나를 선택해서 CPU 할당 

 

2. 프로세스 스케줄러에는 어떤 것들이 존재하나요?

스케줄러란? 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈 을 지칭 

세가지 종류가 존재. (장기 / 중기 / 단기 스케줄러 존재)

 

장기 스케줄러의 경우 어떤 프로세스를 준비 큐에 넣을 것인지 결정

중기 스케줄러는 메모리에 적재된 프로세스의 수를 관리 

단기 스케줄러는 어떤 프로세스(= 준비상태의)에게 CPU를 할당해 줄 것인가를 결정 

 

3. 사용자와 시스템 관점에서 어떤 기준을 선호하게 되나요?

스케줄링 알고리즘을 평가하는 기준에는 대기시간, 응답시간, CPU 처리량, CPU 이용률 등이 있다.

 

사용자 관점에서는 응답시간이 빠를 수록,

시스템 관점에서는 CPU 처리량이 많은 스케줄링을 선호한다. 

 

 


CPU 스케줄링 관련 질문

  1. CPU 스케줄링이란?
  2. CPU 스케줄링은 언제 발생하는가?
  3. CPU 스케줄링의 종류를 설명해보세요
  4. 선점 스케줄링과 비선점 스케줄링의 차이점은?
  5. 선점형 방식과 비선점형 방식의 기존 스케줄링의 단점과 보완점

 

1. CPU 스케줄링이란?

시분할 시스템에서 현재 실행 중인 프로세스에서 다른 프로세스로 CPU를 넘겨야할 때 준비 큐에 있는 프로세스 중에서 어떤 프로세스를 선택할지에 대한 방식/기준 

 

CPU를 사용하려고 하는 프로세스 사이의 우선순위를 관리하는 작업

 

 

2. CPU 스케줄링은 언제 발생하는가?

  • 실행 상태에 있던 프로세스가 I/O 요청 등으로 인해 Block 상태가 되는 경우
  • 실행 상태에 있던 프로세스가 타이머 인터럽트 발생에 의해 준비 상태로 되는 경우
  • I/O 요청으로 Block 상태에 있던 프로세스의 I/O 작업이 완료되어 인터럽트가 발생하고 그 결과 프로세스의 상태가 준비 상태로 바뀌는 경우
  • CPU에서 실행 상태에 있는 프로세스가 종료되는 경우 

 

(참고)

프로세스 생명 주기는 아래와 같다.

 

3. CPU 스케줄링의 종류

프로세스가 실행 중일 때 CPU를 빼앗을 수 있는가에 따라서 선점/비선점으로 나눌 수 있다.

 

비선점형

  • FCFS(= FIFO)
    프로세스가 대기 큐에 도착한 순서대로 CPU를 할당 
  • SJF
    프로세스가 도착한 시점에 따라서 그 당시에 가장 작은 서비스 시간을 갖고 있는 프로세스에게 CPU 할당
  • HRRN
    대기 중인 프로세스 중 현재 응답률이 가장 높은 프로세스에 CPU를 할당 
    (*응답률 = 대기시간 + CPU 요구량 / CPU 요구량)

 

선점형

  • RR
    FCFS 방식을 기반으로 프로세스마다 같은 크기의 CPU 시간을 할당 
  • 다단계큐
  • 다단계 피드백 큐 

 

4. 선점 스케줄링과 비선점 스케줄링의 차이점은?

현재 프로세스가 진행 중일 때 CPU를 선점할 수 있는가(= 빼앗을 수 있는가)

같은 말로, 진행 중인 프로세스가 자발적으로 CPU를 반납할 때까지 기다리는가/아닌가로 구분할 수 있다.

 

 

5. 선점형 방식과 비선점형 방식의 기존 스케줄링 단점과 보완점

(준비중)

'OS' 카테고리의 다른 글

[운영체제] 인터럽트  (0) 2022.09.11
동기 VS 비동기 (+ Blocking VS Non-Blocking)  (0) 2022.09.06
CPU 스케줄링  (0) 2022.09.05
프로세스 스케줄링  (0) 2022.09.05
[질문] 프로세스, 쓰레드  (0) 2022.08.29