330:" while waiting for requested input (such as disk, keyboard or network input). During this time, the process was not performing useful work, but still maintained complete control of the CPU. With the advent of interrupts and preemptive multitasking, these 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.
36:
365:. The scheduler is run once every time slice to choose the next process to run. The length of each time slice can be critical to balancing system performance vs process responsiveness - if the time slice is too short then the scheduler will consume too much processing time, but if the time slice is too long, processes will take longer to respond to input.
552:, 32-bit applications were made preemptive by running each one in a separate address space, but 16-bit applications remained cooperative for backward compatibility. In Windows 3.1x (protected mode), the kernel and virtual device drivers ran preemptively, but all 16-bit applications were non-preemptive and shared the same address space.
379:
to switch between processes when their time slices expire, effectively allowing the processor's time to be shared among a number of tasks, giving the illusion that it is dealing with these tasks in parallel (simultaneously). The operating system which controls such a design is called a multi-tasking
310:
Preemptive multitasking allows the computer system to more reliably guarantee each process a regular "slice" of operating time. It also allows the system to rapidly deal with important external events like incoming data, which might require the immediate attention of one or another process.
333:
Although multitasking techniques were originally developed to allow multiple users to share a single machine, it became apparent that multitasking was useful regardless of the number of users. Many operating systems, from mainframes down to single-user personal computers and no-user
342:), have recognized the usefulness of multitasking support for a variety of reasons. Multitasking makes it possible for a single user to run multiple applications at the same time, or to run "background" processes while retaining control of the computer.
294:'s priority constraint, thus preempting the active task. In general, preemption means "prior seizure of". When the high-priority task at that instance seizes the currently running task, it is known as preemptive scheduling.
297:
The term "preemptive multitasking" is sometimes mistakenly used when the intended meaning is more specific, referring instead to the class of scheduling policies known as
934:
838:
881:
159:, meaning that interruption and then resumption are considered highly secure actions. Such changes to the currently executing task of a
201:. Barring the scheduler from preempting tasks while they are processing kernel functions simplifies the kernel design at the expense of
100:
72:
53:
17:
213:, which determines privilege level within the system, may also be used to distinguish whether a task is currently preemptable.
1210:
1181:
790:
664:
279:
to determine which process should execute next. Therefore, all processes will get some amount of CPU time at any given time.
79:
1396:
755:
314:
At any specific time, processes can be grouped into two categories: those that are waiting for input or output (called "
220:, which are designed to permit tasks to be preempted even when in kernel mode. Examples of such operating systems are
86:
357:
The period of time for which a process is allowed to run in a preemptive multitasking system is generally called the
119:
813:
181:
In any given system design, some operations performed by the system may not be preemptable. This usually applies to
985:
929:
904:
874:
68:
443:
were also microcomputer operating systems offering preemptive multitasking as a core feature. These both ran on
1097:
995:
615:
576:
237:
155:
with no assistance or cooperation from the task. This preemptive scheduler usually runs in the most privileged
57:
1401:
1375:
924:
909:
970:
955:
914:
351:
190:
591:, and many other operating systems designed for use in the academic and medium-to-large business markets.
1136:
1083:
491:
206:
198:
1151:
990:
867:
401:
388:
Today, nearly all operating systems support preemptive multitasking, including the current versions of
323:
221:
1186:
1005:
965:
960:
919:
376:
283:
182:
1229:
1116:
980:
632:
261:
93:
975:
428:
210:
46:
842:
780:
1363:
1302:
1191:
1171:
1078:
703:
291:
265:
152:
729:
1146:
1112:
1014:
950:
627:
431:
when configured with disk drives, with the operating system supplied by Tandy as an upgrade.
276:
257:
160:
145:
1343:
1317:
459:" in Amiga jargon) to multitask preemptively all processes in the same flat address space.
151:, with the intention of resuming it at a later time. This interrupt is done by an external
8:
1312:
1264:
1141:
532:
The earliest version of
Windows to support a limited form of preemptive multitasking was
526:
339:
272:
1249:
1156:
522:
479:
501:
compatible systems natively supporting preemptive multitasking/multithreading include
1358:
1307:
1239:
1196:
1037:
786:
670:
660:
541:
474:, did not support multitasking at all, however alternative operating systems such as
463:
389:
176:
1338:
890:
373:
148:
1282:
1244:
1215:
545:
514:
452:
156:
1368:
1292:
1254:
1126:
595:
594:
Although there were plans to upgrade the cooperative multitasking found in the
502:
448:
444:
335:
287:
202:
194:
164:
415:
An early microcomputer operating system providing preemptive multitasking was
1390:
1277:
1234:
1073:
1027:
674:
611:
506:
432:
424:
1161:
327:
303:
229:
688:
Khanna, S.; Sebree, M.; Zolnovsky, J. "Realtime scheduling in SunOS 5.0".
1287:
1269:
1052:
1042:
1032:
817:
533:
556:
549:
510:
471:
456:
225:
1224:
1131:
1057:
1022:
568:
483:
416:
369:
319:
315:
186:
141:
133:
859:
35:
1353:
607:
599:
264:
system wherein processes or tasks must be explicitly programmed to
814:"How 16-Bit and 32-Bit Programs Multitask in Windows 95 (Q117567)"
494:
provided preemptive multitasking on 1980s-era personal computers.
1348:
1047:
602:, although in a limited sense), these were abandoned in favor of
584:
475:
436:
233:
271:
In simple terms: Preemptive multitasking involves the use of an
618:, which had always provided Unix-like preemptive multitasking.
588:
548:, commonly known as "DOS boxes", which could be preempted. In
518:
498:
467:
409:
241:
1297:
603:
580:
572:
487:
440:
397:
393:
275:
which suspends the currently executing process and invokes a
525:, they could also run multiple DOS programs concurrently in
564:
560:
537:
420:
1333:
598:
to a preemptive model (and a preemptive API did exist in
405:
831:
721:
555:
Preemptive multitasking has always been supported by
60:. Unsourced material may be challenged and removed.
606:that, as a hybrid of the old Mac System style and
690:Proceedings of the USENIX Winter Conference, 1992
687:
350:"Time slice" redirects here. For other uses, see
318:"), and those that are fully utilizing the CPU ("
282:In preemptive multitasking, the operating system
1388:
650:
648:
875:
645:
322:"). In early systems, processes would often "
260:, which permits preemption of tasks, from a
170:
482:did support preemptive multitasking. Other
882:
868:
839:"Re: newbie question: What is a Blue Task"
772:
247:
760:. Tandy Corporation. 1984. pp. 53–54
748:
654:
451:without memory management. Amiga OS used
120:Learn how and when to remove this message
806:
268:when they do not need system resources.
27:Temporarily interrupting a computer task
778:
727:
427:, including home computers such as the
423:, available for computers based on the
14:
1389:
610:, is an operating system based on the
889:
863:
58:adding citations to reliable sources
29:
216:Most modern operating systems have
24:
25:
1413:
383:
986:Object-oriented operating system
710:. Linux Kernel Organization, Inc
614:kernel and derived in part from
34:
728:Downard, Dan (September 1983).
45:needs additional citations for
996:Supercomputer operating system
696:
681:
13:
1:
638:
455:of relocatable code blocks ("
345:
258:multitasking operating system
971:Just enough operating system
956:Distributed operating system
462:Early operating systems for
7:
1397:Operating system technology
1084:User space and kernel space
782:The Sinclair QDOS Companion
621:
604:Mac OS X (now called macOS)
544:to run DOS applications in
189:which, if not permitted to
69:"Preemption" computing
10:
1418:
991:Real-time operating system
704:"Release notes for v2.5.4"
655:Tanenbaum, Andrew (2015).
372:is scheduled to allow the
349:
205:. The distinction between
174:
140:is the act of temporarily
1326:
1263:
1209:
1187:Multilevel feedback queue
1182:Fixed-priority preemptive
1170:
1105:
1096:
1066:
1013:
1004:
966:Hobbyist operating system
961:Embedded operating system
943:
897:
708:The Linux Kernel Archives
256:is used to distinguish a
171:User mode and kernel mode
1230:General protection fault
981:Network operating system
935:User features comparison
779:Pennell, Andrew (1985).
657:Modern operating systems
633:Cooperative multitasking
521:7.02 and higher). Since
262:cooperative multitasking
193:, would tend to produce
976:Mobile operating system
563:(native applications),
429:TRS-80 Color Computer 2
254:preemptive multitasking
248:Preemptive multitasking
18:Preemptive multitasking
1079:Loadable kernel module
299:time-shared scheduling
185:functions and service
1147:Process control block
1113:Computer multitasking
951:Disk operating system
628:Computer multitasking
550:Windows 95, 98 and Me
546:virtual 8086 machines
203:system responsiveness
1402:Concurrent computing
1318:Virtual tape library
910:Forensic engineering
527:virtual DOS machines
286:can also initiate a
244:, since version 5).
54:improve this article
1327:Supporting concepts
1313:Virtual file system
757:1984 TRS-80 Catalog
659:. Boston: Pearson.
273:interrupt mechanism
232:(2.5.4 and newer),
1250:Segmentation fault
1098:Process management
785:. Sunshine Books.
736:. pp. 236–240
523:Concurrent DOS 386
486:systems including
480:Concurrent CP/M-86
464:IBM PC compatibles
340:robotic spacecraft
218:preemptive kernels
1384:
1383:
1240:Memory protection
1211:Memory management
1205:
1204:
1197:Shortest job next
1092:
1091:
891:Operating systems
792:978-0-946408-69-6
666:978-0-13-359162-0
571:systems (such as
542:Virtual 8086 mode
536:, which used the
292:scheduling policy
191:run to completion
177:Kernel preemption
165:context switching
130:
129:
122:
104:
16:(Redirected from
1409:
1339:Computer network
1103:
1102:
1011:
1010:
884:
877:
870:
861:
860:
854:
853:
851:
850:
841:. Archived from
835:
829:
828:
826:
825:
816:. Archived from
810:
804:
803:
801:
799:
776:
770:
769:
767:
765:
752:
746:
745:
743:
741:
725:
719:
718:
716:
715:
700:
694:
693:
685:
679:
678:
652:
559:(all versions),
374:operating system
125:
118:
114:
111:
105:
103:
62:
38:
30:
21:
1417:
1416:
1412:
1411:
1410:
1408:
1407:
1406:
1387:
1386:
1385:
1380:
1322:
1283:Defragmentation
1268:
1259:
1245:Protection ring
1214:
1201:
1173:
1166:
1088:
1062:
1000:
939:
893:
888:
858:
857:
848:
846:
837:
836:
832:
823:
821:
812:
811:
807:
797:
795:
793:
777:
773:
763:
761:
754:
753:
749:
739:
737:
726:
722:
713:
711:
702:
701:
697:
686:
682:
667:
653:
646:
641:
624:
534:Windows/386 2.0
515:Caldera OpenDOS
453:dynamic loading
449:microprocessors
386:
355:
348:
338:(like those in
336:control systems
290:to satisfy the
250:
224:2.0/SunOS 5.0,
195:race conditions
179:
173:
157:protection ring
126:
115:
109:
106:
63:
61:
51:
39:
28:
23:
22:
15:
12:
11:
5:
1415:
1405:
1404:
1399:
1382:
1381:
1379:
1378:
1373:
1372:
1371:
1369:User interface
1366:
1356:
1351:
1346:
1341:
1336:
1330:
1328:
1324:
1323:
1321:
1320:
1315:
1310:
1305:
1300:
1295:
1293:File attribute
1290:
1285:
1280:
1274:
1272:
1261:
1260:
1258:
1257:
1255:Virtual memory
1252:
1247:
1242:
1237:
1232:
1227:
1221:
1219:
1207:
1206:
1203:
1202:
1200:
1199:
1194:
1189:
1184:
1178:
1176:
1168:
1167:
1165:
1164:
1159:
1154:
1149:
1144:
1139:
1134:
1129:
1127:Context switch
1124:
1109:
1107:
1100:
1094:
1093:
1090:
1089:
1087:
1086:
1081:
1076:
1070:
1068:
1064:
1063:
1061:
1060:
1055:
1050:
1045:
1040:
1035:
1030:
1025:
1019:
1017:
1008:
1002:
1001:
999:
998:
993:
988:
983:
978:
973:
968:
963:
958:
953:
947:
945:
941:
940:
938:
937:
932:
927:
922:
917:
912:
907:
901:
899:
895:
894:
887:
886:
879:
872:
864:
856:
855:
830:
805:
791:
771:
747:
720:
695:
680:
665:
643:
642:
640:
637:
636:
635:
630:
623:
620:
596:classic Mac OS
513:(later called
503:Concurrent DOS
445:Motorola 68000
385:
384:System support
382:
347:
344:
288:context switch
249:
246:
172:
169:
128:
127:
42:
40:
33:
26:
9:
6:
4:
3:
2:
1414:
1403:
1400:
1398:
1395:
1394:
1392:
1377:
1374:
1370:
1367:
1365:
1362:
1361:
1360:
1357:
1355:
1352:
1350:
1347:
1345:
1342:
1340:
1337:
1335:
1332:
1331:
1329:
1325:
1319:
1316:
1314:
1311:
1309:
1306:
1304:
1301:
1299:
1296:
1294:
1291:
1289:
1286:
1284:
1281:
1279:
1276:
1275:
1273:
1271:
1266:
1262:
1256:
1253:
1251:
1248:
1246:
1243:
1241:
1238:
1236:
1235:Memory paging
1233:
1231:
1228:
1226:
1223:
1222:
1220:
1217:
1212:
1208:
1198:
1195:
1193:
1190:
1188:
1185:
1183:
1180:
1179:
1177:
1175:
1169:
1163:
1160:
1158:
1155:
1153:
1150:
1148:
1145:
1143:
1140:
1138:
1135:
1133:
1130:
1128:
1125:
1122:
1118:
1114:
1111:
1110:
1108:
1104:
1101:
1099:
1095:
1085:
1082:
1080:
1077:
1075:
1074:Device driver
1072:
1071:
1069:
1065:
1059:
1056:
1054:
1051:
1049:
1046:
1044:
1041:
1039:
1036:
1034:
1031:
1029:
1026:
1024:
1021:
1020:
1018:
1016:
1015:Architectures
1012:
1009:
1007:
1003:
997:
994:
992:
989:
987:
984:
982:
979:
977:
974:
972:
969:
967:
964:
962:
959:
957:
954:
952:
949:
948:
946:
942:
936:
933:
931:
928:
926:
923:
921:
918:
916:
913:
911:
908:
906:
903:
902:
900:
896:
892:
885:
880:
878:
873:
871:
866:
865:
862:
845:on 2007-10-13
844:
840:
834:
820:on 2008-01-17
819:
815:
809:
794:
788:
784:
783:
775:
759:
758:
751:
735:
731:
730:"Dynamic Uno"
724:
709:
705:
699:
691:
684:
676:
672:
668:
662:
658:
651:
649:
644:
634:
631:
629:
626:
625:
619:
617:
613:
609:
605:
601:
597:
592:
590:
586:
582:
578:
574:
570:
566:
562:
558:
553:
551:
547:
543:
539:
535:
530:
528:
524:
520:
516:
512:
508:
507:Multiuser DOS
504:
500:
495:
493:
489:
485:
481:
477:
473:
469:
465:
460:
458:
454:
450:
446:
442:
438:
434:
433:Sinclair QDOS
430:
426:
425:Motorola 6809
422:
418:
413:
411:
407:
403:
399:
395:
391:
381:
378:
375:
371:
366:
364:
360:
353:
343:
341:
337:
331:
329:
325:
321:
317:
312:
308:
306:
305:
300:
295:
293:
289:
285:
280:
278:
274:
269:
267:
263:
259:
255:
245:
243:
239:
235:
231:
227:
223:
219:
214:
212:
208:
204:
200:
197:resulting in
196:
192:
188:
184:
178:
168:
166:
163:are known as
162:
158:
154:
150:
147:
143:
139:
135:
124:
121:
113:
110:February 2009
102:
99:
95:
92:
88:
85:
81:
78:
74:
71: –
70:
66:
65:Find sources:
59:
55:
49:
48:
43:This article
41:
37:
32:
31:
19:
1270:file systems
1162:Time-sharing
1120:
847:. Retrieved
843:the original
833:
822:. Retrieved
818:the original
808:
796:. Retrieved
781:
774:
762:. Retrieved
756:
750:
738:. Retrieved
733:
723:
712:. Retrieved
707:
698:
689:
683:
656:
593:
554:
531:
496:
461:
414:
387:
367:
362:
358:
356:
332:
313:
309:
304:time-sharing
302:
298:
296:
281:
270:
253:
251:
230:Linux kernel
217:
215:
180:
142:interrupting
137:
131:
116:
107:
97:
90:
83:
76:
64:
52:Please help
47:verification
44:
1288:Device file
1278:Boot loader
1192:Round-robin
1117:Cooperative
1053:Rump kernel
1043:Multikernel
1033:Microkernel
930:Usage share
734:The Rainbow
538:Intel 80386
478:(1981) and
400:(including
352:Timeslicing
211:kernel mode
1391:Categories
1218:protection
1174:algorithms
1172:Scheduling
1121:Preemptive
1067:Components
1038:Monolithic
905:Comparison
849:2007-03-29
824:2008-01-17
714:2021-07-03
692:: 375–390.
639:References
557:Windows NT
511:Novell DOS
359:time slice
346:Time slice
226:Windows NT
187:interrupts
175:See also:
138:preemption
80:newspapers
1308:Partition
1225:Bus error
1152:Real-time
1132:Interrupt
1058:Unikernel
1023:Exokernel
675:870646449
569:Unix-like
484:Unix-like
417:Microware
370:interrupt
328:busy-wait
320:CPU bound
316:I/O bound
277:scheduler
252:The term
240:systems (
236:and some
207:user mode
161:processor
153:scheduler
146:executing
134:computing
1354:Live USB
1216:resource
1106:Concepts
944:Variants
925:Timeline
622:See also
608:NeXTSTEP
600:Mac OS 9
492:Coherent
466:such as
447:-family
380:system.
199:deadlock
1349:Live CD
1303:Journal
1267:access,
1265:Storage
1142:Process
1048:vkernel
915:History
898:General
476:MP/M-86
439:on the
437:AmigaOS
402:Android
390:Windows
363:quantum
222:Solaris
94:scholar
1157:Thread
1028:Hybrid
1006:Kernel
798:12 May
789:
764:14 May
673:
663:
589:OS/360
519:DR-DOS
499:MS-DOS
497:Later
472:PC DOS
468:MS-DOS
410:iPadOS
377:kernel
326:" or "
284:kernel
242:NetBSD
183:kernel
96:
89:
82:
75:
67:
1359:Shell
1298:Inode
740:9 May
581:macOS
573:Linux
488:MINIX
457:hunks
441:Amiga
398:Linux
394:macOS
301:, or
266:yield
101:JSTOR
87:books
920:List
800:2024
787:ISBN
766:2024
742:2024
671:OCLC
661:ISBN
612:Mach
579:and
567:and
565:Unix
561:OS/2
517:and
490:and
470:and
435:and
421:OS-9
408:and
324:poll
209:and
149:task
73:news
1376:PXE
1364:CLI
1344:HAL
1334:API
1137:IPC
616:BSD
585:VMS
583:),
577:BSD
540:'s
419:'s
406:iOS
404:),
368:An
361:or
238:BSD
234:AIX
144:an
132:In
56:by
1393::
1119:,
732:.
706:.
669:.
647:^
587:,
575:,
529:.
509:,
505:,
412:.
396:,
392:,
307:.
228:,
167:.
136:,
1213:,
1123:)
1115:(
883:e
876:t
869:v
852:.
827:.
802:.
768:.
744:.
717:.
677:.
354:.
123:)
117:(
112:)
108:(
98:·
91:·
84:·
77:·
50:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.