You are on page 1of 32

Notes- Chapter4

Software
For Cambridge IGCSE 0478 (from 2023)

Computer Science 0478

Notes by:
Ms. Shomaila Sohail Notes in accordance with

Contact Number: 00923343328875

1 | Notes By: Ms.Shomaila Sohail Chap4- Software


Syllabus

2 | Notes By: Ms.Shomaila Sohail Chap4- Software


Student Checklist

3 | Notes By: Ms.Shomaila Sohail Chap4- Software


Scan to see history of
Operating system

https://www.youtube.com/wa
tch?v=e-YI-fjI8Nc

Firmware: Firmware is software that provides basic machine instructions to allow the hardware to
function and communicate with other software running on a device.
Software: Software is a set of instructions, data or programs used to operate computers
and execute specific tasks.

System Software: A software designed to provide a platform for other software. It is designed to run
a computer's hardware and application programs. For example operating systems, utility softwares
and device drivers.

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.

Application Software: is a computer program designed to carry out a specific task other than one
relating to the operation of the computer itself, typically to be used by end-users. Word processors,
media players, and accounting software are examples
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 or a suite of programs
4 | Notes By: Ms.Shomaila Sohail Chap4- Software
» user can execute the software as and when they require.

The role of the operating system, utility programs and device drivers
Utility software (utilities) A software designed to help analyze, configure, optimize or maintain a
computer. Utility programs are often initiated by the user, but virus checkers runs in background
without user input.
Examples of Utility Softwares
1. » virus checkers
2. » defragmentation software
3. » disk contents analysis and repair
4. » file compression and file management
5. » back-up software
6. » security
7. » screensavers.
8. » Compression software

1-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.
Features:
» they check software or files before they are run or loaded on a computer.
» anti-virus software compares a possible virus against a database of known viruses.
» they carry out heuristic checking of virus– by checking of software for types of behaviour that
could indicate a possible virus.
» possible infected files or programs are quarantined which:
5 | Notes By: Ms.Shomaila Sohail Chap4- Software
– allows the virus to be automatically deleted, or
– allows the user to make the decision about deletion
» anti-virus software needs to be kept up to date.
» full system checks need to be carried out once a week (some viruses lie dormant and would only
be picked up by this full system scan)

2- Defragmentation software: Defragmentation is the process of consolidating fragmented files on


the user's hard drive. The process of defragmentation moves the data blocks on the hard
drive around to bring all the parts of a file together.

Note: Files become fragmented when data is written to disk, and there is not enough contiguous
space to hold the complete file.

Benefit:
• Increasing the efficiency of data retrieval and thereby improving the overall performance of the
computer as there will be faster data access and retrieval since the HDD will now require fewer
read-write head movements to access and read files.
• cleans the storage and provides additional storage capacity.

3-disk contents analysis and repair: It performs an analysis and repairs errors on disks which are not
in use.
4- back-up utility software: Backup software are computer programs used to perform a backup of
data, programs and files. The backed up copies are later used to restore the original contents in the
event of data loss.
How back-up software work:
» allow a schedule for backing up files to be made
» only carry out a back-up procedure if there have been any changes made to a file

Versions of file: (for security)

1 the current (working) version stored on the internal HDD or SSD


2 a locally backed up copy of the file.
3 a remote back-up version stored well away from the computer (for example, using cloud storage).

The Microsoft Windows environment offers the back-up utility:


» restore data, files or the computer from the back-up.
» create a restore point.
» options of where to save back-up files.
Windows uses File History, which takes snapshots of files and stores them on an external HDD at
regular intervals. File History defaults to backing up every hour and retains past versions of files for
ever unless the user changes the settings.

6 | Notes By: Ms.Shomaila Sohail Chap4- Software


Mac OS offers the Time Machine back-up utility. This erases the contents of a selected drive and
replaces them with the contents from the back-up. It is necessary to have an external HDD or SSD
with the Time Machine utility installed and activated on the selected computer.
Time machine will automatically:
» back-up every hour
» do daily back-ups for the past month, and
» weekly back-ups for all the previous months.

