프로세스
: 실행 중인 프로그램
PCB
(=process control block) : 프로세스와 관련된 정보를 저장하는 자료구조
메모리 내 커널 영역에 생성되며, 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기됨
(타이머 인터럽트에 의해 번갈아 수행되는) 프로세스의 실행 순서 관리 및 자원 배분을 하는 OS의 이용템
PCB에 저장되는 정보들
<aside> ❕
문맥 교환을 너무 자주하면 오버헤드가 발생할 수 있음
</aside>
문맥
: 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
문맥 교환
: 프로세스 간에 실행을 전환하는 것
[1] 문맥 교환의 예시
<aside> ❕
일반적으로 힙 영역은 메모리 낮은 주소부터, 스택 영역은 높은 주소부터 할당되어서 겹칠 일이 없음
</aside>
분류(커널/사용자) | 분류(정적/동적) | 사용자 영역 분류 | 역할 |
---|---|---|---|
커널 영역 | - | - | - |
사용자 영역 | 정적 할당 영역 | 코드(텍스트) 영역 | 기계어로 이루어진 명령어 저장(읽기 전용) |
데이터 영역 | 프로그램이 실행되는 동안 유지할 데이터 저장 ex. 전역변수 | ||
동적 할당 영역 | 힙 영역 | 개발자가 직접 할당할 수 있는 저장공간 (메모리 누수 조심) | |
스택 영역 | 데이터를 일시적으로 저장하는 공간 ex. 매개변수, 지역변수 |