Software
There are two types of software
1. System software
2. Application software
Features of system software
It is a set of programs to control and manage the operation of computer
hardware
Provides a platform on which other software can run
Required to allow hardware and software to run without problems
Provides a human computer Interface (HCI)
Controls the allocation and usage of hardware resources.
Features of application software
It is used to perform various task on a computer
Allows a user to perform specific tasks using the computer's resources
May be a single program (e.g NotePad) or a suite of programs (e.g
Microsoft Office)
User can execute the software as and when they require.
SYSTEM SOFTWARES
Utility Software (utilities)
These are part of the system software. They are often initiated by the user,
but some, notably virus checkers, often just run in the background without
the need for any user input. 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 as a device is into a USB port, the operating system looks for
the appropriate device driver.
All USB device drivers contain a collection of information about devices
called descriptors; this allows the USB bus to ask a newly connected device
what it is.
Operating systems
The OPERATING SYSTEM (OS) is essentially software running in the
background of a computer system. An OS is the framework that allows users to
communicate with computer hardware in an interactive way. It manages many of
the basic functions which are shown in the diagram below. Without the OS, most
computers would be very user-unfriendly and the majority of users would find it
almost impossible to work with computers on a day-to-day basis.
One of the most common examples of an operating system is known as Windows
and is used on many personal computers. Other examples include: Linux, Android,
UNIX and DOS. Windows is an example of a single-user multitasking operating
system – this means only one user can use the computer at a time but can have
many applications open simultaneously.
Simple devices with embedded microprocessors don’t always have an operating
system. Household items, such as cookers, microwave ovens and washing
machines only carry out single tasks which don’t vary. The input is usually a
button pressed or a touch screen option selected which activates a simple hardware
function which doesn’t need an operating system to control it.
Functions of the OS
Activity 4.1
Find out how appliances fitted with microprocessors can be controlled and
activated by web-enabled devices such as smart phones.
Running of applications
When a computer starts up, part of the operating system (bootstrap
loader) is loaded into RAM. 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. Firmware is defined as a program
that provides low level control for devices. BIOS program is stored in a
special ROM, called an EEPROM (Electrically Erasable Programmable ROM).
EEPROM is a flash memory chip, which means its contents remain even when
the computer is powered down, it (BIOS) can be rewritten, updated or even
deleted by a user.
While the BIOS is stored on an EEPROM, the BIOS settings are stored on a
CMOS chip (Complementary Metal Oxide Semi-conductor). The CMOS is
powered up at all times via a rechargeable battery on the motherboard.
Therefore, the BIOS settings would be reset if the battery was removed or
disconnected for some reason.
The application software will be under the control of the operating system
and will need to access system software such as the device drivers while it is
running. Different parts of the operating system may need to be loaded in
and out of RAM as the software runs.
Interrupts and Buffers
An INTERRUPT is a signal sent from a device or from software to the
processor that causes the processor to temporarily stop what it is doing and
service the interrupt. Interrupts can occur when, for example:
• a disk drive is ready to receive more data
• an error has occurred, such as a paper jam in a printer
• the user has pressed a key to interrupt the current process
• a software error has occurred – an example of this would be if an .exe file
couldn’t be found to initiate the execution of a program.
Once the interrupt signal is received, the processor either carries on with
what it was doing or stops to service the device/program that generated the
interrupt.
Interrupts allow computers to carry out many tasks or to have
several windows open at the same time. An example would be
downloading a file from the internet at the same time as listening to some
music from the computer library. Whenever an interrupt is serviced, the
status of the current task being run is saved. This is done using an
INTERRUPT HANDLER and once the interrupt has been fully serviced, the
status of the interrupted task is reinstated and it continues from the point
prior to the interrupt being sent.
BUFFERS are used in computers as a temporary memory area. These are
essential in modern computers since hardware devices operate at much
slower speeds than the processor. If it wasn’t for buffers, processors would
spend the majority of their time idle, waiting for the hardware device to
complete its operation. Buffers are essentially filled from the processor or
memory unit and whilst these are emptied to the hardware device, the
processor carries on with other tasks. Buffers are used, for example, when
streaming a video from the internet. This ensures that the video playback
doesn’t keep on stopping to wait for data from the internet.
Buffers and interrupts are often used together to allow standard computer
functions to be carried out.
The diagram below shows how buffers and interrupts are used when a
document is sent to a printer.
Figure 4.2
Activity
Find out how buffers and interrupts are used when sending data to
memories such as DVDs and solid state (e.g. pen drive).
Types of programming
language
Programs are set of instruction that tells the computer what to do, how to do it and when to do it.
Computer Program is a set of instructions that enables a computer to perform a specific task. Computer programs
can be written in different languages which include
1. High-level languages
2. Low-level languages
3. Assembly languages
High-level languages
This allows the programmer to focus on the problem to be solved without focusing on the knowledge of the
hardware and instruction set of the computer that will use the program. Examples include java, pascal, C++, Visual
Basic, python etc.
Advantages of High-level language
1. It is easier to read and understand
2. It takes shorter time to write
3. It can be maintained once in use
Low-level languages
Low level languages are also called machine code. They are binary instructions that a computer understands or
assembly language that needs to be translated into machine codes. They relate to specific architecture and hardware
of a specific computer.
Differences between high and low level languages
High-level Low-level
It is easier to read, write and understand Programs are more difficult to
programs understand
Programs can be larger and take more Program doesn’t take much space in the
memory space primary memory
Programs are easier and quicker to write It takes longer time to write and debug
and debug program
It is easier to maintain program once in
use
It is independent of the type of computer It can make use of special hardware
being used i.e. program does not use
special hardware
Programs can take longer time to execute Program runs faster
It can be debugged at the development
stage
Data manipulation and storage can be
complicated to manage
Translators
This is a utility software that converts a program into machine code (binary) before a computer can use it.
Types of Translators
1. Compilers: is a computer program that translates an entire program written in a high level language into
machine code at once so that it can be directly used by computer to perform a task. If errors are detected, an
error report is produced instead of a compiled program. Compiled programs and be reused without
recompiling each time it runs.
2. Interpreters: is a computer program that translates a program written in high level language into machine
code one line at a time. It reads the statements from a program, translates it, performs the specified action
and do the same with the next statement. If error in the statement, execution cease and an error message is
output, sometimes with a suggested correction. Interpreted programs are interpreted again each time it is
run.
3. Assemblers: is a computer program that translates an entire program written in an assembly language into
machine code so that it ca be directly used by a computer to perform a required task. Assembled program
can be used again and again without re-assembly.
Assignment
1. Make a side-by-side comparison of translators
2. Write the advantages and disadvantages of a compilers and interpreters
3. Give examples of compiled and interpreted programs.
Integrated Development Environment (IDE)
This is used by programmers to aid the writing and development of programs. Some IDEs support only one
programming language while others support several languages.
Features of an IDE
1. Code editor
2. A translator
3. A runtime environment with a debugger
4. Error diagnostics
5. Auto-completion
6. Auto-correction
7. Auto-documenter and pretty printing