5-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
» protects network interfaces for example Firewalls.
» uses encryption and decryption.
» oversees the updating of software
6-Screensavers
Screensavers are programs that supply moving and still images on the monitor screen after a period
of inactivity by the computer.
» used as part of the computer’s security system. If a computer is unused for five minutes,
and not logged out, the screensaver to be loaded, user will then be automatically logged out
and computer is now locked. This gives an extra layer of security for computers used in an office
environment, for example.
»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:
» virus scans
» distributed computing applications – these allow apps to use the computer’s resources only when
it is idle.
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.
How device drivers work:
» As soon as a device is plugged 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.
» Descriptors include vendor id (VID), product id (PID) and unique serial numbers.
» If a device has no serial number associated with it, the operating system will treat the device as
new every time it is plugged into a USB port.
» Serial numbers must be unique for each device plugged in.

7 | Notes By: Ms.Shomaila Sohail Chap4- Software


APPLICATION SOFTWARE:

These are programs that allow the user to do specific tasks other than one relating to the operation
of the computer itself, typically to be used by end-users. Examples include:

• Word Processor
• Spreadsheet
• Database
• Control and measuring software
• Photo editing software
• Video editing software
• Graphics manipulating software
• Apps

8 | Notes By: Ms.Shomaila Sohail Chap4- Software


9 | Notes By: Ms.Shomaila Sohail Chap4- Software
Topical Questions:

10 | Notes By: Ms.Shomaila Sohail Chap4- Software


11 | Notes By: Ms.Shomaila Sohail Chap4- Software
12 | Notes By: Ms.Shomaila Sohail Chap4- Software
13 | Notes By: Ms.Shomaila Sohail Chap4- Software
Operating systems

An operating system is a collection (or suite) of programs that manages, controls and Provide an
environment in which applications can run on the computer and provides a useable interface
between humans and computer.

Functions of Operating system

1. controlling hardware components


2. providing a human computer interface
3. managing processes to provide multitasking
4. managing the computer's memory
5. managing applications softwares
6. managing security
7. Performs Interrupt handling
8. Manages files
9. Management of user account

 Human Computer Interface

Types/Forms of HCI:

• CLI ( Command Line Interface)


• GUI (Graphical User Interface sometimes known as WIMP (Windows, Icons, Menus,
Pointers) )
• Mobile UI (mobile user interface )

CLI: Command Line Interface:

o User has to type inn instructions.


o User needs to learn the commands
o Slow to type commands
o Advantage: user is in direct communication with computer.
o Used when developing new software, locating and remove errors.
Initiate memory dumps etc

GUI:

o Use WIMP technology.


o User interacts using picture and symbols(icons)
o Icons are selected from screen load applications
o Used by end user to play games, run softwares or store images etc

Mobile UI

o Use post-WIMP interactions


o Use touch screen technology
o Allow pinching and rotating using fingers.

14 | Notes By: Ms.Shomaila Sohail Chap4- Software


 Memory management

Computer memory must be managed to ensure that:

o more than one program can run at the same time


o more than one document can be opened at the same time
o keeps track of all the memory locations
o One method of memory management is known as paging. Memory is broken up into fixed-
size blocks, known as pages.

Further detail:

» manages the primary storage (RAM) and allows data to be moved between RAM and HDD/SSD
during the execution of programs
» If competing applications would by chance use same memory the following might happen:
– data would probably be lost
– applications could produce incorrect results (based on the wrong data being in memory locations)
– potential security issues (if data is placed in the wrong location, it might make it accessible to other
software, which would be a major security issue)
– in extreme cases, the computer could crash.

 Security management
