1.7 Systems Software - Contents
In this chapter, you will learn:
- Purpose of system software
- Operating systems
- Utility system software
Purpose of system software
Systems software encompasses the operating system, system utilities and the BIOS (Basic Input Output System)/UEFI (Unified Extensible Firmware Interface).
Systems software manages every action of the computer system, and helps users to tell the computer what they want to do, and how to organise their files and programs.
The BIOS is the Basic Input Output System controls the computer at start-up, to test system hardware, and to load the operating system. Each motherboard has its own custom firmware, to perform actions specific to that motherboard.
The operating system is designed to allow the hardware and software to communicate, manages these devices, controls all the processes, and ensures that everything is running smoothly.
Roles of the operating system
The operating system acts as an interface between the hardware and the software (along with the software requesting access to input/output devices). It is the most important fundamental of all system software. Its roles include:
Hiding the complexities of hardware from the end user
Managing the hardware present
Managing the RAM
Handling system interrupts
Sharing the input/output (I/O) between applications
API or software drivers, to manage peripherals
Controls files on the computer
Examples of operating systems
Operating systems give the user a user interface, to allow the user to interact with the machine. There are many different designs of user interface, but they can be categorised under two headings:
A CLI, or command line interface, is a primitive but powerful tool. It displays only text on-screen, and the user would have to type a command followed by the Return key. It is powerful, as the computer follows the exact command, allowing complex tasks to be performed with ease
A GUI, or Graphical User Interface is made up of “windows” that have a more complex, image based user interface. It is simple and intuitive to use, and many tasks are much easier to perform, without memorizing commands. However, it requires extensive system resources, and may even block of easy access to complex commands.
The OS allocates memory between the different programs at the same time. Programmers don’t need to know where their data is being stored, only that it is.
Similarly, the OS manages the events on the processor, and schedules tasks to run. It creates the illusion of multitasking (on single core/thread CPUs).
Most modern operating systems are interrupt-driven. This means that there is a task that requires the computers immediate attention, and instead the CPU should act upon the interrupt task. Once it is finished, it returns to what it was doing. This is part of the Interrupt Handler (or the Interrupt Service Routine, the ISR).
Beyond GCSE Information
Interrupts are a concept that are beyond GCSE; however, be aware that the operating system must handle tasks in a set order, depending on the type of instruction.
There are two types of interrupts:
Hardware interrupts are used by devices that require attention to the CPU. These include keyboard strokes and mouse triggers.
Software interrupts are caused either by special instruction sets which occur when the software is executed.
For instance, if you try and divide by zero, it will cause an exception, which will be caught by the OS to abort the instruction.
The operating system needs to manage the peripherals that are connected as inputs or outputs. It communicates using software drivers.
An example of a peripheral is a printer; the computer needs to manage the access to this peripheral, and make sure the user can interact with it.
The operating system is required to control the processes that are currently running, whether that be utilizing application program interfaces (APIs), or drivers.
System drivers are small programs that run close to the hardware, and communicate with different pieces of the hardware. This means that the hardware device can communicate with the operating system.
Without a driver, a printer would not be able to communicate with your computer’s operating system.
A user must be able to have the correct permissions for their account. The operating system makes sure the user cannot delete important files, but can utilize the software that they have installed.
Operating systems are required to control all the files on the computer, along with their permissions and file types.
Each file has a file-type, and the operating system can read this, to make sure the correct piece of software opens that file. Additionally, some files will be read-only, so the operating system will make sure that this file does not get modified.
Utility system software
Utility software is system software designed to help analyse, configure, optimize or maintain a computer. Examples of utility software include:
Antivirus software is covered in topic 1.6; malware and viruses (malicious applications) can infect a computer system. As such, anti-virus software is designed to protect against malicious code.
Hard drives become fragmented, meaning that sequential data is stored on different parts of the hard drive platter. This means it takes longer for the computer system to load data off of the drive. A way to fix this is by using defragmentation software, that moves data closer to other related data, speeding up the access times of the disk.
Some software can only run on other operating systems. As such, virtualization software is designed to allow the user to run a sub-operating system, allowing different software packages to be ran.
File management software
A file manager such as Windows Explorer, or Adobe Bridge allows the user to manage, create, delete, move and rename files.
To protect data from being read by the wrong person (whether that be malicious or accidental), files can be encrypted. This means that the file is ran through an algorithm, and is scrambled into cipher text. This means the file can only be read by decryption, using a key.
If there is a problem with the computer’s operating system or hardware, diagnostic software allows the user to view relevant information; this may be as simple as CPU and RAM usage, whilst other diagnostic software might be more involved, with showing you which specific services and software APIs are running.
Compression software reduces the size of files, so that they take up less space on your disk. This also means that the file can be downloaded faster over a network (for example, the internet).
This is covered in more detail in component 2.6.
Backup software can automate the process of creating backups of your data, and can create full or incremental backups of that data. Backups are copies of data to ensure there is a way to restore files and data in case of equipment failure.
Copies of data are usually stored offsite (a location different from where the data is stored locally) in a case of physical damage.
A full backup is a complete backup of everything you need to keep safe. Restoration is fast, as there is no rebuilding data, but it takes much longer to backup.
An incremental backup only contains the files which have been altered since the last full backup. This is a fast method and requires less space, but it is slowest to restore from, as it has to rebuild data from the information saved.