본문 바로가기
운영체제

3-1 프로세스 관리

by 나는후니 2022. 1. 6.

1. Job Vs Process

지난 포스팅에서 Process를 작업관리자를 통해 쉽게 확인할 수 있다고 언급하였다. 그렇다면 Process는 무엇일까? Job(Program)Process를 구분하여 간단하게 설명하자면 아래와 같다.

  1. Job
    Job은 프로그램이다. 만약 화상회의를 하기 위해 Zoom을 설치했다고 가정하자. 해당 프로그램은 더블 클릭하지 않는 이상 실행되지 않는다. 이때 설치된 Zoom은 Job이자 프로그램이다. 즉, 실행할 프로그램데이터는 존재하지만 아직 컴퓨터 시스템(커널)에 실행 요청이 들어가지 않은 상태를 말한다.
  2. Process
    Zoom은 더블클릭되는 순간 백그라운드에서 작동한다. 즉, 더블클릭하면서 시스템(커널)에 등록된 작업을 Process라고 한다. Process는 시스템 성능 향상을 위해 커널에서 관리한다.

프로세스는 디스크의 프로그램이 메모리에 적재된 상태이다.

정리하자면 프로세스는 커널에 등록되고 커널의 관리하에 있는 실행중인 프로그램 이라고 할 수 있다. 이 프로세스는 커널의 관리하에 자원을 할당 받으며 실행되고 커널의 PCB(Process Control Block) 에 정보를 저장하여 OS로부터 프로세스 관리를 원활하게 만든다.

PCB는 PID, 스케줄링 정보, 프로세스 상태, 메모리 관련 정보, 입출력 상태 정보, 문맥 저장영역, 계정 정보를 관리하고 OS 별로 상이하다. PCB는 OS 성능을 결정 짓는 주요 요소 중 하나이다.

2. Process Status

프로세스 작동 과정을 통해 프로세스의 상태를 알 수 있다.

프로세스 상태 다이어그램

위 이미지와 같이 프로세스 상태를 다이어그램으로 확인할 수 있다. 수평선을 기준으로 ActiveSuspended로 구분되며 이를 구분하는 기준은 메모리의 할당 여부이다. 먼저 Active 상태 먼저 살펴보자.

Active

Created State

Created State

프로세스가 생성되는 시점이다. 디스크의 Job을 커널에 등록하여 PCB를 할당받고 프로세스를 생성한다. 만약 메모리가 할당된다면 Ready 상태로 이어지고, 메모리가 할당되지 않는다면 지연 Ready 상태로 전환된다.

Ready State, Running State, Block State

Ready state는 프로세서(CPU)를 제외하고 모든 자원을 할당받은 상태이다. 프로세서만 할당되면 즉시 실행이 가능하고 Running state로 전환된다. 이후 모든 작업이 종료되면 프로세서를 반납하고 다시 Ready state로 돌아간다. 하지만 Running state에서 프로세서 제외 기타 자원이 필요하다면 Block state로 전환되면서 I/O 자원 할당을 요청하고 요청 성공 시 Ready state로 돌아가 스케줄링에 맞게 정렬된 queue에서 대기한다.

Terminated / Zombie State

프로세스 수행이 모두 종료된 상태이다. 모든 자원이 반납되고 커널에 PCB만 남은 상태로, PCB를 남겨 이후 다시 프로세스가 실행됐을 때 자원을 아낄 수 있도록 정보를 수집한다. 이후 작업을 종료한다.

Suspend

 

'운영체제' 카테고리의 다른 글

3-2 프로세스 관리  (0) 2022.01.07
2. 운영체제 개요  (0) 2022.01.05
1. 컴퓨터 시스템 개요  (0) 2022.01.04