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

[CS] 가상 메모리 Memory Management #3

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

 

#1 Memory Management

 

Page와 같은 크기로 미리 분할하여 관리/사용

- Page frame

- FPM 기법과 유사

 

Frame table

- Page frame당 하나의 entry- 구성 : Allocated/available field PID fieldLink field(For free list, 사용가능 한 fp들을 연결)AV(Free list header, free list의 시작점)

 

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

AV는 가장 처음으로 비어있는 entry를 지칭한다.

link는 빈 entry에 대한 linked list를 만든다.

 

#2 Page Sharing

 

여러 프로세스가 특정 page를 공유 가능

Non-continuous allocation이기 때문에 가능

공유 가능 page

1. Procedure pages : pure code (reenter code)

2. Data page : read-only data , read-write data : 병행성 제어 기법 관리하에서만 가능

 

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

데이터는 당연하게도 공유 가능하다.

위 그림은 함수를 공유하는 그림이다.

함수를 공유하기 위해서는 Page num를 똑같이 맞춰줘야한다.

 

#3 Page Protection

여러 프로세스가 page를 공유할 때,

protection bit 사용

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

 

#4 정리

 

1. 프로그램을 고정된 크기의 block으로 분할 (page)

/ 메모리를 block size로 미리 분할 (page frame)

- 외부 단편화 문제 없음

- 메모리 통합/압축 불필요

- 프로그램의 논리적 구조 고려하지 않음 : Page sharing/protection이 복잡

 

2. 필요한 page만 page frame에 적재하여 사용

- 메모리의 효율적 활용

 

3. Page mapping overhead

- 메모리 공간 및 추가적인 메모리 접근이 필요

- 전용 HW 활용(TLB)으로 해결 가능 : 하드웨어 비용 증가

 

 

 

긴 글 읽어주셔서 감사드립니다.

22.12.01

댓글