물리 주소
를 논리 주소
로 바꾸어 저장하여
실제 주기억장치보다 큰 메모리 영역을 제공
모든 프로그램을 프로세스에 올릴 수 없다
잦은 페이지 교체를 하게 된다
가상 메모리 크기 : 물리 메모리 + 스왑 영역
가상 메모리로 쓰이는 하드디스크의 영역
메모리 관리 장치 Memory Management Unit
CPU 내부에 존재
논리 주소
-> 물리 주소
Translation Lookaside Buffer
MMU 내부에 존재하는 캐시
⬛ : 프로세스
⬜ : 빈 메모리 공간
🟨 : 실행할 프로그램⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛⬜⬜⬜⬛⬜⬜⬜⬜⬜⬛⬛
🟨🟨🟨
⬛⬛⬜⬛⬜⬜⬛🟨🟨🟨⬜⬛⬜⬜⬜⬛⬜⬜⬜⬜⬜⬛⬛
프로세스가 할당될 수 있는 가장 첫 번째 메모리 공간에 할당
⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛🟨🟨🟨⬛⬜⬜⬜⬜⬜⬛⬛
프로세스가 할당될 수 있는 가장 작은 메모리 공간에 할당
⬛⬛⬜⬛⬜⬜⬛⬜⬜⬜⬜⬛⬜⬜⬜⬛🟨🟨🟨⬜⬜⬛⬛
프로세스가 할당될 수 있는 가장 큰 메모리 공간에 할당
⬛ : 프로세스
⬜ : 빈 메모리 공간⬛⬛⬛⬜⬜⬜⬛⬛⬛⬛⬜⬛⬛⬜⬜⬛⬛
프로세스가 사용하는 메모리 공간에 남는 부분
⬛ : 프로세스
⬜ : 빈 메모리 공간
🟨 : 실행할 프로그램⬛⬛⬛⬜⬜⬜⬛⬛⬛⬛⬜⬛⬛⬜⬜⬛⬛
🟨🟨🟨🟨🟨🟨
메모리 공간 중 사용하지 못하게 되는 부분
프로그램이 내부 단편화 공간이 작아 할당될 수 없음
🟥 🟧 🟨 🟩 🟦 : 프로세스
⬜ : 빈 메모리 공간🟥🟥🟥⬜⬜⬜🟧⬜🟨🟨🟨⬜🟩🟩⬜⬜🟦
🟥🟥🟥⬜⬜⬜⬜🟧🟨🟨🟨🟩🟩⬜⬜⬜🟦
인접한 단편화 공간을 통합
🟥 🟧 🟨 🟩 🟦 : 프로세스
⬜ : 빈 메모리 공간🟥🟥🟥⬜⬜⬜🟧⬜🟨🟨🟨⬜🟩🟩⬜⬜🟦
🟥🟥🟥🟧🟨🟨🟨🟩🟩🟦⬜⬜⬜⬜⬜⬜⬜
Garbage Collection
프로세스들을 한 쪽으로 옮김
고정 크기
프로세스를 고정된 크기
의 페이지
로 분할
물리 메모리를 일정한 크기로 나눈 블록
가상 메모리를 일정한 크기로 나눈 블록
하나의 프레임을 할당받음
페이지 테이블의 레코드
페이지 번호
, 플래그 비트
, 프레임 번호(주소 필드)
로 구성됨
접근 비트
: 페이지에 올라온 후 사용 유무
변경 비트
: 페이지에 올라온 후 변경 유무
유효 비트
: 페이지가 실제 메모리에 있는지, 스왑 영역에 있는지
읽기/쓰기 비트
: 읽기/쓰기/실행 권한
⭕ 내부 단편화
❌ 외부 단편화
페이지 크기가 커질 수록
👉 페이지 수 증가
👉 페이지 테이블의 크기가 작아짐
👉 단편화가 증가
가변 크기
프로세스를 서로 다른 크기
의 세그먼트
로 분할
❌ 내부 단편화
⭕ 외부 단편화
First In First Out
선입선출
Optimal
최적
앞으로 가장 오랫동안 사용하지 않을 페이지를 예측
Least Recently Used
최소 최근 사용
Least Frequently Used
최소 사용 빈도
Most Frequently Used
최다 사용 빈도
사용 빈도가 가장 적다는 것은 가장 최근에 사용했다는 것을 의미
Not Used Recently
최근 사용하지 않은 페이지 교체
김종현 저, 『컴퓨터구조론』, 생능출판, 2019.