본문 바로가기
이론 공부 내용 정리

OS-가상메모리1(용어 정의 및 특징 정리)

by mazayong 2021. 7. 19.

목적 : 다중 프로그래밍의 실현으로 인한 물리 메모리 용량의 한계 및 불필요한 프로그램 존재로 인한 문제(프로세스 메모리 영역간 침범 이슈)를 해결하기 위해 만들어졌다.

정의 : 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법.

(폰노이만 구조 기반이므로 코드는 메모리에 반드시 있어야 함)

= 필요한 부분만 메모리에 올림으로써 메인 메모리에 올라가는 프로세스의 크기 줄이기

 

1. 특징

  • 실제 사용하는 메모리는 작다는 점에 착안됨.
  • 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음

→ 작은 메모리를 갖고 큰 가상 주소 공간을 프로그래머에게 제공 가능.

  • 프로세스는 가상주소, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔준다.

(MMU : CPU 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치)

2. 장점

  • 시스템 라이브러리가 여러 프로세스 간 공유 가능하도록 만듦.
  • 프로세스들의 메모리 공유 가능 및 공유 메모리로 통신 가능하도록 설정.
  • folk()를 통한 프로세스 생성 과정에서 페이지 공유를 가능

 

3. 가상 메모리 관리 방법 종류

  1. 가상 메모리 페이징
  • 단순 페이징과 비교해 프로세스의 페이지 전부 로드시킬 필요 없음.(필요한 페이지 있으면 자동적으로 불러들임.)
  • 외부 단편화가 없음.
  • 다중 프로그래밍 정도가 높고, 가상 주소 공간이 크다.
  • 복잡한 메모리 관리의 오버헤드 발생.
  1. 가상 메모리 세그멘테이션
  • 단순 세그멘테이션과 비교해 세그먼트 전부 로드할 필요 없음.(필요한 세그먼트 있으면 자동으로 불러들임.)
  • 내부 단편화 없음.
  • 다중 프로그래밍 정보가 높고, 가상 주소 공간이 크다.
  • 보호와 공유를 지원한다.
  • 복잡한 메모리 관리의 오버헤드 발생.

4. 페이징 시스템

  1. 페이징의 정의
  • 크기가 동일한 페이지로 가상 주소 공간과 매칭되는 물리 주소 공간 관리
  • 하드웨어 지원 필요
  • 페이지 번호 기반으로 가상주소/물리주소 매핑 정보를 기록/사용
  1. 페이지 테이블
  • 프로세스의 각 페이지에 해당하는 프로그램의 위치를 관리하는 자료구조.
  • 메인 메모리에 적재된 페이지 번호 + 해당 페이지가 위치한 메인메모리 프레임의 시작 주소.
  • 1 프로세스당 1 페이지 테이블

가상메모리의 주소를 갖는 방법 + 메인메모리의 위치를 찾는 방법

[OS, 운영체제] 메모리 관리, 가상메모리

++ 실제 메인메모리 주소 구하기

  • p: 가상 메모리의 page 번호
  • d: p안에서 참조하는 위치 (페이지 내부 주소; 변위; offset)

paging system에서  해당 프로세스에서 특정 가상 주소를 가지고 어떤 데이터에 접근하고자 하면,

→ page table에 해당 가상 주소와 그 page 번호(p)가 있는지 확인한다.

→ page 번호가 있으면 이와 매핑된  메인 메모리 주소(p')를 알아낸다

→ 그러면 페이지 처음부터 얼마 떨어진 위치인지를 알려주는 변위(d)를 더하면

→ p' + d 가 실제 메인 메모리주소가 된다.

 

 

++ 추가 내용 설명

Ch5-5. 가상메모리에 대해

JaeYeopHan/Interview_Question_for_Beginner

가상 메모리 (Virtual Memory)

[운영체제] 가상 메모리의 이해