1 / 27

Memory Management

Memory Management. Chapter 4. Memory hierarchy . Programmers want a lot of fast, non-volatile memory But, here is what we have:. Memory manager. Tracks which parts of memory are in use Allocates memory to processes Long-term scheduling De-allocates memory from processes

lawson
Download Presentation

Memory Management

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. Memory Management Chapter 4

  2. Memory hierarchy • Programmers want a lot of fast, non-volatile memory • But, here is what we have:

  3. Memory manager • Tracks which parts of memory are in use • Allocates memory to processes • Long-term scheduling • De-allocates memory from processes • Swaps between main memory and disk when main memory is too small to hold all of the processes • Intermediate scheduling

  4. Simple memory management An operating system with one user process

  5. Multiprogramming • Use fixed-sized partitions (MFT) • Each partition contained only one process • Very simple • More flexibility is achieved with MVT • OS knows which parts of memory are available • When a process is to be loaded, it needs a large enough block of contiguous memory

  6. Multiprogramming with fixed size partitions (MFT) single input queue for all memory separate input queue for each partition

  7. MVT Example 0 job queue at time 0 operating system process memory time in system P1 600K 10 P2 1000K 5 P3 300K 20 P4 700K 8 P5 500K 15 400K 2160K How to schedule the job queue in a FCFS fashion? 2560K

  8. MVT Example – at time 5 0 operating system job queue 400K process memory time in system P4 700K 8 P5 500K 15 P1 1000K P2 2000K Now P2 is done, so replace with P4… P3 2300K 260K 2560K

  9. MVT Example – at time 8 0 operating system job queue 400K process memory time in system P5 500K 15 P1 1000K P4 1700K 300K 2000K Now P4 is done, so replace with P5… P3 2300K 260K 2560K

  10. MVT Example – at time 8+ 0 operating system Empty job queue 400K P1 This worked well with our configuration of jobs, but what can go wrong? 1000K P5 1500K 500K 2000K P3 2300K 260K 2560K

  11. CPU utilization as a function of number of processes in memory Degree of multiprogramming

  12. Relocatability • Processes are loaded into main memory • They may be loaded into anyunoccupied user space. • Successive executions of the same process may be loaded into different main memory locations. • This is the concept of relocatability • Any memory address references within a process (i.e., variables, instructions) are relative

  13. relocation register Address mapping 14000 logical physical + CPU memory address 346 address 14346 MMU

  14. Protecting processes from each other • Use base and limit values • Each location within a process is added to base value to map it to a physical address • Any address locations larger than the limit value are flagged as errors

  15. Base-limit registers One base-limit pair and two base-limit pairs

  16. Swapping • What to do if there is not enough memory to store all active processes? • Swap certain processes out and then back in • An executing process must be in main memory, but can be temporarily swapped out & then back into memory • Consider a preemptive CPU scheduling algorithm such as RR

  17. About swapping... • When the CPU is ready for the next process, it selects it from the ready queue. • If it has been swapped out, the memory manager brings it back in. • If there is no room for it, another process is swapped out first. • Context-switch time is high. • If a process is to be swapped out of main memory, it must be completely idle • If it is waiting for I/O, then another candidate is found, if possible

  18. Swapping entire processes Swapping can create holes or fragments in memory

  19. Fragmentation • As processes are loaded and removed from memory, available memory space is broken into pieces • When there is enough memory space to satisfy a request, but it is not contiguous, we say there is external fragmentation • When there is wasted space within a process’ address space, we have internal fragmentation (later on this)

  20. Compaction • A solution to external fragmentation. • Partitions are rearranged to collect all the fragments into one large block. • Requires all internal addresses to be remapped to new physical addresses • All partitions are moved to one end of memory and all base and limit registers are altered. • Very costly

  21. Swapping with room for growth Space for growing data segment Space for growing data & stack segments

  22. Implementation • How is dynamic memory allocation actually implemented? • Two approaches • Using bitmaps • Using linked lists • Strategies for assignment of processes to memory spaces

  23. Using bit maps • Part of memory with 5 processes, 3 holes • tick marks show allocation units – may be a few words up to several KB • shaded regions are free • Searching bitmaps can be slow

  24. Using linked lists • Part of memory with 5 processes, 3 holes • This example uses a singly linked list – a doubly linked list would make it easier to merge available slots • See next slide • We have several strategies for assigning memory

  25. Memory management with linked lists Four neighbor combinations for the terminating process X

  26. Allocation strategies • First-fit: Starting at the head of the list, allocate the first hole that is found to be big enough. • Next fit: pick up where it left the list last time • Best-fit: Search entire list to find the optimal fit. • this allocates the smallest holethat is big enough. • Worst-fit: Search entire list to find the largest available hole. • Quick fit: Usesseparate lists for more common process sizes

  27. Assignment • In-class: • p. 264 - #5 • HW: • Given memory partitions of 100K, 500K, 200K, 300K, 600K (in order), how would each of first-fit, best-fit, worst-fit, and next-fit algorithms place processes of 212K, 417K, 112K, 426K (in this order)? • Read Sections 4.3 & 4.4

More Related