100세까지 코딩
[운영체제] 프로세스 개요 본문
혼공컴운 강의를 참고했습니다.
1. 프로세스란?
- 실행 중인 프로그램
2. 포그라운드 & 백그라운드
- 포그라운드 프로세스
- 사용자가 볼 수 있는 공간에서 실행되는 프로세스 - 백그라운드 프로세스
- 사용자와 직접 상호작용이 가능한 백그라운드 프로세스
- 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스
(데몬 in 유닉스, 서비스 in 윈도우)
3. 프로세스 제어 블록 (PCB)
- 프로세스와 관련된 정보를 저장하는 자료 구조
해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장.
※ 사용 이유??
- 모든 프로세스는 실행을 위해 CPU가 필요, 그러나 자원이 한정.
프로세스들이 돌아가며 한정된 시간만큼 이용.
운영체제가 빠르게 프로세스를 식별하고 실행 순서를 관리하기 위해.
4. PCB에 담기는 대표적인 정보들
- 프로세스 ID (PID)
- 특정 프로세스를 식별하기 위해 부여하는 고유한 번호. - 레지스터 값
- 프로세스 자신의 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원 -> 실행 재게 - 프로세스 상태
- CPU를 사용하기 위해 기다리는 상태, CPU 이용 중인 상태 ... - CPU 스케줄링 정보
- 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정 - 메모리 정보
- 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
- 페이지 테이블 정보 (메모리 주소를 알 수 있는 정보) - 사용한 파일 입출력장치 정보
5. 문맥 교환 (context switch)
- 기존의 실행 중인 프로세스 문맥을 백업,
새로운 프로세스 실행을 위해 문백을 복구하는 과정
6. 프로세스의 메모리 영역
1. 정적 할당 영역
◆ 코드 영역 (= 텍스트 영역)
- 실행할 수 있는 코드, 기계어로 이루어진 명령어
데이터가 아닌 CPU가 실행할 명령어가 담긴다. -> 쓰기가 금지 (read-only)
◆ 데이터 영역
- 잠깐 썻다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터 저장 (전역 변수)
2. 동적 할당 영역
◆ 힙 영역
- 프로그래머가 직접 할당할 수 있는 저장공간
- 힙 영역의 메모리 공간을 반환 하지 않으면? 메모리 누수 발생
◆ 스택 영역
- 데이터가 일시적으로 저장되는 공간 (매개 변수, 지역 변수)
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 파일과 디렉터리 (0) | 2024.03.14 |
---|---|
[운영체제] 페이징의 이점과 계층적 페이징 (0) | 2024.03.14 |
[운영체제] 프로세스 상태와 계층 구조 (0) | 2024.03.04 |