11 Paging Segmentation Paging Segmentation memory Add A

  • Slides: 24
Download presentation
제 11강 : Paging과 Segmentation Paging & Segmentation

제 11강 : Paging과 Segmentation Paging & Segmentation

memory Add A, B Add 10, 20 A: 100 10: 100 B: 330 20:

memory Add A, B Add 10, 20 A: 100 10: 100 B: 330 20: 330 Jump C Jump 30 C: exit 30: exit Source Binary CPU가 보낸 주소를 MMU가 변환 (Memory Management Unit) 500 10 논리적 주소 Mapping 실제 주소

만일 mapping table이 있다면 10 번지를 아무 곳으로나 (anytime, anyplace) Add A, B Add

만일 mapping table이 있다면 10 번지를 아무 곳으로나 (anytime, anyplace) Add A, B Add 10, 20 A: 100 10: 100 B: 330 20: 330 Jump C Jump 30 C: exit 30: exit Source Binary memory CPU가 보낸 주소를 MMU가 변환 (Memory Management Unit) 500 10 논리적 주소 Mapping 실제 주소 프로그램 running 도중에 옮겨도 된다 load 해도 된다 Any time Any place

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to 500 실제 me mory 내 physica 주소 l Memory Management Unit

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to 500 실제 me mory 내 physica 주소 l Paging – 동일한 크기

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to

Memory 500: 10 CPU 시한 주소 제 가 U CP logical 10 maps to 500 실제 me mory 내 physica 주소 l Segmentation – 모두 다른 크기

Logical vs. Physical Address Space – Logical address • CPU(프로세스)가 제시한 주소 • “virtual

Logical vs. Physical Address Space – Logical address • CPU(프로세스)가 제시한 주소 • “virtual address”. – Physical address • 메모리에 실제로 전달되는 주소.

Paging

Paging

Paging • • Memory page frame 전체 executable binary은 disk에 CPU가 참조하는 page만 메모리로

Paging • • Memory page frame 전체 executable binary은 disk에 CPU가 참조하는 page만 메모리로 Disk page

Paging 아무 page frame에도 올라온다 Memory MMU 500: 10 CPU CP 한 주소 U가

Paging 아무 page frame에도 올라온다 Memory MMU 500: 10 CPU CP 한 주소 U가 제시 10 maps to 500 실제 me mory 내 physica l logical Disk 10 page 500 주소

address from CPU가 제시한 주소 10 p page number d displacement (offset) logical

address from CPU가 제시한 주소 10 p page number d displacement (offset) logical

address from CPU가 제시한 주소 10 p page number d logical displacement (offset) 실제

address from CPU가 제시한 주소 10 p page number d logical displacement (offset) 실제 메모리 주소 physical p p’

address from CPU가 제시한 주소 10 p page number logical d displacement (offset) 실제

address from CPU가 제시한 주소 10 p page number logical d displacement (offset) 실제 메모리 주소 physical p 500 p’ + p’ d

Page Table Base Register Page Table Limit Register address from CPU가 제시한 주소 10

Page Table Base Register Page Table Limit Register address from CPU가 제시한 주소 10 p page number logical d displacement (offset) 실제 메모리 주소 physical p 500 p’ + p’ d

Page Table Entry 10 p page number p d displacement (offset) 500 + R

Page Table Entry 10 p page number p d displacement (offset) 500 + R rwx p’ Resident bit page frame sector addr

Segmentation

Segmentation

int A[ ][ ]; main() { ---} add() { ---} A[][] data rw main()

int A[ ][ ]; main() { ---} add() { ---} A[][] data rw main() code x add() code x stack data rwa

Segment Memory Disk page • 전체 executable binary은 disk에 • cpu가 참조하는 segment만 메모리로

Segment Memory Disk page • 전체 executable binary은 disk에 • cpu가 참조하는 segment만 메모리로

아무 공간에도 올라온다 Placement – First-fit, Best-fit, Worst-fit … MMU Memory 500: 10 CPU

아무 공간에도 올라온다 Placement – First-fit, Best-fit, Worst-fit … MMU Memory 500: 10 CPU 시한 주소 제 가 U CP 10 maps to 500 실제 me mory 내 physica 500 주소 l logical Disk 10 Holes

address from CPU가 제시한 주소 10 s logical d segment number displacement (offset) 실제

address from CPU가 제시한 주소 10 s logical d segment number displacement (offset) 실제 메모리 주소 physical s 500 s’ + s’ d

Segment Table Entry R length rwxa s’ Resident bit sector addr

Segment Table Entry R length rwxa s’ Resident bit sector addr