Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 1 Copyright ©2005 Memory Management Chapter 5.

Similar presentations


Presentation on theme: "Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 1 Copyright ©2005 Memory Management Chapter 5."— Presentation transcript:

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.


Download ppt "Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 1 Copyright ©2005 Memory Management Chapter 5."

Similar presentations


Ads by Google