[운영체제] 1. 프로세스(Process) 개념, 상태, 컨트롤 블록(PCB)
프로세스의 개념
* 운영체제는 다양한 프로그램을 실행한다.
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된 파일의 목록 등등..
'운영체제(OS)' 카테고리의 다른 글
[IEEE754] float, double 부동 소수점에 대해서 (0) | 2015.11.28 |
---|---|
[운영체제] IPC(Inter Process Communication) 공유 메모리, 메시지 전달 [Shared Memory, Message Passing] (0) | 2015.07.12 |
[운영체제] 3. 프로세스(Process) 생성, 종료, 좀비 (0) | 2015.07.12 |
[운영체제] 2. 프로세스(Process) 스케줄링, 스케줄러, 문맥 전환 (0) | 2015.07.12 |