가상 메모리

서재·2023년 6월 5일
0

컴퓨터구조론

목록 보기
16/16
post-thumbnail

가상 메모리

물리 주소논리 주소로 바꾸어 저장하여
실제 주기억장치보다 큰 메모리 영역을 제공


물리 메모리의 한계

모든 프로그램을 프로세스에 올릴 수 없다
잦은 페이지 교체를 하게 된다


스와핑

가상 메모리 크기 : 물리 메모리 + 스왑 영역

스왑 영역

가상 메모리로 쓰이는 하드디스크의 영역


MMU

메모리 관리 장치 Memory Management Unit
CPU 내부에 존재
논리 주소 -> 물리 주소

TLB

Translation Lookaside Buffer
MMU 내부에 존재하는 캐시


메모리 할당 전략

⬛ : 프로세스
⬜ : 빈 메모리 공간
🟨 : 실행할 프로그램

⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛⬜⬜⬜⬛⬜⬜⬜⬜⬜⬛⬛

🟨🟨🟨

최초

⬛⬛⬜⬛⬜⬜⬛🟨🟨🟨⬜⬛⬜⬜⬜⬛⬜⬜⬜⬜⬜⬛⬛

프로세스가 할당될 수 있는 가장 첫 번째 메모리 공간에 할당

최적

⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛🟨🟨🟨⬛⬜⬜⬜⬜⬜⬛⬛

프로세스가 할당될 수 있는 가장 작은 메모리 공간에 할당

최악

⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛⬜⬜⬜⬛🟨🟨🟨⬜⬜⬛⬛

프로세스가 할당될 수 있는 가장 큰 메모리 공간에 할당


단편화

내부 단편화

⬛ : 프로세스
⬜ : 빈 메모리 공간

⬛⬛⬛⬜⬜⬜⬛⬛⬛⬛⬜⬛⬛⬜⬜⬛⬛

프로세스가 사용하는 메모리 공간에 남는 부분

외부 단편화

⬛ : 프로세스
⬜ : 빈 메모리 공간
🟨 : 실행할 프로그램

⬛⬛⬛⬜⬜⬜⬛⬛⬛⬛⬜⬛⬛⬜⬜⬛⬛

🟨🟨🟨🟨🟨🟨

메모리 공간 중 사용하지 못하게 되는 부분

프로그램이 내부 단편화 공간이 작아 할당될 수 없음

단편화 통합

🟥 🟧 🟨 🟩 🟦 : 프로세스
⬜ : 빈 메모리 공간

🟥🟥🟥⬜⬜⬜🟧⬜🟨🟨🟨⬜🟩🟩⬜⬜🟦

🟥🟥🟥⬜⬜⬜⬜🟧🟨🟨🟨🟩🟩⬜⬜⬜🟦

인접한 단편화 공간을 통합

단편화 압축 (쓰레기 수집)

🟥 🟧 🟨 🟩 🟦 : 프로세스
⬜ : 빈 메모리 공간

🟥🟥🟥⬜⬜⬜🟧⬜🟨🟨🟨⬜🟩🟩⬜⬜🟦

🟥🟥🟥🟧🟨🟨🟨🟩🟩🟦⬜⬜⬜⬜⬜⬜⬜

Garbage Collection
프로세스들을 한 쪽으로 옮김

✂️ 페이징 방식

고정 크기
프로세스를 고정된 크기페이지로 분할

프레임

물리 메모리를 일정한 크기로 나눈 블록

페이지

가상 메모리를 일정한 크기로 나눈 블록
하나의 프레임을 할당받음

페이지 테이블 엔트리

페이지 테이블의 레코드
페이지 번호 , 플래그 비트 , 프레임 번호(주소 필드) 로 구성됨

플래그 비트

접근 비트 : 페이지에 올라온 후 사용 유무
변경 비트 : 페이지에 올라온 후 변경 유무
유효 비트 : 페이지가 실제 메모리에 있는지, 스왑 영역에 있는지
읽기/쓰기 비트 : 읽기/쓰기/실행 권한

단편화

⭕ 내부 단편화
❌ 외부 단편화

trade-off

페이지 크기가 커질 수록
👉 페이지 수 증가
👉 페이지 테이블의 크기가 작아짐
👉 단편화가 증가


✂️ 세그멘테이션 방식

가변 크기
프로세스를 서로 다른 크기세그먼트로 분할

단편화

❌ 내부 단편화
⭕ 외부 단편화


🔃 페이지 교체 알고리즘

FIFO

First In First Out
선입선출

OPT

Optimal 최적
앞으로 가장 오랫동안 사용하지 않을 페이지를 예측

LRU ⭐

Least Recently Used
최소 최근 사용

LFU

Least Frequently Used
최소 사용 빈도

MFU

Most Frequently Used
최다 사용 빈도
사용 빈도가 가장 적다는 것은 가장 최근에 사용했다는 것을 의미

NUR ⭐

Not Used Recently
최근 사용하지 않은 페이지 교체


김종현 저, 『컴퓨터구조론』, 생능출판, 2019.

profile
입니다.

0개의 댓글