가상메모리(Virtual Memory System)
가상 메모리 또는 가상 기억 장치는 RAM을 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다.
폰노이만 구조(현 컴퓨터 구조)
- 폰노이만이 제안한 구조
- Memory에 프로그램과 데이터가 저장
- 하나씩 꺼내어 CPU:Arithmetic Logic Unit으로 연산
폰노이만 구조는 CPU, 메모리, 프로그램으로 구성
폰노이만 구조 이전: 컴퓨터들은 다른 작업을 하려고 할 때 스위치 설치, 전선 재배치하여 데이터 전송, 신호 처리
폰노이만 구조 이후: 소프트웨어만 교체하면 됨
컴퓨터 주요 구성 요소(3가지가 핵심)
- CPU(중앙처리장치, Central Processor Unit)
- 연산: ALU
- 산술연산: Arithmetic Operation
- 논리연산: Login Operation
- 제어: Control Device
- IO Device(입출력장치), Memory, ALU동작 제어
- 연산: ALU
- Memory(코드 와 데이터 를 저장하는 장치)
- 프로그램과 프로그램수행에 필요한 데이터를 저장
- 내부 기억장치(주기억장치)
- CPU안에 레지스터, 캐쉬
- DRAM등 메모리(램, RAM, DDR4)
- 외부 기억장치(보고기억장치)
- SSD, HDD
- IO Device(입출력 장치)
- 입력장치: 마우스, 키보드, 터치패스 등
- 출력장치: 모니터, 프린터, 스피커 등
- Bus(버스)
- CPU, Memory, IO Devices를 연결해주는 장치
- 개별적인 IO Devices들을 연결해주고 데이터를 송소신해주는 장치
가상 메모리가 필요한 이유
- 하나의 프로세스만 실행 가능한 시스템(배치 처리 시스템등)
- 프로그램을 메모리로 로드
- 프로세스 실행
- 프로세스 종료(메모리 해체)
- 여러 프로세스 동시 실행 시스템
- 메모리 용량 부족 이슈
- 프로세스 메모리 영역간에 침범 이슈
가상 메모리
- 가상 메모리: 메모리가 실제 메모리보다 많아보이게 하는 기술
- 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술
- 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음
- 가상 메모리 기본 아이디어
- 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고/사용할때만 물리 주소로 바꿔주면 된다.
- virtual address(가상 주소): 프로세스가 참조하는 주소
- physical address(물리 주소): 실제 메모리 주소
- MMU(Memory Management Unit)
- CPU에 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치
- 메인 메모리에 실제 각 프로세스의 데이터가 조각으로 씌여 있다.
가상 메모리와 MMU
- CPU는 가상 메모리를 다루고,실제 해당 주소 접근시 MMU하드웨어 장치를 통해 물리 메모리 접근
- 하드웨어 장치를 이용해야 주소 변환이 빠르기 때문에 별도 장치를 둠