ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] OS 페이징 기법
    운영체제 2020. 10. 22. 20:08
    728x90

    Page table

    기존 페이지 테이블의 문제점 : 메모리가 커지다보니 페이지 테이블이 커지는 문제

     

    Two-level Page-Table scheme (Hierarchical paging)

    페이지 테이블을 두 단계로 나누어서 페이지 사이즈를 줄임.

    대신 메모리 접근 횟수가 1회 증가

    Hashed Page Table (Clustered page table)

    해시테이블로 page table 을 관리하는 법으로 충돌이 날 수 있기 때문에 내부에 linked list 또한 갖고 있다

    메모리 접근횟수도 줄이고 테이블 사이즈도 확실히 줄어듦

     

    Inverted Page Table

    논리주소를 기반으로 페이지를 찾아서 물리주소를 찾는 방법과는 달리 물리주소를 테이블에 저장해두고 매칭되는 페이지를 찾는 방식

    따라서 페이지 테이블이 물리주소로 정렬되어 있고, 인덱스 또한 물리주소를 의미함

    그래서 Page 번호로 물리주소를 찾으려면 최악의 경우 페이지 테이블 전체를 뒤져봐야 그 물리주소를 알 수 있음

     

    Swapping

    메모리가 부족할 때 backing store(swapping area)로 잠시 퇴출될 수 있는데 이를 swap이라고 함

    Backing store 는 디스크이긴하나 디스크 중에서도 빠른 편에 속하는 영역임

     

    swap out 되었다가 swap in 될 때 해당 프로세스가 compile time 혹은 load time 에 메모리를 할당하는 프로세스라면 신중히 swap in 되어야함. Execution time 은 어차피 실행시간에 할당되기 때문에 대충 해줘도됨

     

    swap 은 상당히 느린편이라 최후의 순간에 사용되어야 함

    100 MB 프로세스를 하드디스크로 보내는데 초당 50MB 속도로 보낼 수 있다면 swap out 시 2초, swap in 시 2초로 총 4초의 시간이 걸리게됨.

    이를 해결하기 위해 스왑되는 메모리의 크기를 줄이기도 함 : 주로 CODE영역만 swap 함(read 만 하기 때문)

    • Pending I/O : I/O의 완료를 기다리는 프로세스는 swap out 되지 않음. I/O 완료 후 Interrupt 를 보내줬는데 그 프로세스가 사라져 있으면 안되기 때문

    • Double buffering : 버퍼 + 디스크버퍼

     

    모바일 시스템에서는 Flash memory 기반으로 이루어져있기 때문에 swap 을 잘 지원하지 않음

     

    ARM 프로세서같은 경우에는 TLB 도 두 단계로 이루어져 있으며 Page도 small page, large page, page보다 큰 개념인 section, large section 으로 나누어서 페이징 기법을 고도화시킴

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

    [OS] Demand paging  (0) 2020.11.26
    [OS] 가상메모리 주소공간과 MMU  (0) 2020.11.26
    [OS] 운영체제와 메모리  (0) 2020.10.22
    CPU 스케쥴링  (0) 2020.10.19
    운영체제의 프로세스  (0) 2020.10.19

    댓글

Designed by Tistory.