menu
What are Demand Paging and Pre-paging - javatpoint
What are Demand Paging and Pre-paging - javatpoint
What are Demand Paging and Pre-paging with OS Tutorial, Types of OS, Process Management, Attributes of a Process, CPU Scheduling, FCFS with overhead, FCFS Scheduling etc.

What are Demand Paging and Pre-paging - javatpoint

According to the concept of virtual memory, the entire process doesn't need to be loaded into the main memory to execute any process at the given time. The process can be executed efficiently if only some of the pages are present in the main memory at a particular time. But, the problem here is how we decide the basis of the selection of pages to be loaded into the main memory for execution of a process beforehand. It means which page should be present in the main memory at a particular time and which one should not be there.

To resolve this problem, here is a concept of demand paging in an operating system. This concept says we should not load any page into the main memory until required or keep all the pages in secondary memory until demanded. In contrast, in Pre-Paging, the OS guess in advance which page the process will require and pre-loads them into the memory.

The concept of Pre-paging is used to reduce the large number of page faults that occur at the start of a process where the basic strategy is to bring all the pages into the memory that will be needed at the same time before the process references them.

Demand paging is a technique used in virtual memory systems where the pages are brought in the main memory only when required or demanded by the CPU. Hence, it is also called lazy swapper because the swapping of pages is done only when the CPU requires it. Virtual memory is commonly implemented in demand paging.

In demand paging, the pager brings only those necessary pages into the memory instead of swapping in a whole process. Thus, demand paging avoids reading into memory pages that will not be used anyways, decreasing the swap time and the amount of physical memory needed.

The demand paging system depends on the page table implementation because the page table helps map logical memory to physical memory. Bitwise operators are implemented in the page table to indicate that pages are ok or not (valid or invalid). All valid pages exist in primary memory, and invalid pages exist in secondary memory. Now all processes go-ahead to access all pages, and then the following things will be happened, such as:

Suppose we have to execute a process P having four pages P0, P1, P2, and P3. Currently, in the page table, we have pages P1 and P3.

Hence, the operating system follows these steps whenever a page fault occurs and the required page is brought into memory.

So whenever a page fault occurs, as shown in all the above steps 2 to 6. This time taken to service the page fault is called the Page fault service time.

Effective Memory Access Time: When the page fault rate is 'p' while executing any process, then the effective memory access time is calculated as follows:

Effective Memory Access time = (p)*(s) + (1-p)*(m)

Where

Here are the following advantages of demand paging in the operating system, such as:

Below are some disadvantages of demand paging in an operating system, such as:

Pre-paging is used to overcome a major drawback of demand paging. A major drawback of demand paging is many page faults, which may occur as soon as a process starts to execute. The situation results from an effort to load the initial locality into memory, and the same situation may arise repeatedly.

For example, when a process is restarted after being swapped out, all its pages are present on the disk, and hence each of the pages must be brought back to the main memory for execution of the process by its own page fault the worst case.

If a system uses a Working Set Model, a list of pages is maintained with each process in its working set. If a process is suspended due to a lack of free frames or an I/O wait, the working set of the process is not lost. When a process is resumed, the entire working set is brought back into the memory before the process begins to execute again.

The above diagram shows that only one page was referenced or demanded by the CPU, but three more pages were pre-paged by the OS. The OS tries to predict which page would be next required by the processor and brings that page proactively into the main memory.

The major advantage of Pre-paging is that it might save time when a process references consecutive addresses. In this case, it is easy for the operating system to guess and load the appropriate pages, and, as there is a high probability of the guess being right for many pages, fewer page faults will occur.

Pre-paging may not always be beneficial. The advantage of Pre-paging is based on the answer to a simple question: whether the cost of implementing Pre-paging is less than the cost of servicing the corresponding page faults. It may be the case that a considerably large number of pages brought back into the memory by Pre-paging are not used. The disadvantage of the concept is that there is wastage of resources like time and memory if the pre-loaded pages are unused.

In an operating system, pre-paging has the following advantages, such as:

Pre-paging also has the following disadvantages, such as:

In demand paging, only those pages are brought into the main memory required to execute the program. When a program needs other pages, it will swap out the unused pages from the main memory and swap in the desired page. Thus, allowing it to execute the program through the space available is insufficient to bring the whole program into the main memory. One of the problems that arise due to demand paging is page fault which is caused due to the required page not being found in the main memory for which we require swapping.

In pre-paging, pages other than the one demanded by a page fault are brought in. The selection of such pages is done based on common access patterns, especially for secondary memory devices. Below are some more differences between the demand paging and pre-paging, such as:

Splunk

SPSS

Swagger

Transact-SQL

Tumblr

ReactJS

Regex

Reinforcement Learning

R Programming

RxJS

React Native

Python Design Patterns

Python Pillow

Python Turtle

Keras

Aptitude

Reasoning

Verbal Ability

Interview Questions

Company Questions

Artificial Intelligence

AWS

Selenium

Cloud Computing

Hadoop

ReactJS

Data Science

Angular 7

Blockchain

Git

Machine Learning

DevOps

DBMS

Data Structures

DAA

Operating System

Computer Network

Compiler Design

Computer Organization

Discrete Mathematics

Ethical Hacking

Computer Graphics

Software Engineering

Web Technology

Cyber Security

Automata

C Programming

C++

Java

.Net

Python

Programs

Control System

Data Mining

Data Warehouse

JavaTpoint offers too many high quality services. Mail us on [email protected], to get more information about given services.

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected]
Duration: 1 week to 2 week

Website Development

Android Development

Website Designing

Digital Marketing

Summer Training

Industrial Training

College Campus Training

Address: G-13, 2nd Floor, Sec-3

Noida, UP, 201301, India

Contact No: 0120-4256464, 9990449935

© Copyright 2011-2021 www.javatpoint.com. All rights reserved. Developed by JavaTpoint.