베어_
TechBear
베어_
전체 방문자
오늘
어제
  • 분류 전체보기 (336)
    • Spring (33)
      • 개념 (13)
      • Security (5)
      • 실습 (1)
      • 토비 스프링 (11)
    • JPA (6)
    • 프로젝트 기록 (24)
    • DB (13)
    • JAVA (18)
    • 알고리즘 (50)
      • 유형정리 (8)
      • Baekjoon (21)
      • LeetCode (18)
    • 디자인패턴 (0)
    • 개발서적 (79)
      • Effective Java (78)
      • 객체지향의 사실과 오해 (1)
    • 독후감 (4)
    • 보안 (2)
    • 운영체제(OS) (53)
      • 공룡책 (53)
    • 컴퓨터 네트워크 (28)
      • 컴퓨터 네트워크 하향식 접근 (23)
    • 자료구조 (1)
    • DevOps (2)
    • 앱 개발 (20)
      • 안드로이드 스튜디오 (20)

블로그 메뉴

    공지사항

    인기 글

    태그

    • leetcode
    • 자바8
    • 알고리즘
    • 코드업
    • BFS
    • 토비스프링
    • 이펙티브자바
    • jpa
    • Spring
    • 자바
    • C++
    • 스프링
    • java
    • 함수형인터페이스
    • 백준
    • 운영체제
    • 스프링시큐리티
    • 데이터베이스
    • dfs
    • 스레드

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    베어_

    TechBear

    [운영체제] 페이지 테이블 구현
    운영체제(OS)/공룡책

    [운영체제] 페이지 테이블 구현

    2021. 6. 11. 18:58

    이번에는 페이지 테이블을 어떻게 구현하는지에 대해 공부해보자.

     

    [페이지 테이블 구현 방법]

    메인 메모리에는 페이지 테이블이 존재한다. 페이지 테이블은 PTBR과 PTLR로 구성된다.

    → PTBR(Page Table Base Register) : 페이지 테이블을 가리킨다.

    → PTLR(Page Table Length Register) : 페이지 테이블의 사이즈를 가리킨다.

     

    메인 메모리에 저장하는 방법은 다음과 같은 문제점을 가진다.

    → 문제점 : 페이지 테이블을 찾기 위한 메인 메모리 접근 1번, 실제 메모리 읽기 위해 1번 총 2번 접근해야함. 속도가 느림.

    → 해결 : 페이지 테이블을 TLB(Translation Look-Aside Buffer)라는 캐쉬 메모리에 두는 방법.

     

    [TLB 캐쉬 메모리는 이용하는 방법]

     

     1. 한 프로세스 페이지 테이블을 갖는 경우

      -> 장점 : 찾기 쉬움.

      -> 단점 : 문맥교환시 테이블을 다 지우고 새로 만들어야함. 

     

     2. 여러 프로세스의 페이지 테이블을 갖는 경우

      -> 장점 : 문맥교환시 테이블을 지울필요가 없음.

      -> 단점 : 프레임 번호가 나오면 자신의 프로세스 엔트리인지 확인해야함 (ASIDs 필요)

     

    [ASIDs(address-space identifiers)]

    → TLB 항목이 어느 프로세스에 속한 것인지를 알려주며 그 프로세스의 정보를 보호하기 위해 사용됨.  TLB 항목과 ASID가 같은지 검사함.

     


    [TLB 구성 / Associative Memory]

    연관 메모리는 key값을 주면 value값을 결과로 보내준다. 

    연관 메모리 구조

     

    TLB를 이용한 하드웨어의 도식도는 다음과 같다.

    만약 TLB에 요청한 정보가 있다면 프레임 번호로 p를 대체한다.

    만약 TLB에 요청한 정보가 없다면 메인메모리의 page table을 참고하여 프레임 번호를 p로 대체한다.

     


    [실질 메모리 접근 시간]

    TLB를 썼을 때 얼만큼의 시간이 감소되는지 계산해보자.

     

    TLB에서 발견할 확률을 80%, TLB 탐색 시간 : 20ns, 메모리 접근 : 100ns 라고 할 때

    실질 메모리 접근 시간 = 0.8(20 + 100) + 0.2(20 + 100 + 100)이 된다.

    더보기

    TLB에서 찾을 확률 0.8

    TLB 탐색 시간 20

    메인 메모리 접근 시간 100

     

    TLB에서 못찾을 확률 0.2

    TLB 탐색 시간 20

    페이지 테이블 접근 100

    TLB 메모리 접근 100

     

     

     

      '운영체제(OS)/공룡책' 카테고리의 다른 글
      • [운영체제] 페이지 테이블 구조
      • [운영체제] 메모리 보호와 공유 페이지
      • [운영체제] 페이징 기본 개념
      • [운영체제] 연속 메모리 할당과 단편화 문제
      베어_
      베어_
      Today I learned | 문제를 해결하는 개발자

      티스토리툴바