PCB

이하연·2021년 8월 15일
0

[OS] 운영체제

목록 보기
3/12

PCB

  • 프로세스는 프로세서에 의해 수행되는 프로그램 단위로 현재 실행 중이거나, 곧 실행 가능한 PCB을 가진 프로그램이다.

PCB 정의

  • 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳
  • 프로세스의 상태 정보를 저장하는 구조체
  • 프로세스 상태 관리와 문맥교환을 위해 필요
  • PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지됨
  • 프로세스 하나당 고유의 PCB가 생성
  • 프로세스가 완료되면 PCB도 함께 제거

Process Control Block의 약자로써, 운영체제(프로그램)가 프로세스를 하나 만들어서 실행할 때 필요한 정보들을 저장해 놓는 저장 장소를 뜻합니다. 어떤 프로세스를 불러왔을 경우 이에 해당하는 프로세스가 무엇인지를 알 수 있도록 프로세스가 생성 시에 PCB라는 곳에서 만들어지며 주기억장치에 유지됩니다. 이는 프로세스 상태 관리와 문맥교환을 위해 필요합니다.

예를 들어, CPU에 급한 프로세스 처리때문에 긴급 요청이 들어왔을 경우, 기존에 작업하던 프로세스를 어딘가에 임시 저장을 해놓아야 급한 애를 빨리 처리한 후에 다시 불러올 수 있겠죠, 즉 프로세스 관한 정보들을 저장할 어딘가의 공간이 필요하고 그 공간이 PCB입니다.

PCB에 포함되는 정보

  1. Process ID
  2. Process State
  3. Program Counter
  4. Register
  5. CPU Scheduling Information
  6. Memory Information
  7. Process Information
  8. Device I/O Status
  9. Pointer
  10. Open File List
  • 3번은 다음 instruction의 주소를 저장하는 카운터로, CPU는 이 값을 통해 프로세스의 instruction을 수행
  • 4번은 Accumulator, CPU Register, General Register 등을 포함
  • 5번 우선순위, 최종 실행시간, CPU 점유시간 등이 포함
  • 6번 해당 프로세스 주소 공간 정보를 저장
  • 7번 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
  • 8번 프로세스에 할당된 입출력 장치 목록, 열린 팔린 목록 등
  • 9번 부모, 자식 프로세스에 대한 포인터, 자원에 대한 포인터 등
  • 10번 프로세스를 위해 열려있는 파일의 리스트

Context Switching에서의 PCB

프로세스A 수행 중에 프로세스B를 수행시키기 위해서 PCB A에 프로세스A 정보를 저장 한 후 PCB B에 저장되어 있던 프로세스B의 정보를 가져와 프로세스B를 수행시킵니다. 이렇게 해당 프로세스의 정보들이 저장되어 있는 공간을 PCB라고 하고 이때 수행중인 프로세스를 변경할 때, 레지스터에 프로세스의 정보가 바뀌는 것을 Context Switching이라고 합니다.

Context Switching

문맥교환이란, CPU가 이전 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어와 레지스터에 적재하는 과정을 말합니다.

프로세스가 준비 → 실행 , 실행 → 준비, 실행 → 대기 등으로 상태 변경이 일어날때 발생됩니다.

** 레지스터는 CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치

0개의 댓글