CHAPTER 4: SOFTWARE
4.1Types of software and interrupts
All computers begin life as a group of connected hardware items. Without software, the hardware items would be
useless. This section considers the link between hardware and software.
You will notice from Figure (slide 1) that there are two types of software: system
software and application software:
General features of system software General features of application software
» set of programs to control and manage the operation » used to perform various applications (apps) on a
of computer hardware computer
» provides a platform on which other software can run » allows a user to perform specific tasks using the
» required to allow hardware and software to run computer’s resources
without problems » may be a single program (for example, NotePad) or a
» provides a human computer interface (HCI) suite of programs (for example, Microsoft Office)
» controls the allocation and usage of hardware » user can execute the software as and when they
resources. require.
APPLICATION SOFTWARE SYSTEM SOFTWARE
(Programs that allow the user to do specific
tasks) (programs that allow the hardware to run properly and
allow the user to communicate with the computer)
Examples of typical application software
Examples of typical system software
• WORD PROCESSOR
• SPREADSHEET
• COMPILERS
• DATABASE
• LINKERS
• CONTROL AND MEASURING SOFTWARE:
• DEVICE DRIVERS
APPS
• OPERATING SYSTEMS (O/S)
• PHOTO EDITING SOFTWARE
• UTILITIES
• VIDEO EDITING SOFTWARE
• GRAPHICS MANIPULATION SOFTWARE Activity 4.1
Question 1
Utility software (utilities)
Computer users are provided with a number of utility programs (often simply referred to as utilities) that are part
of the system software.
Utility programs offered by most computer system software include:
• virus checkers
• defragmentation software
• disk contents analysis and repair
• file compression and file management
• back-up software
• Security
• screensavers
Device drivers
Device drivers are software that communicate with the operating system and translate data into a format
understood by a hardware peripheral device. Without device drivers, a hardware device would be unable to
work with a computer – a message such as ‘device not recognised’ would appear on the screen. As soon
1.as a device is plugged into a USB port (for example, a memory stick, printer or camera), the operating
system looks for the appropriate device driver.
4.1.2 Operating System
To enable computer systems to function correctly and allow users to communicate with computer systems,
software known as an operating system needs to be installed.
An operating system provides both the environment in which applications can be run and a useable interface
between humans and computer. An operating system also disguises the complexity of computer software and
hardware. Common examples of operating systems include:
Microsoft Windows, Apple Mac OS
Google Android
and Apple IOS
some of the functions in a
typical operating system.
Human computer interface (HCI)
The human computer interface (HCI) is in the form of a Command Line Interface (CLI) or a
Graphical User Interface (GUI).
GUI interfaces are examples of a
windows, icons, menu and pointing
device (WIMP) environment. More
recently, devices such as smartphones
and tablets invariably use touchscreens
that require a post-WIMP interface – this
allows actions such as pinching and
rotating which would be impossible in a
WIMP environment using a mouse.
Memory management
Memory management is essentially management of the primary storage (RAM) and the data being moved between
RAM and HDD/SSD. It keeps track of all the memory locations.
This part of the OS carries out memory protection to prevent two competing applications from using the same
memory locations at the same time. This would otherwise lead to a potential computer crash, security issues or loss
or corruption of data.
Security management
Security management ensures the integrity, confidentiality and availability of data.
This can be achieved by:
• overseeing software updates when they become available
• ensuring the latest version of software is always being run (which often contains revised security fixes
• running antivirus software and using a firewall to check all traffic to and from the computer
Hardware peripheral management
Hardware management uses device drivers to allow input and output to take place. It manages the queues and
buffers to ensure data is being handled correctly and that the CPU performs to its maximum.
File management
File management maintains file directories and file naming conventions. It can perform file maintenance tasks such
as open, close, delete, rename, copy and so on.
Multitasking
Multitasking allows a computer to carry out more than one task simultaneously. To allow this to happen, the OS needs to
constantly monitor the status of each process by ensuring:
• all resources are allocated specific processor time
• all processes can be interrupted as and when necessary
• priorities are used so that a given resource is used in the most efficient
manner and that the required resources are made available as and when
necessary.
Multitasking diagram
Management of user accounts
User account management allows more than one user to log into the computer by ensuring each user’s data is
stored in a separate part of memory. An administrator oversees the management of user accounts.
4.1.3 Running of applications
When a computer starts up, part of the operating system needs to be loaded into RAM – this is known as
booting up the computer (or a bootstrap loader). The start-up of the computer’s motherboard is handled by the
basic input/output system (BIOS). The BIOS tells the computer where the storage device that holds the operating
system can be found; it then loads the part of the operating system that is needed and executes it.
The BIOS is often referred to as firmware.
4.1.4 Interrupts
An interrupt is a signal sent from a device or software (or it can be an internal signal) to the microprocessor. This
will cause the microprocessor to temporarily stop what it is doing so it can service the interrupt. Causes of interrupts
include those shown below.
4.2 Types of programming language, translators and IDEs
Programmers use many different programming languages to communicate with computers. Computers only ‘understand’ their own
language, called machine code. A program needs to be translated into machine code before it can be ‘understood’ by a computer.
A computer program is a list of instructions that enable a computer to perform a specific task. Programmers use many different
programming languages to communicate with computers. Computer programs can be written in high-level languages (HLLs) and
low-level languages (LLLs).
High-level languages are used by the majority of programmers as they make it much easier and quicker to develop and maintain
programs. Examples of high-level languages include Visual Basic, Python and Java.
Low-level languages are used by programmers who need to develop special routines that make best use of memory, the
computer’s instruction set and hardware. Most programs are written in assembly language, which is translated into machine
code.
4.2.2 Assembly languages
Fewer programmers write programs in an assembly
language. Those programmers who do, do so for the
following reasons:
• to make use of special hardware
• to make use of special machine-dependent
instructions
4.2.3 Translators
Programs are written in a form that computer programmers can understand. Computers use programs with binary
instructions so programs must be translated into binary for the computer to follow them. A translator is a utility
program. There are several types of translator program performing different tasks.
4.2.4 Advantages and disadvantages of compilers and interpreters
4.2.5 Integrated Development Environment (IDE)
An Integrated Development Environment (IDE) is used by programmers to aid the writing and development of
programs. There are many different IDEs available; some just support one programming language, others can be
used for several different programming languages. You may be using PyCharm (for Python), Visual Studio (for Visual
Basic) or BlueJ (for Java) as your IDE.
Exam-style questions
1 2
(a) Virus scanner/Antivirus
Software
(b) Defragmentation
(c) Security software
(d) Screen saver
(e) Device driver
5
(a) C
(b) B
(c) C
(d) D
(e) A
(f) C
(g) C
(h) D
(i) A
(j) B