프로세스 개요
- 포그라운드 프로세스 - 사용자가 볼 수 있는 공간에서 실행
- 백그라운드 프로세스 - 사용자가 볼 수 없는 공간에서 실행
- 사용자와 상호작용 가능 - 데몬, 서비스
- 사용자와 상호작용 가능하지 않음
프로세스 제어 블록 (PCB)
- 모든 프로세스는 실행을 위해 CPU가 필요하다
- 프로세스들은 한정된 시간 만큼만 CPU 이용
- 타이머 인터럽트가 발생하면 차례 양보
<aside>
💡
PCB란?
- 빠르게 번갈아 수행되는 프로세스를 관리하기 위한 자료구조
- 프로세스 생성 시 [커널 영역]에 생성, 프로세스 종료 시 폐기
</aside>
<aside>
💡
PCB에 담기는 정보들
- 프로세스 ID (=PID)
- 래지스터 값 → 프로세스가 자신의 실행 차례가 오면 이전까지 사용한 레지스터 값들을 복원 후 실행을 재개해야 하므로
- 프로세스 상태
- CPU 스케줄링 정보 → 프로세스가 언제 CPU를 할당받을지
- 메모리 정보 → 프로세스가 어느 주소에 저장되어 있는지
- 사용한 파일, 입출력장치 정보
</aside>
컨텍스트 스위치 ⭐️⭐️
- 프로세스 A → 프로세스 B 실행 순서가 넘어가면?
<aside>
💡
컨텍스트란?
다음 차례가 왔을 때 실행을 재개하기 위한 정보
</aside>
- 프로세스 A의 컨텍스트를 프로세스 A의 PCB에 백업
- 프로세스 B의 PCB로부터 컨텍스트 복구
프로세스의 메모리 영역
