본문으로 바로가기

프로세스(Process)

category Study/system 2018. 4. 20. 19:33


프로세스(Process)란?


프로세스란 프로그램이 주기억장치에 적재되어 실행되는 상태를 말한다.





프로그램 vs 프로세스


프로그램이란 디스크에 저장된 파일과 같은 수동적인 개체를 말한다. 즉, 실행 코드 그 자체를 의미한다. 이러한 프로그램이 주기억장치에 적재되어 처리를 시작할 때 비로소 프로세스라는 활동적인 개체가 된다.





프로세스의 상태


초기 상태(New state)

프로세스가 생성되는 중인 상태


준비 상태(Ready state)

프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태. CPU 할당을 기다리고 있다.


실행 상태(Running state)

프로세스가 CPU를 할당받아 명령어를 실행하는 상태


대기 상태(Blocked state)

프로세스가 어떤 사건을 기다리고 있는 상태. 보류(Block) 상태가 더 정확한 해석이라고 생각한다.


종료 상태(Exit state)

프로세스의 실행이 종료된 상태




프로세스의 상태전이


프로세스가 생성되면 준비 리스트의 끝에 붙게 된다. 준비 리스트 상의 다른 프로세스들이 CPU를 할당받아 준비 리스트에서 사라지면 해당 프로세스는 점점 준비 리스트의 앞쪽으로 나가게 되고, 결국 CPU를 사용할 수 있게된다.


디스패치(Dispatch)

준비 리스트의 맨 앞에있던 프로세스가 CPU를 점유하게 되는 과정. 준비 상태에서 실행 상태로 전이되는 것을 디스패치라고 한다.

(준비 -> 실행)


보류(Block)

실행중인 프로세스가 허가된 시간을 다 쓰기 전에 입출력 동작을 필요로 하는 경우 CPU를 반납하고 해당 사건을 기다리는 대기 상태로 넘어가는 전이과정을 보류라고 한다.

(실행 -> 대기)


깨움(Wake-up)

입출력 작업 종료 등 대기하던 사건이 일어났을 때, 대기 상태에서 준비 상태로 넘어가는 과정을 깨움이라고 한다.

(대기 -> 준비)


할당시간 종료(Timeout)

프로세스가 시스템 자원을 독점하지 못하도록 운영체제가 걸어둔 Clock 인터럽트에 걸렸을 때, 준비 상태로 넘어가는 과정을 말한다.

(실행 -> 준비)






'Study > system' 카테고리의 다른 글

스케줄링(Scheduling)  (0) 2018.04.20
프로세스 제어 블록(PCB)  (0) 2018.04.20
부팅(Booting)  (0) 2018.04.20
작업처리에 따른 운영체제의 분류  (0) 2018.04.20
운영체제(OS)란?  (1) 2018.04.20