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
925:
829:
872:
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:
17:
72:
53:
213:, which determines privilege level within the system, may also be used to distinguish whether a task is currently preemptable.
1201:
1172:
664:
279:
to determine which process should execute next. Therefore, all processes will get some amount of CPU time at any given time.
79:
1387:
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:
804:
181:
In any given system design, some operations performed by the system may not be preemptable. This usually applies to
976:
920:
895:
865:
68:
443:
were also microcomputer operating systems offering preemptive multitasking as a core feature. These both ran on
1088:
986:
615:
576:
237:
155:
with no assistance or cooperation from the task. This preemptive scheduler usually runs in the most privileged
57:
1392:
1366:
915:
900:
961:
946:
905:
351:
190:
591:, and many other operating systems designed for use in the academic and medium-to-large business markets.
1127:
1074:
491:
206:
198:
1142:
981:
858:
401:
388:
Today, nearly all operating systems support preemptive multitasking, including the current versions of
323:
221:
1177:
996:
956:
951:
910:
376:
283:
182:
1220:
1107:
971:
632:
261:
93:
966:
428:
210:
46:
833:
780:
1354:
1293:
1182:
1162:
1069:
703:
291:
265:
152:
729:
1137:
1103:
1005:
941:
627:
431:
when configured with disk drives, with the operating system supplied by Tandy as an upgrade.
276:
257:
160:
145:
1334:
1308:
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:
1303:
1255:
1132:
532:
The earliest version of
Windows to support a limited form of preemptive multitasking was
526:
339:
272:
1240:
1147:
522:
479:
501:
compatible systems natively supporting preemptive multitasking/multithreading include
1349:
1298:
1230:
1187:
1028:
670:
660:
541:
474:, did not support multitasking at all, however alternative operating systems such as
463:
389:
176:
1329:
881:
373:
148:
1273:
1235:
1206:
545:
514:
452:
156:
1359:
1283:
1245:
1117:
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
1381:
1268:
1225:
1064:
1018:
674:
611:
506:
432:
424:
1152:
327:
303:
229:
688:
Khanna, S.; Sebree, M.; Zolnovsky, J. "Realtime scheduling in SunOS 5.0".
1278:
1260:
1043:
1033:
1023:
808:
533:
556:
549:
510:
471:
456:
225:
1215:
1122:
1048:
1013:
568:
483:
416:
369:
319:
315:
186:
141:
133:
850:
35:
1344:
607:
599:
264:
system wherein processes or tasks must be explicitly programmed to
805:"How 16-Bit and 32-Bit Programs Multitask in Windows 95 (Q117567)"
494:
provided preemptive multitasking on 1980s-era personal computers.
1339:
1038:
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:
1288:
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:
1324:
598:
to a preemptive model (and a preemptive API did exist in
405:
822:
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
1379:
650:
648:
866:
645:
322:"). In early systems, processes would often "
260:, which permits preemption of tasks, from a
170:
482:did support preemptive multitasking. Other
873:
859:
830:"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
797:
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:
1380:
610:, is an operating system based on the
880:
854:
58:adding citations to reliable sources
29:
216:Most modern operating systems have
24:
25:
1404:
383:
977: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
987:Supercomputer operating system
696:
681:
13:
1:
638:
455:of relocatable code blocks ("
345:
258:multitasking operating system
962:Just enough operating system
947:Distributed operating system
462:Early operating systems for
7:
1388:Operating system technology
1075: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:
1409:
982: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
1317:
1254:
1200:
1178:Multilevel feedback queue
1173:Fixed-priority preemptive
1161:
1096:
1087:
1057:
1004:
995:
957:Hobbyist operating system
952:Embedded operating system
934:
888:
708:The Linux Kernel Archives
256:is used to distinguish a
171:User mode and kernel mode
1221:General protection fault
972:Network operating system
926: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
18:Pre-emptive multitasking
967:Mobile operating system
563:(native applications),
429:TRS-80 Color Computer 2
254:preemptive multitasking
248:Preemptive multitasking
1070:Loadable kernel module
299:time-shared scheduling
185:functions and service
1138:Process control block
1104:Computer multitasking
942:Disk operating system
628:Computer multitasking
550:Windows 95, 98 and Me
546:virtual 8086 machines
203:system responsiveness
1393:Concurrent computing
1309:Virtual tape library
901:Forensic engineering
527:virtual DOS machines
286:can also initiate a
244:, since version 5).
54:improve this article
1318:Supporting concepts
1304:Virtual file system
757:1984 TRS-80 Catalog
659:. Boston: Pearson.
273:interrupt mechanism
232:(2.5.4 and newer),
1241:Segmentation fault
1089:Process management
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
1375:
1374:
1231:Memory protection
1202:Memory management
1196:
1195:
1188:Shortest job next
1083:
1082:
882:Operating systems
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
1400:
1330:Computer network
1094:
1093:
1002:
1001:
875:
868:
861:
852:
851:
845:
844:
842:
841:
832:. Archived from
826:
820:
819:
817:
816:
807:. Archived from
801:
795:
794:
792:
790:
785:. Sunshine Books
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:
1408:
1407:
1403:
1402:
1401:
1399:
1398:
1397:
1378:
1377:
1376:
1371:
1313:
1274:Defragmentation
1259:
1250:
1236:Protection ring
1205:
1192:
1164:
1157:
1079:
1053:
991:
930:
884:
879:
849:
848:
839:
837:
828:
827:
823:
814:
812:
803:
802:
798:
788:
786:
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:
1406:
1396:
1395:
1390:
1373:
1372:
1370:
1369:
1364:
1363:
1362:
1360:User interface
1357:
1347:
1342:
1337:
1332:
1327:
1321:
1319:
1315:
1314:
1312:
1311:
1306:
1301:
1296:
1291:
1286:
1284:File attribute
1281:
1276:
1271:
1265:
1263:
1252:
1251:
1249:
1248:
1246:Virtual memory
1243:
1238:
1233:
1228:
1223:
1218:
1212:
1210:
1198:
1197:
1194:
1193:
1191:
1190:
1185:
1180:
1175:
1169:
1167:
1159:
1158:
1156:
1155:
1150:
1145:
1140:
1135:
1130:
1125:
1120:
1118:Context switch
1115:
1100:
1098:
1091:
1085:
1084:
1081:
1080:
1078:
1077:
1072:
1067:
1061:
1059:
1055:
1054:
1052:
1051:
1046:
1041:
1036:
1031:
1026:
1021:
1016:
1010:
1008:
999:
993:
992:
990:
989:
984:
979:
974:
969:
964:
959:
954:
949:
944:
938:
936:
932:
931:
929:
928:
923:
918:
913:
908:
903:
898:
892:
890:
886:
885:
878:
877:
870:
863:
855:
847:
846:
821:
796:
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:
1405:
1394:
1391:
1389:
1386:
1385:
1383:
1368:
1365:
1361:
1358:
1356:
1353:
1352:
1351:
1348:
1346:
1343:
1341:
1338:
1336:
1333:
1331:
1328:
1326:
1323:
1322:
1320:
1316:
1310:
1307:
1305:
1302:
1300:
1297:
1295:
1292:
1290:
1287:
1285:
1282:
1280:
1277:
1275:
1272:
1270:
1267:
1266:
1264:
1262:
1257:
1253:
1247:
1244:
1242:
1239:
1237:
1234:
1232:
1229:
1227:
1226:Memory paging
1224:
1222:
1219:
1217:
1214:
1213:
1211:
1208:
1203:
1199:
1189:
1186:
1184:
1181:
1179:
1176:
1174:
1171:
1170:
1168:
1166:
1160:
1154:
1151:
1149:
1146:
1144:
1141:
1139:
1136:
1134:
1131:
1129:
1126:
1124:
1121:
1119:
1116:
1113:
1109:
1105:
1102:
1101:
1099:
1095:
1092:
1090:
1086:
1076:
1073:
1071:
1068:
1066:
1065:Device driver
1063:
1062:
1060:
1056:
1050:
1047:
1045:
1042:
1040:
1037:
1035:
1032:
1030:
1027:
1025:
1022:
1020:
1017:
1015:
1012:
1011:
1009:
1007:
1006:Architectures
1003:
1000:
998:
994:
988:
985:
983:
980:
978:
975:
973:
970:
968:
965:
963:
960:
958:
955:
953:
950:
948:
945:
943:
940:
939:
937:
933:
927:
924:
922:
919:
917:
914:
912:
909:
907:
904:
902:
899:
897:
894:
893:
891:
887:
883:
876:
871:
869:
864:
862:
857:
856:
853:
836:on 2007-10-13
835:
831:
825:
811:on 2008-01-17
810:
806:
800:
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:
1261:file systems
1153:Time-sharing
1111:
838:. Retrieved
834:the original
824:
813:. Retrieved
809:the original
799:
787:. 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:
1279:Device file
1269:Boot loader
1183:Round-robin
1108:Cooperative
1044:Rump kernel
1034:Multikernel
1024:Microkernel
921:Usage share
734:The Rainbow
538:Intel 80386
478:(1981) and
400:(including
352:Timeslicing
211:kernel mode
1382:Categories
1209:protection
1165:algorithms
1163:Scheduling
1112:Preemptive
1058:Components
1029:Monolithic
896:Comparison
840:2007-03-29
815: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
1299:Partition
1216:Bus error
1143:Real-time
1123:Interrupt
1049:Unikernel
1014: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
1345:Live USB
1207:resource
1097:Concepts
935:Variants
916:Timeline
622:See also
608:NeXTSTEP
600:Mac OS 9
492:Coherent
466:such as
447:-family
380:system.
199:deadlock
1340:Live CD
1294:Journal
1258:access,
1256:Storage
1133:Process
1039:vkernel
906:History
889:General
476:MP/M-86
439:on the
437:AmigaOS
402:Android
390:Windows
363:quantum
222:Solaris
94:scholar
1148:Thread
1019:Hybrid
997:Kernel
789:12 May
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:
1350:Shell
1289: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
911:List
791:2024
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
1367:PXE
1355:CLI
1335:HAL
1325:API
1128: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
1384::
1110:,
732:.
706:.
669:.
647:^
587:,
575:,
529:.
509:,
505:,
412:.
396:,
392:,
307:.
228:,
167:.
136:,
1204:,
1114:)
1106:(
874:e
867:t
860:v
843:.
818:.
793:.
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.