Software (2)
Software (2)
Grade 9
Software
Lesson Objectives:
-the differences between systems software and applications software
– the role and basic functions of an operating system
– role and operation of interrupts
-Types of programming languages
-translators
-IDE
General features of system software
» 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.
General features of application software
» used to perform various applications (apps) on a computer
» allows a user to perform specific tasks using the computer’s resources
» may be a single program (for example, Notepad) or a suite of programs
(for example, Microsoft Office)
» user can execute the software as and when they require.
Examples of system softwares
computer. Essentially, they are programs that help to manage, maintain and
control computer resources.
Utility software (utilities)
» virus checkers
» defragmentation software
» back-up software
» security
» screensavers.
Virus checkers (anti-virus software)
Operating systems offer virus checkers, but these must be kept thoroughly up to
date and should run in the background to maintain their ability to guard against
being infected by such malware.
A disk defragmenter will rearrange the blocks of data to store files in contiguous
or portable HDD, it is also good practice to use the operating system back-up
utility.
Security software
manages access control and user accounts (using user IDs and passwords)
» links into other utility software, such as virus checkers and spyware checkers
» oversees the updating of software (does the update request come from a
Device drivers are software that communicate with the operating system and
message such as ‘device not recognised’ would appear on the screen. As soon
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.
Operating systems
An operating system is a software program that manages
computer resources. Operating systems allow components
to communicate with each other and enables the computer
to run software applications
Functions of Operating System:
Human computer interface (HCI)
1.CLI :Command line interface
2.GUI:Graphical User Interface
CLI:
1.A CLI requires a user to type in instructions in order to choose options from
2.There are often a number of commands that need to be typed in, for example, to
save or load a file.
3.The user has to therefore learn a number of commands just to carry out basic
operations.
4. It is also slow having to key in these commands every time an operation has to
be carried out
GUI
1.A GUI allows the user to interact with a computer (or MP3 player, gaming
device,mobile phone, etc.) using pictures or symbols (icons) rather than having to
type in a number of commands
2.GUIs use various technologies and devices to provide the user interface. One
of the most common is WIMP (windows icons menu and pointing device)
3.Here a mouse is used to control a cursor and icons are selected to open/run
windows. Each window
contains an application and modern computer systems allow several windows to
be open at the same time.
USERS
» CLI: a programmer, analyst or technician; basically somebody who needs to
errors and remove them, initiate memory dumps (contents of the computer
» GUI: the end-user who doesn’t have or doesn’t need to have any great
knowledge of how the computer works; a person who uses the computer to run
» performing specific tasks (for example, create, open, close, delete, rename, copy, and
move)
» ensuring access control mechanisms are maintained (for example, access rights to files,
password protection, or making files available for editing or locking them)
» ensuring memory allocation for a file by reading it from the HDD/SSD and loading it into
memory.
Multitasking
Multitasking allows computers to carry out more than one task (i.e. a process) at
a time. Each of the processes will share the hardware resources under the control
priority
Management of user accounts
Computers allow more than one user to log onto the system. It is therefore important
that users’ data is stored in separate parts of the memory for security reasons (also
refer to security management earlier in this section). Each person logging onto the
computer will be given a user account protected by a user name and password. The
operating system is given the task of managing these
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.
Hardware, Firmware & the OS
known as firmware. This will provide some low-level control for all devices
• Once complete these are sent to RAM to be processed by the operating system
• Overall this creates an extra layer which is to ensure that initially the hardware devices
e.g. keyboard are available and can be communicated directly with the operating
system
-Firmware is found in many hardware devices such as TV remotes,
-We call this firmware the BIOS (basic input/output system), or the bootloader.
-When you power up the computer, it’s job is to provide enough hardware
functionality to locate the OS on the hard disk and begin loading it into memory.
-Once enough of the OS is loaded, it can take control of the computer and continue
• The interrupt handler prioritizes interruptions as they are received, placing them
• For every interruption, the current task needs to be stopped, with it’s status
• Hardware failure
• Software Interrupt - this occurs when an application stops or requests services from the
OS e.g.
• a program is not responding
• division by zero
A low-level programming language interacts directly with the registers and memory.
Programs developed using low level languages are machine dependent and are not portable.
Low level language does not require any compiler or interpreter to translate the source to machine
code.
An assembler may translate the source code written in low level language to machine code.
Machine language
Machine language is closest language to the hardware.
Instructions written in machine language are machine dependent and varies from computer to computer.
A Programmer must have additional knowledge about the architecture of the particular machine, before programming in machine
language
Since, it is very difficult to remember sequence of binaries for different computer architectures. Therefore, nowadays it is not much
in practice.
Assembly language
Assembly language is an improvement over machine language.
Similar to machine language, assembly language also interacts directly with the hardware.
Instead of using raw binary sequence to represent an instruction set, assembly language uses mnemonics.
Mnemonics gave relief to the programmers from remembering binary sequence for specific instructions.
As English words like ADD, MOV, SUB are easy to remember, than binary sequence 10001011.
However, programmer still have to remember various mnemonics for different computer architectures.
Assembly language is still in use. It is used for developing operating systems, device drivers, compilers and other
programs that requires direct hardware access.
High-level Language Low-level Language
Easier for users (humans) to understand, More difficult for users to understand,
read, write, amend. read write and amend.
Easier for users(humans) to debug code. Harder for users to debug code.
Portable, Machine independent Not portable, machine dependent
It must be converted into low level Machine does not need converting.
language before it can be run Assembly language must be assembled
before execution, but this is faster than
from a high-level language.
Cannot directly manipulate the hardware. Can directly manipulate the hardware.
Activity:
Three examples of computer code are given in the table. Identify whether each example of
computer code is High-level language, Assembly language or Machine code.
Answer:
Translators
● A compiler takes an entire program and a lot of time to analyze the source code,
whereas the interpreter takes a single line of code and very little time to analyze it.
● A compiler displays all errors after compilation. If your code has mistakes, it will not
compile. But the interpreter displays errors of each line one by one.
Once a program is compiled the machine code can be used again and again to perform the same
task without re-compilation.
If errors are detected, then an error report is produced instead of a compiled program.
Compilers
A Compiler is a program or set of programs that converts source code written in a high-level language to low-
level language (assembly language or machine language).
A programming language can have many compilers. For example – GCC C, Turbo C, Quick C etc. are
different compilers for C programming language.
more likely to crash the computer since the machine code produced runs directly on the processor
it is more difficult to modify the executable code, since it is in machine code format
Interpreter
Interpreter
An interpreter is a computer program that reads a statement from a program
written in a high-level language, translates it, performs the action specified and
then does the same with the next statement and so on. If there is an error in the
statement then execution ceases and an error message is output, sometimes with
a suggested correction.
● Interpreted programs run more slowly as the processor has to wait for each
instruction to be translated before it can be executed.
● Additionally, the program has to be translated every time it is run.
● Interpreters do not produce an executable file that can be distributed. As a result,
the source code program has to be supplied, and this could be modified without
permission.
● Interpreters do not optimise code - the translated code is executed as it is.
Assemblers
code can be used again and again to perform the same task without re-assembly.
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
use a separate text editor. This speeds up the program development process.
A runtime environment with a debugger
A debugger is a program that runs the program under development and allows
the source code. A report window then shows the contents of the variables and
expressions evaluated at that point in the program. This allows the programmer
to see if there are any logic errors in the program and check that the program
works as intended.
Error diagnostics and auto-correction
programming code.
Most code editors colour code the words in the program and lay out the program