본문 바로가기

운영체제

[운영체제 이론] 프로세스(process)

1. 프로그램(program)과 프로세스(process)의 개념

프로그램이란 디스크내의 실행가능한 파일을 말하며,

프로세스란 현재 실행중인 프로그램을 말하며 태스크(task)라고도 부른다.

프로세스는 시스템작업의 기본단위로 모든 운영체제는 프로세스개념을 바탕으로 동작한다.


예를들어

윈도우환경에서 엑셀 프로그램이 있을때

이를 실행하여 엑셀창(윈도우)를 띄우면 이는 프로세스가 된다.




2. 프로세스 제어 블록(PCB, Process Control Block) - 프로세스 요소

프로세스 제어 블록이란 프로세스를 관리하기 위해 필요한 프로세스 요소들의 자료구조이다.


운영체제가 현재 CPU 제어권을 다른 프로세스에 넘겨줄 때 현재 실행중인 프로세스의 정보를 PCB에 저장한다.

CPU 제어권을 다시 넘겨받은 경우 PCB에 저장되있는 정보를 불러와 실행한다.



PCB는 주로 다음과 같이 구성된다.


프로세스 식별자(Identifier)

상태(State)

우선순위(Priority)

메모리 포인터(Memory pointer)

프로그램 카운터(Program counter)

I/O 상태정보(I/O status information)

...





3. 프로세스 상태(5-상태 프로세스 모델)

2상태모델, 5상태모델, 7상태모델 등이 있으나 가장 기본이 되는 5상태모델 기준의 프로세스 상태이다.

하나의 프로세스는 생성되어 종료될 때까지 5가지의 상태를 가진다.


생성(New) : 프로세스가 생성되었지만 실행가능한 프로세스 집합에 소속되지 못한 상태(프로그램이 메모리에 적재되지 않은 상태)

준비(Ready) : CPU를 할당받기위해 준비중인 상태

실행(Running) : CPU를 할당받아 명령어를 실행중인 상태

대기(Block) : 어떤 사건이 발생하기를 기다리고 있는 상태

종료(Exit) : 프로세스가 실행 종료된 상태(프로그램이 메모리에서 해제된 상태)




4. 프로세스 상태 전이

프로세스는 아래와 같은 상태 전이를 가지며 주로 아래와 같이 명명한다.


디스패치(Dispatch) : 준비 -> 실행

타임 아웃(Timeout) : 실행 -> 준비

대기(block) 또는 사건 준비(Event Wait) : 실행 -> 대기

깨움(wakepu) 또는 사건 발생(Event Occurs) : 대기 -> 준비