Non-continuous allocation
사용자 프로그램을 여러 개의 block으로 분할
실행 시 , 필요한 block들만 메모리에 적재 (나머지 block들은 swap device에 존재)
기법들
paging system, segmentation system, hybrid paging/segmentation system
Virtual address = relative address
연속된 메모리 할당을 가정한 주소
Real address = absolute(physical)
실제 메모리에 적재된 주소
Address mapping
Virtual address -> real address
사용자/프로세스는 실행 프로그램 전체가 메모리에 연속적으로 적재되었다고 가정하고 실행 할 수 있음
Block Mapping
사용자 프로그램을 block 단위로 분할/관리
Virtual address : v = (b,d)
b=block number
d=displacement(offset)in block
Block map table (BMT)
Address mapping 정보 관리
Kernel 공간에 프로세스마다 하나의 BMT를 가짐
1. 프로세스의 BMT에 접근
2. BMT에서 block b에 대한 항목을 찾음
3. Residence bit 검사
1- Residence bit = 0인 경우
swap device에서 해당 블록을 메모리로 가져 옴 BMT업데이트 후 3-2 단계 수행
2- Residence bit = 1인 경우
BMT에서 b에 대한 real address 값 a 확인
4. 실제 주소 r 계산 (r=a+d)
5. r을 이용하여 메모리에 접근
Paging System
프로그램을 같은 크기의 블록으로 분할 (pages)
Terminologies
page - 프로그램의 분할된 block
page frame - 메모리의 분할 영역, Page와 같은 크기로 분할
특징
논리적 분할이 아님(크기에 따른 분할) - 페이지 공유 및 보호 과정이 복잡함 segmentation대비
Simple and Efficient
No external fragmentation - Internal fragmentation 발생 가능
address mapping
virtual address : v = (p,d)
p:page number
d:displacement(offset)
PMT(Page Map Table) 사용
Address mapping mechanism
-Direct Mapping
Block Mapping방법과 유사
가정 : PMT를 커널 안에 저장, PMT entry size = entrySize, page size=pageSize
문제점 : 메모리 접근 횟수가 2배, PMT를 위한 메모리 공간 필요
해결 : TLB(Associative mapping), PMT를 위한 전용 기억장치 사용
-Associative mapping
TLB(Translation Look-aside Buffer)에 PMT 적재
PMT를 병렬 탐색 But Expensive hardware 큰 PMT를 다루기 어려움
-Hybrid dirct/associative mapping
두 기법을 혼합하여 사용
HW비용은 줄이고, Associative mapping의 장점 활용
작은 크기의 TLB사용
PMT : 메모리(커널 공간)에 저장
TLB : PMT 중 일부 entry들을 적재 - 어떤 entry?
Locality(지역성)활용 : 프로그램의 수행과정에서 한번 접근한 영역을 다시 접근 또는 인접 영역을 다시 접근할 가능성이 높음
Paging system에 Memory Management
Page와 같은 크기로 미리 분할 하여 관리/사용
Frame table
Page frame당 하나의 entry
구성
Allocated/available field, PID field, Link field(내 다음 비어있는 entry linked list), AV(pointer)
Page Sharing
여러 프로세스가 특정 page를 공유 가능 (Non-continuous allocation)
공유 가능 page
Procedure pages
data page
여러 프로세스가 page를 공유 할 때
Protection bit 사용
VRWE
'개발자 > v0' 카테고리의 다른 글
2. 소프트웨어 개발의 이해를 돕기 위한 비유 (0) | 2020.10.14 |
---|---|
1. 소프트웨어 구현이란 무엇인가? (0) | 2020.10.14 |
운영체제 OS - 메모리 관리, Continuous Memory Allocation (0) | 2020.09.09 |
네트워크 Network - 7계층, HTTP 프로토콜 (0) | 2020.09.08 |
네트워크 Network - NAT와 포트포워딩 (0) | 2020.09.08 |