상세 컨텐츠

본문 제목

운영체제- CPU 스케줄링 및 다중 큐

공부

by myeongjaechoi 2024. 4. 16. 19:30

본문

프로세스 우선순위

  • CPU 차지 속도와 점유 : 우선순위가 높은 프로세스 > 낮은 프로세스
  • 우선순위 : Kernel process 우선순위 > User process 우선순위
  • Kernel process와 User process들은 우선순위가 서로 다름
  • User process의 우선순위는 사용자가 변경 가능

CPU burst 및 I/O burst

  • CPU burst : 프로세스 실행 상태에서 CPU를 집중적으로 사용하는 시간
  • I/O burst : 대기 상태에서 I/O을 집중적으로 하는 시간
  • CPU bound process : CPU burst > I/O burst 인 프로세스
  • I/O bound process : I/O burst > CPU burst 인 프로세스
  • I/O bound proces 우선순위 > CPU bound process => 시스템 효율 향상

Foreground process

  • 키보드로 표준 입력을 받아들여 실행되는 프로세스
  • 사용자와의 상호작용이 가능하여 interactive process라고도 함

Background process

  • 한 프로세스가 실행되는 동안 뒤에서 실행되는 프로세스
  • 예: 파일 찾기는 시간이 오래 걸려, 파일 찾기 작업을 background 모드로 실행하고 foreground 모드로 다른 작업 수행

우선순위 : foreground process > background process

준비 상태의 다중 큐

  • PCB의 CPU schediling information : 프로세스의 우선순위 저장소
  • 준비상태의 준비 큐는 프로세스의 우선순위에 따라 다중 큐로 구성

고정 우선순위 방식

  • OS에 의해 정해진 프로세스의 우선순위는 프로세스가 끝날 때까지 변함X
  • 구현하기 쉽지만 시스템 변화 대응 힘듦 -> 시스템 효율성 저하

변동 우선순위 방식

  • 프로세스의 우선순위는 실행 중 변함
  • 구현하기 어렵지만 시스템 변화 대응 용이 -> 시스템 효율성 향상

대기 상태의 다중 큐

  • 대기상태의 대기 큐는 입출력 장치의 종류에 따라 다중 큐로 구성됨(같은 I/O 요구하는 프로세스 끼리 같은 큐)
  • I/O가 동시에 끝날 경우 여러 개의 interrupt가 동시에 처리됨

CPU 스케줄링

  • 운영체제의 프로세스 관리를 위해 사용
  • 준비 상태에 여러 프로세스 중 어느 프로세스에게 먼저 CPU를 할당하여 실행시킬 것인지 결정

CPU 스케줄링의 목적

  • 공평성 : 모든 프로세스가 시스템 자원을 공평하게 배분받도록 함
  • 효율성 : 시스템 자원이 유휴 시간없이 사용되도록 함
  • 안정성 : 우선순위가 높은 프로세스 먼저 실행 -> 자원 보호
  • 확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동하도록 함
  • 반응 시간 보장 : 시스템이 적절한 시간 내에 프로세스의 요구에 반응하도록 함
  • 무한 연기 방지 : 특정 프로세스의 작업 무한히 연기되지 않도록 함

장기 스케줄링

  • 시스템에서 활성화되는 프로세스 수 결정

중기 스케줄링

  • 시스템의 과부하를 막기위해 이미 활성화된 프로세스 수 조정

단기 스케줄링

  • 일반적으로 CPU 스케줄링을 지칭

스케줄링 알고리즘의 평가 기준

  • 평균 대기 시간 : 모든 프로세스의 대기 시간을 합한 뒤 프로세스의 수로 나눈 값

비선점형 스케줄링 : FCFS, SJF, HRN

FCFS 스케줄링

  • 비선점형 스케줄링으로 프로세스로부터 CPU를 빼앗을 수 없음
  • 준비 큐에 들어온 프로세스 순서대로 실행 -> 우선순위 사용X
  • 단점 : 실행 시간이 긴 프로세스가 먼저 실행되면 뒤에 프로세스 지연

SJF 스케줄링

  • 준비 큐에 있는 프로세스 중 실행 시간이 짧은 프로세스에 높은 우선순위 부여
  • 단점 : 프로세스 실행 시간 정확히 계산 어려움
  • 기아상태 발생 : 우선순위가 높은 프로세스가 계속 준비 큐에 들어오면 우선순위가 낮은 프로세스는 계속 지연

HRN 스케줄링

  • 에이징 : 대기 시간이 긴 프로세스에게 높은 우선순위 부여
  • 준비 큐에 있는 프로세스 중 실행 시간이 짧거나 대기 시간이 긴 프로세스에게 높은 우선순위 부여
  • 우선순위 = (대기시간 + 실행시간) / 실행시간
  • 단점 : 프로세스의 실행 시간을 정확히 계산하기 어려움

선점형 스케줄링 : RR, SRT, MLQ, MLFQ

RR 스케줄링

  • 준비 큐에 들어온 프로세스 순서대로 실행
  • 시분할 시스템에서 사용
  • Time slice 사용 : 하나의 프로세스가 CPU 독점X -> 빠른 응답 시간을 요구하는 시스템에 적합
  • Time slice가 큰 경우 : FCFS 스케줄링이랑 같음
  • Time slice가 작은 경우 : 잦은 문맥 교환으로 인 해 오버헤드가

SRT 스케줄링

  • RR 스케줄링 + SJF 스케줄링 혼합 방식
  • 기본적으로 RR 스케줄링으로 실행되지만 준비 큐에 있는 프로세스 중 실행 시간 짧은 프로세스에게 높은 우선순위 부여
  • 단점 : 프로세스의 실행 시간 정확히 계산 어려움

MLQ 스케줄링

  • OS에 의해 정해진 프로세스의 우선순위에 따라 여러 준비 큐를 사용
  • 각 큐는 RR 스케줄링으로 처리
  • 우선순위 높은 큐 : 작은 time slice 사용
  • 우선순위 낮은 큐 : 무한대 time slice 사용
  • 고정 우선순위 방식 : 우선순위 변하지 않음

 MLFQ 스케줄링

  • MLQ 프로세스에서 우선순위 방식만 바뀜
  • 변동 우선순위 방식 : 프로세스는 time slice동안 실행되고 난 다음 실행이 완료되지 않으면 우선순위가 낮아짐
  • 커널 프로세스가 사용자 프로세스가 있는 큐로 이동X
  • 현재 운영체제들의 일반적인 스케줄링 방식

'공부' 카테고리의 다른 글

인공지능 - 지식표현과 추론  (0) 2024.04.18
인공지능 - 오토마톤 및 탐색  (0) 2024.04.18
운영체제 - 컴퓨터 구조  (0) 2024.03.31
병렬프로그래밍(2) - 루프 병렬화  (0) 2024.03.25
운영체제 - 커널  (1) 2024.03.18

관련글 더보기