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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.