프로세스
정의 : 실행 중인 프로그램
프로세스 제어 블록(PCB)
: 프로세스와 관련된 정보를 저장하는 자료 구조
- 해당 프로세스를 식별하기 위해 꼭 필요한 정보 저장
- 메모리의 커널 영역에서 생성
- 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기
PCB에 담기는 정보
- 프로세스 ID(PID)
- 특정 프로세스를 식별하기 위해 부여하는 고유 번호
- 레지스터 값
- 프로세스는 이전 작업을 이어가기 위해 레지스터의 중간값을 복원한다. 따라서 카운터(다음 실행할 명령어의 주소)와 레지스터 값이 저장된다
- 프로세스 상태
- CPU 스케줄링 정보
- 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정보
- 메모리 관련 정보
- 베이스 레지스터, 한계 레지스터 등
- 페이지 테이블 또는 세그먼트 테이블
- 사용한 파일과 입출력장치 정보
- 프로세스에 할당된 입출력 장치들과 열린 파일 목록
<aside>
👩🏫 추가 정보
문맥 : 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
하나의 프로세스 문맥은 해당 프로세스의 PCB에 표현 → PCB정보 = 문맥
문맥 교환 : 기존 프로세스의 문맥을 PCB에 백업하고 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것
</aside>
프로세스의 사용자 영역(메모리 영역)