0% found this document useful (0 votes)
2 views63 pages

Software (2)

The document provides an overview of computer science concepts for Grade 9, focusing on software types, including system software and application software, and their functions. It explains the roles of operating systems, interrupts, programming languages, and utilities, along with examples of each. Additionally, it discusses memory management, security management, user account management, and the differences between high-level and low-level programming languages.

Uploaded by

biji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views63 pages

Software (2)

The document provides an overview of computer science concepts for Grade 9, focusing on software types, including system software and application software, and their functions. It explains the roles of operating systems, interrupts, programming languages, and utilities, along with examples of each. Additionally, it discusses memory management, security management, user account management, and the differences between high-level and low-level programming languages.

Uploaded by

biji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 63

Computer Science

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

1.COMPILERS:A compiler is a computer program that translates a


program written in a high-level language (HLL) into machine code (code
which is understood by the computer) so that it can be directly used by
a computer to perform a required task.

2.LINKERS:A linker (or link editor) is a computer program that takes


one or more object file produced by a compiler and combines them into
a single program which can be run on a computer
3.DEVICE DRIVERS:A device driver is the name given to software that
enables one or more hardware devices to communicate with the computer's
operating system. Without drivers, a hardware device (for example, a
computer printer) would be unable to work with the computer.

4.OPERATING SYSTEMS (O/S):The operating system (OS) is essentially


software running in the background of a computer system. It manages many of
the basic functions. 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.
UTILITIES:
Utility programs are software that are designed to carry out specific tasks on a

computer. Essentially, they are programs that help to manage, maintain and
control computer resources.
Utility software (utilities)
» virus checkers

» defragmentation software

» disk contents analysis and repair

» file compression and file management

» 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.

Running anti-virus software in the background on a computer will constantly

check for virus attacks.


» anti-virus software compares a possible virus against a database of known viruses
» they carry out heuristic checking – this is the checking of software for types of
behaviour that could indicate a possible virus; this is useful if software is infected by
a virus not yet on the database
» any possible files or programs which are infected are put into quarantine which:
– allows the virus to be automatically deleted, or
– allows the user to make the decision about deletion (it is possible that the user
knows that the file or program is not infected by a virus – this is known as a false
positive and is one of the drawbacks of anti-virus software)
» anti-virus software needs to be kept up to date since new viruses are constantly
being discovered
» full system checks need to be carried out once a week, for example, since some
viruses lie dormant and would only be picked up by this full system scan.
Defragmentation software
As a HDD becomes full, blocks used for files will become scattered all over the disk
surface (in potentially different sectors and tracks as well as different surfaces). This
will happen because files will become deleted, partially-deleted, extended and so on
over time. The consequence of this is slower data access time; the HDD read-write
head will now require several movements just to find and retrieve the data making
up the required file.

A disk defragmenter will rearrange the blocks of data to store files in contiguous

sectors wherever possible.


Back-up software
While it is sensible to take manual back-ups using, for example, a memory stick

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

» 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).


Screensavers
Screensavers are programs that supply moving and still images on the monitor

screen after a period of inactivity by the computer.


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 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

menus, open software, etc.

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

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
» manages the primary storage (RAM) and allows data to be moved between

RAM and HDD/SSD during the execution of programs

» keeps track of all the memory locations

» carries out memory protection to ensure that two competing applications

cannot use the same memory locations at the same time.


Security management
» by carrying out operating system updates as and when they become available
» ensuring that anti virus software (and other security software) is always up to date, preserving
the integrity, security and privacy of data
» by communicating with, for example, a firewall to check all traffic to and from the computer
» by making use of privileges to prevent users entering ‘private areas’ on a computer that permits
multi-user activity (this is done by setting up user accounts and making use of passwords and
user IDs); this helps to ensure the privacy of data
» by maintaining access rights for all users
» by offering the ability for the recovery of data (and system restore) when it has been lost or
corrupted
» by helping to prevent illegal intrusion into the computer system (also ensuring the privacy of
data).
Hardware peripheral management

