[운영체제] Chapter 5. CPU Scheduling (1), (2)

2022. 12. 22. 19:08CS/운영체제

728x90

//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎

 

 

CPU and I/O Bursts in Program Execution, CPU-burst Time의 분포, 프로세스의 특성 분류, CPU Scheduler & Dispatcher, Scheduling Algorithms, Scheduling Criteria, FCFS(First-Come First-Served), SJF(Shortest-Job-First), Example of Non-Preemptive SJF, Example of Preemptive SJF, 다음 CPU Burst Time의 예측, Expotemtial Averaging, Priority Scheduling, Round Robin(RR), Multilevel Queue, Multilevle Feedback Queue, Multi-Processor Scheduling, Real-time Scheduling, Thread Scheduling, Algorithm Evaluation

 

1. CPU 버스트(burst)와 I/O 버스트

  • 사용자 프로그램이 수행되는 과정은 CPU 작업I/O 작업반복으로 구성된다.
  • CPU 버스트: 사용자 프로그램이 직접 CPU를 가지고 수행하는 비교적 빠른 명령을 수행하는 일련의 단계
    • load, stoare, add, read 명령: CPU 내에서 일어나는 명령이나 메모리를 접근하는 명령
    • 사용자 프로그램이 직접 실행할 수 있는 일반명령
  • I/O 버스트: I/O 요청이 발생해 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계
    • 입출력을 수반하는 명령은 CPU나 메모리 접근 명령에 비해 오랜 시간이 소요된다.
    • 모든 입출력 명령은 특권명령으로 운영체제를 통해 서비스를 대행

1-1. 프로세스의 특성 분류

  • 각 프로그램마다 CPU 버스트와 I/O 버스트가 차지하는 비율이 균일하지는 않다.  
    • I/O 바운드 프로세스: I/O 요청이 빈번해 CPU 버스트가 짧게 나타나는 프로세스
      • CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job
      • 주로 사용자로부터 interaction을 계속 받아가며 프로그램을 수행시키는 대화형 프로그램
      • 짧고 빈번한 CPU 버스트로 구성
    • CPU 바운드 프로세스: I/O 작업을 거의 수행하지 않아 CPU 버스트가 길게 나타나는 프로세스
      • 프로세스 수행의 상당 시간을 입출력 작업 없이 CPU 작업에 소모하는 계산 위주의 프로그램
      • 소수의 긴 CPU 버스트로 구성
  • 여러 종류의 프로세스들이 섞여 있기 때문에 CPU 스케줄링이 필요하다.
    • interactive job(= CPU 버스트가 짧은 프로세스, I/O 바운드 프로세스)에게 우선적으로 CPU를 사용할 수 있도록 하는 스케줄링이 필요로 하다.
      • CPU를 조금만 사용하면 바로 I/O 작업을 하러 갈 것인데 CPU를 사용하지 못하면 I/O 작업을 하러 갈 수도 없고
      • 사람과 interaction을 많이 하는 작업이기 때문에 적절한 response가 시간 내에 필요하다.
    • CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용할 수 있다.

 

2. CPU 스케줄러와 디스패치(Dispatcher)

CPU 스케줄러는 운영체제 안에 있는 CPU 스케줄링을 하는 코드(SW), 운영체제 코드의 일부

  • CPU 스케줄러: 준비(Ready) 상태에 있는 프로세스들 중 어떠한 프로세스에게 CPU를 할당할지 결정하는 운영체제의 코드
    • CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우
      • Running → Blocked (예. I/O를 요청하는 시스템 콜처럼 자진해서 CPU를 내놓는 상황)
      • Running → Ready (예. 할당시간만료로 timer interrupt처럼 CPU를 빼앗기는 상황)
      • Blocked → Ready (예. I/O 완료 후 인터럽트하고 바로 CPU를 얻을 수 있는 권한을 주는 상황)
      • Terminate
    • 비선점형 스케줄링 nonpreemptive: CPU를 획득한 프로세스가 CPU를 스스로 반납하기 전까지는 CPU를 빼앗지 않는 방법
      • Running → Blocked, Terminate
    • 선점형 스케줄링 preemptive: 강제로 CPU를 빼앗을 수 있는 방법, 현대적인 CPU 스케줄링
      • 할당 시간을 부여한 후 타이머 인터럽트를 발생시키는 방법이 대표적
      • Running → Ready, Blocked → Ready (우선순위가 높은 경우)
  • 디스패치(Dispatcher): 새롭게 선택된 프로세스가 CPU를 할당받고 작업을 수행할 수 있도록 환경설정을 하는 운영체제의 코드, 이 과정을 문맥 교환이라 한다.
    • 디스패치 지연시간(dispatch latency): 디스패처가 하나의 프로세스를 정지시키고 다른 프로세스에게 CPU를 전달하기까지 걸리는 시간, 디스패치 지연시간의 대부분은 문맥교환 오버헤드에 해당된다.

 

