운영체제, 프로세서 관리
프로세서 관리란?
다수의 프로세스들이 준비 상태에 있을 때, CPU가 어느 프로세스를 먼저 처리하도록 할 것인가를 결정하기 위한 제반 사항을 총칭하고 CPU 스케줄링(CPU Scheduling) 이라 부르기도 한다.
장기 스케줄링(Long-term Scheduling)
어느 프로그램을 주기억 장치에 먼저 적재할 것인가를 결정한다. 잡(Job) 스케줄링 이라고도 한다.
중기 스케줄링(Midium-term Scheduling)
프로세스가 일단 적재 되었는데 메모리가 부족할때 어느 프로세스를 희생 시킬 것인가를 결정한다. 희생된 프로세스를 하드 디스크로 옮기는 것을 스왑 아웃 이라고 하고, 다시 메모리로 옮기는 것을 스왑 인이라고 한다.
단기 스케줄링(Short-term Scheduling)
적재되어있는 여러 프로세스가 일단 CPU를 받을 자격이 되는데, 어느 프로세스에게 먼저 CPU를 줄것인가를 결정한다. time interrupt를 이용한다.
사용자 관점에서의 CPU스케줄링 전략의 목표 및 기준
사용자들은 운영체제 등 컴퓨터 시스템 내부 사정과 관계없이 자신의 일이 빨리 처리되기를 바란다.
-
응답 시간(Response Time)
사용자 입력에 대하여 출력이 이루어 질 떄까지 소요되는 시간을 말한다. 응답 시간을 지표삼아 전반적인 시스템의 성능을 평가할 수도있는데 이를 bench program이라고 한다.
-
반환 시간(Turnaround Time)
프로그램이 시작된 후 최종 결과물을 얻을 때까지 소요되는 시간으로 총 처리 시간이라고도 한다.
-
대기 시간(Waiting Time)
프로세스가 CPU를 얻기 위해 대기열에서 기다리는 시간.
시스템 관점에서의 CPU스케줄링 전략의 목표 및 기준
-
CPU이용률(CPU Utilization)
전체 시간 중 순수하게 사용자 프로세스를 위해 실행한 시간의 비율
-
처리량(Throughput)
단위 시간당 처리하는 프로세스의 수
-
가용성(Availability)
전체 운용 시간대 서비스 시간, 때로는 특정 자원을 요청했을 때 즉시 얻을 수 있는 정도를 의미하기도 한다.
CPU 스케줄링이 이루어지는 시기
-
프로세서가 입출력을 요구 했을때
입출력 요구시 CPU는 다른 프로세스한테 간다. 자율적인 CPU반납이다.
-
프로세스가 종료를 요구할 때
자율적인 CPU반납이다.
-
높은 순위의 프로세스를 만났을 때
타율적인 CPU반납.
-
주어진 CPU실행 시간이 초과 되었을 때
어느 한 프로세스가 연속해서 사용할 수 있는 최대 시간을 설정하고, 시간이 초과된 경우 CPU를 다른 프로세스에게 할당할 수 있다. 타율적인 CPU반납
스케줄링 전략 분류
-
비선점(Non-preemption)형
일단 CPU가 할당되면, 해당 프로세스가 입출력이나 종료를 요구하지 않는 한 중단 없이 실행을 지속하는 운영체제 환경이다.
-
선점(Preemption)형
자율적 반납은 물론 타율적 CPU반납까지 이루어지는 운영체제 환경이다.