운영체제

[운영체제] PCB(Process Control Block)

ssh9308 2024. 5. 14. 16:29
반응형

PCB(Process Control Block) 란?

 

프로그램이 메모리에 올라가서 실행 중인 상태를 "프로세스(Process)"라고 말한다.

운영체제는 여러개의 프로세스를 전부 다 관리하고 공평하게 실행시켜야 한다.

 


프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 

 

PCB(Process Control Block)를 만들고 저장한다.

 

PCB는 운영 시스템이 프로세스의 상태를 추적하고, 필요할 때 적절한 자원을 할당하며,

 

 

프로세스 간 전환(context switching)을 효율적으로 수행할 수 있도록 돕는다.

 


PCB 들은 연결리스트(Linked List)라는 자료구조로 저장이 된다.

운영체제는 프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거한다.

 

 

 

PCB의 구조

 

PCB 의 구조는 아래와 같다.

 

포인터

 

포인터는 부모와 자식 프로세스에 대한 포인터와 할당된 자원에 대한 포인터가 있고, 

 

프로세스의 한 상태에서 다른 상태로 전환될 때 저장하는 포인터를 가지고 있다.

 

 

 

프로세스 상태

 

프로세스 상태는 현재 프로세스의 5가지 상태

 

생성(new), 준비(ready), 실행(running), 대기(waiting), 완료(terminated) 등을 나타낸다.

 

 

 

프로세스 ID

 

프로세스 ID는 프로세스를 식별하기 위한 숫자가 저장된다.

 

 

프로그램 카운터

 

프로그램 카운터는 다음에 실행될 명령어의 주소를 포함하는 프로그램 카운터를 저장한다.

오늘날 OS는 시분할처리로 여러 프로세스를 짧은 시간 동안 번갈아 실행한다.

어떤 프로세스가 실행되다가 다른 프로세스에게 CPU 를 뺏기고 다시 실행될 때, 

 

원래 실행하던 명령어가 실행되어야 하기 때문에

프로그램 카운터가 반드시 존재해야 한다.

 

 

 

레지스터 정보

 

레지스터 정보는 프로세스가 실행될 때 사용했던 레지스터 값들이 저장된다.

 

이 정보는 프로세스가 중단되었다가 다시 시작될 때 필요하며,

 

프로세스 전환 시에도 중요하다.

 

 

 

메모리 관련 정보

 

메모리 관련 정보에는 프로세스가 메모리에 있는 위치 정보, 

 

메모리 침법을 막기 위한 경계 레지스터 값 등이 저장된다.

 

 

 

CPU 스케줄링 정보

 

CPU 스케쥴링 정보에는 CPU 스케쥴링에 필요한 우선순위, 최종 실행시간, CPU 점유시간 등이 저장된다.

 

 

 

 

 

 

반응형