본문 바로가기

Computer Science

운영체제 - 페이징 시스템

 

 

 

 

가상 메모리는 '프로세스에서 실제로 사용하는 메모리는 생각보다 작다'는 점에서 시작되었습니다.

이는 사용하는 메모리만 실제 물리주소로 적용하게 했지만 새로운 문제가 발생했습니다.

얼마만큼의 메모리를 할당하냐 입니다.

 

 

 

 

페이징 시스템

   - 일정한 크기로 나눈 페이지로 가상 주소와 물리 주소를 관리하는 알고리즘입니다.

   - 하드웨어 지원이 필요합니다.

   - 페이지 번호를 기반으로 가상주소-물리주소 매핑 정보를 기록하고, 사용합니다.

   - 가상주소와 물리주소 매핑을 위해 페이지 테이블(Page table)을 사용합니다.

 

 

 

 

페이지 테이블

   - 가상주소와 물리주소 간 매핑 정보를 저장합니다.

   - 프로세스 PCB에 Page Table 구조체를 가리키는 주소가 들어있습니다.

 

 

 

 

페이징 매핑 방식

   - 페이징 테이블에는 각 페이지 첫번째 주소를 가지고 있습니다.

   - 해당 페이지 내 특정 데이터를 확인하기 위해서 해당 데이터의 변위를 확인합니다.

      변위 : 해당 데이터가 페이지 첫번째로부터 얼마나 떨어져있는지 수치화한 값

   - 매핑된 값에 변위만큼 이동하여 해당 데이터의 물리 주소를 확인할 수 있습니다.

 

 

 

 

페이징 시스템과 MMU

   - CPU는 가상주소 접근 시 MMU 를 통해 물리 메모리에 접근합니다.

   - 프로세스 생성 시, 페이지 테이블 정보를 생성하며, PCB 등에서 접근 가능합니다.

   - 데이터는 물리 메모리에 저장하며, 해당 페이지 기본 테이블 주소가 CR3 레지스터에 저장됩니다.

   - CPU가 가상주소 접근 시 MMU가 기본 테이블주소를 통해 물리주소를 가져오게 됩니다.

 

 

 

 

다중 단계 페이징 시스템

   - 페이징 시스템은 용량이 커질수록 페이지 정보의 양이 기하급수적으로 커집니다.

      예를 들어, 20bit의 페이징 번호가 존재하면 2의 20제곱개의 페이지 정보가 필요합니다.

   - 페이지를 모두 사용하는것은 아니므로, 필요없는 페이지가 존재하기도 합니다.

 

   - 다중 단계 페이징 시스템

      - 필요한 페이지 번호를 단계적으로 준비합니다.

      - 페이지 번호를 나타내는 bit를 구분해서 단계를 나눕니다.

 

 

 

 

TLB

   - Translation Lookaside Buffer로, 페이지 정보 캐시라고 합니다.

   - 가상 메모리 주소를 물리 주소로 변환하는 속도를 높이기 위한 캐시입니다.

   - 최근의 변환 테이블을 작성합니다.

   - 가상메모리 변환시 TLB를 우선으로 확인하고, 없으면 페이지 테이블을 참조합니다.

 

 

 

 

페이징 시스템과 공유메모리

   - 프로세스끼리 동일한 물리 주소를 가리킬 수 있습니다.

   - 같은 값을 복사할 때, 가상주소와 이미 존재하는 물리주소를 연결하여 효율적인 메모리 사용이 가능합니다..

 

 

 

 

요구 페이징

   - 프로세스에서 실행 중 필요한 시점에서만 메모리로 적재하는 방법입니다.

   - 선형페이징( 프로세스의 모든 데이터를 미리 메모리에 올려놓는 개념 )의 반대개념입니다.

   - 더 이상 필요하지 않은 페이지 프레임은 교체하여 다시 저장매체에 저장하며, 페이지 교체 알고리즘이 필요합니다.

 

 

 

 

페이지 폴트

   - 프로세스가 접근하려는 페이지가 물리적 메모리에 존재하지 않을때 발생하는 이벤트입니다.

      = RAM에 해당 페이지 물리주소가 존재하지 않을때 발생합니다.

 

   - Minor Page Fault

      : 메모리 내에 페이지가 존재하지만, 아직 매핑되지 않았을 경우 발생합니다.

 

   - Major Page Fault

      : 페이지가 물리적 메모리에 전혀 존재하지 않아 디스크에서 로드해야 할 때 발생합니다.

'Computer Science' 카테고리의 다른 글

운영체제 - 파일시스템  (0) 2024.05.29
운영체제 - 페이지 교체 알고리즘  (0) 2024.05.28
운영체제 - 가상메모리  (0) 2024.05.07
운영체제 - 동기화 이슈  (0) 2024.05.03
운영체제 - 스레드  (0) 2024.05.02