리버싱

운영체제 프로세스 가상주소공간 Virtual Adress Space

이둥둥 2025. 2. 17. 17:31

물리메모리 사용을 할 때 발생하는 문제

1. 메모리 부족

아키텍쳐에서 표현하고자 하는 값을 위해 필요한 만큼 물리 메모리가 부족할 수 있음

물리 메모리의 크기를 넘어서는 주소 값으로 접근하면 크래시 발생 가능성 있음

 

2. 프로그램 간 사용 메모리 접근 통제 문제

프로그램들이 동일한 물리 메모리 주소에 접근하는 경우 데이터 오염, 정보 노출, 다른 프로세스가 있는 공간에 접근하면 보안 문제도 있음

 

3. 단편화로 인한 메모리 낭비 문제

실행 중인 프로그램/프로세스가 동일한 메모리 공간을 사용할 수 있어 효율적인 사용 X

 

 

윈도우 운영체제 프로세스의 가상주소공간

 

 

프로세스가 실행되면 바로 물리메모리에 올라가는 게 아니라,

매핑테이블에서 가상주소공간에 할당한 후에 물리메모리를 할당한다

→ 프로세스는 물리 메모리 주소를 직접 접근할 수 없음

→ 프로세스가 독립적으로 사용할 수 있는 공간

→ 매핑테이블 관리는 OS에서 한다

 

 

프로세스 가상주소공간 물리주소공간
ABC.exe 20-30 50-60
DEF.exe 20-30 10-20

 

ABC.exe/B.exe 모두 동일한 가상주소공간을 사용하지만

실제 물리주소공간은 다른 공간을 사용하므로 충돌하지 않는 것!

 

 

페이지와 프레임

 

 

페이지: 가상주소의 분할된 각 영역
프레임: 물리메모리의 각 영역

- 페이지 테이블은 어떤 페이지가 어떤 프레임에 있는지에 대한 매핑 정보가 있음(0~순서대로)
- 페이지 크기=프레임 크기
- 페이지 테이블을 통해 매핑되는 프레임 검색 가능