본문 바로가기

Computer Science/Operating System

[Operating System] 6. PCB & Context Switching

728x90
반응형
SMALL

1. Process Management

CPU의 프로세스가 여러 개일 때 CPU 스케줄링을 통해 관리하는 것을 말한다. 이때 CPU는 각 프로세스들이 누군지 알아야 관리가 가능하다. 프로세스들의 특징을 갖고 있는 것이 바로 Process Metadata이다.

 

Process Metadata

  • Process ID
  • Process State
  • Process Priority
  • Owner
  • CPU Usage
  • Memory Usage

이 메타데이터는 프로세스가 생성되면 PCB에 저장된다.

 

 

2. PCB - Process Control Block

PCB는 프로세스 메타데이터들을 저장해 놓는 곳이다. 한 PCB 안에는 한 프로세스의 정보가 담겨있다.

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

 

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

 

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

 

이렇게 수행 중인 프로세스를 변경할 때 CPU의 레지스터 정보가 변경되는 것을 Context Switching라고 한다.

 

 

3. Context Switching

CPU가 이전의 프로세스 상태를 PCB에 보관하고 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정이다. 보통 인터럽트가 발생하거나 실행 중인 CPU 사용 허가시간을 모두 소모하거나 입출력을 위해 대기해야 하는 경우에 발생한다.

 

Context Switching의 OverHead란

overhead는 과부하라는 뜻이지만 프로세스 작업 중에는 overhead를 감수해야 하는 상황이 있다.

 

프로세스를 수행하다가 입출력 이벤트가 발생해서 대기 상태로 전화시켰을 때 CPU를 그냥 놀게 놔두는 것보다 다른 프로세스를 수행시키는 것이 효율적이다.

 

즉 CPU에 계속 프로세스를 수행시키도록 하기 위해서 다른 프로세스를 실행시키고 Context Switching을 하게 된다. 

728x90
반응형
SMALL