CPU 스케줄링 2

zioo·2022년 8월 21일
0
post-thumbnail

[ 이화여대 운영체제 - 반효경 교수님 강의 ]

Multilevel Queue

프로세스들을 중요도에 따라 여러 종류의 그룹으로 나누어 여러 개의 큐에 다양한 알고리즘을 적용한 스케줄링

  • 우선순위가 높은 것이 먼저 해결됨
  • ready queue가 여러 개의 큐로 나뉜다.
    • Foreground(interactive): response time이 짧아야 한다.
    • Background(batch): 실행이 오래걸리나 interactive 환경일 필요가 없는 경우이다. 빨리 끝날수록 좋다. 즉, turnaround time이 짧은 게 좋다.
  • 각각의 큐가 자신만의 스케줄링 알고리즘을 가진다.
    • Foreground: RR
    • Background: FCFS

Multilevel Feedback Queue

  1. 짧은 작업을 먼저 실행시켜 반환시간을 최적화하고자 한다
  2. MLFQ는 대화형 사용자(즉, 컴퓨터 사용자)에게 응답이 빠른 시스템이라는 느낌을 주고 싶기 때문에 응답 시간을 최적화 한다. 불행히도 RR과 같은 알고리즘은 응답시간을 단축시키지만 반환 시간은 거의 최악이다. 
  • 짧은 프로세스가 우대를 받음

  • RR만으로는 부족

  • Example

다음 그림은 3개의 큐- Q0, Q1, Q2 가 있을 때

  • Q0은 8 ms time quantum의 RR

  • Q1은 16ms time quantum의 RR

  • Q2은 FCFS

만약 Q0이 8ms안에 작업을 끝내지 못했다면, 선점하게(preempted) 작업은 Q1 큐로 이동합니다.

Q1이 RR작업을 할 때, 16ms을 더 받습니다.

만약 이 안에 Q1이 작업을 못 끝내면, 선점하게(preempted) Q2로 이동합니다.

Chapter 6 Process Synchronization

데이터의 접근

Race Condition

  • 커널의 데이터도 공유 데이터가 될 수 있다.
  • 한 자원에 동시에 접근할 때 race condition 발생할 수 있다.

OS에서 race contdition은 언제 발생하는가?

  • kernel 수행 중 인터럽트 발생 시

  • Process 가 system call을 하여 kernel mode로 수행 중인데 conntext switch가 일어나는 경우

  • Multiprocessor에서 shared memory 내의 kernel data

Process Synchronization 문제

0개의 댓글