PCB의 의미와 기능을 간략히 설명

데이터를 포함하여 동시 실행에 참여하는 각 프로그램이 독립적으로 실행될 수 있도록 하려면 운영 체제에서 프로세스 제어 블록(PCB, 프로세스 제어 블록). 프로세스와 PCB 사이에는 일대일 대응이 있으며 사용자 프로세스는 수정할 수 없습니다.

ipcb

공정 제어 블록 PCB의 역할:

시스템 설명 및 프로세스 운영 관리를 용이하게 하기 위해 OS-Process Control Block PCB(Process Control Block)의 핵심에 각 프로세스에 대한 데이터 구조가 구체적으로 정의되어 있습니다. 프로세스 엔티티의 일부로서 PCB는 프로세스의 현재 상황을 설명하고 프로세스의 운영을 관리하기 위해 운영 체제에 필요한 모든 정보를 기록합니다. 운영 체제에서 가장 중요한 기록 데이터 구조입니다. PCB의 역할은 다중 프로그램 환경에서 독립적으로 실행할 수 없는 프로그램(데이터 포함)을 독립적으로 실행할 수 있는 기본 단위, 다른 프로세스와 동시에 실행할 수 있는 프로세스로 만드는 것입니다.

(2) PCB는 간헐적 작동 모드를 실현할 수 있습니다. 다중 프로그램 환경에서 프로그램은 정지 및 이동 간헐적 작동 모드로 실행됩니다. 차단으로 인해 프로세스가 일시 중단되면 실행 중일 때 CPU 사이트 정보를 유지해야 합니다. PCB를 확보한 후 시스템은 중단된 프로세스의 PCB에 CPU 사이트 정보를 저장하여 프로세스가 다시 실행되도록 예약할 때 CPU 사이트를 복원할 때 사용할 수 있습니다. 따라서 다중 프로그램 환경에서는 전통적인 의미의 정적 프로그램으로서 자체 운영 사이트를 보호하거나 저장할 수 있는 수단이 없기 때문에 운영 결과의 재현성을 보장할 수 없음을 다시 한 번 분명히 밝힐 수 있습니다. , 따라서 작동을 잃습니다. 중요성.

(3) PCB는 공정관리에 필요한 정보를 제공한다. 스케줄러가 실행할 프로세스를 예약하면 프로그램의 시작 주소 포인터와 메모리 또는 외부 저장소의 프로세스 PCB에 기록된 데이터에 따라 해당 프로그램과 데이터만 찾을 수 있습니다. 실행하는 동안 파일에 액세스해야 하는 경우 시스템의 파일 또는 I/O 장치는 PCB의 정보에 의존해야 합니다. 또한 PCB의 리소스 목록에 따라 프로세스에 필요한 모든 리소스를 학습할 수 있습니다. 프로세스의 전체 라이프 사이클 동안 운영 체제는 항상 PCB에 따라 프로세스를 제어하고 관리함을 알 수 있습니다.

(4) PCB는 공정 스케줄링에 필요한 정보를 제공한다. 준비 상태에 있는 프로세스만 실행을 예약할 수 있으며 PCB는 프로세스가 어떤 상태에 있는지에 대한 정보를 제공합니다. 프로세스가 준비 상태에 있으면 시스템은 이를 프로세스 준비 대기열에 삽입하고 스케줄러가 예약될 때까지 기다립니다. ; 또한 일정을 잡을 때 프로세스에 대한 다른 정보를 알아야 하는 경우가 많습니다. 예를 들어, 우선순위 스케줄링 알고리즘에서 프로세스 우선순위를 알아야 합니다. 일부 공정한 스케줄링 알고리즘에서는 프로세스의 대기 시간과 실행된 이벤트도 알아야 합니다.

(5) PCB는 다른 프로세스와의 동기화 및 통신을 실현합니다. 프로세스 동기화 메커니즘은 다양한 프로세스의 조정된 작업을 실현하는 데 사용됩니다. 세마포어 메커니즘이 채택되면 동기화를 위한 해당 세마포어가 각 프로세스에 설정되어야 합니다. PCB에는 또한 프로세스 통신을 위한 영역 또는 통신 큐 포인터가 있습니다.

프로세스 제어 블록의 정보:

프로세스 제어 블록에는 주로 다음 정보가 포함됩니다.

