1 / 26

Dynamic Partition Allocation

Dynamic Partition Allocation. Allocate memory depending on requirements Partitions adjust depending on memory size Requires relocatable code Works best with relocation registers. Dynamic Partition Allocation. Program 1. Program 2. Program 3. External Fragmentation. Program 1.

heba
Télécharger la présentation

Dynamic Partition Allocation

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. Dynamic Partition Allocation • Allocate memory depending on requirements • Partitions adjust depending on memory size • Requires relocatable code • Works best with relocation registers

  2. Dynamic Partition Allocation Program 1 Program 2 Program 3

  3. External Fragmentation Program 1 These fragments are not allocated to any program, and they are wasted. Program 2 Program 3

  4. Allocation Policies • Best Fit • First Fit • Worst Fit • Rotating First Fit

  5. To allocate n bytes, use the first available free block such that the block size is larger than n. First Fit Allocation 1K bytes 2K bytes 2K bytes To allocate 400 bytes, we use the 1st free block available 500 bytes 500 bytes

  6. Rationale & Implementation • Simplicity of implementation Requires: • Free block list sorted by address • Allocation requires a search for a suitable partition • Deallocation requires a check to see if the freed partition could be merged with adjacent free partitions (if any)

  7. Advantages Simple Tends to produce larger free blocks toward the end of the address space Disadvantages External fragmentation First Fit Allocation

  8. To allocate n bytes, use the smallest available free block such that the block size is larger than n. Best Fit Allocation 1K bytes 1K bytes 2K bytes 2K bytes To allocate 400 bytes, we use the 3rd free block available (smallest) 500 bytes

  9. Rationale & Implementation • To avoid fragmenting big free blocks • To minimize the size of external fragments produced Requires: • Free block list sorted by size • Allocation requires search for a suitable partition • Deallocation requires search + merge with adjacent free partitions, if any

  10. Advantages Works well when most allocations are of small size Relatively simple Disadvantages External fragmentation Slow allocation Slow deallocation Tends to produce many useless tiny fragments (not really great) Best Fit Allocation

  11. To allocate n bytes, use the largest available free block such that the block size is larger than n. Worst Fit Allocation 1K bytes 1K bytes 2K bytes To allocate 400 bytes, we use the 2nd free block available (largest) 500 bytes

  12. Rationale & Implementation • To avoid having too many tiny fragments Requires: • Free block list sorted by size • Allocation is fast (get the largest partition) • Deallocation requires merge with adjacent free partitions, if any, and then adjusting the free block list

  13. Advantages Works best if allocations are of medium sizes Disadvantages External fragmentation Tends to break large free blocks such that large partitions cannot be allocated Worst Fit Allocation

  14. How bad is external fragmentation? (Knuth) H: # of holes S: # of used segments blue: when released, H is decreased by 1 green: when released, H is unchanged red: when released, H is increased S = b+g+r H = (2b+g+)/2 At equilibrium, b = r S = b+g+r = 2b+g = 2H or H = S/2 number of holes is half of number of segments!

  15. Compaction (Burping) Program 1 Program 1 Program 2 Program 2 Program 3 Program 3

  16. Multiprogramming • Multiprogramming: Ability to run more than one program simultaneously • Early systems: degree of multiprogramming had to be large to maximize the return on hardware investment • Multiprogramming requires all programs to be resident in memory simultaneously • Can be done by partitioned memory allocation, but • Size of memory limits the number of programs that can run simultaneously

  17. Swapping • Allows to schedule more programs simultaneously than the memory can accommodate • Use a partition on disk to “extend” the main memory • Processes are added until memory is full • If more programs need to be loaded, pick one program and save its partition on disk (the process is swapped out, cannot run) • Later, bring the process back from disk (process is swapped in) and swap out another process • Done on an all-or-nothing basis • The entire process is either in memory or on swap space (cannot be between both),

  18. Memory & Scheduling Start Ready Running Process loaded in main memory Process creation, resources allocated I/O requested I/O done Done Zombie I/O Wait Done Process waiting for I/O Swapped out Resources deallocated Process on disk

  19. Memory & Scheduling (cont’d) • Need two levels of scheduling: • Upper level decides on swapping: • When • Who • For how long • Lower level decides on who actually runs on the CPU (what we have covered so far) • Upper level is invoked if there are processes swapped out, and whenever we need to load more programs than can fit in main memory

  20. Paging

  21. Fragmentation Need for compaction/swapping A process size is limited by the available physical memory Dynamic growth of partition is troublesome No winning policy on allocation/deallocation Memory Partitioning Troubles P2 P3

  22. The Basic Problem • A process needs a contiguous partition(s) But • Contiguity is difficult to manage Contiguity mandates the use of physical memory addressing (so far)

  23. The Basic Solution • Give illusion of a contiguous address space • The actual allocation need not be contiguous • Use a Memory Management Unit (MMU) to translate from the illusion to reality

  24. A solution: Virtual Addresses • Use n-bit to represent virtual or logical addresses • A process perceives an address space extending from address 0 to 2n-1 • MMU translates from virtual addresses to real ones • Processes no longer see real or physical addresses

  25. Paged Memory • Subdivide the address space (both virtual and physical) to “pages” of equal size • Use MMU to map from virtual pages to physical ones • Physical pages are called frames

  26. Paging: Example Virtual Physical Virtual 0 0 Process 1 Process 0

More Related