Just do IT
article thumbnail

페이징 시스템 (paging system)

   크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리

   하드웨어 지원이 필요

   리눅스에서는 4KB paging

   페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용

 

페이징 시스템 구조

   page 또는 page frame : 고정된 크기의 block (4KB)

   paging system : 가상 주소 v = (p, d)

      p : 가상 메모리 페이지

      d : p안에서 참조하는 위치

   페이지 크기가 4KB

     가상 주소의 0비트에서 11비트가 변위 (d) 나타내고

     12비트 이상이 페이지 번호가 있음

 

페이지 테이블 (page table)

   * page table

     물리 주소에 있는 페이지 번호와 해당 페이지의 물리 주소 정보를 매핑한

     가상 주소 v=(p, d)라면

       - p : 페이지 번호 

       - d : 페이지 처음부터 얼마 떨어진 위치인지

   * paging system 동작

     해당 프로세스에서 특정 가상 주소 엑세스를 하려면

        - 해당 프로세스의 page table 해당 가상 주소가 포함된 page 번호가 있는지 확인

        - page 번호가 있으면 page 매핑된 물리 주소를 알아내고 (p')

        - p' + d 실제 물리 주소가

 

페이징 시스템과 MMU(컴퓨터 구조)

   CPU 가상 주소 접근 : MMU 하드웨어 장치를 통해 물리 메모리 접근

   프로세스 생성 페이지 테이블 정보 생성

      PCB등에서 해당 페이지 테이블 접근 가능하고 관련 정보는 물리 메모리에 적재

      프로세스 구동시 해당 테이블 base 주소가 별도 레지스터에 저장

     CPU 가상 주소 접근시 MMU 페이지 테이블 base 주소를 접근해서 물리 주소를 가져옴

 

다중 단계 페이징 시스템

   32bit 시스템에서 4KB 페이지를 위한 페이징 시스템은

      하위 12bit 오프셋

      상위 20bit 페이징 번호이므로, 2 20(1048576)개의 페이지 정보가 필요함

   페이징 정보를 단계를 나누어 생성

      필요없는 페이지는 생성하지 않으면 공간 절약 가능

 

MMU TLB(컴퓨터 구조)

   MMU 물리 주소를 확인하기 위해 메모리를 갔다와야

   메모리 계층

   TLB(Transaltion Lookaside Buffer) : 페이지 정보 캐쉬

 

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

   프로세스간 동일한 물리 주소를 가리킬 있음 (공간 절약, 메모리 할당 시간 절약)

   물리주소 데이터 변경 : 물리 주소에 데이터 수정 시도시, 물리 주소를 복사할 있음 (copy-on-write)

 

요구 페이징 (Demanding Paging 또는 Demanded Paging)

   프로세스 모든 데이터를 메모리로 적재하지 않고 실행 필요한 시점에서만 메모리로 적재함

      선행 페이징 (anticipatory paging 또는 prepaging) 반대 개념

         : 미리 프로세스 관련 모든 데이터를 메모리에 올려놓고 실행하는 개념

      이상 필요하지 않은 페이지 프레임은 다시 저장매체에 저장 (페이지 교체 알고리즘 필요)

 

출처 : 제로베이스

'공부 Note > 운영체제' 카테고리의 다른 글

Chapter 06 파일 시스템의 이해  (0) 2022.01.04
Chapter 05 가상 메모리 (3)  (0) 2022.01.04
Chapter 05 가상 메모리 (1)  (0) 2022.01.04
Chapter 04 쓰레드의 이해 (3)  (0) 2021.12.30
Chapter 04 쓰레드의 이해 (2)  (0) 2021.12.30
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!