yoooniverse

[운영체제] 쉽게 배우는 운영체제 4장 CPU 스케줄링 (1/2) 본문

운영체제/쉽게 배우는 운영체제

[운영체제] 쉽게 배우는 운영체제 4장 CPU 스케줄링 (1/2)

Ykl 2022. 10. 22. 22:19

01 스케줄링의 개요

스케줄링이란?

여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일

 

CPU 스케줄링의 종류

(1) 고수준 스케줄링(high level) / 장기 스케줄링(long-term) / 작업 스케줄링(job)

프로세스의 활성화 여부 컨트롤하여 시스템 내의 전체 작업 수를 조절하는 것

전체 시스템의 부하를 고려, 시스템 내에서 동시에 실행 가능한 프로세스의 총개수가 정해짐.

(작업 : 운영체제에서 다루는 일의 가장 큰 단위. 1개 또는 여러 개의 프로세스로 이루어짐)

"degree of multiprogramming" : 시스템의 전체 프로세스 수

 

 (2) 저수준 스케줄링(low level) / 단기 스케줄링(short-term)

프로세스의 상태를 미세하게 조절하는 단계(ex_어떤 프로세스에 CPU를 할당, 대기 상태로 보낼지 등을 결정)

아주 짧은 시간에 일어나므로 단기적 특성(short term) 있음

(3장의 프로세스 상태에 관한 내용이 대부분 저수준 스케줄링에 해당)

 

(3) 중간수준 스케줄링(middle level)

활성화된 프로세스를 조절하여 과부하를 막는 역할을 수행

일부 프로세스를 중지 상태로 옮겨서 나머지 프로세스가 원만하게 작동하도록 지원(프로세스의 보류 상태에 해당)

저수준 스케줄링이 원만하게 이루어지도록 하는 완충 역할에 해당

 

스케줄링의 목적

  • 공평성 : 모든 프로세스는 자원을 공평하게 배정받아야 한다.
  • 효율성 : 시스템 자원에 유휴시간이 발생하지 않도록 스케줄링한다. 유휴자원을 사용하려는 프로세스에는 우선권을.
  • 안정성 : 우선순위에 따른 중요 프로그램을 먼저 배정하여 시스템 자원을 파괴하는 프로세스를 막는다.
  • 확장성 : 시스템 자원이 늘어나면 이를 시스템에 반영하여 프로세스를 스케줄링 해야함. 프로세스가 증가해도 시스템의 안정성을 유지.
  • 반응 시간 보장 : 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야.
  • 무한 연기 방지 : 특정 프로세스의 작업이 무기한 연기되면 안됨.

point) CPU 스케줄러는 공평성을 희생해 먼저 처리해야 하는 프로세스를 배정하여 시스템의 안정성과 효율성을 높임

point) CPU 배정 우선순위 : 운영체제 프로세스 >>>>> 일반 프로세스


02 스케줄링 시 고려 사항

선점형 / 비선점형 스케줄링

  선점형 비선점형
작업 방식 실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행할 수 있다. 실행 상태에 있는 작업이 완료될 때까지 다른 작업이 불가능
장점 프로세스가 CPU를 독점할 수 없음.
대화형, 시분할 시스템에 적합(빠른 응답 시간을 요구하므로)
CPU 스케줄러의 작업량이 적음.
문맥 교환의 오버헤드가 적음.
단점 문맥 교환의 오버헤드가 많음. 기다리는 프로세스가 많아 처리율이 떨어짐.
사용 시분할 방식 스케줄러 일괄 작업 방식 스케줄러
중요도 높음 낮음

대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용

 

프로세스 우선순위

우선순위가 높다는 것 == 더 빨리, 더 자주 실행된다는 것

프로세스의 구분 : 커널 프로세스 / 일반 프로세스

커널 프로세스의 우선순위가 일반 프로세스보다 높다

우선순위를 조절하면 해당 프로세스뿐 아니라 다른 프로세스의 실행 속도에도 영향을 미친다.

 

CPU 집중 프로세스 & 입출력 집중 프로세스

프로세스의 실제 작업이 이루어지는 상태 : 실행 상태, 대기 상태

  • CPU 버스트(CPU burst) : CPU를 할당받아 시행하는 작업
  • 입출력 버스트(I/O burst) : 입출력 작업

작업 형태에 따른 프로세스의 구분

  • CPU 집중 프로세스 : CPU 버스트가 많은 프로세스
  • 입출력 집중 프로세스 : 입출력 버스트가 많은 프로세스

시스템의 효율을 향상하기 위해) 입출력 집중 프로세스의 우선순위를 CPU 집중 프로세스보다 높인다.

사이클 훔치기 : 입출력 집중 프로세스가 CPU 집중 프로세스보다 실행 상태에 먼저 들어가는 경우

(입출력 집중 프로세스는 CPU를 잠깐 사용하고 대기 상태로 이동하기 때문에 다른 프로세스가 CPU를 사용할 수 있으므로 우선순위를 높이는 것이다.)

 

전면 프로세스 & 후면 프로세스

  • 전면 프로세스 : 운영체제 화면의 맨 앞에 놓인 프로세스. 현재 입력 출력을 사용하는 프로세스. 사용자와 상호작용이 가능.
  • 후면 프로세스 : 사용자와 상호작용이 없는 프로세스

(티스토리에 글을 적고 있는 지금 전면 프로세스는 티스토리를 띄우고 있는 웹 브라우저일 것이다. 워드도 동시에 실행 중인데 티스토리를 이용하고 있는 지금 워드는 후면 프로세스에 해당한다.)

우선순위 : 전면 프로세스 >>>>> 후면 프로세스

 

위의 내용을 표로 정리

우선순위 높음   우선순위 낮음  
커널 프로세스 ↔︎ 일반 프로세스 프로세스의 종류를 명확히 구분할 수 있으므로 프로세스의 우선순위를 배정 기준으로 사용
전면 프로세스 ↔︎ 후면 프로세스
대화형 프로세스 ↔︎ 일괄 처리 프로세스 어떤 프로세스인지 명확하게 구분할 수 없을 가능성 존재하므로 우선순위를 고려하기 어려울 수 있음
입출력 집중 프로세스 ↔︎ CPU 집중 프로세스

 

Comments