PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조
1. PCB(커널영역)
PCB는 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로 프로세스 상태관리와 문맥교환을 위해 필요합니다.
2. PCB에 포홤되는 정보
종류 | 설명 |
프로세스 ID(PID) | 프로세스를 구분하는 고유 아이디 |
레지스터 값 | Accumulator, CPU Register, General Register 등 해당 프로세스가 사용했던 레지스터 값 |
프로세스 상태 | CPU를 기다리는지 혹은 이용중인지 등의 프로세스 상태에 대한 정보 |
CPU스케줄링 정보 | 프로세스가 할당 순서 정보(우선순위, 최종실행시간, 점유시간 등) |
메모리 관리 정보 | 프로세스가 저장된 주소 정보 |
사용한 파일과 입출력장치 목록 | 사용한 입출력 장치에 대한 기록 |
3. 문맥교환(Context Switching)
프로세스의 수행을 재개하기 위해 기억해야할 정보를 문맥(context)이라고 합니다. 프로세스1에서 프로세스2로 실행 순서가 변경될 때 프로세스1의 문맥을 PCB에 저장해 놓고 프로세스 2의 정보를 PCB에서 복구하여 프로세스를 실행하는 것을 문맥교환이라고 합니다.
4. 프로세스의 메모리 영역(사용자 영역)
구분 | 설명 |
코드영역 | 사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 공간 |
데이터 영역 | 전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장하는 공간 |
스택 영역 | 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터(지역변수, 매개변수, 리턴값 등)를 임시로 저장하는 공간 |
힙 영역 | 프로그래머가 필요할 때마다 사용하는 메모리 영역 |
Reference
혼자공부하는 컴퓨터구조 + 운영체제
'CS > 운영체제&컴퓨터구조' 카테고리의 다른 글
CPU 스케줄링과 알고리즘 (0) | 2022.11.03 |
---|---|
프로세스 상태와 스레드 (0) | 2022.11.02 |
커널(Kernel)과 시스템 콜(Syetem call) (0) | 2022.11.02 |
CISC와 RISC 비교 (0) | 2022.10.26 |
CPU의 명령어 사이클과 인터럽트 (0) | 2022.10.26 |
댓글