Operating System Tutorial

What is Operating System Evolution of Operating System Types of Operating System Functions of Operating System What is Kernel and Types of Kernel Operating System Properties Operating System Services Components of Operating System Needs of the Operating System Linux Operating System Unix Operating System Ubuntu Operating System What is DOS Operating System Difference Between Multi-programming and Multitasking What is Thread and Types of Thread Process Management Process State What is Process Scheduler and Process Queue What is Context Switching What is CPU Scheduling Scheduling Algorithm FCFS (First-come-First-Serve) Scheduling SJF (Shortest Job First) Scheduling Round-Robin CPU Scheduling Priority Based Scheduling HRRN (Highest Response Ratio Next) Scheduling Process Synchronization Lock Variable Mechanism TSL Mechanism Turn Variable Mechanism Interested Variable Mechanism What is Producer-Consumer Problem What is Semaphore in Operating System Monitors in Operating System What is Deadlock Deadlock Avoidance Strategies for Handling Deadlock Deadlock Prevention Deadlock Detection and Recovery Resource Allocation Graph Banker’s Algorithm in Operating System Fixed Partitioning and Dynamic Partitioning Partitioning Algorithms What is Paging and Segmentation What is Demand Paging What is Virtual Memory Disk Scheduling Algorithms FCFS and SSTF Disk Scheduling Algorithm SCAN and C-SCAN Disk Scheduling Algorithm Look and C-Look Disk Scheduling Algorithm File in Operating System File Access Methods in Operating System File Allocation Method Directory Structure in Operating System Difference between C-LOOK and C-SCAN Difference between Rotational Latency and Disk Assess Time Trap vs Interrupt How to implement Monitors using Semaphores N-Step-SCAN Disk Scheduling Why is it critical for the Scheduler to distinguish between I/O-bound and CPU-bound programs Difference between C-SCAN and SSTF Difference between SCAN and FCFS Difference between Seek Time and Disk Access Time Difference between SSTF and LOOK

Virtual Memory in Operating System

What is Virtual Memory

Virtual Memory is a storage scheme in which the users have an illusion that users have a significant amount of Main Memory. We can perform this by taking a section of Secondary storage as the Main Memory.

With the help of virtual memory, we can load or store the large size processes than the available memory.

In other words, Virtual Memory is defined as an area in which the programs of large size are able to store themselves in the form of pages.

 Virtual Memory is helpful in the scenario where the users have a small amount of physical memory. With the help of demand paging and demand segmentation, virtual memory is implemented.

How Virtual Memory Works

In today’s scenario, the concept of Virtual Memory is quite common. Virtual Memory is used when pages need to be loaded in the Main memory, but there is no availability of memory for the pages.

So, in this situation, instead of avoiding pages to enter into the Main Memory, the operating system finds the space for RAM (Random Access Memory) which are slightest used in the current time or, which are not referenced into the secondary storage for the purpose of creating the space for the new pages into the Main memory.

Because all this mechanism is done automatically, so this makes the computer with a more amount of RAM (Random Access Memory).

Benefits of Virtual Memory

The benefits of virtual memory are:

  1. With the help of Virtual Memory, we can execute the number of processes at once.
  2. It is helpful to fit the various programs into a smaller program.
  3. With the help of Virtual Memory, we can run multiple applications at a time.
  4. In this, a similar code or data can be shared with the memory.
  5. Code or data must be read from the disk when needed.
  6. Virtual Memory is useful in the implementation of a multiprogramming environment.
  7. The processes are kept in the main memory. Due to this, the CPU is used effectively.
  8. In Virtual Memory, the user is able to run a large-size application in the less RAM.
  9. In Virtual Memory, no requirement to purchase or buy more RAMs memory.
  10. We can place the code anywhere in the physical memory without any need for relocation.

Drawbacks of Virtual Memory

The drawbacks of virtual memory are:

  1. Virtual Memory can reduce system stability.
  2. Virtual memory does not provide the same performance as RAM.
  3. When the system use virtual memory, then the application may run slower.
  4. To switch between the applications, Virtual Memory requires more time.
  5. If we use Virtual Memory, then we don’t have more hard disk space for its use.

Snapshot of a Virtual Memory Management System

What is Virtual Memory

Suppose we have two processes, which are process P1 and the process P2. Process P1 and P2 comprises of four pages. Each page size is 1 KB. There are eight frames that are present in the Main Memory, and the size of each frame is 1 KB. The operating system is residing in the first 2 partitions. The first page of the process P1 is stored in the third partition. In the memory, the other frames are also occupied with the different process pages.

The size of each page table is 1KB. So, we can fit each of these in one frame. We can see in the above diagram; the page table consists of several types of information.

There is a register contained in the CPU that includes the base address of the page table. The base address of the process P1 is 5, and the base address of the process P2 is 7. To access the actual corresponding entry, the base address of the page table is added to the page number of the logical address.