You are on page 1of 24

3$*(

62)7:$5(
3$*(
3$*(

Software
Syllabus
4.1 Types of Software & Interrupts
1 Describe the difference between system x System software provides the services that
software and application software and the computer requires, including operating
provide examples of each system and utility software
x Application software provides the services
that the user requires
2 Describe the role and basic functions of an x Including:
operating system  Managing files
 Handling interrupts
 Providing an interface
 Managing peripherals and drivers
 Managing memory
 Managing multitasking
 Pr rov
ovidininng a Pla
Providing atfor
or
or
orm
Platform for running
fo runnning
runn
ru
applications
app
ap
ppl
pl cat
plic atio
ions
io n
 Providing system security
 Ma Managing
Mana
nagi
na ging
gi ng uuser accounts
s r ac
se acco
c unnts
co
3 U nd rssttan
nder
nd
Understandand ho
and how
w hardware,
ha
ha ffirmware
irmware andd x Applications are run on the operating
an operating
ope
pe
p erarati required
atitiinng system are requ
q ired to run system
applications software x The operating system is run on the firmware
x The bootloader (firmware) is run on the
hardware
4 Describe the role and operation of x Including:
interrupts  How an interrupt is generated
 How it is handled using an interrupt service
routine
 What happens as a result of the interrupts
x Software interrupts include division by zero
and two processes trying to access the same
memory location
x Hardware interrupts include pressing a key
on the keyboard and moving the mouse
3$*(

4.2 Types of Programming Language, Translators and Integrated


Development Environments (IDEs)
1 Explain what is meant by a high-level x Advantages and disadvantages include:
language and a low-level language, – Ease of reading and writing code, e.g.,
including the advantages and low-level is hard to read
disadvantages of each – Ease of debugging code
– Machine independence
– Direct manipulation of hardware
2 Understand that assembly language is a
form of low-level language that uses
mnemonics, and that an assembler is
needed to translate an assembly language
program into machine code
3 Describe the operation of a compiler and x A compiler translates the whole code at
how
an interpreter, including hoow high-level once before executing it, producing an
language is translated by ea ach and how
each executable file
errors are reported x An interpreter translates and executes the
code line-by-line
x A coomppiiller p
compiler r viide
ro dess a
provides ann eerror
rrror rreport
eporrt fo
ep or the
for
w hol
ole co
whole ccode
ode
de iiff er
eerrors
rro
rorss a
arere
e d ettec
ecte
detecteded • An
interpreter stops execution when an error is
found
4 EExplain
xpla
xp lain tthe
hee a dvan
dv annta
a ta
tages
advantages and d isadv
dvan
van
anta
ta gess x
tage
age
disadvantages To iinclude
To nclu
nc l de
lu de a ann ununde
derrs
de rsta
sta
andi
understandingnd
din
ing ththat
att an
of a ccompiler
ompi pile
pi lleer a nd an interpre
and eter
et
interpreter interpreter is mostly used when developing
a program and a compiler is used to
translate the final program
5 Explain the role of an IDEE in writing x Including:
program code and the common functions – Code editors
IDEs provide – Run-time environment
– Translators
– Error diagnostics
– Auto-completion
– Auto-correction
– Pretty print
3$*(

4.1 Types of Software & Interrupts


Software
Set of Instructions (Computer Programs), procedures and documents associated with
computer programs and their use & purpose.
Software is the intermediator between hardware and user.

Operating
System
System Utility
S ftwa
So ware
wa re
Software Prog
gra
ram
Programsms

Device Drivers

Software
So
oftwa
wa
are SSpreadsheet
Sp reead
adsh
sh
heeet

Word Spread

Application Database
Software
Internet
Browser
Games
Software

System Software
System software is software designed to provide a platform for other software.

• Operating System
Types of System • Utility Software
Software • Device Driver
3$*(

Features
 Set of programs to control and manage the operation of computer hardware
 Platform on which other software can run
 Required to allow hardware and software to run without problems
 Human Computer Interface (HCI)
 Controls the allocation and usage of hardware resources.

Application Software
Computer program designed to carry out a sp specific
ecific task other than one relating to the
operation of the computer itself, typically to be used by end-users.
Features
 Perform various applications (Apps) on a computer
 User Friendly
 May be a single program (for example, Paint) or a suite of programs (for example,
Microsoft Office Suite)
 User can execute the software as and when they require
3$*(

Application Software Vs. System Software


3$*(

Utility Software
Utility Programs, part of a System Software, contains number of utility programs.
These are often initiated by users and just run in background without the need of any user
input. Utility Programs often offered by most computer system software includes:

Utility Softwares (Types)


Virus Checkers
Defragmentation Software
Disk Contents Analysis & Repair
File Compression & File Management
Back up Software
Security
Screensavers

Antivirus Software’s
Any device can bee a victim viictim of
of virus attack. Operating systems offer virus checkers, but these
must be kept p thoroughly
tho
horo
rouuug
ghly upup to date
dat andand should
sho
houl run
ulld ru i tthe
un in background
he bac
a kg
ac k ro
oun
und to m maintain
ainnt
ntai
ain their
ab
bilit
iillitity
ity to
ability og uaard
guardda gainst be
against eing iinfected
being nffec
ecte
te
ed by
y ssuch
uch ma
uc alw
war
are.
e RRunning
malware. un ing an
unni
un nti-viruss so
anti-virus oft
ftwware
wa
software e iinn the
background
back kgr rouund on
grou on a computerr will will constantly check for virus attacks.

Defragmentation Software
Since HDD becomes full, blocks used for files will become scattered all over the disk surface.
This will happen because files will become partially deleted, extended and so on overtime.
The consequence of this is slower data access time; the HDD read write head will now require
several moments just to find and retrieve the data in making up the required file. It would
obviously be advantageous if files could be stored in contagious sectors considerably
reducing HDD head movements.
Consider the following scenarios disk with 12 sectors i.e. 0 – 11 per surface:
3$*(

In this example we have three files (1, 2 and 3) stored on track 8 of a disk surface covering
all of 12 sectors:

Now file 2 is dele ete


ted b
deleted byy uuser
sseeer and file 1 has added to it; however, the file 2 sectors which
become mee vvacant
acannt ar
acan
ac aree nnot
ot filled
ed up
ed p st
sstraight
str
tra
raig
ght awa
waay byy ne
away ew fi
new ilee 1 d
file ata
at
data a si
inc
nce thiss w
since oulld rrequire
would eq
quire
‘t‘too
tooo
o much
muc
uch effort’
uc
uch efffo
ort’ for
for the HDD
HD DD resources;
re
eso
souurce
c s;; w
wee no
ow ge
now gett th
tthe
he fo ollllow
wing
followinginng ((f
fiille
(filele 1 is
i nnow
oow
w sstored
torre
to re in
red
the sse ector
ctor
o s 0,, 1
sectors 1,, 2,
2 3, 10 and nnd d 11):

File 1 has now been extendnd


nded
d to write data is sectors 10 and 11; now suppose File 3 is
extended
extended with the equivalen nt 3 blocks of data; this now requires filling up sector 9 and then
equivalent
finding some empty sectorss to write the remainder of the data – suppose the next free
sectors on are on track 11:

If this continues, the files just become more and more scattered throughout the disk surfaces.
It is possible for sectors 4, 5 and 6 (on track 8) to eventually become used if the disk starts
to fill up and it has to use up whatever space is available. A disk defragmenter will
rearrange the blocks of data to store files in contagious sectors wherever possible. After
defragmentation track 8 would now become:
3$*(

This obviously allows for much faster data access and retrieval since the HDD will now
require fewer read-write head movements to access and read files 1 and 3. Track 11 would
be empty after the defragmentation process
Backup Software
While it is sensible to take manual back-ups using, for example, a memory stick or portable
HDD, it is also a good practice to use the operating system back-up utility. This utility will:
 Allow a schedule for backing up files to be made.
 Only carry out a backup procedure if there have been any changes made to a file.

For total security there would be three versions of a file:


version
1) The current (working) veersion stored on the internal HDD or SSD.
2) A locally backed up copy
c py of the file (stored on a portable SSD, for example)
co
3) A remote back upp version
versiion stored well away for the computer (for example, using cloud
storage)

Th
he Microsoft
The Micr
Mi
Micr
cros
ros
osof
o t Wi
Wind
nd
dows environment
Windows envi
vviiironm
men
ent offers
offfe
ferrs the
thee following
folllow
winng facilities
fa
fac
aci
cilititiies using
usiing
g the
thhe back-up
bac
ack-up
up
p utility:
utility:
 RRes
Restore
o e data,
estor
stor dat
da ta, files or the
ata
ta, he computer from the back-up (useful if there has been a problem
he
a nd
andd fi
ffiles
fil
ile
les ha
les hhave
ve been los
ve st and
lost d nneedeed
ee d too b
bee re
reco
cove
co veere
red)
recovered) d
d)
 CCreate
Crrea
eatee a rrestore
estore point ((this
this iiss ba
basically
b sicall kind
i lllly a ki d off ''time
ind machine'
time ma where
chhine'' whe
h re your computer
ca
can
an be
be restored to its sta tta
ate at this earlier point in time; this can be very useful if a very
state
important file has beenn d deleted
eleted and can't be recovered by any of the other utilities)
 Options of where to save ve back-up files; this can be set up from the utility to ensure files
ve
are automatically backed e up to a chosen device.

Security Software
 Security software is an over-arching utility that: for more information on encryption and
decryption.
 Manages access control and user accounts (using user IDs and passwords)
 Links into other utility software, such as virus checkers and spyware checkers
 Protects network interfaces (for example, through the use of firewalls)
 uses encryption and decryption to ensure any intercepted data is meaningless without a
decryption key.
 Oversees the updating of software (does the update request come from a legitimate
source, for example).
3$*(

Screensavers
Screensavers are programs that supply moving and still images on the monitor screen after
a period of inactivity by the computer. They were originally developed to protect older
CRT (cathode ray tube) monitors which would suffer from 'phosphor burn' if the same screen
image remained for any length of time.
Some screensavers are often used to activate useful background tasks that can only go on
when the computer is in an 'idle' state. For example:
 Scans for virus
 Distributed computing applications - these allow apps to use the computer's resources
only when it is idle (for example, an online gaming app).
Device Drivers
Device drivers are software that communicate with the operating system and translate data
into a format understood by by a hardware peripheral device. Without device drivers, a
hardware device would be e uunable
nable to work with a computer - a message such as ‘device not
recognized’ would ap pp
peear
appearar onon the screen. As soon as a device is plugged into a USB port
(for example, a m memory
mory sstick,
emo tick, printer or camera), the operating system looks for the
appropriate
approp device
priate de
d viice
c d driver.
river..

Operating
O peerating SSystem
ystem
Operating
Op perat
errattinng System
Sy em
em provides
providees both
bootthh the
thee eenvironment
nvviirronm
nmen
e t in
en in w
which
hhiichh a
applications
pp pliica
catitit on
o s ca
cann be
b rrun
unn aand
n a
nd
uuseable
sea b e iinterface
abl nte
erf ace betweenn hhumans
rfac
ac umans a and
nd computer.
d compute Ann operati
t r. A operating system
titing syste also
t m al disguises
lso d isguis
i es the
comp
mple
mple
mp lexi
exi
xity
complexity ity of computer software
sofftware and hardware. Common examples of operating systems
include: Microsoft Windows,
Windowss, Apple Mac OS, Google Android and Apple IOS (the latter two
being used primarily on tabl b ets and smartphones).
tablets
3$*(

Most computers store the operating system on a hard disk drive (HDD) or solid state drive
(SSD) since they tend to be very large programs.

Human Computer Interface (HCI)


Human Computer Interface (HCI) is in the form of a Command Line Interface (CLI) or a
Graphical User Interface (GUI).
(GU
G I).
CLI requires a user to ttype yyppe in instructions in order to choose options from menus, open
software, etc. There a are
re ooften
re ftten a number of commands that need to be typed in, for example,
to save or load a fi
ffile.
file
ile
l .

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.
3$*(

GUIs use various technologies and devices to provide the user interface. One of the most
common is WIMP (windows icons menu and pointing device), which was developed for use
on personal computers (PC).

Technological Devices increasingly use touch screens and use post-WIMP interactions. With
this system, fingers are in contact with the screen allowing actions such as pinching and
rotating, which would be difficult to do using a single pointer and a device such as a mouse.
GUI Vs. CLI
Interface Advantages Disadvantages
User
Userr is iinn direct communication user needs to learn a number off
with
w
wit
wiith the ccomputer
omppute
pu ter
er commands
co
comm
ommmandss to carry
carry o
ca out
ut ba
b
basic
asic
operations
o perat
erattio
er onss
User is no
not
ot restricted to a number All commands need to be typed in
Co
Command
omm
m anandd of pre-de
pre-determined
etermi
m ne
min d op
opti
options
tition
onss
on which
whic
wh i h takes
ic taakees time
tiime aand
nd can
can
a be
be error
e ro
error
Linee IInterface
nt rfa
nt
nter face
ce prone
(CLI)
(C
CLI
LI)) It is pos
possible
ssible to alter computer Each command must be typed in
configuration
configurat
attion settings
a using the correct format, spelling, and
so on
small amount
am
mount of computer
memory
user doesn't need to learn any Type of interface uses up
commands considerably more computer memory
than a CLI interface
Graphical More user-friendly User is limited to the icons provided
User Interface on the screen
(GUI) Pointing device (such as a mouse) Needs an operating system, such as
is used to click on an icon to Windows, to operate, which uses up
launch the application this is considerable memory.
simpler than typing in commands
or a touch screen can be used
where applications are chosen
by simply touching the icon on the
screen
3$*(

Who would use each type of interface?


 CLI: a programmer, analyst or technician; basically, somebody who needs to have a
direct communication with a computer to develop new software, locate errors and
remove them, initiate memory dumps (contents of the computer memory at some moment
in time), and so on
 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 software or play games
or stores/manipulates photographs, for example.
Memory Management
Memory Management carries out the following functions:
 RAM (Random Access Memory) manages the primary storage and allows data to move
between RAM and HDD/SDD during the execution of programs.
 Keeps track of all the memory locations
 Carries out memory protection
prootection to ensure that two competing applications cannot use the
same memory locati ion
ons a
locations att the same time.
Security Managem
Management
men
e t
It is
is another
anootthe
an her part
part
rt of OS;
OSS; function
fuuncctition
ion
o of
of Security
Seecu
curity
y Management
Man
anag
ag
agem
gem
e en
entt iss to
to ensure
ennsu
sur
ure integrity,
innt
nteeg
nte grity,
coonfid
den
entiial
alitity
itty & availabili
confidentiality ity
ty off data. This can be achieved as follows:
availability follows:
 C arr
rryi
ying
yin
Carrying ng oout
utt ooperating
peratingg ssystem
yste
tem
te
em up pdaate
updateses as
a a n w
nd
and heen th
when hey b
they eccom
me av
become vai
a la
abblle
available
 Ensu
En
nsuriring
Ensuringing
g tthat
hatt anti-viruss ssoftware
ha oftw
t are (a((and
nd
d oth
tthher secu
other riity sof
security ftware)) iiss al
software) lways up tto
always o d ate,
date,
pr
p res
eser
seerrvi
preservingving the integrity y, security and privacy of data by communicating with.
integrity,
 Making use of privilege es to prevent users entering ‘private areas’ on a computer that
privileges
permits multi-user activity
activiity this helps to ensure the privacy of data.
 Maintaining access right rightsts for all users
 Offering the ability for the recovery of data when it has been lost or corrupted
 Helping to prevent illegal intrusion into the computer system.
Hardware Peripheral Management
Hardware management involves all input and output peripheral devices.
 Communicates with all input and output devices using device drivers
 Uses a device driver to take data from a file (defined by the operating system) and
translates it into a format that the input/output device can understand
 Ensures each hardware resource has a priority so that they can be used and released
as required
 Manages input/output devices by controlling queues and buffers.
3$*(

File Management
 )ile naming conventions which can be used i.e. filename.docx
 Specific tasks
 Directory structures
 Access Control Mechanisms are maintained
 Memory Allocation
Multitasking
It allows a computer to carry out multiple tasks/processes at a time, sharing resources under
the control of OS. For smoothly running all processes OS monitors status of each process.
 Specific time limit
 Interruption
 Priority
Using multitasking managem
eemment, main memory, HDD/SSD and virtual memory are better
management,
managed making the most
mos
osst eeffective
ffective use of CPU time.

User Accounts Manageme


en t
Management
More than one user can use the Computer System, therefore, each user’s data stored in a
different part of a memory for security reasons. Operating System is given the task of
managing different user accounts.
Application Running
When the computer starts up, part of Operating System needs to be loaded. Start-up of
the Computer’s motherboard is handled by the basic input/output system (BIOS). BIOS tells
computer where the storage devices holds the Operating System can be found; it then loads
the part of the Operating System that is needed and executes it.
BIOS is referred as firmware. Firmware is a program that provides low level control for
devices. BIOS are stored in EEPROM which means its content remain even when the computer
is powered off. BIOS can be rewritten, updated or even deleted by a user.
3$*(

Interrupt
Interrupt is a signal sent from a device or from software to the microprocessor. This will
cause the microprocessor to temporarily stop what it is doing so that it can service the
interrupt. Interrupts can be caused by:
 Timing signal
 Input/output process
 Hardware fault
 User interaction
 Software err
rroors
rr
errors
Onnce
ce the
Once thhee interrupt
inter
err
er
rrupt p signal iss recei
pt eive
eivedd, tthe
d,
received, hhe
em icro
ic oproc
ocesssor ei
oces
microprocessor ithherr ccarries
either a riiess oonn wi
ar w thh w
with hatt itt was
ha
what
doin
ng or stops
doing pss ttoo service thtthe
he device or program that caused the interrupt. The computer
nee
eds to
ed
needs o iidentify
dennttifyy tthe
de he interrup
up ty
upt
up
interrupt ype
p a
type andnd
da lsso establish
also est
s ab
a liish
s the
thee level
lev
evele ooff in
el nteerr
r up
interruptuptt prrio
iori
rity
ri
priority.y.
3$*(

Buffers
Temporary storage/memory that holds data being transferred between devices often used
to compensate for different speeds of devices examples printer, disk, etc.
3$*(

4.2 Types of Programming Language, Translators & IDEs


Computer only understands machine code, in order to make computer understand the
languages programmers, a translator is needed. Through programs we tell computer what
to do, when to do and how to do.

Computer program is a set of


of instructions that enable a computer to perform a specific task.
Computer programs can be b written in high-level languages and low-level languages
depending on the task to be performed and the computer to be used.

High Level Languages


High-level languages enable a programmer to focus on the problem to be solved and
require no knowledge of the hardware and instruction set of the computer that will use the
program. Many high-level programming languages are portable and can be used on
different types of computer.

Low Level Languages


Low-level languages relate to the specific architecture and hardware of a particular type
of computer. Low-level languages can refer to machine code, the binary instructions that a
computer understands, or assembly language that needs to be translated into machine code.
3$*(

Language Advantages Disadvantages


High Level Languages Independent of the type of Programs can be larger
computer being used easier to Programs can take longer to
Read, write and understand execute
Programs
Progr ams quicker to write Programs may not be able
programs. make use of special hardware
Programs are easier and
quicker to debug easier to
maintain programs in use
Low Level Languages Special Hardware Longer time to write and
Special machine-dependent debug programs.
instructions Programs are more difficult to
Code that doesn’t take up understand.
much space in primary
memory.
Write
W
Wr ite code that performs a
ttask
ta
ask very quickly.

Assembly
Asse
embly LLanguages
anguages
Assemb
Assembly
A mb blyy llanguage
angu
anguuage consistss ooff English like symbolic codes known as mnemonics. It is a second
gen nerattitionn ooff lan
generation la
anguage. Th
language. TThey
hey represent common strings of machine codes. A language
translator,
tran
tr annslat
a slat
sl o , Assembler,
ator
or Asse
As se
emmb used
bler, is ussed tto convert
o co
conv
nver
nv source
ertt so
er sour ccode
urrce co de ooff As
Assembly
Asse
semb
semblly
mb ly llanguage
angu
an guag
gu agee pr
ag program
prog
ogra
og ram
ra iinto
m in to
obbjeect
object c ccode
odde ofof machine language.
la
annguage. Though Assembly languages are easier than machine
a
language but they are high highly
hlyy detailed and cryptic. So programmers seldom write programs
in Assembly language. Instead Instea
ead programmers use Assembly languages to fine-tune important
ea
parts of programs written inn a high-level language.

Translators
Programs are written by humans in a form that people who are trained as computer
programmers can understand. In order to be used by a computer, programs need to be
translated into the binary instructions, machine code, that the computer understands. Humans
find it very difficult to read binary, but computers can only perform operations written in
binary.
3$*(

A program must be translated into binary before a computer can use it; this is done by a
utility program called a translator.
Interpreters
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.
Assemblers
An assembler is a computer program that translates a program written in an assembly
language into machine code so that it can be directly used by a computer to perform a
required task. Once a program is assembled the machine code can be used again and
again to perform the same task without re-assembly.

Pros & Cons


Translators Pros Cons
Interpolator easier and quicker Cannot run without interpreter
easier to edit
Compiler Stored ready Longer time
Without compiler
Less space in memory
Shorter time
3$*(

Integrated Development Environment


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.
Features
 Code Editors
 Translator
 Runtime Environment with Debugger
 Error Diagnostics
 Auto Completion
 Auto Correction
 Auto Documenter & Pretty
Pret
ettty Printing
Code Editors
A code editor allows
alloows a program
progrgrram
g r to be written and edited without the need to use a separate
text editor.
edi
dito
di tor.
tor
r. TThis
h s speeds
hi sp
peeds up p the e pr
proogra
programram
am de eve
velopm
pmen
pm
development ent pr p
proc
ro es
esss,
process,s, ass ed
ediiting
editing g ccan
an bee done
w
wi thou
th out ch
without cchanging
hangi
g ng
gi ng tto
o a differ
eerrentt pi
different piec
ecee off ssoftware
ec
piece offtwaare
e eeach
achh tittime
ac me tthe
me he p rog
oggra
ram
program m ne
nneeds
eed
edss co
corr
rrecting
rr ec
ec
correcting
or a ddin
ing
adding g to.

Translators
Most IDEs usually provide a translator, this can be a compiler and/or an interpreter, to
enable the program to be executed.
3$*(

Runtime Environment
A debugger is a program that runs the program under development and allows the
programmer to step through the program a line at a time (single stepping) or to set a
breakpoint to stop the execution of the program at a certain point in the source code.

Error Di
Di
Diagnostics Detection
& Detect
tio
ion
Dynamic error checking finds
dss possible errors as the program code is being typed, alerts the
d
programmer at the time andnd provides a suggested correction. Many errors can therefore
nd
during
be found and corrected duri ing program writing and editing before the program is run.

Auto Completion
Code editors can offer context-sensitive prompts with text completion for variable names
and reserved words.
3$*(

Auto Documenter & Pretty printing


IDEs can provide an auto-documenter to explain the function and purpose of programming
code. Most code editors color code the words in the program and lay out the program in a
meaningful way - this is called pretty printing.
3$*(

You might also like