가상 메모리

2023. 11. 25. 21:50스터디/OS 스터디

728x90

가상메모리는 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방법이다.

메인 메모리보다 더 큰 저장 공간을 제공할 수 있다.

사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량알 초과한 프로세스에 주소를 지정헤서 메모리를 제한 없이 사용할 수 있도록 하는 개념이다.

 

활둉 영역을 메인 메모리에 유지하면서 필요할 때는 메모리 사이에 스로세스 코드와 데이터를 저장한다.

메모리 내에 스왑 인/아웃을 거쳐 프로세스를 제할당하는 것이 특징이다.

 

어떻게 이런 방식으로 메모리를 관리할 수 있을까? 바로 아래 이유에 있다.

- 실제로는 모든 프로그램이 항상 동시에 실행하지 않음

- 예외 처리 코드는 자주 필요하지 않고, 안쓸수도 있음

- 배열, 리스트 등은 사용 크기보다 항상 더 크게 정의함

- 문서 편집기에서 복사, 붙이기, 잘라내기, 삽입하기는 메뉴 하나만 메인 메모리에 적재하고, 나머지는 메인 메모리에 없어도 됨(한 순간에 한 기능만 씀)

 

이렇게 메모리 공간 문제를 활용하려면 논리 주소를 통해 물리적 주소를 분리해야 한다.

 

 

가상 주소의 특징은 인위적으로 연속적이라는 것이다. 즉, 가상 주소에서는 연속적이라 해도, 실제 메인 메모리에서는 연속적일 필요가 없다는 것이다.

 

 

요구 페이징

가상 메모리에서 많이 사용하는 메모리 관리 방법이다.

프로그램 일부만 메인 메모리에 적재하고, 순차적으로 작성되어 있는 프로그램 모듈 처리 시 다른 부분을 실행하지 않는 특징을 이용한다.

요구 페이징은 실행 중인 프로세스들의 요구 페이지만 메모리에 반입(fetch)하여 프로세스의 모든 페이지를 메모리에 동시에 적재하지 않는다. 이를 지연 스와퍼라고 한다.

1은 타당, 0은 비타당이며, 현재 디스크에서 메모리에 올라와 있는 데이터를 유효 페이지, 즉 타당하다고 볼 수 있다.

 

비타당한 데이터, 즉 아직 메모리에 올라와 있지 않은 데이터를 요청하는 것을 페이지 부재(page fault)라고 한다.

페이지 폴트 발생 시 다음과 같은 순서로 물리 메모리로 가져온다

즉 요구 페이징은 메모리를 절약할 수 있고, 초기 디스크 오버헤드가 적으나, 페이지 폴트가 자주 발생하면 그 만큼 느려지기 때문에 교체 알고리즘을 신경써야한다. 

 

728x90

'스터디 > OS 스터디' 카테고리의 다른 글

페이지 대치 알고리즘  (2) 2023.11.25
메모리 관리  (0) 2023.11.24
스케줄링 알고리즘  (1) 2023.11.24
프로세스 스케줄링이란  (0) 2023.11.18
교착 상태와 기아 상태  (0) 2023.11.11