프로세스의 이해
프로세스란
- 운영체제의 작업 단위
- 운영체제가 해야 될 기본적인 일: 프로세스 관리
- 작업을 수행하기 위해서는 특정 리소스(
CPU 타임
,메모리
,파일
,I/O 디바이스
) 등이 필요하다. - 싱글 스레드(한번에 한가지 일)에서 실행된다
프로세스의 메모리 레이아웃
- 텍스트 섹션과 데이터 섹션은 정적 할당 영역(크기 고정됨), 힙 섹션과 스택 영역은 동적 할당 영역.
- 텍스트 섹션
- executable code
- 기계어로 이루어진 명령어가 저장된다.
- 읽기 전용 공간
- 데이터 섹션
- 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간
- 전역 변수
- 힙 섹션
- malloc(C언어), new(자바) 같은 것들이 쭉 쌓이는 영역
- 프로그래머가 직접 할당할 수 있는 저장 공간
- 메모리 공간을 반환한다
- 더 이상 해당 메모리 공간을 사용하지 않겠다고 운영체제에게 말해주는 것과 같다.
- 반환하지 않으면 메모리 누수가 발생함.
- 스택 섹션
- 함수 호출을 했을 때 함수의 파라미터들, 반환할 주소나 지역 변수가 쌓이는 영역
어떤 프로그램이 시작하는 영역이 0번지고, 이 프로그램의 최대 메모리 영역이 max라고 한다.
프로세스 제어 블록(PCB)
- 정의
- 프로세스와 관련된 정보를 저장하는 자료 구조
- 해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장됨.
- 특징
- 커널 영역에 생성됨
- 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기된다
- 새로운 프로세스가 생성되었다 = 운영체제가 PCB를 생성했다
- 프로세스가 종료되었다 = 운영체제가 해당 PCB를 폐기했다
- 담기는 정보들
- PID(Process ID)
- 특정 프로세스를 식별하기 위해 부여하는 고유한 번호(학교의 학번, 회사의 사번과 같은 존재)
- 레지스터 값
- 프로세스 상태
- CPU 스케쥴링 정보
- 메모리 관리 정보
- 사용한 파일과 입출력장치 목록
- PID(Process ID)
Context Switching
- Context
- 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
- Context Switching
- 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 과정.
'CS' 카테고리의 다른 글
UUID란 무엇인가(부제: PK 정하기) (0) | 2024.11.17 |
---|---|
세션 로그인 VS JWT 로그인 (0) | 2024.08.24 |
운영체제 공룡책 강의 정리 - 섹션 1. Chapter 1-2. Introduction & O/S Structures (0) | 2024.06.28 |