Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 2.43 KB

06. PCB & Context Switching.md

File metadata and controls

45 lines (33 loc) · 2.43 KB

PCB & Context Switching

PCB (Process Control Block)


image


  • 프로세스가 여러 개일 때, CPU가 CPU 스케쥴링을 통해 관리하는 것을 Process Management 라고 한다. 이때 CPU는 각 프로세스들이 누군이 알아야 관리가 가능하다.
  • 이러한 프로세스의 특징을 갖고 있는 것을 Process Metadata 라고 하고, 다음과 같은 정보들을 포함하고 있다.
    • Process ID (PID)
    • Process State
    • Process Priority
    • CPU Registers
    • Owner
    • CPU Usage
    • Memory Usage
  • 이러한 Process Metadata 는 PCB 에 저장된다. 하나의 PCB 안에는 한 프로세스의 정보가 담긴다.
  • CPU에서는 프로세스의 상태에 따라 교체 작업이 이루어진다. 이 때 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해둔다.
    1. Interrupt 발생
    2. 할당 받은 프로세스 Waiting 상태로 변경
    3. 다른 프로세스를 Running 상태로 변경

Context Switching


image


  • 컴퓨터는 수 많은 일들을 동시에 처리하는 것 처럼 보이지만, 사실 Time Sharing 방식으로 여러 프로세스들을 교체해가며 수행하는 것이다.
  • 이를 위해 이전에 수행되던 프로세스들의 정보를 기억할 필요성이 있고, 이를 저장하는 것이 위에서 언급한 PCB 이다.
  • Context Switching 은 이러한 CPU 가 이전 프로세스 상태를 PCB 에 보관하고, 또 다른 프로세스의 정보를 PCB 에서 읽어 레지스터에 적재하는 과정을 의미한다.
  • 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가 시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우 Context Switching 이 발생한다.

Context Switching 의 오버헤드

  • Context Switching 에 걸린 시간과 메모리를 의미한다.
  • 이러한 오버헤드를 감수해야 할 때가 있다.
    • I/O 이벤트 발생 시, 디스크에 명령을 내리고 해당 명령이 종료될 때 까지 기다린다면 CPU 가 아무 일도 하지 않게되고, 이는 곧 CPU 의 낭비와 같다.
    • CPU 를 기다리게 하는 것 보다 다른 프로세스로 바꾸어 CPU를 사용하는 것이 훨씬 이익이다.