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

    2021. 9. 20.

    by. ahntree

    728x90

    프로세스 제어 블록은 프로세스를 실행하는 데에 필요한 중요한 정보를 보관하는 자료 구조다. 프로세스 제어 블록에는 어떤 정보들이 담겨 있을까?

     

     

     

    1. 프로세스 제어 블록의 구성

    포인터

    첫 번째 블록에 저장된다. 프로세스가 준비 상태대기 상태일 때 큐의 형태로 운영이 되는데, 제어 블록들을 연결하여 큐를 구현할 때 포인터가 사용된다. head와 tail이 있는 연결 리스트의 형태다.

     

     

    프로세스 상태

    현재 프로세스가 어떤 상태에 있는지를 나타낸다. 두 번째 블록에 저장된다.

     

     

    프로세스 구분자

    프로세스를 구별하기 위한 구분자이다.

     

     

    프로그램 카운터

    다음에 실행될 명령어의 위치를 저장한다.

     

     

    프로세스 우선순위

    프로세스 간에도 우선순위가 존재한다. 사용자 프로세스보다 커널 프로세스가 우선순위가 높고 이런 식이다.

     

    대기 상태의 큐는 이러한 우선순위별로 큐가 따로 운영되고, CPU 스케줄러가 준비 상태에 있는 프로세스들 중 실행할 프로세스를 선택할 때에도 이 우선순위를 따른다.

     

     

    각종 레지스터 정보

    프로세스가 실행되는 중에 사용하던 레지스터의 값이 저장된다. 레지스터의 중간값을 보관하고 있다가 다음에 실행할 때 이용한다.

     

     

    메모리 관리 정보

    메모리 상의 프로세스 위치 정보, 메모리 보호를 위한 경계 레지스터 값과 한계 레지스터 값이 저장된다. 그 외에 세그멘테이션 테이블, 페이지 테이블 등의 정보도 보관한다.

     

     

    할당된 자원 정보

    프로세스를 실행하기 위해 사용하는 입출력 자원이나 오픈 파일 등에 대한 정보가 저장된다. 하드디스크에 저장된 파일에 대한 정보, 음악을 출력하기 위해 사용하는 사운드카드에 대한 정보 등과 같은 정보다.

     

     

    계정 정보

    계정 번호, CPU 할당 시간, CPU 사용 시간 등이 저장된다.

     

     

    부모, 자식 프로세스 구분자

    부모 프로세스를 가리키는 PPID와 자식 프로세스를 가리키는 CPID에 대한 정보가 저장된다.

     

     

     

    2. 문맥 교환

    CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업이다. 나가는 프로세스의 제어 블록에는 지금까지의 작업 내용을 저장하고, 들어오는 제어 블록의 내용으로 CPU가 다시 세팅된다.

     

    문맥을 교환한다는 의미는 두 프로세스의 프로세스 제어 블록을 교환한다는 뜻이다.

     

    일반적으로 문맥 교환은 한 프로세스가 타임 슬라이스 동안의 작업이 끝나면 이루어진다. 혹은 인터럽트 처리가 발생할 때에도 일어난다.

    728x90

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

    08. 스레드  (0) 2021.09.20
    07. 프로세스의 연산  (0) 2021.09.20
    05. 프로세스의 개요  (0) 2021.09.20
    04. 병렬 처리  (0) 2021.09.20
    03. 컴퓨터 성능 향상 기술  (0) 2021.09.20

    댓글