Virtual Memory Project in C
Project/addresses.txt
16916 62493 30198 53683 40185 28781 24462 48399 64815 18295 12218 22760 57982 27966 54894 38929 32865 64243 2315 64454 55041 18633 14557 61006 62615 7591 64747 6727 32315 60645 6308 45688 969 40891 49294 41118 21395 6091 32541 17665 3784 28718 59240 40178 60086 42252 44770 22514 3067 15757 31649 10842 43765 33405 44954 56657 5003 50227 19358 36529 10392 58882 5129 58554 58584 27444 58982 51476 6796 21311 30705 28964 41003 20259 57857 63258 36374 692 43121 48128 34561 49213 36922 59162 50552 17866 18145 3884 54388 42932 46919 58892 8620 38336 64357 23387 42632 15913 15679 22501 37540 5527 63921 62716 32874 64390 63101 61802 19648 29031 44981 28092 9448 44744 61496 31453 60746 12199 62255 21793 26544 14964 41462 56089 52038 47982 59484 50924 6942 34998 27069 51926 60645 43181 10559 4664 28578 59516 38912 63562 64846 62938 27194 28804 61703 10998 6596 37721 43430 22692 62971 47125 52521 34646 32889 13055 65416 62869 57314 12659 14052 32956 49273 50352 49737 15555 47475 15328 34621 51365 32820 48855 12224 2035 60539 14595 13853 24143 15216 8113 22640 32978 39151 19520 58141 63959 53040 55842 585 51229 64181 54879 28210 10268 15395 12884 2149 53483 59606 14981 36672 23197 36518 13361 19810 25955 62678 26021 29409 38111 58573 56840 41306 54426 3617 50652 41452 20241 31723 53747 28550 23402 21205 56181 57470 39933 34964 24781 41747 62564 58461 20858 49301 40572 23840 35278 62905 56650 11149 38920 23430 57592 3080 6677 50704 51883 62799 20188 1245 12220 17602 28609 42694 29826 13827 27336 53343 11533 41713 33890 4894 57599 3870 58622 29780 62553 2303 51915 6251 38107 59325 61295 26699 51188 59519 7345 20325 39633 1562 7580 8170 62256 35823 27790 13191 9772 7477 44455 59546 49347 36539 12453 49640 28290 44817 8565 16399 41934 45457 33856 19498 17661 63829 42034 28928 30711 8800 52335 38775 52704 24380 19602 57998 2919 8362 17884 45737 47894 59667 10385 52782 64416 40946 16778 27159 24324 32450 9108 65305 19575 11117 65170 58013 61676 63510 17458 54675 1713 55105 65321 45278 26256 64198 29441 1928 39425 32000 28549 46295 22772 58228 63525 32602 46195 55849 46454 7487 33879 42004 8599 18641 49015 26830 34754 14668 38362 38791 4171 45975 14623 62393 64658 10963 9058 51031 32425 45483 44611 63664 54920 7663 56480 1489 28438 65449 12441 58530 63570 26251 15972 35826 5491 54253 49655 5868 20163 51079 21398 32756 64196 43218 21583 25086 45515 12893 22914 58969 20094 13730 44059 28931 13533 33134 28483 1220 38174 53502 43328 4970 8090 2661 53903 11025 26627 18117 14505 61528 20423 26962 36392 11365 50882 41668 30497 36216 5619 36983 59557 36663 36436 37057 23585 58791 46666 64475 21615 41090 1771 47513 39338 1390 38772 58149 7196 9123 7491 62616 15436 17491 53656 26449 34935 19864 51388 15155 64775 47969 16315 1342 51185 6043 21398 3273 9370 35463 28205 2351 28999 47699 46870 22311 22124 22427 49344 23224 5514 20504 376 2014 38700 13098 62435 48046 63464 12798 51178 8627 27083 47198 44021 32792 43996 41126 64244 37047 60281 52904 7768 55359 3230 44813 4116 65222 28083 60660 39 328 47868 13009 22378 39304 11171 8079 52879 5123 4356 45745 32952 4657 24142 23319 13607 46304 17677 59691 50967 7817 8545 55297 52954 39720 18455 30349 63270 27156 20614 19372 48689 49386 50584 51936 34705 13653 50077 54518 41482 4169 36118 9584 18490 55420 5708 23506 15391 36368 38976 50406 49236 65035 30120 62551 46809 21687 53839 2098 12364 45366 50437 36675 55382 11846 49127 19900 20554 19219 51483 58090 39074 16060 10447 54169 20634 57555 61210 269 33154 64487 61223 47292 21852 5281 45912 32532 63067 41683 20981 33881 41785 4580 41389 28572 782 30273 62267 17922 63238 3308 26545 44395 39120 21706 7144 30244 3725 54632 30574 8473 12386 41114 57930 15341 15598 59922 18226 48162 41250 1512 2546 41682 322 880 20891 56604 40166 26791 44560 38698 64127 15028 38669 45637 43151 9465 2498 13978 16326 51442 34845 63667 39370 55671 64496 7767 6283 55884 61103 10184 39543 9555 13963 58975 19537 6101 41421 45502 29328 8149 25450 58944 50666 23084 36468 33645 25002 53715 60173 46354 4708 28208 58844 22173 8535 42261 29687 37799 22566 62520 4098 47999 49660 37063 41856 5417 48856 10682 22370 63281 62452 50532 9022 59300 58660 56401 8518 63066 63250 48592 28771 37673 60776 56438 60424 39993 56004 59002 33982 25498 57047 1401 15130 42960 61827 32442 64304 30273 38082 22404 3808 16883 23111 62417 60364 4542 14829 44964 33924 2141 19245 47168 24048 1022 23075 24888 49247 4900 22656 34117 55555 48947 59533 21312 21415 813 19419 1999 20155 21521 13670 19289 58483 41318 16151 13611 21514 13499 45583 49013 64843 63485 38697 59188 24593 57641 36524 56980 36810 6096 11070 60124 37576 15096 45247 32783 58390 60873 23719 24385 22307 17375 15990 20526 25904 42224 9311 7862 3835 30535 65179 57387 63579 4946 9037 61033 55543 50361 6480 14042 21531 39195 37511 23696 27440 28201 23072 7814 6552 43637 35113 34890 61297 45633 61431 46032 18774 62991 28059 35229 51230 14405 52242 43153 2709 47963 36943 54066 10054 43051 11525 17684 41681 27883 56909 45772 27496 46842 38734 28972 59684 11384 21018 2192 18384 13464 31018 62958 30611 1913 18904 26773 55491 21899 64413 47134 23172 7262 12705 7522 58815 34916 3802 58008 1239 63947 381 60734 48769 41938 38025 55099 56691 39530 59003 6029 20920 8077 42633 17443 53570 22833 3782 47758 22136 22427 23867 59968 62166 6972 63684 46388 41942 36524 9323 31114 22345 46463 54671 9214 7257 33150 41565 26214 3595 17932 34660 51961 58634 57990 28848 49920 18351 53669 33996 6741 64098 606 27383 63140 32228 63437 29085 65080 38753 16041 9041 42090 46388 63650 36636 21947 19833 36464 8541 12712 48955 39206 15578 49205 7731 43046 60498 9237 47706 43973 42008 27460 24999 51933 34070 65155 59955 9277 20420 44860 50992 10583 57751 23195 27227 42816 58219 37606 18426 21238 11983 48394 11036 30557 23453 49847 30032 48065 6957 2301 7736 31260 17071 8940 9929 45563 12107
Project/BACKING_STORE.bin
Project/Chp10-VirtualMemoryManager-ProgrammingAssignment.pdf
458 Chapter 9 Chapter 10 in 10E Virtual Memory
Programming Projects
Designing a Virtual Memory Manager
This project consists of writing a program that translates logical to physical addresses for a virtual address space of size 216 = 65,536 bytes. Your program will read from a file containing logical addresses and, using a TLB as well as a page table, will translate each logical address to its corresponding physical address and output the value of the byte stored at the translated physical address. The goal behind this project is to simulate the steps involved in translating logical to physical addresses.
Specifics
Your program will read a file containing several 32-bit integer numbers that represent logical addresses. However, you need only be concerned with 16-bit addresses, so you must mask the rightmost 16 bits of each logical address. These 16 bits are divided into (1) an 8-bit page number and (2) 8-bit page offset. Hence, the addresses are structured as shown in Figure 9.33.
Other specifics include the following:
• 28 entries in the page table • Page size of 28 bytes • 16 entries in the TLB • Frame size of 28 bytes • 256 frames • Physical memory of 65,536 bytes (256 frames × 256-byte frame size)
Additionally, your program need only be concerned with reading logical addresses and translating them to their corresponding physical addresses. You do not need to support writing to the logical address space.
Address Translation
Your program will translate logical to physical addresses using a TLB and page table as outlined in Section 9.3. First, the page number is extracted from the logical address, and the TLB is consulted. In the case of a TLB-hit, the frame number is obtained from the TLB. In the case of a TLB-miss, the page table must be consulted. In the latter case, either the frame number is obtained
offset
078151631
page number
Figure 9.33 Address structure.
Programming Projects 459
page number
0 1 2
15
0 1 2
255
TLB
page table
TLB hit
TLB miss
page 0
page 255
page 1 page 2
frame number
.
.
.
.
.
.
.
.
0 1 2
255
physical memory
frame 0
frame 255
frame 1 frame 2
.
.
.
.
page number
offset
frame number
offset
Figure 9.34 A representation of the address-translation process.
from the page table or a page fault occurs. A visual representation of the address-translation process appears in Figure 9.34.
Handling Page Faults
Your program will implement demand paging as described in Section 10.2. The backing store is represented by the file BACKING STORE.bin, a binary file of size 65,536 bytes. When a page fault occurs, you will read in a 256-byte page from the file BACKING STORE and store it in an available page frame in physical memory. For example, if a logical address with page number 15 resulted in a page fault, your program would read in page 15 from BACKING STORE (remember that pages begin at 0 and are 256 bytes in size) and store it in a page frame in physical memory. Once this frame is stored (and the page table and TLB are updated), subsequent accesses to page 15 will be resolved by either the TLB or the page table.
You will need to treat BACKING STORE.bin as a random-access file so that you can randomly seek to certain positions of the file for reading. We suggest using the standard C library functions for performing I/O, including fopen(), fread(), fseek(), and fclose().
The size of physical memory is the same as the size of the virtual address space—65,536 bytes—so you do not need to be concerned about page replacements during a page fault. Later, we describe a modification to this project using a smaller amount of physical memory; at that point, a page-replacement strategy will be required.
460 Chapter 9 Virtual Memory
Test File
We provide the file addresses.txt, which contains integer values represent- ing logical addresses ranging from 0 − 65535 (the size of the virtual address space). Your program will open this file, read each logical address and translate it to its corresponding physical address, and output the value of the signed byte at the physical address.
How to Begin
First, write a simple program that extracts the page number and offset (based on Figure 9.33) from the following integer numbers:
1, 256, 32768, 32769, 128, 65534, 33153
Perhaps the easiest way to do this is by using the operators for bit-masking and bit-shifting. Once you can correctly establish the page number and offset from an integer number, you are ready to begin.
Initially, we suggest that you bypass the TLB and use only a page table. You can integrate the TLB once your page table is working properly. Remember, address translation can work without a TLB; the TLB just makes it faster. When you are ready to implement the TLB, recall that it has only 16 entries, so you will need to use a replacement strategy when you update a full TLB. You may use either a FIFO or an LRU policy for updating your TLB.
How to Run Your Program
Your program should run as follows:
./a.out addresses.txt
Your program will read in the file addresses.txt, which contains 1,000 logical addresses ranging from 0 to 65535. Your program is to translate each logical address to a physical address and determine the contents of the signed byte stored at the correct physical address. (Recall that in the C language, the char data type occupies a byte of storage, so we suggest using char values.)
Your program is to output the following values:
1. The logical address being translated (the integer value being read from addresses.txt).
2. The corresponding physical address (what your program translates the logical address to).
3. The signed byte value stored at the translated physical address.
We also provide the file correct.txt, which contains the correct output values for the file addresses.txt. You should use this file to determine if your program is correctly translating logical to physical addresses.
Statistics
After completion, your program is to report the following statistics:
Bibliographical Notes 461
1. Page-fault rate—The percentage of address references that resulted in page faults.
2. TLB hit rate—The percentage of address references that were resolved in the TLB.
Since the logical addresses in addresses.txt were generated randomly and do not reflect any memory access locality, do not expect to have a high TLB hit rate.
Modifications
This project assumes that physical memory is the same size as the virtual address space. In practice, physical memory is typically much smaller than a virtual address space. A suggested modification is to use a smaller physical address space. We recommend using 128 page frames rather than 256. This change will require modifying your program so that it keeps track of free page frames as well as implementing a page-replacement policy using either FIFO or LRU (Section 10.4).
Bibliographical Notes
Demand paging was first used in the Atlas system, implemented on the Manchester University MUSE computer around 1960 ([Kilburn et al. (1961)]). Another early demand-paging system was MULTICS, implemented on the GE 645 system ([Organick (1972)]). Virtual memory was added to Unix in 1979 [Babaoglu and Joy (1981)]
[Belady et al. (1969)] were the first researchers to observe that the FIFO replacement strategy may produce the anomaly that bears Belady’s name. [Mattson et al. (1970)] demonstrated that stack algorithms are not subject to Belady’s anomaly.
The optimal replacement algorithm was presented by [Belady (1966)] and was proved to be optimal by [Mattson et al. (1970)]. Belady’s optimal algorithm is for a fixed allocation; [Prieve and Fabry (1976)] presented an optimal algorithm for situations in which the allocation can vary.
The enhanced clock algorithm was discussed by [Carr and Hennessy (1981)].
The working-set model was developed by [Denning (1968)]. Discussions concerning the working-set model were presented by [Denning (1980)].
The scheme for monitoring the page-fault rate was developed by [Wulf (1969)], who successfully applied this technique to the Burroughs B5500 computer system.
Buddy system memory allocators were described in [Knowlton (1965)], [Peterson and Norman (1977)], and [Purdom, Jr. and Stigler (1970)]. [Bonwick (1994)] discussed the slab allocator, and [Bonwick and Adams (2001)] extended the discussion to multiple processors. Other memory-fitting algorithms can be found in [Stephenson (1983)], [Bays (1977)], and [Brent (1989)]. A survey of memory-allocation strategies can be found in [Wilson et al. (1995)].
[Solomon and Russinovich (2000)] and [Russinovich and Solomon (2005)] described how Windows implements virtual memory. [McDougall and Mauro
Project/ExpectedOutput.txt
Virtual address: 16916 Physical address: 20, Value: 0 Virtual address: 62493 Physical address: 285, Value: 0 Virtual address: 30198 Physical address: 758, Value: 29 Virtual address: 53683 Physical address: 947, Value: 108 Virtual address: 40185 Physical address: 1273, Value: 0 Virtual address: 28781 Physical address: 1389, Value: 0 Virtual address: 24462 Physical address: 1678, Value: 23 Virtual address: 48399 Physical address: 1807, Value: 67 Virtual address: 64815 Physical address: 2095, Value: 75 Virtual address: 18295 Physical address: 2423, Value: -35 Virtual address: 12218 Physical address: 2746, Value: 11 Virtual address: 22760 Physical address: 3048, Value: 0 Virtual address: 57982 Physical address: 3198, Value: 56 Virtual address: 27966 Physical address: 3390, Value: 27 Virtual address: 54894 Physical address: 3694, Value: 53 Virtual address: 38929 Physical address: 3857, Value: 0 Virtual address: 32865 Physical address: 4193, Value: 0 Virtual address: 64243 Physical address: 4595, Value: -68 Virtual address: 2315 Physical address: 4619, Value: 66 Virtual address: 64454 Physical address: 5062, Value: 62 Virtual address: 55041 Physical address: 5121, Value: 0 Virtual address: 18633 Physical address: 5577, Value: 0 Virtual address: 14557 Physical address: 5853, Value: 0 Virtual address: 61006 Physical address: 5966, Value: 59 Virtual address: 62615 Physical address: 407, Value: 37 Virtual address: 7591 Physical address: 6311, Value: 105 Virtual address: 64747 Physical address: 6635, Value: 58 Virtual address: 6727 Physical address: 6727, Value: -111 Virtual address: 32315 Physical address: 6971, Value: -114 Virtual address: 60645 Physical address: 7397, Value: 0 Virtual address: 6308 Physical address: 7588, Value: 0 Virtual address: 45688 Physical address: 7800, Value: 0 Virtual address: 969 Physical address: 8137, Value: 0 Virtual address: 40891 Physical address: 8379, Value: -18 Virtual address: 49294 Physical address: 8590, Value: 48 Virtual address: 41118 Physical address: 8862, Value: 40 Virtual address: 21395 Physical address: 9107, Value: -28 Virtual address: 6091 Physical address: 9419, Value: -14 Virtual address: 32541 Physical address: 9501, Value: 0 Virtual address: 17665 Physical address: 9729, Value: 0 Virtual address: 3784 Physical address: 10184, Value: 0 Virtual address: 28718 Physical address: 1326, Value: 28 Virtual address: 59240 Physical address: 10344, Value: 0 Virtual address: 40178 Physical address: 1266, Value: 39 Virtual address: 60086 Physical address: 10678, Value: 58 Virtual address: 42252 Physical address: 10764, Value: 0 Virtual address: 44770 Physical address: 11234, Value: 43 Virtual address: 22514 Physical address: 11506, Value: 21 Virtual address: 3067 Physical address: 11771, Value: -2 Virtual address: 15757 Physical address: 11917, Value: 0 Virtual address: 31649 Physical address: 12193, Value: 0 Virtual address: 10842 Physical address: 12378, Value: 10 Virtual address: 43765 Physical address: 12789, Value: 0 Virtual address: 33405 Physical address: 12925, Value: 0 Virtual address: 44954 Physical address: 13210, Value: 43 Virtual address: 56657 Physical address: 13393, Value: 0 Virtual address: 5003 Physical address: 13707, Value: -30 Virtual address: 50227 Physical address: 13875, Value: 12 Virtual address: 19358 Physical address: 14238, Value: 18 Virtual address: 36529 Physical address: 14513, Value: 0 Virtual address: 10392 Physical address: 14744, Value: 0 Virtual address: 58882 Physical address: 14850, Value: 57 Virtual address: 5129 Physical address: 15113, Value: 0 Virtual address: 58554 Physical address: 15546, Value: 57 Virtual address: 58584 Physical address: 15576, Value: 0 Virtual address: 27444 Physical address: 15668, Value: 0 Virtual address: 58982 Physical address: 14950, Value: 57 Virtual address: 51476 Physical address: 15892, Value: 0 Virtual address: 6796 Physical address: 6796, Value: 0 Virtual address: 21311 Physical address: 9023, Value: -49 Virtual address: 30705 Physical address: 16369, Value: 0 Virtual address: 28964 Physical address: 16420, Value: 0 Virtual address: 41003 Physical address: 8747, Value: 10 Virtual address: 20259 Physical address: 16675, Value: -56 Virtual address: 57857 Physical address: 3073, Value: 0 Virtual address: 63258 Physical address: 16922, Value: 61 Virtual address: 36374 Physical address: 14358, Value: 35 Virtual address: 692 Physical address: 17332, Value: 0 Virtual address: 43121 Physical address: 17521, Value: 0 Virtual address: 48128 Physical address: 17664, Value: 0 Virtual address: 34561 Physical address: 17921, Value: 0 Virtual address: 49213 Physical address: 8509, Value: 0 Virtual address: 36922 Physical address: 18234, Value: 36 Virtual address: 59162 Physical address: 10266, Value: 57 Virtual address: 50552 Physical address: 18552, Value: 0 Virtual address: 17866 Physical address: 9930, Value: 17 Virtual address: 18145 Physical address: 18913, Value: 0 Virtual address: 3884 Physical address: 18988, Value: 0 Virtual address: 54388 Physical address: 19316, Value: 0 Virtual address: 42932 Physical address: 19636, Value: 0 Virtual address: 46919 Physical address: 19783, Value: -47 Virtual address: 58892 Physical address: 14860, Value: 0 Virtual address: 8620 Physical address: 20140, Value: 0 Virtual address: 38336 Physical address: 20416, Value: 0 Virtual address: 64357 Physical address: 4965, Value: 0 Virtual address: 23387 Physical address: 20571, Value: -42 Virtual address: 42632 Physical address: 20872, Value: 0 Virtual address: 15913 Physical address: 21033, Value: 0 Virtual address: 15679 Physical address: 11839, Value: 79 Virtual address: 22501 Physical address: 11493, Value: 0 Virtual address: 37540 Physical address: 21412, Value: 0 Virtual address: 5527 Physical address: 21655, Value: 101 Virtual address: 63921 Physical address: 21937, Value: 0 Virtual address: 62716 Physical address: 508, Value: 0 Virtual address: 32874 Physical address: 4202, Value: 32 Virtual address: 64390 Physical address: 4998, Value: 62 Virtual address: 63101 Physical address: 22141, Value: 0 Virtual address: 61802 Physical address: 22378, Value: 60 Virtual address: 19648 Physical address: 22720, Value: 0 Virtual address: 29031 Physical address: 16487, Value: 89 Virtual address: 44981 Physical address: 13237, Value: 0 Virtual address: 28092 Physical address: 3516, Value: 0 Virtual address: 9448 Physical address: 23016, Value: 0 Virtual address: 44744 Physical address: 11208, Value: 0 Virtual address: 61496 Physical address: 23096, Value: 0 Virtual address: 31453 Physical address: 23517, Value: 0 Virtual address: 60746 Physical address: 23626, Value: 59 Virtual address: 12199 Physical address: 2727, Value: -23 Virtual address: 62255 Physical address: 23855, Value: -53 Virtual address: 21793 Physical address: 24097, Value: 0 Virtual address: 26544 Physical address: 24496, Value: 0 Virtual address: 14964 Physical address: 24692, Value: 0 Virtual address: 41462 Physical address: 25078, Value: 40 Virtual address: 56089 Physical address: 25113, Value: 0 Virtual address: 52038 Physical address: 25414, Value: 50 Virtual address: 47982 Physical address: 25710, Value: 46 Virtual address: 59484 Physical address: 25948, Value: 0 Virtual address: 50924 Physical address: 26348, Value: 0 Virtual address: 6942 Physical address: 26398, Value: 6 Virtual address: 34998 Physical address: 26806, Value: 34 Virtual address: 27069 Physical address: 27069, Value: 0 Virtual address: 51926 Physical address: 27350, Value: 50 Virtual address: 60645 Physical address: 7397, Value: 0 Virtual address: 43181 Physical address: 17581, Value: 0 Virtual address: 10559 Physical address: 27455, Value: 79 Virtual address: 4664 Physical address: 27704, Value: 0 Virtual address: 28578 Physical address: 28066, Value: 27 Virtual address: 59516 Physical address: 25980, Value: 0 Virtual address: 38912 Physical address: 3840, Value: 0 Virtual address: 63562 Physical address: 28234, Value: 62 Virtual address: 64846 Physical address: 2126, Value: 63 Virtual address: 62938 Physical address: 28634, Value: 61 Virtual address: 27194 Physical address: 28730, Value: 26 Virtual address: 28804 Physical address: 1412, Value: 0 Virtual address: 61703 Physical address: 22279, Value: 65 Virtual address: 10998 Physical address: 12534, Value: 10 Virtual address: 6596 Physical address: 29124, Value: 0 Virtual address: 37721 Physical address: 29273, Value: 0 Virtual address: 43430 Physical address: 29606, Value: 42 Virtual address: 22692 Physical address: 2980, Value: 0 Virtual address: 62971 Physical address: 28667, Value: 126 Virtual address: 47125 Physical address: 29717, Value: 0 Virtual address: 52521 Physical address: 29993, Value: 0 Virtual address: 34646 Physical address: 18006, Value: 33 Virtual address: 32889 Physical address: 4217, Value: 0 Virtual address: 13055 Physical address: 30463, Value: -65 Virtual address: 65416 Physical address: 30600, Value: 0 Virtual address: 62869 Physical address: 28565, Value: 0 Virtual address: 57314 Physical address: 30946, Value: 55 Virtual address: 12659 Physical address: 31091, Value: 92 Virtual address: 14052 Physical address: 31460, Value: 0 Virtual address: 32956 Physical address: 4284, Value: 0 Virtual address: 49273 Physical address: 8569, Value: 0 Virtual address: 50352 Physical address: 14000, Value: 0 Virtual address: 49737 Physical address: 31561, Value: 0 Virtual address: 15555 Physical address: 31939, Value: 48 Virtual address: 47475 Physical address: 32115, Value: 92 Virtual address: 15328 Physical address: 32480, Value: 0 Virtual address: 34621 Physical address: 17981, Value: 0 Virtual address: 51365 Physical address: 32677, Value: 0 Virtual address: 32820 Physical address: 4148, Value: 0 Virtual address: 48855 Physical address: 215, Value: -75 Virtual address: 12224 Physical address: 2752, Value: 0 Virtual address: 2035 Physical address: 755, Value: -4 Virtual address: 60539 Physical address: 7291, Value: 30 Virtual address: 14595 Physical address: 771, Value: 64 Virtual address: 13853 Physical address: 31261, Value: 0 Virtual address: 24143 Physical address: 1615, Value: -109 Virtual address: 15216 Physical address: 32368, Value: 0 Virtual address: 8113 Physical address: 1969, Value: 0 Virtual address: 22640 Physical address: 2928, Value: 0 Virtual address: 32978 Physical address: 4306, Value: 32 Virtual address: 39151 Physical address: 4079, Value: 59 Virtual address: 19520 Physical address: 22592, Value: 0 Virtual address: 58141 Physical address: 2333, Value: 0 Virtual address: 63959 Physical address: 21975, Value: 117 Virtual address: 53040 Physical address: 3632, Value: 0 Virtual address: 55842 Physical address: 4386, Value: 54 Virtual address: 585 Physical address: 17225, Value: 0 Virtual address: 51229 Physical address: 32541, Value: 0 Virtual address: 64181 Physical address: 4789, Value: 0 Virtual address: 54879 Physical address: 5215, Value: -105 Virtual address: 28210 Physical address: 5426, Value: 27 Virtual address: 10268 Physical address: 14620, Value: 0 Virtual address: 15395 Physical address: 31779, Value: 8 Virtual address: 12884 Physical address: 30292, Value: 0 Virtual address: 2149 Physical address: 5733, Value: 0 Virtual address: 53483 Physical address: 6123, Value: 58 Virtual address: 59606 Physical address: 26070, Value: 58 Virtual address: 14981 Physical address: 24709, Value: 0 Virtual address: 36672 Physical address: 6208, Value: 0 Virtual address: 23197 Physical address: 6557, Value: 0 Virtual address: 36518 Physical address: 14502, Value: 35 Virtual address: 13361 Physical address: 6961, Value: 0 Virtual address: 19810 Physical address: 7522, Value: 19 Virtual address: 25955 Physical address: 7779, Value: 88 Virtual address: 62678 Physical address: 470, Value: 61 Virtual address: 26021 Physical address: 7845, Value: 0 Virtual address: 29409 Physical address: 8161, Value: 0 Virtual address: 38111 Physical address: 8415, Value: 55 Virtual address: 58573 Physical address: 15565, Value: 0 Virtual address: 56840 Physical address: 9224, Value: 0 Virtual address: 41306 Physical address: 24922, Value: 40 Virtual address: 54426 Physical address: 19354, Value: 53 Virtual address: 3617 Physical address: 10017, Value: 0 Virtual address: 50652 Physical address: 18652, Value: 0 Virtual address: 41452 Physical address: 25068, Value: 0 Virtual address: 20241 Physical address: 16657, Value: 0 Virtual address: 31723 Physical address: 12267, Value: -6 Virtual address: 53747 Physical address: 9715, Value: 124 Virtual address: 28550 Physical address: 28038, Value: 27 Virtual address: 23402 Physical address: 20586, Value: 22 Virtual address: 21205 Physical address: 1237, Value: 0 Virtual address: 56181 Physical address: 25205, Value: 0 Virtual address: 57470 Physical address: 10622, Value: 56 Virtual address: 39933 Physical address: 11005, Value: 0 Virtual address: 34964 Physical address: 26772, Value: 0 Virtual address: 24781 Physical address: 11725, Value: 0 Virtual address: 41747 Physical address: 12563, Value: -60 Virtual address: 62564 Physical address: 356, Value: 0 Virtual address: 58461 Physical address: 15453, Value: 0 Virtual address: 20858 Physical address: 12922, Value: 20 Virtual address: 49301 Physical address: 8597, Value: 0 Virtual address: 40572 Physical address: 13436, Value: 0 Virtual address: 23840 Physical address: 13600, Value: 0 Virtual address: 35278 Physical address: 14286, Value: 34 Virtual address: 62905 Physical address: 28601, Value: 0 Virtual address: 56650 Physical address: 15178, Value: 55 Virtual address: 11149 Physical address: 15757, Value: 0 Virtual address: 38920 Physical address: 3848, Value: 0 Virtual address: 23430 Physical address: 20614, Value: 22 Virtual address: 57592 Physical address: 10744, Value: 0 Virtual address: 3080 Physical address: 15880, Value: 0 Virtual address: 6677 Physical address: 6677, Value: 0 Virtual address: 50704 Physical address: 26128, Value: 0 Virtual address: 51883 Physical address: 27307, Value: -86 Virtual address: 62799 Physical address: 28495, Value: 83 Virtual address: 20188 Physical address: 9180, Value: 0 Virtual address: 1245 Physical address: 16349, Value: 0 Virtual address: 12220 Physical address: 2748, Value: 0 Virtual address: 17602 Physical address: 8898, Value: 17 Virtual address: 28609 Physical address: 28097, Value: 0 Virtual address: 42694 Physical address: 20934, Value: 41 Virtual address: 29826 Physical address: 3202, Value: 29 Virtual address: 13827 Physical address: 31235, Value: -128 Virtual address: 27336 Physical address: 28872, Value: 0 Virtual address: 53343 Physical address: 5983, Value: 23 Virtual address: 11533 Physical address: 16909, Value: 0 Virtual address: 41713 Physical address: 17905, Value: 0 Virtual address: 33890 Physical address: 18274, Value: 33 Virtual address: 4894 Physical address: 10270, Value: 4 Virtual address: 57599 Physical address: 10751, Value: 63 Virtual address: 3870 Physical address: 18974, Value: 3 Virtual address: 58622 Physical address: 15614, Value: 57 Virtual address: 29780 Physical address: 3156, Value: 0 Virtual address: 62553 Physical address: 345, Value: 0 Virtual address: 2303 Physical address: 5887, Value: 63 Virtual address: 51915 Physical address: 27339, Value: -78 Virtual address: 6251 Physical address: 9835, Value: 26 Virtual address: 38107 Physical address: 8411, Value: 54 Virtual address: 59325 Physical address: 18877, Value: 0 Virtual address: 61295 Physical address: 19567, Value: -37 Virtual address: 26699 Physical address: 19787, Value: 18 Virtual address: 51188 Physical address: 15092, Value: 0 Virtual address: 59519 Physical address: 25983, Value: 31 Virtual address: 7345 Physical address: 20145, Value: 0 Virtual address: 20325 Physical address: 16741, Value: 0 Virtual address: 39633 Physical address: 20433, Value: 0 Virtual address: 1562 Physical address: 21018, Value: 1 Virtual address: 7580 Physical address: 11932, Value: 0 Virtual address: 8170 Physical address: 2026, Value: 7 Virtual address: 62256 Physical address: 23856, Value: 0 Virtual address: 35823 Physical address: 11503, Value: -5 Virtual address: 27790 Physical address: 21390, Value: 27 Virtual address: 13191 Physical address: 21639, Value: -31 Virtual address: 9772 Physical address: 4908, Value: 0 Virtual address: 7477 Physical address: 11829, Value: 0 Virtual address: 44455 Physical address: 22183, Value: 105 Virtual address: 59546 Physical address: 26010, Value: 58 Virtual address: 49347 Physical address: 8643, Value: 48 Virtual address: 36539 Physical address: 14523, Value: -82 Virtual address: 12453 Physical address: 16549, Value: 0 Virtual address: 49640 Physical address: 13288, Value: 0 Virtual address: 28290 Physical address: 5506, Value: 27 Virtual address: 44817 Physical address: 3345, Value: 0 Virtual address: 8565 Physical address: 22901, Value: 0 Virtual address: 16399 Physical address: 11023, Value: 3 Virtual address: 41934 Physical address: 12750, Value: 40 Virtual address: 45457 Physical address: 23185, Value: 0 Virtual address: 33856 Physical address: 18240, Value: 0 Virtual address: 19498 Physical address: 22570, Value: 19 Virtual address: 17661 Physical address: 8957, Value: 0 Virtual address: 63829 Physical address: 21845, Value: 0 Virtual address: 42034 Physical address: 23346, Value: 41 Virtual address: 28928 Physical address: 23552, Value: 0 Virtual address: 30711 Physical address: 24311, Value: -3 Virtual address: 8800 Physical address: 24416, Value: 0 Virtual address: 52335 Physical address: 25455, Value: 27 Virtual address: 38775 Physical address: 25719, Value: -35 Virtual address: 52704 Physical address: 30176, Value: 0 Virtual address: 24380 Physical address: 26428, Value: 0 Virtual address: 19602 Physical address: 22674, Value: 19 Virtual address: 57998 Physical address: 27022, Value: 56 Virtual address: 2919 Physical address: 17511, Value: -39 Virtual address: 8362 Physical address: 27562, Value: 8 Virtual address: 17884 Physical address: 27868, Value: 0 Virtual address: 45737 Physical address: 28329, Value: 0 Virtual address: 47894 Physical address: 2070, Value: 46 Virtual address: 59667 Physical address: 1299, Value: 68 Virtual address: 10385 Physical address: 14737, Value: 0 Virtual address: 52782 Physical address: 22318, Value: 51 Virtual address: 64416 Physical address: 12448, Value: 0 Virtual address: 40946 Physical address: 29170, Value: 39 Virtual address: 16778 Physical address: 29322, Value: 16 Virtual address: 27159 Physical address: 28695, Value: -123 Virtual address: 24324 Physical address: 26372, Value: 0 Virtual address: 32450 Physical address: 29634, Value: 31 Virtual address: 9108 Physical address: 29844, Value: 0 Virtual address: 65305 Physical address: 30489, Value: 0 Virtual address: 19575 Physical address: 22647, Value: 29 Virtual address: 11117 Physical address: 15725, Value: 0 Virtual address: 65170 Physical address: 30866, Value: 63 Virtual address: 58013 Physical address: 27037, Value: 0 Virtual address: 61676 Physical address: 31212, Value: 0 Virtual address: 63510 Physical address: 13846, Value: 62 Virtual address: 17458 Physical address: 8754, Value: 17 Virtual address: 54675 Physical address: 31635, Value: 100 Virtual address: 1713 Physical address: 21169, Value: 0 Virtual address: 55105 Physical address: 32065, Value: 0 Virtual address: 65321 Physical address: 30505, Value: 0 Virtual address: 45278 Physical address: 18142, Value: 44 Virtual address: 26256 Physical address: 144, Value: 0 Virtual address: 64198 Physical address: 4806, Value: 62 Virtual address: 29441 Physical address: 513, Value: 0 Virtual address: 1928 Physical address: 7304, Value: 0 Virtual address: 39425 Physical address: 20225, Value: 0 Virtual address: 32000 Physical address: 768, Value: 0 Virtual address: 28549 Physical address: 28037, Value: 0 Virtual address: 46295 Physical address: 1751, Value: 53 Virtual address: 22772 Physical address: 3060, Value: 0 Virtual address: 58228 Physical address: 2420, Value: 0 Virtual address: 63525 Physical address: 13861, Value: 0 Virtual address: 32602 Physical address: 32346, Value: 31 Virtual address: 46195 Physical address: 1651, Value: 28 Virtual address: 55849 Physical address: 4393, Value: 0 Virtual address: 46454 Physical address: 4214, Value: 45 Virtual address: 7487 Physical address: 11839, Value: 79 Virtual address: 33879 Physical address: 18263, Value: 21 Virtual address: 42004 Physical address: 23316, Value: 0 Virtual address: 8599 Physical address: 22935, Value: 101 Virtual address: 18641 Physical address: 3793, Value: 0 Virtual address: 49015 Physical address: 17271, Value: -35 Virtual address: 26830 Physical address: 19918, Value: 26 Virtual address: 34754 Physical address: 32706, Value: 33 Virtual address: 14668 Physical address: 5196, Value: 0 Virtual address: 38362 Physical address: 31962, Value: 37 Virtual address: 38791 Physical address: 25735, Value: -31 Virtual address: 4171 Physical address: 30283, Value: 18 Virtual address: 45975 Physical address: 24727, Value: -27 Virtual address: 14623 Physical address: 5151, Value: 71 Virtual address: 62393 Physical address: 23993, Value: 0 Virtual address: 64658 Physical address: 6290, Value: 63 Virtual address: 10963 Physical address: 6611, Value: -76 Virtual address: 9058 Physical address: 29794, Value: 8 Virtual address: 51031 Physical address: 14935, Value: -43 Virtual address: 32425 Physical address: 29609, Value: 0 Virtual address: 45483 Physical address: 23211, Value: 106 Virtual address: 44611 Physical address: 6979, Value: -112 Virtual address: 63664 Physical address: 14000, Value: 0 Virtual address: 54920 Physical address: 7560, Value: 0 Virtual address: 7663 Physical address: 12015, Value: 123 Virtual address: 56480 Physical address: 7840, Value: 0 Virtual address: 1489 Physical address: 8145, Value: 0 Virtual address: 28438 Physical address: 27926, Value: 27 Virtual address: 65449 Physical address: 30633, Value: 0 Virtual address: 12441 Physical address: 16537, Value: 0 Virtual address: 58530 Physical address: 15522, Value: 57 Virtual address: 63570 Physical address: 13906, Value: 62 Virtual address: 26251 Physical address: 139, Value: -94 Virtual address: 15972 Physical address: 9316, Value: 0 Virtual address: 35826 Physical address: 11506, Value: 34 Virtual address: 5491 Physical address: 19315, Value: 92 Virtual address: 54253 Physical address: 10221, Value: 0 Virtual address: 49655 Physical address: 13303, Value: 125 Virtual address: 5868 Physical address: 18668, Value: 0 Virtual address: 20163 Physical address: 9155, Value: -80 Virtual address: 51079 Physical address: 14983, Value: -31 Virtual address: 21398 Physical address: 24982, Value: 20 Virtual address: 32756 Physical address: 32500, Value: 0 Virtual address: 64196 Physical address: 4804, Value: 0 Virtual address: 43218 Physical address: 12242, Value: 42 Virtual address: 21583 Physical address: 9551, Value: 19 Virtual address: 25086 Physical address: 1278, Value: 24 Virtual address: 45515 Physical address: 23243, Value: 114 Virtual address: 12893 Physical address: 25181, Value: 0 Virtual address: 22914 Physical address: 10882, Value: 22 Virtual address: 58969 Physical address: 26713, Value: 0 Virtual address: 20094 Physical address: 9086, Value: 19 Virtual address: 13730 Physical address: 11682, Value: 13 Virtual address: 44059 Physical address: 12827, Value: 6 Virtual address: 28931 Physical address: 23555, Value: 64 Virtual address: 13533 Physical address: 13533, Value: 0 Virtual address: 33134 Physical address: 13678, Value: 32 Virtual address: 28483 Physical address: 27971, Value: -48 Virtual address: 1220 Physical address: 16324, Value: 0 Virtual address: 38174 Physical address: 31774, Value: 37 Virtual address: 53502 Physical address: 6142, Value: 52 Virtual address: 43328 Physical address: 14144, Value: 0 Virtual address: 4970 Physical address: 10346, Value: 4 Virtual address: 8090 Physical address: 1946, Value: 7 Virtual address: 2661 Physical address: 15205, Value: 0 Virtual address: 53903 Physical address: 3983, Value: -93 Virtual address: 11025 Physical address: 15633, Value: 0 Virtual address: 26627 Physical address: 19715, Value: 0 Virtual address: 18117 Physical address: 20677, Value: 0 Virtual address: 14505 Physical address: 16041, Value: 0 Virtual address: 61528 Physical address: 31064, Value: 0 Virtual address: 20423 Physical address: 16839, Value: -15 Virtual address: 26962 Physical address: 6738, Value: 26 Virtual address: 36392 Physical address: 14376, Value: 0 Virtual address: 11365 Physical address: 26213, Value: 0 Virtual address: 50882 Physical address: 28610, Value: 49 Virtual address: 41668 Physical address: 17860, Value: 0 Virtual address: 30497 Physical address: 24097, Value: 0 Virtual address: 36216 Physical address: 2680, Value: 0 Virtual address: 5619 Physical address: 19443, Value: 124 Virtual address: 36983 Physical address: 20855, Value: 29 Virtual address: 59557 Physical address: 26021, Value: 0 Virtual address: 36663 Physical address: 31287, Value: -51 Virtual address: 36436 Physical address: 14420, Value: 0 Virtual address: 37057 Physical address: 20929, Value: 0 Virtual address: 23585 Physical address: 16929, Value: 0 Virtual address: 58791 Physical address: 10663, Value: 105 Virtual address: 46666 Physical address: 19018, Value: 45 Virtual address: 64475 Physical address: 12507, Value: -10 Virtual address: 21615 Physical address: 9583, Value: 27 Virtual address: 41090 Physical address: 3202, Value: 40 Virtual address: 1771 Physical address: 21227, Value: -70 Virtual address: 47513 Physical address: 409, Value: 0 Virtual address: 39338 Physical address: 5802, Value: 38 Virtual address: 1390 Physical address: 8046, Value: 1 Virtual address: 38772 Physical address: 25716, Value: 0 Virtual address: 58149 Physical address: 2341, Value: 0 Virtual address: 7196 Physical address: 19996, Value: 0 Virtual address: 9123 Physical address: 29859, Value: -24 Virtual address: 7491 Physical address: 11843, Value: 80 Virtual address: 62616 Physical address: 27288, Value: 0 Virtual address: 15436 Physical address: 9804, Value: 0 Virtual address: 17491 Physical address: 8787, Value: 20 Virtual address: 53656 Physical address: 8344, Value: 0 Virtual address: 26449 Physical address: 18769, Value: 0 Virtual address: 34935 Physical address: 19575, Value: 29 Virtual address: 19864 Physical address: 21400, Value: 0 Virtual address: 51388 Physical address: 21692, Value: 0 Virtual address: 15155 Physical address: 4915, Value: -52 Virtual address: 64775 Physical address: 22023, Value: 65 Virtual address: 47969 Physical address: 2145, Value: 0 Virtual address: 16315 Physical address: 8635, Value: -18 Virtual address: 1342 Physical address: 7998, Value: 1 Virtual address: 51185 Physical address: 15089, Value: 0 Virtual address: 6043 Physical address: 5531, Value: -26 Virtual address: 21398 Physical address: 24982, Value: 20 Virtual address: 3273 Physical address: 3529, Value: 0 Virtual address: 9370 Physical address: 11162, Value: 9 Virtual address: 35463 Physical address: 12679, Value: -95 Virtual address: 28205 Physical address: 21805, Value: 0 Virtual address: 2351 Physical address: 24367, Value: 75 Virtual address: 28999 Physical address: 23623, Value: 81 Virtual address: 47699 Physical address: 25427, Value: -108 Virtual address: 46870 Physical address: 29974, Value: 45 Virtual address: 22311 Physical address: 17447, Value: -55 Virtual address: 22124 Physical address: 27500, Value: 0 Virtual address: 22427 Physical address: 17563, Value: -26 Virtual address: 49344 Physical address: 27840, Value: 0 Virtual address: 23224 Physical address: 28344, Value: 0 Virtual address: 5514 Physical address: 19338, Value: 5 Virtual address: 20504 Physical address: 1304, Value: 0 Virtual address: 376 Physical address: 14712, Value: 0 Virtual address: 2014 Physical address: 7390, Value: 1 Virtual address: 38700 Physical address: 25644, Value: 0 Virtual address: 13098 Physical address: 22314, Value: 12 Virtual address: 62435 Physical address: 24035, Value: -8 Virtual address: 48046 Physical address: 2222, Value: 46 Virtual address: 63464 Physical address: 29160, Value: 0 Virtual address: 12798 Physical address: 29438, Value: 12 Virtual address: 51178 Physical address: 15082, Value: 49 Virtual address: 8627 Physical address: 22963, Value: 108 Virtual address: 27083 Physical address: 6859, Value: 114 Virtual address: 47198 Physical address: 28766, Value: 46 Virtual address: 44021 Physical address: 26613, Value: 0 Virtual address: 32792 Physical address: 22552, Value: 0 Virtual address: 43996 Physical address: 26588, Value: 0 Virtual address: 41126 Physical address: 3238, Value: 40 Virtual address: 64244 Physical address: 4852, Value: 0 Virtual address: 37047 Physical address: 20919, Value: 45 Virtual address: 60281 Physical address: 30841, Value: 0 Virtual address: 52904 Physical address: 27048, Value: 0 Virtual address: 7768 Physical address: 31576, Value: 0 Virtual address: 55359 Physical address: 32063, Value: 15 Virtual address: 3230 Physical address: 3486, Value: 3 Virtual address: 44813 Physical address: 17933, Value: 0 Virtual address: 4116 Physical address: 30228, Value: 0 Virtual address: 65222 Physical address: 710, Value: 63 Virtual address: 28083 Physical address: 20403, Value: 108 Virtual address: 60660 Physical address: 1012, Value: 0 Virtual address: 39 Physical address: 2855, Value: 9 Virtual address: 328 Physical address: 14664, Value: 0 Virtual address: 47868 Physical address: 25596, Value: 0 Virtual address: 13009 Physical address: 25297, Value: 0 Virtual address: 22378 Physical address: 17514, Value: 21 Virtual address: 39304 Physical address: 5768, Value: 0 Virtual address: 11171 Physical address: 15779, Value: -24 Virtual address: 8079 Physical address: 1935, Value: -29 Virtual address: 52879 Physical address: 27023, Value: -93 Virtual address: 5123 Physical address: 1539, Value: 0 Virtual address: 4356 Physical address: 4356, Value: 0 Virtual address: 45745 Physical address: 4273, Value: 0 Virtual address: 32952 Physical address: 22712, Value: 0 Virtual address: 4657 Physical address: 18225, Value: 0 Virtual address: 24142 Physical address: 23374, Value: 23 Virtual address: 23319 Physical address: 3607, Value: -59 Virtual address: 13607 Physical address: 11559, Value: 73 Virtual address: 46304 Physical address: 17376, Value: 0 Virtual address: 17677 Physical address: 32525, Value: 0 Virtual address: 59691 Physical address: 24619, Value: 74 Virtual address: 50967 Physical address: 14871, Value: -59 Virtual address: 7817 Physical address: 31625, Value: 0 Virtual address: 8545 Physical address: 22881, Value: 0 Virtual address: 55297 Physical address: 32001, Value: 0 Virtual address: 52954 Physical address: 27098, Value: 51 Virtual address: 39720 Physical address: 5160, Value: 0 Virtual address: 18455 Physical address: 6167, Value: 5 Virtual address: 30349 Physical address: 6541, Value: 0 Virtual address: 63270 Physical address: 28966, Value: 61 Virtual address: 27156 Physical address: 29460, Value: 0 Virtual address: 20614 Physical address: 1414, Value: 20 Virtual address: 19372 Physical address: 7084, Value: 0 Virtual address: 48689 Physical address: 7473, Value: 0 Virtual address: 49386 Physical address: 27882, Value: 48 Virtual address: 50584 Physical address: 7832, Value: 0 Virtual address: 51936 Physical address: 30688, Value: 0 Virtual address: 34705 Physical address: 16529, Value: 0 Virtual address: 13653 Physical address: 11605, Value: 0 Virtual address: 50077 Physical address: 15517, Value: 0 Virtual address: 54518 Physical address: 14070, Value: 53 Virtual address: 41482 Physical address: 17674, Value: 40 Virtual address: 4169 Physical address: 30281, Value: 0 Virtual address: 36118 Physical address: 2582, Value: 35 Virtual address: 9584 Physical address: 112, Value: 0 Virtual address: 18490 Physical address: 6202, Value: 18 Virtual address: 55420 Physical address: 32124, Value: 0 Virtual address: 5708 Physical address: 18508, Value: 0 Virtual address: 23506 Physical address: 3794, Value: 22 Virtual address: 15391 Physical address: 9759, Value: 7 Virtual address: 36368 Physical address: 14352, Value: 0 Virtual address: 38976 Physical address: 9280, Value: 0 Virtual address: 50406 Physical address: 11494, Value: 49 Virtual address: 49236 Physical address: 27732, Value: 0 Virtual address: 65035 Physical address: 523, Value: -126 Virtual address: 30120 Physical address: 10152, Value: 0 Virtual address: 62551 Physical address: 27223, Value: 21 Virtual address: 46809 Physical address: 19161, Value: 0 Virtual address: 21687 Physical address: 9655, Value: 45 Virtual address: 53839 Physical address: 3919, Value: -109 Virtual address: 2098 Physical address: 13106, Value: 2 Virtual address: 12364 Physical address: 32332, Value: 0 Virtual address: 45366 Physical address: 23094, Value: 44 Virtual address: 50437 Physical address: 7685, Value: 0 Virtual address: 36675 Physical address: 31299, Value: -48 Virtual address: 55382 Physical address: 32086, Value: 54 Virtual address: 11846 Physical address: 12102, Value: 11 Virtual address: 49127 Physical address: 1255, Value: -7 Virtual address: 19900 Physical address: 21436, Value: 0 Virtual address: 20554 Physical address: 1354, Value: 20 Virtual address: 19219 Physical address: 6931, Value: -60 Virtual address: 51483 Physical address: 10779, Value: 70 Virtual address: 58090 Physical address: 26858, Value: 56 Virtual address: 39074 Physical address: 9378, Value: 38 Virtual address: 16060 Physical address: 9148, Value: 0 Virtual address: 10447 Physical address: 13007, Value: 51 Virtual address: 54169 Physical address: 13465, Value: 0 Virtual address: 20634 Physical address: 1434, Value: 20 Virtual address: 57555 Physical address: 13779, Value: 52 Virtual address: 61210 Physical address: 27930, Value: 59 Virtual address: 269 Physical address: 14605, Value: 0 Virtual address: 33154 Physical address: 16258, Value: 32 Virtual address: 64487 Physical address: 12519, Value: -7 Virtual address: 61223 Physical address: 27943, Value: -55 Virtual address: 47292 Physical address: 28860, Value: 0 Virtual address: 21852 Physical address: 31836, Value: 0 Virtual address: 5281 Physical address: 1697, Value: 0 Virtual address: 45912 Physical address: 5976, Value: 0 Virtual address: 32532 Physical address: 14100, Value: 0 Virtual address: 63067 Physical address: 10331, Value: -106 Virtual address: 41683 Physical address: 17875, Value: -76 Virtual address: 20981 Physical address: 15349, Value: 0 Virtual address: 33881 Physical address: 19801, Value: 0 Virtual address: 41785 Physical address: 20537, Value: 0 Virtual address: 4580 Physical address: 4580, Value: 0 Virtual address: 41389 Physical address: 16045, Value: 0 Virtual address: 28572 Physical address: 31132, Value: 0 Virtual address: 782 Physical address: 16654, Value: 0 Virtual address: 30273 Physical address: 6465, Value: 0 Virtual address: 62267 Physical address: 23867, Value: -50 Virtual address: 17922 Physical address: 26114, Value: 17 Virtual address: 63238 Physical address: 28934, Value: 61 Virtual address: 3308 Physical address: 3564, Value: 0 Virtual address: 26545 Physical address: 18865, Value: 0 Virtual address: 44395 Physical address: 28523, Value: 90 Virtual address: 39120 Physical address: 9424, Value: 0 Virtual address: 21706 Physical address: 9674, Value: 21 Virtual address: 7144 Physical address: 24296, Value: 0 Virtual address: 30244 Physical address: 6436, Value: 0 Virtual address: 3725 Physical address: 25997, Value: 0 Virtual address: 54632 Physical address: 17000, Value: 0 Virtual address: 30574 Physical address: 10606, Value: 29 Virtual address: 8473 Physical address: 22809, Value: 0 Virtual address: 12386 Physical address: 32354, Value: 12 Virtual address: 41114 Physical address: 3226, Value: 40 Virtual address: 57930 Physical address: 26698, Value: 56 Virtual address: 15341 Physical address: 5101, Value: 0 Virtual address: 15598 Physical address: 9966, Value: 15 Virtual address: 59922 Physical address: 21010, Value: 58 Virtual address: 18226 Physical address: 306, Value: 17 Virtual address: 48162 Physical address: 2338, Value: 47 Virtual address: 41250 Physical address: 15906, Value: 40 Virtual address: 1512 Physical address: 8168, Value: 0 Virtual address: 2546 Physical address: 24562, Value: 2 Virtual address: 41682 Physical address: 17874, Value: 40 Virtual address: 322 Physical address: 14658, Value: 0 Virtual address: 880 Physical address: 16752, Value: 0 Virtual address: 20891 Physical address: 15259, Value: 102 Virtual address: 56604 Physical address: 19996, Value: 0 Virtual address: 40166 Physical address: 29926, Value: 39 Virtual address: 26791 Physical address: 11943, Value: 41 Virtual address: 44560 Physical address: 8720, Value: 0 Virtual address: 38698 Physical address: 25642, Value: 37 Virtual address: 64127 Physical address: 4735, Value: -97 Virtual address: 15028 Physical address: 8372, Value: 0 Virtual address: 38669 Physical address: 25613, Value: 0 Virtual address: 45637 Physical address: 4165, Value: 0 Virtual address: 43151 Physical address: 19599, Value: 35 Virtual address: 9465 Physical address: 11257, Value: 0 Virtual address: 2498 Physical address: 24514, Value: 2 Virtual address: 13978 Physical address: 21658, Value: 13 Virtual address: 16326 Physical address: 8646, Value: 15 Virtual address: 51442 Physical address: 22258, Value: 50 Virtual address: 34845 Physical address: 5405, Value: 0 Virtual address: 63667 Physical address: 25011, Value: 44 Virtual address: 39370 Physical address: 5834, Value: 38 Virtual address: 55671 Physical address: 12663, Value: 93 Virtual address: 64496 Physical address: 12528, Value: 0 Virtual address: 7767 Physical address: 31575, Value: -107 Virtual address: 6283 Physical address: 21899, Value: 34 Virtual address: 55884 Physical address: 23628, Value: 0 Virtual address: 61103 Physical address: 30127, Value: -85 Virtual address: 10184 Physical address: 27592, Value: 0 Virtual address: 39543 Physical address: 28279, Value: -99 Virtual address: 9555 Physical address: 83, Value: 84 Virtual address: 13963 Physical address: 21643, Value: -94 Virtual address: 58975 Physical address: 19295, Value: -105 Virtual address: 19537 Physical address: 7249, Value: 0 Virtual address: 6101 Physical address: 22485, Value: 0 Virtual address: 41421 Physical address: 16077, Value: 0 Virtual address: 45502 Physical address: 23230, Value: 44 Virtual address: 29328 Physical address: 2192, Value: 0 Virtual address: 8149 Physical address: 2005, Value: 0 Virtual address: 25450 Physical address: 29290, Value: 24 Virtual address: 58944 Physical address: 19264, Value: 0 Virtual address: 50666 Physical address: 7914, Value: 49 Virtual address: 23084 Physical address: 6700, Value: 0 Virtual address: 36468 Physical address: 14452, Value: 0 Virtual address: 33645 Physical address: 26477, Value: 0 Virtual address: 25002 Physical address: 20906, Value: 24 Virtual address: 53715 Physical address: 30931, Value: 116 Virtual address: 60173 Physical address: 17933, Value: 0 Virtual address: 46354 Physical address: 20242, Value: 45 Virtual address: 4708 Physical address: 18276, Value: 0 Virtual address: 28208 Physical address: 816, Value: 0 Virtual address: 58844 Physical address: 3036, Value: 0 Virtual address: 22173 Physical address: 25501, Value: 0 Virtual address: 8535 Physical address: 22871, Value: 85 Virtual address: 42261 Physical address: 25109, Value: 0 Virtual address: 29687 Physical address: 17655, Value: -3 Virtual address: 37799 Physical address: 15783, Value: -23 Virtual address: 22566 Physical address: 22566, Value: 22 Virtual address: 62520 Physical address: 27192, Value: 0 Virtual address: 4098 Physical address: 30210, Value: 4 Virtual address: 47999 Physical address: 23423, Value: -33 Virtual address: 49660 Physical address: 17404, Value: 0 Virtual address: 37063 Physical address: 32711, Value: 49 Virtual address: 41856 Physical address: 20608, Value: 0 Virtual address: 5417 Physical address: 24617, Value: 0 Virtual address: 48856 Physical address: 7640, Value: 0 Virtual address: 10682 Physical address: 15034, Value: 10 Virtual address: 22370 Physical address: 26978, Value: 21 Virtual address: 63281 Physical address: 28977, Value: 0 Virtual address: 62452 Physical address: 24052, Value: 0 Virtual address: 50532 Physical address: 7780, Value: 0 Virtual address: 9022 Physical address: 5182, Value: 8 Virtual address: 59300 Physical address: 29604, Value: 0 Virtual address: 58660 Physical address: 2852, Value: 0 Virtual address: 56401 Physical address: 30545, Value: 0 Virtual address: 8518 Physical address: 22854, Value: 8 Virtual address: 63066 Physical address: 10330, Value: 61 Virtual address: 63250 Physical address: 28946, Value: 61 Virtual address: 48592 Physical address: 16592, Value: 0 Virtual address: 28771 Physical address: 11619, Value: 24 Virtual address: 37673 Physical address: 15657, Value: 0 Virtual address: 60776 Physical address: 15464, Value: 0 Virtual address: 56438 Physical address: 30582, Value: 55 Virtual address: 60424 Physical address: 13832, Value: 0 Virtual address: 39993 Physical address: 29753, Value: 0 Virtual address: 56004 Physical address: 23748, Value: 0 Virtual address: 59002 Physical address: 19322, Value: 57 Virtual address: 33982 Physical address: 19902, Value: 33 Virtual address: 25498 Physical address: 29338, Value: 24 Virtual address: 57047 Physical address: 2775, Value: -75 Virtual address: 1401 Physical address: 8057, Value: 0 Virtual address: 15130 Physical address: 4890, Value: 14 Virtual address: 42960 Physical address: 6352, Value: 0 Virtual address: 61827 Physical address: 18563, Value: 96 Virtual address: 32442 Physical address: 3770, Value: 31 Virtual address: 64304 Physical address: 12336, Value: 0 Virtual address: 30273 Physical address: 6465, Value: 0 Virtual address: 38082 Physical address: 11458, Value: 37 Virtual address: 22404 Physical address: 27012, Value: 0 Virtual address: 3808 Physical address: 26080, Value: 0 Virtual address: 16883 Physical address: 27891, Value: 124 Virtual address: 23111 Physical address: 6727, Value: -111 Virtual address: 62417 Physical address: 24017, Value: 0 Virtual address: 60364 Physical address: 18124, Value: 0 Virtual address: 4542 Physical address: 4542, Value: 4 Virtual address: 14829 Physical address: 749, Value: 0 Virtual address: 44964 Physical address: 10148, Value: 0 Virtual address: 33924 Physical address: 19844, Value: 0 Virtual address: 2141 Physical address: 13149, Value: 0 Virtual address: 19245 Physical address: 6957, Value: 0 Virtual address: 47168 Physical address: 28736, Value: 0 Virtual address: 24048 Physical address: 19184, Value: 0 Virtual address: 1022 Physical address: 16894, Value: 0 Virtual address: 23075 Physical address: 6691, Value: -120 Virtual address: 24888 Physical address: 20792, Value: 0 Virtual address: 49247 Physical address: 3935, Value: 23 Virtual address: 4900 Physical address: 31268, Value: 0 Virtual address: 22656 Physical address: 22656, Value: 0 Virtual address: 34117 Physical address: 32069, Value: 0 Virtual address: 55555 Physical address: 12547, Value: 64 Virtual address: 48947 Physical address: 1075, Value: -52 Virtual address: 59533 Physical address: 12173, Value: 0 Virtual address: 21312 Physical address: 21312, Value: 0 Virtual address: 21415 Physical address: 21415, Value: -23 Virtual address: 813 Physical address: 16685, Value: 0 Virtual address: 19419 Physical address: 7131, Value: -10 Virtual address: 1999 Physical address: 10959, Value: -13 Virtual address: 20155 Physical address: 9147, Value: -82 Virtual address: 21521 Physical address: 9489, Value: 0 Virtual address: 13670 Physical address: 12902, Value: 13 Virtual address: 19289 Physical address: 7001, Value: 0 Virtual address: 58483 Physical address: 13427, Value: 28 Virtual address: 41318 Physical address: 15974, Value: 40 Virtual address: 16151 Physical address: 8471, Value: -59 Virtual address: 13611 Physical address: 12843, Value: 74 Virtual address: 21514 Physical address: 9482, Value: 21 Virtual address: 13499 Physical address: 1467, Value: 46 Virtual address: 45583 Physical address: 4111, Value: -125 Virtual address: 49013 Physical address: 1141, Value: 0 Virtual address: 64843 Physical address: 13643, Value: 82 Virtual address: 63485 Physical address: 29181, Value: 0 Virtual address: 38697 Physical address: 25641, Value: 0 Virtual address: 59188 Physical address: 29492, Value: 0 Virtual address: 24593 Physical address: 16145, Value: 0 Virtual address: 57641 Physical address: 27945, Value: 0 Virtual address: 36524 Physical address: 14508, Value: 0 Virtual address: 56980 Physical address: 2708, Value: 0 Virtual address: 36810 Physical address: 31946, Value: 35 Virtual address: 6096 Physical address: 22480, Value: 0 Virtual address: 11070 Physical address: 1598, Value: 10 Virtual address: 60124 Physical address: 21212, Value: 0 Virtual address: 37576 Physical address: 6088, Value: 0 Virtual address: 15096 Physical address: 8440, Value: 0 Virtual address: 45247 Physical address: 14271, Value: 47 Virtual address: 32783 Physical address: 30991, Value: 3 Virtual address: 58390 Physical address: 13334, Value: 57 Virtual address: 60873 Physical address: 15561, Value: 0 Virtual address: 23719 Physical address: 26279, Value: 41 Virtual address: 24385 Physical address: 3393, Value: 0 Virtual address: 22307 Physical address: 26915, Value: -56 Virtual address: 17375 Physical address: 18911, Value: -9 Virtual address: 15990 Physical address: 28534, Value: 15 Virtual address: 20526 Physical address: 9262, Value: 20 Virtual address: 25904 Physical address: 24112, Value: 0 Virtual address: 42224 Physical address: 17136, Value: 0 Virtual address: 9311 Physical address: 11103, Value: 23 Virtual address: 7862 Physical address: 31670, Value: 7 Virtual address: 3835 Physical address: 26107, Value: -66 Virtual address: 30535 Physical address: 10567, Value: -47 Virtual address: 65179 Physical address: 32411, Value: -90 Virtual address: 57387 Physical address: 3115, Value: 10 Virtual address: 63579 Physical address: 24923, Value: 22 Virtual address: 4946 Physical address: 31314, Value: 4 Virtual address: 9037 Physical address: 5197, Value: 0 Virtual address: 61033 Physical address: 30057, Value: 0 Virtual address: 55543 Physical address: 26871, Value: 61 Virtual address: 50361 Physical address: 9913, Value: 0 Virtual address: 6480 Physical address: 336, Value: 0 Virtual address: 14042 Physical address: 21722, Value: 13 Virtual address: 21531 Physical address: 9499, Value: 6 Virtual address: 39195 Physical address: 5659, Value: 70 Virtual address: 37511 Physical address: 6023, Value: -95 Virtual address: 23696 Physical address: 26256, Value: 0 Virtual address: 27440 Physical address: 2352, Value: 0 Virtual address: 28201 Physical address: 809, Value: 0 Virtual address: 23072 Physical address: 6688, Value: 0 Virtual address: 7814 Physical address: 31622, Value: 7 Virtual address: 6552 Physical address: 408, Value: 0 Virtual address: 43637 Physical address: 17781, Value: 0 Virtual address: 35113 Physical address: 14633, Value: 0 Virtual address: 34890 Physical address: 5450, Value: 34 Virtual address: 61297 Physical address: 15217, Value: 0 Virtual address: 45633 Physical address: 4161, Value: 0 Virtual address: 61431 Physical address: 15351, Value: -3 Virtual address: 46032 Physical address: 20176, Value: 0 Virtual address: 18774 Physical address: 11862, Value: 18 Virtual address: 62991 Physical address: 10255, Value: -125 Virtual address: 28059 Physical address: 8859, Value: 102 Virtual address: 35229 Physical address: 14749, Value: 0 Virtual address: 51230 Physical address: 22046, Value: 50 Virtual address: 14405 Physical address: 4677, Value: 0 Virtual address: 52242 Physical address: 19474, Value: 51 Virtual address: 43153 Physical address: 24465, Value: 0 Virtual address: 2709 Physical address: 21909, Value: 0 Virtual address: 47963 Physical address: 23387, Value: -42 Virtual address: 36943 Physical address: 32591, Value: 19 Virtual address: 54066 Physical address: 27442, Value: 52 Virtual address: 10054 Physical address: 28230, Value: 9 Virtual address: 43051 Physical address: 24363, Value: 10 Virtual address: 11525 Physical address: 5, Value: 0 Virtual address: 17684 Physical address: 7188, Value: 0 Virtual address: 41681 Physical address: 23249, Value: 0 Virtual address: 27883 Physical address: 2283, Value: 58 Virtual address: 56909 Physical address: 2637, Value: 0 Virtual address: 45772 Physical address: 4300, Value: 0 Virtual address: 27496 Physical address: 2408, Value: 0 Virtual address: 46842 Physical address: 2042, Value: 45 Virtual address: 38734 Physical address: 25678, Value: 37 Virtual address: 28972 Physical address: 26412, Value: 0 Virtual address: 59684 Physical address: 30756, Value: 0 Virtual address: 11384 Physical address: 20344, Value: 0 Virtual address: 21018 Physical address: 18202, Value: 20 Virtual address: 2192 Physical address: 13200, Value: 0 Virtual address: 18384 Physical address: 25552, Value: 0 Virtual address: 13464 Physical address: 1432, Value: 0 Virtual address: 31018 Physical address: 25130, Value: 30 Virtual address: 62958 Physical address: 17646, Value: 61 Virtual address: 30611 Physical address: 10643, Value: -28 Virtual address: 1913 Physical address: 10873, Value: 0 Virtual address: 18904 Physical address: 11992, Value: 0 Virtual address: 26773 Physical address: 27285, Value: 0 Virtual address: 55491 Physical address: 26819, Value: 48 Virtual address: 21899 Physical address: 30347, Value: 98 Virtual address: 64413 Physical address: 12445, Value: 0 Virtual address: 47134 Physical address: 28702, Value: 46 Virtual address: 23172 Physical address: 6788, Value: 0 Virtual address: 7262 Physical address: 17246, Value: 7 Virtual address: 12705 Physical address: 20641, Value: 0 Virtual address: 7522 Physical address: 24674, Value: 7 Virtual address: 58815 Physical address: 3007, Value: 111 Virtual address: 34916 Physical address: 5476, Value: 0 Virtual address: 3802 Physical address: 26074, Value: 3 Virtual address: 58008 Physical address: 7576, Value: 0 Virtual address: 1239 Physical address: 15063, Value: 53 Virtual address: 63947 Physical address: 7883, Value: 114 Virtual address: 381 Physical address: 22909, Value: 0 Virtual address: 60734 Physical address: 15422, Value: 59 Virtual address: 48769 Physical address: 16513, Value: 0 Virtual address: 41938 Physical address: 11730, Value: 40 Virtual address: 38025 Physical address: 11401, Value: 0 Virtual address: 55099 Physical address: 15675, Value: -50 Virtual address: 56691 Physical address: 30579, Value: 92 Virtual address: 39530 Physical address: 13930, Value: 38 Virtual address: 59003 Physical address: 19323, Value: -98 Virtual address: 6029 Physical address: 22413, Value: 0 Virtual address: 20920 Physical address: 29880, Value: 0 Virtual address: 8077 Physical address: 23693, Value: 0 Virtual address: 42633 Physical address: 29321, Value: 0 Virtual address: 17443 Physical address: 7971, Value: 8 Virtual address: 53570 Physical address: 4930, Value: 52 Virtual address: 22833 Physical address: 6193, Value: 0 Virtual address: 3782 Physical address: 26054, Value: 3 Virtual address: 47758 Physical address: 18574, Value: 46 Virtual address: 22136 Physical address: 3704, Value: 0 Virtual address: 22427 Physical address: 27035, Value: -26 Virtual address: 23867 Physical address: 19003, Value: 78 Virtual address: 59968 Physical address: 21056, Value: 0 Virtual address: 62166 Physical address: 6614, Value: 60 Virtual address: 6972 Physical address: 27708, Value: 0 Virtual address: 63684 Physical address: 25028, Value: 0 Virtual address: 46388 Physical address: 23860, Value: 0 Virtual address: 41942 Physical address: 11734, Value: 40 Virtual address: 36524 Physical address: 14508, Value: 0 Virtual address: 9323 Physical address: 11115, Value: 26 Virtual address: 31114 Physical address: 25226, Value: 30 Virtual address: 22345 Physical address: 26953, Value: 0 Virtual address: 46463 Physical address: 23935, Value: 95 Virtual address: 54671 Physical address: 18063, Value: 99 Virtual address: 9214 Physical address: 5374, Value: 8 Virtual address: 7257 Physical address: 17241, Value: 0 Virtual address: 33150 Physical address: 4478, Value: 32 Virtual address: 41565 Physical address: 23133, Value: 0 Virtual address: 26214 Physical address: 614, Value: 25 Virtual address: 3595 Physical address: 25867, Value: -126 Virtual address: 17932 Physical address: 9996, Value: 0 Virtual address: 34660 Physical address: 19812, Value: 0 Virtual address: 51961 Physical address: 20985, Value: 0 Virtual address: 58634 Physical address: 2826, Value: 57 Virtual address: 57990 Physical address: 7558, Value: 56 Virtual address: 28848 Physical address: 4016, Value: 0 Virtual address: 49920 Physical address: 22528, Value: 0 Virtual address: 18351 Physical address: 25519, Value: -21 Virtual address: 53669 Physical address: 5029, Value: 0 Virtual address: 33996 Physical address: 32204, Value: 0 Virtual address: 6741 Physical address: 12629, Value: 0 Virtual address: 64098 Physical address: 12130, Value: 62 Virtual address: 606 Physical address: 21342, Value: 0 Virtual address: 27383 Physical address: 16887, Value: -67 Virtual address: 63140 Physical address: 10404, Value: 0 Virtual address: 32228 Physical address: 9188, Value: 0 Virtual address: 63437 Physical address: 29133, Value: 0 Virtual address: 29085 Physical address: 26525, Value: 0 Virtual address: 65080 Physical address: 32312, Value: 0 Virtual address: 38753 Physical address: 25697, Value: 0 Virtual address: 16041 Physical address: 28585, Value: 0 Virtual address: 9041 Physical address: 5201, Value: 0 Virtual address: 42090 Physical address: 17002, Value: 41 Virtual address: 46388 Physical address: 23860, Value: 0 Virtual address: 63650 Physical address: 24994, Value: 62 Virtual address: 36636 Physical address: 31772, Value: 0 Virtual address: 21947 Physical address: 30395, Value: 110 Virtual address: 19833 Physical address: 7033, Value: 0 Virtual address: 36464 Physical address: 14448, Value: 0 Virtual address: 8541 Physical address: 15965, Value: 0 Virtual address: 12712 Physical address: 20648, Value: 0 Virtual address: 48955 Physical address: 1083, Value: -50 Virtual address: 39206 Physical address: 5670, Value: 38 Virtual address: 15578 Physical address: 8666, Value: 15 Virtual address: 49205 Physical address: 12853, Value: 0 Virtual address: 7731 Physical address: 31539, Value: -116 Virtual address: 43046 Physical address: 24358, Value: 42 Virtual address: 60498 Physical address: 13650, Value: 59 Virtual address: 9237 Physical address: 11029, Value: 0 Virtual address: 47706 Physical address: 18522, Value: 46 Virtual address: 43973 Physical address: 29637, Value: 0 Virtual address: 42008 Physical address: 16920, Value: 0 Virtual address: 27460 Physical address: 2372, Value: 0 Virtual address: 24999 Physical address: 16295, Value: 105 Virtual address: 51933 Physical address: 20957, Value: 0 Virtual address: 34070 Physical address: 27926, Value: 33 Virtual address: 65155 Physical address: 32387, Value: -96 Virtual address: 59955 Physical address: 21043, Value: -116 Virtual address: 9277 Physical address: 11069, Value: 0 Virtual address: 20420 Physical address: 1732, Value: 0 Virtual address: 44860 Physical address: 8252, Value: 0 Virtual address: 50992 Physical address: 14128, Value: 0 Virtual address: 10583 Physical address: 31063, Value: 85 Virtual address: 57751 Physical address: 13463, Value: 101 Virtual address: 23195 Physical address: 6811, Value: -90 Virtual address: 27227 Physical address: 16731, Value: -106 Virtual address: 42816 Physical address: 3392, Value: 0 Virtual address: 58219 Physical address: 18795, Value: -38 Virtual address: 37606 Physical address: 6118, Value: 36 Virtual address: 18426 Physical address: 25594, Value: 17 Virtual address: 21238 Physical address: 18422, Value: 20 Virtual address: 11983 Physical address: 9423, Value: -77 Virtual address: 48394 Physical address: 24074, Value: 47 Virtual address: 11036 Physical address: 3100, Value: 0 Virtual address: 30557 Physical address: 10589, Value: 0 Virtual address: 23453 Physical address: 31389, Value: 0 Virtual address: 49847 Physical address: 30135, Value: -83 Virtual address: 30032 Physical address: 9808, Value: 0 Virtual address: 48065 Physical address: 23489, Value: 0 Virtual address: 6957 Physical address: 27693, Value: 0 Virtual address: 2301 Physical address: 13309, Value: 0 Virtual address: 7736 Physical address: 31544, Value: 0 Virtual address: 31260 Physical address: 21532, Value: 0 Virtual address: 17071 Physical address: 9647, Value: -85 Virtual address: 8940 Physical address: 26348, Value: 0 Virtual address: 9929 Physical address: 969, Value: 0 Virtual address: 45563 Physical address: 507, Value: 126 Virtual address: 12107 Physical address: 17739, Value: -46 Number of Translated Addresses = 1000 Page Faults = 539 Page Fault Rate = 0.539 TLB Hits = 54 TLB Hit Rate = 0.054
Project/manager2.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> /*------TODO--------- Structure: Read file containing logical addresses Use TLB and Page Table Translate logical address to physical address Read in File contains 32-bit ints Mask the right most 16 bits Divided into 8 bit page number (8-15) 8 bit offset (0-7) Page Table - 2^8 entries TLB - 16 Entries Page Size - 2^8 bytes Frame Size - 2^8 bytes Physical memory - 256 frames x 256 frames 1. Write program that extracts page number and offset from following ints: 1, 256, 32768, 32769, 128, 65534, 33153 2. Bypass TLB and implement using page table 3. Implement TLB, must have replacement strategy (FIFO or LRU) --------TODO----------*/ const int PAGE_TABLE_SIZE = 256; const int BUFFER_SIZE = 256; const int PHYS_MEM_SIZE = 128; const int TLB_SIZE = 16; struct TLB { unsigned char TLBpage[16]; unsigned char TLBframe[16]; int ind; }; int readFromDisk (int pageNum, char *PM, int* OF){ char buffer[BUFFER_SIZE]; memset(buffer, 0, sizeof(buffer)); FILE *BS; BS = fopen("BACKING_STORE.bin", "rb"); if (BS == NULL){ printf("File failed to open\n"); exit(0); } //This line // printf("offset in fseek: %d\n", pageNum*PHYS_MEM_SIZE); if (fseek(BS, pageNum * PHYS_MEM_SIZE, SEEK_SET)!=0) printf("error in fseek\n"); if (fread(buffer, sizeof(char), PHYS_MEM_SIZE, BS)==0) printf("error in fread\n"); int i = 0; for(i; i < PHYS_MEM_SIZE; i++){ *((PM+(*OF)*PHYS_MEM_SIZE)+i) = buffer[i]; //This Line //printf("buffer[%d]=%d\n",i+pageNum*256, buffer[i]); } (*OF)++; return (*OF)-1; //These two lines //printf("&d\n ", *((PM+i*n)+j)); // i = current row row number, n = elements per row, j = colum num } int findPage(int logicalAddr, char* PT, struct TLB *tlb, char* PM, int* OF, int* pageFaults, int* TLBhits){ unsigned char mask = 0xFF; unsigned char offset; unsigned char pageNum; bool TLBhit = false; int frame = 0; int value; int newFrame = 0; printf("Virtual address: %d\t", logicalAddr); pageNum = (logicalAddr >> 8) & mask; //This Line // printf("%X\t", pageNum); offset = logicalAddr & mask; //This Line //printf("%X\t", offset); //Check if in TLB int i = 0; for (i; i < TLB_SIZE; i++){ if(tlb->TLBpage[i] == pageNum){ frame = tlb->TLBframe[i]; TLBhit = true; (*TLBhits)++; //this line // printf("TLBhit\t\t"); } } //Check if in PageTable if (TLBhit == false){ if (PT[pageNum] != -1){ //this line // printf("Pagehit\t\t"); } //if not in either read from disk else{ //this line // printf("pageFault\t"); newFrame = readFromDisk(pageNum, PM, OF); PT[pageNum] = newFrame; (*pageFaults)++; //these 3 lines //tlb->TLBpage[tlb->ind] = pageNum; //tlb->TLBframe[tlb->ind] = newFrame; //tlb->ind = (tlb->ind + 1)%TLB_SIZE; } frame = PT[pageNum]; tlb->TLBpage[tlb->ind] = pageNum; tlb->TLBframe[tlb->ind] = PT[pageNum]; tlb->ind = (tlb->ind + 1)%TLB_SIZE; } int index = ((unsigned char)frame*PHYS_MEM_SIZE)+offset; value = *(PM+index); printf("Physical address: %d\t Value: %d\n",index, value); return 0; } int main (int argc, char* argv[]){ int val; FILE *fd; int openFrame = 0; int pageFaults = 0; int TLBhits = 0; int inputCount = 0; float pageFaultRate; float TLBHitRate; unsigned char PageTable[PAGE_TABLE_SIZE]; memset(PageTable, -1, sizeof(PageTable)); struct TLB tlb; memset(tlb.TLBpage, -1, sizeof(tlb.TLBpage)); memset(tlb.TLBframe, -1, sizeof(tlb.TLBframe)); tlb.ind = 0; char PhyMem[PHYS_MEM_SIZE][PHYS_MEM_SIZE]; if (argc < 2){ printf("Not enough arguments\nProgram Exiting\n"); exit(0); } fd = fopen(argv[1], "r"); if (fd == NULL){ printf("File failed to open\n"); exit(0); } //This line //printf("Value\tPageNum\tOffset\n "); while (fscanf(fd, "%d", &val)==1){ //This line // printf("%d\t", val); findPage(val, PageTable, &tlb, (char*)PhyMem, &openFrame, &pageFaults, &TLBhits); inputCount++; } //This Line // readFromDisk(0, (char*)PhyMem, &openFrame); //This block /* int i = 0; for (i; i < PHYS_MEM_SIZE; i++) printf("PhyMem[%d]=%d\n",i, PhyMem[0][i]); */ pageFaultRate = (float)pageFaults / (float)inputCount; TLBHitRate = (float)TLBhits / (float)inputCount; printf("Number of Translated Addresses = %d\nPage Faults = %d\nPage Fault Rate = %.3f\nTLB Hits = %d\nTLB Hit Rate= %.4f\n",inputCount,pageFaults,pageFaultRate,TLBhits,TLBHitRate); pclose(fd); return 0; }