본문 바로가기
IT 이론/운영체제

프로세스(Process)와 프로세스 제어 블록(PCB)

by 아이들링 2016. 10. 3.

Process : 

실행되고 있는 프로그램(주 기억장치에 올라가 있는 프로그램)

 

Process in memory

Stack : Call stack, Local variables in function

Heap : 포인터를 위한 메모리 저장공간

(Heap과 Stack은 동적으로 크기가 변하기 때문에 메모리 상에서 멀리 떨어져 있다.)

Data : 전역 변수(바뀌지 않는 값)

Code : 프로그램 코드

 

PCB(Process control block : 프로세스 제어 블록)

structure that contain information associated with each process

- 프로세스가 생성될때 만들어진다.

- 모든 프로세스는 고유한 PCB를 갖는다.


  1. 프로세스의 현재 상태(Process state, ready, waiting, running 등)
  2. 프로세스 고유 식별자(PID , Process IDentifier)
  3. 스케줄링 및 프로세스의 우선순위(CPU scheduling information)
  4. 프로그램의 위치
  5. CPU 레지스터 정보(Registers)
        • 누산기(Accumulator)
        • 인덱스 레지스터(Index Register)
        • 프로그램 카운터(PC , Program Counter)
  6. 각종 자원의 포인터
        • 부모 프로세스에 대한 포인터
        • 자식 프로세스에 대한 포인터
        • 프로세스가 위치한 메모리에 대한 포인터
        • 할당된 자원에 대한 포인터
  7. 주기억장치 관리 정보(Memory-management information)
  8. 입/출력 상태 정보(I/O status information)
  9. 계정 정보(Accounting information)

 

State의 이동은 큐의 이동이다. 큐는 doubly linked list로 이루어져 있다.


Process state

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

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

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

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

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

댓글0