728x90
Process Address Space 정의
프로그램이 실행되면 메모리에 할당되는 것
구성요소
1. Code Segment
- 프로그램의 코드가 저장되어 있다.
- 프로그램의 코드는 바뀌어서는 안 되므로 읽기만 가능하다.
2. Data Segment
- 전역변수 같은 데이터가 저장되어 있다.
- 함수 바깥에 있는 데이터를 저장한다.
- 변수는 변할 수 있으므로 읽고 쓰기가 가능하다.
3. Stack Segment
- 함수나 지역 변수가 저장되어 있다.
- 변수는 변할 수 있으므로 읽고 쓰기가 가능하다.
구조
프로그램이 실행되면 프로세스가 생성된다.
메모리에 프로세스의 주소 공간이 할당된다.
주소 공간 안은 Code, Data, Stack 부분으로 이루어져 있다.
Code 부분 존재 이유
- 코드는 프로그램이 만들어지고 나서는 바뀌지 않기 때문에
Read Only이다.
- 같은 프로그램이라면 여러 프로세스가 실행되더라도 코드 부분은 모두 같다.
- 따라서 같은 프로그램의 프로세스인 경우 코드 부분을 공유하여 메모리 사용량을 줄일 수 있다.
함수 실행 순서와 Stack 구조
Stack 부분과 Data 부분 존재 이유
- 함수의 Stack 구조로 인해 Stack 부분이 존재한다.
- 전역 변수는 어떤 함수에서도 접근할 수 있기 때문에 Data로 따로 관리해준다.
참고 사이트
반응형
'개발공부 > 운영체제' 카테고리의 다른 글
[OS] CPU Scheduling (0) | 2021.11.16 |
---|---|
[OS] System Call (0) | 2021.11.15 |
[OS] 데드락(Dead Lock)이란 (0) | 2021.11.14 |
[OS] 세마포어와 뮤텍스 이해하기 | 화장실 예제와 설명 (0) | 2021.11.13 |
[OS] 좀비 프로세스 & 고아 프로세스 (0) | 2021.11.12 |