0% found this document useful (0 votes)
3 views

Chapter_3

The document provides an overview of memory management in operating systems, detailing techniques such as paging, segmentation, and various memory allocation methods. It explains concepts like static and dynamic loading, swapping, fragmentation, and virtual memory, along with their implications on performance and efficiency. Additionally, it discusses page replacement algorithms and their evaluation based on page fault rates.

Uploaded by

Abinet Arba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Chapter_3

The document provides an overview of memory management in operating systems, detailing techniques such as paging, segmentation, and various memory allocation methods. It explains concepts like static and dynamic loading, swapping, fragmentation, and virtual memory, along with their implications on performance and efficiency. Additionally, it discusses page replacement algorithms and their evaluation based on page fault rates.

Uploaded by

Abinet Arba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Prepared By: Jerusalem Y.

Memory Management 5/17/2019 1


 Introduction
 Paging and segmentation
 Page replacement policies

Memory Management 5/17/2019 2


 Memory management is the functionality of an operating
system which handles or manages primary memory and moves
processes back and forth between main memory and disk
during execution.
 Memory management keeps track of each and every memory
location, regardless of either it is allocated to some process or
it is free.
 It checks how much memory is to be allocated to processes.
 It decides with which process will get memory at what time.
 It tracks whenever some memory gets unallocated and
correspondingly it updates the status.

Memory Management 5/17/2019 3


 The choice between Static or Dynamic Loading is to be made
at the time of computer program being developed.
 If you have to load your program statically, then at the time of
compilation, the complete programs will be compiled and
linked without leaving any external program or module
dependency.
 The linker combines the object program with other necessary
object modules into an absolute program, which also includes
logical addresses.

Memory Management 5/17/2019 4


 If you are writing a Dynamically loaded program, then your
compiler will compile the program and for all the modules
which you want to include dynamically, only references will
be provided and rest of the work will be done at the time of
execution.
 At the time of loading, with static loading, the absolute
program (and data) is loaded into memory in order for
execution to start.
 If you are using dynamic loading, dynamic routines of the
library are stored on a disk in re-locatable form and are loaded
into memory only when they are needed by the program.

Memory Management 5/17/2019 5


 When static linking is used, the linker combines all other
modules needed by a program into a single executable
program to avoid any runtime dependency.
 When dynamic linking is used, it is not required to link the
actual module or library with the program, rather a reference
to the dynamic module is provided at the time of compilation
and linking.
 Dynamic Link Libraries (DLL) in Windows and Shared
Objects in Unix are good examples of dynamic libraries.

Memory Management 5/17/2019 6


 Swapping is a mechanism in which a process can be swapped
temporarily out of main memory (or move) to secondary
storage (disk) and make that memory available to other
processes.
 At some later time, the system swaps back the process from
the secondary storage to main memory.
 Though performance is usually affected by swapping process
but it helps in running multiple and big processes in parallel
and that's the reason Swapping is also known as a technique
for memory compaction.

Memory Management 5/17/2019 7


Memory Management 5/17/2019 8
 The total time taken by swapping process includes the time it
takes to move the entire process to a secondary disk and then
to copy the process back to memory, as well as the time the
process takes to regain main memory.
 Let us assume that the user process is of size 2048KB and on a
standard hard disk where swapping will take place has a data
transfer rate around 1 MB per second.
 2048KB / 1024KB per second = 2 seconds = 2000
milliseconds
 Now considering in and out time, it will take complete 4000
milliseconds plus other overhead where the process competes
to regain main memory.

Memory Management 5/17/2019 9


 Main memory usually has two partitions
1. Low Memory − Operating system resides in this memory.
2. High Memory − User processes are held in high memory.
 Operating system uses the following memory allocation
mechanism.
1. Single-partition allocation
 In this type of allocation, relocation-register scheme is used to
protect user processes from each other, and from changing
operating-system code and data.
 Relocation register contains value of smallest physical address
whereas limit register contains range of logical addresses.
Each logical address must be less than the limit register.

Memory Management 5/17/2019 10


