less than 1 minute read

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

- 프로세스 제어 블록

    프로세스를 실행하는데 필요한 중요한 벙로를 보관하는 자료구조

    - 프로세스 제어 블록의 구성
        - 포인터

            큐로 운영되는 준비 상태나 대기 상태의 큐를 구현할 때 사용함

            - 역할

                다양한 대기/준비 큐를 활용하기 위한 메모리 시작 주소

        - 프로세스 상태

            프로세스가 어떤 상태인지 나타냄

        - 프로세스 구분자

            여러 프로세스를 구별함

        - 프로그램 카운터

            다음에 실행될 명령어의 위치를 가리키는 PC 의 값을 저장

        - 프로세스 우선순위

            프로세스의 우선순위를 나타냄

        - 각종 레지스터 정보

            사용하던 레지스터들의 값을 보관함

        - 메모리 관리 정보

            프로세스가 어디에 있는지 나타내는 메모리 위치 정보, 경계 레지스터, 한계 레지스터 값 등이 저장됨

            세그먼테이션 테이블과 페이지 테이블 등의 정보도 보관

        - 할당된 자원 정보

            프로세스를 실행하기 위해 사용하는 입출력 자원이나 오픈 파일 등에 대한 정보

        - 계정 정보

            계정 번호, CPU 할당 시간, CPU 사용 시간 등 저장

        - 부모 프로세스 구분자와 자식 프로세스 구분자

            프로세스의 부모/자식 을 가리키는 정보

    - 문맥 교환
        - 의미

            CPU 를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업

            두 PCB 내용을 변경시킴

        - 절차

            기존의 진행중인 작업의 정보를 PCB 에 저장한 후 준비 상태로 옮김

            새로운 작업을 실행 상태로 옮긴 후 레지스터를 새로운 PCB 값으로 채움

            작업 진행