ch9_part2
Address Mapping
Virtual address를, Real address로 매핑하는것!
프로세스는, 실행 프로그램 전체가 메모리에 연속적으로 적재되었다고 가정하고 실행
Continuous Allocation
•
Relative address
•
Relocation
Non-Continuous Allocation
•
Virtual address(= relative address)
•
Real address(=absolute[physical])
Block Mapping
사용자 프로그램을 block 단위로 분할 및 관리
Virtual address
v = (b,d)
•
b : block number
•
d = displacement(=offset) in a block
Block Mapping Table(BMT)
Address mapping 정보 관리
Block Mapping 진행과정
1.
프로세스의 BMT에 접근
2.
BMT에서 block b에 대한 항목을 찾음
3.
Residence bit 검사
Resident bit : 해당 블록이 메모리에 적재되었는지 여부 : 0 or 1
•
Residence bit = 0인 경우, swap device에서 해당 블록을 메모리에서 가져옴.
BMT 업데이트 후 아래 과정 수행
•
Residence bit = 1인 경우, BMT에서 b에 대한 real address의 값 a를 확인
4.
실제 주소 < R = a + d> 계산
5.
R을 이용해서 메모리에 접근
Paging
Non-continuous Memory Management
작업을 크기가 동일한 페이지로 나누어 처리하는 방법
•
프로세스를, 크기가 동일한 크기의 페이지로 분할
•
메인 메모리도, 프레임이라는 고정크기 블록으로 분할
•
프레임에 페이지를 적재
Terminologies(용어)
•
Page
프로그램의 분할된 block
메모리의 분할 영역
Page와 같은 크기로 분할
Address Translation Scheme
CPU에 의해 생성된 주소는 다음과 같이 분할
1. Page Number(b)
페이지 테이블의 인덱스로 사용됩니다
2. Page offset(d)
물리적 메모리 주소의 정의하는 데 사용됩니다
Direct Mapping
block mapping과 유사한, address mapping 방식
가정
•
PMT(page map table)를 커널 내에 저장
•
PMT entry size = entrySize
•
Page size = pageSize
동작과정
1.
해당 프로세스의 PMT가 저장되어 있는 주소 b에 접근
2.
해당 PMT에서 page p에 대한 entry를 찾음
a.
p의 entry 위치 : b + p*entrySize
3.
찾아진 entry의 존재 비트 검사
4.
p’와 가상주소의 변위 d를 이용해서 실제 주소 r 생성
5.
실제 주소 r로 주기억장치에 접근
Associative Mapping
PMT를 병렬 탐색
Low overhead, High speed
뒷 내용은 안 함




