150 likes | 257 Vues
This lecture covers the principles of hierarchical storage architecture within operating systems, focusing on the differences between volatile and non-volatile memory, and the significance of the Von Neumann architecture. It discusses core concepts such as memory addressing, dynamic loading and linking, contiguous memory allocation, and fragmentation issues. Algorithms for memory allocation like first-fit, best-fit, next-fit, and worst-fit are examined, along with strategies for managing fragmentation through compaction. Gain insights into how modern operating systems efficiently manage memory resources.
E N D
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 12a}
Hierarchical storage architecture very fast very small volatile non-volatile very slow very large
Von Neumann architecture • Based on the von Neumann architecture, data and program instructionsexist in physical memory • Repeatedly performfetch-decode-executecycles • The execute partoften results in datafetch and store operations physical memory
Main memory (i) • Locations in memoryare identified bymemory addresses • When compiled, programsconsist of relocatable code • Other compiled modulesalso consist ofrelocatable code symbolic addresses in source code relative addresses in object code
Main memory (ii) • At load time, anyadditional librariesalso consist ofrelocatable code physical addresses generated by loader
Main memory (iii) • At run time, memoryaddresses of all objectfiles are mapped to asingle memory spacein physical memory
Dynamic loading and linking • Using dynamic loading, external libraries are not loaded when a process starts • Libraries are stored on disk in relocatable form • Libraries loaded into memory only when needed • Using dynamic linking, external libraries can be preloaded into shared memory • When a process calls a library function, thecorresponding physical address is determined
Contiguous memory allocation (i) • Main memoryis partitionedand allocatedto residentoperating systemand user processes fixed partitioning scheme
Contiguous memory allocation (ii) • A pair of base and limitregisters define thelogical address space • Also known asrelocation registers
Contiguous memory allocation (iii) • The CPU generates logical memory addresses • A Memory-Management Unit (MMU)maps logical memory addressesto the physical address space • User programs never seephysical memory addresses
Contiguous memory allocation (iv) • Hardware protects against memory access outside of a process’s valid memory space
OS OS OS OS Process 5 Process 5 Process 5 Process 5 Process 9 Process 9 Process 8 Process 1 Process 2 Process 2 Process 2 Process 2 Dynamic partitioning • Variable-length or dynamic partitions: • When a new process enters the system, the process is allocated to a single contiguous block • The operating system maintains a list of allocated partitions and free partitions
Placement algorithms • How can we place new process Pi in memory? • First-fit algorithm: allocate the first free blockthat’s large enough to accommodate Pi • Best-fit algorithm: allocate thesmallest free block that’s largeenough to accommodate Pi • Next-fit algorithm: allocate thenext free block, searching from last allocated block • Worst-fit algorithm: allocate the largest free blockthat’s large enough to accommodate Pi
OS Process 5 Process 8 Process 3 Process 2 Process 6 Process 7 Process 12 Fragmentation (i) • Memory is wasted due to fragmentation,which can cause performance issues • Internal fragmentation is wasted memorywithina partition or process memory • External fragmentation can reducethe number of runnable processes • Total memory space exists to satisfya memory request, but memory isnot contiguous Process 9
OS Process 5 Process 8 Process 3 Process 3 Process 2 Process 3 Process 6 Process 6 Process 6 Process 7 Process 7 Process 7 Process 12 Process 12 Process 12 Fragmentation (ii) • Reduce external fragmentation bycompaction or defragmentation • Rearrange memory contents to organizeall free memory blocks together intoone large contiguous block • Compaction is possible only ifrelocation is dynamic and isdone at execution time • Compaction is expensive Process 9 Process 9