[2023.04.03] Daily Posting

HeeJun·2023년 4월 3일
0

Operating System

목록 보기
8/9

이 블로그의 목적은 학습한 내용의 정리와 더 나아가 다양한 기술들에 대한 정리와 정보 공유가 목적입니다.

혹시 글의 내용 중 틀린 부분이 있다면 댓글 남겨주세요!!!

PCB(Process Control Block)

오늘 포스팅 내용은 PCB에 관한 내용이다.

PCB

  • 정의

    • CPU가 여러 프로세스를 스케줄링을 통해 관리하는 것을 Process Management라고 한다
    • CPU가 각 프로세스를 식별할 수 있어야 관리가 가능한데, 이때 프로세스를 식별하기 위한 프로세스의 정보들을 저장하는 자료구조가 PCB이다
    • OS는 프로세스의 생성과 동시에 고유한 PCB를 생성한다.
  • PCB 생성과 저장 과정

    1. 프로그램 실행
    2. 프로세스 생성(PCB 생성)
    3. 프로세스 주소 공간에 (Stack, data, code, heap) 생성
    4. 해당 프로세스의 메타 데이터 PCB 저장
    • 메타 데이터(Meta Data)는 간단하게 다른 데이터(혹은 어떠한 객체)를 설명해주는 데이터라고 보면 된다

PCB에 저장되는 정보

  • 프로세스 식별자(Process ID, PID): 프로세스 식별번호
  • 프로세스 상태(Process State): new, ready, running, waiting, terminated 등의 상태 저장
  • 프로그램 카운터(Program Counter, PC): 프로세스가 다음에 실행할 명령어의 주소
  • 레지스터 정보(Register Infomation): CPU Register 정보
  • CPU 스케줄링 정보(Scheduling Information): 프로세스의 우선순위, 스케줄 큐에 대한 포인터 등
  • 메모리 관리 정보(Memory Related Information): 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함
  • Accounting 정보(Accounting Information): 사용된 CPU 시간, 시간제한, 계정번호 등
  • 입출력 상태 정보(Status Information related to I/O): 프로세스에 할당된 입출력 장치들과 열린 파일 목록

PCB에 저장되는 정보들이 무엇인지 모를 수도 있다. 하지만 앞으로 정리할 내용에 모두 한 번씩 등장할 내용들이니 추후에 포스팅 될 내용에서 알아가면 된다.

다음 포스팅에서는 Context Switching에 대한 내용을 다룰 예정이다.

profile
내가 작성한 코드 한 줄로 누군가를 편하게

0개의 댓글