가상 메모리에서는 어떻게 프로세스가 메모리를 요청하나요?
_____A: 프로세스가 메모리를 요청할 때, 실제 물리 메모리 주소 대신 가상 주소를 사용합니다. 요청 과정은 다음과 같습니다.
1. 주소 지정 : 프로세스는 실행 중 필요한 데이터를 가리키는 가상 주소를 참조합니다. 이 주소는 프로세스 고유의 가상 주소 공간 내에 있습니다.
2. 주소 변환 요청 : CPU가 가상 주소를 메모리 접근 시 참조하면, 메모리 관리 유닛(MMU)이 이 가상 주소를 물리 주소로 변환합니다.
4. 페이지 부재 상황 처리 : 페이지 테이블에 필요한 가상 주소의 물리 페이지 매핑이 없거나 페이지가 디스크에 있을 경우 ‘페이지 폴트’가 발생합니다.
5. 페이지 폴트 처리 : 운영체제는 디스크에서 필요한 페이지를 물리 메모리로 불러옵니다. 적절한 물리 메모리 프레임을 할당하고 페이지 테이블에 매핑 정보를 업데이트합니다.
6. 메모리 접근 재시도 : 페이지가 메모리에 로드되면 CPU는 다시 가상 주소를 물리 주소로 변환하고, 정상적으로 메모리 접근 요청을 수행합니다.
이 과정 덕분에 프로세스는 자신만의 독립된 가상 주소 공간에서 메모리를 효율적이고 안전하게 사용할 수 있으며, 실제 물리 메모리보다 더 큰 메모리를 사용하는 것처럼 작동할 수 있습니다.
가상 메모리 시스템에서는 각 프로세스가 독립적인 메모리 공간을 가진 것처럼 보이게 하기 때문에, 프로세스가 실제 물리적 메모리를 직접 요청하는 것이 아니라, 가상 주소를 사용하여 메모리를 요청합니다.
아래는 가상 메모리에서 프로세스가 메모리를 요청하는 과정에 대한 개요입니다.
1. 가상 주소 공간 각 프로세스는 고유한 가상 주소 공간을 갖습니다.
이 주소 공간은 운영체제에 의해 관리되며, 프로세스는 이 공간 내에서 메모리를 요청하게 됩니다.
2. 메모리 요청 프로세스가 메모리를 요청할 때, 보통 malloc(동적 메모리 할당), mmap(파일 매핑), 또는 스택/힙의 공간을 사용할 수 있는 시스템 호출을 사용합니다.
이때 요청되는 것은 가상 주소입니다.
3. 페이지 테이블 운영체제는 페이지 테이블을 사용하여 가상 주소를 물리 주소로 변환합니다.
가상 주소는 페이지 단위로 나누어지며, 페이지 테이블은 각 가상 페이지가 물리 메모리 내의 어떤 페이지에 매핑되는지를 유지합니다.
4. 페이지 불러오기 만약 프로세스가 요청한 가상 페이지가 물리 메모리에 존재하지 않는 경우, 페이지 결함(page fault)이 발생합니다.
이때 운영체제는 다음과 같은 절차를 수행합니다: - 디스크에서 해당 페이지를 찾아서 물리 메모리로 로드합니다.
- 페이지 테이블을 업데이트하여 새로운 물리 주소와 가상 주소의 관계를 설정합니다.
- 요청된 프로세스에 제어를 되돌려주어 메모리 접근을 다시 시도하게 합니다.
5. 메모리 보호 가상 메모리 시스템은 메모리 보호를 통해 각 프로세스가 자신의 메모리 공간 외부에 접근하지 못하도록 합니다.
페이지 테이블은 읽기, 쓰기, 실행 권한을 설정하여 이와 같은 보호를 수행합니다.
6. 메모리 할당 및 해제 프로세스가 더 이상 메모리를 필요로 하지 않거나 종료될 때, 운영체제는 해당 프로세스에 할당된 가상 메모리를 해제하고 페이지 테이블을 업데이트하여 다른 프로세스가 이 메모리를 사용할 수 있도록 합니다.
결론 가상 메모리 시스템은 프로세스가 메모리를 요청하고 사용하는 과정에서 복잡한 메모리 관리 기능을 통해 효율성과 보호를 제공합니다.
이를 통해 운영체제는 메모리 자원을 효율적으로 활용하고, 프로세스 간의 독립성을 보장할 수 있습니다.
작성자:
이예린 [비회원]
| 작성일자: 1년 전
2025-03-26 14:01:13
조회수: 102 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 102 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.