3. 성능 척도 (Scheduling Criteria)

Performance Index (= Performance Measure, 성능 척도)

  • 시스템 관점 지표(CPU 하나로 최대한 많은 일을 하는 것)
    • CPU 이용률 (CPU utilization): 전체 시간에서 CPU가 놀지 않고 일한 시간의 비율, CPU as busy as possible
    • 처리량 (Throughput): 주어진 시간 동안 준비 큐에서 기다리고 있는 프로세스 중 몇 개를 끝마쳤는지
  • 사용자 관점 지표(얼마나 빨리 할 수 있는지)
    • Turnaround time (소요 시간, 반환 시간): CPU를 요청한 시점부터 자신이 원하는 만큼 CPU를 다 쓰고 CPU 버스트가 끝날 때까지 걸린 시간
      • 준비 큐에서 기다린 시간 + 실제로 CPU를 사용한 시간의 합
      • 하나의 프로세스라 하더라도 소요시간은 CPU 버스트의 수만큼 각각 별도로 측정
    • 대기 시간 (Waiting time): CPU 버스트 기간 중 프로세스가 준비 큐에서 CPU를 얻기 위해 기다린 시간의 합
      • 한 번의 버스트 중에도 준비 큐에서 기다린 시간이 여러 번 발생할 수 있다
    • 응답 시간 (Response time): 프로세스가 준비 큐에 들어온 후 첫 번째 CPU를 획득하기까지 걸리는 시간
      • 타이머 인터럽트가 빈번히 발생할수록 각 프로세스가 CPU를 연속적으로 사용할 수 있는 시간이 짧아짐
        → 처음 CPU를 얻기까지 걸리는 시간은 줄어들어
        → 응답 시간 향상

 

4. 스케줄링 알고리즘

4-1. FCFS(First-Come First-Served), 선입선출 스케줄링

  • 프로세스가 준비 큐에 도착한 시간을 순서대로 CPU를 할당하는 방식

  • CPU를 먼저 요청한 프로세스에게 CPU를 먼저 할당하고, 그 프로세스가 자발적으로 CPU를 반납할 때까지 빼앗지 않는 비선점형 스케줄링 방식이다.
  • 먼저 도착한 프로세스의 성격에 따라 평균 대기시간이 크게 달라진다.
    • CPU 버스트가 긴 프로세스를 먼저 수행하게 되면 대기시간은 물론 I/O 장치들의 이용률까지도 동반 하락
  • 콘보이 현상(Convoy effect): CPU 버스트가 짧은 프로세스가 CPU 버스트가 긴 프로세스보다 나중에 도착해 오랜 시간을 기다려야 하는 현상

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

  • CPU 버스트가 가장 짧은 프로세스에게 제일 먼저 CPU를 할당하는 방식

  • 비선점형(nonpreemptive) 방식: 현재 CPU를 점유하고 있는 프로세스가 CPU 버스트를 모두 수행하고 스스로 CPU를 내어놓을 때까지 스케줄링을 하지 않음
  • 선점형(preemptive) 방식: 현재 수행 중인 프로세스의 남은 버스트 시간보다 더 짧은 CPU 버스트 시간을 가지는 새로운 프로세스가 도착하면 현재 수행 중인 프로세스에게서 CPU를 선점해 CPU 버스트 시간이 더 짧은 프로세스에게 할당
    • 선점형 구현 방식을 SRTF(Shortest Remaining Time First)라고도 부른다.
    • 주어진 프로세스들에 대해 최소 평균 대기 시간을 보장하는 최적 알고리즘(optimal algorithm)이다.
  • SJF의 문제
    • starvation 기아 현상: CPU 버스트가 짧은 프로세스에게만 CPU를 할당할 경우 CPU 버스트가 긴 프로세스는 준비 큐에 줄 서서 무한정 기다려야 하는 문제가 발생, CPU 버스트가 짧은 프로세스가 계속 도착할 경우 버스트가 긴 프로세스는 영원히 CPU를 할당받지 못할 수도 있다.
    • CPU 사용 시간을 미리 알 수 없음 → 과거의 CPU 버스트 시간을 이용한 예측치가 가장 짧은 프로세스에게 CPU를 할당(expotential averaging)
      • 다음번 CPU burst time은 과거의 CPU brust time을 이용해서 추정만이 가능하다. 
      • (n+1) 번째 CPU brust 예측 값 = 실제 (n) 번째 CPU brust 값 * (1 - α) + n번 째 CPU brust 예측 값 *  α
      • 0 <= α <= 1 ~ α, (1-α)를 곱하면 곱할수록 값이 줄어듦 = 직전 값을 더 많이 반영한다.
    •  

