메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit) V=1 (valid): legal page ( 페이지가프로세스의논리주소공간에있음 ) V=0 (invalid): illegal page frame no. P V 0 1 2 3 4 eo eo rw ro - 1 1 1 1 0 page table i386 page table entry Present 41
Page Table 에서의 Valid/Invalid bit physical logical PTBR(page table base register) PTLR(page table length register) 42
공유페이지 (Shared Pages) paging 의장점 코드를쉽게공유가능 공유코드 (Shared code) 재진입코드 (reentrant code) 는공유될수있음 재진입코드는수행동안변하지않는 (non-self-modifying) 읽기전용 (read-only) 코드임 두개이상의프로세스가같은코드를동시에실행할때에 물리적메모리에있는한개의코드공유 각프로세스의페이지테이블에서같은페이지프레임공유 프로세스마다별도의데이터저장공간사용 공유코드는모든프로세스의논리주소공간에서같은위치에있어야함 43
Shared Pages Example 44
8.6 Page Table 구조 Page Table의크기 ( 예 ) 32비트논리주소공간, 4KB 페이지크기 2 32 / 2 12 = 2 20 (1M) page table entries page table entry크기가 32-bit(4B) 이면 page table 크기는 2 20 * 4B = 2 22 = 4MB 1024 page 크기 최신컴퓨터시스템은 2 32 2 64 정도의커다란논리주소공간을사용 page table의크기가상당히커진다 연속메모리공간을사용하는 page table은 page size보다훨씬큼 해결책 Hierarchical Paging Hashed Page Tables 45
Hierarchical Page table (Multilevel Paging) 다단계 page table page table 을하나의연속적메모리를사용하지않고 여러개의작은조각 ( 대개 1 page 크기 ) 으로나누어서계층적으로구현 p1 10 10 12 p2 d logical address PTBR f page directory f d physical address page table main memory 46
Two-Level Page-Table Scheme (page directory) (inner) 47
(Example) Two-level paging - 80386 the page table is paged the page number is divided into (1) a 10-bit index into page directory (2) a 10-bit index into page table page size = 2 12 = 4KB, page table size = page directory size = 2 10 x 4B/entry = 4KB 48
Multilevel Paging Three-level paging 예 2 nd outer page outer page p1 p2 32-bit 10-bit innner page p3 10-bit d offset 12-bit page larger than page size page size 64-bit logical address를 32-bit physical address로변환하는데 4번의메모리접근이발생할수있음 64-bit architecture에서는 hierarchical page table이부적합함 49
(Example) x86-64 long mode paging 50
Hashed Page Tables 주소공간이 32비트보다커지면 hashed page table을사용 hashed page table 논리주소의 page number 의 hash function 값을 hashed page table 의 index 로사용함 hash table 의각 entry 는연결리스트를저장 같은 hash function 값을갖는 page 들의 paging 정보저장 연결리스트원소형식 : <page, page frame, next pointer> hashed page table 을사용한주소변환 논리주소의 page number와해쉬된위치의연결리스트원소들의 page 번호들과차례대로비교함 match되면 page를대응되는 page frame으로변환함 clustered page table page table의각entry가한개의page가아닌여러page에대한주소변환정보를저장함 논리주소공간을 sparse하게사용하는경우유용함 51
Hashed Page Tables( 계속 ) a chain of elements (virtual, physical) 52
clustered page table virtual page number 의상위부분을 hash function 의입력으로사용 하위부분은 page table entry 를선택하는데 block offset 으로사용 53
8.4 Segmentation 프로그램은세그먼트의집합임 사용자관점의메모리 세그먼트는프로그램의논리적단위 main program, procedure, function, local variables, global variables, common block, stack, symbol table, arrays 세그먼테이션 (segmentation) 논리주소 = <segment number, offset> 2차원주소 주소맵핑을세그먼트단위로수행하는메모리관리방식 2차원논리주소를 1차원물리주소로변환 54
Logical View of Segmentation 1 1 4 subroutine 2 stack 3 main 4 symbol table 2 3 user space physical memory space 55
Segmentation 구조 Segment table 프로그램의각세그먼트의주소변환정보저장 table entry 형식 base 세그먼트의 starting physical address limit 세그먼트의길이 세그먼트길이가가변이므로메모리할당은동적할당방법을사용 Segment-table base register (STBR) 현재프로세스의 segment table의시작주소 Segment-table length register (STLR) 현재프로세스의 segment 개수 segment number s 에대해서 s < STLR 이면 s는합법적 56
Segmentation 하드웨어와주소변환 STBR STLR 57
Segmentation 예 58
8.7 Example - Intel IA-32 (Pentium) segmentation 과 segmentation with paging 을지원 (in protected addressing mode) 주소변환과정 logical address : <segment, offset> 2차원주소 linear address : 1차원주소 paging을사용하지않으면 physical address와같음 physical address 59
Segmentation 과 Paging segmentation: two segment tables LDT(local descriptor table) GDT(global descriptor table) s: segment g: GDT/LDT p: privilege level selector s g p offset 13 1 2 32 translate 46-bit logical address into 32-bit linear address paging a two-level paging scheme. dir page offset 10 10 12 translate 32-bit linear address into 32-bit physical address 60
IA-32 14 32 GDTR LDTR 32 segmentation 32 10 10 12 paging CR3 61
IA-32 paging multiple page sizes 4KB, 4MB page 32-bit entry, 20-bit page frame 12-bit offset 22-bit offset 62
Page Address Extensions (PAE) 2 9 9 12-bit offset 64-bit entry, 24-bit page frame 24 + 12 = 36 bit physical address 63
ARM paging architecture Multiple page sizes 64