ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] PCB는 어떤 녀석일까?
    운영체제 2024. 5. 17. 15:27

    PCB는 Process Control Block의 약자로 운영체제에서 *프로세스에 대한 *메타데이터를 저장한 데이터를 말한다

    즉, 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳

     

    *프로세스 : Process란 일을 처리하는 과정이나 순서
    *메타데이터 : Metadata는 일반적으로 데이터에 관한 구조화된 데이터, 데이터를 설명하는 작은 데이터, 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터이다

     

    • 프로세스 제어 블록이라고도 한다
    • 프로세스가 생성되면 운영체제는 해당 PCB를 생성한다
    • 프로세스가 완료되면 PCB는 제거된다
    • 운영 체제에서 특정 프로세스를 나타내는 데 사용된다

    각 프로세스는 운영 체제에서 PCB로 축약되는 프로세스 제어 블록으로 표시 된다

    또한 프로세스를 관리하는데 사용하는 OS의 자료구조로 운영체제는 프로세스를 PCB 단위로 관리한다



    생김새

    아래 그림은 예제 다이어그램이다

     

    Process state
    Process number
    Program counter
    Registers
    Memory limits
    List of open files
    ....

     

    • 프로세스 ID는 특정 프로세스를 식별하는 고유 번호 또는 ID를 표시한다
    • Process state : 특정 순간에 프로세스가 있는 특정 상태를 알려준다
      • 새 상태, 실행 중, 대기 종료 등과 같은 상태가 있다
    • Program counter : 특정 프로세스에 대해 실행되어야 하는 다음 명령어의 주소를 나타냄
      • 프로세스가 실행될때 명령이나 코드 줄이 한줄씩 실행된다
      • 따라서 이 프로그램 카운터는 실행되어야 하는 다음 명령어 라인의 주소를 알려준다
    • Registers : 특정 프로세스에서 사용 중인 레지스터를 알려준다
      • 레지스터에서 여러 종류의 레저스터가 있는데 특정 프로세스에서 사용중인 특정 레지스터를 알려준다
    • CPU 스케줄링 정보 : 프로세스의 우선순위가 있고 스케줄링 큐에 대한 포인터 와 기타 스케줄링 매개변수가 있다
    • 메모리 관리 정보 (Memory management information) : 사용중인 메모리를 나타낸다
    • 회계 정보 (Accounting. information) : 특정 프로세스에서 실행을 위해 사용되는 모든 리소스에 대한 계정을 유지한다
    • 입출력 상태 정보 : 프로세스에 할당된 입출력장치를 나타낸다

     

     

    이러한 프로세스 제어 블록이 운영체제의 특정 프로세스를 나타내는 데 사용된다는 것을 알 수 있다

     

     

     

    왜? 필요한가

     

    PCB는 이러한 모든 정보를 종합적으로 관리하여 운영 체제가 효율적이고 신뢰성 있게 프로세스를 제어할 수 있도록 한다

     

     

    PCB 관리 방식

     

    1. 프로세스 생성 
      • 새로운 프로세스가 생성 되면 운영 체제는 새로운 PCB를 할당함
      • 이 PCB에는 식별자, 초기 프로세스 상태, 프로그램 카운터, 포인터, 메모리 할당 정보, 등등 초기화된 정보가 저장됨
      • PCB는 프로세스 테이블 이라는 운영체제의 데이터 구조에 저장됨
    2. 프로세스 스케줄링
      • 운영 체제의 스케줄러는 프로세스를 선택하여 실행하기 위해 PCB를 참조함
      • PCB에 저장된 우선순위, 상태, cpu 사용시간등의 정보를 이용하여 스케줄러는 다음에 실행할 프로세스를 결정
      • 스케줄러는 현재 실행 중인 프로세스의 PCB를 업데이터, 선택된 프로세스의 PCB를 참조하여 CPU에 로드
    3. 문맥 교환
      • Context Switch는 CPU가 실행 중인 프로세스에서 다른 프로세스로 전환할때 방생
      • 현재의 프로세스의 상태를 PCB에 저장하고 전활할 프로세스의 PCB에서 상태를 읽어와 CPU에 로드
    4. 프로세스 상태 관리
      • PCB는 프로세스의 현재 상태를 저장
      • 운영체제는 이벤트 발생 (인터럽트 등)에 따라서 프로세스의 상태를 변경하고 이것을 PCB에 기록함
      • 상태 변경에 따라 PCB는 적절한 대기 큐나 준비 큐에 추가되거나 제거된다
    5. 프로세스 종료
      • 프로세스가 종료되면 운영 체제는 해당 프로세스의 PCB를 정리한다
      • PCB에 포함된 자원을 해제하고 프로세스 테이블에서 PCB를 제거함

     

    정리를 하자면

     

    운영체제는 PCB를 통하여 각 프로세스의 중요한 정보를 체계적으로 관리하며
    이를 통하여 다중 프로세스 환경에서 효율적이고 안정적인 운영을 보장한다

    '운영체제' 카테고리의 다른 글

    [운영체제] 메모리란?  (0) 2024.06.19
Designed by Tistory.