프로세스
실행 중인 프로그램을 의미.
사용자가 어떤 프로그램을 실행하면 OS가 해당 프로그램을 메모리에 적재하고 CPU를 할당하여 실행하는데,
이 실행 단위를 프로세스라 한다.
📌 프로세스의 종류
포그라운드 프로세스
사용자가 직접 실행하고 인터페이스를 통해 상호작용하는 프로세스
예 : 게임, 웹 브라우저 등
백그라운드 프로세스
사용자가 직접 조작하지 않고 시스템 내부에서 실행되는 프로세스
예: 백신 프로그램, 클라우드 동기화 프로그램 등
백그라운드 프로세스는 유닉스 체계의 운영체제에서는 '데몬' 이라 하고,
윈도우 운영체제에서는 서비스라 한다.
📌 프로세스 제어 블록 ( PCB : Process Control Block )
운영체제가 각 프로세스를 관리하기 위해 유지하는 데이터 구조
운영체제는 프로세스를 실행, 일시 정지, 재개, 종료 등의 작업을 수행하는데, 이때 프로세스의 상태 및 중요 정보를 저장하는 것이 프로세스 제어 블록 즉, PCB 다
PCB는 커널 영역에 생성되며, 프로세스 생성 시 만들어지고 실행이 끝나면 폐기된다.
다시 말해 '새로운 프로세스가 생성되었다'는 말은 '운영체제가 PCB를 생성했다'는 말과 같고,
'프로세스가 종료되었다'는 말은 '운영체제가 해당 PCB를 폐기했다'는 말과 같다.
📌 프로세스 제어 블록의 역할
- 프로세스 식별 ( 프로세스마다 고유한 PID를 할당하여 구별 )
- 프로세스 상태 ( 실행 중, 준비 상태, 대기 상태 등 프로세스의 현재 상태를 저장 )
- 레지스터 값 ( 프로세스가 사용하고 있었던 레지스터 값 ( 대표적으로 프로그램 카운터 ) )
- CPU 스케줄링 정보 ( 우선순위, 스케줄링 큐 정보 등 CPU 할당을 위한 데이터 유지 )
- 메모리 관리 정보 ( 프로세스가 사용하는 메모리 영역 ( 코드, 데이터, 스택, 힙 등 ) 정보, 페이지 테이블, 베이스 레지스터, 한계 레지스터 등 )
- 입출력 정보 ( 프로세스가 사용 중인 입출력 장치, 열린 파일 목록 등 )
'CS > 혼공컴운' 카테고리의 다른 글
[CS] 프로세스 계층 구조 (0) | 2025.02.11 |
---|---|
[CS] 프로세스 상태 (0) | 2025.02.11 |
[CS] 프로세스의 메모리 영역 (0) | 2025.02.10 |
[CS] 문맥 교환 (0) | 2025.02.10 |
[CS] C 언어 컴파일 과정 (0) | 2025.02.10 |