Computer Science
Paper 1
Chapter 5 (System Software)
Notes
By: Ratna Hari Prajapati
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.1 Operating system
An operating system is simply a set of programs designed to run in the background on a computer
system, giving an environment in which application software can be executed. It is a set of software
designed to run in the background on a computer system, giving an environment in which application
software can be executed.
Most operating systems consist of a large set of programs, only some of which are stored in the
processor memory all of the time. Many of the subroutines available in the O.S. are stored on the hard
drive so that they can be accessed when needed. This not only saves space in the processor memory but
also means that the O.S. can be easily replaced when needed.
When you are using an applications package you are not communicating with the computer hardware, you
are communicating with the operating system. Without an operating system, no matter how many
programs you have, the computer is useless. The operating system sits between the hardware and the
application program or user.
The operating system is likely to be stored on a backing store (Hard-Drive) rather than in the memory of
the computer (RAM) because:
1. The OS requires a large amount of storage space.
2. It allows for easy upgrading or changing from one system to another one.
Summary:
U
1. Operating system is a software program which controls the operations of the computer system.
2. It provides a user interface (Human-computer interaction (HCI)).
3. It controls how the computer responds to user’s requests
4. It controls how the hardware communicate with each other
5. It provides an environment in which application software can be executed
Page 1 of 2
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.1 Operating system
Function of operating system:
1. Manage user accounts and security using one or more usernames and password.
2. Provide an interface for the user that allows the user to:
a. Run application programs.
b. Manage files in backing storage.
c. Read and respond to error messages.
3. Manage the processors time
4. Manage the allocation of internal memory.
5. Control peripheral devices-input devices such as keyboards, output devices such as printers and backing
storage such as hard disk drive.
6. Provide spooling (temporary storage of input or output data in a queue on hard disk)
7. Manage interrupt signals to the processor.
8. Perform ‘housekeeping tasks’, such as defragmenting a drive or file indexing.
Page 2 of 2
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.2 Utility programs
Utility software is a type of system software designed to help analyze, configure, optimize and maintain
the computer. A single piece of utility software is usually called a utility or a tool.
Utility software should be contrasted with application software, which allows users to do things like
creating text documents, playing games, listening to music or surfing the web. Rather than providing
these kinds of user-oriented or output-oriented functionality, utility software usually focuses on how the
computer infrastructure (including the computer hardware, operating system, application software and
data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an
advanced level of computer knowledge. There are many examples of utility software but we shall limit
ourselves to just a few:
1. The surface of a disk can store so much data that the computer cannot handle it all at once so it needs
to be split up so that data stored on it can be found again. When it is new a disk surface is blank so the
computer “draws lines” on the surface to split it into small areas. The process is called formatting and it is
carried out by a utility program called a disk formatter.
2. Some files are very large. In most files it is possible to find simple ways of reducing the size of the file
while keeping all its meaning. This can be very important when files are being sent from one computer to
another as the communication is speeded up. The programs that reduce the size of files are called file
compressors.
3. When files are being sent from one computer to another it is possible that they may contain a virus
which will infect the receiving computer. A virus checker (scanner, killer...) is a utility program which keeps
a constant check on files searching for viruses and deletes it if found.
4. A disk defragmenter software is a utility that reorganizes the files and unused space on a computer’s
hard disk so that the operating system accesses data more quickly and programs run faster. When an
operating system stores data on a disk, it places the data in the first available sector on the disk. It
attempts to place data in sectors that are contiguous (next to each other), but this is not always possible.
When the contents of a file are scattered across two or more noncontiguous sectors, the file
is fragmented.
U U
Fragmentation slows down disk access and thus the performance of the entire computer. Defragmenting
the disk, or reorganizing it so that the files are stored in contiguous sectors, solves this problem.
Operating systems usually include a disk defragmenter. Windows disk defragmenter is available in the
System Tools list.
Page 1 of 2
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.2 Utility programs
5. A Disk Check is a free utility that can help you scan your disk drives for errors and fix them. It can also
scan entire disk for bad sectors and try to recover them.
Main Features:
Scan and Fix multiple drives with one click.
Schedule Disk Check on next boot if a drive cannot be locked.
Boot Time Disk check can be performed on multiple drives in a click.
Use of checkdisk makes it highly safe to use.
6. A backup software utility allows users to copy, or back up, selected files or an entire hard disk to
another storage medium such as an external hard disk, optical disc, USB flash drive, or tape.
During the backup process, the utility monitors progress and alerts you if it needs additional media, such
as another disc. Many backup programs compress, or shrink the size of, files during the backup process.
By compressing the files, the backup program requires less storage space for the backup files than for the
original files.
Because they are compressed, you usually cannot use backup files in their backed up form. In the event
you need to use a backup file, a restore utility reverses the process and returns backed up files to their
original form. Backup utilities work with a restore utility.
Page 2 of 2
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.3 Library programs
Library programs are collections of resources used to develop software. These include pre-written code
0T 0T
and subroutines.
Library programs contain code and data that provide services to other programs such as interface (look
and feel), printing, network code and even the graphic engines of computer games. If you have ever
wondered why all Microsoft Office programs have the same look and feel, that is because they are using
the same graphical user interface libraries. For computer games a developer might not have the time and
budget to write a new graphics engine so they often buy graphical libraries to speed up development, this
will allow them to quickly develop a good looking game that runs on the desired hardware.
Most programming languages have a standard set of libraries that can be used, offering code to handle
input/output, graphics and specialist math functions. You can also create your own custom libraries and
when you start to write lots of programs with similar functionality you'll find them very useful. Below is an
example of how you might import libraries into VB.
What is a DLL?
A DLL is a library that contains code and data that can be used by more than one program at the same
time. For example, in Windows operating systems, the Comdlg32 DLL performs common dialog box
related functions. Therefore, each program can use the functionality that is contained in this DLL to
implement an Open dialog box. This helps promote code reuse and efficient memory usage.
By using a DLL, a program can be modularized into separate components. For example, an accounting
program may be sold by module. Each module can be loaded into the main program at run time if that
module is installed. Because the modules are separate, the load time of the program is faster, and a
module is only loaded when that functionality is requested.
Additionally, updates are easier to apply to each module without affecting other parts of the program. For
example, you may have a payroll program, and the tax rates change each year. When these changes are
isolated to a DLL, you can apply an update without needing to build or install the whole program again.
Page 1 of 1
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.4 Language translators
The final type of system software that you need to know is translator software. This is software that
allows new programs to be written and run on computers, by converting source code (human readable)
into machine code. There are three types that we'll cover in a lot more detail shortly:
Assembler - converts assembly code into machine code
Interpreter - converts 3rd generation languages such as JavaScript into machine code one line at a
time
Compiler - converts 3rd generation languages such as C++ into machine code all at once
Assembler
An assembler translates assembly language into machine code. Assembly language consists of
0T 0T 0T 0T
mnemonics for machine opcodes so assemblers perform a 1:1 ratio translation from mnemonic to a
direct instruction. For example:
30T LDA #4 converts to 0001001000100100
0T3 0T 0T 0T3
Conversely, one instruction in a high level language will translate to one or more instructions at machine
level.
Advantages of using an Assembler Disadvantages of using Assembler
Very fast in translating assembly language to Assembly language is written for a certain
machine code as 1 to 1 relationship instruction set and/or processor
Assembly code is often very efficient (and Assembly tends to be optimized for the
therefore fast) because it is a low level hardware it's designed for, meaning it is
language incompatible with different hardware
Assembly code is fairly easy to understand due Lots of assembly code is needed to do
to the use of English-like mnemonics relatively simple tasks, and complex programs
require lots of programming time
Page 1 of 4
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.4 Language translators
Compiler
A Compiler is a computer program that translates code written in a high level language to a lower level
0T 0T 0T 0T 0T 0T 0T 0T
language, object/machine code. The most common reason for translating source code is to create an
executable program (converting from a high level language into machine language).
Advantages of using a compiler Disadvantages of using a compiler
Source code is not included, therefore Object code needs to be produced
compiled code is more secure than before a final executable file, this can
interpreted code be a slow process
Tends to produce faster code than The source code must be 100% correct
interpreting source code for the executable file to be produced
Produces an executable file, and
therefore the program can be run
without need of the source code
35T Interpreter
An interpreter program executes other programs directly, running through program code and executing it
line-by-line. As it analyses every line, an interpreter is slower than running compiled code but it can take
less time to interpret program code than to compile and then run it — this is very useful when prototyping
and testing code. Interpreters are written for multiple platforms, this means code written once can be run
immediately on different systems without having to recompile for each. Examples of this include flash
based web programs that will run on your PC, MAC, games console and Mobile phone.
Advantages of using an Interpreter Disadvantages of using an Interpreter
Easier to debug(check errors) than a Source code is required for the
compiler program to be executed, and this
Easier to create multi-platform code, source code can be read making it
as each different platform would have insecure
an interpreter to run the same code Interpreters are generally slower than
Useful for prototyping software and compiled programs due to the per-line
testing basic program logic translation method.
Page 2 of 4
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Topic: 1.5.4 Language translators
Few of the high-level language programs may be partially compiled and partially interpreted, such as Java. Typical
Java environment consists of two programs: Java compiler and Java Virtual Machine. Java compiler takes the source
code written in Java programming language, together with precompiled libraries, and compiles programs written in
Java programming languages into class files containing Java byte-code.
The Java Virtual Machine takes the byte code prepared by the Java compiler and executes it. The byte-code itself is
platform-independent; it is the responsibility of the Java Virtual Machine implementation to execute the program in
the byte-code form on the real computer.
So, the java code is partially compiled for optimization by the programmer. The user runs the code on a Java virtual
machine on their computers that interprets the java code for the users' computer specific architecture.
Page 4 of 4
1.5 Library programs (paper 1 chapter 5)
(1) A collection of files.
(2) In programming, a library is a collection of precompiled routines that a program can use. The
routines, sometimes called modules, are stored in object format. Libraries are particularly useful for
storing frequently used routines because you do not need to explicitly link them to every program that
uses them. The linker automatically looks in libraries for routines that it does not find elsewhere. In MS-
Windows environments, library files have a .DLL extension.
Advantages and disadvantages of using library routines
Advantages
Less work for you.
Well established / stable code
Conforms to the specific language standards
They take up little space in the program
They ensure that the most widely used programs are bug free
They minimize the number of commands / instructions
Disadvantages
it may not do exactly what you want it to do.
The procedure/function may not even exist.
Dynamic Link Libraries (DLLs)
Dynamic Link Libraries (DLLs) were introduced with the first releases of the Microsoft Windows
operating system, and today are a fundamental structural component of the OS.
DLLs allow certain code fragments to be compiled into a single library, and to be linked to by multiple
programs. This means that only one copy of the library needs to exist, and multiple programs can share
the functions and the data between them. The Windows system makes itself accessible, in several of
its user-space features, by providing DLLs that programmers can use.
The difference between a DLL and a static library is that when you compile your programs, the DLL is
not compiled into your executable, but instead remains a separate module. This feature helps to keep
executable size low, and also allows for a DLL to be loaded into memory only when it is needed. As a
self contained entity a DLL also permits kick and target updates to the system and to applications. By
simply replacing a DLL with a newer version that contains fixes or improvements, it is easy to extend
the alteration to multiple dependent programs instantly.
DLL and what are their usages and advantages
1. No additional requirement of memory at runtime or disk storage as a common binary file will be
there so less memory used.
2. All the application or clients will be using one single version of the common code provided by
the DLL.
3. Saves memory (disk space) and reduces swapping. Many processes / applications can use a
single DLL simultaneously, sharing a single copy of the DLL in memory.
4. Upgrades to the DLL are easier. When the functions in a DLL change, the applications that use
them do not need to be recompiled or relinked.
5. Supports Multilanguage programs. Programs written in different programming languages can
call the same DLL function as long as the programs follow the function's calling convention.
6. Sharing of resources among processes.
What is integrated development environment (IDE)?
An integrated development environment (IDE) is a software application that provides
comprehensive facilities to computer programmers for software development. An IDE normally
consists of a source code editor, build automation tools and a debugger. Most modern IDEs
have intelligent code completion. This program typically provides many features for authoring,
modifying, compiling, deploying and debugging software.
Integrated development environments are designed to maximize programmer productivity by
providing tight-knit components with similar user interfaces. IDEs present a single program in
which all development is done.
One aim of the IDE is to reduce the configuration necessary to piece together multiple
development utilities, instead providing the same set of capabilities as a cohesive unit.
Reducing that setup time can increase developer productivity, in cases where learning to use
the IDE is faster than manually integrating all of the individual tools. Tighter integration of all
development tasks has the potential to improve overall productivity.
Additional
Notes
1.5.2 Utility programs
Disk formatter
When a disk is first produced the surface is blank. It cannot be used to store data
until it has been formatted by disk formatter software. The formatting process
divides the disk into smaller areas, each of which can be searched more easily.
The disk surface is divided into a number of tracks an each track is divided into
smaller blocks called sectors.
The amount of information that can be stored is enormous. One of the tracks is
used as an index to hold data about where the other data are stored. The
formatting process removes all data from the disk so you should save the contents
of a disk elsewhere before re-formatting it.
Virus checker
A computer virus is a small program that can reproduce itself. If it “infects” a
computer system, a virus can cause a range of damage including deleting files.
A virus checker utility program continually compares a dictionary of known viruses
against the files accessed by the computer. It alerts the user if any of the files
matches a virus “signature”.
It is crucial that the virus dictionary is kept up-to-data o a daily basis as new
viruses are constantly appearing.
Defragmenter software
it is a utility software to increase access speed by re-arranging files stored on
a disk to occupy contiguous storage locations, a technique called defragmentation.
Defragmenting a disk minimizes head travel, which reduces the time it takes to
read files from and write files to the disk. Disk Defragmenter also reduces system
startup times.
Disk content analysis /Disk repair software
Disk checker software can scan a hard disk to find files or areas that are corrupted
in some way, or were not correctly saved, and eliminate them for a more efficiently
operating hard drive. This is not to be confused with a disk cleaner, which can find
Contact the teacher: 03215275281
files that are unnecessary to computer operation, or take up considerable amounts
of space.
Some disk checkers can perform a whole surface to attempt to find any
possible bad sectors, whereas others scan only the contents of the hard disk.
File compression
Files containing video information are usually large in size. File compression
software reduces the size of a file by cutting out much of the duplication of data in
the file.
If file is to be sent electronically e.g. a an email attachment, you can use a utility
(such as WinZip) to compress .files may also be compressed to save space on a
secondary storage device.
Backup software
Files on a computer need to be protected from being damaged. A backup or
archiving utility is a simple routine that copies the contents of files to another
location. If the original file is damaged, the copy can be used to replace it.
Key feature of backup software
Volumes: Voluming allows the ability to compress and split backup data into
separate parts for storage on smaller, removable media such as CDs. It was
often used because CDs were easy to transport off-site and inexpensive
compared to hard drives or servers. However, the recent increase in hard
drive capacity and decrease in drive cost has made voluming a far less
popular solution
Data compression: Since hard drive space has cost, compressing the data will
reduce the size allowing for less drive space to be used to save money.
Differential and incremental backups:Backup solutions generally
support differential backups and incremental backups in addition to full
backups, so only material that is newer or changed compared to the backed
up data is actually backed up. The effect of these is to increase significantly
the speed of the backup process over slow networks while decreasing space
requirements.
Encryption: To prevent data theft, some backup software offers cryptography
features to protect the backup.
Contact the teacher: 03215275281