» 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
File management
» file naming conventions which can be used i.e. filename.docx (where the extension can
be .bat, .htm, .dbf, .txt, .xls, etc.)

» performing specific tasks (for example, create, open, close, delete, rename, copy, and
move)

» maintaining the directory structures

» 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

of the operating system software.

» 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
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

different user accounts. This allows each user to:

» customise their screen layout and other settings

» use separate folders and files and to manage these themselves.


Running of applications
application software requires the operating system to provide a platform on which the software can run
successfully.When a computer starts up, part of the operating system needs to be loaded into RAM – this is known
as booting up the computer (or a bootstrap loader).

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

• Application Software must talk to the operating system, this will


then allow it to interact with the hardware
• The hardware will then process and send the information to the
operating system which then directly talks back to applications
software in a continuous loop
• Firmware
• Firmware is a type of computer software. It provides the low level control needed for a

particular piece of hardware to work correctly.


• This process is in between the Operating System and Hardware
• When a computer initially first loads up, it has to explore the ROM for its initial boot-up

instructions These are contained in a Bootstrap loader


• The initial process is handled by the basic input/output system (BIOS) which is

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,

cameras, routers, scanners, computers etc.

-In a modern computer, firmware is stored in a ROM chip (hardware).

-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

to load the remainder of itself.


Interrupts
• An interrupt is a signal from a device or software to the processor. This will stop the processor
temporarily from fulfilling this request immediately, some examples could be:
• Software errors - e.g. files not found, or software not responding
• The user initiating Ctrl Alt Delete to lock, log off etc
• Files stop copying as the name of the file is already in the folder
• Once this interrupt is received by the CPU it either carries on or completes the action desired
• Whenever an interrupt is initiated the status of this task is saved to the interrupt service routine.
• Once the interruption has been completed the system continues back to normal before the
interruption even happened
• The interrupt handler is the part of the operating system which is responsible for

dealing with interrupt signals.

• The interrupt handler prioritizes interruptions as they are received, placing them

into a queue as necessary.

• For every interruption, the current task needs to be stopped, with it’s status

saved (so it can resume later).


• Two types of interrupt:
• Hardware Interrupt - this is caused by a hardware device such as a hardware failure e.g.
• pressing a key on the keyboard

• moving the mouse

• Hardware failure

• New hardware device connected

• Software Interrupt - this occurs when an application stops or requests services from the

OS e.g.
• a program is not responding

• division by zero

• two processes trying to access the same memory location

• Program request for input


High & Low Level
Languages
High level programming language: A type of programming language that uses English like commands
Low level language closer to the machines language
Low level language abbreviated as LLL, are languages close 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.
Machine language
Machine language is closest language to the hardware.

It consists set of instructions that are executed directly by the computer.

These instructions are a sequence of binary bits.

Each instruction performs a very specific and small task.

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.

Examples of mnemonics are – ADD, MOV, SUB etc.

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 compiled code runs faster while interpreted code runs slower.

● 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.

● Interpretation does not replace compilation completely.


Compilers
A compiler is a computer program that translates an entire program written in a high level language
(HLL) into machine code all in one go so that it can be directly used by a computer to perform a
required task.

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.

A program needs to be interpreted again each time it is run.


Interpreters have several disadvantages:

● 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

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.
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

Studio (for Visual Basic) or BlueJ (for Java) as your IDE.


IDEs usually have these features/functions:
» code editors
» a translator
» a runtime environment with a debugger
» error diagnostics
» auto-completion
» auto-correction
» an auto-documenter and pretty printing.
Code editor
A code editor allows a program to be written and edited without the need to

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 programmer to step through the program a line at a time

or to set a breakpoint to stop the execution of the program at a certain point in

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

Dynamic error checking finds possible errors as the program code is


being typed,alerts the programmer at the time and provides a
suggested correction. Many errors can therefore be found and
corrected during 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.
Auto-documenter and pretty printing

IDEs can provide an auto-documenter to explain the function and purpose of

programming code.

Most code editors colour code the words in the program and lay out the program

in a meaningful way – this is called pretty printing.

You might also like