본문 바로가기
컴퓨터공학/운영체제

5. 프로세서 스케쥴링

by meow0110 2024. 6. 12.

■ 스케쥴

시스템의 목표를 달성할 수 있도록 프로세서를 할당하는 일련의 과정을 의미한다. 좋은 스케쥴링은 프로세서의 효율성을 높이고 시스템의 작업 처리 능력을 향상시키며 작업의 응답시간을 최소화한다. 그리고 스케쥴링은 각 프로세스의 실행 여부를 결정하기 때문에 시스템 성능에 영향을 미친다.

 

■ 스케쥴링 목적1

- 단위시간당 처리량 최대화 :  유휴 시간을 최소화 한다는 뜻

- 적절한 반환시간 보장 : 프로세스가 시작해서 끝날 때까지 걸리는 시간

- 오버헤드 최소화 : CPU에서 과부화 발생시, 자원이 낭비된다. 이 과부화를 없애기 위해서는 자원이 필요하다. 그래서 스케쥴링이 필요한 것이다.

- 자원 사용의 균형 유지 : 시스템 내에 자원들이 유휴시간이 없도록 만들어야한다. 즉 낭비없이 계속해서 자원을 돌리는 것이다. 어떤 자원은 일하고, 어떤 자원은 계속 쉬고, 이런 것이 아니라 모두 골고루 계속 일하도록!

 

■ 스케쥴링의 목적2

- 반환시간(응답시간)과 자원의 활동 간에 균형 유지 : 가용가능한 자원을 프로세스에, 얼마나 밸런스있게 줄 것인가!

- 실행 대기 방지 : 실행이 대기 되는 걸 방지, 지연방지, 딜레이 방지, 에이징(프로세스 순가 뒤로 밀리는 현상)

- 서비스 사용 기회 확대 : 페이지 부재율이 높은 프로세스보다는, 페이지 부재율이 적은 프로세스에 먼저 서비스를 빨리 제공하는 것이 효과적이다. 

*페이지 부재율 : 여기서 페이지는 메인메모리를 일정한 크기로 자른 것을 말함. 이때 프로세스들이 이 자른 공간의 메모리를 참조한다. 그런데 참조할려하는 페이지가 없을 경우가 생긴다. 이를 페이지 부재율이라 한다.  

- 서비스 수 감소 방지 : 시스템의 부하가 많이 걸린 경우, 갑자기 서비스 수가 감소하게 된다. 그러면 문제가 생긴다. 그래서 급격한 감소를 방지해주는 기능이 있다.

 

■ 프로세스 스케쥴링의 결정 기준

- 버스트 시간 : 실행 시간

 

■ CPU 스케쥴링의 성능 기준 : CPU 이용률, 처리율, 반환 시간, 대기 시간, 반응 시간이 성능 기준이 된다.

 

-인터럽트 : 프로그램 수행 중 정전이 일어난 것, 리눅스 작업 중에 관리자가 강제적으로 수행을 못하게 함. 인터럽트가 걸리면 현재 작업은 중단이 된다.

 

■ 반환 시간, 대기 시간 : 둘다 최소화 되야 한다.

 

■ 반응 시간 : 최소화 되야 좋다.

 

■ 응답시간 : CPU 사용 도중, 데이터를 먼저 출력해야하는 경우를 말함. (응답이 바로바로 이뤄져야하는 경우)

■ 반환시간 : 작업의 시작부터 끝! 참고로 반환시간이 곧 응답시간일수도 있다. (데이터를 출력하면 끝나면 그게 반환시간이니까)

 

 

■ 1단계 : 작업 스케쥴링(승인 스케쥴링 / 장기 스케쥴링)  작업 선택!

- 어떤 작업에게 시스템의 자원들을 차지할 수 있도록 할 것인가를 결정하는 단계를 의미한다.

 

■ 2단계 : 작업 승인 및 프로세서 결정 스케쥴링 (중기 스케쥴링이라고도 함)

 

■ 3단계 : 프로세서 할당 스케쥴링 (디스패칭) (단기 스케쥴링이라고도 함)

 

■ 스케쥴링을 단계별로 나눠보자. (상위, 중위, 하위)

