= Time-sharing operating system
A <time-sharing operating system> multiplexes <CPU>[processor] time among interactive operating-system <operating-system process>[processes] so that each can make progress while sharing one <abstract machine>[machine]. A <timer interrupt> can end the current <time slice>, enter the <kernel (operating system)>[kernel] and let <Process scheduling> select another runnable <operating-system process>[process]. Saving and restoring its <Execution context> lets the interrupted <operating-system process>[process] later resume where it stopped.
In a simplified <round-robin scheduling>[round-robin] example, four always-runnable <operating-system process>[processes] with10ms time slices each receive a turn every40ms, ignoring switch overhead. A blocked <operating-system process>[process] need not consume its turn. Smaller slices reduce scheduling delay but increase the fraction of time spent switching contexts. Interactive responsiveness therefore depends on both the scheduling policy and workload; merely supporting multiple users does not guarantee a latency bound. The1974 Unix paper describes a concrete time-sharing system organized around protected <operating-system process>[processes], <file>[files] and shared system services.<The UNIX Time-Sharing System by Dennis M. Ritchie and Ken Thompson>[process and system-overview sections]{ref}
Back to article page