ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가상메모리, 페이징(Paging), 세그먼테이션(Segmentation)
    CS 2023. 5. 13. 04:55

    가상메모리란?

    : 보조기억장치를 주기억장치처럼 주소지정 가능하게 만든 저장공간 할당체제.

     

     

    가상 메모리의 특성

     

    - 프로세스의 모든 메모리 참조는 논리 주소(logical address)이며, 이는 동적으로 물리 주소(Physical address)로 변환된다.

    - 프로세스의 주소공간은 블록(페이지 or 세그먼트)으로 분할되어 그들 간의 순서나 인접관계와 무관하게 주기억장치상에 배치되어 수행될 수 있다.

    - 프로세스의 주소공간을 구성하는 페이지 중 일부만 주기억장치 상에 적재한 채 수행할 수 있다.

    - 가상메모리의 크기는 주기억장치의 크기가 아니라 컴퓨터시스템의 주소지정체제와 보조기억장치의 가용크기에 의해 제한된다.

     

    * 메모리 접근 오류(memory access fault)란?

    : 주기억장치에 적재되지 않은 블록이 참조될 때 발생하는 하드웨어 이벤트로, 발생 시 해당 프로세스는 블록 상태 진입하고 참조할 블록이 디스크로부터 적재될 때까지 머문 후 다시 준비상태가 된다.

     

     

     

    페이징(Paging)이란?

    : 페이지 단위로 잘라서 주메모리를 관리하는 방법으로, 가상주소의 페이지 번호를 이용하여 대응된 페이지테이블 항목을 찾고, 그로부터 해당 페이지가 적재된 프레임의 번호를 얻는다.

     

     

    페이징의 특징

     

    - 가상메모리는 고정크기 페이지로 분할되고, 물리메모리는 페이지 크기의 페이지프레임(혹은 프레임)들로 분할

    - 프로세스가 특정 가상주소(어떤 페이지 내의 한 주소 / 가상 페이지 넘버 + Offset)를 참조할 경우 그에 대응된 물리주소(그 페이지가 적재된 프레임 상의 대응 주소 / 물리 페이지 넘버 + Offset)가 참조되도록 주소 사상/변환

    - 일반적으로 프로세스별 페이지테이블을 통해 주소변환 하드웨어(MMU)가 활용할 주소사상정보를 제공

    - 페이지테이블에 페이지 적재 여부가 표시되고, 적재되지 않은 페이지가 참조될 경우 하드웨어에 의해 페이지폴트(page fault) 예외 발생

     

    * 가상주소공간의 크기가 커질수록 페이지테이블의 크기가 증가하고, 주기억장치에 보다 큰 적재 공간을 요구함

    해결 1) 페이지테이블을 n- 단계 계층구조로 구성

            2) 페이지테이블 자체를 가상메모리에 적재

            3) 역페이지테이블(inverted page table) 이용

     

    역페이지테이블(inverted page table)

    : 페이지당 하나가 아니라 프레임(물리페이지)당 하나의 페이지테이블 항목 설정

    - 2^n개의 페이지, 2^m개의 프레임 (n > m), 2^m개의 테이블 항목

    - 페이지 번호에 대한 해시값(hash value)을 해당 페이지가 적재된 프레임 번호로 간주 (n- 비트 페이지 번호를 m- 비트 값으로 사상시키는 해시 함수 사용)

    - 충돌(collision) 해결을 위해 연결 기법 사용 -> 전형적으로 한 두개의 테이블 항목 간에 체인 설정

     

     

    페이징테이블 항목 구성

    가상주소의 페이지 번호를 이용하여 대응된 페이지테이블 항목을 찾고, 그로부터 해당 페이지가 적재된 프레임의 번호를 얻음.

    - 존재비트(Present bit): P bit라고도 하며, 적재여부를 나타냄

    - 변경비트(Modify bit): M bit라고도 하며, 적재된 이후 내용 변경 여부를 나타냄

     

     

     

    세그먼테이션(Segmentation)이란?

    : 프로세스의 주소공간을 동적으로 설정되는 가변 크기의 블록들로 분할 (가변 크기의 블록이기 때문에 시작점과 길이 지정이 필요함)

     

     

    세그먼테이션의 장점

    - 점진적으로 커져가는 자료구조 처리 단순화 -> 필요에 따라 운영체제가 해당 세그먼트를 확장/축소할 수 있음

    - 프로그램 전체에 대한 relink나 reloading없이 세그먼트 별로 독립적인 변경 혹은 재컴파일 가능

    - 논리적 개체(유틸리티 코드, 테이터 테이블 등)를 세그먼트로 설정하여 공유, 보호 가능

     

     

    세그먼트테이블(segment table) 항목 구성

    - 존재비트(Present bit): P bit라고도 하며, 적재여부를 나타냄

    - 변경비트(Modify bit): M bit라고도 하며, 적재된 이후 내용 변경 여부를 나타냄

    'CS' 카테고리의 다른 글

    동적 메모리 할당 / malloc, calloc, realloc, free  (0) 2023.05.08
Designed by Tistory.