Security management ensure the integrity, confidentiality and availability of data.
» performs operating system updates.
» ensure anti-virus software is always up to date
» check all traffic to and from the computer using firewalls.
» by setting up user accounts using username/passwords to ensure privacy of data.
» maintain access rights for all users
» offers recovery of data and system restore
» 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 translate data into a format that the input/output device can understand.
» ensures priority of each hardware resource so that they can be used and released as required
» manages input/output devices by controlling queues and buffer.
How an operating system manages printing process:
o the printer driver is located and loaded in memory
o the data is sent to a printer buffer for printing
o if the printer is busy (or the printing job has a low priority) then the data is sent to a printer
queue
o it will send various control commands to the printer throughout the printing process
o it receives and handles error messages and interrupts from the printer

15 | Notes By: Ms.Shomaila Sohail Chap4- Software


File management
The main tasks of file management include:
» file naming conventions should be used i.e. filename.docx (where .docx is extension)
» perform specific tasks (for example, create, open, close, delete, rename, copy, and move)
» maintain the directory structures
» ensuring access control mechanisms are maintained
» ensuring memory allocation for a file.

Multitasking: Multitasking allows computers to carry out more than one task at a time. Each of the
processes will share the hardware resources under the control of the operating system software.
How an operating system constantly monitor the status of each of the processes under its control?
» resources are allocated to a process for a specific time limit
» the process can be interrupted while it is running
» the process is given a priority so it can have resources
according to its priority
Benefit of Multitasking:
o Using multitasking management, main memory,
HDD/SSD and virtual memory are better managed
making the most effective use of CPU time.
o This allows computers to carry out more than one task at a time.

Management of user accounts: This refers to allowing more than one user to logon to the computer
system by storing user’s data in separate parts of memory for security reasons. Each user has a user
account protected by a separate user name and password. The administrator can create accounts,
delete user accounts and restrict user account activity.
The operating system manages user accounts by allowing each user to:
» customise their screen layout and other settings
» use separate folders and files and to manage these themselves.
Further details:
Very often an administrator oversees the management of these user accounts. The administrator can
create accounts, delete user accounts and restrict user account activity. On large university or
industrial computers, part of the operating system’s tasks will be to oversee several users’ accounts,
since a complex multi-user system may be in place. The operating system has to maintain accounts
for several users, managing data that may range from personal data and technical research work
down to the ordering of stationery. Multi-access levels permit this control to take place. For example,
a clerk in the office may have access to ordering stationery but can’t have access to any personal
data.

Running of applications: https://www.youtube.com/watch?v=rI4hCfVziQk


Operating system provides a platform to application software to run successfully.
How applications are loaded in RAM and Operating system provides the platform:
When a computer starts up, part of the operating system needs to be loaded into RAM, known as
booting up the computer. The application software will be under the control of the operating system
and will need to access system software such as the device drivers. Different parts of the operating
system may need to be loaded in and out of RAM as the software runs.

16 | Notes By: Ms.Shomaila Sohail Chap4- Software


BIOS:
• The start-up of the computer’s motherboard is handled by the basic input/output system
(BIOS). Which tells
• computer where the storage device that holds the operating system can be found
• then loads the part of the operating system that is needed and executes it.
• The BIOS is often referred to as firmware.
• The BIOS program is stored in a special type of ROM, called an EEPROM (Electrically Erasable
Programmable ROM)
Further details:
EEPROM is a flash memory chip(non-volatile) and allows BIOS to be rewritten, updated or
even deleted by a user. However, 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. Once
the CMOS is re-started, it will access the same BIOS program from EEPROM, but the settings
will now be the default factory settings. Consequently, if a user has changed the BIOS
settings (for example, the clock speed), the settings will revert to those settings made at the
factory once power is restored to the CMOS.

