New Os Unit 4
New Os Unit 4
Digital Notes
Course : MCA
Branch : -
Semester : IInd
This algorithm starts scanning the partitions serially from the starting.
When an empty partition that is big enough to store the process is found, it is allocated to the process.
Obviously, the partition size has to be greater than or at least equal to the process size.
Important Points-
Point-01: For static partitioning,
a) Best Fit Algorithm works best.
b) This is because space left after the allocation inside the partition is of very small size.
c) Thus, internal fragmentation is least.
Internal Fragmentation
It occurs when the space is left inside the partition after allocating the partition to a
process.
This space is called as internally fragmented space.
This space can not be allocated to any other process.
This is because only static partitioning allows to store only one process in each partition.
Internal Fragmentation occurs only in static partitioning.
External Fragmentation
It occurs when the total amount of empty space required to store the process is available in
the main memory.
But because the space is not contiguous, so the process can not be stored.
The translation scheme uses two registers that are under the control of operating system.
During context switching, the values corresponding to the process being loaded are set in the registers.
Relocation Register stores the base address or starting address of the process in the main memory.
Limit Register stores the size or length of the process.
Step-02:
CPU generates a logical address containing the address of the instruction that it wants to read.
Step-03:
The logical address generated by the CPU is compared with the limit of the process.
Now, two cases are possible-
Diagram-
The following diagram illustrates the above steps of translating logical address into physical address-
Advantages-The advantages of static partitioning are-
It is simple and easy to implement.
It supports multiprogramming since multiple processes can be stored inside the main memory.
Only one memory access is required which reduces the access time.
Dynamic Partitioning
Dynamic partitioning is a variable size partitioning scheme.
It performs the allocation dynamically.
When a process arrives, a partition of size equal to the size of process is created.
Then, that partition is allocated to the process.
Paging-
Each process is divided into parts where size of each part is same as page size.
The size of the last part may be less than the page size.
The pages of process are stored in the frames of main memory depending upon their availability.
Example-
Following steps are followed to translate logical address into physical address-
Step-01: CPU generates a logical address consisting of two parts-
Page Number
Page Offset
Page Number specifies the specific page of the process from which CPU wants to read the data.
Page Offset specifies the specific word on the page that CPU wants to read.
The frame number combined with the page offset forms the required physical address.
Frame number specifies the specific frame where the required page is stored.
Page Offset specifies the specific word that has to be read from that page.
Diagram-
The following diagram illustrates the above steps of translating logical address into physical address-
Page Table-
Characteristics-
Page table is stored in the main memory.
Number of entries in a page table = Number of pages in which the process is divided.
Page Table Base Register (PTBR) contains the base address of page table.
Each process has its own independent page table.
Working-
Page Table Base Register (PTBR) provides the base address of the page table.
The base address of the page table is added with the page number referenced by the CPU.
It gives the entry of the page table containing the frame number where the referenced page is stored.
1. Frame Number-
Frame number specifies the frame where the page is stored in the main memory.
The number of bits in frame number depends on the number of frames in the main memory.
NOTE
If the required page is not present in the main memory, then it is called as Page Fault.
A page fault requires page initialization.
The required page has to be initialized (fetched) from the secondary memory and brought into the main memory.
3. Protection Bit-
4. Reference Bit-
Reference bit specifies whether that page has been referenced in the last clock cycle or not.
If the page has been referenced recently, then this bit is set to 1 otherwise set to 0.
NOTE
Reference bit is useful for page replacement policy.
A page that has not been referenced recently is considered a good candidate for page
replacement in LRU page replacement policy.
NOTE
In case the page is modified,
Before replacing the modified page with some other page, it has to be written back in the secondary
memory to avoid losing the data.
Dirty bit helps to avoid unnecessary writes.
This is because if the page is not modified, then it can be directly replaced by another page without any
need of writing it back to the disk.
Important Formulas-
The following list of formulas is very useful for solving the numerical problems based on paging.
For Process-
Size of page table = Number of entries in page table x Page table entry size
Number of entries in pages table = Number of pages the process is divided
Page table entry size = Number of bits in frame number + Number of bits used for optional fields if any
NOTE-
In general, if the given address consists of ‘n’ bits, then using ‘n’ bits, 2 n locations are possible.
Then, size of memory = 2n x Size of one location.
If the memory is byte-addressable, then size of one location = 1 byte.
Thus, size of memory = 2n bytes.
If the memory is word-addressable where 1 word = m bytes, then size of one location = m bytes.
Thus, size of memory = 2n x m bytes.
PRACTICE PROBLEMS BASED ON PAGING AND PAGE TABLE-
Problem-01: Calculate the size of memory if its address consists of 22 bits and the memory is 2-byte addressable.
Solution-
We have-
Number of locations possible with 22 bits = 2 22 locations
It is given that the size of one location = 2 bytes
Thus, Size of memory
= 222 x 2 bytes
= 223 bytes
= 8 MB
Problem-02 Calculate the number of bits required in the address for memory having size of 16 GB. Assume the memory is 4-
byte addressable.
Solution-
Let ‘n’ number of bits are required. Then, Size of memory = 2 n x 4 bytes.
Since, the given memory has size of 16 GB, so we have-
2n x 4 bytes = 16 GB
2n x 4 = 16 G
2n x 22 = 234
2n = 232
∴ n = 32 bits
Problem-03: Consider a system with byte-addressable memory, 32 bit logical addresses, 4 kilobyte page size and page table
entries of 4 bytes each. The size of the page table in the system in megabytes is _____.
1. 2
2. 4
3. 8
4. 16
Solution-Given-
Number of bits in logical address = 32 bits
Page size = 4KB
Page table entry size = 4 bytes
Process Size-
Number of bits in logical address = 32 bits
Thus,
Process size
= 232 B
= 4 GB
Number of Entries in Page Table-
Number of pages the process is divided
= Process size / Page size
= 4 GB / 4 KB
= 220 pages
Thus,
Number of entries in page table = 220 entries
Page Table Size-
Page table size
= Number of entries in page table x Page table entry size
= 220 x 4 bytes
= 4 MB
Thus, Option (B) is correct.
Problem-04: Consider a machine with 64 MB physical memory and a 32 bit virtual address space. If the page size is 4 KB,
what is the approximate size of the page table?
1. 16 MB
2. 8 MB
3. 2 MB
4. 24 MB
Solution-Given-
Size of main memory = 64 MB
Number of bits in virtual address space = 32 bits
Page size = 4 KB
We will consider that the memory is byte addressable.
Number of Bits in Physical Address-
Size of main memory
= 64 MB
= 226 B
Thus, Number of bits in physical address = 26 bits
Number of Frames in Main Memory-
Number of frames in main memory
= Size of main memory / Frame size
= 64 MB / 4 KB
= 226 B / 212 B
= 214
Thus, Number of bits in frame number = 14 bits
Number of Bits in Page Offset-
We have,
Page size
= 4 KB
= 212 B
Thus, Number of bits in page offset = 12 bits
So, Physical address is-
Process Size-
Number of bits in virtual address space = 32 bits
Thus,
Process size
= 232 B
= 4 GB
Number of Entries in Page Table-
Number of pages the process is divided
= Process size / Page size
= 4 GB / 4 KB
= 220 pages
Thus, Number of entries in page table = 220 entries
Page Table Size-
Page table size
= Number of entries in page table x Page table entry size
= Number of entries in page table x Number of bits in frame number
= 220 x 14 bits
= 220 x 16 bits (Approximating 14 bits ≈ 16 bits)
= 220 x 2 bytes
= 2 MB Thus, Option (C) is correct.
Problem-05:In a virtual memory system, size of virtual address is 32-bit, size of physical address is 30-bit, page size is 4
Kbyte and 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?
1. 2
2. 10
3. 12
4. 14
Solution-Given-
Number of bits in virtual address = 32 bits
Number of bits in physical address = 30 bits
Page size = 4 KB
Page table entry size = 32 bits
Proof-
Keeping process size and page table entry size as constant, differentiating overhead with respect to page size, we get-
Solution-
Given-
Virtual address space = Process size = 4 KB
Page table entry size = 8 bytes
We know-
Optimal page size
= (2 x Process size x Page table entry size)1/2
= (2 x 4 KB x 8 bytes)1/2
= (216 bytes x bytes)1/2
= 28 bytes
= 256 bytes
Thus, Optimal page size = 256 bytes.
Problem-02:
In a paging scheme, virtual address space is 16 MB and page table entry size is 2 bytes. What should be the optimal page size?
Solution-
Given-
Virtual address space = Process size = 16 MB
Page table entry size = 2 bytes
We know-
Optimal page size
= (2 x Process size x Page table entry size)1/2
= (2 x 16 MB x 2 bytes)1/2
= (226 bytes x bytes)1/2
= 213 bytes
= 8 KB
Thus, Optimal page size = 8 KB.
Problem-03: In a paging scheme, virtual address space is 256 GB and page table entry size is 32 bytes. What should be the
optimal page size?
Solution-
Virtual address space = Process size = 256 GB
Page table entry size = 32 bytes
Optimal page size
= (2 x Process size x Page table entry size)1/2
= (2 x 256 GB x 32 bytes)1/2
= (244 bytes x bytes)1/2
= 222 bytes
= 4 MB
Thus, Optimal page size = 4 MB.
Problem-03:Consider a single level paging scheme. The virtual address space is 128 TB and page size is 32 MB. What is the
maximum page table entry size possible such that the entire page table fits well in one page?
Solution-
For page table, to fit well in one page, we must have-
Page table size <= Page size
Number of Pages of Process-
Number of pages the process is divided
= Process size / Page size
= 128 TB / 32 MB
= 247 B / 225 B
= 222 pages
Page Table Size-
Let page table entry size = B bytes
Now,
Page table size
= Number of entries in the page table x Page table entry size
= Number of pages the process is divided x Page table entry size
= 222 x B bytes
Now,
According to the above condition, we must have-
222 x B bytes <= 32 MB
222 x B <= 225
B <= 8
Thus, maximum page table entry size possible = 8 bytes.
Problem-04:
Consider a single level paging scheme. The virtual address space is 256 MB and page table entry size is 4 bytes. What is the
minimum page size possible such that the entire page table fits well in one page?
Solution-
Now,
According to the above condition, we must have-
(230 / B) bytes <= B bytes
B2 >= 230
B >= 215
Thus, minimum page size possible = 215 bytes or 32 KB.
Problem-05:
Consider a single level paging scheme. The virtual address space is 512 KB and page table entry size is 2 bytes. What is the
minimum page size possible such that the entire page table fits well in one page?
Solution-
Now,
According to the above condition, we must have-
(220 / B) bytes <= B bytes
B2 >= 220
B >= 210
Thus, minimum page size possible = 210 bytes or 1 KB.
Problem-06: Consider a single level paging scheme. The virtual address space is 16 GB and page table entry size is 4 bytes.
What is the minimum page size possible such that the entire page table fits well in one page?
Solution-For page table, to fit well in one page, we must have-
Page table size <= Page size
Let page size = B bytes.
Number of Pages of Process-
Number of pages the process is divided
= Process size / Page size
= 16 GB / B bytes
= 234 / B
Page Table Size-
Page table size
= Number of entries in the page table x Page table entry size
= Number of pages the process is divided x Page table entry size
= (234 / B) x 4 bytes
= (236 / B) bytes
Now, According to the above condition, we must have-
(236 / B) bytes <= B bytes
B2 >= 236
B >= 218
Thus, minimum page size possible = 218 bytes or 256 KB.
Translation Lookaside Buffer-
Translation Lookaside Buffer (TLB) is a solution that tries to reduce the effective access time.
Being a hardware, the access time of TLB is very less as compared to the main memory.
Structure- Translation Lookaside Buffer (TLB) consists of two columns-
Page Number
Frame Number
The following flowchart illustrates the above steps of translating logical address into physical address-
Important Points-
Point-01:
Unlike page table, there exists only one TLB in the system.
So, whenever context switching occurs, the entire content of TLB is flushed and deleted.
TLB is then again updated with the currently running process.
Point-02:
When a new process gets scheduled-
Initially, TLB is empty. So, TLB misses are frequent.
With every access from the page table, TLB is updated.
After some time, TLB hits increases and TLB misses reduces.
Point-03:
The time taken to update TLB after getting the frame number from the page table is negligible.
Also, TLB is updated in parallel while fetching the word from the main memory.
Advantages-The advantages of using TLB are-
TLB reduces the effective access time.
Only one memory access is required when TLB hit occurs.
Disadvantages-A major disadvantage of using TLB is-
After some time of running the process, when TLB hits increases and process starts to run smoothly, a context
switching occurs.
The entire content of the TLB is flushed.
Then, TLB is again updated with the currently running process.
This happens again and again.
Other disadvantages are-
TLB can hold the data of only one process at a time.
When context switches occur frequently, the performance of TLB degrades due to low hit ratio.
As it is a special hardware, it involves additional cost.
Effective Access Time
In a single level paging using TLB, the effective access time is given as-
This formula is valid only when there is single level paging and there are no page faults.
Multilevel paging is a paging scheme where there exists a hierarchy of page tables.
Inner page table keeps track of the frames storing the pages of process.
Inner Page table size
= Number of entries in inner page table x Page table entry size
= Number of pages the process is divided x Number of bits in frame number
= 220 x 32 bits
= 220 x 4 bytes
= 4 MB
Now, these 210 pages of inner page table are stored in different frames of the main memory.
Outer page table is required to keep track of the frames storing the pages of inner page table.
Outer Page table size
= Number of entries in outer page table x Page table entry size
= Number of pages the inner page table is divided x Number of bits in frame number
= 210 x 32 bits
= 210 x 4 bytes
= 4 KB
Problem-
Consider a system using multilevel paging scheme. The page size is 16 KB. The memory is byte addressable and virtual
address is 48 bits long. The page table entry size is 4 bytes.
Find-
1. How many levels of page table will be required?
2. Give the divided physical address and virtual address.
Solution-
Given-
Virtual Address = 48 bits
Page size = 16 KB
Page table entry size = 4 bytes
We have,
Page table entry size
= 4 bytes
= 32 bits
Thus, Number of bits in frame number = 32 bits
We have,
Page size
= 16 KB
= 214 B
Thus, Number of bits in page offset = 14 bits
Alternatively,
Number of bits in page offset
= Number of bits in physical address – Number of bits in frame number
= 46 bits – 32 bits
= 14 bits
Process Size-
Inner page table keeps track of the frames storing the pages of process.
Inner Page table size
= Number of entries in inner page table x Page table entry size
= Number of pages the process is divided x Page table entry size
= 234 x 4 bytes
= 236 bytes
= 64 GB
Now, these 222 pages of inner page table are stored in different frames of the main memory.
Number of Bits Required to Search an Entry in One Page of Inner Page Table-
Outer page table-1 is required to keep track of the frames storing the pages of inner page table.
Outer Page table-1 size
= Number of entries in outer page table-1 x Page table entry size
= Number of pages the inner page table is divided x Page table entry size
= 222 x 4 bytes
= 16 MB
Now, these 210 pages of outer page table-1 are stored in different frames of the main memory.
Number of Bits Required to Search an Entry in One Page of Outer Page Table-1
Outer page table-2 is required to keep track of the frames storing the pages of outer page table-1.
Outer Page table-2 size
= Number of entries in outer page table-2 x Page table entry size
= Number of pages the outer page table-1 is divided x Page table entry size
= 210 x 4 bytes
= 4 KB
At any level, the page table entry size of any page table will always be same because each entry points to the frame number.
When there is only one level of paging, there is only one page table whose size is less than or equal to page size.
All the page tables are completely filled except possibly the last page.
Problem-01:
Consider a system using multilevel paging scheme. The page size is 1 MB. The memory is byte addressable and virtual address
is 64 bits long. The page table entry size is 4 bytes.
Find-
1. How many levels of page table will be required?
2. Give the divided physical address and virtual address.
Solution-
Given-
Virtual Address = 64 bits
Page size = 1 MB
Page table entry size = 4 bytes
We have,
Page table entry size
= 4 bytes
= 32 bits
Thus, Number of bits in frame number = 32 bits
We have,
Page size
= 1 MB
= 220 B
Thus, Number of bits in page offset = 20 bits
Alternatively,
Number of bits in page offset
= Number of bits in physical address – Number of bits in frame number
= 52 bits – 32 bits
= 20 bits
Process Size-
Inner page table keeps track of the frames storing the pages of process.
Inner page table size
= Number of entries in inner page table x Page table entry size
= Number of pages the process is divided x Page table entry size
= 244 x 4 bytes
= 246 bytes
Now, these 226 pages of inner page table are stored in different frames of the main memory.
Number of Bits Required to Search an Entry in One Page of Inner Page Table-
Outer page table-1 is required to keep track of the frames storing the pages of inner page table.
Outer page table-1 size
= Number of entries in outer page table-1 x Page table entry size
= Number of pages the inner page table is divided x Page table entry size
= 226 x 4 bytes
= 228 bytes
= 256 MB
Now, these 256 pages of outer page table-1 are stored in different frames of the main memory.
Number of Bits Required to Search an Entry in One Page of Outer Page Table-1
Outer page table-2 is required to keep track of the frames storing the pages of outer page table-1.
Outer page table-2 size
= Number of entries in outer page table-2 x Page table entry size
= Number of pages the outer page table-1 is divided x Page table entry size
= 256 x 4 bytes
= 1 KB
Now, we can observe-
The size of outer page table-2 is less than the frame size (16 KB).
Thus, outer page table-2 can be stored in a single frame.
In fact, outer page table-2 will not completely occupy one frame and some space will remain vacant.
So, for given system, we will have three levels of page table.
Page Table Base Register (PTBR) will store the base address of the outer page table-2.
Number of Bits Required to Search an Entry in Outer Page Table-2
Outer page table-2 contains 256 = 28 entries.
Thus,
Number of bits required to search a particular entry in outer page table-2 = 8 bits
Problem-02:Consider a system using multilevel paging scheme. The page size is 1 GB. The memory is byte addressable and
virtual address is 72 bits long. The page table entry size is 4 bytes.
Find-
1. How many levels of page table will be required?
2. Give the divided physical address and virtual address.
Solution Given-
Virtual Address = 72 bits
Page size = 1 GB
Page table entry size = 4 bytes
Number of Bits in Frame Number
We have,
Page table entry size
= 4 bytes
= 32 bits
Thus, Number of bits in frame number = 32 bits
Number of Frames in Main Memory-
We have, Number of bits in frame number = 32 bits
Thus,
Number of frames in main memory
= 232 frames
Size of Main Memory-
Size of main memory
= Total number of frames x Frame size
= 232 x 1 GB
= 262 B
Thus, Number of bits in physical address = 62 bits
Number of Bits in Page Offset
We have,
Page size
= 1 GB
= 230 B
Thus, Number of bits in page offset = 30 bits
Alternatively,
Number of bits in page offset
= Number of bits in physical address – Number of bits in frame number
= 62 bits – 32 bits
= 30 bits
Process Size-
Number of bits in virtual address = 72 bits
Thus,
Process size
= 272 bytes
Number of Pages of Process-
Number of pages the process is divided
= Process size / Page size
= 272 B / 1 GB
= 272 B / 230 B
= 242 pages
Inner Page Table Size-
Inner page table keeps track of the frames storing the pages of process.
Inner page table size
= Number of entries in inner page table x Page table entry size
= Number of pages the process is divided x Page table entry size
= 242 x 4 bytes
= 244 bytes
Now, we can observe-
The size of inner page table is greater than the frame size (1 GB).
Thus, inner page table can not be stored in a single frame.
So, inner page table has to be divided into pages.
Number of Pages of Inner Page Table-
Number of pages the inner page table is divided
= Inner page table size / Page size
= 244 B / 1 GB
= 244 B / 230 B
= 214 pages
Now, these 214 pages of inner page table are stored in different frames of the main memory.
Number of Page Table Entries in One Page of Inner Page Table-
Number of page table entries in one page of inner page table
= Page size / Page table entry size
= 1 GB / 4 B
= 230 B / 22 B
= 228 entries
Number of Bits Required to Search an Entry in One Page of Inner Page Table-
One page of inner page table contains 228 entries.
Thus,
Number of bits required to search a particular entry in one page of inner page table = 28 bits
Outer Page Table Size-
Outer page table is required to keep track of the frames storing the pages of inner page table.
Outer page table size
= Number of entries in outer page table x Page table entry size
= Number of pages the inner page table is divided x Page table entry size
= 214 x 4 bytes
= 216 bytes
= 64 KB
Now, we can observe-
The size of outer page table is less than the frame size (1 GB).
Thus, outer page table can be stored in a single frame.
In fact, outer page table will not completely occupy one frame and some space will remain vacant.
So, for given system, we will have two levels of page table.
Page Table Base Register (PTBR) will store the base address of the outer page table.
Number of Bits Required to Search an Entry in Outer Page Table-
Outer page table contains 214 entries.
Thus, Number of bits required to search a particular entry in outer page table = 14 bits
The paging system will look like as shown below-
Problem-03:Consider a system using multilevel paging scheme. The page size is 256 MB. The memory is byte addressable
and virtual address is 72 bits long. The page table entry size is 4 bytes.
Find-
How many levels of page table will be required?
Give the divided physical address and virtual address.
Solution Given-
Virtual Address = 72 bits
Page size = 256 MB
Page table entry size = 4 bytes
Solution-Given-
Virtual Address = 72 bits
Page size = 16 MB
Page table entry size = 4 bytes
Number of Bits in Frame Number-
We have,
Page table entry size
= 4 bytes
= 32 bits
Thus, Number of bits in frame number = 32 bits
Number of Frames in Main Memory-
We have, Number of bits in frame number = 32 bits
Thus,
Number of frames in main memory
= 232 frames
If TLB does not contain an entry for the referenced page number, a TLB miss occurs.
In this case, page table is used to get the frame number for the referenced page number.
The valid / invalid bit of the page table entry indicates whether the referenced page is present in the main memory or
not.
Now, two cases are possible-
Case-01: If Valid / Invalid Bit is Set to 1-
If valid / invalid bit is set to 1, it indicates that the page is present in the main memory.
Then, page table is used to get the frame number for the referenced page number.
Then, TLB is updated with the page number and its frame number for future references.
Case-02: If Valid / Invalid Bit is Set to 0-
If valid / invalid bit is set to 0, it indicates that the page is not present in the main memory.
A page fault occurs.
The occurrence of page fault calls the page fault interrupt which executes the page fault handling routine.
Page Fault Handling Routine-
The following sequence of events take place-
The currently running process is stopped and context switching occurs.
The referenced page is copied from the secondary memory to the main memory.
If the main memory is already full, a page is replaced to create a room for the referenced page.
After copying the referenced page successfully in the main memory, the page table is updated.
When the execution of process is resumed, step-02 repeats.
Step-03:
After the frame number is obtained, it is combined with the page offset to generate the physical address.
Then, physical address is used to read the required word from the main memory.
Flowchart-
The following flowchart illustrates the above steps of translating logical address into physical address-
NOTE Only frame is used for page replacement during entire procedure after all the frames get occupied.
From here,
Total number of page faults occurred = 6
In the similar manner as above-
Hit ratio = 0.4 or 40%
Miss ratio = 0.6 or 60%
Problem-03:A system uses 3 page frames for storing process pages in main memory. It uses the Optimal page replacement
policy. Assume that all the page frames are initially empty. What is the total number of page faults that will occur while
processing the page reference string given below-
4 , 7, 6, 1, 7, 6, 1, 2, 7, 2
Also calculate the hit ratio and miss ratio.
Solution-
Total number of references = 10
From here,
Total number of page faults occurred = 5
In the similar manner as above-
Hit ratio = 0.5 or 50%
Miss ratio = 0.5 or 50%
Belady’s Anomaly-
Belady’s Anomaly is the phenomenon of increasing the number of page faults on increasing the number of frames in main
memory.
Following page replacement algorithms suffer from Belady’s Anomaly-
FIFO Page Replacement Algorithm
Random Page Replacement Algorithm
Second Chance Algorithm
NOTE-In the above discussion,
“Algorithms suffer from Belady’s Anomaly” does not mean that always the number of page faults will increase on
increasing the number of frames in main memory.
This unusual behavior is observed only sometimes.
Reason Behind Belady’s Anomaly-
An algorithm suffers from Belady’s Anomaly if and only if it does not follow stack property.
Algorithms that follow stack property are called as stack based algorithms.
Stack based algorithms do not suffer from Belady’s Anomaly.
This is because these algorithms assign priority to a page for replacement that is independent of the number of frames
in the main memory.
Examples-Following page replacement algorithms are stack based algorithms-
1. LRU Page Replacement Algorithm
2. Optimal Page Replacement Algorithm
Hence, they do not suffer from Belady’s Anomaly.
Stack Property-
Consider-
Initially, we had ‘m’ number of frames in the main memory.
Now, the number of frames in the main memory is increased to ‘m+1’.
According to stack property-
At each stage, the set of pages that were present in the main memory when number of frames is ‘m’ will be
compulsorily present in the corresponding stages in main memory when the number of frames is increased to ‘m+1’.
The following illustrations explain it clearly.
Illustration-01: For Optimal Page Replacement Algorithm-
Consider the reference string is-
0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
Now, observe the following two cases-
Case-01: When frame size = 3
Example-
Here,
Limit indicates the length or size of the segment.
Base indicates the base address or starting address of the segment in the main memory.
In accordance to the above segment table, the segments are stored in the main memory as-
Segment
Base Length
No.
0 1219 700
1 2300 14
2 90 100
3 1327 580
4 1952 96
Which of the following logical address will produce trap addressing error?
1. 0, 430
2. 1, 11
3. 2, 100
4. 3, 425
5. 4, 95
Calculate the physical address if no trap is produced.
Solution-
In a segmentation scheme, the generated logical address consists of two parts-
Segment Number
Segment Offset
We know-
Segment Offset must always lie in the range [0, limit-1].
If segment offset becomes greater than or equal to the limit of segment, then trap addressing error is produced.
Option-A: 0, 430- Here,
Segment Number = 0
Segment Offset = 430
We have,
In the segment table, limit of segment-0 is 700.
Thus, segment offset must always lie in the range = [0, 700-1] = [0, 699]
Now,
Since generated segment offset lies in the above range, so request generated is valid.
Therefore, no trap will be produced.
Physical Address = 1219 + 430 = 1649
Option-B: 1, 11-
Here,
Segment Number = 1
Segment Offset = 11
We have,
In the segment table, limit of segment-1 is 14.
Thus, segment offset must always lie in the range = [0, 14-1] = [0, 13]
Now,
Since generated segment offset lies in the above range, so request generated is valid.
Therefore, no trap will be produced.
Physical Address = 2300 + 11 = 2311
Option-C: 2, 100-
Here,
Segment Number = 2
Segment Offset = 100
We have,
In the segment table, limit of segment-2 is 100.
Thus, segment offset must always lie in the range = [0, 100-1] = [0, 99]
Now,
Since generated segment offset does not lie in the above range, so request generated is invalid.
Therefore, trap will be produced.
Option-D: 3, 425-
Here,
Segment Number = 3
Segment Offset = 425
We have,
In the segment table, limit of segment-3 is 580.
Thus, segment offset must always lie in the range = [0, 580-1] = [0, 579]
Now,
Since generated segment offset lies in the above range, so request generated is valid.
Therefore, no trap will be produced.
Physical Address = 1327 + 425 = 1752
Option-E: 4, 95-
Here,
Segment Number = 4
Segment Offset = 95
We have,
In the segment table, limit of segment-4 is 96.
Thus, segment offset must always lie in the range = [0, 96-1] = [0, 95]
Now,
Since generated segment offset lies in the above range, so request generated is valid.
Therefore, no trap will be produced.
Physical Address = 1952 + 95 = 2047
Thus, Option-(C) is correct.
Segmented Paging-
Segmented paging is a scheme that implements the combination of segmentation and paging.
Working-
In segmented paging,
Process is first divided into segments and then each segment is divided into pages.
These pages are then stored in the frames of main memory.
A page table exists for each segment that keeps track of the frames storing the pages of that segment.
Each page table occupies one frame in the main memory.
Number of entries in the page table of a segment = Number of pages that segment is divided.
A segment table exists that keeps track of the frames storing the page tables of segments.
Number of entries in the segment table of a process = Number of segments that process is divided.
The base address of the segment table is stored in the segment table base register.
Translating Logical Address into Physical Address-
CPU always generates a logical address.
A physical address is needed to access the main memory.
Following steps are followed to translate logical address into physical address-
Step-01:
CPU generates a logical address consisting of three parts-
Segment Number
Page Number
Page Offset
Segment Number specifies the specific segment from which CPU wants to reads the data.
Page Number specifies the specific page of that segment from which CPU wants to read the data.
Page Offset specifies the specific word on that page that CPU wants to read.
Step-02:
For the generated segment number, corresponding entry is located in the segment table.
Segment table provides the frame number of the frame storing the page table of the referred segment.
The frame containing the page table is located.
Step-03:
For the generated page number, corresponding entry is located in the page table.
Page table provides the frame number of the frame storing the required page of the referred segment.
The frame containing the required page is located.
Step-04:
The frame number combined with the page offset forms the required physical address.
For the generated page offset, corresponding word is located in the page and read.
Diagram-
The following diagram illustrates the above steps of translating logical address into physical address-