쉽게 배우는 운영체제 4장

신범철·2021년 5월 5일
1

21-1운영체제수업

목록 보기
4/7

스케줄링의 개요

cpu 스케줄링

스케줄링은 여러 프로세스의 상황을 고려하여 cpu와 시스템 자원을 어떻게 배정할지 결정하는 일을 말한다.

스케줄링의 단계

고수준 스케줄링

가장 단위의 cpu 스케줄링
시스템 전체 작업수를 조종하며 동시에 실행 가능한 프로세스의 총 개수가 정해진다.

중간수준 스케줄링

고수준 스케줄링 대신 프로세스의 수를 조절하여 시스템의 부하를 최소화 시킨다.(보류상태)

저수준 스케줄링

저수준 스케줄링에서는 실제로 프로세스가 진행되며 필요 상태에 따라 준비 상태에 있는 프로세스를 실행 상태나 대기 상태로 보내기도 한다.

스케줄링의 목표

  • 공평성
  • 효율성
  • 안정성
  • 확장성
  • 반응 시간 보장
  • 무한 연기 방지

다중큐

준비상태의 다중 큐(우선순위 순)

pcb에 프로세스의 중요도 표시 되지만
항상 pcb에 담겨져 있는 중요도를 읽기는 효율성이 떨어진다.

그렇기 때문에
중요도(우선순위)에 따라 pcb를 정렬 해놓으면 프로세스를 간결시킬수 잇따.
이렇게 우선순위 별로 정리한 상태를 준비 상태의 큐라고 한다.

고정 우선순위 방식 : 운영체제가 프로세스 우선순위를 부여하면 프로세스가 끝날때까지 바꾸지 않음

변동 우선순위 방식 : 프로세스가 작업 중간 변하는 방식(시스템의 효율을 높임)

대기 상태의 다중 큐(입출력 장치 순)

준비큐와 대기큐의 차이점

준비큐는 한번의 하나의 프로세스를 꺼내 cpu에 할당하지만 대기 큐는 여러개의 pcb를 동시에 꺼내 준비 상태로 옮김

스케줄링 알고리즘

비선점형 알고리즘

fcfs 스케줄링

  • 준비큐에 도착한 순서대로 cpu에 할당
  • 처리시간이 긴 프로세스가 작업을 하면 다른 프로세스의 기다리는 시간이 길어짐
  • 작업 효율이 안좋음

SJF 스케줄링

  • 준비 큐에 있는 프로세스중 실행시간이 가장 짧은 작업부터 cpu에 할당
  • 아사현상이 생길수 있음

HRN 스케줄링

  • sjf 스케줄링에서 발생하는 아사 현상을 해결하기 위해 만들어진 알고리즘
  • 서비스를 받기 위해 기다린 시간과 cpu 사용 시간을 고려한 스케줄링
  • 우선순위 = (대기시간 + cpu 사용시간)/ cpu사용시간
  • 공평성 위배

선점형 스케줄링

RR(라운드 로빈 스케줄링)

  • FCFS 방식인데 타임슬라이스가 추가된 방식
  • 문맥교환 시간이 추가된다.

SRT 스케줄링(shortest remaining time)

  • SJF 와 라운드 로빈이 홉합된 방식
  • 기본적으로 라운드 로빈 스케줄링을 사용하는데
  • cpu를 할당 받을 때 남은 작업이 가장적은 프로세스를 할당
  • 문맥교환을 하고 아사현상이 일어날수 있다.
  • 큐에 있는 프로세스의 남은 시간을 주기적으로 계산이 추가됨

다단계 큐 스케줄링

  • 고정형 우선순위에 따라 준비큐를 여러 개 사용하는 방식
  • 프로세스는 운영체제로 부터 부여받은 우선순위에 따라 순위큐 삽입
  • 우선순위에 따라 타임슬라이스를 조절 해 작업 효율을 높일 수 있음

다단계 피드백 큐 스케줄링

  • 우선순위가 낮은 프로세스에 불리한 다단계 큐 스케줄링의 문제점을 보완한 방식
  • cpu를 사용하고 난 프로세스는 원래 큐로 돌아가지 않고 우선순위가 하나 낮은 큐의 끝으로 들어간다.
  • 우선순위가 낮은 큐의 타임슬라이스를 크게 설정
profile
https://github.com/beombu

0개의 댓글