Download presentation
Presentation is loading. Please wait.
1
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 1 Copyright ©2005 Memory Management Chapter 5
2
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 2 Copyright ©2005 Memory binding Each entity has a set of attributes, e.g. a variable has type, size, dimensionality. Binding is the action of specifying values of attributes of an entity. Two types of binding are used in practice: –Early binding: Restrictive, but leads to efficient execution –Late binding: Flexible, but may lead to less efficient execution
3
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 3 Copyright ©2005 Memory binding Memory allocation is a binding of the `memory address’ attribute of a data entity Static and dynamic binding are examples of early and late binding, respectively
4
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 4 Copyright ©2005 Features of static and dynamic memory allocation
5
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 5 Copyright ©2005 Memory allocation preliminaries Stack – LIFO allocation – A `contiguous’ data structure – Used for data allocated `automatically’ on entering a block Heap – Non-contiguous data structure – Pointer-based access to allocated data – Used for `program controlled data’ (PCD data) that is explicitly allocated and de-allocated in a program, e.g. malloc/calloc
6
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 6 Copyright ©2005 A heap before and after freeing an allocation area
7
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 7 Copyright ©2005 Memory allocation model for a process
8
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 8 Copyright ©2005 Linking, loading and execution of programs
9
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 9 Copyright ©2005 Memory binding in programs The origin of a program is the address of its first instruction or data byte A compiler is given an origin specification It binds instructions and data of a program in accordance with its origin specification
10
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 10 Copyright ©2005 Assembly program P and its generated code
11
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 11 Copyright ©2005 Linking and relocation of programs Linking –A program may wish to use library functions and other programs –These library functions and other programs should become a part of the program –Linking is the function that performs this action Relocation –Many program may have the same origin specification, so the address binding of some of them has to be changed –A program may have to be executed from a memory area that is different from the area for which it is compiled
12
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 12 Copyright ©2005 Linking and relocation of programs Linking and relocation could be performed –Statically –Dynamically What are the advantages of dynamic linking or relocation? How is dynamic linking or relocation performed?
13
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 13 Copyright ©2005 Program relocation using the relocation register: (a) program, (b) its view during execution
14
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 14 Copyright ©2005 Memory protection using bound registers
15
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 15 Copyright ©2005 Memory protection using memory protection leys
16
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 16 Copyright ©2005 Kernel actions for memory protection
17
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 17 Copyright ©2005 Free area management in a heap: (a) singly linked free list, (b) doubly linked free list
18
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 18 Copyright ©2005 Heap management: (a) free list, (b)-(d) allocation using first, best and next fit
19
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 19 Copyright ©2005 Memory fragmentation Fragmentation is the development of un-usably small areas in memory It has several consequences –Memory is wasted –The OS may run out of space to be allocated Two forms of memory fragmentation –Internal fragmentation –External fragmentation
20
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 20 Copyright ©2005 Forms of memory fragmentation
21
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 21 Copyright ©2005 How to counter external fragmentation? Do not allow free memory areas to become too small –Best fit leads to successively smaller memory areas! Combine adjoining free areas into a single larger memory area Perform compaction
22
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 22 Copyright ©2005 Boundary tags
23
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 23 Copyright ©2005 Merging using boundary tags (a) Free list, (b) -(d) freeing of areas X, Y or Z
24
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 24 Copyright ©2005 Memory compaction
25
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 25 Copyright ©2005 Buddy system When memory is to be allocated –Allocate the entire free area to satisfy a request, or –Split a free area into two free areas of equal size * These areas are called buddies * One of the buddies is considered for satisfying a memory request (either completely, or through successive splitting) When memory is to be freed –It is merged with its buddy, if the buddy is also free Status of blocks is saved in a status map
26
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 26 Copyright ©2005 A buddy system
27
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 27 Copyright ©2005 Buddy system operation when a block is released
28
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 28 Copyright ©2005 Powers of two allocators Allocation is in terms of blocks whose sizes are different powers of 2 Blocks are not split or merged Free lists are maintained for different block sizes The header element contains information about block status and size. It is stored in the block itself Header element occupies memory, hence memory efficiency is low for requests that are powers of two in size
29
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 29 Copyright ©2005 Header element in the powers-of-two allocator
30
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 30 Copyright ©2005 Approaches to memory allocation Contiguous memory allocation –Allocates a single contiguous memory area to a request –Suffers from fragmentation –Requires provision to counter fragmentation Noncontiguous memory allocation –Allocates a set of disjoint memory areas to a request –Overcomes certain forms of fragmentation (internal ? External?) –Requires address translation during execution of programs
31
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 31 Copyright ©2005 Contiguous memory allocation Fixed partitioned memory allocation –Partitions are fixed once and for all –A process is allocated a memory partition that is larger in size than its maximum requirement Variable partitioned memory allocation –A process is allocated only as much memory as it needs –Memory is reused through first-fit, best-fit, etc.
32
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 32 Copyright ©2005 Internal fragmentation in fixed partitioned allocation
33
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 33 Copyright ©2005 Memory compaction in variable partitioned allocation
34
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 34 Copyright ©2005 Noncontiguous memory allocation Several disjoint memory areas may be allocated in response to a request. However, hardware aids in the execution of programs. –User or a process is not aware of noncontiguity –Hence two views of a process exist * Logical view: View by the user or process itself. * Physical view: Actual situation regarding allocation –The organization of components in the logical view is called logical organization, and addresses used in it are called logical addresses –Addresses used in the physical view are called physical addresses Avoids external fragmentation as no memory area is too small to be allocated
35
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 35 Copyright ©2005 Noncontiguous memory allocation How is noncontiguous memory allocation performed? –A process is considered to consist of a set of components –Each component is allocated a contiguous area of memory that can accommodate it –Each logical address in an instruction is considered to consist of a pair (component #, byte #) During operation of the process, a hardware unit called the memory management unit (MMU) converts a (component #, byte #) pair into an absolute memory address
36
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 36 Copyright ©2005 Noncontiguous memory allocation
37
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 37 Copyright ©2005 Logical and physical views of a process in a noncontiguous memory allocation
38
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 38 Copyright ©2005 Schematic of address translation in non-contiguous memory allocation
39
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 39 Copyright ©2005 Approaches to Noncontiguous memory allocation Paging –A process consists of components of a fixed size, called pages –The page size is a power of 2 and is fixed in the architecture –Memory is divided into parts called page frames, whose size matches the size of a page –The kernel allocates memory to all pages of a process –The kernel builds a page table that stores information about addresses of page frames allocated to processes –The MMU uses information in the page table to perform address translation
40
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 40 Copyright ©2005 Paging A logical address is split into a pair (page #, word #) This splitting is performed using bit-splitting since the page size is a power of 2
41
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 41 Copyright ©2005 Processes in paging
42
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 42 Copyright ©2005 Approaches to noncontiguous memory allocation Segmentation –Each component in a process is a logical unit called a segment, e.g., a function, a module or an object –Components have different sizes –The kernel allocates memory to all components and builds a segment table –Each logical address in a segment is a pair of the form (segment #, byte #) –The MMU uses the segment table to perform address translation
43
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 43 Copyright ©2005 A process Q in segmentation
44
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 44 Copyright ©2005 Comparison of continuous and noncontinuous memory allocation
45
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 45 Copyright ©2005 Kernel memory allocation The kernel creates and destroys data structures used to store information about user processes and resources at a very high rate, e.g. PCBs, ECBs. Hence efficiency of kernel memory allocation directly influences its overhead Kernel uses special techniques to perform memory allocation for its data structures These techniques exploit the fact that the sizes of many of these data structures are known in advance, e.g. PCBs, ECBs.
46
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 46 Copyright ©2005 Slab allocator A slab is a fixed sized area of memory A slab contains data structures of the same kind A slab is preformatted to contain standard sized slots for these data structures A free list indicates which slots are free If all slabs containing data structures of a specific kind are full, new slabs are allocated by the kernel Allocation and de-allocation of memory is very fast
47
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 47 Copyright ©2005 Format of a slab
48
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 48 Copyright ©2005 Program forms employed in operating systems
49
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 49 Copyright ©2005 (a) a program, and (b) its equivalent overlay structured program in execution
50
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 50 Copyright ©2005 Sharing of a program (a) static sharing, (b) dynamic sharing
51
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 51 Copyright ©2005 Reentrant program (a) structure of program C, (b)-(c) invocation by A and B.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.