/////
Search
📝

6월 13일(목)

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
뒷 내용은 안 함