Professional Documents
Culture Documents
Virtual To Real Mapping
Virtual To Real Mapping
Virtual To Real Mapping
Most significant 12 bits of users 32-bit virtual address define the segment number.
It gives an entry in segment table that is contained in memory.
This segment table entry contains a base address and a bound for the particular
segment identified by the virtual address.
32 bit gives 4 GB of Virtual address space, Upper 12 bits give 4096 (1024*4) user
segments of 1 MB each.
• There are 256 pages (28) (represented by upper 8 bits of these 20 bits) of size
4096 bytes each.
Each user has an ID, given to it by the system which acts as an overall base for
that users’ address space
The user ID defines a base register, pointed to by the PSW (processor status word,
it tells if previous arithmetic operation produced a positive, negative or zero
result), which defines the starting point of segment table belonging to this
particular user
Real memory is divided into page frames which are the same size as the virtual
pages (4096 Bytes) •When a page is needed during the running of a program, it is
copied into a page frame in real memory. •The process of moving program pages
to and from real memory is called paging. Any page can go into any page frame.
The user ID, Virtual Segment information and Virtual Page information is used to
access TLB and if entry is found there (Translation done earlier) the Physical
address bits are available immediately (1 Cycle).
If the desired page is not in memory, A page fault condition is generated and
Operating system is interrupted to load the desired page from disc to any
available frame in main memory.
Alternate answer
Simple virtual to real mapping using 32-bit process effective address is shown in
diagram.
Each user has Id, an identifier given to it by the system that acts as overall base
for that user’s address space. User ID defines base register which is pointed to by
PSW
User ID contains base addresss that defines starting point of segment table
belonging to particular users.
Usually, the tables that perform address translation are in memory and
mechanism for translation that helps to speed up the process is called is called
translation lookaside buffer (TLB).
TLB is simple register system usually containing 64 to 256 entries. Many bits of
virtual address are used as address into this table.
Entry in TLB table contains real address. Address in memory as well as other bits of
virtual address are mapped to this particular location.
Since multiple virtual address map into same TLB location, references may
occasionally fail to be properly translated, shown by invalid comparison.
This causes TLB fault which requires an access to each of the tables in memory
and the formation of correct virtual-to-real translation for particular virtual
address.