(1) 프로세스 식별자: 프로세스 식별자는 프로세스를 고유하게 나타내기 위해 사용됩니다. 프로세스에는 일반적으로 두 종류의 식별자가 있습니다. ① 외부 식별자. 사용자 프로세스가 프로세스에 쉽게 접근할 수 있도록 각 프로세스에 대해 외부 식별자를 설정해야 합니다. 작성자가 제공하며 일반적으로 문자와 숫자로 구성됩니다. 프로세스의 가족 관계를 설명하기 위해서는 부모 프로세스 ID와 자식 프로세스 ID도 함께 설정해야 한다. 또한 프로세스를 소유한 사용자를 나타내기 위해 사용자 ID를 설정할 수 있습니다. ②내부 식별자. 시스템에서 프로세스를 쉽게 사용하기 위해 OS의 프로세스에 대해 내부 식별자가 설정됩니다. 즉, 각 프로세스에는 일반적으로 프로세스의 일련 번호인 고유한 디지털 식별자가 부여됩니다.

(2) 프로세서 상태: 프로세서 상태 정보는 프로세서의 컨텍스트라고도 하며 주로 프로세서의 다양한 레지스터 내용으로 구성됩니다. 이러한 레지스터에는 다음이 포함됩니다. ①사용자 프로그램에서 액세스할 수 있고 정보를 임시로 저장하는 데 사용되는 범용 레지스터(사용자 표시 레지스터라고도 함). 대부분의 프로세서에는 8~32개의 범용 레지스터가 있습니다. RISC 구조의 컴퓨터에는 100개 이상이 있을 수 있습니다. ② 접근할 다음 명령어의 주소를 저장하는 명령어 카운터; ③조건 코드, 실행 모드, 인터럽트 마스크 플래그 등과 같은 상태 정보를 포함하는 프로그램 상태 단어 PSW; ④ 사용자 스택 포인터, 각 사용자 프로세스에는 프로세스 및 시스템 호출 매개변수 및 호출 주소를 저장하는 데 사용되는 하나 이상의 관련 시스템 스택이 있음을 의미합니다. 스택 포인터는 스택의 맨 위를 가리킵니다. 프로세서가 실행 상태에 있을 때 처리 중인 정보의 대부분은 레지스터에 저장됩니다. 프로세스가 전환되면 해당 PCB에 프로세서 상태 정보를 저장해야 프로세스가 재실행될 때 중단점부터 실행이 계속될 수 있다.

(3) 프로세스 스케쥴링 정보: OS가 스케쥴링을 할 때, 프로세스의 상태와 프로세스 스케쥴링에 대한 정보를 이해하는 것이 필요하다. 이러한 정보에는 다음이 포함됩니다. ① 프로세스 상태, 프로세스 스케줄링 및 스와핑의 기초로 사용되는 프로세스의 현재 상태를 나타냅니다. ② 프로세스 우선 순위는 프로세서를 사용하는 프로세스의 우선 순위 수준을 설명하는 데 사용되는 정수입니다. 우선 순위가 높은 프로세스가 프로세서를 먼저 가져와야 합니다. ③ 그 밖에 사용된 프로세스 스케줄링 알고리즘과 관련된 프로세스 스케줄링에 필요한 정보 ④이벤트는 프로세스가 실행 상태에서 차단 상태로 전환되기를 기다리는 이벤트, 즉 차단의 원인을 의미합니다.

(4) 프로세스 제어 정보: 다음을 포함하는 프로세스 제어에 필요한 정보를 의미합니다. 프로세스가 실행될 때 실행합니다. , 프로그램과 데이터는 PCB에서 찾을 수 있습니다. ② 메시지 큐 포인터, 세마포어 등과 같은 동기화 및 프로세스 통신에 필요한 메커니즘인 프로세스 동기화 및 통신 메커니즘은 PCB에 전체 또는 부분적으로 배치될 수 있습니다. ③ 프로세스가 작업하는 동안 필요한 모든 리소스(CPU 제외)가 나열되는 리소스 목록과 해당 프로세스에 할당된 리소스 목록도 있습니다. ④프로세스를 제공하는 링크 포인터( PCB) 큐에 있는 다음 프로세스의 PCB의 첫 번째 주소입니다.