Scheduling[Operating System]

SnowCat·2023년 1월 12일
0

CS - Operating System

목록 보기
2/6
post-thumbnail

CPU 스케줄링

  • 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것
    프로세스마다 우선순위가 다르기 때문에 우선순위에 맞게 CPU 자원을 배분해야 함
  • 입출력 작업이 많은 프로세스의 우선순위는 CPU작업이 많은 프로세스보다 높음
    입출력 작업이 많은 프로세스는 대기상태에 많이 머무름으로 먼저 작업을 처리해주면 CPU 집중 프로세스에 많은 자원을 할당할 수 있기 때문

스케줄링 큐

  • 운영체제는 컴퓨터의 자원을 사용하고자 하는 프로세스들을 큐에 삽입해 자원을 이용하도록 만듬
  • 스케줄링에서의 큐는 선입선출방식이 아니며 우선순위에 따라 작업을 처리하게 됨
  • 스케줄링 큐에는 대표적으로 준비 큐와 대기 큐가 있음
    준비 큐: CPU를 이용하기 위해 준비 상태에 있는 프로세스들이 있는 큐
    대기 큐: 입출력 장치를 이용하기 위해 대기 상태에 있는 프로세스들이 있는 큐
  • 대기 큐에서 같은 장치를 요구한 프로세스들은 같은 큐에서 대기하게 됨

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

선점형 스케줄링

  • 우선 순위가 높은 프로세스가 CPU 사용을 요청하면 우선순위가 낮은 프로세스의 자원을 빼앗아 사용가능한 방식
  • 선점형 스케줄링을 사용하면 어느 한 프로세스의 자원독점을 막고 프로세스들에 골고루 자원을 배분할 수 있음
  • 문맥 교환 과정에서 오버헤드가 발생할 수 있음

비선점형 스케줄링

  • 우선순위가 높은 프로세스가 CPU 사용을 요청해도 다른 프로세스가 종료되거나 대기 상태에 접어들 때 까지 CPU 자원을 사용할 수 없는 방식
  • 문맥 교환에서 발생하는 오버헤드가 적지만, 프로세스간 골고루 자원 배분을 하는 것이 어려워짐

스케줄링 알고리즘

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

  • 준비 큐에 삽입된 순서대로 처리하는 비선점 스케줄링
  • CPU를 요청한 프로세스 순으로 CPU를 할당함
  • 프로세스들이 기다리는 시간이 매우 길어질 수 있다는 부작용이 생김
    이를 호위 효과라 부름

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

  • 호위 효과를 방지하기 위해 CPU 사용 시간이 짧은 프로세스부터 우선 실행하는 방법
  • 선점형, 비선점형 스케줄링 양쪽으로 구현 가능하지만, 보통 비선점형 스케줄링으로 구분함

3. 라운드 로빈(Round Robin) 스케줄링

  • FCFS 스케줄링 기반이지만, 타임 슬라이스를 활용하는 스케줄링
    타임 슬라이스: 각 프로세스가 CPU를 사용할 수 있는 정해진 시간
  • 정해진 타임 슬라이스만큼의 시간 동안 돌아가며 CPU를 이용하는 선점형 스케줄링
  • 타임 슬라이스가 크면 FCFS 스케줄링과 큰 차이가 없어지고, 타임 슬라이스가 작으면 context overhead문제 발생 -> 타임 슬라이스 크기가 중요

4. 최소 잔여 시간 우선(Shortesr Remaining Time) 스케줄링

  • SJF 스케줄링과 RB 스케줄링을 합친 방식
  • 정해진 시간만큼 CPU를 이용하지만, 다음으로 CPU를 사용할 프로세스는 남은 작업 시간이 가장 적은 프로세스를 선택하는 스케줄링 방식

5. 우선순위(Priority) 스케줄링

  • 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스부터 실행하는 방식
  • 우선순위가 같은 프로세스들은 선입선출로 스케줄링하게 됨
  • SJF 스케줄링, SRT스케줄링은 넓은 의미에서 우선순위 스케줄링으로 볼 수 있음
  • 우선순위가 높은 프로세스만 계속 실행되고 우선순위가 낮은 프로세스는 실행이 지연되는 기아(starvation) 현상이 발생함
  • starvation을 방지하기 위해 대기 중인 프로세스의 우선순위를 점차 증가시키는 에이징(aging) 기법을 사용함

6. 다단계 큐(Multilevel queue) 스케줄링

  • Priority 스케줄링의 발전된 형태로 우선순위별로 준비 큐를 여러개 사용하는 스케줄링 방식
  • 우선순위가 가장 높은 큐에 있는 프로세스를 먼저 처리하고, 우선순위가 가장 높은 큐가 비어 있으면 그 다음 우선순위 큐에 있는 프로세스를 처리하게 됨
  • 큐별로 프로세스를 유형별로 처리할 수 있게 됨
  • 큐간의 이동이 불가능하기 때문에 여전히 starvation 발생 가능

7. 다단계 피드백 큐 스케줄링

  • Multilevel queue 스케줄링의 발전된 형태로 큐 간의 이동이 가능한 Multilevel queue 스케쥴링
  • CPU를 많이 사용할수록 우선순위가 낮아지게 됨 => 자연스럽게 입출력 집중 프로세스의 우선순위가 높아지고, CPU 집중 프로세스의 우선순위는 낮아짐
  • 다단계 피드백 큐에서도 aging 기법 적용 가능 => 낮은 우선순위 큐에서 너무 오래 기다리면 우선순위를 높일 수 있음

출처:
https://www.youtube.com/watch?v=Jjfah3t_xWk&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=33
혼자 공부하는 컴퓨터 구조+운영체제, 강민철, 한빛미디어

profile
냐아아아아아아아아앙

0개의 댓글

관련 채용 정보