mmu

6
Operating System Design Laface - 2007 1.1 Memory Management Unit IA-32 after Bovet & Cesati – Understanding the Linux Kernel 0 12 13 14 15 INDEX TI RPL Logical address 16 + 32 bit Segment Selector Offset 0 31 Segment Selector are loaded into Segmentation Registers: cs, ss, ds and es, fs, gs

Upload: d-jah

Post on 23-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Memory Management Unit Slides

TRANSCRIPT

Page 1: Mmu

Operating System Design Laface - 20071.1

Memory Management Unit IA-32after Bovet & Cesati – Understanding the Linux Kernel

012131415INDEXTIRPL

Logical address 16 + 32 bit

Segment Selector

Offset

031

Segment Selector are loaded into Segmentation Registers:

cs, ss, ds and es, fs, gs

Page 2: Mmu

Operating System Design Laface - 20071.2

Segment Descriptors

• Segment registers point to Segment Descriptors stored in:– Global Description Table and Local Description Table

• A 8 byte Segment Descriptor includes– A 32-bit Base field (linear address of the first byte of the

segment)– A G granularity flag (1 -> multiples of 4 KB)– A 20-bit Limit field (length in byte of the segment)– A S system flag (1 -> kernel data structures)– A 4-bit Type field

Code segment descriptorData segment descriptorTask State Segment Descriptor (appears only in GDT)Local Descriptor Table Descriptor (appears only in GDT)

– A Segment-Present flag

Page 3: Mmu

Operating System Design Laface - 20071.3

Segment Selectors

To speed up the translation of logical to linear addresses

Page 4: Mmu

Operating System Design Laface - 20071.4

Logical to linear address translation

Page 5: Mmu

Operating System Design Laface - 20071.5

Segmentation in Linux

Linux uses these segments:

• A kernel code segment

• A kernel data segment

• A user code segment shared by all processes in User Mode

• A user data segment shared by all processes in User Mode

• A Task Segment State segment for each process

• A LDT segment usually shared by all processes

Page 6: Mmu

Operating System Design Laface - 20071.6

Paging in Hardware IA-32

The entries of Page Directories and Page Tables

include the same fields

• Present flag

• Accessed flag

• Dirty flag

• R/W flag permission

• User/kernel flag

• Page size flag (for Page Directory entries, 1 -> page of 4 MB)