Q. 프로세스 주소 공간에 무엇이 있는지 설명해주세요
-> 코드, 데이터, 스택 영역이 존재하며 코드는 프로그램의 코드가 저장되어있고, 데이터는 전역변수가, 스택에는 함수나 지역변수가 저장되어 있습니다.
-> 프로그램이 CPU에 의해 실행되면 프로세스가 생성되고 메모리에 프로세스 주소공간이 할당됩니다. 주소공간은 코드, 데이터, 스택으로 이루어져있습니다. 이 프로세스의 메타데이터들은 PCB에 저장됩니다.
Q. 프로세스 주소 공간을 나눈 이유는 무엇인가요?
- 최대한 데이터를 공유하여 메모리 사용량을 줄이기 위해서
- code는 프로그램이 만들어지고 나서 바뀔일이 없기 때문에 프로그램의 프로세스일 경우 코드 부분을 공유하여 메모리의 사용량을 줄이기 위해 분리했습니다.
- stack과 data는 함수 외부와 함수에 따라서 stack 구조 활용을 위해 나누었습니다.
반응형
'cs지식 > Operating System' 카테고리의 다른 글
[OS] PCB와 Context Switching (0) | 2021.01.20 |
---|---|
[OS] 시스템 콜(System Call) (0) | 2021.01.20 |
[OS] 인터럽트(Interrupt) (0) | 2021.01.15 |
[OS] 프로세스와 스레드 (0) | 2021.01.14 |
[OS] 운영체제란 (0) | 2021.01.02 |