728x90
1. 프로세스의 주소 공간
- 정의: 프로세스가 사용할 수 있는 메모리 주소의 범위
- 영역: 하나의 프로세스는 코드 영역, 데이터 영역, 스택 영역, 힙 영역을 가짐. 이중 스택 영역과 힙 영역은 확장되거나 축소될 수 있음
- 코드 영역: 실행할 프로그램의 코드(명령어)가 저장되는 영역
- 데이터 영역: 정적 변수가 저장됨
- 스택 영역: 지역 변수, 함수 이름, 함수 인자와 반환 값 등을 저장
- 힙 영역: 프로그램 실행 시에 동적으로 할당되는 메모리 저장
2. 논리 주소와 물리적 주소
- 물리적 주소(Physical address)
- 메모리가 실제 올라가는 위치
- 심볼릭 주소(Symbolic address)
- 변수를 사용하고, 함수를 호출할 때 변수와 함수 이름으로 접근하는 것처럼 사용
- 컴파일할 때 논리 주소로 변경됨
- 논리 주소(Logical address)
- 프로세스마다 독립적으로 가지는 주소 공간
- CPU가 보는 주소. why? 메모리 가상화 지원
- 동적 주소 변환을 위해 프로그램은 실행 중에 물리주소가 변경될 수 있음
하지만 기존 논리 주소를 유지하면 어떤 물리 주소에서든 명령어 실행에 문제 없음
프로그램이 실행이 되려면 메모리에 올라가야 한다.
이때, 가상 메모리가 가상 주소가 실제 물리 주소로 변환하는 방식에 따라 구분할 수 있다.
출처
'Computer Science > OS' 카테고리의 다른 글
[OS] 페이징(Paging)과 세그멘테이션(Segmentation) (0) | 2024.06.23 |
---|---|
[OS] 주소 변환 Address Binding (0) | 2024.06.18 |
[OS] PCB와 Context Switching (0) | 2024.06.18 |
[OS] 시스템 콜 System Call (0) | 2024.06.16 |
[OS] 인터럽트 (0) | 2024.06.16 |