[운영체제] 7. CPU 스케쥴링 알고리즘 (1)

이호용·2021년 4월 6일
0

운영체제

목록 보기
6/12

아래 내용들은 양희재 교수님의 운영체제 강의를 듣고 정리한 내용입니다.

하드웨어의 역활중 우리가 자주 사용하는 역활로 프로그램들의 저장하는 파일 시스템 목적으로 사용하고, 다른 역활로는 swapping 할때 램의 프로그램을 저장하는 목적으로 backing stor으로 사용한다.

CPU Scheduling

  • ready queue안에 프로그램들이 cpu작업을 받을려고 줄서있다.
  • 어떤 녀석이 cpu작업을 받을지 골라주는 작업이 cpu scheduling이다.

Preemptive vs Non-preemptive

  • 선점 (先占) : 비선점(非先占)

    예를 들면, 일반적으로 병원에서 진료를 받을떄 의사가 진료를 보고 있으면 내 순서는 현재 보고있는 진료가 끝나야 내 진료를 받을수 있다. 이걸 비선점이라고 하고, 응급환자가 입장한 경우 현재 보고 있던 진료를 멈추고 의사가 응급환자를 바로 진료한다 이게 선점이라고 할수 있다.

Scheduling criteria (어떤 방법이 좋고 어떤방법이 나쁘다. 비교하는 척도)

  • CPU Utilization (CPU 이용률 : i/o bound와 cpu bount의 비율로 처리하는 식? 대충 이런느낌인데 정확히 정리 못함...뒤에 나온다니까 나중에 배우자)
  • Throughput (처리율 : 단위 시간당 몇개의 일들을 처리하는지)
  • Turnaround time (반환시간 : ready 큐 부터 프로그램이 시작해서 램에서 나갈 때까지 걸리는 시간)
  • Waiting time (대기시간 : cpu의 서비스를 받기위해 ready queue에서 기다린 시간)
  • Response time (응답시간 : ex. 프로그램을 눌러서 실행 시켰을떄 화면에 나오는 시간)

CPU Scheduling Algorithms (드디어 알고리즘을 >_<)

  • First-Come, First-Served (FCFS) : 먼저 온걸 먼저 서비스함
  • Shortest-Job-First (SJF) : 작업시간이 짧은걸 먼저 처리
  • Priority : 우선순위가 높은걸 먼저처리함.
  • Round-Robin (RR) : 빙빙 돌면서 순서대로처리
  • Multilevel Queue : 큐를 여러개 두고 함.
  • Multilevel Feedback Queue

First-Come, First-Served

  • Simple & Fair : 쉽고 공평함

  • Example: Find Average Waiting Time
    p1 = 24, p2 = 3, p3 = 3 프로세스별로 24,3,3의 msec시간동안 작업을 해야할 작업양을 가지고 있음.
    – AWT(평균 대기시간) = (0+24+27)/3 = 17 msec cf. 3 msec!
    반대로 순서를 p3, p2, p1순서로 작업을 진행하면
    (0 + 3 + 6) / 3 = 3 msec

  • Gantt Chart

  • Convoy Effect (호위효과) : cpu연산이 긴 작업이 앞에 있으면 뒤에 짧은 작업이 따라가는 느낌과 같아서 convoy effect라고 한다.(fcfs)

  • Nonpreemptive scheduling : 응급환자는 못받음..

0개의 댓글