프로세스 제어 블록과 문맥 교환

꿀떡냠·2024년 5월 14일
post-thumbnail

프로세스 제어 블록 (PCB)

  • 프로세스를 실행하는 데 필요한 중요한 정보를 보관하는 자료 구조이다. TCB라고도 한다. 프로세스가 생성될 때 만들어져 프로세스 실행이 완료되면 폐기된다.
    • 포인터 : 준비상태나 대기상태는 큐로 운영되는데, 프로세스 제어 블록을 연결하여 준비 상태나 대기상태의 큐를 구현할 때 포인터를 사용한다.
    • 프로세스 상태 : 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있다. 프로세스의 현재 상태를 나타낸다.
    • 프로세스 구분자 : 여러 프로세스를 구별하기 위한 구분자를 저장한다.
    • 프로그램 카운터 : 다음에 실행될 명령어의 위치를 가르키는 프로그램 카운터의 값을 저장한다.
    • 프로세스 우선순위 : 사용자 프로세스보다 커널 프로세스는 우선 순위가 높고, 사용자 프로세스끼리도 우선순위가 다르다. 높은 우선순위의 프로세스가 낮은 우선순위의 프로세스보다 먼저 실행되고 더 자주 실행된다.
    • 각종 레지스터 정보 : 프로세스가 실행될 때 사용하던 레지스터 값이 저장된다.
    • 메모리 관리 정보 : 프로세스가 메모리 어디에 있는지 나타내는 메모리 위치 정보, 메모리 보호를 위한 경계레지스터, 한계레지스터 값, 세그멘테이션 테이블, 페이지 테이블 등의 정보 보관
    • 할당된 자원 정보
    • 계정 정보
    • 부모 프로세스 구분자와 자식 프로세스 구분자 : PPID, CPID

문맥 교환

문맥 교환의 의미

  • 문맥 교환 : CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업을 말한다.
  • 실행 상태에서 나가는 프로세스 제어 블록에는 지금까지의 작업내용을 저장한다.
  • 실행 상태로 들어온 프로세스 제어 블록의 내용으로 CPU가 세팅 된다.

문맥 교환의 절차

  • 실행상태에 있는 P1 프로세스가 타임아웃되면 P1의 상태를 PCB 1에 저장 후 P1은 준비 상태로 쫒겨 난다.
  • 준비상태에 있던 P2가 실행 상태로 가면 CPU의 레지스터가 PCB2의 값으로 채워져 다음 작업을 한다.

문맥 교환과 타임 슬라이스의 크기

  • 타임 슬라이스는 되도록 작게 설정하되 문맥 교환에 걸리는 시간을 고려하여 적당한 크기로 설정해야한다.
  • 너무 작은 타임 슬라이스는 문맥교환에 많은 시간을 낭비한다.
  • 유닉스 운영체제에서 타임 슬라이스는 10~200밀리초로 대략 100밀리초이다.

업로드중..

profile
백엔드 개발자로 살아남기

0개의 댓글