PCB와 Context-Switch
2024. 1. 11. 12:04ㆍCS/운영체제
프로세스란?
- 프로세스 = 실행중인 프로그램
- 프로세스들은 번갈아가며 한정된 시간만큼 CPU를 이용한다.
- 타이머 인터럽트가 발생하면 차례를 양보한다.
- 프로세스 종류
- 포그라운드 프로세스
- 사용자가 볼 수 있는 공간에서 실행되는 프로세스(ex:메모장)
- 백그라운드 프로세스
- 사용자가 볼 수 없는 공간에서 실행되는 프로세스
- 사용자와 직접 상호작용이 가능한 백그라운드 프로세스
- 데몬, 서비스
- 사용자와 상호작용하지 않고 그저 묵묵히 일만 수행하는 프로세스
- 사용자가 볼 수 없는 공간에서 실행되는 프로세스
- 포그라운드 프로세스
PCB란?
- 프로세스 관련 정보를 저장하는 자료구조로, 마치 옷에 달려있는 태그라고 생각하면 된다.
- 프로세스 생성 시 PCB는 커널 영역에 생성이 되며, 종료시 폐기된다.
- 운영체제는 커널영역에 적재된 PCB를 보고 프로세스를 관리한다.
- PCB에 담기는 정보
- 프로세스 ID(PID)
- 특정 프로세스를 식별하기 위해 부여하는 고유번호(마치 학번과 같다.)
- 레지스터 값
- 레지스터 값이 PCB에 담기는 이유
- 프로세스는 자신의 실행 차례가 오면, 이전까지 사용한 레지스터 값을 모두 복원하여 다시 실행을 재게한다.
- 즉, 자신의 실행차례가 오면, 이전까지 실행한 내용을 이용하여 실행을 재게하기 위해서!
- 연산 도중, 타이머 인터럽트에 의해 CPU를 더 이상 쓰지못하고 대기하다가, 다시 자기차례가 오면, 이전 연산값을 알아야하는데
- 이러한 연산값을 레지스터값에 의해 복원할 수 있는 것임!
- 레지스터 값이 PCB에 담기는 이유
- 프로세스 상태
- CPU스케줄링 정보
- 프로세스가 언제, 어떤 순서로 cpu를 할당받을 것인지에 대한 정보
- 메모리 정보
- 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
- 페이지 테이블 정보
- 사용한 파일과 입출력장치 정보
- 사용중인 파일 정보
- 프로세스 ID(PID)
Context Switch (문맥 교환)
- 한 프로세스(A)에서 다른 프로세스(B)로 실행순서가 넘어갔다고 가정해보자.
- 프로세스A는 지금까지의 중간정보인 문맥를 백업하게 되고
- 뒤이어 실행할 프로세스B의 문맥을 복구하게 된다.
- 이처럼, 기존의 실행중인 프로세스 문맥을 백업하고, 새로운 프로세스 실행을 위해 문맥을 복구하는 과정을 Context Switch(문맥교환)이라고 한다.
'CS > 운영체제' 카테고리의 다른 글
부모 프로세스는 자식 프로세스를 어떻게 만들어내고, 자식프로세스는 어떻게 자신만의 코드를 실행할까? (0) | 2024.01.11 |
---|---|
프로세스의 메모리 영역 중 사용자 영역은 어떻게 되어있을까? (0) | 2024.01.11 |
시스템 콜, 인터럽트? 커널모드, 유저모드? (0) | 2024.01.11 |
커널 (1) | 2024.01.11 |
운영체제의 분류 (0) | 2024.01.11 |