메모리

이연희·2022년 5월 4일
0

OS

목록 보기
9/10

메모리

모든 프로그램은 메모리에 올라와야 실행될 수 있다. 메모리에는 실행에 필요한 프로그램과 데이터가 존재하며 CPU와 협업하여 작업이 이루어진다.

종류

메모리는 읽거나 쓸 수 있는 램과 읽기만 가능한 롬으로 구분된다.

  • 램(RAM, Random Access Memory): 읽거나 쓸 수 있는 메모리
  • 롬(ROM, Read Only Memory): 읽기만 가능한 메모리

램(RAM)

  • 휘발성: DRAM, SRAM, SDRAM
  • 비휘발성: 플래시 메모리, FRAM, PRAM

롬(ROM)

마스크 롬, PROM, EPROM

메모리 보호

  • 일괄 작업 시스템에서는 메모리가 운영체제 영역과 사용자 영역으로 구분된다. 일괄 작업 시스템에서 메모리 보호는 사용자 영역의 작업이 운영체제 영역으로 침범하지 못하도록 막는 것이다. 현대 운영체제는 시분할 기법으로 사용하여 여러 프로그램을 동시에 실행하므로 사용자 영역이 여러 개의 작업 공간으로 나뉘어 있다.

  • 운영체제의 작업이 중단된 상태에서 사용자의 작업으로부터 메모리를 보호하려면 하드웨어의 도움이 필요하다. 메모리를 보호하기 위해 CPU는 현재 진행 중인 작업의 메모리 시작 주소를 경계 레지스터에 저장한 후 작업을 한다. 또한 현재 진행 중인 작업이 차지하고 있는 메모리의 크기, 즉 마지막 주소까지의 차이를 한계 레지스터에 저장한다. 그리고 사용자의 작업이 진행되는 동안 이 두 레지스터의 주소 범위를 벗어나는지 하드웨어적으로 점검함으로써 메모리를 보호한다.

메모리 분할 방식

가변 분할 방식

프로세스의 크기에 따라 메모리를 나누는 것이다. 세그멘테이션 기법이라고도 한다.

🔻 장점
가변 분할 방식에서는 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치한다.
🔻 단점
가변 분할 방식은 메모리 관리가 복잡하다. 외부단편화로 인한 메모리 관리가 복잡하다.

고정 분할 방식

프로세스의 크기와 상관없이 메모리를 같은 크기로 나누는 것이다. 페이징 기법이라고도 한다.

🔻 장점
고정 분할 방식에서는 메모리를 일정한 크기로 나누어 관리하기 때문에 메모리 관리가 수월하다. 가변 분할 방식의 메모리 통합 같은 부가적인 작업을 할 필요가 없다.
🔻 단점
쓸모없는 공간으로 인해 메모리 낭비가 발생할 수 있다. 즉 일정하게 나누어진 공간보다 작은 프로세스가 올라올 경우 메모리 낭비가 발생한다. 내부 단편화로 인한 메모리 낭비가 발생한다.

가상 메모리

컴퓨터마다 물리 메모리(실제 메모리)가 다르다. 가상 메모리는 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술이다.

메모리 분할 방식

1. 페이징 기법

물리 주소 공간을 같은 크기로 나누어 사용한다. 가상 주소의 분할된 각 영역은 페이지라고 부른다. 물리 메모리의 각 영역은 가상 주소의 페이지와 구분하기 위해 프레임(frame)이라고 부른다. 페이지와 프레임의 크기는 같다.
모든 페이지의 위치 정보, 즉 어떤 페이지가 어떤 프레임에 있는지에 대한 연결(매핑) 정보는 페이지 테이블에 담겨있다.

🔻 페이지 테이블 매핑 방식

  • 직접 매핑: 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식이다.
  • 연관 매핑: 페이지 테이블 전체를 스왑 영역에서 관리하는 방식으로 물리 메모리의 공간이 작을 때 사용한다.
  • 집합-연관 매핑: 연관 매핑의 문제를 개선한 방식으로 페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져온다.
  • 역매핑: 위의 세 가지 매핑과 달리 물리 메모리의 프레임 번호를 기준으로 테이블을 구성한다.

2. 세그멘테이션 기법

물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용한다. 페이징 기법과 마찬가지로 세그멘테이션 기법도 매핑 테이블을 사용한다. 이를 세그멘테이션 테이블이라고 한다.

3. 세그멘테이션-페이징 혼용 기법

사용자 입장에서는 세그멘테이션 기법을 사용하고 메모리 관리자 입장에서는 페이징 기법을 사용하는 가상 메모리 관리 기법이다. 메모리 보호 및 중복 정보를 세그멘테이션 테이블에서 관리함으로써 메모리 관리를 효율적으로 할 수 있다.

profile
공부기록

0개의 댓글