[운영체제] 1일차 가상메모리

nearworld·2024년 2월 14일
0

운영체제

목록 보기
1/5

가상메모리

정의

운영체제가 주기억장치의 물리적 주소에 가상 주소를 매핑하여 메모리를 관리하는 기법

가상 메모리의 등장 배경

1980년대 초중반까지만 하더라도 컴퓨터에는 가상메모리가 없었다.
메모리 가격이 상당히 비싸 대용량 메모리를 사용할 수가 없었고 이는 컴퓨터 성능의 제약이 되었다.
가상 메모리의 등장으로 실제 메모리보다 더 큰 메모리 사용이 가능하게 되었다.
가상 메모리를 사용하면 실제 메모리 크기보다 더 큰 메모리 공간 사용이 가능한데 가상 메모리를 사용하지 않을 이유가 없다. 그래서 가상 메모리를 구현한 컴퓨터들이 늘어났다.

참고: https://en.wikipedia.org/wiki/Memory_management_unit

MMU

CPU 내부에 있는 MMU (Memory Management Unit) 라는 장치

  • 가상 메모리 주소와 물리 메모리 주소가 맵핑 되어있는 페이지 테이블을 가지고 있다.
  • 페이지 테이블을 이용하여 가상메모리 주소를 물리 메모리 주소로 변환한다.

물리 메모리

물리 주소를 가지고 있는 물리 기억장치를 말한다.
물리 메모리는 RAM을 포함한 기타 다른 하드웨어의 기억 장치를 의미한다.
그러나 프로그램 실행시 RAM이 주요 영향을 미치기 때문에 물리 메모리를 RAM으로 이야기한다.

page

유래

실제 종이책의 페이지에서 단어가 유래했다고 한다.

  • 책에서 만약 5000번째 단어를 찾아야한다고 하자.
  • 책을 펼치고 첫 페이지의 첫 단어부터 하나씩 세야하기때문에 시간이 무지 오래걸릴 것이다.
  • 만약 각 페이지마다 몇개의 단어가 있는지 리스트가 있다고 가정하자.
  • 이 경우 5000번째 단어를 찾는 속도가 매우 빨라질 것이다.

정의

운영체제가 운용하는 가상메모리에서 연속적으로 연결된 고정 크기 메모리 블럭
운영체제가 메모리 관리할때 다루는 데이터의 가장 작은 단위

paging

보조기억장치에서 주기억장치로 페이지들을 전송하는 작업

page fault

게임을 하고 있다고 가정하자.

  • 게임 프로세스가 아이템을 읽어들이려 한다.
  • 아이템은 가상 주소 10번을 통해 접근 가능하고 이 가상주소 10번은 보조기억장치 물리주소 100번에 맵핑되어있다.
  • 이렇게 프로세스가 접근하려고 하는 데이터가 주기억장치에 없을때 이것을 page fault 라고 한다.
  • page fault가 발생했기 때문에 주기억장치 물리 주소 1번에 저장되어있는 가장 오래된 데이터를 보조기억장치 물리주소 100번에 저장되어있는 아이템 데이터와 스왑한다.
  • 이제 아이템 데이터가 주기억장치 물리 주소 1번에 저장되어있다.
  • 프로세스의 가상 주소 10번을 주기억장치의 물리 주소 1번에 맵핑시킨다.
  • 이제 프로세스가 아이템 데이터를 사용할 수 있게 되었다.

swap memory

가상 주소는 주기억장치의 주소 뿐만 아니라 보조 기억 장치의 주소에도 맵핑되는데 이렇게 보조 기억 장치를 이용하여 추가적으로 사용하는 메모리를 swam memory라고 한다.

profile
깃허브: https://github.com/nearworld

0개의 댓글