This preview shows page 1. Sign up to view the full content.
Unformatted text preview: s an application to view its memory as a set of segments, where each segment contains a particular sort of information. For instance, a program may have a code segment containing all its Memory management 285 instructions, a data segment and a stack segment. Every memory access provides a segment selector and a logical address to the MMU. Each segment has a base address and a limit associated with it. The logical address is an offset from the segment base address, and must be no greater than the limit or an access violation will occur, usually causing an exception. Segments may also have other access controls, for instance the code segment may be read-only and an attempt to write to it will also cause an exception. The access mechanism for a segmented MMU is illustrated in Figure 10.10. Figure 10.10 Segmented memory management scheme. Segmentation allows a program to have its own private view of memory and to coexist transparently with other programs in the same memory space. It runs into difficulty, however, when the coexisting programs vary and the available memory is limited. Since the segments are of variable size, the free memory becomes fragmented over time and a new program may be unable to start, not because there is insufficient free memory, but because the free memory is all in small pieces none of which is big enough to hold a segment of the size required by the new program. The crisis can be alleviated by the operating system moving segments around in memory to coalesce the free memory into one large piece, but this is inefficient, and most processors now incorporate a memory mapping scheme based on fixed-size chunks of memory called pages. Some architectures include segmentation and paging, but many, including the ARM, just support paging without segmentation. Paging In a paging memory management scheme both the logical and the physical address spaces are divided into fixed-size components called pages. A page is usually a few kilobytes in size, but diff...
View Full Document
This document was uploaded on 10/30/2011 for the course CSE 378 380 at SUNY Buffalo.
- Spring '09