PCB와 Context Switching

2024. 10. 23. 17:26·Computer Science/Operating System

컴퓨터에서 일어나는 다중 작업은 동시에 처리하는 것이 아닌

각 프로그램을 일정시간 동안 번갈아가면서 실행하는 것이다.

다만 그 속도가 매우 빠르기에 동시에 처리한다고 느끼는 것이다.

 

프로세스들이 교체되어 수행되고 나면 원래 수행하던 프로세스의 정보를 저장하고

다른 프로세스를 처리해야 하는데, 이를 저장하는 공간을 PCB(Process Control Block) 라고 한다.

PCB

PCB : 운영체제에서 관리하는 프로세스에 대한 메타데이터를 저장한 데이터블록

  • 프로세스가 생성될 때 고유의 PCB가 생성되며 종료되면 PCB가 제거됨
  • 커널의 데이터 영역에 저장됨
    • 실행 상태일 때는 프로그램 카운터 레지스터 값 등이 CPU 레지스터에 로드됨

 

  • Pointer: 프로세스 전환 시 위치 정보를 유지하는 스택 포인터
  • Process State: 생성, 준비, 실행, 대기, 종료 등의 프로세스의 상태
  • Process Number(PID): 각 프로세스의 고유 식별 번호
  • Program Counter(PC): 프로세스에서 실행해야 할 다음 명렁어의 주소를 포함하는 카운터를 저장
  • Registers: 프로세스의 레지스터 상태를 저장하는 공간
  • Memory Limits: 프로세스의 메모리 관련정보
  • List of Open Files: 프로세스를 위해 열린 파일 목록들

Context Switching

CPU에서 실행중인 프로레스를 다른 프로세스로 교체하는 작업으로 다음의 이유로 발생한다

  1. 인터럽트 발생
  2. 시스템 콜 호출
  3. 타임 슬라이스 만료
  4. I/O 요청
  5. 프로세스의 우선 순위 변경

 

  1. 현재 실행 중인 프로세스(P0)의 정보를 PCB에 저장
  2. 다음 실행할 프로세스(P1)의 정보를 PCB에서 로드
  3. P1을 실행

유휴 상태가 겹치는 시기들을 오버헤드라고 부르며

CPU가 다른프로세스의 정보를 메모리에 로드하거나 저장하는 동안 아무 작업도 수행하지 않는 시간을 의미한다.

 

Context Switching Cost

  • 캐시 무효화(Cache Invalidation)
  • 메모리 매핑 재구성
  • 커널 모드로의 전환 비용

아래와 같은 방법을 통해 Context Switching의 비용을 최적화할 수 있다.

  • 메모리 공유가 필요한 작업은 스레드 사용
  • 프로세스의 특성에 따라 우선순위 동적 조정
  • 시스템 부하와 프로세스 특성에 따른 타임 슬라이스 최적화

출처

https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/

https://didu-story.tistory.com/312

https://parkmuhyeun.github.io/etc/operating%20system/2022-08-15-PCB-Context-Switching/

'Computer Science > Operating System' 카테고리의 다른 글

캐시매핑  (0) 2024.10.31
캐시히트와 캐시미스  (0) 2024.10.30
메모리 계층 구조  (0) 2024.10.10
컨텍스트 스위칭(context switching)  (0) 2024.09.20
프로세스와 스레드  (0) 2024.09.19
'Computer Science/Operating System' 카테고리의 다른 글
  • 캐시매핑
  • 캐시히트와 캐시미스
  • 메모리 계층 구조
  • 컨텍스트 스위칭(context switching)
mint723dev
mint723dev
mint723dev 님의 블로그 입니다.
  • mint723dev
    mint723dev 님의 블로그
    mint723dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (89) N
      • Computer Science (16)
        • Computer Architecture (0)
        • Data Structure (2)
        • Database (4)
        • Network (4)
        • Operating System (6)
        • Software Engineering (0)
      • Java (6)
      • 자료 구조 (0)
      • 코딩테스트 (63) N
        • LeetCode (1)
        • 프로그래머스 (29)
        • 백준 (33) N
      • Spring (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    탐욕법
    deque
    BFS
    오블완
    DP
    티스토리챌린지
    JVM
    DFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
mint723dev
PCB와 Context Switching
상단으로

티스토리툴바