- 1 Overview
- 2 Definition
- 3 Functions of Operating System
- 4 Quiz
Computer Science Tutor
An operating system is the core software that allows a computer to run as an useful device, it manages the hardware, the user interface and all other software running on the computer.
The original computers operated in a different way to modern devices, the original machines essentially loaded and ran a single program. This was often loaded via punch cards, and when executed the output would be generated. This is essentially how arduino boards work, however it wasn't long before users needed to run multiple programs. This required a piece of software to provide an environment that would allow the user to run the programs required, this piece of software would also need to manage the resources of the device.
Examples include Windows, Linux, iOS, MAC OSX, Android, and many others. It is unlikely to have any exam questions which require you to name a branded operating system.
Functions of Operating System
In simple terms the main functions of an operating system are:
- Read, write and store data
- Configure the computer
- Interact with programs
- Interact with input devices
- Interact with output devices
However you need to know the following detailed functions of an operating system:
- Creating a Virtual Machine / Hide Complexity
- Resource Management
- Creating a User Interface
Creating a Virtual Machine / Hide Complexity
The Operating System creates a virtual machine that accepts a set of instructions, and Creates a Framework for other software to function. This will hide the complexity of the actual hardware and allow developers to create software to run on the virtual machine, and manufacturers to ensure their hardware is compatible with the virtual machine.
Software written for the virtual machine can be used on any device running the same machine. Imagine if a games developer had to create a version of their game for each graphics card in use. Or if Microsoft had to create a different version of Word for each printer or keyboard in use.
Device Drivers are used to interpret between the virtual machine and the actual hardware. They take instructions from the virtual machine and convert them into code to control the specific device. So each printer, graphics card, keyboard could require their own driver to be installed. Often manufacturers will package drivers together so that a series of printers use the same driver. Also manufacturers use off the shelf components so a driver is often written for a specific graphics chipset which works for all graphics card which use the chipset.
The virtual machine executes intermediate code and emulates a standard hardware environment.
An important function of the operating system is to manage the resources of the device. This can be expanded to the following specific functions:
The user can work on several tasks at the same time. Each program, application, and file open must be allocated some memory to use while the computer is running. Some programs and applications are designed to run in the background even though another application has focus. Multitasking is when multiple applications and programs can be open at the same time, the user can then switch between them. Many machines often lack enough actual memory (RAM) and in order to function the operating system uses the hard drive to create virtual memory.
The operating system will need to queue access to the processor if the processor is busy. This will allow the operating system to use the processor efficiently. Some processors have multiple cores, so they can process multiple instructions at a time Users will also multitask and run multiple applications at the same time. Therefore the operating system will need schedule processor to allow them all to run with each application taking its turn and processing in chunks.
Backing Store Management
When files and applications are loaded, they are transferred from backing storage (Hard Drive) into memory. The operating system must maintain a directory of the files stored so they can be quickly accessed. It is important to also know the location of any free space on the backing storage. This will allow files to be saved quickly. The file management system enables a user to create files and folders, copy or move or delete files or folders, files and folders can even be protected from unauthorised access.
The operating system will also manage any input/output devices connected to the machine. This will require a device driver to be installed to decode the virtual machine instructions into a format or instructions which the device will understand. When a user sends a file to the printer, the operating system will communicate with the printer to ensure it is switched on and ready to receive file.
Most operating systems have built in security features at the core, for example some form of user accounts and passwords. Other features include regular updates, firewall, virus checker, system settings etc.
An interrupt is generated by a device when it needs the processor to do something.
For more information see Interrupts
Creating a User Interface
We have already mentioned about an operating system providing a virtual machine, this is what the user will interface with using input and output devices. Interfaces are normally either graphical or command line:
GUI or Graphical User Interface is a way of interacting with a computer by using graphics that make the computer easier to use by showing graphical images that the user can use and see making it so that they can direst the computer without having to know all the code that is required to make the computer do that command.
A GUI will normally be Multi-Tasking because several programs can be open at once because they open within their own window.
A GUI will normally include:
Examples include Windows, Android, iOS etc.
A command line is interacting with a computer by inputting commands with a keyboard to make a computer perform tasks. These are rarely multi-tasking and you can normally enter a single command at a time, even batch commands run one command at a time.
Examples include MSDOS, and Linux. Linux can have a GUI by installing a desktop environment onto the linux core, most distributions come with a pre-installed desktop environment.