An operating system (OS) is the software that manages the sharing of the
resources of a computer and provides programmers with an interface used to access those
resources. An operating system processes system data and user input, and responds by
allocating and managing tasks and internal system resources as a service to users and
programs of the system. At the foundation of all system software, an operating system
performs basic tasks such as controlling and allocating memory, prioritizing system requests,
controlling input and output devices, facilitating networking and managing file systems.
Most operating systems come with an application that provides a user interface for managing
the operating system, such as a command line interpreter or graphical user interface.
The operating system forms a platform for other system software and for application software.
The most commonly-used contemporary desktop and
laptop (notebook) OS is Microsoft Windows. More powerful
servers often employ
Linux, FreeBSD, and other Unix-like systems.
However, these Unix-like operating systems, especially
Mac OS X, are also used
on personal computers.
Most operating systems enable concurrent execution of many processes and programs at once via
multitasking, even with one CPU. The mechanism was used in mainframes since the early 1960s,
but in the personal computers it became available in 1990s. Process management is an operating
system's way of dealing with running those multiple processes. On the most fundamental of computers
(those containing one processor with one core) multitasking is done by simply switching processes
quickly. Depending on the operating system, as more processes run, either each time slice will
become smaller or there will be a longer delay before each process is given a chance to run.
Process management involves computing and distributing CPU time as well as other resources.
Most operating systems allow a process to be assigned a priority which affects its allocation
of CPU time. Interactive operating systems also employ some level of feedback in which the
task with which the user is working receives higher.
|
|