Dynamic Partition Allocation - PowerPoint PPT Presentation

About This Presentation
Title:

Dynamic Partition Allocation

Description:

Tends to break large free blocks such that large partitions cannot be allocated ... MMU translates from virtual addresses to real ones ... – PowerPoint PPT presentation

Number of Views:310
Avg rating:3.0/5.0
Slides: 27
Provided by: csUt8
Category:

less

Transcript and Presenter's Notes

Title: Dynamic Partition Allocation


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
First Fit Allocation
1K bytes
  • To allocate n bytes, use the first available
    free block such that the block size is larger
    than n.

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
First Fit Allocation
  • Advantages
  • Simple
  • Tends to produce larger free blocks toward the
    end of the address space
  • Disadvantages
  • External fragmentation

8
Best Fit Allocation
1K bytes
1K bytes
  • To allocate n bytes, use the smallest
    available free block such that the block size is
    larger than n.

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
Best Fit Allocation
  • 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)

11
Worst Fit Allocation
1K bytes
1K bytes
  • To allocate n bytes, use the largest
    available free block such that the block size is
    larger than n.

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
Worst Fit Allocation
  • 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

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 bgr H (2bg?)/2
  • At equilibrium, b r
  • S bgr 2bg 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 (contd)
  • 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
Memory Partitioning Troubles
  • 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

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
Write a Comment
User Comments (0)
About PowerShow.com