4-3. Priority Scheduling, 우선순위 스케줄링

  • 준비 큐에서 기다리는 프로세스들 중 우선순위가 가장 높은 프로세스에게 제일 먼저 CPU를 할당하는 방식
    • 각 프로세스마다 우선순위를 나타내는 숫자가 주어지고, 주로 우선순위값이 작을수록 높은 우선순위를 가지는 것으로 가정
    • SJF는 일종의 우선순위 스케줄링이다. priority = predicted next CPU brust time
  • 비선점형(nonpreemptive) 방식: 일단 CPU를 얻었으면 비록 우선순위가 더 높은 프로세스가 도착하더라도 CPU를 자진 반납하기 전까지 선점하지 않음
  • 선점형(preemptive) 방식: 현재 CPU에서 수행 중인 프로세스보다 우선순위가 높은 프로세스가 도착하여 CPU를 선점해서 새롭게 도착한 프로세스에게 할당
  • Problem - Starvation 기아 현상: 우선순위가 높은 프로세스가 계속 도착하는 상황에서 우선순위가 낮은 프로세스는 CPU를 얻지 몫한 채 계속 기다려야 할 수 있다.
  • Solution - Aging 노화 기법: 기다리는 시간이 길어지면 우선순위를 조금씩 높여, 언젠가는 가장 높은 우선순위가 되어 CPU를 할당받을 수 있게 해주는 방법

4-4. RR(Round Robin), 라운드 로빈 스케줄링

  • 각 프로세스가 CPU를 연속적으로 사용할 수 있는 시간이 특정 시간으로 제한되며, 이 시간이 경과하면 해당 프로세스로부터 CPU를 회수해 준비 큐에 줄 서 있는 다른 프로세스에게 CPU를 할당하는 방식

  • 각 프로세스는 동일한 크기의 할당 시간(time quantum)을 가짐
    • 일반적으로 할당시간을 10 ~ 100ms로 설정
      • 할당 시간이 너무 길면 FCFS와 같은 결과를 가진다.
      • 할당 시간이 너무 짧으면 문맥 교환 오버헤드가 커진다.
  • n개의 프로세스가 준비 큐에 있고, 할당 시간이 q time unit인 경우
    → 어떤 프로세스도 (n-1)q time unit 이상 기다리지 않는다 ~ 빠른 응답시간을 보장
  • 공정한 스케줄링 방식
    • CPU를 쓰고자 하는 양이 적으면 소요시간이 짧고, 양이 많으면 소요시간도 비례해 길어진다.
      • I/O 바운드 job은 한 번의 할당시간에 처리하고 나가서 빠른 응답시간을 받고, CPU 바운드 job도 무작정 양보만 할 것이 아니고 할당 시간만큼 쓰고 뒤에 가서 줄 서 있게 하는 방법: IO 바운드 job과 CPU 바운드 job을 걸러내는 의미를 가지고 있음
    • 대기시간 역시 자신이 사용하는 CPU 버스트 시간에 비례해 증가하므로 합리적이다.
      • 기본적으로 CPU 버스트 시간을 알 수 없는 상황에 CPU 버스트가 길고 짧은 프로세스가 섞여 있는 상황에 적합하다.
      • 만약, CPU 버스트가 비슷한 작업들(homogeneous job)끼리 모여있다면? 별로 효과가 없다, average tuarnaround time이 길어진다.  
  • 일반적으로 SJF보다 average turnaround time이 길지만, 최초로 CPU를 얻는 response time은 더 짧다.
  • 현대적인 컴퓨터 시스템에서 사용하는 CPU 스케줄링은 RR에 기반

