07. [혼공컴운]4주차_chapter. 11 CPU스케줄링

hyewoon·2024년 1월 26일
0

4주차 (1/22 ~ 1/28)
chapter. 09 : 운영체제 시작하기
chapter. 10 : 프로세스와 스레드
chapter. 11 : CPU스케줄링

chapter 11. CPU스케줄링

➡️ 운영체제의 핵심기능 2 : 자원할당-CPU


CPU스케줄링이란?
운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것으로, 우선순위를 기준으로 프로세스 실행 순서 정하는 것

우선순위
: 일반적으로 입출력 집중 프로세스CPU 집중 프로세스보다 우선순위가 높다.
: PCB에 우선순위 저장해 놓는다.

프로세스는 CPU와 입출력장치를 모두 사용하며 실행됨 다른말로 실행 상태대기상태를 반복하며 실행됨

  • 입출력 집중 프로세스
    : 비디오재생, 디스크 백업 작업등 입출력작업에 많은 프로세스
    : 실행상태 < 대기상태

  • CPU 집중 프로세스
    : 연산, 컴파일 같은 CPU 작업 많은 프로세스
    : 실행상태 > 대기상태

    ➡️ 일반적으로 CPU작업속도보다 입출력장치 작업 속도가 느리니까, 입출력집중프로세스 먼저 실행(CPU할당)해 입출력작업 하는 동안(대기상태), CPU집중프로세스가 CPU할당 받아 실행 된다.

CPU이용하는 이용작업을 CPU버스트(CPU burst), 입출력장치 기다리는 작업을 입출력버스트(I/O burst)라고 하기도 한다.

스케줄링 큐

스케줄링 큐(scheduling queue)란?
PCB에 프로세스 우선순위 적혀있지만 운영체제가 일일이 모든 프로세스 PCB 뒤지는 것은 비효율적 그래서 프로세스들을 큐(queue)라는 작업공간에 넣어 관리한다.

큐(queue) 일반적으로 먼저 삽입된 데이터가 먼저 나가는 선입선출방식

  • 프로세스 상태에 따라, 작업 큐(메모리 할당 대기), 준비 큐(CPU할당 대기), 대기 큐(입출력작업 대기) 등이 있다.

  • 프로세스 상태 다이어그램을 큐에 적용

스케줄링 방식

선점(preemptive)?
- 남보다 앞서서 차지함'을 의미

  • 선점형 스케줄링
    • 프로세스가 자원 사용중이더라도 운영체제가 그 자원을 강제로 뺏어서 다른 프로세스에게 할당할 수 있는 스케줄링 방식
    • 어느 한 프로세스가 자원을 독점할 수 없는 방식
  • 비선점형 스케줄링
    • 한 프로세스가 자원을 독점할 수 있는 방식
    • 한 프로세스가 자원 활용중이라면 다른 프로세스는 작업이 끝날때까지 기다려야 한다.

CPU스케줄링 알고리즘

📌 준비큐를 어떻게 관리하는지에 따라

선입선처리스케줄링

  • FCFS 스케줄링(First Come First Served Scheduling)
  • 준비큐에 들어온 순서대로 프로세스 처리하는 방식
  • 비선점형스케줄링 방식
  • 작업시간이 긴 프로세스 먼저 처리되면 다른 프로세스는 계속 기다려야 하는 '호위 효과(convoy effect)'발생

최단 작업 우선 스케줄링

  • SJF 스케줄링(Shortest Job First Scheduling)
  • 선입선처리스케줄링에서 발생하는 호위효과 방지
  • 작업시간 짧은 프로세스부터 실행하는 방식

라운드 로빈 스케줄링

  • 선입선처리 스케줄링 방식에 타임 슬라이스 개념 더한 방식
  • 타임 슬라이스 : 각 프로세스가 CPU 사용할 수 있는 정해진 시간
  • 정해진 타임 슬라이스 시간 만큼 돌아가면서 CPU이용
  • 비선점형 스케줄링
  • 문맥교환 발생

타임슬라이슬의 크기가 중요
너무 작으면 문맥교환 너무 빈번히 일어남
너무 크면 선입선출방식과 다를 바 없음(호위효과 발생)

최소 잔여 시간 우선 스케줄링

  • SRT 스케줄링(Shortest Remaining Time Scheduling)
  • 최단작업우선 + 라운드 로빈 스케줄링
  • 작업시간 짧은 프로세스부터 타임 슬라이스 만큼 CPU 사용

우선순위 스케줄링

  • Priority Shceduling
  • 프로세스에 우선순위 부여하고 우선순위 높은 프로세스부터 실행
  • 우선순위가 낮은 프로세스는 계속해서 기다려야 하는 기아현상(startvation)발생
  • 오랫동안 기다린 프로세스 우선순위 높이는방식인 에이징(aging)이용해 기아현상 방지

다단계 큐 스케줄링

- multilevel queue shceduling - 우선순위 스케줄링 발전된 형태 - 우선순위 별로 준비 큐를 여러개 사용하는 방식 - 큐를 여러개 두어 유형별로 우선순위 구분하여 실행하는 것에 유리 - 프로세스는 큐 사이를 이동할 수 없음

다단계 피드백 큐 스케줄링

  • 가장 일반적인 CPU 스케줄링 알고리즘
  • 프로세스들이 큐 사이를 이동할 수 있음
  • CPU 집중 프로세스들은 우선순위가 낮아지고(타임 슬라이스에 따라 실행되고, 나머지 부분은 1순위-> 2순위로 이동한다.), 입출력집중 프로세스들은 우선 순위 높은 큐에서 실행 끝남
  • 이때 큐에서 너무 오래 기다리면 높은 우선순위 큐로 이동시키는 에이징(aging)기법 이용해 기아현상(starvation) 방지

🎁 선택미션

Ch.11(11-2) 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기

3번
선입선처리 스케줄링 : 준비큐에 삽입된 순서대로 프로세스 처리하는 방식.
A -> B -> C -> D 순으로 CPU 할당받아 실행됩니다.

profile
오늘도 달리는

0개의 댓글