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