🍋 CS

운영체제 - 메모리(Memory)

밈98 2023. 4. 18. 18:04

Cpu는 '메모리'에 올라와 있는 프로그램의 명령어를 실행한다.

 

메인 메모리(main memory)

메인 메모리는 CPU가 직접 접근할 수 있는 기억 장치이다. 프로그램이 메모리에 올라와야 프로세스가 실행됨.

 

MMU (Memory Management Unit, 메모리 관리 장치)

  • 논리 주소를 물리주소로 변환해 준다. (가상주소를 실제 메모리 주소로 변환해줌)
  • 메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어
  • CPU 코어 안에 탑재 되어 있음
메모리 계층

  • 레지스터: CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 적다
  • 캐시 : L1,L2캐시를 지칭한다. 휘발성, 속도빠름, 기억 용량이 적다. 
  • 주기억장치 : RAM을 말한다. 휘발성, 속도 보통, 기억 용량 보통
  • 보조기억장치 : HDD, SSD 를 말한다. 비휘발성, 속도 낮음, 기억용량 많음
캐시(Cache) 

데이터를 미리 복사해 놓는 임시 저장소이자, 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리

 

캐시 히트 & 캐시 미스

캐시 히트 : 캐시에서 원하는 데이터를 찾은 것을 말한다.

캐시 미스 : 해당 데이터가 캐시에 없으면 주 메모리로 가서 데이터를 찾아오는 것을 캐시미스라고 한다.

 

캐시 히트를 할 시에는 해당 데이터를 제어장치를 거쳐서 가져오게 되므로 빠르지만, 캐시 미스가 발생되면 메모리에서 가져오는데 이는 시스템 버스를 기반으로 작동하기 때문에 느리다.

 

가상 메모리(virtual memory)

메모리 관리기법중 하나로 컴퓨터가 실제 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것

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

요구 페이징은 CPU가 요청할 때 프로세스의 데이터를 메모리에 올리는 것을 의미함.

즉, 처음부터 모든 데이터를 메모리로 적재하지는 않음.

 

페이지 폴트(page faults)

페이지 폴트란 어떤 페이지에 접근하려고 했을 때 해당 페이지가 실제 물리 메모리에 부재할 때 뜨는 인터럽트이다.

페이지 폴트가 발생하면 운영체제가 이를 해결한 뒤 다시 동일한 명령을 수행하는 식으로 동작함.

 

  • 이러한 페이지 폴트가 자주 일어날수록 운영체제의 성능이 많이 저하되기 때문에 페이지 폴트가 일어나지 않도록 하는 것이 중요함. 페이지 폴트를 최소화하기 위한 방법으로는 페이지 교체 정책(page replacement policy)이 있음.
  • 메모리가 꽉 차있을 때 기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고, 새로운 페이지를 방금 비워진 해당 물리 메모리 공간에 올림. 이때 기존 페이지 중 어떤 것을 내리면 좋을지에 대한 알고리즘을 짠 것이 바로 페이지 교체 알고리즘이다.

'🍋 CS' 카테고리의 다른 글

네트워크) IP 주소란? (+면접용 정리)  (0) 2023.09.02
1장. 네트워크 기초  (0) 2023.08.27
운영체제 - 공유자원 & 임계구역  (0) 2023.04.11
운영체제 - 프로세스간 통신  (0) 2023.04.11
운영체제 - CPU 스케줄링  (0) 2023.04.07