Chapter 5
Chapter 5
05 System Software
Candidates should be able to:
Explain why a computer system requires an Operating System (OS)
Explain the key management tasks carried out by the Operating System (OS)
Show understanding of the need for typical utility software provided with an Operating
System
Show awareness that high-level language programs may be partially compiled and
partially interpreted, such as Java (console mode)
Definitions
Software that provides an environment in which applications
Operating System can run and provides an interface between hardware and
human operators
A device that decides how and where files are stored on hard
Hard Disk Formatter
disks
Defragmentation A software that takes the fragmented files and rearranges the
Software segments so that they run continuously
Library routines are not linked until actual run time and are
Dynamic Library
stand-alone files only accessed as required
Memory Management
Memory Optimization
Determines how computer memory is allocated and deallocated when a number of
applications are running simultaneously.
To maintain optimization of memory, it will also swap data to and from the HDD or SSD.
Memory Organization
Determines how much memory is allocated to an application, and how the memory can be
split up in the most appropriate or efficient manner.
Partitioned allocation: Memory is split up into contiguous partitions (or blocks) and
memory management then allocates a partitions of varying size to an application.
Segmented memory: Memory blocks are not contiguous but instead each segment will
be a logical grouping of data.
Memory Protection
Ensures two competing applications cannot use the same memory locations at the same
time
This prevents loss of data, security issues, and applications producing incorrect results
Security Management
To ensure the integrity, confidentiality, and availability of data.
Carrying out OS updates when they’re available, ensuring up-to-date antivirus software
Process Management
Process is a program being run on a computer.
OS allocates resources and permit the sharing and exchange of data, thus allowing all
processes to be synchronized
Hardware Management
Controlled by queues and buffers
Communicating with all input and output devices using device drivers
Translating data from a file into a format that the input/output device can understand
using device drivers
Ensuring each hardware resource has a priority so that it can be used and released as
required
File Management
Defining file naming conventions
After creation, files are formatted by writing files which will hold directory data and tables
of contents at the beginning of each partition
Allows OS to recognize a file and know where to find it on the disk surface
Has checking tools, which are non-destructive tests that can be carried out on each
sector
If bad sector errors are discovered, the sector is flagged as ‘bad’ and the file tracking
records are reorganized
Bad sectors are replaced with new unused sectors
Virus Checkers
Check software or files before they are run or loaded
Compares possible viruses against a database of viruses
Carries out heuristic checking (Checking software for types of behaviour that could
indicate a possible virus)
Quarantining files which may be infected to
Automatically delete the virus
Defragmentation Software
Blocks used for files are scattered as HDD becomes full
Happens when files are deleted, partially deleted, extended, etc.
Leads to slower data access time, because HDD read-write head requires more
movement
Data stored in contiguous sectors reduces data access time
Hence, a disk defragmenter rearranges blocks of data to store files in contiguous sectors
whenever possible
Not possible if the disk drive is almost full
Leads to optimal use of disk space by removal of unwanted files and downloads
Disk compression compresses data before writing it to hard disk, and decompresses
when reading
It is a high-priority routine and will override all other operating system routines
It should not be uninstalled as that would render previously saved data to be
unreadable
Back-Up Software
Allows a schedule for backing up files to be made
When software is under development the programmer can utilize pre-written subroutines
in their program, saving time.
Helps a software developer wishing to use dynamic link library (DLL) subroutines in their
own program
Removes need to rewrite routines every time (save time and money)
Leads to modular programming, which means several programmers can work on the same
piece of software simultaneously
Allows continuity with other parts that may form part of a whole program
Allows to maintain the eye of a ‘corporate image’ in all the software being developed by a
company
Saves time used in testing each routine, since they are already fully tested in other
software
Drawbacks of using Program Libraries:
Compatibility issues
Static Libraries: software being developed is linked to executable code in the library at
the time of compilation, so library routines would be embedded directly into the new
program code
Dynamic Libraries: Library routines are not linked until actual run time and are stand-
alone files only accessed as required
Skill Check 1
a) A computer has an operating system (OS).
2. State two input/output device management tasks performed by the OS. [2]
Solution
‣
a)
2. i) Installs drivers
ii) Receives signals from the device
b)
1. Virus Checker: It scans for viruses and reports, quarantines or deletes them
2. Defragmenter: It finds files that are not stored in contiguous blocks and
moves them together
Machine
yes yes no
Dependent?
Compiler Interpreter
The end user does not need to purchase a End-user needs to purchase a compiler or
compiler since only executable code is an interpreter to translate source code
needed to run the program before the use
Shorter execution time as the translation Longer execution time since each line
has been completed needs to be translated
The translated source code can be Cannot be interpreted on one device and
executed on a different type of computer interpreted on a different computer
Interpreter Compiler
Easier to develop and debug a program as It finds all errors in a program and, hence
errors can be corrected on each line and might find dependent “errors”, which may
the program restarted from that place be resolved when correcting earlier errors
An untested program should not be able to The untested program can cause the
cause the program to crash program to crash
Partial results can be viewed during The developer needs to write special
development, allowing developers to make routines to view partial results during
informed decisions about a section of code development.
When purchased, the end-user has all The end-user has no access to source
source code and run-time libraries, code and run time libraries, is unable to
enabling the program to be modified as make modifications and relies on the
required without further purchases developer for updates
For example, Java and Python can be translated by a compiler into a set of instructions
for a virtual machine, which is then interpreted by an interpreter.
Auto-Documenter
Used to explain the function and purpose of programming code
Skill Check 2
A programmer uses language translators when writing and testing a program
Solution
‣
1. A compiler attempts to translate the whole source code. It creates a
separate error report at the end of the translation process.
2. An interpreter reads each line then translates it and executes it. It stops
when an error is encountered.
3. Writing
An IDE allows a programmer to enter code into an editor. The pretty printing
features identifies key terms to assist the programmer. Dynamic syntax
checking also allows the programmer to correct his syntax errors on the go.
Testing
Single stepping allows the programmer to run the code line by line. Putting
breakpoints allows the programmer to stop the code at set points to check
values
Points to Note
Operating system tasks can be categorized in more than one way, for example, some are
for helping the user, others are for running the system
Utility programs include hard disk utilities, backup programs, virus checkers, and file
compression utilities
Library programs, including Dynamic Link Library (DLL) files, are available to be
incorporated into the program; they are usually subroutines and are very reliable
A high-level language can be translated using an interpreter or a compiler
A Java compiler produces Java Byte Code which is interpreted by a Java Virtual Machine