본문 바로가기

CS/운영체제

가상 메모리

메모리란?

  • 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치
  • 메모리는 크게 내부 기억장치인 주 기억장치외부 기억장치인 보조 기억장치로 분류
주 기억장치

DRAM, CPU 안에 있는 레지스터 (register) 와 캐쉬 (cache memory) 등
외부 기억장치

SSD, HDD 등

 

가상 메모리란?

  • 애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 올라감
  • 애플리케이션의 나머지는 디스크에 남게 됨
  • 디스크가 RAM의 보조 기억장치처럼 작동됨
빠르고 작은 기억장치(RAM)을 크고 느린 기억장치(디스크)와 병합하여, 하나의 크고 빠른 기억장치(가상 메모리)처럼 동작하게 됨.
  • 가상 메모리를 구현하기 위해서는 컴퓨터가 특수 메모리 관리 하드웨어를 갖추고 있어야만 함.
MMU (Memory Mangement Unit)
가상주소를 물리주소로 변환하고 메모리를 보호하는 기능

 

페이지 란?

  • 어떤 프로세스를 일정크기를 나눈 크기

 

페이지 테이블이란?

  • CPU 에서 실행한 프로그램이 필요한 데이터를 RAM 에서 가져올 때 가상 주소물리 주소로 CPU 에게 알려주는 역할
  • 가상 주소와 물리 주소를 매핑하는 테이블 
가상 주소란?

프로그래머가 쓰는 주소 공간
process 와 address space 에 담겨있다.
물리 주소란?

실제 주소
하드웨어가 실제 접근할 수 있는 주소

 

요구 페이징 이란?

  • CPU 가 요청할 때 프로세스의 데이터를 메모리에 올리는 것
  • 처음부터 모든 데이터를 메모리로 적재하지 않음.

 

페이지 폴트 (page faults) 이란?

  • 어떤 페이지에 접근하려고 했을 때 해당 페이지가 실제 물리 메모리에 부재할 때 뜨는 인터럽트
  • 페이지 볼트가 발생하면 운영체제가 이를 해결 한 뒤, 다시 동일한 명령을 수행하는 식으로 동작함.

가상 메모리란 무엇인가요?

* 모든 프로세스에게 메모리를 할당하기에는 메모리의 크기가 한계가 있어서 사용하는 방법입니다.
  프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 기법을 가상메모리 라고 합니다.

'CS > 운영체제' 카테고리의 다른 글

CPU 스케줄러  (0) 2022.12.26
프로세스와 스레드  (0) 2022.12.26
메모리(RAM) 구조  (2) 2022.12.26
운영체제  (0) 2022.12.26