Operation System - 5. PCB와 Context switching 편

Perdy·2023년 7월 30일
0

CS

목록 보기
5/20

PCB(Process Control Block)

프로세서 제어 블록이라고도 하며, 운영체제에서 프로세스에 대한 메타데이터를 저장한 데이터를 의미합니다. 프로세스가 생성되면 운영체제는 PCB를 생성합니다.

프로그램이 실행되면 프로세스가 생성되고, 스택과 힙 등 여러 자료 구조를 기반으로 메모리가 할당됩니다. 프로세스의 메타데이터들이 PCB에 저장되어 관리되며, 중요한 정보를 포함하고 있기 때문에 커널 스택에서 관리됩니다.

  • 메타 데이터 : 데이터에 관한 구조화된 데이터로, 다양한 데이터 사이에서 찾고 있는 정보를 효율적으로 찾아내서 사용하기 위해, 일정한 규칙에 따라 부여되는 데이터입니다.

PCB의 관리는 LinkedList의 방식으로 관리됩니다.

PCB의 구조

프로세스 스케줄링 상태 : 프로세스가 CPU에 대한 소유권을 얻은 이후의 상태
프로세스 ID : 프로세스 ID, 해당 프로세스의 자식 프로세스 ID
프로세스 권한 : 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보
프로그램 카운터 : 프로세스에서 실행해야 할 다음 명령어의 주소에 대한 포인터
CPU 레지스터 : 프로세스를 실행하기 위해 저장해야할 레지스터에 대한 정보
CPU 스케줄링 정보 : CPU 스케줄러에 의해 중단된 시간이나 CPU 점유 시간 등에 대한 정보
계정 정보 : 프로세스 실행에 사용된 CPU 사용량, 실행한 유저나 부모 프로세스 등에 대한 정보
I/O 상태 정보 : 프로세스에 할당된 I/O 디바이스 목록

Context Switching

PCB를 교환하는 과정을 말하며, 한 프로세스에 할당된 시간이 끝나거나 인터럽트에 의해 발생합니다.

컨텍스트 스위칭이 일어날 때, 유휴 시간이 발생하며 더하여 캐시미스가 발생하게 됩니다.

  • 캐시미스 : 컨텍스트 스위칭이 일어날 때, 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 생기기 때문에 캐시 클리어 과정을 겪게되며, 이후 캐시가 비어있기 때문에 캐시 미스가 발생합니다.
    메모리에 접근하여 캐시로 다시 데이터를 올리고 CPU로 가져와야 하기 때문에, 메모리 접근 횟수가 증가하여 오버헤드가 증가하게 됩니다.
  • 스레드에서도 컨텍스트 스위칭이 발생하며, 스택 영역을 제외한 모든 메모리를 공유하기 떄문에, 비용과 시간이 더 적게 걸립니다.
profile
영원한 뉴비. 꾸준히 한다면 언젠가는 높은 곳에 도달할지도?

0개의 댓글