Knowledge

Memory management (operating systems)

Source đź“ť

1106: 1096: 1086: 1076: 1066: 399:
transferred to auxiliary storage—so that its region may be used by the first job. When released by the first job, this additional storage is again available, either (1) as unassigned storage, if that was its source, or (2) to receive the job to be transferred back into main storage (rolled in).
398:
Rollout/rollin allows the temporary, dynamic expansion of a particular job beyond its originally specified region. When a job needs more space, rollout/rollin attempts to obtain unassigned storage for the job's use. If there is no such unassigned storage, another job is rolled out—i.e., is
316:
It is possible to implement segmentation with or without paging. Without paging support the segment is the physical unit swapped in and out of memory if required. With paging support the pages are usually the unit of swapping and segmentation only adds an additional level of security.
42:. It determines how memory is allocated among competing processes, deciding which gets memory, when they receive it, and how much they are allowed. When memory is allocated it determines which memory locations will be assigned. It tracks when memory is freed or 197:
to provide larger chunks of contiguous physical memory. Compaction moves "in-use" areas of memory to eliminate "holes" or unused areas of memory caused by process termination in order to create larger contiguous free areas.
312:
Segmentation allows better access protection than other schemes because memory references are relative to a specific segment and the hardware will not permit the application to reference memory not defined for that segment.
69:
is the simplest memory management technique. All the computer's memory, usually with the exception of a small portion reserved for the operating system, is available to a single application.
342:
of up to 256 pages, each page being 1K 36-bit words in size, resulting in a maximum segment size of 1MiB (with 9-bit bytes, as used in Multics). A process could have up to 4046 segments.
305:
are areas of memory that usually correspond to a logical grouping of information such as a code procedure or a data array. Segments require hardware support in the form of a
309:
which usually contains the physical address of the segment in memory, its size, and other data such as access protection bits and status (swapped in, swapped out, etc.)
493: 380:—paging or segmentation, rollout/rollin does not require any special memory management hardware; however, unless the system has relocation hardware such as a 118:
Partitioned allocation usually requires some hardware support to prevent the jobs from interfering with one another or with the operating system. The
191:
Partitions may be relocatable with base registers, as in the UNIVAC 1108, PDP-6 and PDP-10, and GE-600 series. Relocatable partitions are able to be
1195: 320:
Addresses in a segmented system usually consist of the segment id and an offset relative to the segment base address, defined to be offset zero.
388:
registers, the program must be rolled back in to its original memory locations. Rollout/rollin has been largely superseded by virtual memory.
1046: 1142: 707: 327:(x86) architecture allows a process to have up to 16,383 segments of up to 4GiB each. IA-32 segments are subdivisions of the computer's 662: 369:
for another task. Programs may be rolled out "by demand end or...when waiting for some long event." Rollout/rollin was commonly used in
338:
operating system is probably the best known system implementing segmented memory. Multics segments are subdivisions of the computer's
403:
In OS/360, rollout/rollin was used only for batch jobs, and rollin does not occur until the jobstep borrowing the region terminates.
576: 755: 301:
is the only memory management technique that does not provide the user's program with a "linear and contiguous address space."
540: 1442: 1099: 903: 613: 260: 1089: 1109: 156: 256:
maps pages to frames. The physical memory can be allocated on a page basis while the address space appears contiguous.
115:. Memory management consists of allocating a partition to a job when it starts and unallocating it when the job ends. 513: 476: 1246: 1190: 1165: 1135: 926: 700: 1358: 1256: 1051: 523: 206: 1636: 1185: 1170: 366: 193: 1231: 1216: 1175: 911: 749: 1397: 1344: 888: 1662: 1657: 1412: 1251: 1128: 1069: 956: 946: 936: 789: 693: 357:
Rollout/rollin (RO/RI) is a computer operating system memory management technique where the entire non-
259:
Usually, with paged memory management, each job runs in its own address space. However, there are some
123: 107:, usually contiguous areas of memory. Each partition might contain all the information for a specific 1447: 1266: 1226: 1221: 1180: 1015: 1490: 1377: 1241: 875: 1236: 1079: 941: 916: 822: 422: 392: 373:
systems, where the user's "think time" was relatively long compared to the time to do the swap.
1624: 1563: 1452: 1432: 1381: 1339: 893: 845: 743: 253: 248: 603: 1407: 1373: 1275: 1211: 921: 412: 174: 81: 1604: 1578: 8: 1573: 1525: 1402: 799: 293: 211: 34:
The memory management function keeps track of the status of each memory location, either
636: 580: 1510: 1417: 1041: 1025: 951: 1619: 1568: 1500: 1457: 1298: 817: 716: 639:
International Symposium on Computer Performance Modeling, Measurement, and Evaluation
609: 519: 472: 417: 166: 50: 53:, which is how a process manages the memory assigned to it by the operating system. 1599: 1151: 994: 989: 832: 362: 351: 112: 108: 20: 1543: 1505: 1476: 984: 883: 562:
IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture
466: 385: 284:
when the system can move pages as required between primary and secondary memory.
145: 74: 1629: 1553: 1515: 1387: 999: 966: 961: 807: 766: 377: 228: 119: 28: 1651: 1538: 1495: 1334: 1288: 976: 779: 774: 358: 280: 242: 141: 1422: 370: 272: 216: 85: 1548: 1530: 1313: 1303: 1293: 1020: 129: 784: 381: 1485: 1392: 1318: 1283: 931: 812: 642:. Association for Computing Machinery. March 29–31, 1976. p. 137 188:
to distinguish dynamic partitions from static ones in other systems.
1120: 685: 88:
the contents of memory to switch among users. Early versions of the
1614: 865: 860: 850: 840: 236:
divides the computer's primary memory into fixed-size units called
89: 1609: 1308: 855: 335: 267:, which runs all processes within a large address space, and IBM 160: 184:(MVT) is an example of dynamic. MVT and successors use the term 73:
is an example of a system that allocates memory in this way. An
268: 137: 70: 275:, which ran all jobs in a single 16MiB virtual address space. 263:
that run all processes within a single address space, such as
1558: 393:
OS/360 Multiprogramming with a Variable number of Tasks (MVT)
331:, the virtual address space provided by the paging hardware. 324: 264: 133: 77:
running a single application might also use this technique.
1594: 664:
IBM System/360 Operating System: .Concepts and Facilities
542:
IBM System/360 Operating System Time Sharing Option Guide
495:
IBM System/360 Operating System: Concepts and Facilities
27:
is the function responsible for managing the computer's
148:
registers to indicate the ranges of accessible memory.
728:
Memory management as a function of an operating system
80:
A system using single contiguous allocation may still
361:
code and data of a running program is swapped out to
173:, that is, automatically created for a specific job. 577:"Multics Virtual Memory – Tutorial and Reflections" 209:to free additional memory. Early versions of IBM's 1649: 182:Multiprogramming with a Variable Number of Tasks 180:(MFT) is an example of static partitioning, and 660: 538: 491: 61: 56: 464: 287: 1136: 701: 559: 178:Multiprogramming with a Fixed Number of Tasks 1047:International Symposium on Memory Management 1143: 1129: 708: 694: 391:Rollout/rollin was an optional feature of 222: 460: 458: 95: 601: 511: 465:Madnick, Stuart; Donovan, John (1974). 1650: 455: 261:single address space operating systems 92:operating system used this technique. 16:Function of computer operating systems 1150: 1124: 715: 689: 605:Programming, The Impossible Challenge 518:. PHI Learning Pvt. Ltd. p. 94. 103:divides primary memory into multiple 201:Some systems allow partitions to be 756:Input–output memory management unit 13: 215:(TSO) swapped users in and out of 14: 1674: 574: 345: 1247:Object-oriented operating system 1105: 1104: 1095: 1094: 1085: 1084: 1075: 1074: 1065: 1064: 252:of the same size. The hardware 927:Concurrent mark sweep collector 654: 175:IBM System/360 Operating System 1257:Supercomputer operating system 1052:Region-based memory management 629: 595: 568: 553: 532: 505: 485: 435: 1: 661:IBM Corporation (June 1970). 448: 51:application memory management 1232:Just enough operating system 1217:Distributed operating system 1100:Memory management algorithms 912:Automatic Reference Counting 750:Translation lookaside buffer 471:. McGraw-Hill Book Company. 240:, and the program's virtual 62:Single contiguous allocation 57:Memory management techniques 7: 1345:User space and kernel space 1090:Automatic memory management 889:C dynamic memory allocation 406: 288:Segmented memory management 10: 1679: 1252:Real-time operating system 1110:Memory management software 957:Tracing garbage collection 790:Virtual memory compression 349: 291: 226: 1587: 1524: 1470: 1448:Multilevel feedback queue 1443:Fixed-priority preemptive 1431: 1366: 1357: 1327: 1274: 1265: 1227:Hobbyist operating system 1222:Embedded operating system 1204: 1158: 1060: 1034: 1008: 975: 902: 874: 831: 798: 765: 736: 723: 608:. Elsevier. p. 124. 151:Partitions may be either 1491:General protection fault 1242:Network operating system 1196:User features comparison 884:Static memory allocation 876:Manual memory management 539:IBM Corporation (1972). 492:IBM Corporation (1970). 428: 350:Not to be confused with 46:and updates the status. 1237:Mobile operating system 942:Garbage-first collector 917:Boehm garbage collector 823:x86 memory segmentation 515:Classic Data Structures 423:x86 memory segmentation 365:(disk or drum) to free 223:Paged memory management 1340:Loadable kernel module 947:Mark–compact algorithm 744:Memory management unit 401: 254:memory management unit 101:Partitioned allocation 96:Partitioned allocation 49:This is distinct from 1408:Process control block 1374:Computer multitasking 1212:Disk operating system 602:Walraet, Bob (2014). 413:Memory overcommitment 396: 155:, that is defined at 1579:Virtual tape library 1171:Forensic engineering 894:new and delete (C++) 512:Samanta, D. (2004). 441:Known as TSO regions 329:linear address space 278:Paged memory can be 157:Initial Program Load 1588:Supporting concepts 1574:Virtual file system 800:Memory segmentation 560:Intel Corporation. 294:Memory segmentation 212:Time Sharing Option 1511:Segmentation fault 1359:Process management 1042:Automatic variable 1026:Unreachable memory 952:Reference counting 922:Cheney's algorithm 904:Garbage collection 1663:Operating systems 1658:Memory management 1645: 1644: 1501:Memory protection 1472:Memory management 1466: 1465: 1458:Shortest job next 1353: 1352: 1152:Operating systems 1118: 1117: 1070:Memory management 818:Virtual 8086 mode 717:Memory management 637:"rollin/rollout" 615:978-0-444-87128-2 468:Operating Systems 418:Memory protection 207:secondary storage 167:computer operator 105:memory partitions 67:Single allocation 25:memory management 21:operating systems 1670: 1600:Computer network 1364: 1363: 1272: 1271: 1145: 1138: 1131: 1122: 1121: 1108: 1107: 1098: 1097: 1088: 1087: 1078: 1077: 1068: 1067: 995:Dangling pointer 990:Buffer over-read 962:Strong reference 833:Memory allocator 710: 703: 696: 687: 686: 680: 679: 677: 675: 669: 658: 652: 651: 649: 647: 633: 627: 626: 624: 622: 599: 593: 592: 590: 588: 579:. Archived from 572: 566: 565: 557: 551: 549: 547: 536: 530: 529: 509: 503: 502: 500: 489: 483: 482: 462: 442: 439: 363:auxiliary memory 352:Roll-on/roll-off 299:Segmented memory 234:Paged allocation 128:technique. The 1678: 1677: 1673: 1672: 1671: 1669: 1668: 1667: 1648: 1647: 1646: 1641: 1583: 1544:Defragmentation 1529: 1520: 1506:Protection ring 1475: 1462: 1434: 1427: 1349: 1323: 1261: 1200: 1154: 1149: 1119: 1114: 1056: 1030: 1004: 985:Buffer overflow 971: 898: 870: 827: 794: 761: 732: 719: 714: 684: 683: 673: 671: 667: 659: 655: 645: 643: 635: 634: 630: 620: 618: 616: 600: 596: 586: 584: 573: 569: 558: 554: 545: 537: 533: 526: 510: 506: 498: 490: 486: 479: 463: 456: 451: 446: 445: 440: 436: 431: 409: 386:base and bounds 378:virtual storage 355: 348: 340:physical memory 296: 290: 231: 225: 146:base and bounds 98: 75:embedded system 64: 59: 17: 12: 11: 5: 1676: 1666: 1665: 1660: 1643: 1642: 1640: 1639: 1634: 1633: 1632: 1630:User interface 1627: 1617: 1612: 1607: 1602: 1597: 1591: 1589: 1585: 1584: 1582: 1581: 1576: 1571: 1566: 1561: 1556: 1554:File attribute 1551: 1546: 1541: 1535: 1533: 1522: 1521: 1519: 1518: 1516:Virtual memory 1513: 1508: 1503: 1498: 1493: 1488: 1482: 1480: 1468: 1467: 1464: 1463: 1461: 1460: 1455: 1450: 1445: 1439: 1437: 1429: 1428: 1426: 1425: 1420: 1415: 1410: 1405: 1400: 1395: 1390: 1388:Context switch 1385: 1370: 1368: 1361: 1355: 1354: 1351: 1350: 1348: 1347: 1342: 1337: 1331: 1329: 1325: 1324: 1322: 1321: 1316: 1311: 1306: 1301: 1296: 1291: 1286: 1280: 1278: 1269: 1263: 1262: 1260: 1259: 1254: 1249: 1244: 1239: 1234: 1229: 1224: 1219: 1214: 1208: 1206: 1202: 1201: 1199: 1198: 1193: 1188: 1183: 1178: 1173: 1168: 1162: 1160: 1156: 1155: 1148: 1147: 1140: 1133: 1125: 1116: 1115: 1113: 1112: 1102: 1092: 1082: 1080:Virtual memory 1072: 1061: 1058: 1057: 1055: 1054: 1049: 1044: 1038: 1036: 1032: 1031: 1029: 1028: 1023: 1018: 1012: 1010: 1006: 1005: 1003: 1002: 1000:Stack overflow 997: 992: 987: 981: 979: 973: 972: 970: 969: 967:Weak reference 964: 959: 954: 949: 944: 939: 934: 929: 924: 919: 914: 908: 906: 900: 899: 897: 896: 891: 886: 880: 878: 872: 871: 869: 868: 863: 858: 853: 848: 843: 837: 835: 829: 828: 826: 825: 820: 815: 810: 808:Protected mode 804: 802: 796: 795: 793: 792: 787: 782: 777: 771: 769: 767:Virtual memory 763: 762: 760: 759: 753: 747: 740: 738: 734: 733: 731: 730: 724: 721: 720: 713: 712: 705: 698: 690: 682: 681: 653: 628: 614: 594: 567: 552: 531: 524: 504: 484: 477: 453: 452: 450: 447: 444: 443: 433: 432: 430: 427: 426: 425: 420: 415: 408: 405: 347: 346:Rollout/rollin 344: 292:Main article: 289: 286: 229:Virtual memory 227:Main article: 224: 221: 120:IBM System/360 97: 94: 63: 60: 58: 55: 29:primary memory 15: 9: 6: 4: 3: 2: 1675: 1664: 1661: 1659: 1656: 1655: 1653: 1638: 1635: 1631: 1628: 1626: 1623: 1622: 1621: 1618: 1616: 1613: 1611: 1608: 1606: 1603: 1601: 1598: 1596: 1593: 1592: 1590: 1586: 1580: 1577: 1575: 1572: 1570: 1567: 1565: 1562: 1560: 1557: 1555: 1552: 1550: 1547: 1545: 1542: 1540: 1537: 1536: 1534: 1532: 1527: 1523: 1517: 1514: 1512: 1509: 1507: 1504: 1502: 1499: 1497: 1496:Memory paging 1494: 1492: 1489: 1487: 1484: 1483: 1481: 1478: 1473: 1469: 1459: 1456: 1454: 1451: 1449: 1446: 1444: 1441: 1440: 1438: 1436: 1430: 1424: 1421: 1419: 1416: 1414: 1411: 1409: 1406: 1404: 1401: 1399: 1396: 1394: 1391: 1389: 1386: 1383: 1379: 1375: 1372: 1371: 1369: 1365: 1362: 1360: 1356: 1346: 1343: 1341: 1338: 1336: 1335:Device driver 1333: 1332: 1330: 1326: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1300: 1297: 1295: 1292: 1290: 1287: 1285: 1282: 1281: 1279: 1277: 1276:Architectures 1273: 1270: 1268: 1264: 1258: 1255: 1253: 1250: 1248: 1245: 1243: 1240: 1238: 1235: 1233: 1230: 1228: 1225: 1223: 1220: 1218: 1215: 1213: 1210: 1209: 1207: 1203: 1197: 1194: 1192: 1189: 1187: 1184: 1182: 1179: 1177: 1174: 1172: 1169: 1167: 1164: 1163: 1161: 1157: 1153: 1146: 1141: 1139: 1134: 1132: 1127: 1126: 1123: 1111: 1103: 1101: 1093: 1091: 1083: 1081: 1073: 1071: 1063: 1062: 1059: 1053: 1050: 1048: 1045: 1043: 1040: 1039: 1037: 1033: 1027: 1024: 1022: 1019: 1017: 1016:Fragmentation 1014: 1013: 1011: 1007: 1001: 998: 996: 993: 991: 988: 986: 983: 982: 980: 978: 977:Memory safety 974: 968: 965: 963: 960: 958: 955: 953: 950: 948: 945: 943: 940: 938: 935: 933: 930: 928: 925: 923: 920: 918: 915: 913: 910: 909: 907: 905: 901: 895: 892: 890: 887: 885: 882: 881: 879: 877: 873: 867: 864: 862: 859: 857: 854: 852: 849: 847: 844: 842: 839: 838: 836: 834: 830: 824: 821: 819: 816: 814: 811: 809: 806: 805: 803: 801: 797: 791: 788: 786: 783: 781: 780:Memory paging 778: 776: 775:Demand paging 773: 772: 770: 768: 764: 757: 754: 751: 748: 745: 742: 741: 739: 735: 729: 726: 725: 722: 718: 711: 706: 704: 699: 697: 692: 691: 688: 666: 665: 657: 641: 640: 632: 617: 611: 607: 606: 598: 583:on 2001-03-05 582: 578: 575:Green, Paul. 571: 563: 556: 550:(GC28-6698-5) 548:. p. 10. 544: 543: 535: 527: 521: 517: 516: 508: 501:. p. 73. 497: 496: 488: 480: 478:0-07-039455-5 474: 470: 469: 461: 459: 454: 438: 434: 424: 421: 419: 416: 414: 411: 410: 404: 400: 395: 394: 389: 387: 383: 379: 374: 372: 368: 364: 360: 353: 343: 341: 337: 332: 330: 326: 321: 318: 314: 310: 308: 307:segment table 304: 300: 295: 285: 283: 282: 276: 274: 270: 266: 262: 257: 255: 251: 250: 245: 244: 243:address space 239: 235: 230: 220: 218: 214: 213: 208: 204: 199: 196: 195: 189: 187: 183: 179: 176: 172: 168: 164: 163: 158: 154: 149: 147: 143: 142:GE-600 series 139: 135: 131: 127: 126: 121: 116: 114: 110: 106: 102: 93: 91: 87: 83: 78: 76: 72: 68: 54: 52: 47: 45: 41: 37: 32: 30: 26: 22: 1531:file systems 1471: 1423:Time-sharing 727: 672:. Retrieved 670:. p. 55 663: 656: 644:. Retrieved 638: 631: 619:. Retrieved 604: 597: 585:. Retrieved 581:the original 570: 561: 555: 541: 534: 514: 507: 494: 487: 467: 437: 402: 397: 390: 375: 371:time-sharing 367:main storage 356: 339: 333: 328: 322: 319: 315: 311: 306: 302: 298: 297: 281:demand-paged 279: 277: 273:OS/VS2 (SVS) 258: 247: 241: 237: 233: 232: 219:partitions. 217:time-sharing 210: 202: 200: 192: 190: 185: 181: 177: 170: 165:, or by the 161: 152: 150: 125:lock-and-key 124: 117: 104: 100: 99: 79: 66: 65: 48: 43: 39: 35: 33: 24: 18: 1549:Device file 1539:Boot loader 1453:Round-robin 1378:Cooperative 1314:Rump kernel 1304:Multikernel 1294:Microkernel 1191:Usage share 1021:Memory leak 238:page frames 203:swapped out 130:UNIVAC 1108 44:unallocated 1652:Categories 1479:protection 1435:algorithms 1433:Scheduling 1382:Preemptive 1328:Components 1299:Monolithic 1166:Comparison 785:Page table 525:8120318749 449:References 382:memory map 323:The Intel 1569:Partition 1486:Bus error 1413:Real-time 1393:Interrupt 1319:Unikernel 1284:Exokernel 932:Finalizer 813:Real mode 194:compacted 162:boot time 159:(IPL) or 82:multitask 36:allocated 1615:Live USB 1477:resource 1367:Concepts 1205:Variants 1186:Timeline 866:ptmalloc 861:mimalloc 851:jemalloc 841:dlmalloc 737:Hardware 407:See also 303:Segments 86:swapping 1610:Live CD 1564:Journal 1528:access, 1526:Storage 1403:Process 1309:vkernel 1176:History 1159:General 937:Garbage 856:libumem 758:(IOMMU) 674:Aug 24, 646:Aug 24, 621:Aug 24, 376:Unlike 336:Multics 171:dynamic 122:uses a 1418:Thread 1289:Hybrid 1267:Kernel 1009:Issues 612:  587:May 9, 522:  475:  359:shared 269:OS/VS1 186:region 153:static 140:, and 138:PDP-10 71:MS-DOS 1620:Shell 1559:Inode 1035:Other 846:Hoard 752:(TLB) 746:(MMU) 668:(PDF) 546:(PDF) 499:(PDF) 429:Notes 325:IA-32 265:IBM i 249:pages 246:into 169:, or 134:PDP-6 90:MUSIC 1181:List 676:2018 648:2018 623:2018 610:ISBN 589:2012 520:ISBN 473:ISBN 334:The 271:and 144:use 136:and 113:task 40:free 1637:PXE 1625:CLI 1605:HAL 1595:API 1398:IPC 384:or 205:to 111:or 109:job 84:by 38:or 19:In 1654:: 1380:, 457:^ 132:, 31:. 23:, 1474:, 1384:) 1376:( 1144:e 1137:t 1130:v 709:e 702:t 695:v 678:. 650:. 625:. 591:. 564:. 528:. 481:. 354:.

Index

operating systems
primary memory
application memory management
MS-DOS
embedded system
multitask
swapping
MUSIC
job
task
IBM System/360
lock-and-key
UNIVAC 1108
PDP-6
PDP-10
GE-600 series
base and bounds
Initial Program Load
boot time
computer operator
IBM System/360 Operating System
compacted
secondary storage
Time Sharing Option
time-sharing
Virtual memory
address space
pages
memory management unit
single address space operating systems

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

↑