0% found this document useful (0 votes)
61 views6 pages

Memory Management Unit IA-32: Logical Address 16 + 32 Bit

The document discusses memory management in IA-32 processors. It describes how segment selectors reference segment descriptors stored in descriptor tables, with each descriptor containing fields like the segment base, limit, and type. It also explains the logical to linear address translation process, where segment descriptors and paging tables work together to map logical addresses to physical addresses. Segmentation is used in Linux, with separate segments for kernel code/data and user code/data, plus a task state segment per process. Paging tables have entries for fields like present, accessed, dirty flags, and permissions.

Uploaded by

d-jah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views6 pages

Memory Management Unit IA-32: Logical Address 16 + 32 Bit

The document discusses memory management in IA-32 processors. It describes how segment selectors reference segment descriptors stored in descriptor tables, with each descriptor containing fields like the segment base, limit, and type. It also explains the logical to linear address translation process, where segment descriptors and paging tables work together to map logical addresses to physical addresses. Segmentation is used in Linux, with separate segments for kernel code/data and user code/data, plus a task state segment per process. Paging tables have entries for fields like present, accessed, dirty flags, and permissions.

Uploaded by

d-jah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Memory Management Unit IA-32

after Bovet & Cesati Understanding the Linux Kernel

Logical address 16 + 32 bit


RPL
15

14

TI
13

INDEX
12

Segment Selector

31

Offset
Segment Selector are loaded into Segmentation Registers:
cs, ss, ds and es, fs, gs
Operating System Design

1.1

Laface - 2007

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
7 Code segment descriptor
7 Data segment descriptor
7 Task State Segment Descriptor (appears only in GDT)
7 Local Descriptor Table Descriptor (appears only in GDT)
A Segment-Present flag

Operating System Design

1.2

Laface - 2007

Segment Selectors

To speed up the translation of logical to linear addresses

Operating System Design

1.3

Laface - 2007

Logical to linear address translation

Operating System Design

1.4

Laface - 2007

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

Operating System Design

1.5

Laface - 2007

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)

Operating System Design

1.6

Laface - 2007

You might also like