Knowledge (XXG)

Computer multitasking

Source 📝

282: 353:" while waiting for requested input (such as disk, keyboard or network input). During this time, the system was not performing useful work. With the advent of interrupts and preemptive multitasking, I/O bound processes could be "blocked", or put on hold, pending the arrival of the necessary data, allowing other processes to utilize the CPU. As the arrival of the requested data would generate an interrupt, blocked processes could be guaranteed a timely return to execution. 2328: 31: 515:(MMU). If a process attempts to access a memory location outside its memory space, the MMU denies the request and signals the kernel to take appropriate actions; this usually results in forcibly terminating the offending process. Depending on the software and kernel design and the specific error in question, the user may receive an access violation error message such as "segmentation fault". 542:. While multitasking and memory swapping are two completely unrelated techniques, they are very often used together, as swapping memory allows more tasks to be loaded at the same time. Typically, a multitasking system allows another process to run when the running process hits a point where it has to wait for some portion of memory to be reloaded from secondary storage. 202:, several different programs were loaded in the computer memory, and the first one began to run. When the first program reached an instruction waiting for a peripheral, the context of this program was stored away, and the second program in memory was given a chance to run. The process continued until all programs finished running. 482:, that are scheduled cooperatively. On operating systems that do not provide fibers, an application may implement its own fibers using repeated calls to worker functions. Fibers are even more lightweight than threads, and somewhat easier to program with, although they tend to lose some or all of the benefits of threads on 191:, initially designed in 1957 and first released in 1960, was the first computer designed with multiprogramming in mind. Its architecture featured a central memory and a Program Distributor feeding up to twenty-five autonomous processing units with code and data, and allowing concurrent operation of multiple clusters. 507:
Essential to any multitasking system is to safely and effectively share access to system resources. Access to memory must be strictly managed to ensure that no process can inadvertently or deliberately read or write to memory locations outside the process's address space. This is done for the purpose
457:
As multitasking greatly improved the throughput of computers, programmers started to implement applications as sets of cooperating processes (e. g., one process gathering input data, one process processing input data, one process writing out results on disk). This, however, required some tools
216:
Multiprogramming gives no guarantee that a program will run in a timely manner. Indeed, the first program may very well run for hours without needing access to a peripheral. As there were no users waiting at an interactive terminal, this was no problem: users handed in a deck of punched cards to an
148:
Often multitasking operating systems include measures to change the priority of individual tasks, so that important jobs receive more processor time than those considered less significant. Depending on the operating system, a task might be as large as an entire application program, or might be made
183:
were very slow. When the computer ran a program that needed access to a peripheral, the central processing unit (CPU) would have to stop executing program instructions while the peripheral processed the data. This was usually very inefficient. Multiprogramming is a computing technique that enables
63: 293:
Preemptive multitasking allows the computer system to more reliably guarantee to each process a regular "slice" of operating time. It also allows the system to deal rapidly with important external events like incoming data, which might require the immediate attention of one or another process.
184:
multiple programs to be concurrently loaded and executed into a computer's memory, allowing the CPU to switch between them swiftly. This optimizes CPU utilization by keeping it engaged with the execution of tasks, particularly useful when one program is waiting for I/O operations to complete.
444:
systems, where there are a number of possibly unrelated external activities needed to be controlled by a single processor system. In such systems a hierarchical interrupt system is coupled with process prioritization to ensure that key activities were given a greater share of available
90:) over a certain period of time. New tasks can interrupt already started ones before they finish, instead of waiting for them to end. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as 550:
Processes that are entirely independent are not much trouble to program in a multitasking environment. Most of the complexity in multitasking systems comes from the need to share computer resources between tasks and to synchronize the operation of co-operating tasks.
464:
were born from the idea that the most efficient way for cooperating processes to exchange data would be to share their entire memory space. Thus, threads are effectively processes that run in the same memory context and share other resources with their
258:
As a cooperatively multitasked system relies on each process regularly giving up time to other processes on the system, one poorly designed program can consume all of the CPU time for itself, either by performing extensive calculations or by
98:. Multitasking automatically interrupts the running program, saving its state (partial results, memory contents and computer register contents) and loading the saved state of another program and transferring control to it. This " 518:
In a well designed and correctly implemented multitasking system, a given process can never directly access memory that belongs to another process. An exception to this rule is in the case of shared memory; for example, in the
384:
was released the following year, offering a combination of multitasking and multimedia capabilities. Microsoft made preemptive multitasking a core feature of their flagship operating system in the early 1990s when developing
124:
Multitasking is a common feature of computer operating systems since at least the 1960s. It allows more efficient use of the computer hardware; when a program is waiting for some external event such as a user input or an
145:
systems such as those designed to control industrial robots, require timely processing; a single processor might be shared between calculations of machine movement, communications, and user interface.
133:
system, multiple human operators use the same processor as if it was dedicated to their use, while behind the scenes the computer is serving many users by multitasking their individual programs. In
526:
Inadequate memory protection mechanisms, either due to flaws in their design or poor implementations, allow for security vulnerabilities that may be potentially exploited by malicious software.
523:
inter-process communication mechanism the kernel allocates memory to be mutually shared by multiple processes. Such features are often used by database management software such as PostgreSQL.
213:
technology, which enabled individual programs to make use of memory and operating system resources as if other concurrently running programs were, for all practical purposes, nonexistent.
1654: 821: 511:
In general, memory access management is a responsibility of the operating system kernel, in combination with hardware mechanisms that provide supporting functionalities, such as a
167:
The term "multitasking" has become an international term, as the same word is used in many other languages such as German, Italian, Dutch, Romanian, Czech, Danish and Norwegian.
1122: 610: 294:
Operating systems were developed to take advantage of these hardware capabilities and run multiple processes preemptively. Preemptive multitasking was implemented in
1744: 1596: 1069: 572:
Over the years, multitasking systems have been refined. Modern operating systems generally include detailed mechanisms for prioritizing processes, while
231:
Early multitasking systems used applications that voluntarily ceded time to one another. This approach, which was eventually supported by many computer
217:
operator, and came back a few hours later for printed results. Multiprogramming greatly reduced wait times when multiple batches were being processed.
538:
or swap partition is a way for the operating system to provide more memory than is physically available by keeping portions of the primary memory in
1725: 490: 1398: 1369: 831: 2358: 1992: 156:
A processor intended for use with multitasking operating systems may include special hardware to securely support multiple tasks, such as
2015: 331: 235:, is known today as cooperative multitasking. Although it is now rarely used in larger systems except for specific applications such as 1904: 432:
architectures, no longer support legacy 16-bit applications, and thus provide preemptive multitasking for all supported applications.
34:
Modern desktop operating systems are capable of handling large numbers of different processes at the same time. This screenshot shows
895: 2010: 1987: 644: 117:
of multiple tasks at exactly the same time; instead, it allows more than one task to advance over a given period of time. Even on
1589: 1173: 1117: 1982: 1797: 1092: 1062: 2089: 1952: 1285: 1183: 990: 327: 1027: 796: 674: 614: 2353: 2313: 2147: 1765: 1685: 1563: 1112: 1097: 1158: 1143: 1102: 337:
At any specific time, processes can be grouped into two categories: those that are waiting for input or output (called "
281: 2332: 2278: 1738: 1582: 1324: 1271: 935: 2257: 2052: 1937: 1899: 1749: 1639: 1339: 1178: 1055: 566: 346: 323: 2273: 2252: 2197: 2084: 2074: 2047: 1909: 1374: 1193: 1153: 1148: 1107: 573: 558:
techniques are used to avoid potential problems caused by multiple tasks attempting to access the same resource.
2227: 1853: 1792: 1705: 1417: 1304: 1168: 478: 226: 107: 103: 2142: 2288: 2283: 1733: 1163: 369: 91: 129:
transfer with a peripheral to complete, the central processor can still be used with another program. In a
2027: 1959: 1863: 1755: 1710: 1551: 1490: 1379: 1359: 1308: 1266: 512: 424:, where native 32-bit applications are multitasked preemptively. 64-bit editions of Windows, both for the 276: 138: 1817: 106:), or the running program may be coded to signal to the supervisory software when it can be interrupted ( 2119: 2079: 2032: 2022: 1680: 1619: 1334: 1202: 1138: 303: 251:
to enable multiple applications to run simultaneously. Cooperative multitasking is still used today on
67: 62: 698: 2059: 1947: 1942: 1932: 1919: 1715: 1531: 1505: 555: 476:
While threads are scheduled preemptively, some operating systems provide a variant to threads, named
83: 267:. In a server environment, this is a hazard that makes the entire environment unacceptably fragile. 2222: 2177: 2003: 1998: 1977: 1843: 1500: 1452: 1329: 441: 142: 87: 2247: 2096: 2069: 1894: 1858: 1848: 1649: 1629: 1624: 1605: 1437: 1344: 876: 461: 164:
that ensure the supervisory software cannot be damaged or subverted by user-mode program errors.
150: 114: 1807: 2293: 1969: 1927: 1822: 1546: 1495: 1427: 1384: 1225: 868: 770: 640: 539: 502: 244: 157: 137:
systems, a task runs until it must wait for an external event or until the operating system's
47: 2303: 2102: 2037: 1884: 1700: 1695: 1690: 1659: 1526: 1078: 858: 264: 232: 199: 134: 55: 719: 2167: 2107: 2042: 1889: 1879: 1812: 1644: 1634: 1470: 1432: 1403: 910: 826: 483: 286: 210: 161: 1802: 2298: 2114: 1771: 1664: 1556: 1480: 1442: 1314: 590: 535: 466: 402: 386: 372:, with the operating system supplied by Tandy as an upgrade for disk-equipped systems. 248: 206: 195: 118: 99: 2347: 2187: 2064: 1422: 1261: 1215: 585: 520: 398: 373: 365: 188: 880: 243:
subsystem, cooperative multitasking was once the only scheduling scheme employed by
1787: 1349: 744: 561:
Bigger systems were sometimes built with a central processor(s) and some number of
446: 350: 130: 126: 30: 965: 659:
MASTER PROGRAME AND PROGRAMME TRIALS SYSTEM PART 1 MASTER PROGRAMME SPECIFICATION
70:
released in 1985, here shown running the MS-DOS Executive and Calculator programs
2308: 1475: 1457: 1240: 1230: 1220: 562: 473:
because switching between threads does not involve changing the memory context.
377: 95: 17: 421: 417: 390: 180: 121:
computers, multitasking allows many more tasks to be run than there are CPUs.
35: 872: 356:
Possibly the earliest preemptive multitasking OS available to home users was
2182: 2157: 1412: 1319: 1245: 1210: 847:"Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment" 611:"Concurrency vs Parallelism, Concurrent Programming vs Parallel Programming" 357: 342: 338: 315: 260: 75: 943: 657: 863: 846: 508:
of general system stability and data integrity, as well as data security.
2232: 2212: 2137: 1541: 410: 406: 176: 2237: 2217: 2192: 1827: 1536: 1465: 1235: 429: 299: 295: 252: 43: 675:"What is the Difference Between Batch Processing and Multiprogramming" 2207: 2202: 1574: 425: 1047: 314:
for computers as small as DEC's PDP-8; it is a core feature of all
1485: 381: 319: 311: 280: 29: 2242: 2172: 2162: 394: 361: 307: 240: 236: 51: 39: 1578: 1051: 2152: 2129: 1521: 906: 380:
followed in 1984, but it was not a big success. Commodore's
1003: 205:
The use of multiprogramming was enhanced by the arrival of
830:. Vol. 16, no. 6. pp. 32–33. Archived from 894:
Eduardo Ciliendo; Takechika Kunimasa (April 25, 2008).
662:. February 1965. section 6 "PRIORITY CONTROL ROUTINES". 440:
Another reason for multitasking was in the design of
277:
Preemption (computing) § Preemptive multitasking
345:"). In primitive systems, the software would often " 2266: 2128: 1968: 1918: 1872: 1836: 1780: 1724: 1673: 1612: 1514: 1451: 1397: 1358: 1293: 1284: 1254: 1201: 1192: 1131: 1085: 576:has introduced new complexities and capabilities. 458:to allow processes to efficiently exchange data. 341:"), and those that are fully utilizing the CPU (" 647:, articles "Multitasking" and "Multiprogramming" 153:that carry out portions of the overall program. 141:forcibly swaps the running task out of the CPU. 469:, such as open files. Threads are described as 46:, a calculator program, the built-in calendar, 637:Encyclopedia of Computer Science Third Edition 1760: 1590: 1063: 8: 845:Liu, C. L.; Layland, James W. (1973-01-01). 102:" may be initiated at fixed time intervals ( 86:execution of multiple tasks (also known as 1597: 1583: 1575: 1290: 1198: 1070: 1056: 1048: 289:running multiple programs at the same time 27:Concurrent execution of multiple processes 896:"Linux Performance and Tuning Guidelines" 862: 801:. Tandy Corporation. 1984. pp. 53–54 334:, as well as modern versions of Windows. 61: 822:"Windows 2000 &16-Bit Applications" 602: 364:, available for computers based on the 263:; both would cause the whole system to 635:Anthony Ralston, Edwin D. Reilly (ed), 7: 25: 966:"What are threads (user/kernel)?" 484:machines with multiple processors 198:, first released in 1961. During 2327: 2326: 1174:Object-oriented operating system 1028:"Operating Systems Architecture" 405:. In 2001 Apple switched to the 175:In the early days of computing, 1798:Analysis of parallel algorithms 769:Downard, Dan (September 1983). 749:The Digital Research Initiative 699:"Evolution of Operating System" 639:, Van Nostrand Reinhold, 1993, 1184:Supercomputer operating system 991:Multitasking different methods 942:. May 28, 2006. Archived from 489:Some systems directly support 310:in 1969, and was available in 194:Another such computer was the 113:Multitasking does not require 1: 1745:Simultaneous and heterogenous 993:Accessed on February 19, 2019 2333:Category: Parallel computing 1159:Just enough operating system 1144:Distributed operating system 285:Kubuntu (KDE Plasma 5) four 2359:Operating system technology 1272:User space and kernel space 936:"Context Switch Definition" 909:. p. 4. Archived from 416:A similar model is used in 318:operating systems, such as 2375: 1640:High-performance computing 1179:Real-time operating system 820:Joseph Moran (June 2006). 567:asymmetric multiprocessing 500: 491:multithreading in hardware 401:-based alternative to the 274: 224: 2322: 2274:Automatic parallelization 1910:Application checkpointing 1375:Multilevel feedback queue 1370:Fixed-priority preemptive 1154:Hobbyist operating system 1149:Embedded operating system 751:. ibiblio.org. 2002-01-30 720:"Preemptive multitasking" 574:symmetric multiprocessing 1418:General protection fault 1169:Network operating system 1123:User features comparison 613:. Oracle. Archived from 393:. In 1988 Apple offered 227:Cooperative multitasking 221:Cooperative multitasking 108:cooperative multitasking 104:pre-emptive multitasking 92:central processing units 2289:Embarrassingly parallel 2284:Deterministic algorithm 1164:Mobile operating system 370:TRS-80 Color Computer 2 271:Preemptive multitasking 38:running simultaneously 2004:Associative processing 1960:Non-blocking algorithm 1766:Clustered multi-thread 1267:Loadable kernel module 1004:"What is a swap file?" 673:Lithmee (2019-05-20). 513:memory management unit 312:some operating systems 290: 71: 68:Microsoft Windows 1.01 59: 2120:Hardware acceleration 2033:Superscalar processor 2023:Dataflow architecture 1620:Distributed computing 1335:Process control block 1301:Computer multitasking 1139:Disk operating system 864:10.1145/321738.321743 471:lightweight processes 284: 65: 42:desktop environment, 33: 2354:Concurrent computing 1999:Pipelined processing 1948:Explicit parallelism 1943:Implicit parallelism 1933:Dataflow programming 1506:Virtual tape library 1098:Forensic engineering 946:on February 18, 2010 916:on February 26, 2015 834:on January 25, 2009. 556:concurrent computing 2223:Parallel Extensions 2028:Pipelined processor 1515:Supporting concepts 1501:Virtual file system 972:. September 8, 1997 798:1984 TRS-80 Catalog 442:real-time computing 179:was expensive, and 2097:Massively parallel 2075:distributed shared 1895:Cache invalidation 1859:Instruction window 1650:Manycore processor 1630:Massively parallel 1625:Parallel computing 1606:Parallel computing 1438:Segmentation fault 1286:Process management 851:Journal of the ACM 777:. pp. 236–240 291: 115:parallel execution 72: 60: 2341: 2340: 2294:Parallel slowdown 1928:Stream processing 1818:Karp–Flatt metric 1572: 1571: 1428:Memory protection 1399:Memory management 1393: 1392: 1385:Shortest job next 1280: 1279: 1079:Operating systems 540:secondary storage 503:Memory protection 497:Memory protection 422:Windows NT family 296:the PDP-6 Monitor 245:Microsoft Windows 233:operating systems 158:memory protection 16:(Redirected from 2366: 2330: 2329: 2304:Software lockout 2103:Computer cluster 2038:Vector processor 1993:Array processing 1978:Flynn's taxonomy 1885:Memory coherence 1660:Computer network 1599: 1592: 1585: 1576: 1527:Computer network 1291: 1199: 1072: 1065: 1058: 1049: 1042: 1041: 1039: 1038: 1024: 1018: 1017: 1015: 1014: 1000: 994: 988: 982: 981: 979: 977: 962: 956: 955: 953: 951: 932: 926: 925: 923: 921: 915: 903:redbooks.ibm.com 900: 891: 885: 884: 866: 842: 836: 835: 817: 811: 810: 808: 806: 793: 787: 786: 784: 782: 766: 760: 759: 757: 756: 745:"UNIX, Part One" 741: 735: 734: 732: 731: 716: 710: 709: 707: 706: 695: 689: 688: 686: 685: 670: 664: 663: 654: 648: 633: 627: 626: 624: 622: 617:on April 7, 2016 607: 467:parent processes 306:in 1967, and in 287:Virtual desktops 200:batch processing 171:Multiprogramming 162:protection rings 135:multiprogramming 66:Multitasking of 56:VLC media player 21: 18:Multiprogramming 2374: 2373: 2369: 2368: 2367: 2365: 2364: 2363: 2344: 2343: 2342: 2337: 2318: 2262: 2168:Coarray Fortran 2124: 2108:Beowulf cluster 1964: 1914: 1905:Synchronization 1890:Cache coherence 1880:Multiprocessing 1868: 1832: 1813:Cost efficiency 1808:Gustafson's law 1776: 1720: 1669: 1645:Multiprocessing 1635:Cloud computing 1608: 1603: 1573: 1568: 1510: 1471:Defragmentation 1456: 1447: 1433:Protection ring 1402: 1389: 1361: 1354: 1276: 1250: 1188: 1127: 1081: 1076: 1046: 1045: 1036: 1034: 1032:cis2.oc.ctc.edu 1026: 1025: 1021: 1012: 1010: 1002: 1001: 997: 989: 985: 975: 973: 964: 963: 959: 949: 947: 934: 933: 929: 919: 917: 913: 898: 893: 892: 888: 844: 843: 839: 827:Smart Computing 819: 818: 814: 804: 802: 795: 794: 790: 780: 778: 768: 767: 763: 754: 752: 743: 742: 738: 729: 727: 718: 717: 713: 704: 702: 697: 696: 692: 683: 681: 672: 671: 667: 656: 655: 651: 634: 630: 620: 618: 609: 608: 604: 599: 582: 548: 532: 530:Memory swapping 505: 499: 455: 438: 279: 273: 229: 223: 211:virtual machine 173: 28: 23: 22: 15: 12: 11: 5: 2372: 2370: 2362: 2361: 2356: 2346: 2345: 2339: 2338: 2336: 2335: 2323: 2320: 2319: 2317: 2316: 2311: 2306: 2301: 2299:Race condition 2296: 2291: 2286: 2281: 2276: 2270: 2268: 2264: 2263: 2261: 2260: 2255: 2250: 2245: 2240: 2235: 2230: 2225: 2220: 2215: 2210: 2205: 2200: 2195: 2190: 2185: 2180: 2175: 2170: 2165: 2160: 2155: 2150: 2145: 2140: 2134: 2132: 2126: 2125: 2123: 2122: 2117: 2112: 2111: 2110: 2100: 2094: 2093: 2092: 2087: 2082: 2077: 2072: 2067: 2057: 2056: 2055: 2050: 2043:Multiprocessor 2040: 2035: 2030: 2025: 2020: 2019: 2018: 2013: 2008: 2007: 2006: 2001: 1996: 1985: 1974: 1972: 1966: 1965: 1963: 1962: 1957: 1956: 1955: 1950: 1945: 1935: 1930: 1924: 1922: 1916: 1915: 1913: 1912: 1907: 1902: 1897: 1892: 1887: 1882: 1876: 1874: 1870: 1869: 1867: 1866: 1861: 1856: 1851: 1846: 1840: 1838: 1834: 1833: 1831: 1830: 1825: 1820: 1815: 1810: 1805: 1800: 1795: 1790: 1784: 1782: 1778: 1777: 1775: 1774: 1772:Hardware scout 1769: 1763: 1758: 1753: 1747: 1742: 1736: 1730: 1728: 1726:Multithreading 1722: 1721: 1719: 1718: 1713: 1708: 1703: 1698: 1693: 1688: 1683: 1677: 1675: 1671: 1670: 1668: 1667: 1665:Systolic array 1662: 1657: 1652: 1647: 1642: 1637: 1632: 1627: 1622: 1616: 1614: 1610: 1609: 1604: 1602: 1601: 1594: 1587: 1579: 1570: 1569: 1567: 1566: 1561: 1560: 1559: 1557:User interface 1554: 1544: 1539: 1534: 1529: 1524: 1518: 1516: 1512: 1511: 1509: 1508: 1503: 1498: 1493: 1488: 1483: 1481:File attribute 1478: 1473: 1468: 1462: 1460: 1449: 1448: 1446: 1445: 1443:Virtual memory 1440: 1435: 1430: 1425: 1420: 1415: 1409: 1407: 1395: 1394: 1391: 1390: 1388: 1387: 1382: 1377: 1372: 1366: 1364: 1356: 1355: 1353: 1352: 1347: 1342: 1337: 1332: 1327: 1322: 1317: 1315:Context switch 1312: 1297: 1295: 1288: 1282: 1281: 1278: 1277: 1275: 1274: 1269: 1264: 1258: 1256: 1252: 1251: 1249: 1248: 1243: 1238: 1233: 1228: 1223: 1218: 1213: 1207: 1205: 1196: 1190: 1189: 1187: 1186: 1181: 1176: 1171: 1166: 1161: 1156: 1151: 1146: 1141: 1135: 1133: 1129: 1128: 1126: 1125: 1120: 1115: 1110: 1105: 1100: 1095: 1089: 1087: 1083: 1082: 1077: 1075: 1074: 1067: 1060: 1052: 1044: 1043: 1019: 995: 983: 957: 927: 886: 837: 812: 788: 761: 736: 711: 690: 665: 649: 628: 601: 600: 598: 595: 594: 593: 591:Task switching 588: 581: 578: 563:I/O processors 547: 544: 531: 528: 501:Main article: 498: 495: 454: 453:Multithreading 451: 437: 434: 403:Classic Mac OS 387:Windows NT 3.1 275:Main article: 272: 269: 249:classic Mac OS 225:Main article: 222: 219: 207:virtual memory 172: 169: 149:up of smaller 119:multiprocessor 100:context switch 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 2371: 2360: 2357: 2355: 2352: 2351: 2349: 2334: 2325: 2324: 2321: 2315: 2312: 2310: 2307: 2305: 2302: 2300: 2297: 2295: 2292: 2290: 2287: 2285: 2282: 2280: 2277: 2275: 2272: 2271: 2269: 2265: 2259: 2256: 2254: 2251: 2249: 2246: 2244: 2241: 2239: 2236: 2234: 2231: 2229: 2226: 2224: 2221: 2219: 2216: 2214: 2211: 2209: 2206: 2204: 2201: 2199: 2196: 2194: 2191: 2189: 2188:Global Arrays 2186: 2184: 2181: 2179: 2176: 2174: 2171: 2169: 2166: 2164: 2161: 2159: 2156: 2154: 2151: 2149: 2146: 2144: 2141: 2139: 2136: 2135: 2133: 2131: 2127: 2121: 2118: 2116: 2115:Grid computer 2113: 2109: 2106: 2105: 2104: 2101: 2098: 2095: 2091: 2088: 2086: 2083: 2081: 2078: 2076: 2073: 2071: 2068: 2066: 2063: 2062: 2061: 2058: 2054: 2051: 2049: 2046: 2045: 2044: 2041: 2039: 2036: 2034: 2031: 2029: 2026: 2024: 2021: 2017: 2014: 2012: 2009: 2005: 2002: 2000: 1997: 1994: 1991: 1990: 1989: 1986: 1984: 1981: 1980: 1979: 1976: 1975: 1973: 1971: 1967: 1961: 1958: 1954: 1951: 1949: 1946: 1944: 1941: 1940: 1939: 1936: 1934: 1931: 1929: 1926: 1925: 1923: 1921: 1917: 1911: 1908: 1906: 1903: 1901: 1898: 1896: 1893: 1891: 1888: 1886: 1883: 1881: 1878: 1877: 1875: 1871: 1865: 1862: 1860: 1857: 1855: 1852: 1850: 1847: 1845: 1842: 1841: 1839: 1835: 1829: 1826: 1824: 1821: 1819: 1816: 1814: 1811: 1809: 1806: 1804: 1801: 1799: 1796: 1794: 1791: 1789: 1786: 1785: 1783: 1779: 1773: 1770: 1767: 1764: 1762: 1759: 1757: 1754: 1751: 1748: 1746: 1743: 1740: 1737: 1735: 1732: 1731: 1729: 1727: 1723: 1717: 1714: 1712: 1709: 1707: 1704: 1702: 1699: 1697: 1694: 1692: 1689: 1687: 1684: 1682: 1679: 1678: 1676: 1672: 1666: 1663: 1661: 1658: 1656: 1653: 1651: 1648: 1646: 1643: 1641: 1638: 1636: 1633: 1631: 1628: 1626: 1623: 1621: 1618: 1617: 1615: 1611: 1607: 1600: 1595: 1593: 1588: 1586: 1581: 1580: 1577: 1565: 1562: 1558: 1555: 1553: 1550: 1549: 1548: 1545: 1543: 1540: 1538: 1535: 1533: 1530: 1528: 1525: 1523: 1520: 1519: 1517: 1513: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1487: 1484: 1482: 1479: 1477: 1474: 1472: 1469: 1467: 1464: 1463: 1461: 1459: 1454: 1450: 1444: 1441: 1439: 1436: 1434: 1431: 1429: 1426: 1424: 1423:Memory paging 1421: 1419: 1416: 1414: 1411: 1410: 1408: 1405: 1400: 1396: 1386: 1383: 1381: 1378: 1376: 1373: 1371: 1368: 1367: 1365: 1363: 1357: 1351: 1348: 1346: 1343: 1341: 1338: 1336: 1333: 1331: 1328: 1326: 1323: 1321: 1318: 1316: 1313: 1310: 1306: 1302: 1299: 1298: 1296: 1292: 1289: 1287: 1283: 1273: 1270: 1268: 1265: 1263: 1262:Device driver 1260: 1259: 1257: 1253: 1247: 1244: 1242: 1239: 1237: 1234: 1232: 1229: 1227: 1224: 1222: 1219: 1217: 1214: 1212: 1209: 1208: 1206: 1204: 1203:Architectures 1200: 1197: 1195: 1191: 1185: 1182: 1180: 1177: 1175: 1172: 1170: 1167: 1165: 1162: 1160: 1157: 1155: 1152: 1150: 1147: 1145: 1142: 1140: 1137: 1136: 1134: 1130: 1124: 1121: 1119: 1116: 1114: 1111: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1091: 1090: 1088: 1084: 1080: 1073: 1068: 1066: 1061: 1059: 1054: 1053: 1050: 1033: 1029: 1023: 1020: 1009: 1005: 999: 996: 992: 987: 984: 971: 967: 961: 958: 945: 941: 937: 931: 928: 912: 908: 904: 897: 890: 887: 882: 878: 874: 870: 865: 860: 856: 852: 848: 841: 838: 833: 829: 828: 823: 816: 813: 800: 799: 792: 789: 776: 772: 771:"Dynamic Uno" 765: 762: 750: 746: 740: 737: 725: 721: 715: 712: 700: 694: 691: 680: 676: 669: 666: 661: 660: 653: 650: 646: 645:0-442-27679-6 642: 638: 632: 629: 616: 612: 606: 603: 596: 592: 589: 587: 586:Process state 584: 583: 579: 577: 575: 570: 568: 564: 559: 557: 552: 545: 543: 541: 537: 529: 527: 524: 522: 516: 514: 509: 504: 496: 494: 492: 487: 485: 481: 480: 474: 472: 468: 463: 459: 452: 450: 448: 443: 435: 433: 431: 427: 423: 419: 414: 412: 408: 404: 400: 399:UNIX System V 396: 392: 388: 383: 379: 375: 374:Sinclair QDOS 371: 367: 366:Motorola 6809 363: 359: 354: 352: 348: 344: 340: 335: 333: 329: 325: 321: 317: 313: 309: 305: 301: 297: 288: 283: 278: 270: 268: 266: 262: 256: 254: 250: 246: 242: 238: 234: 228: 220: 218: 214: 212: 208: 203: 201: 197: 192: 190: 189:Bull Gamma 60 185: 182: 178: 170: 168: 165: 163: 159: 154: 152: 146: 144: 140: 136: 132: 128: 122: 120: 116: 111: 109: 105: 101: 97: 93: 89: 85: 81: 77: 69: 64: 57: 53: 49: 45: 41: 37: 32: 19: 1873:Coordination 1803:Amdahl's law 1739:Simultaneous 1458:file systems 1350:Time-sharing 1300: 1035:. Retrieved 1031: 1022: 1011:. Retrieved 1007: 998: 986: 976:February 26, 974:. Retrieved 969: 960: 950:February 26, 948:. Retrieved 944:the original 939: 930: 918:. Retrieved 911:the original 902: 889: 857:(1): 46–61. 854: 850: 840: 832:the original 825: 815: 803:. Retrieved 797: 791: 779:. Retrieved 774: 764: 753:. Retrieved 748: 739: 728:. Retrieved 726:. 2009-11-03 723: 714: 703:. Retrieved 701:. 2017-09-29 693: 682:. Retrieved 678: 668: 658: 652: 636: 631: 619:. Retrieved 615:the original 605: 571: 565:, a kind of 560: 553: 549: 533: 525: 517: 510: 506: 488: 477: 475: 470: 460: 456: 447:process time 439: 415: 409:-influenced 368:such as the 355: 336: 302:in 1964, in 292: 261:busy waiting 257: 230: 215: 204: 193: 186: 174: 166: 155: 147: 131:time-sharing 127:input/output 123: 112: 80:multitasking 79: 73: 2309:Scalability 2070:distributed 1953:Concurrency 1920:Programming 1761:Cooperative 1750:Speculative 1686:Instruction 1476:Device file 1466:Boot loader 1380:Round-robin 1305:Cooperative 1241:Rump kernel 1231:Multikernel 1221:Microkernel 1118:Usage share 775:The Rainbow 724:riscos.info 546:Programming 378:Sinclair QL 332:derivatives 181:peripherals 96:main memory 94:(CPUs) and 2348:Categories 2314:Starvation 2053:asymmetric 1788:PRAM model 1756:Preemptive 1406:protection 1362:algorithms 1360:Scheduling 1309:Preemptive 1255:Components 1226:Monolithic 1093:Comparison 1037:2018-03-17 1013:2018-03-26 755:2014-01-09 730:2014-07-27 705:2020-04-14 684:2020-04-14 679:Pediaa.Com 597:References 418:Windows 9x 391:Windows 95 304:OS/360 MFT 84:concurrent 36:Linux Mint 2048:symmetric 1793:PEM model 1496:Partition 1413:Bus error 1340:Real-time 1320:Interrupt 1246:Unikernel 1211:Exokernel 1008:kb.iu.edu 940:linfo.org 873:0004-5411 621:March 23, 536:swap file 534:Use of a 436:Real time 389:and then 358:Microware 343:CPU bound 339:I/O bound 330:with its 316:Unix-like 255:systems. 143:Real-time 139:scheduler 88:processes 76:computing 2279:Deadlock 2267:Problems 2233:pthreads 2213:OpenHMPP 2138:Ateji PX 2099:computer 1970:Hardware 1837:Elements 1823:Slowdown 1734:Temporal 1716:Pipeline 1542:Live USB 1404:resource 1294:Concepts 1132:Variants 1113:Timeline 970:tldp.org 920:March 1, 881:59896693 580:See also 554:Various 521:System V 420:and the 411:Mac OS X 407:NeXTSTEP 351:busywait 177:CPU time 2238:RaftLib 2218:OpenACC 2193:GPUOpen 2183:C++ AMP 2158:Charm++ 1900:Barrier 1844:Process 1828:Speedup 1613:General 1537:Live CD 1491:Journal 1455:access, 1453:Storage 1330:Process 1236:vkernel 1103:History 1086:General 462:Threads 430:Itanium 376:on the 349:", or " 324:Solaris 300:Multics 253:RISC OS 239:or the 196:LEO III 151:threads 82:is the 44:Firefox 2331:  2208:OpenCL 2203:OpenMP 2148:Chapel 2065:shared 2060:Memory 1995:(SIMT) 1938:Models 1849:Thread 1781:Theory 1752:(SpMT) 1706:Memory 1691:Thread 1674:Levels 1345:Thread 1216:Hybrid 1194:Kernel 879:  871:  805:14 May 643:  479:fibers 426:x86-64 160:, and 54:, and 2178:Dryad 2143:Boost 1864:Array 1854:Fiber 1768:(CMT) 1741:(SMT) 1655:GPGPU 1547:Shell 1486:Inode 914:(PDF) 899:(PDF) 877:S2CID 781:9 May 397:as a 382:Amiga 320:Linux 2243:ROCm 2173:CUDA 2163:Cilk 2130:APIs 2090:COMA 2085:NUMA 2016:MIMD 2011:MISD 1988:SIMD 1983:SISD 1711:Loop 1701:Data 1696:Task 1108:List 978:2015 952:2015 922:2015 869:ISSN 807:2024 783:2024 641:ISBN 623:2016 428:and 395:A/UX 362:OS-9 347:poll 326:and 308:Unix 298:and 265:hang 247:and 241:JES2 237:CICS 209:and 187:The 52:GIMP 40:Xfce 2258:ZPL 2253:TBB 2248:UPC 2228:PVM 2198:MPI 2153:HPX 2080:UMA 1681:Bit 1564:PXE 1552:CLI 1532:HAL 1522:API 1325:IPC 907:IBM 859:doi 360:'s 328:BSD 110:). 74:In 48:Vim 2350:: 1307:, 1030:. 1006:. 968:. 938:. 905:. 901:. 875:. 867:. 855:20 853:. 849:. 824:. 773:. 747:. 722:. 677:. 569:. 493:. 486:. 449:. 413:. 322:, 78:, 50:, 1598:e 1591:t 1584:v 1401:, 1311:) 1303:( 1071:e 1064:t 1057:v 1040:. 1016:. 980:. 954:. 924:. 883:. 861:: 809:. 785:. 758:. 733:. 708:. 687:. 625:. 58:. 20:)

Index

Multiprogramming

Linux Mint
Xfce
Firefox
Vim
GIMP
VLC media player

Microsoft Windows 1.01
computing
concurrent
processes
central processing units
main memory
context switch
pre-emptive multitasking
cooperative multitasking
parallel execution
multiprocessor
input/output
time-sharing
multiprogramming
scheduler
Real-time
threads
memory protection
protection rings
CPU time
peripherals

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