728x90
프로세스 제어 블록 (PCB)
- 개념: PCB는 운영체제가 각 프로세스의 상태 정보를 저장하고 관리하기 위해 사용하는 데이터 구조입니다. 프로세스가 생성되면 운영체제는 해당 프로세스의 PCB를 생성하고, 프로세스가 종료될 때 PCB를 삭제합니다.
- 역할: PCB는 운영체제가 프로세스를 관리할 때, 필요한 모든 정보를 담고 있어 각 프로세스를 독립적으로 제어할 수 있게 합니다.
PCB에 저장되는 주요 정보
- 프로세스 ID (PID): 프로세스를 식별하기 위한 고유한 ID입니다.
- 프로세스 상태: 실행 중, 대기 중, 준비 상태 등의 현재 프로세스 상태 정보입니다.
- CPU 레지스터 값: 프로그램 카운터(PC), 스택 포인터(SP) 등 현재 프로세스의 CPU 레지스터 상태입니다.
- 메모리 관리 정보: 프로세스가 사용하는 메모리 주소와 관련된 정보입니다.
- 프로세스 우선순위: 프로세스의 우선순위를 설정하여, CPU 스케줄링에 활용합니다.
- 입출력 상태 정보: 사용 중인 입출력 장치와 관련된 상태 정보입니다.
- 계정 정보: 사용자의 ID, 프로세스가 사용하는 CPU 시간 등 프로세스와 사용자 관련 정보입니다.
PCB는 각 프로세스의 실행 상태를 기록하고 있어, 문맥 교환 시 각 프로세스를 정확히 이어서 실행할 수 있게 합니다.
문맥 교환 (Context Switching)
- 개념: 문맥 교환은 CPU가 한 프로세스에서 다른 프로세스로 전환될 때, 현재 프로세스의 상태를 PCB에 저장하고, 새로 전환되는 프로세스의 상태를 복원하는 작업을 의미합니다.
- 역할: 문맥 교환은 다중 프로세스 환경에서 CPU가 효율적으로 여러 프로세스를 실행할 수 있도록 합니다. 각 프로세스는 자신의 문맥을 PCB에 저장해 두었다가, CPU가 해당 프로세스로 전환될 때 PCB의 정보를 불러와 이어서 실행합니다.
문맥 교환 과정
- 현재 프로세스 상태 저장: CPU는 현재 실행 중인 프로세스의 PCB에 현재 상태(프로그램 카운터, 레지스터 상태 등)를 저장합니다.
- 새 프로세스 정보 로딩: 전환할 프로세스의 PCB에서 해당 프로세스의 상태를 불러옵니다.
- CPU 전환: CPU는 새로운 프로세스의 상태를 복원한 후, 해당 프로세스의 프로그램 카운터를 기준으로 명령어를 실행합니다.
문맥 교환의 비용
문맥 교환은 필수적이지만, CPU와 메모리 자원을 소모하기 때문에 오버헤드가 발생합니다. CPU가 실제 작업 대신 문맥을 저장하고 불러오는 과정에 시간을 소모하기 때문에, 잦은 문맥 교환은 시스템 성능을 저하시킬 수 있습니다.
PCB와 문맥 교환의 관계
PCB는 문맥 교환의 핵심 요소로, 프로세스 상태 정보를 담아 프로세스 간 전환이 매끄럽게 이루어지도록 합니다. 문맥 교환이 이루어질 때 PCB에 저장된 정보를 기반으로 CPU는 새로운 프로세스의 작업을 이어서 수행할 수 있습니다.
요약
- PCB: 프로세스 상태 정보를 담은 데이터 구조로, 프로세스를 관리하고 문맥 교환 시 해당 프로세스의 상태를 저장합니다.
- 문맥 교환: CPU가 실행할 프로세스를 전환하는 과정으로, PCB에 상태를 저장하고 복원하여 프로세스를 이어서 실행할 수 있게 합니다.
PCB와 문맥 교환을 통해 운영체제는 다중 프로세스를 효율적으로 관리하고 CPU 자원을 최적화할 수 있습니다.
728x90
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 인터럽트(Interrupt) (0) | 2024.10.31 |
---|---|
[운영체제] 페이징(Paging)과 세그멘테이션(Segmentation) (0) | 2024.10.31 |
[운영체제] 동기화 문제(synchronization problem) (0) | 2024.10.31 |
[운영체제] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드) (0) | 2024.10.30 |
[운영체제] 컴퓨터 시스템의 구조(주기억장치, 보조기억장치) (0) | 2024.10.30 |