다중 프로그램 시스템은 CPU의 사용을 최대화 하기 위한 시스템이다. 다중 프로그램 운영체제의 기본은 CPU스케줄링이다. CPU를 프로세스들 간에 교환함으로써, 컴퓨터를 생산적으로 만든다. 이 다수의 프로세스들을 교환할때 필요한 것이 CPU스케줄링이다.


CPU-입출력 버스트 사이클(CPU-I/O Burst Cycle)

  • 버스트란 특정 기준에 따라 한 단위로서 취급되는 연속된 신호나 데이터의 모임을 말한다. 즉, 입출력 요청을 위해 CPU 사용을 사용했다가 쉬었다가를 반복한다.

  • 프로세스가 CPU를 사용할 때를 CPU버스트, 입/출력을 기다릴 때를 입/출력 버스트라고 한다.

  • CPU 버스트 : CPU에 해당하는 접근이 많은 것이다. running 안에 들어가 있는 시간이 많다. 프로그램 수행 중에 연속적으로 CPU를 사용하는 단절된 구간을 말한다. 즉, CPU명령을 실행하는 것을 말한다.

  • I/O 버스트 : I/O에 해당하는 접근이 많은 것이다. waiting 안에 들어가 있는 시간이 많다.

  • 프로세스의 실행은 CPU 버스트를 시작으로 뒤이어 입출력 버스트가 발생하는 식으로 두 버스트의 사이클로 구성된다. 마지막 CPU버스트는 또 다른 입출력 버스트가 뒤따르는 대신에 실행을 종료하기 위한 시스템 요청과 함께 끝난다.

  • 입출력 중심의 프로그램은 CPU 버스트 시간이 짧을 것이다. 반대로 CPU 지향 프로그램은 CPU 버스트 시간이 길 것이다.


Preemptive Scheduling(선점 스케줄링)

  • 수행되고 있는 프로세서의 권한을 가지고 올 수 있다.

  • 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용한다.

  • 선점으로 인해 많은 오버헤드를 초래할 수 있다.

  • 선점을 위해 인터럽트 타이머 클럭이 필요하다.

  • 종류 : 선점 우선순위, RR(Round Robin), 다단계 큐, 다단계 피드백 큐 알고리즘 등

 

non-Preemptive Scheduling(비선점 스케줄링)

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없다.

  • 한 프로세스가 실행 상태에서 대기 상태로 전환될 때, 프로세스가 종료할 때 비선점 스케줄링을 사용한다.

  • 응답시간 예측이 쉽다.

  • 협조적(cooperative)이며 모든 프로세스를 공정하게 처리한다.

  • 종류 : FCFS, SJF, 우선순위, HRN, 기한부 알고리즘 등


Dispatcher(디스패처)

  • CPU의 제어를 단기 스케줄러가 선택한 프로세스에게 주는 모듈이다. 즉, ready에서 running으로 넘어갈 때 스케줄러에 의해 선택되는 것을 말한다.

    • context switch가 일어나는 일

    • 사용자 모드로 전환하는 일

    • 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동하는 일

  • 디스패처가 하나의 프로세스를 정지하고 다른 프로세스의 수행을 시작하는 데까지 소요되는 시간을 dispatch latency(디스패치 지연)라고 한다. 이는 ready queue에서 running queue로 넘어갈 때 PCB에 복사해 주는 시간을 말하며, 시스템 효율을 결정한다.


 

CPU스케줄링 알고리즘은 다양한 특성을 가지고 있다. 그에 따라 다섯 가지로 기준을 나눌 수 있다.

<기억합시다>

① utilization(CPU 이용률) : CPU를 최대한 바쁘게 유지하는 것이 좋다.

② throughput(처리량) : 단위 시간 당 완료된 프로세스의 개수를 말한다.

③ turnaround time(총 처리 시간) : 프로세스를 실행하는 데 소요된 시간을 말한다. 프로세스의 제출 시간과 완료 시간의 간격을 말한다.

④ waiting time(대기시간) : 프로세스가 ready/waiting queue에서 대기하는 시간을 말한다.

⑤ response time(응답시간) : 응답이 시작되는 데까지 걸리는 시간을 말한다. 처음 반응한 시간을 말한다.

** turnaround time(총 처리 시간) - running에 있는 시간 = waiting time(대기 시간)

 

+ Recent posts