728x90
반응형
1. 프로세스의 메모리 구조
- 운영체제는 프로세스에 적절한 메모리를 할당한다.
- 프로세스의 메모리 구조는 아래 구조를 기반으로 할당하게 된다.
- 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment),코드 영역(code segment)으로 나눠진다.
- 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다.
2. 스택과 힙
- 스택과 힙은 동적 할당이 되며, 동적 할당은 런타임 단계에서 메모리를 할당 받는 것을 말한다.
- 스택은 지역 변수, 매개변수, 실행되는 함수에 의해 늘어나거나 줄어드는 메모리 영역이다.
- 함수가 호출될 때마다 호출될 때의 환경 등 특정 정보가 스택에 저장된다.
- 또한 재귀 함수가 호출된다고 했을 때 새로운 스택 프레임이 매번 사용된다.
- 그렇기 때문에 함수의 변수 집합이 해당 함수의 다른 인스턴스 변수를 방해하지 않는다.
- 힙은 동적으로 할당되는 변수들을 담는다.
3. 데이터 영역과 코드 영역
- 데이터 영역과 코드 영역은 정적 할당되는 영역이다.
- 정적 할당은 컴파일 단계에서 메모리를 할당하는 것을 말한다.
- 데이터 영역은 BSS segment와 Data segment, code/text segment로 나뉘어서 저장됩니다.
- BSS segment는 전역 변수 또는 static, const로 선언되어 있다.
- 0으로 초기화 또는 초기화가 어떠한 값으로도 되어 있지 않은 변수들이 이 메모리 영역에 할당되며 Data segment은 전역 변수 또는 static, const로 선언되어 있고 0이 아닌 값으로 초기화된 변수가 이 메모리 영역에 할당된다.
4. PCB
- PCB(Process Control Block)는 운영체제에서 프로세스에 대한 메타데이터를 저장한 '데이터'를 말한다.
- 프로세스 제어 블록이라고도 말한다.
- 프로세스가 생성되면 운영체제는 해당 PCB를 생성한다.
*메타데이터란? 데이터에 관한 구조화된 데이터이자 데이터를 설명하는 작은 데이터이다. |
5. PCB의 구조
- PCB는 프로세스 스케줄링 상태, 프로세스 ID 등의 다음과 같은 정보로 이루어져 있다.
- 프로세스 스케줄링 상태 : 프로세스가 CPU에 대한 소유권을 얻은 이후 상태
- 프로세스 ID : 프로세스 ID, 해당 프로세스의 자식 프로세스 ID]
- 프로세스 권한 : 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보
- 프로그램 카운터 : 프로세스에서 실행해야 할 다음 명령어의 주소에 대한 포인터
- CPU 레지스터 : 프로세스를 실행하기 위해 저장해야 할 레지스터에 대한 정보
- CPU 스케줄링 정보 : CPU스케줄러에 의해 중단된 시간 등에 대한 정보
- 계정 정보 : 프로세스 실행에 사용된 CPU 사용량, 실행한 유저의 정보
- I/O 상태 정보 : 프로세스에 할당된 I/O 디바이스 목록
6. 컨텍스트 스위칭
- 이 과정은 앞에서 말한 PCB를 교환하는 과정을 말한다.
- 한 프로세스에 할당된 시간이 끝나거나 인터럽트에 의해 발생하게 된다.
잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다.
읽어주셔서 감사합니다.
728x90
반응형
'CS > 운영체제' 카테고리의 다른 글
[운영체제] CPU 스케줄링 알아보기 (18) | 2024.09.07 |
---|---|
[운영체제] 프로세스와 스레드 (0) | 2023.05.14 |
[운영체제] 메모리 (1) (0) | 2023.04.16 |
[운영체제] 메모리 및 성능향상 기법 (0) | 2023.03.31 |
[운영체제] 운영체제 구조와 종류 (0) | 2023.03.17 |