프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

운영체제 - 2016 중간시험 자료 및 예상문제

1. 일체형 커널과 마이크로 커널을 비교하며 설명하라.

  • 일체형 커널
  • 모든 운영체제의 요소가 커널 내부에 포함된다. 그러므로 운영체제 서비스들이 공유 메모리를 이용하여 서로 효율적으로 상호 작용할 수 있는 구조이다.

  • 마이크로 커널
  • 마이크로 커널은 커널 내부에는 메모리 관리, 멀티태스킹, 프로세스간 통신(IPC) 등의 최소한의 요소들만 남겨놓고 대부분의 요소들을 커널 외부의 서버로 분리한 구조로서, 새로운 서비스를 추가하여 운영체제를 확장하기 쉽고 유지보수가 용이하며 안정성이 우수하다는 장점을 갖는다.

    2. 운영체제를 구성하는 4개의 서브시스템에 관하여 기술하라.

  • 프로세스 관리자
  • 프로세스를 생서, 삭제 , CPU 할당을 위한 스케줄 결정, 프로세스의 상태를 관리하며 상태 전이를 처리

  • 메모리 관리자
  • 메모리 공간에 대한 요구의 유효성 체크, 메모리 할당 및 회수와 메모리 공간 보호.

  • 장치 관리자
  • 컴퓨터 시스텡의 모든 장치를 할당, 작동 시작, 반환.

  • 파일 관리자
  • 컴퓨터 시스템의 포든 파일을 관리, 파일의 접근제한 관리, 파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수.

    3. 프로세스의 다섯 가지 상태와 이들 사이의변화를 그림으로 설명하라.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke


    4. 선점 스케줄링 정책과 바선점 스케줄링 정책을 바교하며 설명하라.

  • 선점(Impreemptive) 스케줄링 정책
  • - 진행 중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당하는 전략.
    - 높은 우선순위의 프로세스를 긴급하게 처리하는 경우에 유용.
    - 대화식 시분할 시스템에서 빠른 응답시간을 유지하는데 유용.
    - 문맥교환에 따른 오버헤드 발생.

  • 비선점(Nonimpreemptive) 스케줄링 정책
  • -프로세스가 CPU를 할당받아 실행이 시작되면 작업 자체가 I/O 인터럽트를 걸거나 종료할 때까지 실행상태에 있게됨.
    - 모든 프로세스가 공정하게 순서에 따라 실행하게 됨 --> 응답시간 예측가능.
    - 짧은 프로세스가 긴 프로세스를 기다리게 될 수 있음.

    5. FCFS, SJF, SRT, RR(시간할당량 2) 스케줄링 알고리즘 각각에 대해 다음 질문에 다하라

    알고리즘을 설명하라,

  • FCFS
  • 먼저 입력된 프로세스를 먼저 처리한다.(비선점)

  • SJF
  • 가장 짧은 실행시간을 갖은 프로세스를 먼저 처리한다.(비선점)

  • SRT
  • 가장 짧은 실행시간이 남은 프로세스를 먼저 처라한다.(선점)

  • RR(시간 할당량 = 2)
  • 할당시간 만큼만 실행하고 준비한다.(선점)

    프로세스별 도착시간과 실행시간이 표와 같을 때, 프로세스가 실행되는 순서를 그림으로 표시하라.

    도착시간 0 0 2 5
    프로세스 A B C D
    CPU 사이클 4 5 1 2
  • FCFS
  • SJF
  • SRT
  • RR(시간 할당량 = 2)
  • (다) (나)의 결과에 따른 평균 대기시간과 평균 반환시간을 계산하여라.

  • FCFS
  • 평균 대기시간 :


    평균 반환시간:

  • SJF
  • 평균 대기시간 :

    평균 반환시간:

  • SRT
  • 평균 대기시간 :

    평균 반환시간:

  • RR(시간 할당량 = 2)
  • 평균 대기시간 :

    평균 반환시간:

    6. 임계영역의 개념과 임계영역에서 프로세스 간에 상호배제가 필요한 이유를 예를 들어 설명하라.

  • 임계영역
  • 2개 이상의 프로세스가 동시에 액세스하면 안 되는 공유 자원을 액세스하는 코드 영역

  • 프로세스 간에 상호 배제가 필요한 이유
  • 예금통장:

    입급과 출금이 동시에 이루어질경우 서로 다른 프로세스에서 연산하는 시간동안에 변동되어지는 값들이 동기화가 이루어지지 않을경우 발생하는 치명적인 오류를 방지하기위해 프로세스들 간의 상호배제는 꼭 이루어져야 한다

    입금과 출금을 서로 다른 프로세스로 놓고 설명하면 된다.

    목차

    1. 스케줄링 성능 평가 기준
    2. FCFS 스케줄링
    3. SJF 스케줄링
    4. SRT 스케줄링
    5. RR 스케줄링
    6. HRN 스케줄링
    7. 다단계 피드백 큐 스케줄링

    스케줄링 성능 평가 기준

    1. 평균 대기시간(Average waiting time)
      • 각 프로세스가 수행이 완료될 때까지 준비 큐에서 기다리는 시간의 합의 평균값
    2. 평균 반환시간(Average turnaround time)
      • 각 프로세스가 생성된 시점(여기서는 준비 큐에 들어온 시점과 동일한 것으로 가정)부터 수행이 완료된 시점까지의 소요시간의 평균값

    FCFS 스케줄링

    • 비선점 방법이자 스케줄링 알고리즘 중 가장 간단한 기법이다.
    • 프로세스는 준비 큐에서 도착순서에 따라 디스패치되며, 일단 한 프로세스가 CPU를 차지하면 그 프로세스의 수행이 완료된 후에 그 다음 프로세스가 CPU 차지하고 수행된다.
    • 겉보기에는 공정하지만, 짧은 작업이 긴 작업을 기다리게 되기도 하고 중요한 프로세스가 나중에 수행될 수 있는 불합리함이 있어 대화식 시스템에 부적합하다
    • 최근 시스템에서 FCFS 스케줄링은 주요 방법이 아니라 다른 방법과 결합하여 쓰이고 있다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    예제

    4개의 프로세스가 다음과 같은 실행시간을 가지고 있다고 가정해보자. 4개의 프로세스 A, B, C, D가 거의 동시에 입력되었다면, FCFS 스케줄링 알고리즘의 수행결과는 다음과 같다.

    프로세스 A B C D
    CPU 사이클 6 3 1 4
    대기시간 0 6 9 10
    반환시간 6 9 10 14

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    SJF(Shortest Job First) 스케줄링

    • 준비 큐에서 기다리는 프로세스 중 실행시간이 가장 짧다고 예상된 것을 먼저 디스패치하여 실행하는 비선점 스케줄링 알고리즘이다.
    • 일괄처리 환경에서 구현이 쉽고 알고리즘으로 실행할 프로세스의 CPU 소요시간이 미리 주어진다.

    예제 1

    4개의 프로세스가 동시에 입려되어 모두 준비 큐에 들어 있고 예상한 프로세스 각각의 실행시간은 다음과 같다.

    프로세스 A B C D
    CPU 사이클 6 3 1 4

    SJF 스케줄링 알고리즘은 4개의 프로세스를 분석한 후 실행시간이 가장 짧은 것부터 실행하기 때문에 다음과 같은 실행결과를 도출한다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    예제 2

    이번에는 4개의 프로세스가 1단위의 CPU 사이클 시간의 차이를 두고 연속적으로 입력되는 경우를 가정해본다.

    도착시간 0 1 2 3
    프로세스 A B C D
    CPU 사이클 6 3 1 4
    대기시간 0 6 4 7
    반환시간 6 9 5 11

    먼저 도착한 A가 먼저 실행된다. 그동안 B, C, D가 차례로 도착하고 B, C, D 프로세스를 분석해 실행시간이 가장 짧은 C -> B -> D 순서로 실행한다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    SRT(Shortest Remaining Time) 스케줄링

    • SJF 알고리즘의 선점(preemptive) 알고리즘 버전으로, 새로 들어오는 프로세스를 포함하여 실행이 끝날때까지 남은 시간 추정치가 가장 짧은 프로세스를 먼저 디스패치하여 실행한다.
    • 대화형 운영체제에 유용하다.
    • SRT가 SJF보다 평균 대기시간이나 평균 반환시간에서 효율적이다.
    • SRT는 실행되는 각 작업의 실행시간을 추적하여 각 프로세스가 서비스를 받은 시간이 기록되어야 하며 때로는 선점을 위한 문맥 교환되 해야 하므로 SJF보다 오버헤드가 더 크다.
    • SRT는 빠르지만 일반적인 운영체제에서는 그러한 장점이 문맥교환에 요구되는 시간을 고려하여 평가되어야 한다.

    예제 1

    4개의 프로세스가 1단위의 CPU 사이클 시간의 차이를 두고 연속적으로 입력되는 경우를 가정해본다.

    도착시간 0 1 2 3
    프로세스 A B C D
    CPU 사이클 6 3 1 4

    새로운 프로세스가 도착할 때마다 [n번째 프로세스의 남은 시간 추정치]와 [n+1번째 프로세스들의 시간 추정치]를 비교하여 추정치가 가장 짧은 프로세를 먼저 디스패치하여 실행

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    프로세스 A B C D
    대기시간 8 1 0 2
    반환시간 14 4 1 6

    RR(Round Robin) 스케줄링

    • 대화형 시스템에서 사용되는 선점 스케줄링 방식이다.
    • 프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간 할당량에 의해 실행을 제한한다.
    • 시간 할당량을 매 프로세스에 주고 할당된 시간 안에 완료하지 못한 프로세스는 준비 큐의 맨 뒤에 배치되도록 하여 CPU 독접하지 않고 공평하게 이용이 가능하다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    예제

    다음과 같이 4개의 프로세스가 주어지고 시간 할당량은 3이라고 가장하자.

    도착시간 0 1 2 3
    프로세스 A B C D
    CPU 사이클 6 3 1 4

    모든 프로세스가 시간할당량 3만큼의 시간을 부여받고 완료하지 못한 프로세스는 준비 큐의 맨 뒤로 배치하여 순서를 기다린다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    프로세스 A B C D
    대기시간 7 2 4 7
    반환시간 14 5 5 11

    HRN(Highest Response Ratio Next) 스케줄링

    • 준비 큐에서 기다리는 프로세스 중 응답비율이 가장 큰 것을 먼저 디스패치하여 실행하는 비선점 스케줄링 알고리즘
    • 각 프로세스의 응답비율은 다음과 같이 계산한다. 즉, 예상 실행시간이 짧을수록, 그리고 대기시간이 길수록 응답비율이 커진다.

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    • SJF 스케줄링의 단점을 보완한 것으로 SJF에서는 예상 실행시간이 긴 프로세스가 먼저 들어왔더라도 이후에 실행시간이 짧은 프로세스가 계속해서 들어오면 우선순위에서 계속 밀렸다. 그러나 HRH 스케줄링은 실행시간이 긴 프로세스라 하더라도 대기시간이 길어지면 응답비율도 커져서 자기보다 실행시간이 짧은 프로세스가 들어오더라도 우선순위에서 밀리지 않을 수 있다.

    예제

    도착시간 0 1 2 3
    프로세스 A B C D
    CPU 사이클 6 3 1 4

    HRN 스케줄링 과정

    1) A 도착 시 응답비율 (0+6)/6=1    
    2) B, C, D는 준비 큐에 대기      
    3) B, C, D 응답비율 비교 B : (5+3)/6=8/3=2.67 C : (2+2)/2=4/2=2 D : (0+1)/1=1
    4) 응답비율 가장 큰 C 실행      
    5) C, D 응답비율 비교 C: (5+2)/2=3.5 D : (3+1)/1=4  
    6) 응답비율이 가장 큰 D 실행      
    7) C 실행      

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke

    다단계 피드백 큐(Multilevel Feadback Queue) 스케줄링

    • 선점 스케줄링 방식
    • 입출력 중심인 프로세스와 CPU 중심인 프로세스의 특성에 따라 서로 다른 시간 할당량을 부여
    • n개의 단계가 있는 경우, 각 단계마다 하나씩의 큐가 존재하며, 단계 k는 단계 k+1에 피드백을 주며, 단계가 커질수록 시간 할당량은 커지는 형태로 구성

    예제

    1) 처음 프로세스 도착하면 단계 1 큐에 들어간다.
    2) 해당 큐의 시간 할당량 만큼 도착한 순서대로 프로세스 처리(FCFS)
    3) 시간 할당량을 다 썼지만 프로세스가 종료되지 못했다면 다음 단계의 큐로 이동 배치
    4) 3)의 과정을 반복하며 마지막 n단계 시간 할당량만큼 실행 후 종료되지 못한 경우 RR 스케줄링 방식으로 동작

    프로세스 별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스 들이 실행되는 순서를 시간과 함께 - peuloseseu byeol dochagsigangwa pil-yohan CPU saikeul-i pyowa gat-eul ttae, SJF seukejulling algolijeumgwa SRT seukejulling algolijeum gaggag-e daehae peuloseseu deul-i silhaengdoeneun sunseoleul sigangwa hamkke