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