가상메모리(1) - 페이지테이블, TLB

2024. 10. 16. 19:30·Computer Science/Operating System
반응형

가상 메모리(Virtual Memory)란?

가상메모리는 OS에서 사용되는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용가능한 메모리 자원(실제 주소, physical address)
을 추상화 하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것이다.

 

 

☑️ 가상 메모리의 장점

 

1. 주기억장치의 효율적인 관리(스와핑)

하드디스크를 주기억장치에 대한 캐시로 설정. 쓰지않는 영역은 하드디스크로 옮긴 뒤 필요할 때만 램에 데이터를 불러와 올리고 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리.

2. 메모리 관리의 단순화

각 프로세스마다 가상 메모리의 통일 된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해짐.

3. 메모리 용량 및 안정성 보장

가상메모리 공간은 거의 무한하다고 생각해도 된다. 때문에 프로세스들끼리 메모리 침범이 일어날 여지를 줄이게 됨.

 

 

페이지테이블 (Page Table)

페이지테이블? 가상 메모리 시스템에서 가장 주소를 실제 주소로 변환해주는 테이블
페이지? 가상메모리를 사용하는 최소 크기 단위
프레임? 실제 디스크나 메모리를 사용하는 최소 크기 단위

 

가상 메모리는 페이지 테이블에 의해 실제 주소로 변환된다.

즉, 페이지 번호와 프레임 번호를 짝지어 일종의 이정표 역할을 한다.

 

 

프로세스마다 각자 페이지 테이블을 가지고 있다.

CPU는 PTBR (Page Table Base Register)을 가지고 있고, PTBR은 각 페이지 테이블의 시작주소를 가리킨다.

 

 

 

 

TLB(Translation Lookasid Buffer)

페이지 테이블은 메모리에 존재하는데, 이는 메모리 접근 시간이 두배로 늘어난다는 단점이 있다.

(페이지 테이블을 보기위해 한번, 실제 주소로 접근하기 위해 한번)

때문에, TLB를 사용하여 페이지 테이블 접근 시간을 단축시킨다.

 

TLB? 페이지 테이블 항목을 캐시하는 고속 메모리
캐시? 동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요한 일일때, 결과를 빠르게 이용하고자 성능이 좋은 혹은 가까운 곳에 저장하는 것

 

가상 주소에서 바로 페이지 테이블로 가지 않고 TLB를 확인하고, 만약 없다면 페이지 테이블로 가서 실제 주소를 가져온다.

 

 

더보기

 

운영체제 - 가상메모리, 페이징, 페이지 테이블, PTBR, TLB

연속 메모리 할당의 두 가지 문제점 외부 단편화와 물리 메모리보다 큰 프로세스 실행 불가 가상메모리(Virtual Memory) 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크

code-piggy.tistory.com

 

[컴퓨터 구조] 메모리[6] - 가상메모리(Virtual Memory)

🧐 가상 메모리 메인 메모리를 2차 저장장치(디스크)의 캐시로 사용하는 기술을 의미합니다. 이전까지는 캐시가 어떻게 최근에 사용한 코드와 데이터 부분에 대한 빠른 접근을 제공하는지 알아

ttl-blog.tistory.com

 

 

728x90
반응형

'Computer Science > Operating System' 카테고리의 다른 글

프로세스 메모리 구조, 프로세스/스레드 차이  (0) 2024.10.22
프로그램 컴파일 과정 - C, C++/Java ( Interpreter / JIT )  (0) 2024.10.18
페이지 교체 알고리즘 - FIFO, LRU, LFU, MFU, NUR, OPT(오프라인 알고리즘)  (0) 2024.10.17
가상메모리(2) - 페이지폴트와 스와핑, 스레싱  (1) 2024.10.16
시스템 콜(System Call), 사용자 모드(User mode), 커널 모드(Kernel mode), modebit  (4) 2024.10.05
'Computer Science/Operating System' 카테고리의 다른 글
  • 프로그램 컴파일 과정 - C, C++/Java ( Interpreter / JIT )
  • 페이지 교체 알고리즘 - FIFO, LRU, LFU, MFU, NUR, OPT(오프라인 알고리즘)
  • 가상메모리(2) - 페이지폴트와 스와핑, 스레싱
  • 시스템 콜(System Call), 사용자 모드(User mode), 커널 모드(Kernel mode), modebit
settong
settong
    250x250
  • settong
    개 발 자 국
    settong
  • 전체
    오늘
    어제
    • 전체보기 (202)
      • Computer Science (50)
        • Network (7)
        • Operating System (18)
        • Data Structure (9)
        • Database (11)
        • Algorithm (5)
      • Language (17)
        • Java (17)
        • Javascript (0)
        • Python (0)
      • Devops (20)
        • AWS (0)
        • Naver Cloud (16)
        • CICD (3)
        • 웹 서버 관리 (1)
      • Front (0)
        • React (0)
      • Backend (5)
        • Spring (5)
      • 코딩 테스트 정복기 (110)
        • 백준 (51)
        • 프로그래머스 (53)
        • 기타 (6)
      • etc (0)
      • 경제 상식 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    해시
    백트래킹
    Network
    CI/CD
    github actions
    백준
    다이나믹프로그래밍
    집합
    다익스트라
    DFS
    lcs
    ncp202
    완전탐색
    프로그래머스
    BFS
    Spring Boot
    ncp
    벨만포드
    분할정복
    ncp200
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
settong
가상메모리(1) - 페이지테이블, TLB
상단으로

티스토리툴바