<< Chapter < Page | Chapter >> Page > |
System 370 example: 24-bit virtual address space, 4 bits of segment number, 8 bits of page number, and 12 bits of offset. Segmenttable contains real address of page table along with the length of the page table (a sort of bounds register for the segment). Page table entries are only12 bits, real addresses are 24 bits.
Pages eliminate external fragmentation, and make it possible for segments to grow without any reshuffling.
If page size is small compared to most segments, then internal fragmentation is not too bad.
The user is not given access to the paging tables.
If translation tables are kept in main memory, overheads could be very high: 1 or 2 overhead references for every realreference.
Another example: VAX.
In current systems, you will see three and even four-level schemes to handle 64-bit address spaces.
Problem with segmentation and paging: extra memory references to access translation tables can slow programs down by a factor oftwo or three. Too many entries in translation tables to keep them all loaded in fast processor memory.
We will re-introduce fundamental concept of locality: at any given time a process is only using a few pages or segments.
Solution: Translation Lookaside Buffer (TLB). A translation buffer is used to store a few of the translation table entries. Itis very fast, but only remembers a small number of entries. On each memory reference:
TLB Organization: Show picture of black box. Virtual page number goes in, physical page location comes out. Similar to acache, usually direct mapped.
TLB is just a memory with some comparators. Typical size of memory: 128 entries. Each entry holds a virtual page number and thecorresponding physical page number. How can memory be organized to find an entry quickly?
Notification Switch
Would you like to follow the 'Operating systems' conversation and receive update notifications?