Chapter 4- Software
Dr S. Khan
Aims and Objectives
• Difference between system software and application
software
• The Role and basic function of an operating system
• The need for hardware, firmware and operating systems
when running application software
• Role and operation of Interrupts
• Types of programming language, translators and IDEs
• Advantages and disadvantages of high level and low level
• Advantages and disadvantages of compilers and
interpreters
•
System Software and
Application Software
Software
• A program that is designed to perform a
task
System Software
• System Software is 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
Application Software
• Used to perform various application (apps)
on a computer
• Allows a user to perform specific tasks
using the computer resources
• May be a single program or a suite of
program
• User can execute the software as and when
they require
Types of Application Software
• Word Processor- Software is used to
manipulate a text document, create, edit text
and spell checkers
• Spreadsheet – Software is used to organize
and manipulate numerical data, integer, real
and date. Cells uniquely number B6
• Database – Software is used to organize,
manipulate and analyze data. Tables consist of
rows and columns
Types of Application Software
• Photo Editing Software- Software allows a
user to manipulate digital photography stored
on a computer. Change brightness, alter color.
• Video Editing- Software is the ability to
manipulate videos to produce a new video
• Graphics Manipulation- Software allow
bitmap and vector images to be changed.
Bitmap images are made up of pixels
System Software
• Compilers – Computer program that translates
a program written in a high-level language
(HLL) into machine code (code which is
understood by the computer)
• Directly used by a computer to perform a
required task
• Original program is called the source code and
the code after compilation is called the Object
Code
Compilers
• Once a program is compiled the machine
code can be used again to perform the
sane task without re-compilation
• Example of high-level languages include
Java, Python, Visual Basic
Linkers
• Linker is a computer program that takes one or
more object file produced by compiler and
combines them into a single program which can
be run on a computer
• Programming language allows programmers to
write different pieces of code called modules.
• A program is broken up into small and more
manageable sub-tasks
• Final program can be put together by placing all
the modules
Device Driver
• Name given to software that enables one or more
hardware devices to communicate with the computer’s
operating system
• Without driver, a hardware device would be unable to
work with the computer
• All hardware devices requires drivers
• As soon as a device is plugged into the USB port of a
computer the operating system looks for the driver
• An error message will be produced if the driver cant find
Utilities
• Utility programs are software that are designed to carry
out specific tasks on a computer
• Programs help to manage, maintain and control
computer resources
• Examples include:-
• Anti-spyware
• Back-up files
• Disk repair and analysis
• Security
• Disk Defragmenter
Research Task
• Investigate and find information for the following
Utility Software (Pg- 150)
• 1. Virus Check
• 2: Defragmentation software
• 3: Disk contents analysis and repair
• 4: File Compression and File management
• 5. Back-up software
• 6. Security
• 7. Screensavers
Operating System
• Software running in the background of a
computer system.
• Operating systems allow
• 1. Input/ Output operations
• 2. Users to communicate with the computer
• Error handling to take place
• Loading and running of programs to occur
• Managing of user account security- Pssword
Operating System
Operating System
• Human Computer Interface (HCI)- Users
can choose options from menus, options.
GUI allows the user to interact with a
computer using pictures, symbols and
number of commands
Operating System- GUI vs CLI
CLI Vs GUI
• CLI- A programmer, analyst or technicians
who needs to have direct communication
with a computer and new software with
various commands. More technical
experience
• GUI- End user don’t need to have a
knowledge of how the computer works
Operating System – Memory
Management
• Manages the primary storage (RAM) and
allows data to be moved between RAM
and HDD/SSD
• Keep track of all memory location
• Carries out memory protection to ensure
that two competing applications cannot use
the same memory location at the same
time
Memory Management
• If the Memory Management doesn’t work
then:
• Data would be probably be lost
• Application will produce incorrect results
• Potential Security issues
• Computer crashes
Operating System- Security
Management
• Update the operating system with new
patches to ensure security
• Ensuring anti-virus software is always up
to date, preserving the integrity, security
• Ensure the use of privileges to prevent
users entering ‘private areas’ on a
computer that permits multi-user activity
• By recovering data
Hardware Peripheral
Management
• Involves all input and output peripheral
devices
• Communicate with all input and output
devices using device drivers
• Ensure each hardware resource has a
priority so that can be used
File Management
• File naming convention which can be used
i.e. [Link] (docx extension)
• Perform specific tasks such as create,
open, close, delete and rename, copy.
• Maintain the directory structures
• Ensure access control mechanism are
maintained e.g PASSWORD
PROTECTION
Multitasking
• Multitasking allow computer to carry out
more than one tasks at a time
• Each processes will share the hardware
resources under the control of the
operating system software
• The operating system needs to constantly
monitor the status of each of the processes
under its control
Multitasking
• Resources are allocated to a process for a
specific time limit
• The process can be interrupted while its
running
• Process given more priority more
resources can be assigned
Management User Accounts
• Allows more than one user to log onto the
system
• Users data stored in separate parts of the
memory for security reasons.
• Each account will be protected username/
password
• Administrators manages all the users
Primary Vs Secondary
Storage
Primary Memory
• Primary Memory is directly accessible
by the CPU , used to store programs
that are currently running.
• This is divided between RAM/ROM
and the CPU registers( 32/64 bit size)
Structure of Primary Memory
RAM
• RAM is known as Random Access
Memory,Working Memory,Primary
Storage ,IAS or simply Memory.
• RAM is a high speed ,power
dependant ,temporary storage memory
that is used to hold data and programs
currently running on the computer
system.
ROM
• ROM stands for Read Only Memory which
means that it cannot be altered. It is often
referred to as in-built , on-board or
embedded memory.
• ROM is a permanent ,non power
dependant form of memory that is used to
store programs that never change or
programs required by the computer at
start-up.(Bootstrap Loader)
RAM vs ROM
• RAM
• Non-Permanent , Power Dependant ,
Volatile ,Write to and Read from.
• ROM
• Permanent ,Non power dependant,
Non Volatile , Read from only.
RAM Vs ROM
DRAM
• Dynamic RAM (DRAM)
• Each DRAM chip consists of a number of
transistors and capacitors.
• Each of these parts is tiny since a single RAM
chip will contain millions of capacitors and
transistors.
• Capacitors hold the bits of information (0 or 1).
• Transistors act like switches; they allow the chip
control circuitry to read the capacitor or change
the capacitor’s value
DRAM
• DRAMs have a number of advantages
over SRAMs.
• Much less expensive to manufacture than
SRAMs
• Consume less power than SRAMs
• Have a higher memory capacity than
SRAMs.
Static RAM
• A major difference between SRAM and
DRAM is that SRAM does not need to be
constantly refreshed.
• SRAM is much faster than DRAM when it
comes to data access
DRAM VS SRAM
PROM
• A programmable read-only memory (PROM) is
a type of ROM chip that can be altered once.
• A PROM is made up of a matrix of fuses
• Programming a PROM requires the use of a
PROM writer which uses an electric current to
alter specific cells by ‘burning’ fuses in the
matrix
• Due to the method of programming (writing), a
PROM can only be written to once
EPROM
• Erasable programmable read-only memory
(EPROM)
• They use floating gate transistors and
capacitors rather than fuses.
• Ultra violet (UV) light is used to program an
EPROM through a quartz window.
• They are used in applications which are under
development, such as the programming of
new games consoles.
Secondary Memory
• A non-volatile memory , that is not directly accessible
by the CPU, used to hold programs and data on a
permanent basis.
• Much slower than Primary memory.
• Less expensive than Primary memory.
• Portable - Good for transferring files around.
• Store programs and data that are not being used
Firmware
• BIOS is often referred as a firmware.
Program that provides low level control for
devices
• When computer starts – the OS system
needs to be loaded in RAM- this is known
as booting up the computer – bootstrap
loader
Interrupts
• An interrupts is a signal sent from a device
or from software to the microprocessor.
• Interrupt can be cause by
• A timing signal
• Hardware fault
• Software errors that cause a problem
Activity
• Activity 4.1 Pg 164- Answer all Questions
Assembly Language
• The only programming language that CPU
can use is machine code.
• A computer program stored in main memory
is a series of machine code instructions
• Machine code instructions that that CPU can
automatically execute during fetch-execute
cycle.
• Each machine code performs simple tasks
such as storing values
Assembly Language
• The first programming language to be
developed was assemble language,
closely related to machine code
• Uses mnemonics instead of binary
Assembly Language
• Each instructions has an opcode that
identifies the operations to be carried by
the CPU
• Instructions also have an operand that
identifies the data to be used by the opcode
Machine Code
• Machine code is binary sometimes displayed on a
screen as hexadecimals so humans can easily
understand
• Writing program in machine code is time
consuming and error prone
• Only way to test a program written machine code
is to run it
• Any program not written in machine code needs to
be translated before CPU can carry out
instructions
High Level Vs Low Level
Translators Vs Complier
• A program must be translated into binary
before a computer can use it; this is done by a
utility program called a translators
• Complier is a computer program that translates
an entire program written in a high language
HLL into a machine code.
• Directly used by a computer to perform a
required tasks
Interpreter Vs Assembler
• Interpreters- A computer program that reads a
statement from a program written in a high-level
language, translates it perform the action
specified and then does the same with the next
statement
• Assembler- 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
Advantages and
Disadvantages
Integrated Development
Environment (IDE)
• IDE is used by programmers to aid the
writing and development of programs
• IDE usually have these features
• Code Editors
• Translators
• Runtime environment
• Error diagnostics
• Auto-correction
Activity 4.2
End of Chapter
• End of Chapter – Answer all Question Pg
177-179