CPU 스케줄링

augusstt·2022년 11월 5일
0

CS

목록 보기
8/11
post-thumbnail

이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.

이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제

CPU 스케줄링

1. 개요

  • CPU 스케줄링
    - 운영체제가 프로세스들에게 CPU 자원을 할당해 주는 것
    - 우선순위에 따라 할당 (빨리 처리해야하는 것 : 입출력작업이 많은 것들)

  • 스케줄링 큐 : 할당을 기다리는 프로세스들을 대기 시키는 것

    큐는 일반적으로 선입선출의 방식이지만 여기서의 큐는 대기시키는 역할만 하고 반드시 선입선출로 작동하지는 않는다

    • 준비 큐
      - CPU를 이용하려는 프로세스들이 서는 줄
    • 대기 큐
      - 입출력장치를 사용하기 위해 대기 상태에 들어간 프로세스 들이 서는 줄
      대기큐
    • 전제척인 진행과정은 이러하다
      요약
  • 선점형 스케줄링
    - 한 프로세스가 CPU 사용 중, 다른 프로세스가 CPU 사용요청을 보낼때 발생

    • 운영체제가 현재 사용중인 프로세스로부터 자원을 빼앗아 다른 프로세스에게 자원을 할당 하는 것
    • 어느 한 프로세스의 CPU 독점을 막고 프로세스들에게 골고루 자원 배분
    • 오버헤드 발생이 가능
  • 비점형 스케줄링
    - 하나의 프로세스가 CPU에게 자원을 할당받아 사용하고 있다면, 그 프로세스가 종료, 대기상태에 들어가기 전까지는 다른 프로세스에게 자원을 할당하지 않는 것

    • 오버헤드는 선점형 프로세스보다 적다
    • 모든 프로세스가 골고루 자원을 사용할 수 없다.

2. CPU 스케줄링 알고리즘

  1. First Come First Scheduling (선입선처리 스케줄링)

    • 운영체제에게 CPU 요청한 순서대로 실행.
    • 프로세스들이 기다리는 시간이 길어질 수 있다.
    • 호위효과 발생

      호위효과 : 실행시간이 긴 프로세스가 먼저 할당되면 뒤에 있는 프로세스들은 실행시간보다 대기시간이 길어지는 것
      호위효과

  2. Shortest Job First Scheduling (최단 작업 우선 스케줄링)

    • CPU 사용시간이 짧은 프로세스부터 실행.
    • 기본적으로 비선점형 스케줄링이지만 선점형으로 구현될수도 있음.
  3. Round Robin Scheduling

    • FCFS 스케줄링에 타임슬라이스라는 개념이 더해짐

      타임 슬라이스 : 각 프로세스가 CPU를 사용할 수 있는 정해진 시간

    • 따라서 프로세스마다 정해진 타임 슬라이스만큼의 시간동안만 돌아가며 CPU 사용

  4. Shortest Remaining Time Scheduling (최소 잔여시간 스케줄링)

    • SJF 스케줄링과 라운드로빈 스케즐링을 합친 것
    • 프로세스들은 정해진 타임 슬라이스만큼 CPU를 사용하고, 다음 실행 프로세스는 잔여 작업시간이 가장 적은 프로세스로 배정된다.
  5. Priority Scheduling (우선순위 스케줄링)

    • 프로세스들에게 우선순위를 부여하고 그 순위대로 실행한다.

    • 우선순위가 같다면 선입 선처리로 진행된다.

    • 기아 현상이 발생할 수 있음.

      우선순위에 철저히 기반하기 때문에 후순위 프로세스는 다른 선순위 프로세스들에게 계속 밀려나는 현상

    • 기아현상을 방지 하기 위해 에이징이라는 기법 사용

      에이징 기법 : 후 순위 프로세스들의 순위를 점차 증가시키는 방법

  6. Multievel Queue Scheduling (다단계 큐 스케줄링)

    • 우선순위 스케줄링의 발전 된 형태
    • 우선 순위별로 준비 큐를 여러개 사용하는 스케줄링 기법
      다단계 큐
profile
https://augusstt-note.gitbook.io/aug-note 로 블로그 이전했습니다!

0개의 댓글