-->

[정보처리기사] 프로세스의 상태전이와 제어블록(PCB), 스레드와의 차이점

프로세의 정의

프로세스는 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 말한다.

 

 

프로세스 상태전이

프로세스 상태전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다. 먼저 프로세스의 상태에는 다음과 같은 것들이 있다. 원래 정보보안기사에서 접했던 상태전이 관련 용어와 약간의 차이가 있는데 익숙한 것으로 정리하겠다.

 

- 보류상태 (pending) : 작업이 일시중지됐거나 디스크에 수록된 상태

- 준비상태 (ready) : CPU를 할당받을 수 있는 상태로 CPU가 자신을 처리해주기를 기다리고 있는 상태

- 실행상태 (running) : 프로세스가 CPU를 차지하고 있는 상태

- 대기상태 (blocked) : 프로세스가 CPU를 차지하고 실행되다가 대기큐에서 대기하게된 상태

- 교착상태 (deadlock) : 프로세스가 결코 일어날 수 없는 사건의 발생을 기다리는 상태

- 완료상태 (terminated) : 프로세스가 CPU를 할당받아 완전히 수행을 종료한 상태, PCB에서도 삭제됨

 

 

프로세스 상태전이는 다음과 같이 4가지가 존재한다.

 

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

- 할당시간초과 (Time Run Out) : 실행 -> 준비

- 대기 (Block) : 실행 -> 대기

- 깨움 (Wake Up) : 대기 -> 준비

 

 

프로세스 제어블록 (PCB)

PCB는 운영체제가 그 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블을 말한다. 프로세스가 생성될 때 만들어지며 모든 프로세스는 각각 고유한 PCB를 갖게 된다.

 

- PCB 이름

- 상태

- 소유자

- 실시간통계

- 스레드

- 관련 프로세스 리스트

- 자식 프로세스 리스트

- 주소공간

- 자원

- 스택 

 

 

스레드(Thread)란?

프로세스의 구성을 제어프름과 실행부분으로 나눈다면 스레드는 프로세스의 실행부분을 담당하며 실행의 기본 단위가 된다. 

 

- 중앙처리장치 사용의 기본단위

- 한 프로세스 안의 다른 스레드들과 코드, 데이터, 자원 등을 공유

- 각 스레드는 독립적 제어흐름을 가지고 자신만의 스택, 레지스터를 가지게 됨

 

댓글

Designed by JB FACTORY