[Site Map]  [운영체제 및 구조 목차]

 

연관토픽

  1. [상위] 쓰레드(Thread)
  2. [연관] PCB(Process Control Block)

 

개념(https://www.youtube.com/shorts/iU5rCZYq3lA)

  • 쓰레드의 실행을 위한 상태정보를 관리하는 데이터 구조
  • 쓰레드의 실행시간 동안 상태정보를 유지하기 위해 관리되는 데이터 구조
  • 부모 프로세스(Process)에 관련된 정보와 자신(Thread)의 CPU 레지스터, Stack, 상태정보 등의 값을 저장하는 구조체

 

 

 

TCB의 구성요소

구성요소 설명
쓰레드 ID 쓰레드 식별자
쓰레드 상태 상태(실행, 준비, 대기), 우선순위, 프로세스 시간
쓰레드 PC Program Counter, 실행중인 쓰레드의 실행위치 주소
쓰레드 레지스터 레지스터 스택 정보
포인터 상위 프로세스에 대한 포인터(PCB와 연결)

 

 

 

PCB와 TCB의 연관성

  • 스레드는 프로세스 Subset 이고, 프로세스는 하나 이상의 커널 스레드를 포함
  • PCB는 하나 이상의 TCB를 포함하고 프로세스의 종료는 포함된 모든 스레드를 종료 시킴

 

 

 

TCB vs. PCB

구분 PCB TCB
주소공간구성
 
역할
  • 프로세스 정보저장
  • 모든 Thread에 공유되는 정보
  • Thread 정보저장
  • Thread 내에서 사용되는 정보
주요 구성요소
  • Owner, PID, Process Stack Pointer, Priority, Active Thread
  • Thread Stack Pointer, Thread PC, Thread Register
상호 연계정보
  • 하나 이상의 TCB 정보
  • Thread가 속한 PCB, Thread간 Link 정보
context 관점
  • 전체 Thread의 실행 환경 정보
  • Thread별 실행 관련 정보
관리 데이터량
  • 관리 데이터 많음
  • TCB에서 공유 정보 포함(메모리 관리 정보, 오픈 파일 등)
  • 리눅스 기준 106개 필드
  • 상대적으로 적은 데이터 관리(TCB는 PCB에 연결 Pointer가 있음)
  • 리눅스 기준 24개 필드

+ Recent posts