본문 바로가기

운영체제

메인 메모리

메모리는 컴퓨터가 데이터를 저장하고, 그 데이터를 읽고 쓸 수 있는 장치를 말합니다.

 

메인 메모리는 컴퓨터 시스템에서 프로그램 실행 중 필요한 데이터를 저장하고, cpu가 직접 접근하여 읽고 쓸 수 있는 주 메모리를 의미합니다. 휘발성의 특징을 갖고있습니다.

 

기준 레지스터 (재배치 레지스터) 는 가장 작은 합법적인 물리 메모리 주소의 값을 저장합니다. 즉, 메모리에 올라간 프로세스가 시작되는 주소를 의미합니다. 

상한 레지스터는 주어진 영역의 크기를 저장합니다. 해당 프로세스사 메모리의 얼만큼 크기의 공간을 차지하는지 저장합니다. 

 

페이징은 컴퓨터 시스템에서 메모리 관리를 위한 기법으로, 프로그램을 고정된 크기의 블록으로 나누어 물리적 메모리에 할당하는 방법입니다. 페이징은 프로그램과 데이터를 작은 단위(프레임)로 분할하여 메모리 공간을 효율적으로 활용합니다.

 

  • 페이지(Page): 프로세스의 주소 공간을 일정한 크기의 블록으로 나눈 단위입니다. 각 페이지는 동일한 크기를 가지며, 가상 메모리에서의 논리적 단위입니다. 일반적인 페이지 크기는 4KB, 8KB, 16KB 등입니다.
  • 프레임(Frame): 물리적 메모리를 일정한 크기의 블록으로 나눈 단위입니다. 페이지와 동일한 크기를 가지며, 물리 메모리에서의 논리적 단위입니다.
  • 페이지 테이블(Page Table): 가상 주소와 물리 주소 간의 매핑 정보를 저장하는 데이터 구조입니다. 각 프로세스는 자신의 페이지 테이블을 가지고 있으며, 이를 통해 가상 주소를 물리 주소로 변환합니다.

페이징의 장점

  1. 메모리 단편화 감소: 페이징은 고정된 크기의 블록을 사용하므로, 내부 단편화 문제를 줄일 수 있습니다.
  2. 가상 메모리 구현: 페이징은 가상 메모리 시스템에서 필수적인 기법으로, 프로세스가 실제 물리적 메모리보다 더 큰 주소 공간을 사용할 수 있게 합니다.
  3. 프로세스 격리: 각 프로세스는 독립된 페이지 테이블을 가지므로, 서로의 메모리 영역에 영향을 주지 않습니다.

페이징의 단점

  1. 페이지 테이블 오버헤드: 페이지 테이블을 관리하는 데 추가적인 메모리가 필요하며, 페이지 테이블의 크기가 커질 수 있습니다.
  2. 주소 변환 시간: 가상 주소를 물리 주소로 변환하는 과정이 추가되므로, 주소 변환 속도를 향상시키기 위한 TLB(Translation Lookaside Buffer)와 같은 캐싱 기법이 필요합니다.

메모리 보호 : 프로세스를 연속된 메모리주소에 적재하게 되면 앞서 말한 기준 레지스터와, 상한 레지스터를 통해 해당 주소가 유효한지 쉽게 검사가 가능했지만, 페이징 기법을 활용하면 한 프로세스가 점유하는 메모리가 frame단위로 연속적이지 않을 수 있기 때문에 다른 방법으로 접근하려는 주소가 유효한지 검사를 해야합니다. 페이징 기법에서 메모리 보호를 하기위해서는 각 페이지에 붙어있는 보호 비트에 의해 구현됩니다. 페이지 테이블의 각 엔트리에는 유효/무효를 판별하는 하나의 비트가 더 있고, 이 비트가 유효하면 합법적인 페이지, 무효이면 해당 프로세스의 논리 주소 공간에 속하지 않는다는 것을 의미합니다.

 

페이지 테이블의 구조

 

계층적 페이징 (Hierarchical Paging)은 페이지 테이블을 여러 계층으로 나누어 관리하는 방식으로, 주소 변환 시 필요한 페이지 테이블의 크기를 줄이고 메모리 효율성을 높이기 위해 사용됩니다. 계층적 페이징은 다단계 페이지 테이블(Multi-level Page Table)로도 불리며, 큰 주소 공간을 효율적으로 관리할 수 있는 방법입니다. 하지만 64비트 운영체제에서는 2단계 페이징, 3단계 페이징으로도 비효율적입니다.

 

해시 페이지 테이블 (Hash Page Table)은 가상 메모리 시스템에서 효율적으로 주소 변환을 수행하기 위해 페이지 테이블을 해시 테이블 형태로 구현한 것입니다. 해시 페이지 테이블은 페이지 테이블 엔트리를 해시 테이블에 저장하여 페이지 번호와 물리 주소 간의 매핑을 관리합니다. 특히 대규모 주소 공간에서 유용하며, 페이지 테이블의 검색 시간을 줄이고 메모리 사용을 효율적으로 관리할 수 있습니다.

장점

  1. 검색 성능 향상: 해시 테이블은 평균적으로 O(1)의 시간 복잡도로 항목을 검색할 수 있어, 전통적인 페이지 테이블보다 빠릅니다.
  2. 메모리 사용 최적화: 해시 테이블의 크기를 적절히 설정하면, 필요한 메모리 공간을 줄일 수 있습니다.

단점

  1. 충돌 처리 오버헤드: 해시 충돌이 발생할 경우, 충돌 처리에 따른 추가적인 오버헤드가 발생할 수 있습니다.
  2. 메모리 사용: 해시 테이블을 구성하는 데 필요한 메모리와 해시 테이블의 크기 설정에 따른 조정이 필요합니다.

 

역 페이지 테이블(Reverse Page Table)은 메모리 관리에서 사용되는 데이터 구조로, 가상 주소를 물리 주소로 변환하는 전통적인 페이지 테이블의 반대 역할을 합니다. 역 페이지 테이블은 물리 주소를 기준으로 가상 주소와의 매핑 정보를 유지합니다.

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

운체  (0) 2024.08.06
가상 메모리  (0) 2024.07.28
데드락  (0) 2024.07.21
프로세스 동기화 ( Process Synchronization)  (0) 2024.07.14
프로세스 스케줄링  (2) 2024.07.14