A Page Table is a data structure used by the operating system to keep track of the mapping between virtual addresses used by a process and the corresponding physical addresses in the system’s memory.
A Page Table Entry (PTE) is an entry in the Page Table that stores information about a particular page of memory. Each PTE contains information such as the physical address of the page in memory, whether the page is present in memory or not, whether it is writable or not, and other access permissions.
The size and format of a PTE can vary depending on the architecture of the system and the operating system used. In general, a PTE contains enough information to allow the operating system to manage memory efficiently and protect the system from malicious or accidental access to memory.
Page Table Entry
The number of Page Table Entries in a Page Table depends on the size of the virtual address space used by a process and the size of the memory pages used by the system. For example, if the virtual address space of a process is 32 bits, and the system uses 4 KB pages, then the Page Table will have 2^20 (1 million) entries, with each entry being 4 bytes in size.
In modern systems with large virtual address spaces, such as 64-bit systems, the Page Table can become very large, leading to performance issues. To address this, some systems use hierarchical page tables, where the Page Table is divided into smaller tables, each pointing to a larger table. This allows for more efficient memory management and faster access to Page Table Entries.
Information Stored in Page Table Entry
- Frame Number – It gives the frame number in which the current page you are looking for is present. The number of bits required depends on the number of frames. Frame bit is also known as address translation bit.
Number of bits for frame = Size of physical memory / Frame Size
- Present/Absent Bit: Present or absent bit says whether a particular page you are looking for is present or absent. In case it is not present, that is called Page Fault. It is set to 0 if the corresponding page is not in memory. Used to control page faults by the operating system to support virtual memory. Sometimes this bit is also known as a valid/invalid bit.
- Protection Bit: The protection bit says what kind of protection you want on that page. So, these bits are for the protection of the page frame (read, write, etc).
- Referenced Bit: Referenced bit will say whether this page has been referred to in the last clock cycle or not. It is set to 1 by hardware when the page is accessed.
- Caching Enabled/Disabled: Sometimes we need fresh data. Let us say the user is typing some information from the keyboard and your program should run according to the input given by the user. In that case, the information will come into the main memory. Therefore main memory contains the latest information which is typed by the user. Now if you try to put that page in the cache, that cache will show the old information. So whenever freshness is required, we don’t want to go for caching or many levels of memory. The information present in the closest level to the CPU and the information present in the closest level to the user might be different. So we want the information to be consistent, which means whatever information the user has given, the CPU should be able to see it as first as possible. That is the reason we want to disable caching. So, this bit enables or disables caching of the page.
- Modified Bit: Modified bit says whether the page has been modified or not. Modified means sometimes you might try to write something onto the page. If a page is modified, then whenever you should replace that page with some other page, then the modified information should be kept on the hard disk or it has to be written back or it has to be saved back. It is set to 1 by hardware on the write-access to a page which is used to avoid writing when swapped out. Sometimes this modified bit is also called the Dirty bit.
Advantages of Using a Page Table in a Virtual Memory System
- Efficient Use of Memory: Virtual memory allows the operating system to allocate only the necessary amount of physical memory needed by a process, which reduces memory waste and increases overall system performance.
- Protection: Page Tables allow the operating system to control access to memory and protect sensitive data from unauthorized access. Each PTE can be configured with access permissions, such as read-only or no access, to prevent accidental or malicious modification of memory.
- Flexibility: Virtual memory allows multiple processes to share the same physical memory space, which increases system flexibility and allows for better resource utilization.
- Address Translation: Page Tables provide the mechanism for translating virtual addresses used by a process into physical addresses in memory, which allows for efficient use of memory and simplifies memory management.
- Hierarchical Design: Some systems use hierarchical page tables, which provide a more efficient method for managing large virtual address spaces. Hierarchical page tables divide the Page Table into smaller tables, each pointing to a larger table, which allows for faster access to Page Table Entries and reduces the overall size of the Page Table.
Questions For Practice
1. Consider a machine with 64 MB of physical memory and a 32-bit virtual address space. If the page size is 4KB, what is the approximate size of the page table? (GATE CS 2001)
(A) 16 MB
(D) 24 MB
Solution: Correct Answer is (C).
For a detailed solution, refer to GATE CS 2001, Question 46.
2. In a virtual memory system, the size of the virtual address is 32-bit, the size of the physical address is 30-bit, the page size is 4 Kbyte, and the size of each page table entry is 32-bit. The main memory is byte addressable. Which one of the following is the maximum number of bits that can be used for storing protection and other information in each page table entry? (GATE CS 2004)
Solution: Correct Answer is (D).
For a detailed Solution, refer to GATE CS 2004, Question 66.
3. Consider a system with byte-addressable memory, 32-bit logical addresses, 4-kilobyte page sizes, and page table entries of 4 bytes each. The size of the page table in the system in megabytes is ___________. (GATE CS 2015)
Solution: Correct Answer is (B).
For a detailed solution, refer to GATE CS 2015 (Set 1), Question 65
FAQs On Page Table
Q.1: What happens in case the Page Table Entry is not present in the Page Table?
If a Page Table Entry is not present in the Page Table, it leads to a page fault, and the Operating System has to bring the required page from the disk into memory.
Q.2: Can we modify the page table entry during the runtime?
Yes, we can easily modify the page table entries during runtime for changing the mapping functionality.
Q.3: Can you specify the purpose of the Page Table Directory?
The purpose of the Page Global Directory is to locate the page middle directory in a multi-level paging system.
Share your thoughts in the comments
Please Login to comment...