Chapter 8 Memory Management Strategies Operating System Concepts

  • Slides: 17
Download presentation
Chapter 8: Memory. Management Strategies Operating System Concepts – 9 th Edition Silberschatz, Galvin

Chapter 8: Memory. Management Strategies Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne © 2013

Logical vs. Physical Address Space n The concept of a logical address space that

Logical vs. Physical Address Space n The concept of a logical address space that is bound to a separate physical address space is central to proper memory management l Logical address – generated by the CPU; also referred to as virtual address l Physical address – address seen by the memory unit n Logical and physical addresses are the same in compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme n Logical address space is the set of all logical addresses generated by a program n Physical address space is the set of all physical addresses generated by a program Operating System Concepts – 9 th Edition 8. 2 Silberschatz, Galvin and Gagne © 2013

Dynamic relocation using a relocation register n Routine is not loaded until it is

Dynamic relocation using a relocation register n Routine is not loaded until it is called n Better memory-space utilization; unused routine is never loaded n All routines kept on disk in relocatable load format n Useful when large amounts of code are needed to handle infrequently occurring cases n No special support from the operating system is required l Implemented through program design l OS can help by providing libraries to implement dynamic loading Operating System Concepts – 9 th Edition 8. 3 Silberschatz, Galvin and Gagne © 2013

Dynamic Linking n Static linking – system libraries and program code combined by the

Dynamic Linking n Static linking – system libraries and program code combined by the loader into the binary program image n Dynamic linking –linking postponed until execution time n Small piece of code, stub, used to locate the appropriate memory-resident library routine n Stub replaces itself with the address of the routine, and executes the routine n Operating system checks if routine is in processes’ memory address l If not in address space, add to address space n Dynamic linking is particularly useful for libraries n System also known as shared libraries n Consider applicability to patching system libraries l Versioning may be needed Operating System Concepts – 9 th Edition 8. 4 Silberschatz, Galvin and Gagne © 2013

Swapping n n n n A process can be swapped temporarily out of memory

Swapping n n n n A process can be swapped temporarily out of memory to a backing store, and then brought back into memory for continued execution l Total physical memory space of processes can exceed physical memory Backing store – fast disk large enough to accommodate copies of all memory images for all users; must provide direct access to these memory images Roll out, roll in – swapping variant used for priority-based scheduling algorithms; lower-priority process is swapped out so higher-priority process can be loaded and executed Major part of swap time is transfer time; total transfer time is directly proportional to the amount of memory swapped System maintains a ready queue of ready-to-run processes which have memory images on disk Does the swapped out process need to swap back in to same physical addresses? Depends on address binding method l Plus consider pending I/O to / from process memory space Modified versions of swapping are found on many systems (i. e. , UNIX, Linux, and Windows) l Swapping normally disabled l Started if more than threshold amount of memory allocated l Disabled again once memory demand reduced below threshold Operating System Concepts – 9 th Edition 8. 5 Silberschatz, Galvin and Gagne © 2013

Schematic View of Swapping Operating System Concepts – 9 th Edition 8. 6 Silberschatz,

Schematic View of Swapping Operating System Concepts – 9 th Edition 8. 6 Silberschatz, Galvin and Gagne © 2013

Contiguous Allocation n Main memory must support both OS and user processes n Limited

Contiguous Allocation n Main memory must support both OS and user processes n Limited resource, must allocate efficiently n Contiguous allocation is one early method n Main memory usually into two partitions: n l Resident operating system, usually held in low memory with interrupt vector l User processes then held in high memory l Each process contained in single contiguous section of memory Relocation registers used to protect user processes from each other, and from changing operating-system code and data l Base register contains value of smallest physical address l Limit register contains range of logical addresses – each logical address must be less than the limit register l MMU maps logical address dynamically l Can then allow actions such as kernel code being transient and kernel changing size Operating System Concepts – 9 th Edition 8. 7 Silberschatz, Galvin and Gagne © 2013

Dynamic Storage-Allocation Problem How to satisfy a request of size n from a list

Dynamic Storage-Allocation Problem How to satisfy a request of size n from a list of free holes? n First-fit: Allocate the first hole that is big enough n Best-fit: Allocate the smallest hole that is big enough; must search entire list, unless ordered by size l Produces the smallest leftover hole n Worst-fit: Allocate the largest hole; must also search entire list l Produces the largest leftover hole First-fit and best-fit better than worst-fit in terms of speed and storage utilization Operating System Concepts – 9 th Edition 8. 8 Silberschatz, Galvin and Gagne © 2013

Fragmentation n External Fragmentation – total memory space exists to satisfy a request, but

