Consider a system using paging and segmentation. The virtual address s...
Explanation:
To determine the number of bits in the virtual address that specify the entire virtual address, we need to consider the size of the virtual address space and the page size.
Given:
- The virtual address space consists of up to 8 segments, each of length 229 bytes.
- The hardware pages each segment into 28 byte pages.
To calculate the size of the virtual address space, we can use the formula:
Virtual address space size = (number of segments) x (segment size)
= 8 x 229 bytes
= 1832 bytes
Since each segment is divided into 28 byte pages, the number of pages in each segment is:
Number of pages = (segment size) / (page size)
= 229 bytes / 28 bytes
= 8.18 pages
Since we cannot have a fractional number of pages, we round this up to 9 pages per segment.
Therefore, the total number of pages in the virtual address space is:
Total number of pages = (number of segments) x (number of pages per segment)
= 8 x 9
= 72 pages
Since each page is 28 bytes, the size of the page table is:
Page table size = (number of pages) x (page table entry size)
= 72 x 4 bytes
= 288 bytes
Now, we need to determine the number of bits required to address the entire virtual address space. We can do this by finding the smallest power of 2 that is greater than or equal to the virtual address space size:
2^11 = 2048
2^12 = 4096
Since the virtual address space size is between 2048 and 4096, we need at least 12 bits to address the entire virtual address space.
Therefore, the correct answer is option (c) 32 bits.