4-5. Multilevel Queue, 멀티레벨 큐

  • 준비 큐를 여러 개로 분할해 관리하는 스케줄링 방식
  • 멀티레벨 큐는 일반적으로 성격이 다른 프로세스들을 별도로 관리하고, 프로세스의 성격에 맞는 스케줄링을 적용하기 위해 준비 큐를 별도로 두게 된다.
    • foreground queue (전위 큐) - interactive
      • RR - 빠른 응답을 필요로 하는 대화형 작업
    • background queue (후위 큐) - batch - no human interaction: 계산 위주의 작업
      • FCFS - 계산 위주의 작업에서는 응답시간이 큰 의미를 가지지 않아 문맥 교환 오버헤드를 줄이는 것에 집중
  • 큐에 대한 스케줄링: 여러 개의 준비 큐에 대해서 어느 큐에 먼저 CPU를 할당할 것인지 결정
    • 고정 우선순위 방식(Fixed priority scheduling)
      • 큐에 고정적인 우선순위를 부여해 우선순위가 높은 큐를 먼저 서비스하고 우선순위가 낮은 큐는 우선순위가 높은 큐가 비어 있을 때에만 서비스하는 방식
      • 기아 현상을 유발할 수 있음
    • 타임 슬라이스 방식(Time slice)
      • 각 큐에 CPU time을 적절한 비율로 할당하는 방식으로 큐에 대한 기아 현상을 해소할 수 있다.
      • 예) 전체 CPU 시간 중 전위 큐에는 80%, 후위 큐에는 20%를 할당해 스케줄링
  • 우선순위: system(시스템과 관련) > interactive(사람과) > interactive editing > batch(일괄적 작업) > student processes
  • 멀티레벨 큐는 우선순위가 높은 프로세스가 더 빨리 CPU를 얻는 차별적인 스케줄링 기법이다.
    우선순위가 낮은 큐는 우선순위가 높은 큐보다 빨리 서비스를 받을 수 없는 것을 극복한 방법 → 멀티레벨 피드백 큐

4-6. Multilevel Feedback Queue, 멀티레벨 피드백 큐

  • CPU를 기다리는 프로세스를 여러 큐에 줄 세운다는 측면에서 멀티레벨 큐와 동일하나, 프로세스가 하나의 큐에서 다른 큐로 이동 가능한 스케줄링 방식

  • 상위에 있는 큐일수록 우선순위가 높으며, 상위 2개의 큐는 각각 할당시간이 8, 16인 라운드 로빈 스케줄링을 사용한다. 세 번째 큐는 FCFS 스케줄링 기법을 사용한다.
    1. 프로세스가 준비 큐에 도착하면 우선순위가 가장 높은 큐에 줄을 선다.
    2. CPU 사용시간이 짧은 대화형 프로세스들은 우선순위가 가장 높은 큐에서 빨리 서비스받고 작업을 완료할 수 있다.
    3. 8만큼의 시간 동안 CPU를 사용하고도 작업을 완료할 수 없는 CPU 버스트 시간이 긴 프로세스들은 할당시간이 16인 하위 큐로 내려가서 줄을 선다.
    4. 하위 큐에서 본인 차례가 되어 할당시간 16을 추가로 사용하고도 작업이 완료되지 않으면, 이 프로세스는 CPU를 오래 사용하는 계산위주의 프로세스로 간주되어 최하위 큐로 이동하고 FCFS 스케줄링을 적용받게 된다.
  • Multilevel-feedback-queue scheduler를 정의하는 파라미터들
    • Queue의 수 
    • 각 큐의 scheduling algorithm
    • process를 상위 큐로 보내는 기준
    • process를 하위 큐로 내쫓는 기준
    • 프로세스가 CPU의 서비스를 받으려 할 때 들어갈 큐를 결정하는 기준
  • 큐에 대한 스케줄링 방식: 최상위 큐가 우선적으로 CPU를 배당받고, 상위 큐가 비었을 때만 하위 큐에 있는 프로세스들이 CPU를 할당받을 수 있게 된다.
    • 라운드 로빈 스케줄링을 한층 더 발전시켜
    • 작업시간이 짧은 프로세스일수록 우선순위가 많이 주어져 더욱 빠른 서비스가 가능하고,
    • 작업시간이 긴 프로세스에 대해서는 문맥교환 없이 CPU작업에만 열중할 수 있는 FCFS 방식을 채택
    • CPU 사용시간이 긴지 짧은지 예측할 필요가 없다
    • 멀티 레벨 피드백 큐에는 에이징(aging)과 같은 방식으로 구현하는 것이 가능하기 때문에 기아현상을 해소할 수 있다. 여러 큐를 옮겨갈 수 있다.