Fragmentation n External Fragmentation – total memory space exists to satisfy a request, but it is not contiguous n Internal Fragmentation – allocated memory may be slightly larger than requested memory; this size difference is memory internal to a partition, but not being used n First fit analysis reveals that given N blocks allocated, 0. 5 N blocks lost to fragmentation l 1/3 may be unusable -> 50 -percent rule Operating System Concepts – 9 th Edition 8. 9 Silberschatz, Galvin and Gagne © 2013

Fragmentation (Cont. ) n n Reduce external fragmentation by compaction l Shuffle memory contents

Fragmentation (Cont. ) n n Reduce external fragmentation by compaction l Shuffle memory contents to place all free memory together in one large block l Compaction is possible only if relocation is dynamic, and is done at execution time l I/O problem 4 Latch job in memory while it is involved in I/O 4 Do I/O only into OS buffers Now consider that backing store has same fragmentation problems Operating System Concepts – 9 th Edition 8. 10 Silberschatz, Galvin and Gagne © 2013

Segmentation n Memory-management scheme that supports user view of memory n A program is

Segmentation n Memory-management scheme that supports user view of memory n A program is a collection of segments l A segment is a logical unit such as: main program procedure function method object local variables, global variables common block stack symbol table arrays Operating System Concepts – 9 th Edition 8. 11 Silberschatz, Galvin and Gagne © 2013

Segmentation Architecture n Logical address consists of a two tuple: <segment-number, offset>, n Segment

Segmentation Architecture n Logical address consists of a two tuple: <segment-number, offset>, n Segment table – maps two-dimensional physical addresses; each table entry has: l base – contains the starting physical address where the segments reside in memory l limit – specifies the length of the segment n Segment-table base register (STBR) points to the segment table’s location in memory n Segment-table length register (STLR) indicates number of segments used by a program; segment number s is legal if s < STLR Operating System Concepts – 9 th Edition 8. 12 Silberschatz, Galvin and Gagne © 2013

Segmentation Architecture (Cont. ) n Protection l With each entry in segment table associate:

Segmentation Architecture (Cont. ) n Protection l With each entry in segment table associate: 4 validation bit = 0 illegal segment 4 read/write/execute privileges n Protection bits associated with segments; code sharing occurs at segment level n Since segments vary in length, memory allocation is a dynamic storage-allocation problem n A segmentation example is shown in the following diagram Operating System Concepts – 9 th Edition 8. 13 Silberschatz, Galvin and Gagne © 2013

Paging n n Physical address space of a process can be noncontiguous; process is

Paging n n Physical address space of a process can be noncontiguous; process is allocated physical memory whenever the latter is available l Avoids external fragmentation l Avoids problem of varying sized memory chunks Divide physical memory into fixed-sized blocks called frames l Size is power of 2, between 512 bytes and 16 Mbytes n Divide logical memory into blocks of same size called pages n Keep track of all free frames n To run a program of size N pages, need to find N free frames and load program n Set up a page table to translate logical to physical addresses n Backing store likewise split into pages n Still have Internal fragmentation Operating System Concepts – 9 th Edition 8. 14 Silberschatz, Galvin and Gagne © 2013

Address Translation Scheme n Address generated by CPU is divided into: l Page number

Address Translation Scheme n Address generated by CPU is divided into: l Page number (p) – used as an index into a page table which contains base address of each page in physical memory l Page offset (d) – combined with base address to define the physical memory address that is sent to the memory unit page number page offset p d m-n l n For given logical address space 2 m and page size 2 n Operating System Concepts – 9 th Edition 8. 15 Silberschatz, Galvin and Gagne © 2013

Paging (Cont. ) n Calculating internal fragmentation l Page size = 2, 048 bytes

Paging (Cont. ) n Calculating internal fragmentation l Page size = 2, 048 bytes l Process size = 72, 766 bytes l 35 pages + 1, 086 bytes l Internal fragmentation of 2, 048 - 1, 086 = 962 bytes l Worst case fragmentation = 1 frame – 1 byte l On average fragmentation = 1 / 2 frame size l So small frame sizes desirable? l But each page table entry takes memory to track l Page sizes growing over time 4 Solaris supports two page sizes – 8 KB and 4 MB n Process view and physical memory now very different n By implementation process can only access its own memory Operating System Concepts – 9 th Edition 8. 16 Silberschatz, Galvin and Gagne © 2013

Free Frames After allocation Before allocation Operating System Concepts – 9 th Edition 8.

Free Frames After allocation Before allocation Operating System Concepts – 9 th Edition 8. 17 Silberschatz, Galvin and Gagne © 2013