Chapter 8 a Main Memory I Operating System

  • Slides: 25
Download presentation
Chapter 8 a: Main Memory (I) Operating System Concepts – 9 th Edition Silberschatz,

Chapter 8 a: Main Memory (I) Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne © 2013

Chapter 8: Memory Management n Background n Swapping n Contiguous Memory Allocation Operating System

Chapter 8: Memory Management n Background n Swapping n Contiguous Memory Allocation Operating System Concepts – 9 th Edition 8. 2 Silberschatz, Galvin and Gagne © 2013

Background n Program must be brought (from disk) into memory and placed within a

Background n Program must be brought (from disk) into memory and placed within a process for it to be run n Main memory and registers are only storage CPU can access directly n Memory unit only sees a stream of addresses + read requests, or address + data and write requests n Register access in one CPU clock (or less) n Main memory can take many cycles, causing a stall n Cache sits between main memory and CPU registers n Protection of memory required to ensure correct operation Operating System Concepts – 9 th Edition 8. 3 Silberschatz, Galvin and Gagne © 2013

Base and Limit Registers n A pair of base and limit registers define the

Base and Limit Registers n A pair of base and limit registers define the logical address space n CPU must check every memory access generated in user mode to be sure it is between base and limit for that user Operating System Concepts – 9 th Edition 8. 4 Silberschatz, Galvin and Gagne © 2013

Hardware Address Protection Operating System Concepts – 9 th Edition 8. 5 Silberschatz, Galvin

Hardware Address Protection Operating System Concepts – 9 th Edition 8. 5 Silberschatz, Galvin and Gagne © 2013

Address Binding n Programs on disk, ready to be brought into memory to execute

Address Binding n Programs on disk, ready to be brought into memory to execute form an input queue l n Inconvenient to have first user process physical address always at 0000 l n Without support, must be loaded into address 0000 How can it not be? Further, addresses represented in different ways at different stages of a program’s life l Source code addresses usually symbolic l Compiled code addresses bind to relocatable addresses 4 l Linker or loader will bind relocatable addresses to absolute addresses 4 l i. e. “ 14 bytes from beginning of this module” i. e. 74014 Each binding maps one address space to another Operating System Concepts – 9 th Edition 8. 6 Silberschatz, Galvin and Gagne © 2013

Binding of Instructions and Data to Memory n Address binding of instructions and data

Binding of Instructions and Data to Memory n Address binding of instructions and data to memory addresses can happen at three different stages l Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes l Load time: Must generate relocatable code if memory location is not known at compile time l Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another 4 Need hardware support for address maps (e. g. , base and limit registers) Operating System Concepts – 9 th Edition 8. 7 Silberschatz, Galvin and Gagne © 2013

Multistep Processing of a User Program Operating System Concepts – 9 th Edition 8.

Multistep Processing of a User Program Operating System Concepts – 9 th Edition 8. 8 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. 9 Silberschatz, Galvin and Gagne © 2013

Memory-Management Unit (MMU) n Hardware device that at run time maps virtual to physical

Memory-Management Unit (MMU) n Hardware device that at run time maps virtual to physical address n Many methods possible, covered in the rest of this chapter n To start, consider simple scheme where the value in the relocation register is added to every address generated by a user process at the time it is sent to memory l Base register now called relocation register l MS-DOS on Intel 80 x 86 used 4 relocation registers n The user program deals with logical addresses; it never sees the real physical addresses l Execution-time binding occurs when reference is made to location in memory l Logical address bound to physical addresses Operating System Concepts – 9 th Edition 8. 10 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. 11 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. 12 Silberschatz, Galvin and Gagne © 2013

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

Swapping n A process can be swapped temporarily out of memory to a n n 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 Operating System Concepts – 9 th Edition 8. 13 Silberschatz, Galvin and Gagne © 2013

Swapping (Cont. ) n Does the swapped out process need to swap back in

Swapping (Cont. ) n Does the swapped out process need to swap back in to same physical addresses? n Depends on address binding method l Plus consider pending I/O to / from process memory space n 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. 14 Silberschatz, Galvin and Gagne © 2013

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

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

Context Switch Time including Swapping n If next processes to be put on CPU

Context Switch Time including Swapping n If next processes to be put on CPU is not in memory, need to swap out a process and swap in target process n Context switch time can then be very high n 100 MB process swapping to hard disk with transfer rate of 50 MB/sec l Swap out time of 2000 ms l Plus swap in of same sized process l Total context switch swapping component time of 4000 ms (4 seconds) n Can reduce if reduce size of memory swapped – by knowing how much memory really being used l System calls to inform OS of memory use via request_memory() and release_memory() Operating System Concepts – 9 th Edition 8. 16 Silberschatz, Galvin and Gagne © 2013

Context Switch Time and Swapping (Cont. ) n Other constraints as well on swapping

Context Switch Time and Swapping (Cont. ) n Other constraints as well on swapping l Pending I/O – can’t swap out as I/O would occur to wrong process l Or always transfer I/O to kernel space, then to I/O device 4 Known as double buffering, adds overhead n Standard swapping not used in modern operating systems l But modified version common 4 Swap only when free memory extremely low Operating System Concepts – 9 th Edition 8. 17 Silberschatz, Galvin and Gagne © 2013

Swapping on Mobile Systems n Not typically supported l Flash memory based 4 Small

Swapping on Mobile Systems n Not typically supported l Flash memory based 4 Small amount of space 4 Limited number of write cycles 4 Poor throughput between flash memory and CPU on mobile platform n Instead use other methods to free memory if low l i. OS asks apps to voluntarily relinquish allocated memory 4 Read-only 4 Failure data thrown out and reloaded from flash if needed to free can result in termination l Android terminates apps if low free memory, but first writes application state to flash for fast restart l Both OSes support paging as discussed below Operating System Concepts – 9 th Edition 8. 18 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: 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 Operating System Concepts – 9 th Edition 8. 19 Silberschatz, Galvin and Gagne © 2013

Contiguous Allocation (Cont. ) n Relocation registers used to protect user processes from each

Contiguous Allocation (Cont. ) n 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. 20 Silberschatz, Galvin and Gagne © 2013

Hardware Support for Relocation and Limit Registers Operating System Concepts – 9 th Edition

Hardware Support for Relocation and Limit Registers Operating System Concepts – 9 th Edition 8. 21 Silberschatz, Galvin and Gagne © 2013

Multiple-partition allocation n Multiple-partition allocation l Degree of multiprogramming limited by number of partitions

Multiple-partition allocation n Multiple-partition allocation l Degree of multiprogramming limited by number of partitions l Variable-partition sizes for efficiency (sized to a given process’ needs) l Hole – block of available memory; holes of various size are scattered throughout memory l When a process arrives, it is allocated memory from a hole large enough to accommodate it l Process exiting frees its partition, adjacent free partitions combined l Operating system maintains information about: a) allocated partitions b) free partitions (hole) Operating System Concepts – 9 th Edition 8. 22 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. 23 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. 24 Silberschatz, Galvin and Gagne © 2013

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

Fragmentation (Cont. ) 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 4 Do job in memory while it is involved in I/O only into OS buffers n Now consider that backing store has same fragmentation problems Operating System Concepts – 9 th Edition 8. 25 Silberschatz, Galvin and Gagne © 2013