1 / 35

Operating System Concepts

Learn about memory management algorithms, strategies like paging and segmentation, address binding, logical vs. physical address space, dynamic loading, linking, overlays, swapping, and more. Ideal for computer science students.

windsorj
Download Presentation

Operating System Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating System Concepts Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University

  2. Chapter 9 Memory Management • Keep several processes in memory to increase CPU utilization • Memory management algorithms • Require hardware support • Common strategies • Paging • Segmentation Chapter 9 Memory Management

  3. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  4. 9.1 Background • Program must be brought (loaded) into memory and placed within a process for it to be run. • Address binding • A mapping from one address space to another • A typical instruction-execution cycle • Fetch an instruction from memory • Decode the instruction • May cause operands to be fetched from memory • Execute the instruction • Store results back into memory Chapter 9 Memory Management

  5. 9.1.1 Address Binding • Input queue • A collection of processes on the disk that are waiting to be brought into memory to run the program. • A user program will go through several steps before being executed • Addresses in source program are symbolic • A compiler binds these symbolic addresses to relocatable addresses • A loader binds these relocatable addresses to absolute addresses Chapter 9 Memory Management

  6. 9.1.1 Address Binding • Compile time • Absolute code can be generated • Know at compile time where the process will reside in memory • MS-DOS .COM-format programs are absolute code Chapter 9 Memory Management

  7. 9.1.1 Address Binding • Load time • Relocatable code can be generated • Not known at compile time where the process will reside in memory • Final binding is delayed until load time Chapter 9 Memory Management

  8. 9.1.1 Address Binding • Execution time • The process can be moved from one memory segment to another • Binding must be delayed until run time • Special hardware must be available Chapter 9 Memory Management

  9. 9.1.2 Logical- Versus Physical-Address Space • Logical address • An address generated by the CPU • Compile-time and load-time • Also called virtual address • Logical-address space • The set of all logical addresses • Physical address • An address seen by the memory unit • The one loaded into the memory-address unit • Execution time • Logical and physical address spaces differ • Physical-address space Chapter 9 Memory Management

  10. 9.1.2 Logical- Versus Physical-Address Space • Memory-Management Unit (MMU) • A hardware device • Run-time mapping from virtual to physical addresses • Different methods to accomplish such a mapping • Logical addresses • 0 to max • Physical addresses • R + 0 to R + max Chapter 9 Memory Management

  11. Dynamic RelocationUsing a Relocation Register Chapter 9 Memory Management

  12. 9.1.3 Dynamic Loading • The entire program and data must be in memory for its execution • The size of a process is limited to the size pf physical memory. • Dynamic Loading • All routines are kept on disk in a relocatable load format • The main program is loaded into memory and is executed • A routine is not loaded until it is called • Advantage • An unused routine is never loaded Chapter 9 Memory Management

  13. 9.1.4 Dynamic Linking andShared Libraries • Dynamic Linking • Linking is postponed until execution time • Small piece of code, called stub, used to locate the appropriate memory-resident library routine • OS checks if routine is in processes’ memory address • If yes, load the routine into memory • Stub replaces itself with the address of the routine, and executes the routine. • Dynamic linking is particularly useful for libraries. Chapter 9 Memory Management

  14. 9.1.5 Overlays • Keep in memory only those instructions and data that are needed at any given time • Needed when process is larger than amount of memory allocated to it • Features • Implemented by user • No special support needed from operating system • Programming design is complex Chapter 9 Memory Management

  15. 9.1.5 Overlays Chapter 9 Memory Management

  16. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  17. Swapping • A process can be • Swapped temporarily out of memory to a backing store • Commonly a fast disk • Brought back into memory for continued execution • A process swapped back into • The same memory space • Binding is done at assembly or load time • A different memory space • Execution-time binding Chapter 9 Memory Management

  18. Swapping of two processes Chapter 9 Memory Management

  19. Swapping • Context-switch time is fairly high • User process size: 1MB • Transfer rate: 5MB per second • Actual transfer: • 1000KB / 5000 KB per second = 200 milliseconds • An average latency: 8 ms • Total swap time • 208 + 208 = 416 ms • Time quantum should be substantially larger than 0.416 seconds. Chapter 9 Memory Management

  20. Swapping • Major part of the swap time is transfer time • Directly proportional to the amount of memory swapped • Factors • How much memory is actually used • To reduce swap time • Be sure the process is completely idle • Pending I/O Chapter 9 Memory Management

  21. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  22. Contiguous Memory Allocation • Memory • One for the resident operating system • In either low or high memory • Location of the interrupt vector • One for the user processes • Contiguous memory allocation • Each process is contained in a single contiguous section of memory Chapter 9 Memory Management

  23. Memory Protection • A relocation register with a limit register Chapter 9 Memory Management

  24. Memory Allocation • Fixed-sized partitions • Simplest • Each partition contain exactly one process • Degree of multiprogramming is bounded • Strategies • First fit • Best fit • Worst fit • Problem • External fragmentation • Internal fragmentation • 50-percent rule • Given N allocated blocks • Another 0.5 N blocks will be lost Chapter 9 Memory Management

  25. Memory Allocation • Possible solutions to the external fragmentation • Compaction • Permit the logical address space of a process to be noncontiguous OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 10 process 2 process 2 process 2 process 2 Chapter 9 Memory Management

  26. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  27. Paging • A memory-management scheme that permits the physical-address space of a process to be noncontiguous • Frames (physical memory) • Fixed-sized blocks • Pages (logical memory) • Blocks of the same size • Every address is divided into • A page number (p) • An index to a page table • A page offset (d) page number page offset p d m-n n Chapter 9 Memory Management

  28. Paging hardware Chapter 9 Memory Management

  29. Paging Model Chapter 9 Memory Management

  30. Paging Example Chapter 9 Memory Management

  31. Free Frames After Allocation Before Allocation Chapter 9 Memory Management

  32. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  33. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  34. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

  35. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmentation with Paging Summary Exercises Chapter 9 Memory Management Chapter 9 Memory Management

More Related