2. Multiple-partition allocation
 In this type of allocation, main memory is divided into a
number of fixed-sized partitions where each partition should
contain only one process.
 When a partition is free, a process is selected from the input
queue and is loaded into the free partition.
 When the process terminates, the partition becomes available
for another process.

Memory Management 5/17/2019 11


 As processes are loaded and removed from memory, the free
memory space is broken into little pieces.
 It happens after sometimes that processes cannot be allocated
to memory blocks considering their small size and memory
blocks remains unused. This problem is known as
Fragmentation.
 Fragmentation is of two types
1. External fragmentation
 Total memory space is enough to satisfy a request or to reside
a process in it, but it is not contiguous, so it cannot be used.
2. Internal fragmentation
 Memory block assigned to process is bigger.
 Some portion of memory is left unused, as it cannot be used
by another process.

Memory Management 5/17/2019 12


Memory Management 5/17/2019 13
 External fragmentation can be reduced by compaction or
shuffle memory contents to place all free memory together in
one large block.
 To make compaction feasible, relocation should be dynamic.
 The internal fragmentation can be reduced by effectively
assigning the smallest partition but large enough for the
process.

Memory Management 5/17/2019 14


 A computer can address more memory than the amount
physically installed on the system.
 This extra memory is actually called virtual memory and it is a
section of a hard disk that's set up to emulate the computer's
RAM.
 Paging technique plays an important role in implementing
virtual memory.
 Paging is a memory management technique in which process
address space is broken into blocks of the same size
called pages (size is power of 2, between 512 bytes and 8192
bytes).
 The size of the process is measured in the number of pages.

Memory Management 5/17/2019 15


 Similarly, main memory is divided into small fixed-sized
blocks of (physical) memory called frames and the size of a
frame is kept the same as that of a page to have optimum
utilization of the main memory and to avoid external
fragmentation.

Memory Management 5/17/2019 16


Memory Management 5/17/2019 17
 Page address is called logical address and represented
by page number and the offset.
 Logical Address = Page number + page offset
 Frame address is called physical address and represented by
a frame number and the offset.
 Physical Address = Frame number + page offset
 A data structure called page map table is used to keep track of
the relation between a page of a process to a frame in physical
memory.

Memory Management 5/17/2019 18


Memory Management 5/17/2019 19
 When the system allocates a frame to any page, it translates
this logical address into a physical address and create entry
into the page table to be used throughout execution of the
program.
 When a process is to be executed, its corresponding pages are
loaded into any available memory frames.
 Suppose you have a program of 8Kb but your memory can
accommodate only 5Kb at a given point in time, then the
paging concept will come into picture.
 When a computer runs out of RAM, the operating system (OS)
will move idle or unwanted pages of memory to secondary
memory to free up RAM for other processes and brings them
back when needed by the program.

Memory Management 5/17/2019 20


 This process continues during the whole execution of the
program where the OS keeps removing idle pages from the
main memory and write them onto the secondary memory and
bring them back when required by the program.

Memory Management 5/17/2019 21


 Paging reduces external fragmentation, but still suffer from
internal fragmentation.
 Paging is simple to implement and assumed as an efficient
memory management technique.
 Due to equal size of the pages and frames, swapping becomes
very easy.
 Page table requires extra memory space, so may not be good
for a system having small RAM.

Memory Management 5/17/2019 22


 Segmentation is a memory management technique in which
each job is divided into several segments of different sizes,
one for each module that contains pieces that perform related
functions.
 Each segment is actually a different logical address space of
the program.
 When a process is to be executed, its corresponding
segmentation are loaded into non-contiguous memory though
every segment is loaded into a contiguous block of available
memory.
 Segmentation memory management works very similar to
paging but here segments are of variable-length where as in
paging pages are of fixed size.

Memory Management 5/17/2019 23


 A program segment contains the program's main function,
utility functions, data structures, and so on.
 The operating system maintains a segment map table for
every process and a list of free memory blocks along with
segment numbers, their size and corresponding memory
locations in main memory.
 For each segment, the table stores the starting address of the
segment and the length of the segment.
 A reference to a memory location includes a value that
