0%

가상메모리

가상메모리(Virtual Memory System)

가상 메모리 또는 가상 기억 장치RAM을 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다.

폰노이만 구조(현 컴퓨터 구조)

  • 폰노이만이 제안한 구조
  • Memory에 프로그램과 데이터가 저장
  • 하나씩 꺼내어 CPU:Arithmetic Logic Unit으로 연산

image-20200225003829369

폰노이만 구조는 CPU, 메모리, 프로그램으로 구성

  • 폰노이만 구조 이전: 컴퓨터들은 다른 작업을 하려고 할 때 스위치 설치, 전선 재배치하여 데이터 전송, 신호 처리

  • 폰노이만 구조 이후: 소프트웨어만 교체하면 됨

컴퓨터 주요 구성 요소(3가지가 핵심)

  • CPU(중앙처리장치, Central Processor Unit)
    • 연산: ALU
      • 산술연산: Arithmetic Operation
      • 논리연산: Login Operation
    • 제어: Control Device
      • IO Device(입출력장치), Memory, ALU동작 제어
  • Memory(코드데이터 를 저장하는 장치)
    • 프로그램과 프로그램수행에 필요한 데이터를 저장
    • 내부 기억장치(주기억장치)
      • CPU안에 레지스터, 캐쉬
      • DRAM등 메모리(램, RAM, DDR4)
    • 외부 기억장치(보고기억장치)
      • SSD, HDD
  • IO Device(입출력 장치)
    • 입력장치: 마우스, 키보드, 터치패스 등
    • 출력장치: 모니터, 프린터, 스피커 등
  • Bus(버스)
    • CPU, Memory, IO Devices를 연결해주는 장치
    • 개별적인 IO Devices들을 연결해주고 데이터를 송소신해주는 장치

image-20200225004640343

가상 메모리가 필요한 이유

  • 하나의 프로세스만 실행 가능한 시스템(배치 처리 시스템등)
    • 프로그램을 메모리로 로드
    • 프로세스 실행
    • 프로세스 종료(메모리 해체)
  • 여러 프로세스 동시 실행 시스템
    • 메모리 용량 부족 이슈
    • 프로세스 메모리 영역간에 침범 이슈

가상 메모리

  • 가상 메모리: 메모리가 실제 메모리보다 많아보이게 하는 기술
    • 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술
    • 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음
  • 가상 메모리 기본 아이디어
    • 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고/사용할때만 물리 주소로 바꿔주면 된다.
    • virtual address(가상 주소): 프로세스가 참조하는 주소
    • physical address(물리 주소): 실제 메모리 주소
  • MMU(Memory Management Unit)
    • CPU에 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치
  • 메인 메모리에 실제 각 프로세스의 데이터가 조각으로 씌여 있다.

가상 메모리와 MMU

  • CPU는 가상 메모리를 다루고,실제 해당 주소 접근시 MMU하드웨어 장치를 통해 물리 메모리 접근
    • 하드웨어 장치를 이용해야 주소 변환이 빠르기 때문에 별도 장치를 둠

image-20200225005343513