✅ PCB에 담기는 정보 - 프로세스 ID (=PID) - 특정 프로세스를 식별하기 위해 부여하는 고유한 번호(학번, 사번 ..) - 레지스터 값 - 프로세스는 자신의 실행 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원 -> 실행 재개 - 프로그램 카운터, 스택 포인터 - 프로세스 상태 - 입출력 장치를 사용하기 위해 기다리른 상태, CPU를 이용중인 상태, CPU를 대기중인 상태.. - CPU 스케줄링 정보 - 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정보 - 메모리 정보 - 프로세스가 어느 주소에 저장되어 있는지에 대한 정보 - 페이지 테이블 정보 - 사용한 파일과 입출력 장치 정보 - 할당한 입출력 장치, 사용중인 파일 정보
문맥 교환
한 프로세스에서 다른 프로세스로 실행순서가 넘어간다면?
기존에 실행되던 프로세스 A는 지금까지의 중간정보를 백업
프로그램 카운터 등 각종 레지스터 값, 메모리 정보, 열었던 파일, 사용한 입출력 장치등
이러한 중간정보를 == 문맥
문맥 : 다음차례가 왔을 떄 실행을 재개하기 위한 정보
"실행 문맥을 백업해두면 언제든 해당 프로세스의 실행을 재개할 수 있다"
뒤이어 실행항 프로그렘 B를 복구
기존의 실행중인 프로그램 문맥을 백업하고 새로운 프로세스 실행을 위해 문맥을 복구하는 과정을 문맥교환이라고 한다
프로세스 메모리 영역
크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역이 있다
코드 영역
실행할 수 있는 코드, 기계어로 저장되오 있는 명령어 저장
데이터가 아닌 CPU가 실행할 명령어가 저장된 담기기에 쓰기가 금지된 영역 ( read-only