Interrupts
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.
Causes of Interrupts/ Why interrupts are generated:
Interrupts can be caused by:
» a timing signal
» an input/output process (for example, a disk drive or printer requiring more data)
» a hardware fault (for example, a paper jam in the printer)
» user interaction (for example, the user presses a key (or keys) on a keyboard, such as , which
causes the system to be interrupted)
» software errors that cause a problem (for example, an .exe file that cannot be found to initiate the
execution of a program, two processes trying to access the same memory location, or an attempt to
divide by zero).
How interrupts are handled:
Once the interrupt signal is received, operating system uses the instructions in Interrupt handler to
read instructions to service interrupt. The microprocessor either carries on with what it was doing or
stops to service the device or program that caused the interrupt. The computer needs to identify the
interrupt type and the level of interrupt priority.
Steps to service interrupt during fetch decode cycle :

• The status of the current task being run first needs to be saved.
• The contents of the Program Counter (PC) and other registers are saved.

17 | Notes By: Ms.Shomaila Sohail Chap4- Software


• Operating systems have code called an ‘interrupt handler’, which prioritises the interrupts
and saves them in a queue.
• The interrupt service routine (ISR) is executed by loading the start address into the Program
Counter (PC).
• Once the interrupt has been fully serviced, the status of the interrupted task is reinstated
and the process continues.
Buffers:
• Buffers are used in computers as a temporary memory area, and they are essential in
modern computers because hardware devices operate at much slower speeds than the
processor.
• The CPU can control the data in the buffer before sending it other devices.
• They are used between output devices and computers.
• A buffer accepts a stream of data at a certain rate, stores it temporarily, and then streams it
out again at a different rate.
Example1: Buffers are used for example, when streaming a video from the Internet. This ensure
that the video playback does not keep stopping to wait for data from the Internet. In the same way,
many other processes taking place inside the computer may output and leave data through a buffer,
which enables each process to be performed at its own rate.
Example2: Buffers in computers and printers which hold data to be printed. When it is, the buffer is
emptied.
How buffers are used with interrupts in a printer:
Buffer used to store data temporarily since peripherals’ speed is much slower than microprocessor
speed.

18 | Notes By: Ms.Shomaila Sohail Chap4- Software


:
Benefits of using interrupts and buffers:
Interrupts allow computers to perform multitasking. An example would be downloading a file from
the internet at the same time as listening to some music from a library.
It makes sure that vital tasks are dealt with immediately.
It tells CPU that its attention is required.
The high priority tasks are dealt immediately without delays.

19 | Notes By: Ms.Shomaila Sohail Chap4- Software


Q1

Q2

Q3

20 | Notes By: Ms.Shomaila Sohail Chap4- Software


Q4

Q5

21 | Notes By: Ms.Shomaila Sohail Chap4- Software


Answer 1

Answer 2

Answer 3

Answer 4

Answer 5

22 | Notes By: Ms.Shomaila Sohail Chap4- Software


Topic: Types of programming language, translators and Integrated development environments
[IDEs]
Why computer use binary language: Computer uses binary as it is composed of transistors or
switches which have two states On and Off. On can be represented as ‘1’ and off can be with a ‘0’
Software: Software is a set of instructions, data or programs used to operate computers and execute
specific tasks.
Program: a program is a list of instructions that enable a computer to perform a specific task.
Types of Computer Program Languages:
• High Level Languages
• Low level Languages
High level Languages:
Definition: High-level languages are "closer to human language/closer to english." As these
languages are close to natural language - the spoken and written language of humans.
It focuses more on the programming logic rather than the underlying hardware components such as
memory addressing and register utilization.
Program written in a high-level language must be translated into machine language before being
executed by the computer.

Benefits:
Easier to:
» read, understand, maintain as the uses English like statements
» write in a shorter time as the uses English like statements
»Easier to debug at the development stage as the uses English like statements
» maintain once in use.
» The program can run on different platforms because it is compiled into object code.
» They have built-in libraries/ functions, so saves tie when writing program
» Do not need to manipulate memory addresses directly therefore specialist knowledge of this is not
required.
» Less likely to make errors.
» one line of code can carry out multiple commands.

Examples: C++, Delphi, Java, Pascal, Python, Visual Basic They are used to develop desktop
applications, websites, system software’s, utility software’s and many more.

23 | Notes By: Ms.Shomaila Sohail Chap4- Software