4-7. Multiple-Processor Scheduling, 다중처리기 스케줄링

  • CPU가 여러 개인 시스템을 다중처리기 시스템(multi-processor system)이라고 부른다.
  • Homogeneous processor인 경우
    • 큐에 한 줄로 세워서 각 프로세스가 알아서 꺼내갈 수 있다
    • 각 CPU별로 줄 세우기를 할 수도 있다.
    • 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우에는 복잡
  • Load sharing
    • 여러 줄로 줄 세우기를 하는 경우 일부 CPU에 작업이 편중되는 현상이 발생할 수 있다.
      • 일부프로세서에 job이 몰리지 않도록 부하를 적절히 분산되도록 하는 부하균형(load balancing) 메커니즘 필요
      • 별개의 큐를 두는 방법 vs 공동의 큐를 사용하는 방법
  • Systemmetric Multiprocessing(SMP, 대칭형 다중처리): 각 CPU가 각자 알아서 스케줄링을 결정하는 방식
  • Asymmetric multiprocessing(비대칭형 다중처리): 하나의 CPU가 다른 모든 CPU의 스케줄링 및 데이터 접근을 책임지고 나머지 CPU는 거기에 따라 움직이는 방식

4-8. Real-Time Scheduling, 실시간 스케줄링

  • 실시간 시스템에서는 각 작업마다 주어진 데드라인이 있어 정해진 데드라인 안에 반드시 작업을 처리해야 한다.
  • Hard-real-time system(경성 실시간 시스템): 정해진 시간 안에 반드시 끝내도록 스케줄링해야 하는 시스템
    • 보통은 미리 스케줄링하여 데드라인이 보장되도록 적재적소에 배치한다.
  • Soft-real-time system(연성 실시간 시스템): 데드라인이 존재하는 프로세스에게 일반 프로세스 보다 높은 priority를 할당하는 시스템
    • 데드라인이 존재하지만 데드라인을 지키지 못했다고 해서 위험한 상황이 발생하지는 않는다.
    • 동영상 스트리밍 서비스(초당 60 프레임을 보내야 한다 같이 주기적으로 일을 해야 하는 경우)

4-9. Thread Scheduling, 스레드 스케줄링

  • 스레드(thread): 프로세스 하나 안에 CPU 수행 단위가 여러 개 있는 것
  • Local Scheduling
    • User level thread: 사용자 프로세스가 직접 스레드를 관리하고 OS는 그 스레드의 존재를 모르는 경우
    • 사용자 수준의 thread library에 의해 어떤 thread를 스케줄할지 결정
    • OS는 그 프로세서에게 CPU를 줄지 말지를 결정하고, 그 프로세스가 CPU를 할당받으면 어떤 스레드에게 CPU를 줄지는 프로세스 내부에서 결정
  • Global Scheduling
    • kernel level thread: OS가 스레드의 존재를 이미 알고 있는 상황
    • 커널의 단기 스케줄러가 어떤 스레드를 스케줄 할지 결정

 

5. 스케줄링 알고리즘의 평가

  • Queueing models(큐잉모델): 주로 이론가들이 수행하는 방식으로, 확률 분포로 주어지는 arrival rate와 service rate 등을 통해 각종 성능척도 값을 계산
    • arrival rate: 프로세스가 도착하는 도착률
    • service rate: 단위 시간당 몇 개를 처리할 수 있는지 CPU의 처리 능력인 처리율
  • Implementation & Measurement(구현 및 실측): 주로 구현가들이 수행하는 방식으로, 실제 시스템에 알고리즘을 구현하여 실제 작업(workload)에 대해서 성능을 측정 비교
  • Simulation(모의실험): 실제 시스템에 구현해 수행시켜 보는 것이 아니라 알고리즘을 모의 프로그램으로 작성 후 trace를 입력으로 하여 결과를 비교
    • trace: 실제 씨틈에서 추출한 입력값, 몇 초에 어떤 프로세스가 도착하고, 각각 CPU 버스트 시간을 얼마로 하는지에 대한 정보를 시간 순서대로 적어놓은 파일

 

 

