본문 바로가기
TIL (Today I Learned)/컴퓨터 시스템(CS)

[CS] 가상 메모리 VItual Storage (Memory) #1

by 둥굴프 2022. 12. 1.
이 포스팅은 한국기술교육대학 김덕수 교수님의 강의를 참고하여 작성했습니다.

 

해당 이론을 학습하기 전, 강의를 먼저 찾았다.

https://hpclab.tistory.com/1

 

운영체제 강의 모음 (슬라이드 & 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

 

[OS] Lec 9. Virtual Memory (1/5) 中

 

이렇게 하는 이유,

사용자/프로세스는 실행 프로그램 전체가 메모리에 연속적으로 적재되었다고 가정하에 실행 할 수 있다.

 

 

 

#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를 가진다.

BMT의 생김새 _ [OS] Lec 9. Virtual Memory (1/5) 中

Residence bit : 해당 블록이 메모리에 적재되었는지 여부 (0/1)

real address : 실제로 어디에 올라갔는가

 

다음은 기본적인 가상 메모리의 Block Mapping에 대한 그림이다.

[OS] Lec 9. Virtual Memory (1/5) 中

 

#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

댓글