Disadvantages:
» It takes additional translation times to translate the source to machine code.
» High level programs are comparatively slower than low level programs.
» Compared to low level programs, they are generally less memory efficient.
» Cannot communicate directly with the hardware.

Low-level languages
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.

» Low level language is closer to the machine level instruction set.


» They provide less or no abstraction from the hardware. A low-level programming language
interacts directly with the registers and memory.
» Since, instructions written in low level languages are machine dependent.
» 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.
Advantages of low level languages
• Programs developed using low level languages are fast and memory efficient.
• Programmers can utilize processor and memory in better way using a low level language.
• There is no need of any compiler or interpreters to translate the source to machine code. Thus,
cuts the compilation and interpretation time.
• Low level languages provide direct manipulation of computer registers and storage.
• It can directly communicate with hardware devices.
Disadvantages of low level languages
• Programs developed using low level languages are machine dependent and are not portable.
• It is difficult to develop, debug and maintain.
• Low level programs are more error prone.
• Programmer must have additional knowledge of the computer architecture of particular
machine, for programming in low level language.

Machine code: A language that computer understands. It is in binary form and consists of 1’s and 0’s
It is not easy to understand program in binary. Machine code is usually shown in hexadecimal.

Assembly languages:
Assembly language needs to be translated into machine code using an assembler in order to run.
Instead of using raw binary sequence to represent an instruction set, assembly language uses
mnemonics. Examples of mnemonics are – ADD, MOV, SUB etc.
Why assembly language is used:
» to make use of special hardware » to make use of special machine-dependent instructions
» to write code that doesn’t take up much space in primary memory
» to write code that performs a task very quickly.

24 | Notes By: Ms.Shomaila Sohail Chap4- Software


Further details:
In order to understand this program, the programmer needs to know that:
» LDA means load value of the variable (in this case, First) into the accumulator
» ADD means add value of variable (in this case, Second) to the value stored in the accumulator
» STO replace the value of the variable (in this case, Sum) by the value stored in the accumulator

Translators
Translator is a utility program that translates a program into binary (machine code) before computer
can use it.
Types of translator:
• Compiler
• Interpreter
• Assembler
Compilers
o A compiler is a computer program that translates an entire program written in a highlevel
language (HLL) into machine code all in one go so that it can be directly used by a computer to
perform a required task.
o Once a program is compiled the machine code can be used again and again to perform the same
task without re-compilation.
o If errors are detected, then an error report is produced instead of a compiled program.

Interpreters
o 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.
o If there is an error in the statement then execution ceases and an error message is output,
sometimes with a suggested correction.
o A program needs to be interpreted again each time it is run.

Assemblers
o 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.
o Once a program is assembled the machine code can be used again and again to perform the
same task without re-assembly.

25 | Notes By: Ms.Shomaila Sohail Chap4- Software


26 | Notes By: Ms.Shomaila Sohail Chap4- Software
Integrated Development Environment (IDE)
An integrated development environment (IDE) is a software application that helps programmers
with software writing and development.

IDE Features:
» code editors
» a translator
» a runtime environment with a debugger
» error diagnostics
» auto-completion
» auto-correction

» an auto-documenter and prettyprinting

.( most code editors colour code the words in the program and lay out the program in a meaningful
way – this is called prettyprinting)
Q1

27 | Notes By: Ms.Shomaila Sohail Chap4- Software


Q2

Q3

28 | Notes By: Ms.Shomaila Sohail Chap4- Software


Q4

Q5

Q6

29 | Notes By: Ms.Shomaila Sohail Chap4- Software


Answer for Q 1

Answer for Q 2

Answer for Q 3

Answer for Q 4

30 | Notes By: Ms.Shomaila Sohail Chap4- Software


Answer for Q 5

Answer for Q 6

31 | Notes By: Ms.Shomaila Sohail Chap4- Software


32 | Notes By: Ms.Shomaila Sohail Chap4- Software

You might also like