[복습]

    1. 프로세스의 특성 분류
      • I/O 바운드 프로세스: I/O 요청이 빈번해 CPU 버스트가 짧게 나타나는 프로세스
      • CPU 바운드 프로세스: I/O 작업을 거의 수행하지 않아 CPU 버스트가 길게 나타나는 프로세스
        • CPU 버스트: 사용자 프로그램이 직접 CPU를 가지고 수행하는 비교적 빠른 명령을 수행하는 일련의 단계
        • I/O 버스트: I/O 요청이 발생해 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계
      • CPU 버스트가 짧은 프로세스, I/O 바운드 프로세스에게 우선적으로 CPU를 사용할 수 있도록 하는 스케줄링이 필요하다 
    2. CPU 스케줄러: 준비 상태에 있는 프로세스들 중 어떠한 프로세스에게 CPU를 할당할지를 결정하는 운영체제의 코드
      1. 비선점형 스케줄링 nonpreemptive: CPU를 획득한 프로세스가 CPU를 스스로 반납하기 전까지는 CPU를 빼앗지 않는 방법
      2. 선점형 스케줄링 preemptive: 강제로 CPU를 빼앗을 수 있는 방법
    3. 디스패치: 새롭게 선택된 프로세스가 CPU를 할당받고 작업을 수행할 수 있도록 환경 설정을 하는 운영체제의 코드, 문맥교환의 과정
    4. 성능척도
      • CPU 이용률(cpu utilization): 전체 시간에서 CPU가 놀지 않고 일한 시간의 비율
      • 처리량(throughput): 주어진 시간 동안 준비 큐에서 기다리고 있는 프로세스 중 몇 개를 끝냈는지
      • Turnaround time: CPU를 요청한 시점부터 자신이 원하는 만큼 CPU를 다 쓰고 CPU 버스트가 끝날 때까지 걸린 시간
      • 대기시간(waiting time): CPU 버스트 기간 중 프로세스가 준비 큐에서 CPU를 얻기 위해 기다린 시간의 합
      • 응답시간(response time): 프로세스가 준비 큐에 들어온 후 첫 번째 CPU를 획득하기까지 걸리는 시간
    5. 스케줄링 알고리즘
      1. FCFS: 프로세스가 준비 큐에 도착한 시간을 순서대로 CPU를 할당하는 방식, 비선점형
      2. SJF: CPU 버스트가 가장 짧은 프로세스에게 제일 먼저 CPU를 할당하는 방식, 비선점형, 선점형(SRTF), 기아현상
      3. Priority Scheduling: 준비 큐에서 기다리는 프로세스들 중 우선순위가 가장 높은 프로세스에게 제일 먼저 CPU를 할당하는 방식, 비선점형, 선점형, 기아현상, aging 기법
      4. RR: 각 프로세스가 CPU를 연속적으로 사용할 수 있는 시간이 특정 시간으로 제한되며, 이 시간이 경과되면 해당 프로세스로부터 CPU를 회수해 준비 큐에 줄 서 있는 다른 프로세스에게 CPU를 할당하는 방식 ~ 빠른 응답시간을 보장
      5. Multilevel Queue: 준비 큐를 어려 개로 분할해 관리하는 스케줄링 방식, foreground queue(RR), background queue(FCFS), 고정 우선순위 방식(기아 현상 유발), 타임 슬라이스 방식
      6. Multilevel Feedback Queue: CPU를 기다리는 프로세스를 여러 큐에 줄 세운다는 측면에서 멀티레벨 큐와 동일하나, 프로세스가 하나의 큐에서 다른 큐로 이동 가능한 스케줄링 방식, Q0와 Q1(RR - 빠른 서비스), Q2(FCFS - 문맥교환 오버헤드 줄임)
      7. Multiple-Processor Scheduling: Systemmetric Multiprocessing, Asymmetric multiprocessing
      8. Real-Time Scheduling: hard-real-time system, soft-real-time system
      9. Thread Scheduling: local scheduling, global scheduling
    6. 스케줄링 알고리즘의 평가: Queueing models, implementation & Measurement, Simulation

 

 

 

 


이화여자대학교 반효경 교수님의 [2014년 1학기 운영체제], [2017년 1학기 운영체제] 강의 정리입니다.

 반효경 교수님의 [운영체제와 정보기술의 원리] 교재를 참고하였습니다. 감사합니다.

https://core.ewha.ac.kr/publicview/C0101020140325134428879622?vmode=f 

 

반효경 [운영체제] 9. Process Management 2

설명이 없습니다.

core.ewha.ac.kr

https://core.ewha.ac.kr/publicview/C0101020140328151311578473?vmode=f

 

반효경 [운영체제] 10. CPU Scheduling 1

설명이 없습니다.

core.ewha.ac.kr

https://core.ewha.ac.kr/publicview/C0101020140401134252676046?vmode=f 

 

반효경 [운영체제] 11. CPU Scheduling 2 / Process Synchronization 1

설명이 없습니다.

core.ewha.ac.kr

 

728x90