이 포스팅은 한국기술교육대학 김덕수 교수님의 강의를 참고하여 작성했습니다.
해당 이론을 학습하기 전, 강의를 먼저 찾았다.
운영체제 강의 모음 (슬라이드 & YouTube 링크)
* 모든 강의는 YouTube에서 보실 수 있습니다 [재생목록 링크] 1. Computer System Overview [Slides][Video] - What is OS? - Computer Hardware 2. OS Overview [Slides][Video] - Role of Operating System (OS) - Classification of OSs - OS Archite
hpclab.tistory.com
위의 블로그는 한기대 김덕수 교수님이 운영중이신 블로그이다.
이외 다른 학습을 위해 참고해도 좋을 것 같다.
#1 VItual Storage (Memory)
Non-continuous allocation
사용자 프로그램을 여러 개의 block으로 분할
실행 시, 필요한 block들만 메모리에 적재
나머지 block들은 swap device에 존재
swap device는 쉽게 disc라고 생각해도 좋다
기법
- Paging system
- Segmentation system
- Hybrid paging/segmentation system
#2 Address Mapping
Non-continuous allcation
Virtual address (가상주소) = relative address
- Logical address (논리주소)
- 연속된 메모리 할당을 가정한 주소
Real address (실제주소) = absolute (physical)
- 실제 메모리에 적재된 주소
Address mapping
- Virtual address > real address

이렇게 하는 이유,
사용자/프로세스는 실행 프로그램 전체가 메모리에 연속적으로 적재되었다고 가정하에 실행 할 수 있다.
#3 Block Mapping
사용자 프로그램을 block 단위로 분할/관리
각 block에 대한 address mapping 정보 유지
Virtual address : v = (b,d)
b = block number
d = displacement( offset ) in a block (블록의 시작점으로 부터 얼마만큼 떨어져 있는가)
Block map table (BMT)
Address mappint 정보 관리
- Kernel 공간에 프로세스마다 하나의 BMT를 가진다.

Residence bit : 해당 블록이 메모리에 적재되었는지 여부 (0/1)
real address : 실제로 어디에 올라갔는가
다음은 기본적인 가상 메모리의 Block Mapping에 대한 그림이다.

#4 정리
1. 프로세스의 BMT에 접근
2. BMT에서 block b에 대한 항목(entry)를 찾음
3. Resudence 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을 이용하여 메모리에 접근
긴 글 읽어주셔서 감사드립니다.
22.12.01
'TIL (Today I Learned) > 컴퓨터 시스템(CS)' 카테고리의 다른 글
[CS] 가상 메모리 Segmentation system #4 (1) | 2022.12.02 |
---|---|
[CS] 가상 메모리 Memory Management #3 (0) | 2022.12.01 |
[CS] 가상 메모리 Paging System #2 (0) | 2022.12.01 |
[CS] CS:APP #1 (1) | 2022.11.30 |
[CS] C언어 학습 사전 지식, 컴퓨터 시스템(CS)의 이해 (1) | 2022.11.30 |
댓글