[운영체제] CPU 스케줄링 1

yeonjkim·2021년 11월 10일
0

운영체제

목록 보기
7/11

CPU 스케줄링

CPU 스케불링 : ready queue안에, 즉 메모리 안 여러 프로세스가 대기하고 있을 때 어떤 프로세스를 먼저 CPU 서비스 받게 할 것인지 스케줄링함.
즉 CPU에게 다음에 어떤 일을 하게 할 것인지 스케줄링하기 때문에 CPU 스케줄링이라고 불린다.

CPU 스케줄링은 선점과 비선점 방식으로 나뉘어진다.

CPU 스케줄링의 종류 : 선점 스케줄링과 비선점 스케줄링

  • 선점 방식 : Time Sharing System에서 타임 슬라이스가 모두 소진되거나 더 높은 우선 순위 프로세스가 발생되었을 때 현 프로세스로부터 CPU를 강제로 회수할 수 있는 것을 말한다.

  • 비선점 방식 : 프로세스가 자원을 할당 받았을 경우, 자원을 스스로 반납할 때까지 계속 그 자원을 사용하도록 허용하는 정책이다.

즉 선점 방식은 한 프로세스가 다른 프로세스가 실행 중인데도 중간에 cpu를 가로챌 수 있는 것이고, 비선점 방식은 중간에 cpu를 가로챌 수 없는 것이다.

스케줄링의 척도(Scheduling criteria)

  • CPU Utilization (CPU 이용률) : a - b - c (80% 이용) < b - a - c (100% 이용) 이용률이 높을수록 좋다.
  • Throughput (처리율) : 시간당 작업 처리율. 작업 처리율이 높을수록 좋다.
  • Turnaround time (반환 시간) : 작업이 ready queue에 들어가서 작업을 끝내고 나올 때까지의 시간. 위의 천이도에서 프로세스가 생성되고 종료되기까지의 시간. 반환 시간이 적을수록 좋다.
  • Waiting time (대기시간) : CPU 서비스를 받기 위해 ready queue에서 얼마나 기다렸는지이다. 대기 시간이 적을수록 좋다.
  • Response time(응답시간) : Interactive system에서 중요. 응답 시간이 적을수록 좋다.

CPU Scheduling Algorithms(CPU 스케줄링 알고리즘)

  • First-Come First-Served (FCFS) : 먼저 큐에 온 프로세스가 먼저 서비스된다.
  • Shortest-Job-First (SJF) : 작업시간 짧은 프로세스를 먼저 서비스한다.
  • Priority : 우선순위가 높은 순으로 먼저 서비스한다.
  • Round-Robin(RR) : 돌면서 순서대로 서비스한다.
  • Multilevel Queue : queue를 여러 개 둔다.
  • Multilevel Feedback Queue : queue를 여러 개 둔다.

1. First-Come First-Served (FCFS)

  • 간단하고 공정함.
  • FCFS가 꼭 좋은 성능을 가진 것은 아니다. 예시 : 평균 대기 시간과 비교하기.

    1 ) P1 -> P2 -> P3 순서로 job queue에 도달했을 때 FCFS 같은 경우에는 아래와 같이 프로세스가 실행됨.

    p1과 p2, p3의 순서로 프로세스가 실행되니 average waiting time을 계산해보면 17 msec이 도출된다.
    2) 반면 p2 -> p3 -> p1의 순서로 프로세스가 실행된다고 해보자.

    p2과 p2, p3의 순서로 프로세스가 실행되니 average waiting time을 계산해보면 3msec이 도출된다.

따라서 FCFS의 방식이 항상 성능이 좋은 것이 아니라는 것을 알 수 있다.

이렇듯 CPU 실행시간이 긴 프로세스가 앞에 오는 것을 호위효과라고 한다.

  • 호위효과 : 왕이 가면 시중이 따라가듯, cpu 실행시간이 긴 프로세스가 앞에 나와 나와 나머지 프로세스가 뒤에서 오랫동안 기다리는 것을 말한다.
  • FCFS는 비선점 스케줄링에 속한다.

0개의 댓글