Partitioned Memory Allocation

Slides:



Advertisements
Similar presentations
Part IV: Memory Management
Advertisements

Chapter 6: Memory Management
Memory Management Chapter 7.
Memory Management Chapter 7. Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as.
Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable supply of ready processes to.
Allocating Memory.
Chapter 7 Memory Management
Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Dave Bremer Otago Polytechnic, N.Z. ©2009, Prentice.
Chapter 7 Memory Management
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CS-334: Computer.
Memory Management Chapter 4. Memory hierarchy Programmers want a lot of fast, non- volatile memory But, here is what we have:
Memory Management Chapter 7. Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as.
Memory Management Memory Areas and their use Memory Manager Tasks:
Chapter 3.1 : Memory Management
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Memory Management A memory manager should take care of allocating memory when needed by programs release memory that is no longer used to the heap. Memory.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
Memory Management Chapter 5.
Computer Organization and Architecture
1 Chapter 3.1 : Memory Management Storage hierarchy Storage hierarchy Important memory terms Important memory terms Earlier memory allocation schemes Earlier.
CS364 CH08 Operating System Support TECH Computer Science Operating System Overview Scheduling Memory Management Pentium II and PowerPC Memory Management.
Layers and Views of a Computer System Operating System Services Program creation Program execution Access to I/O devices Controlled access to files System.
The memory allocation problem Define the memory allocation problem Memory organization and memory allocation schemes.
SOCSAMS e-learning Dept. of Computer Applications, MES College Marampally MEMORYMANAGEMNT.
Memory Management Chapter 7.
Dynamic Partition Allocation Allocate memory depending on requirements Partitions adjust depending on memory size Requires relocatable code –Works best.
Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Dr.
1. Memory Manager 2 Memory Management In an environment that supports dynamic memory allocation, the memory manager must keep a record of the usage of.
1 Memory Management Chapter Basic memory management 4.2 Swapping (εναλλαγή) 4.3 Virtual memory (εικονική/ιδεατή μνήμη) 4.4 Page replacement algorithms.
CY2003 Computer Systems Lecture 09 Memory Management.
Memory Management Chapter 7.
Memory Management. Roadmap Basic requirements of Memory Management Memory Partitioning Basic blocks of memory management –Paging –Segmentation.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.
1 Advanced Memory Management Techniques  static vs. dynamic kernel memory allocation  resource map allocation  power-of-two free list allocation  buddy.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Basic Memory Management 1. Readings r Silbershatz et al: chapters
Memory Management -Memory allocation -Garbage collection.
Memory Management OS Fazal Rehman Shamil. swapping Swapping concept comes in terms of process scheduling. Swapping is basically implemented by Medium.
CS 241 Discussion Section (12/1/2011). Tradeoffs When do you: – Expand Increase total memory usage – Split Make smaller chunks (avoid internal fragmentation)
Memory management The main purpose of a computer system is to execute programs. These programs, together with the data they access, must be in main memory.
Memory Management One of the most important OS jobs.
Memory Management Chapter 7.
Chapter 7 Memory Management
Memory Management Chapter 7.
Memory Management Memory Areas and their use Memory Manager Tasks:
Chapter 2 Memory and process management
From Monoprogramming to multiprogramming with swapping
Memory Allocation The main memory must accommodate both:
William Stallings Computer Organization and Architecture
Memory Management Memory Areas and their use Memory Manager Tasks:
Main Memory Management
Module IV Memory Organization.
Chapter 8: Main Memory.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 8 11/24/2018.
Multistep Processing of a User Program
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 12/1/2018.
So far… Text RO …. printf() RW link printf Linking, loading
Chapter3 Memory Management Techniques
Main Memory Background Swapping Contiguous Allocation Paging
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Memory Management (1).
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 4/5/2019.
Memory Management Memory Areas and their use Memory Manager Tasks:
Page Main Memory.
Presentation transcript:

Partitioned Memory Allocation

Allocation Policies Best Fit First Fit Worst Fit Buddy Allocation

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

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)

Example Allocate 1K Deallocate last Deallocate 3rd 6K 6K 6K 6K 1K 1K

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

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

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

Example Allocate 1K Deallocate last Deallocate 3rd 6K 6K 6K 6K 4K 4K

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)

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

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

Example Allocate 2K Allocate 1K Deallocate 4th 6K 6K 6K 6K 2K 2K 2K 4K

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

Buddy Allocation To allocate a partition of n bytes: Divide available space into two blocks (called buddies). Recursively divide the first block in the same manner. Continue until we have the smallest block its size is > n eg. to allocate a 599 bytes out of 16K bytes space, see right 1K byte 1K byte 2K bytes 4K bytes 8K bytes

Further Buddy Allocations To allocate n bytes, pick the smallest block available that is > n If size > 2n split block into buddies until you have the smallest block available that is > n Memory allocator needs to maintain only lists of sizes 1, 2, 4, 8, 16, … 2n bytes For a memory space of size n, we have log n lists to search Very fast allocation

Example Allocate 599 bytes Allocate 1180 bytes Allocate 2000 bytes 1K byte 1K byte 1K byte 1K byte 1K byte 1K byte 2K bytes 2K bytes 2K bytes 2K bytes 4K bytes 4K bytes 2K bytes 8K bytes 8K bytes 8K bytes

Deallocation When a block is freed: Deallocate 1st block When a block is freed: Merge any two adjacent buddies of the same size Recursively continue the merge until the largest block possible is reconstructed 1K byte 2K bytes 1K byte 2K bytes 2K bytes 2K bytes 2K bytes 2K bytes 2K bytes 8K bytes 8K bytes

Example (cont’d) Deallocate 2nd block Deallocate 3rd block 2K bytes

Buddy Allocation (cont’d) Advantages Fast allocation Fast deallocation Very simple data structures (log n + 1 lists of available blocks, at max) Disadvantages Internal fragmentation External fragmentation

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

Swapping Allows 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),

Memory & Scheduling Start Ready Running Process loaded in main memory 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

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