identifies a segment and an offset.

Memory Management 5/17/2019 24


Memory Management 5/17/2019 25
 A computer can address more memory than the amount
physically installed on the system.
 This extra memory is actually called virtual memory and it is
a section of a hard disk that's set up to emulate the computer's
RAM.
 The main visible advantage of this scheme is that programs
can be larger than physical memory.
Virtual memory serves two purposes.
 First, it allows us to extend the use of physical memory by
using disk.
 Second, it allows us to have memory protection, because each
virtual address is translated to a physical address.

Memory Management 5/17/2019 26


 Following are the situations, when entire program is not
required to be loaded fully in main memory.
1. Certain options and features of a program may be used
rarely.
2. Many tables are assigned a fixed amount of address space
even though only a small amount of the table is actually
used.
3. The ability to execute a program that is only partially in
memory would counter many benefits.
4. Less number of I/O would be needed to load or swap each
user program into memory.
5. A program would no longer be constrained by the amount of
physical memory that is available.

Memory Management 5/17/2019 27


6. Each user program could take less physical memory, more
programs could be run the same time, with a corresponding
increase in CPU utilization and throughput.
 Virtual memory is commonly implemented by demand paging.
It can also be implemented in a segmentation system.
 Demand segmentation can also be used to provide virtual
memory.
 Modern microprocessors intended for general-purpose use, a
memory management unit, or MMU, is built into the
hardware.
 The MMU's job is to translate virtual addresses into physical
addresses.

Memory Management 5/17/2019 28


 Page replacement algorithms are the techniques using which
an OS decides which memory pages to swap out, write to disk
when a page of memory needs to be allocated.
 When the page that was selected for replacement and was
paged out, is referenced again, it has to read in from disk, and
this requires for I/O completion.
 This process determines the quality of the page replacement
algorithm: the lesser the time waiting for page-in, the better is
the algorithm.

Memory Management 5/17/2019 29


 A page replacement algorithm looks at the limited information
about accessing the pages provided by hardware, and tries to
select which pages should be replaced to minimize the total
number of page misses, while balancing it with the costs of
primary storage and processor time of the algorithm itself.
 There are many different page replacement algorithms.
 We evaluate an algorithm by running it on a particular string
of memory reference and computing the number of page
faults.

Memory Management 5/17/2019 30


 The string of memory references is called reference string.
 Reference strings are generated artificially or by tracing a
given system and recording the address of each memory
reference.
 The latter choice produces a large number of data, where we
note two things.
 For a given page size, we need to consider only the page
number, not the entire address.

Memory Management 5/17/2019 31


 If we have a reference to a page p, then any immediately
following references to page p will never cause a page fault.
Page p will be in memory after the first reference; the
immediately following references will not fault.
 For example, consider the following sequence of addresses −
123,215,600,1234,76,96
 If page size is 100, then the reference string is 1,2,6,12,0,0

Memory Management 5/17/2019 32


 Oldest page in main memory is the one which will be selected
for replacement.
 Easy to implement, keep a list, replace pages from the old
box/cell and add new pages on it.

Memory Management 5/17/2019 33


Memory Management 5/17/2019 34
 An optimal page-replacement algorithm has the lowest page-
fault rate of all algorithms.
 An optimal page-replacement algorithm exists, and has been
called OPT or MIN.
 Replace the page that will not be used for the longest period of
time.
 Use the time when a page is to be used.

Memory Management 5/17/2019 35


Memory Management 5/17/2019 36
 Page which has not been used for the longest time in main
memory is the one which will be selected for replacement.
 Easy to implement, keep a list, replace pages by looking back
into time.

Memory Management 5/17/2019 37


Memory Management 5/17/2019 38
1. Briefly describe about Demand Paging?
2. Briefly describe about Trashing, Working Set Model and
Page Fault Frequency.
3. Briefly describe about cache memory.
4. Briefly describe about Page Buffering algorithm, Least
frequently Used(LFU) algorithm and Most frequently
Used(MFU) algorithm

Memory Management 5/17/2019 39

You might also like