운영체제 공부하다가 스케쥴링에 의문?이 생겨서 질문드립니다.

김희진@Google의 이미지

다음 프로세스들이 선점형 라운드 로빈 스케줄링 알고리즘에 의해 스케줄 되고 있다.
각 프로세스에게 높은 숫자가 높은 우선순위를 나타내는 번호 우선순위가 할당된다.
아래에 나열된 프로세스에 추가로 시스템은 아이들 태스크를 스케줄 해야 한다(이 태스크는 CPU 자원을 소모하지 않으며 Pidle로 표시한다).
이 태스크의 우선순위는 0이고 시스템에 실행할 프로세스가 없는 경우 스케줄 된다.
시간 할당량의 길이는 10 단위이다.
프로세스가 높은 우선순위의 프로세스에 의해 선점되면, 선점된 프로세스는 큐의 마지막에 넣어진다. >

Operating System Concepts 즉, 공룡책을 공부하는데 위와 같은 문제가 있습니다.

표는 아래와 같습니다....

쓰레드  버스트시간   우선순위   도착시간
  P1        40          20         0
  P2        30          25         25
  P3        30          25         30
  P4        35          15         60
  P5         5          10         100
  P6        10          10         105

0 - 10 : P1
10 - 20 : P1
20 - 25 : P1
25 - 30 : P2 (P2 도착시간 때, P1보다 우선순위가 높으니 P1이 선점되고 P2가 스케쥴 되는거라고 생각합니다)
30 - 40 : ? 이 구간 부터 잘 모르겠습니다.

문제에서는 프로세스가, 높은 우선순위의 프로세스에 의해 선점되면
선점된 프로세스는 레디큐의 마지막에 넣어진다... 고 했는데 P3도 30 때, 큐에 들어오고, P2도 마찬가지로
큐에 들어가는것 아닌가요? 만약 큐안에 같은 우선순위를 가진 프로세스가 있다면, 먼저 들어온 순서대로
스케쥴링 되는것 아닌가요?
그렇다면 P2가 먼저 큐에 들어오게 되나요, 아니면 P3가 먼저 큐에 들어오게 되나요?? 계속 생각해봤는데
뭐가 먼저인지 잘 모르겠습니다...

라스코니의 이미지

선점된 프로세스는 레디큐의 마지막에 넣어진다... 고 했는데 P3도 30 때, 큐에 들어오고, P2도 마찬가지로
큐에 들어가는것 아닌가요? 만약 큐안에 같은 우선순위를 가진 프로세스가 있다면, 먼저 들어온 순서대로
스케쥴링 되는것 아닌가요?

==> 맞습니다. 그리고 라운드 로빈으로 도는 경우라면 일정시간(위의 예제에서는 10)을 같은 우선순위를 가진 프로세스끼리 번갈아 가면서 사용합니다.

30-40 구간에서는 앞의 구간에서 P2가 5밖에 점유를 못했기 때문에 P3가 도착했을 때 스케줄러는 여전히 P2에게 5만큼 더 CPU를 부여할 것이고, t=35가 되었을 때 P3가 스케줄링(CPU를 받음)될 겁니다.
t=45까지 P3가 실행되고 그후 다시 P2가 t=55까지 실행되고 .... 그렇게 될 것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.