■상위 = 1단계 (선택!)

 

■ 중위 = 2단계 (승인 및 결정)

■ 하위 = 3단계 (할당!)

 

■ 스케쥴링 단계

 

■ 프로세스 상태 변화와 스케쥴러의 역할 구

 

■ 스케쥴링의 방법별 분류

 

■ 선점 

-뺏을 수 있는 것. A가 CPU를 쓰고 있음. 근데 B가 우선순위가 높으면 CPU 자원을 뻇을 수 있음.

 

 

■ 선점 스케쥴링의 단점

 

■ 비선점 스케쥴링

-뺏을 수 없다!

-한번 사용하면 뺏을 수 없기에 응답시간을 알 수가 있다.

 

 

 

 

학습 정리

 

스케쥴링의 개념과 목적

  • 개념
    • 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정한다.
    • 자원이 프로세서인 경우를 프로세서 스케줄링, 대부분의 스케줄링이 프로세서 스케줄링 의미한다.
  • 목적
    • 자원 할당의 공정성 보장하고 단위시간당 처리량 최대화한다.
    • 적절한 반환시간과 예측 가능성을 보장하고 오버헤드 최소와 및 자원 사용의 균형을 유지한다.
    • 반환시간과 자원의 활용 간에 균형 유지하고 실행 대기를 방지한다.
    • 우선순위 및 서비스 사용 기회 확대하고 서비스 수 감소를 방지한다.

 

  • 스케쥴링의 결정 기준과 성능 기준
    • 결정 기준
      • I/o 바운드와 CPU 바운드 프로세스의 적절한 혼용이다.
      • 프로세스의 작업 형태, 프로세스 페이지 부재율, 프로세스의 자원 선점율, 프로세스의 버스트 시간, 프로세스의 버스트 시간, 프로세스의 잔여 실행 시간을 고려한다.
    • 성능 기준
      • CPU 이용률은 프로세서를 실행상태로 항상 유지하여 유휴상태가 되지 않도록 한다.
      • 처리율은 단위 시간당 완료되는 작업 수가 많도록 짧은 작업을 우선 처리하거나 인터럽트 없이 작업을 실행한다.
      • 반환 시간은 작업이 시스템에 맡겨져서 메인 메모리에 들어가기까지의 시간, 준비큐에 있는 시간, 실행시간, 입출력시간 등 작업 제출 후 완료되는 순간까지의 소요 시간이 최소화되도록 일괄 처리 작업을 우선 처리한다.
      • 대기 시간은 작업의 실행 시간이나 입출력 시간에는 실제적인 영향을 미치지 못하므로 준비큐에서 기다리는 시간이 최소화되도록 사용자 수를 제한한다.
      • 반응 시간은 의뢰한 시간에서부터 반응이 시작되는 시간까지의 간격이다.

 

스케쥴링의 기능별 분류

  • 단계별 분류
    • 상위 단계 스케쥴링은 어떤 작업에게 시스템의 자원들을 차지할 수 있도록 할 것인가를 결정한다.
    • 중간 단계 스케쥴링은 짧은 순간에 프로세스들에 대한 일시적인 활동의 중단 및 재개를 수행한다.
    • 하위 단계 스케쥴링은 어떤 준비완료 프로세스에게 중앙처리장치를 할당할 것인가를 결정한다.
  • 방법별 분류
    • 선점 스케줄링은 프로세스 하나가 장시간 동안 프로세서 독점 방지하여 모든 프로세스에 프로세서를 서비스할 기회 늘린다. 따라서 우선순위가 높은 프로세스들이 긴급 처리 요청할 때 유용하다.
    • 비선점 스케줄링은 실행 시간이 짧은 프로세스(작업)가 실행 시간이 긴 프로세스(작업)를 기다리는 대신 모든 프로세서 공정을 관리한다.

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

7. 병행 프로세스  (1) 2024.07.03
6. 스케쥴링 알고리즘  (0) 2024.06.25
4. 스레드의 개념  (1) 2024.05.26
3. 프로세스의 개념  (0) 2024.05.26
2. 운영체제의 기능과 서비스  (1) 2024.05.22