운영체제(OS)

[운영체제] 1. 프로세스(Process) 개념, 상태, 컨트롤 블록(PCB)

앱해피 2015. 7. 12. 16:36

프로세스의 개념

 

* 운영체제는 다양한 프로그램을 실행한다.

 

1) 일괄 처리 방식으로 작업을 처리한다.

 

2) 시분할(Time Shared System) 기반으로 유저 프로그램 및 작업을 처리한다.

 

 

프로그램의 정의

 

1) 프로그램이란 컴퓨터 디스크에 수많은 명령어를 가지고서 저장되어 있는 파일과 같은 개체이다.

 

2) 프로그램 그 자체는 프로세스가 아니다.

 

 

UNIX 프로세스는 무엇인가?

 

1) 프로세스란 실행중인 프로그램의 인스턴스라고 생각하면 된다.

 

2) 프로세스는 실행될 다음 명령어를 가리키는 프로그램 카운터를 갖는다.

 

3) 프로세스는 메모리, 파일, 소켓 등 시스템 자원을 이용해서 실행된다.

 

4) 프로세스는 가상 주소 공간과 제어 정보를 이용해서 실행된다.

 

 

 

 

프로세스 상태

 

프로세스가 실행됐을 때, 여러가지 상태를 갖는다.

 

1) New : 프로세스가 막 생성된 상태

 

2) Running : 프로세스에 포함된 명령어가 실행되는 상태

 

3) Waiting : 프로세스가 특정 이벤트를 기다리는 상태

 

4) Ready : 프로세스가 CPU에 의해서 실행되기 위해 대기하는 상태

 

5) Terminated : 프로세스가 실행을 완료한 상태

 

 

프로세스 컨트롤 블록(PCB, Process Control Block)

 

 

PCB는 프로세스와 관련된 정보를 갖는다.

 

1) Process State

- Ready, Running, Waiting, Halted 등...

 

2) Program Counter

- 다음에 실행될 명령어 주소

 

3) CPU registers

- 여러 범용 목적의 레지스터들

 

4) CPU Scheduling information

- 프로세스의 우선 순위 정보, 스케줄링 큐

 

5) Memory management information

- base와 limit 값, 페이지 테이블 등등..

 

6) Accounting information

- CPU 사용량, 프로세스의 실제 실행 시간

 

7) I/O 상태 정보

- 해당 프로세스에 할당된 디바이스의 목록, Open된 파일의 목록 등등..