프로세서 관리

개념

  • 프로세서 관리자
    • 주기억장치를 프로세스에 할당하는 기법이 필요한 것처럼 중앙처리장치(CPU)를 프로세스에게 할당하는 기법이 필요함
    • 중앙처리장치 할당은 프로세서 관리자(운영체제)의 역할임
    • 단일 CPU에 프로세스를 할당하는 방법과 시간을 결정함

  • 프로세스 상태
    • 프로세스는 실행 상태에 있는 능동적 프로그램이며, 프로그램은 보조기억장치에 저장된 상태의 수동적 객체임
    • 프로그램이 주기억장치에 적재되고 중앙처리장치를 할당받아 실행될 명령어로 변경되어 다양한 작업을 수행할 수 있는 능동적 객체를 나타냄 (= 프로세스)
    • 운영체제는 프로세스의 정보를 저장하는 프로세스 제어 블록(PCB)을 관리하며, 프로세스의 실행이 끝나면 프로세스 제어 블록을 삭제함
    • 하나의 프로세스가 시스템 내에 존재하는 동안 그 프로세서는 종료될 때까지 생성, 준비, 실행, 대기, 종료와 같은 5개 상태 중 한 상태에 있게 됨

중앙처리장치 프로세스 스케줄링

  • 프로세스 스케줄링 알고리즘의 형태는 크게 선점 스케줄링 기법과 비선점 스케줄링 기법으로 구분 됨

  • 선점 스케줄링
    • 이미 중앙처리장치(CPU)를 점유하여 실행중인 프로세스를 내보내고, 다른 프로세스에게 중앙처리장치에 할당하는 스케줄링 기법

  • 비선점 스케줄링
    • 일단 프로세스에 중앙처리장치가 할당되어 프로세스의 실행이 시작되면, 프로세스가 종료될 때까지 중앙처리장치를 다른 프로세스에게 양보하지 않는 기법
    • 짧은 작업이 긴 작업으로 인해 기다리게 되는 경우가 있지만 모든 프로세스 관리가 공평
    • 장점 : 우선순위에 관계없이 대기 중인 작업에는 변동이 없으므로 응답시간을 예측할 수 있음

  • 우선순위 스케줄링
    • 우선순위가 높은 프로세스부터 먼저 처리하는 스케줄링 기법
    • 우선순위는 여러가지 요인에 의해 결정될 수 있음
    • 기본적 우선순위는 각 프로세스가 요구하는 기억장치의 양, 주변장치의 수와 형태, 중앙처리장치 처리 요구 시간, 작업 처리를 시작한 시점부터 경과된 시간 등을 고려하여 중앙처리장치 관리자에 의해 결정됨
    • 외부적 우선순위는 사용자의 직위나 상거래의 규모 등을 이용하여 시스템 관리자가 결정함
    • 우선순위 스케줄링을 사용하는 경우 프로세스는 일반적으로 우선순위에 따라 배치하기 위해서 여러 개의 준비 큐에 들어감

  • FCFS 스케줄링
    • 준비 큐에 도착한 순서대로 중앙처리장치를 할당받도록 해 주는 기법
    • 하나의 프로세스가 중앙처리장치를 차지하면 그 프로세스의 수행이 완료된 후에 그 다음 프로세스에게 중앙처리장치를 할당함
    • 대기 큐에 늦게 들어온 짧은 작업이 대기 큐에 일찍 들어온 긴 작업을 기다리게 되고, 중요한 프로세스가 덜 중요한 프로세스의 완료를 기다리는 단점이 있음

  • SJF 스케줄링
    • 현재 준비 큐에 있는 프로세스들 중에서 수행시간이 가장 짧을 것으로 예상되는 프로세스를 먼저 처리하는 스케줄링 기법
    • 프로세스의 예상 수행 시간을 실행 입력 이전에 알아야 하므로 일괄처리 환경에서는 구현하기 쉽지만, 대화식 시스템에는 사용자와 컴퓨터간의 상호작용으로 인해 실행시간을 예측할 수 없기 때문에 사용되기 힘듦
    • 대기하는 프로세스의 수를 최소화할 수 있으므로 빠른 응답시간을 제공할 수 있지만, 수행시간이 긴 프로세스는 CPU를 할당 받지 못한 채 계속 기다릴 수 있는 단점도 있음

  • RR 스케줄링
    • 프로세스가 도착한 순서대로 CPU가 할당되지만, CPU의 시간 할당량 또는 시간 간격에 의해 제한을 받는 스케줄링 방식
    • 시간 할당량을 모든 프로세스에 동일하게 주고, 그 시간 동안 완료되지 못한 프로세스는 준비 큐의 맨 뒤에 배치되고 준비 중인 다음 프로세스에게 중앙처리장치를 할당함

Updated: