본문 바로가기
기초 CS 정리

Process Control Block(PCB)와 Context Switching

by 쿠리의일상 2023. 1. 29.
  • Process Management : CPU의 프로세스가 여러 개 일 때, CPU 스케줄링을 통해 관리하는 것을 말한다.
  • Process Metadata : 프로세스들의 특징을 가지고 있는 것
    • Process ID
    • Process State
    • Process Priority
    • CPU Registers
    • Owner
    • CPU Usage
    • Memory Usage
해당 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)에 저장된다.

 

PCB(Process Control Block)

프로세스 메타데이터들을 저장하는 곳

PCB 안에는 한 프로세스의 정보가 담긴다.

프로그램 실행 → 프로세스 생성 → 프로세스 주소 공간에 {코드, 스택, 데이터} 생성 → 이 프로세스의 메타데이터들이 PCB에 저장

  • PCB이 필요한 이유
    • CPU에서는 프로세스의 상태에 따라 교체작업이 이루어진다.
    • 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장값을 PCB에 저장해두기 위해.

interrupt 가 발생해서 할당받은 프로세스가 waiting 상태가 되고 다른 프로세스를 running으로 바꿔 올릴 때

  • PCB 관리
    • Linked List 방식
    • PCB List Head에 PCB이 생성될 때마다 붙게 된다. 주소값으로 연결이 이루어져 있는 연결리스트므로 삽입/삭제가 용이하다. 즉, 프로세스가 생성되면 해당 PCB가 생성되고 프로세스 완료 시 제거된다.

 

Context Switching

수행 중인 프로세스(프로세스가 Ready → Running, Running → Ready, Running → Waiting처럼 상태가 변경 될 때)를 변경할 때 CPU의 레지스터 정보가 변경되는 것
  • CPU가 이전의 프로세스 상태를 PCB에 보관하고 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정
  • 인터럽트가 발생하거나 실행 중인 CPU 사용 허가시간을 모두 소모하거나 입출력을 위해 대기해야하는 경우 Context Switching이 발생
  • Context Switching의 OverHead란?

프로세스 작업 중에는 오버헤드를 감수해야 하는 상황이 있는데, CPU에 계속 프로세스를 수행시키도록 하기 위해서 다른 프로세스를 실행시키고 컨텍스트 스위칭해주는 상황이다.

→ 프로세스를 실행하다가 입출력 이벤트가 발생하여 대기 상태로 전환시키는데, CPU를 놀게 놔두는 것보다 다른 프로세스를 수행시키는 것이 효율적이다.

그래야 CPU가 놀지 않고 사용자에게 빠르게 일처리를 제공해준다.

'기초 CS 정리' 카테고리의 다른 글

CPU Scheduling  (0) 2023.01.31
IPC(Inter Process Communication)  (0) 2023.01.30
System Call 시스템 콜  (0) 2023.01.29
프로세스와 스레드, 인터럽트(Interrupt)  (0) 2023.01.28
운영체제  (0) 2023.01.27