?? s05_03.htm
字號:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML><HEAD><TITLE>80386 Programmer's Reference Manual -- Section 5.3</TITLE></HEAD><BODY><B>up:</B> <A HREF="c05.htm">Chapter 5 -- Memory Management</A><BR><B>prev:</B> <A HREF="s05_02.htm">5.2 Page Translation</A><BR><B>next:</B> <A HREF="c06.htm">Chapter 6 -- Protection</A><BR> <P><HR><P><H1>5.3 Combining Segment and Page Translation</H1><A HREF="#fig5-12">Figure 5-12</A> combines<A HREF="s05_01.htm#fig5-2">Figure 5-2</A> and<A HREF="s05_02.htm#fig5-9">Figure 5-9</A> to summarize both phasesof the transformation from a logical address to a physical address whenpaging is enabled. By appropriate choice of options and parameters to bothphases, memory-management software can implement several different styles ofmemory management.<H2>5.3.1 "Flat" Architecture</H2>When the 80386 is used to execute software designed for architectures thatdon't have segments, it may be expedient to effectively "turn off" thesegmentation features of the 80386. The 80386 does not have a mode thatdisables segmentation, but the same effect can be achieved by initiallyloading the segment registers with selectors for descriptors that encompassthe entire 32-bit linear address space. Once loaded, the segment registersdon't need to be changed. The 32-bit offsets used by 80386 instructions areadequate to address the entire linear-address space.<H2>5.3.2 Segments Spanning Several Pages</H2>The architecture of the 80386 permits segments to be larger or smaller thanthe size of a page (4 Kilobytes). For example, suppose a segment is used toaddress and protect a large data structure that spans 132 Kilobytes. In asoftware system that supports paged virtual memory, it is not necessary forthe entire structure to be in physical memory at once. The structure isdivided into 33 pages, any number of which may not be present. Theapplications programmer does not need to be aware that the virtual memorysubsystem is paging the structure in this manner.<P><A NAME="fig5-12"><IMG align=center SRC="fig5-12.gif" border=0><P><H2>5.3.3 Pages Spanning Several Segments</H2>On the other hand, segments may be smaller than the size of a page. Forexample, consider a small data structure such as a semaphore. Because of theprotection and sharing provided by segments (refer to <A HREF="c06.htm">Chapter 6</A> ) , it may beuseful to create a separate segment for each semaphore. But, because asystem may need many semaphores, it is not efficient to allocate a page foreach. Therefore, it may be useful to cluster many related segments within apage.<H2>5.3.4 Non-Aligned Page and Segment Boundaries</H2>The architecture of the 80386 does not enforce any correspondence betweenthe boundaries of pages and segments. It is perfectly permissible for a pageto contain the end of one segment and the beginning of another. Likewise, asegment may contain the end of one page and the beginning of another.<H2>5.3.5 Aligned Page and Segment Boundaries</H2>Memory-management software may be simpler, however, if it enforces somecorrespondence between page and segment boundaries. For example, if segmentsare allocated only in units of one page, the logic for segment and pageallocation can be combined. There is no need for logic to account forpartially used pages.<H2>5.3.6 Page-Table per Segment</H2>An approach to space management that provides even further simplificationof space-management software is to maintain a one-to-one correspondencebetween segment descriptors and page-directory entries, as <A HREF="#fig5-13">Figure 5-13</A> illustrates. Each descriptor has a base address in which the low-order 22bits are zero; in other words, the base address is mapped by the first entryof a page table. A segment may have any limit from 1 to 4 megabytes.Depending on the limit, the segment is contained in from 1 to 1K pageframes. A task is thus limited to 1K segments (a sufficient number for manyapplications), each containing up to 4 Mbytes. The descriptor, thecorresponding page-directory entry, and the corresponding page table can beallocated and deallocated simultaneously.<P><A NAME="fig5-13"><IMG align=center SRC="fig5-13.gif" border=0><P><HR><P><B>up:</B> <A HREF="c05.htm">Chapter 5 -- Memory Management</A><BR><B>prev:</B> <A HREF="s05_02.htm">5.2 Page Translation</A><BR><B>next:</B> <A HREF="c06.htm">Chapter 6 -- Protection</A><BR></BODY>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -