Multistep Processing of a User Program n User













- Slides: 13

Multistep Processing of a User Program n User programs go through several steps before being run. n Program components do not necessarily know where in RAM they will be loaded n RAM deals with absolute addresses n Logical addresses need to be bound to physical addresses at some point. Operating System Concepts 9. 1 Silberschatz, Galvin and Gagne 2002

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

Swapping n A process can be swapped temporarily out of memory to a backing store, and then brought back into memory for continued execution. F E. g. , after quantum of round robin F Return to same place if no dynamic relocation F Return anywhere if dynamic relocation (useful for defragmentation) n Major part of swap time is transfer time; total transfer time is directly proportional to the amount of memory swapped (slow) n Backing store – fast disk large enough to accommodate copies of all memory images for all users; must provide direct access to these memory images (beware DMA) n 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. Operating System Concepts 9. 3 Silberschatz, Galvin and Gagne 2002

Schematic View of Swapping Operating System Concepts 9. 4 Silberschatz, Galvin and Gagne 2002

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. F Logical address – generated by the CPU; also referred to as virtual address. F 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 Memory-Management Unit (MMU) F Hardware device that maps virtual to physical address. F The user program deals with logical addresses; it never sees the real physical addresses. Operating System Concepts 9. 5 Silberschatz, Galvin and Gagne 2002

Contiguous Memory Allocation n Main memory usually into two partitions: F Resident operating system, usually held in low memory with interrupt vector. F User processes then held in high memory. Operating System Concepts 9. 6 Silberschatz, Galvin and Gagne 2002

Contiguous Memory Relocation n Relocation-register scheme used to protect user processes from each other, and from changing operatingsystem code and data. n Relocation register contains value of smallest physical address; limit register contains range of logical addresses – each logical address must be less than the limit register. Operating System Concepts 9. 7 Silberschatz, Galvin and Gagne 2002

Multiple Partition Allocation n Hole – block of available memory; holes of various size are scattered throughout memory. n When a process arrives, it is allocated contiguous memory from a hole large enough to accommodate it. n Operating system maintains information about: a) allocated partitions b) free partitions (hole) OS OS process 5 process 9 process 8 process 2 Operating System Concepts process 10 process 2 9. 8 process 2 Silberschatz, Galvin and Gagne 2002

Multiple Partition Allocation Operating System Concepts 9. 9 Silberschatz, Galvin and Gagne 2002

Dynamic Storage-Allocation Problem n How to satisfy a request of size n from a list of free holes F First-fit: Allocate the first hole that is big enough (fast, but fragments) F Best-fit: Allocate the smallest hole that is big enough; must search entire list, unless ordered by size (slow, but small fragments). F Worst-fit: Allocate the largest hole; must also search entire list (slow, but leaves large holes) n First-fit and best-fit better than worst-fit in terms of speed and storage utilization. Operating System Concepts 9. 10 Silberschatz, Galvin and Gagne 2002

Fragmentation 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. F Occurs when memory is allocated in fixed size pieces Operating System Concepts 9. 11 Silberschatz, Galvin and Gagne 2002

External Fragmentation n Total memory space exists to satisfy a request, but it is not contiguous. (Stats indicate 1/3 wastage) n Reduce external fragmentation by compaction FShuffle memory contents to place all free memory together in one large block. FCompaction is possible only if relocation is dynamic (i. e. , registers can be updated), and is done at execution time. FI/O problem 4 Latch job in memory while it is involved in I/O. 4 Do I/O only into OS buffers. Operating System Concepts 9. 12 Silberschatz, Galvin and Gagne 2002

Compaction Options Operating System Concepts 9. 13 Silberschatz, Galvin and Gagne 2002