My Boundary As Much As I Experienced

PCB 와 Context Switching 본문

Computer Basics

PCB 와 Context Switching

Bumang 2023. 8. 29. 08:23

Process Management

CPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함

 

PCB(Process Control Block)

프로세스들의 메타데이터를 저장하는 곳.

 

PCB(Process Control Block)는 특정 프로세스에 대한 정보를 담고 있는 자료구조입니다. 운영체제는 PCB에 담긴 프로세스 정보를 이용하여 프로세스를 관리/제어합니다. 프로그램이 실행되어 메모리에 적재됐을 때 프로세스가 생겨나고, 프로세스 주소 공간에 코드&데이터&스택 공간이 생성됩니다. 이후 해당 프로세스의 메타데이터들이 PCB 에 저장된다. (Linked List 방식으로 관리함)

 

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

Information in PCB

  • Process id - 프로세스 ID
  • Process state - 프로세스의 상태(new ready waiting, running, terminated)
  • Program counter - 다음 명령의 주소를 가리키고 있는 계수기
  • CPU register - CPU 레지스터
  • CPU-scheduling - 프로세스의 우선순위, 최종 실행 시간, 스케줄링 큐를 가리키는 포인터 등
  • Memory-management - register, 페이지 테이블, 세그먼트 테이블의 base, limit 값에 대한 정보
  • Accounting - CPU 사용 시간, 실제 사용된 시간, 시간 제한 등
  • I/O status - 프로세스에 할당된 I/O 기기에 해당하는 정보

 

 

Context switching

CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정

 

보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생합니다.

 

 

Overhead

오버헤드란 프로그램의 실행흐름에서 나타나는 현상중 하나로 예를 들어 , 프로그램의 실행흐름 도중에 동떨어진 위치의 코드를 실행시켜야 할 때 , 추가적으로 시간,메모리,자원이 사용되는 현상입니다.

 

사실 Context Switching 을 하는 동안에는 CPU 가 아무것도 하지 못하게 됩니다. 따라서, 만일 쓰레드 및 프로세스의 개수가 엄청 많아져 Context Switching 이 빈번히 일어나게 된다면, 오버헤드가 잦아져 성능이 악화될 가능성도 있다. 

 

 

 

'Computer Basics' 카테고리의 다른 글

CPU Scheduling  (0) 2023.09.05
IPC(Inter Process Communication)  (0) 2023.08.29
시스템 콜(System Call)  (0) 2023.08.22
인터럽트(Interrupt)란?  (0) 2023.08.22
운영체제(Operating System)란?  (0) 2023.08.07