1. Non-contiuous allocation
- 사용자 프로그램을 여러 개의 block으로 분할
- 실행 시, 필요한 block들만 메모리에 적재
나머지 block들은 swap device에 존재(ex). Disk)
1.1 Address Mapping
Virtual address → Real address
1. Continuous allocation
- Relative address (상대 주소)
- 프로그램 시작 주소를 0으로 가정한 주소
- Relocation (재배치)
- 메모리 할당 후, 할당된 주소에 따라 상대 주소들을 조정하는 작업
2. Non-continuous allocation
- Virtual address (가상 주소) = relative address
- Logical address
- 연속된 메모리 할당을 가정한 주소
- Real Address (실제 주소) = absolute (physical address)
- 실제 메모리에 적재된 주소
3. Mapping 기법
3.1 Block Mapping
- 사용자 프로그램을 block 단위로 분할 / 관리
- virtual address: v = (b, d)
- b: block number
- d: displacement(offset) in a block
3.2 Block Map Table (BMT)
- Address mapping 정보 관리
- Kernel 공간에 프로세스마다 하나의 BMT를 가짐
3.3 Block Mapping summary
- 프로세스 BMT에 접근
- BMT에서 block의 b에 대한 항목(entry)을 찾음
- Residence bit 검사
1) 0인 경우
- swap device에서 해당 블록을 메모리로 가져옴
BMT 업데이트 후 3-2 수행
2) 1인 경우
- BMT에서 b에 대한 real address 값 a 확인
- 실제 주소 r 계산 (r = a + d)
- r을 이용해 메모리에 접근
지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다