Professional Documents
Culture Documents
Os Unit-3
Os Unit-3
Memory-Management Strategies:
Introduction
Swapping
Contiguous Memory Allocation
Paging
Segmentation
Virtual Memory Management:
Introduction
Demand Paging
Copy On-Write
Page replacement
Frame allocation
Thrashing
Memory-mapped files
MEMORY-MANAGEMENT STRATEGIES:
INTRODUCTION:
The term Memory can be defined as a collection of data in a specific format. It is used to store
instructions and processed data. The memory comprises a large array or group of words or bytes, each
with its own location. The primary motive of a computer system is to execute programs. These programs,
along with the information they access, should be in the main memory during execution. The CPU fetches
instructions from memory according to the value of the program counter.
To achieve a degree of multiprogramming and proper utilization of memory, memory management is
important. Many memory management methods exist, reflecting various approaches, and the
effectiveness of each algorithm depends on the situation. The main aim of memory management is to
achieve efficient utilization of memory.
Why Memory Management is required:
• Allocate and de-allocate memory before and after process execution.
• To keep track of used memory space by processes.
• To minimize fragmentation issues.
• To proper utilization of main memory.
• To maintain data integrity while executing of process.
SWAPPING:
Swapping is a memory management scheme in which any process can be temporarily swapped from main
memory to secondary memory so that the main memory can be made available for other processes.
It is used to improve main memory utilization. In secondary memory, the place where the swapped-out
process is stored is called swap space.
The purpose of the swapping in operating system is to access the data present in the hard disk and bring it
to RAM, so that the application programs can use it.
The thing to remember is that swapping is used only when data is not present in RAM.
Although the process of swapping affects the performance of the system, it helps to run larger and more than
one process. This is the reason why swapping is also referred to as memory compaction.
The concept of swapping has divided into two more concepts: Swap-in and Swap-out.
• Swap-out is a method of removing a process from RAM and adding it to the hard disk.
• Swap-in is a method of removing a program from a hard disk and putting it back into the main memory or
RAM.
Advantages of Swapping
It helps the CPU to manage multiple processes within a single main memory.
Disadvantages of Swapping
If the computer system loses power, the user may lose all information related to the program in case of
substantial swapping activity.
If the swapping algorithm is not good, the composite method can increase the number of Page Fault
and decrease the overall processing performance.
CONTIGUOUS MEMORY ALLOCATION
In the Contiguous Memory Allocation, each process is contained in a single contiguous section of
memory.
In this memory allocation, all the available memory space remains together in one place which implies
that the freely available memory partitions are not spread over here and there across the whole memory
space.
In Contiguous memory allocation which is a memory management technique, whenever there is a
request by the user process for the memory then a single section of the contiguous memory block is
given to that process according to its requirement.
Contiguous Memory allocation is achieved just by dividing the memory into the fixed-sized
partition.
The memory can be divided either in the fixed-sized partition or in the variable-sized partition in
order to allocate contiguous space to user processes.
Fixed-size Partition Scheme
This technique is also known as Static partitioning. In this scheme, the system divides the memory
into fixed-size partitions. The partitions may or may not be the same size. The size of each partition is
fixed as indicated by the name of the technique and it cannot be changed.
In this partition scheme, each partition may contain exactly one process. There is a problem that this
technique will limit the degree of multiprogramming because the number of partitions will basically
decide the number of processes.
Example:
Let's take an example of fixed size partitioning scheme, we will divide a memory size of 15 KB into
fixed-size partitions:
It is important to note that these partitions are allocated to the processes as they arrive and the partition
that is allocated to the arrived process basically depends on the algorithm followed.
If there is some wastage inside the partition then it is termed Internal Fragmentation.
Variable-size Partition Scheme
This scheme is also known as Dynamic partitioning and is came into existence to overcome the
drawback i.e. internal fragmentation that is caused by Static partitioning. In this partitioning, scheme
allocation is done dynamically.
The size of the partition is not declared initially. Whenever any process arrives, a partition of size equal
to the size of the process is created and then allocated to the process. Thus the size of each partition is
equal to the size of the process.
As partition size varies according to the need of the process so in this partition scheme there is
no internal fragmentation.
PAGING:
Paging is a storage mechanism that allows OS to retrieve processes from the secondary storage into
the main memory in the form of pages. In the Paging method, the main memory is divided into small
fixed-size blocks of physical memory, which is called frames.
The size of a frame should be kept the same as that of a page to have maximum utilization of the main
memory and to avoid external fragmentation. Paging is used for faster access to data, and it is a logical
concept.
Advantages of Paging
Here, are advantages of using Paging method:
Disadvantages of Paging
Here, are drawback/ cons of Paging:
Disadvantages of Segmentation
Here are cons/drawback of Segmentation
• In segmentation method, processes are loaded/ removed from the main memory. Therefore, the free
memory space is separated into small pieces which may create a problem of external fragmentation
• Costly memory management algorithm
VIRTUAL MEMORY MANAGEMENT
INTRODUCTION:
Virtual Memory is a storage allocation scheme in which secondary memory can be addressed as
though it were part of the main memory.
The addresses a program may use to reference memory are distinguished from the addresses the
memory system uses to identify physical storage sites, and program-generated addresses are translated
automatically to the corresponding machine addresses.
The size of virtual storage is limited by the addressing scheme of the computer system and the amount
of secondary memory is available not by the actual number of the main storage locations.
It is a technique that is implemented using both hardware and software. It maps memory addresses
used by a program, called virtual addresses, into physical addresses in computer memory.
1. All memory references within a process are logical addresses that are dynamically translated into
physical addresses at run time. This means that a process can be swapped in and out of the main
memory such that it occupies different places in the main memory at different times during the course
of execution.
2. A process may be broken into a number of pieces and these pieces need not be continuously located in
the main memory during execution. The combination of dynamic run-time address translation and use
of page or segment table permits this.
DEMAND PAGING :
The process of loading the page into memory on demand (whenever page fault occurs) is known as
demand paging.
The process includes the following steps :
1. If the CPU tries to refer to a page that is currently not available in the main memory, it generates an
interrupt indicating a memory access fault.
2. The OS puts the interrupted process in a blocking state. For the execution to proceed the OS must
bring the required page into the memory.
3. The OS will search for the required page in the logical address space.
4. The required page will be brought from logical address space to physical address space. The page
replacement algorithms are used for the decision-making of replacing the page in physical address
space.
5. The page table will be updated accordingly.
6. The signal will be sent to the CPU to continue the program execution and it will place the process back
into the ready state.
COPY ON WRITE
Copy on Write or simply COW is a resource management technique. One of its main use is in the
implementation of the fork system call in which it shares the virtual memory(pages) of the OS.
In UNIX like OS, fork() system call creates a duplicate process of the parent process which is called as
the child process.
The idea behind a copy-on-write is that when a parent process creates a child process then both of
these processes initially will share the same pages in memory and these shared pages will be marked as
copy-on-write which means that if any of these processes will try to modify the shared pages then only
a copy of these pages will be created and the modifications will be done on the copy of pages by that
process and thus not affecting the other process.
Suppose, there is a process P that creates a new process Q and then process P modifies page 3.
The below figures shows what happens before and after process P modifies page 3.
PAGE REPLACEMENT
The page replacement algorithm decides which memory page is to be replaced. The process of replacement is
sometimes called swap out or write to disk. Page replacement is done when the requested page is not found in the
main memory (page fault).
There are two main aspects of virtual memory, Frame allocation and Page Replacement. It is very important to have
the optimal frame allocation and page replacement algorithm. Frame allocation is all about how many frames are to
be allocated to the process while the page replacement is all about determining the page number which needs to be
replaced in order to make space for the requested page.
Types of Page Replacement Algorithms
There are various page replacement algorithms. Each algorithm has a different method by which the
pages can be replaced.
1. Optimal Page Replacement algorithm → this algorithms replaces the page which will not be
referred for so long in future. Although it can not be practically implementable but it can be used as a
benchmark. Other algorithms are compared to this in terms of optimality.
2. Least recent used (LRU) page replacement algorithm → this algorithm replaces the page which has
not been referred for a long time. This algorithm is just opposite to the optimal page replacement
algorithm. In this, we look at the past instead of staring at future.
3. FIFO → in this algorithm, a queue is maintained. The page which is assigned the frame first will be
replaced first. In other words, the page which resides at the rare end of the queue will be replaced on
the every page fault.
FRAME ALLOCATION
• You cannot allocate more than the total number of available frames.
• At least a minimum number of frames should be allocated to each process. This constraint is supported
by two reasons. The first reason is, as less number of frames are allocated, there is an increase in the
page fault ratio, decreasing the performance of the execution of the process. Secondly, there should be
enough frames to hold all the different pages that any single instruction can reference.
There are mainly five ways of frame allocation algorithms in the OS. These are as follows:
In multiprogramming, there can be a scenario when the system spends most of its time shuttling pages
between the main memory and the secondary memory due to frequent page faults. This behavior is
known as thrashing.
A process is said to be thrashing if the CPU spends more time serving page faults than executing the
pages. This leads to low CPU utilization and the Operating System in return tries to increase the degree
of multiprogramming.
The above definition might be hard to understand in one go so let’s try to understand it with an
example. We know each process requires a minimum number of pages to be present in the main
memory at any point in time for its execution.
Causes of Thrashing
Thrashing affects the performance of execution in the Operating system. Also, thrashing results in
severe performance problems in the Operating system.
When the utilization of CPU is low, then the process scheduling mechanism tries to load many
processes into the memory at the same time due to which degree of Multiprogramming can be
increased. Now in this situation, there are more processes in the memory as compared to the available
number of frames in the memory. Allocation of the limited amount of frames to each process.
Whenever any process with high priority arrives in the memory and if the frame is not freely available
at that time then the other process that has occupied the frame is residing in the frame will move to
secondary storage and after that this free frame will be allocated to higher priority process.
We can also say that as soon as the memory fills up, the process starts spending a lot of time for the
required pages to be swapped in. Again the utilization of the CPU becomes low because most of the
processes are waiting for pages.
Thus a high degree of multiprogramming and lack of frames are two main causes of thrashing in the
Operating system.
MEMORY-MAPPED FILES
Memory mapping refers to process ability to access files on disk the same way it accesses dynamic
memory. It is obvious that accessing RAM is much faster than accessing disk via read and write
system calls.
Behind the scenes, the operating system utilizes virtual memory techniques to do the trick. The OS
splits the memory mapped file into pages (similar to process pages) and loads the requested pages into
physical memory on demand.
If a process references an address (i.e. location within the file) that does not exists, a page fault occurs
and the operating system brings the missing page into memory.
Advantages
Memory mapping is an excellent technique that has various benefits. Examples below.
• Efficiency: when dealing with large files, no need to read the entire file into memory first.
• Fast: accessing virtual memory is much faster than accessing disk.
• Sharing: facilitates data sharing and inter process communication.
• Simplicity: dealing with memory as opposed to allocating space, copying data and deallocating space.
Disadvantages
Just like any other technique, memory mapping has some drawbacks.
• Memory mapping is generally good for binary files, however reading formatted binary file types
with custom headers such as TIFF can be problematic.
• Memory mapping text files is not such an appealing task as it may require proper text handling
and conversion.
• The notion that a memory mapped file has always better performance should not be taken for
granted. Recall that accessing file in memory may generate a lot of page faults which is bad.
• Memory footprint is larger than that of traditional file IO. In other words, user applications have
no control over memory allocation.
• Expanding file size is not easy to implement because a memory mapped file is assumed to be
KERNEL MEMORY ALLOCATION
The Kernel is the heart of an operating system. It is the kernel of an OS through the medium of which the OS
exercises control over the computer system.
When a system boots up, the Kernel is the first program that is loaded in memory after the bootloader because
the kernel handles the rest of the functions of the system for the OS. The Kernel remains in the memory until the
OS shuts down.
Functions of a Kernel in OS
1. Scheduling processes:
The kernel provides a part of the time to each process, when a process has finished executions the kernel starts another
process, determines the state of the process, which could be one of running, waiting, or ended.
2. Resource Allocation:
The kernel controls memory, peripheral devices, and CPU processes. It also acts as link between resources and processes.
It allocates the memory to the processes. If any process requires access to some hardware component, the kernel allocates
that component to it.
3. Device Management:
The kernel manages the devices connected with the system, such as I/O devices, storage devices, etc and also the
exchange of data through these devices. The information is received from the system and transferred to it from the
I/O devices and various applications.
4. Interrupt Handling and System Calls:
When a process runs, there may arise a task of high priority that needs to be executed first. The kernel switches the
control from the currently running process to the new one as per their priorities. The kernel also deals with system
calls, which simply put are software interrupts.
5. Memory Management:
Once the kernel creates and executes a process, it lives in memory having occupied space in it. When the process
ends, the kernel removes the process from the memory. Kernel assigns the memory to process and releases it as well.
6. Process Management:
The kernel performs the creation, execution, and ending of processes that run in the system. When a system has to
execute any task, the kernel creates and manages the processes.