Unix has preemptive multitasking, in
which timeslices are allocated by a scheduler which routinely
interrupts or pre-empts the running process in order to hand control
to the next one. Almost all modern operating systems support
preemption.
Note that “multitasking” is not the same as
“multiuser”. An operating system can be multitasking
but single-user, in which case the facility is used to support a
single console and multiple background processes. True multiuser
support requires multiple user privilege domains, a feature we'll
cover in the discussion of internal boundaries a bit further on.
To design the perfect anti-Unix, don't support multitasking at
all — or, support multitasking but cripple it by surrounding
process management with a lot of restrictions, limitations, and
special cases that mean it's quite difficult to get any actual use out
of multitasking.
[an error occurred while processing this directive]