Knowledge (XXG)

Page table

Source đź“ť

284:, address space or process ID information is necessary so the virtual memory management system knows what pages to associate to what process. Two processes may use two identical virtual addresses for different purposes. The page table must supply different virtual memory mappings for the two processes. This can be done by assigning the two processes distinct address map identifiers, or by using process IDs. Associating process IDs with virtual memory pages can also aid in selection of pages to page out, as pages associated with inactive processes, particularly processes whose code pages have been paged out, are less likely to be needed immediately than pages belonging to active processes. 31: 277:
will be set, indicating that the page must be written back to the backing store. This strategy requires that the backing store retain a copy of the page after it is paged in to memory. When a dirty bit is not used, the backing store need only be as large as the instantaneous total size of all paged-out pages at any moment. When a dirty bit is used, at all times some pages will exist in both physical memory and the backing store.
1683: 1673: 1663: 1653: 1643: 125: 411: 391: 209:
requested page. The page table needs to be updated to mark that the pages that were previously in physical memory are no longer there, and to mark that the page that was on disk is now in physical memory. The TLB also needs to be updated, including removal of the paged-out page from it, and the instruction restarted. Which page to page out is the subject of
337:. The hashing function is not generally optimized for coverage - raw speed is more desirable. Of course, hash tables experience collisions. Due to this chosen hashing function, we may experience a lot of collisions in usage, so for each entry in the table the VPN is provided to check if it is the searched entry or a collision. 155:. If one exists, it is written back to the TLB, which must be done because the hardware accesses memory through the TLB in a virtual memory system, and the faulting instruction is restarted, which may happen in parallel as well. The subsequent translation will result in a TLB hit, and the memory access will continue. 111:
When a process requests access to data in its memory, it is the responsibility of the operating system to map the virtual address provided by the process to the physical address of the actual memory where that data is stored. The page table is where mappings of virtual addresses to physical addresses
450:
It was mentioned that creating a page table structure that contained mappings for every virtual page in the virtual address space could end up being wasteful. But, we can get around the excessive space concerns by putting the page table in virtual memory, and letting the virtual memory system manage
430:
This is useful since often the top-most parts and bottom-most parts of virtual memory are used in running a process - the top is often used for text and data segments while the bottom for stack, with free memory in between. The multilevel page table may keep a few of the smaller page tables to cover
426:
The inverted page table keeps a listing of mappings installed for all frames in physical memory. However, this could be quite wasteful. Instead of doing so, we could create a page table structure that contains mappings for virtual pages. It is done by keeping several page tables that cover a certain
208:
When physical memory is not full this is a simple operation; the page is written back into physical memory, the page table and TLB are updated, and the instruction is restarted. However, when physical memory is full, one or more pages in physical memory will need to be paged out to make room for the
321:
into one data structure. At its core is a fixed-size table with the number of rows equal to the number of frames in memory. If there are 4,000 frames, the inverted page table has 4,000 rows. For each row there is an entry for the virtual page number (VPN), the physical page number (not the physical
276:
The dirty bit allows for a performance optimization. A page on disk that is paged in to physical memory, then read from, and subsequently paged out again does not need to be written back to disk, since the page has not changed. However, if the page was written to after it is paged in, its dirty bit
362:
There is normally one hash table, contiguous in physical memory, shared by all processes. A per-process identifier is used to disambiguate the pages of different processes from each other. It is somewhat slow to remove the page table entries of a given process; the OS may avoid reusing per-process
340:
In searching for a mapping, the hash anchor table is used. If no entry exists, a page fault occurs. Otherwise, the entry is found. Depending on the architecture, the entry may be placed in the TLB again and the memory reference is restarted, or the collision chain may be followed until it has been
272:
Secondary storage, such as a hard disk drive, can be used to augment physical memory. Pages can be paged in and out of physical memory and the disk. The present bit can indicate what pages are currently present in physical memory or are on disk, and can indicate how to treat these different pages,
171:
The lookup may fail if there is no translation available for the virtual address, meaning that virtual address is invalid. This will typically occur because of a programming error, and the operating system must take some action to deal with the problem. On modern operating systems, it will cause a
34:
Relationship between pages addressed by virtual addresses and the pages in physical memory, within a simple address space scheme. Physical memory can contain pages belonging to many processes. Pages can be held on disk if seldom used, or if physical memory is full. In the diagram above, some pages
287:
As an alternative to tagging page table entries with process-unique identifiers, the page table itself may occupy a different virtual-memory page for each process so that the page table becomes a part of the process context. In such an implementation, the process's page table can be paged out
95:
In operating systems that use virtual memory, every process is given the impression that it is working with large, contiguous sections of memory. Physically, the memory of each process may be dispersed across different areas of physical memory, or may have been moved
296:
There are several types of page tables, which are optimized for different requirements. Essentially, a bare-bones page table must store the virtual address, the physical address that is "under" this virtual address, and possibly some address space information.
248:
table and a page table. The frame table holds information about which frames are mapped. In more advanced systems, the frame table can also hold information about which address space a page belongs to, statistics information, or other background information.
438:
data structure. There need not be only two levels, but possibly multiple ones. For example, a virtual address in this schema could be split into three parts: the index in the root page table, the index in the sub-page table, and the offset in that page.
313:
which uses normal system RAM. Unlike a true page table, it is not necessarily able to hold all current mappings. The operating system must be prepared to handle misses, just as it would with a MIPS-style software-filled TLB.
183:
of physical memory to make room for another page. In this case the page is paged out to a secondary store located on a medium such as a hard disk drive (this secondary store, or "backing store", is often called a
265:
Each page table entry (PTE) holds the mapping between a virtual address of a page and the address of a physical frame. There is also auxiliary information about the page such as a present bit, a
224:; it may also occur when a write is done to a location from which the process is allowed to read but to which it is not allowed to write, in which case a signal is delivered to the process. 151:, the MMU, the system firmware, or the operating system's TLB miss handler will typically look up the address mapping in the page table to see whether a mapping exists, which is called a 333:
may be used to map virtual addresses (and address space/PID information if need be) to an index in the IPT - this is where the collision chain is used. This hash table is known as a
216:
Some MMUs trigger a page fault for other reasons, whether or not the page is currently resident in physical memory and mapped into the virtual address space of a process:
128:
Actions taken upon a virtual to physical address translation. Each translation is restarted if a TLB miss occurs, so that the lookup can occur correctly through hardware.
810: 359:
by scattering entries all over. An operating system may minimize the size of the hash table to reduce this problem, with the trade-off being an increased miss rate.
1623: 711: 1284: 757: 220:
Attempting to write when the page table has the read-only bit set causes a page fault. This is a normal part of many operating system's implementation of
231:(no-execute bit) set in the page table causes a page fault. This can be used by an operating system, in combination with the read-only bit, to provide a 355:. Tree-based designs avoid this by placing the page table entries for adjacent pages in adjacent locations, but an inverted page table destroys spatial 344:
A virtual address in this schema could be split into two, the first half being a virtual page number and the second half being the offset in that page.
1332: 691: 1676: 1480: 1304: 1086: 1057: 281: 200:
if it is a file). When this happens the page needs to be taken from disk and put back into physical memory. A similar mechanism is used for
1666: 143:
When a virtual address needs to be translated into a physical address, the TLB is searched first. If a match is found, which is known as a
30: 1686: 656: 639: 179:
The lookup may also fail if the page is currently not resident in physical memory. This will occur if the requested page has been
861: 805: 682: 469: 363:
identifier values to delay facing this. Alternatively, per-process hash tables may be used, but they are impractical because of
1503: 1277: 780: 750: 427:
block of virtual memory. For example, we can create smaller 1024-entry 4 KB pages that cover 4 MB of virtual memory.
1628: 973: 871: 523: 454:
However, part of this linear page table structure must always stay resident in physical memory in order to prevent circular
1251: 800: 785: 501: 136:(MMU) inside the CPU stores a cache of recently used mappings from the operating system's page table. This is called the 1488: 1326: 846: 831: 790: 513: 310: 137: 1465: 1012: 959: 72: 1523: 147:, the physical address is returned and memory access can continue. However, if there is no match, which is called a 1712: 1646: 1533: 1513: 1366: 1270: 1027: 866: 743: 518: 415: 399: 210: 715: 1592: 1062: 881: 841: 836: 795: 364: 1717: 1452: 1105: 992: 856: 481: 1707: 1656: 1518: 1493: 1399: 851: 477: 1470: 1422: 1320: 1239: 1178: 1067: 1047: 996: 954: 664:, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Arpaci-Dusseau Books, 2014. Relevant chapters: 434:
Now, each of these smaller page tables are linked together by a master page table, effectively creating a
133: 84: 1022: 988: 890: 826: 548: 435: 356: 1498: 695: 573: 1219: 1193: 644: 68: 1376: 1188: 1140: 1017: 627: 493: 419: 403: 64: 1618: 1602: 1528: 1125: 1032: 485: 201: 173: 1394: 1293: 1234: 1183: 1115: 1072: 913: 652: 635: 232: 105: 1571: 1566: 1409: 1214: 766: 597: 80: 76: 60: 677: 1561: 1460: 1158: 1120: 1091: 431:
just the top and bottom parts of memory and create new ones only when strictly necessary.
101: 56: 668: 1576: 1543: 1538: 1384: 1343: 1244: 1168: 1130: 1002: 348: 323: 48: 44: 703: 671: 1701: 1553: 1356: 1351: 1110: 949: 903: 665: 352: 221: 674: 273:
i.e. whether to load a page from disk and page another page in physical memory out.
83:, and may be read and written during the virtual address translation process by the 1037: 683:
CNE Virtual Memory Tutorial, Center for the New Engineer George Mason University,
124: 67:, while physical addresses are used by the hardware, or more specifically, by the 458:
and look for a key part of the page table that is not present in the page table.
1597: 1163: 1145: 928: 918: 908: 410: 17: 455: 375: 330: 329:
Searching through all entries of the core IPT structure is inefficient, and a
245: 164: 204:, which are mapped to virtual memory and loaded to physical memory on demand. 1508: 1389: 1100: 1007: 933: 898: 266: 442:
Multilevel page tables are also referred to as "hierarchical page tables".
390: 269:
or modified bit, address space or process ID information, amongst others.
1442: 1437: 1427: 1417: 1229: 52: 661: 1432: 1224: 1153: 923: 371: 63:. Virtual addresses are used by the program executed by the accessing 476:
Nested page tables can be implemented to increase the performance of
228: 180: 97: 1262: 735: 1173: 730: 489: 409: 389: 379: 123: 29: 27:
Data structure that maps virtual addresses with physical addresses
528: 1266: 739: 704:"Intel 64 and IA-32 Architectures Software Developer's Manuals" 1209: 692:"Art of Assembler, 6.6 Virtual Memory, Protection, and Paging" 497: 395: 414:
Three-level page table structure in x86 architecture (with
309:(IPT) is best thought of as an off-chip extension of the 227:
Attempting to execute code when the page table has the
79:
in memory. The page table is set up by the computer's
1305:
Memory management as a function of an operating system
288:
whenever the process is no longer resident in memory.
71:(RAM) subsystem. The page table is a key component of 322:
address), some other data and a means for creating a
1611: 1585: 1552: 1479: 1451: 1408: 1375: 1342: 1313: 1202: 1139: 1085: 1046: 981: 972: 942: 889: 880: 819: 773: 257:The page table is an array of page table entries. 611:Operating Systems Internals and Design Principles 370:Inverted page tables are used for example on the 367:, which requires the tables to be pre-allocated. 244:The simplest page table systems often maintain a 712:"AMD64 Architecture Software Developer's Manual" 484:, the need to emulate is greatly reduced. For 112:are stored, with each mapping also known as a 1278: 751: 163:The page table lookup may fail, triggering a 87:or by low-level system software or firmware. 8: 1624:International Symposium on Memory Management 176:signal being sent to the offending program. 1285: 1271: 1263: 978: 886: 758: 744: 736: 235:feature that stops some kinds of exploits. 347:A major problem with this design is poor 540: 100:) to secondary storage, typically to a 282:single address space operating systems 140:(TLB), which is an associative cache. 7: 662:Operating Systems: Three Easy Pieces 480:. By providing hardware support for 317:The IPT combines a page table and a 1333:Input–output memory management unit 341:exhausted and a page fault occurs. 394:Two-level page table structure in 280:In operating systems that are not 25: 1682: 1681: 1672: 1671: 1662: 1661: 1652: 1651: 1642: 1641: 862:Object-oriented operating system 470:Second Level Address Translation 188:if it is a disk partition, or a 1504:Concurrent mark sweep collector 731:The Memory Management Reference 451:the memory for the page table. 1629:Region-based memory management 872:Supercomputer operating system 524:Pointer (computer programming) 1: 502:Rapid Virtualization Indexing 326:chain, as we will see later. 1677:Memory management algorithms 1489:Automatic Reference Counting 1327:Translation lookaside buffer 847:Just enough operating system 832:Distributed operating system 514:Translation lookaside buffer 138:translation lookaside buffer 75:that is necessary to access 1667:Automatic memory management 1466:C dynamic memory allocation 960:User space and kernel space 211:page replacement algorithms 73:virtual address translation 35:are not in physical memory. 1734: 1687:Memory management software 1534:Tracing garbage collection 1367:Virtual memory compression 867:Real-time operating system 706:. Intel. January 18, 2018. 647:, P. B. Galvin, G. Gagne, 519:Page replacement algorithm 467: 55:to store mappings between 1637: 1300: 1063:Multilevel feedback queue 1058:Fixed-priority preemptive 842:Hobbyist operating system 837:Embedded operating system 649:Operating System Concepts 482:page-table virtualization 1461:Static memory allocation 1453:Manual memory management 1106:General protection fault 857:Network operating system 811:User features comparison 632:Modern Operating Systems 488:the current choices are 1519:Garbage-first collector 1494:Boehm garbage collector 1400:x86 memory segmentation 852:Mobile operating system 574:"Page Table Management" 478:hardware virtualization 446:Virtualized page tables 120:The translation process 1524:Mark–compact algorithm 1321:Memory management unit 955:Loadable kernel module 672:Introduction to Paging 423: 407: 398:architecture (without 386:Multilevel page tables 134:memory management unit 129: 91:Role of the page table 85:memory management unit 36: 1023:Process control block 989:Computer multitasking 827:Disk operating system 714:. AMD. Archived from 698:on February 18, 2012. 598:"W^X - The Mechanism" 413: 393: 357:locality of reference 127: 33: 1471:new and delete (C++) 1194:Virtual tape library 786:Forensic engineering 678:Advanced Page Tables 365:memory fragmentation 301:Inverted page tables 167:, for two reasons: 159:Translation failures 69:random-access memory 1377:Memory segmentation 1203:Supporting concepts 1189:Virtual file system 669:Address Translation 628:Andrew S. Tanenbaum 609:William Stallings, 494:Extended Page Table 307:inverted page table 202:memory-mapped files 1619:Automatic variable 1603:Unreachable memory 1529:Reference counting 1499:Cheney's algorithm 1481:Garbage collection 1126:Segmentation fault 974:Process management 486:x86 virtualization 462:Nested page tables 424: 408: 174:segmentation fault 130: 61:physical addresses 37: 1713:Memory management 1695: 1694: 1647:Memory management 1395:Virtual 8086 mode 1294:Memory management 1260: 1259: 1116:Memory protection 1087:Memory management 1081: 1080: 1073:Shortest job next 968: 967: 767:Operating systems 335:hash anchor table 233:Write XOR Execute 106:solid-state drive 57:virtual addresses 16:(Redirected from 1725: 1685: 1684: 1675: 1674: 1665: 1664: 1655: 1654: 1645: 1644: 1572:Dangling pointer 1567:Buffer over-read 1539:Strong reference 1410:Memory allocator 1287: 1280: 1273: 1264: 1215:Computer network 979: 887: 760: 753: 746: 737: 719: 707: 699: 694:. Archived from 614: 607: 601: 595: 589: 588: 586: 584: 570: 564: 563: 561: 559: 549:"Virtual Memory" 545: 292:Page table types 261:Page table entry 240:Frame table data 114:page table entry 81:operating system 21: 18:Page table entry 1733: 1732: 1728: 1727: 1726: 1724: 1723: 1722: 1718:Computer memory 1698: 1697: 1696: 1691: 1633: 1607: 1581: 1562:Buffer overflow 1548: 1475: 1447: 1404: 1371: 1338: 1309: 1296: 1291: 1261: 1256: 1198: 1159:Defragmentation 1144: 1135: 1121:Protection ring 1090: 1077: 1049: 1042: 964: 938: 876: 815: 769: 764: 727: 722: 710: 702: 690: 645:A. Silberschatz 623: 621:Further reading 618: 617: 608: 604: 596: 592: 582: 580: 572: 571: 567: 557: 555: 547: 546: 542: 537: 510: 472: 464: 448: 388: 303: 294: 263: 255: 253:Page table data 242: 161: 122: 102:hard disk drive 93: 28: 23: 22: 15: 12: 11: 5: 1731: 1729: 1721: 1720: 1715: 1710: 1708:Virtual memory 1700: 1699: 1693: 1692: 1690: 1689: 1679: 1669: 1659: 1657:Virtual memory 1649: 1638: 1635: 1634: 1632: 1631: 1626: 1621: 1615: 1613: 1609: 1608: 1606: 1605: 1600: 1595: 1589: 1587: 1583: 1582: 1580: 1579: 1577:Stack overflow 1574: 1569: 1564: 1558: 1556: 1550: 1549: 1547: 1546: 1544:Weak reference 1541: 1536: 1531: 1526: 1521: 1516: 1511: 1506: 1501: 1496: 1491: 1485: 1483: 1477: 1476: 1474: 1473: 1468: 1463: 1457: 1455: 1449: 1448: 1446: 1445: 1440: 1435: 1430: 1425: 1420: 1414: 1412: 1406: 1405: 1403: 1402: 1397: 1392: 1387: 1385:Protected mode 1381: 1379: 1373: 1372: 1370: 1369: 1364: 1359: 1354: 1348: 1346: 1344:Virtual memory 1340: 1339: 1337: 1336: 1330: 1324: 1317: 1315: 1311: 1310: 1308: 1307: 1301: 1298: 1297: 1292: 1290: 1289: 1282: 1275: 1267: 1258: 1257: 1255: 1254: 1249: 1248: 1247: 1245:User interface 1242: 1232: 1227: 1222: 1217: 1212: 1206: 1204: 1200: 1199: 1197: 1196: 1191: 1186: 1181: 1176: 1171: 1169:File attribute 1166: 1161: 1156: 1150: 1148: 1137: 1136: 1134: 1133: 1131:Virtual memory 1128: 1123: 1118: 1113: 1108: 1103: 1097: 1095: 1083: 1082: 1079: 1078: 1076: 1075: 1070: 1065: 1060: 1054: 1052: 1044: 1043: 1041: 1040: 1035: 1030: 1025: 1020: 1015: 1010: 1005: 1003:Context switch 1000: 985: 983: 976: 970: 969: 966: 965: 963: 962: 957: 952: 946: 944: 940: 939: 937: 936: 931: 926: 921: 916: 911: 906: 901: 895: 893: 884: 878: 877: 875: 874: 869: 864: 859: 854: 849: 844: 839: 834: 829: 823: 821: 817: 816: 814: 813: 808: 803: 798: 793: 788: 783: 777: 775: 771: 770: 765: 763: 762: 755: 748: 740: 734: 733: 726: 725:External links 723: 721: 720: 718:on 2010-03-13. 708: 700: 688: 680: 666:Address Spaces 659: 642: 624: 622: 619: 616: 615: 602: 590: 565: 539: 538: 536: 533: 532: 531: 526: 521: 516: 509: 506: 474: 473: 463: 460: 447: 444: 387: 384: 382:architecture. 351:caused by the 349:cache locality 302: 299: 293: 290: 262: 259: 254: 251: 241: 238: 237: 236: 225: 206: 205: 186:swap partition 177: 160: 157: 121: 118: 92: 89: 49:virtual memory 45:data structure 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1730: 1719: 1716: 1714: 1711: 1709: 1706: 1705: 1703: 1688: 1680: 1678: 1670: 1668: 1660: 1658: 1650: 1648: 1640: 1639: 1636: 1630: 1627: 1625: 1622: 1620: 1617: 1616: 1614: 1610: 1604: 1601: 1599: 1596: 1594: 1593:Fragmentation 1591: 1590: 1588: 1584: 1578: 1575: 1573: 1570: 1568: 1565: 1563: 1560: 1559: 1557: 1555: 1554:Memory safety 1551: 1545: 1542: 1540: 1537: 1535: 1532: 1530: 1527: 1525: 1522: 1520: 1517: 1515: 1512: 1510: 1507: 1505: 1502: 1500: 1497: 1495: 1492: 1490: 1487: 1486: 1484: 1482: 1478: 1472: 1469: 1467: 1464: 1462: 1459: 1458: 1456: 1454: 1450: 1444: 1441: 1439: 1436: 1434: 1431: 1429: 1426: 1424: 1421: 1419: 1416: 1415: 1413: 1411: 1407: 1401: 1398: 1396: 1393: 1391: 1388: 1386: 1383: 1382: 1380: 1378: 1374: 1368: 1365: 1363: 1360: 1358: 1357:Memory paging 1355: 1353: 1352:Demand paging 1350: 1349: 1347: 1345: 1341: 1334: 1331: 1328: 1325: 1322: 1319: 1318: 1316: 1312: 1306: 1303: 1302: 1299: 1295: 1288: 1283: 1281: 1276: 1274: 1269: 1268: 1265: 1253: 1250: 1246: 1243: 1241: 1238: 1237: 1236: 1233: 1231: 1228: 1226: 1223: 1221: 1218: 1216: 1213: 1211: 1208: 1207: 1205: 1201: 1195: 1192: 1190: 1187: 1185: 1182: 1180: 1177: 1175: 1172: 1170: 1167: 1165: 1162: 1160: 1157: 1155: 1152: 1151: 1149: 1147: 1142: 1138: 1132: 1129: 1127: 1124: 1122: 1119: 1117: 1114: 1112: 1111:Memory paging 1109: 1107: 1104: 1102: 1099: 1098: 1096: 1093: 1088: 1084: 1074: 1071: 1069: 1066: 1064: 1061: 1059: 1056: 1055: 1053: 1051: 1045: 1039: 1036: 1034: 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1014: 1011: 1009: 1006: 1004: 1001: 998: 994: 990: 987: 986: 984: 980: 977: 975: 971: 961: 958: 956: 953: 951: 950:Device driver 948: 947: 945: 941: 935: 932: 930: 927: 925: 922: 920: 917: 915: 912: 910: 907: 905: 902: 900: 897: 896: 894: 892: 891:Architectures 888: 885: 883: 879: 873: 870: 868: 865: 863: 860: 858: 855: 853: 850: 848: 845: 843: 840: 838: 835: 833: 830: 828: 825: 824: 822: 818: 812: 809: 807: 804: 802: 799: 797: 794: 792: 789: 787: 784: 782: 779: 778: 776: 772: 768: 761: 756: 754: 749: 747: 742: 741: 738: 732: 729: 728: 724: 717: 713: 709: 705: 701: 697: 693: 689: 687: 686: 681: 679: 676: 673: 670: 667: 663: 660: 658: 657:0-471-69466-5 654: 650: 646: 643: 641: 640:0-13-031358-0 637: 633: 629: 626: 625: 620: 612: 606: 603: 599: 594: 591: 579: 575: 569: 566: 554: 550: 544: 541: 534: 530: 527: 525: 522: 520: 517: 515: 512: 511: 507: 505: 503: 499: 495: 491: 487: 483: 479: 471: 466: 465: 461: 459: 457: 452: 445: 443: 440: 437: 432: 428: 421: 417: 412: 405: 401: 397: 392: 385: 383: 381: 377: 373: 368: 366: 360: 358: 354: 353:hash function 350: 345: 342: 338: 336: 332: 327: 325: 320: 315: 312: 308: 300: 298: 291: 289: 285: 283: 278: 274: 270: 268: 260: 258: 252: 250: 247: 239: 234: 230: 226: 223: 222:copy-on-write 219: 218: 217: 214: 212: 203: 199: 195: 191: 187: 182: 178: 175: 170: 169: 168: 166: 158: 156: 154: 150: 146: 141: 139: 135: 126: 119: 117: 115: 109: 107: 103: 99: 90: 88: 86: 82: 78: 74: 70: 66: 62: 58: 54: 50: 46: 42: 32: 19: 1361: 1146:file systems 1038:Time-sharing 716:the original 696:the original 684: 648: 631: 610: 605: 593: 583:28 September 581:. Retrieved 577: 568: 558:28 September 556:. Retrieved 552: 543: 496:feature and 475: 453: 449: 441: 433: 429: 425: 369: 361: 346: 343: 339: 334: 328: 318: 316: 306: 304: 295: 286: 279: 275: 271: 264: 256: 243: 215: 207: 197: 193: 189: 185: 162: 152: 148: 144: 142: 131: 113: 110: 94: 51:system in a 40: 38: 1598:Memory leak 1164:Device file 1154:Boot loader 1068:Round-robin 993:Cooperative 929:Rump kernel 919:Multikernel 909:Microkernel 806:Usage share 685:Page Tables 456:page faults 319:frame table 1702:Categories 1362:Page table 1094:protection 1050:algorithms 1048:Scheduling 997:Preemptive 943:Components 914:Monolithic 781:Comparison 578:kernel.org 535:References 468:See also: 418:, without 376:UltraSPARC 331:hash table 165:page fault 47:used by a 41:page table 1509:Finalizer 1390:Real mode 1184:Partition 1101:Bus error 1028:Real-time 1008:Interrupt 934:Unikernel 899:Exokernel 613:, p. 353. 504:feature. 324:collision 198:page file 190:swap file 181:moved out 153:page walk 104:(HDD) or 98:paged out 1443:ptmalloc 1438:mimalloc 1428:jemalloc 1418:dlmalloc 1314:Hardware 1230:Live USB 1092:resource 982:Concepts 820:Variants 801:Timeline 508:See also 378:and the 194:swapfile 149:TLB miss 53:computer 1514:Garbage 1433:libumem 1335:(IOMMU) 1225:Live CD 1179:Journal 1143:access, 1141:Storage 1018:Process 924:vkernel 791:History 774:General 553:umd.edu 372:PowerPC 145:TLB hit 116:(PTE). 108:(SSD). 65:process 1586:Issues 1033:Thread 904:Hybrid 882:Kernel 655:  638:  374:, the 229:NX bit 1612:Other 1423:Hoard 1329:(TLB) 1323:(MMU) 1235:Shell 1174:Inode 490:Intel 380:IA-64 267:dirty 246:frame 43:is a 796:List 675:TLBs 653:ISBN 636:ISBN 585:2015 560:2015 436:tree 132:The 77:data 59:and 1252:PXE 1240:CLI 1220:HAL 1210:API 1013:IPC 529:W^X 500:'s 498:AMD 492:'s 420:PSE 416:PAE 404:PSE 402:or 400:PAE 396:x86 311:TLB 305:An 196:or 1704:: 995:, 651:, 634:, 630:, 576:. 551:. 422:). 406:). 213:. 192:, 39:A 1286:e 1279:t 1272:v 1089:, 999:) 991:( 759:e 752:t 745:v 600:. 587:. 562:. 96:( 20:)

Index

Page table entry

data structure
virtual memory
computer
virtual addresses
physical addresses
process
random-access memory
virtual address translation
data
operating system
memory management unit
paged out
hard disk drive
solid-state drive

memory management unit
translation lookaside buffer
page fault
segmentation fault
moved out
memory-mapped files
page replacement algorithms
copy-on-write
NX bit
Write XOR Execute
frame
dirty
single address space operating systems

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