Chapter 5: System Software
Operating System
Needs of OS
o A set of programs designed to run in the background on a computer system which
Controls operation of computer system
Provides a user interface
Controls how computer responds to user’s requests
Controls how hardware communicate
Provides an environment in which application software can be executed
o Hardware is unusable without an OS, as the OS acts as an interface since it controls
communication between user and hardware
Key Management Tasks
o Memory Management
Memory protection to ensure 2 programs do not try to use same memory space
Paging
Use of virtual memory
o File Management
Provides file naming conventions
Maintains a directory structure
Allocates space to particular files
o Security Management
Proves usernames & passwords
Ensures data privacy
Prevents unauthorized access
Carries out automatic backup
o Hardware (input/output/peripherals) Management
Installation of appropriate driver software
Controls access to data sent to and from peripherals
Receives & handles interrupts from hardware devices
o Process Management
Enables multiprogramming and multitasking
Resolution of conflicts when 2 or more processes requires the same resource
E.g. via Round-robin method
Utility Software
o Disk Formatter
Prepares a hard disk to allow data to be stored on it
Deletes any existing data on disk
Performs formatting, process where computer ‘draws lines’ on disk surface to
split it into small areas
o Virus checker
Checks for and then removes any viruses found
Constantly checks all incoming and outgoing files
o Defragmentation Software
Files can be big so have to be stored in multiple sectors, which can result in
fragmentation (contents of file scattered across >2 non-contiguous sectors)
Fragmentation slows down disk access and thus the performance of the entire
computer.
Defragmenting software works by physically reorganizing disk contents (files)
such that they are stored in contiguous sectors.
This defragmentation reduces number of movements of the read/write heads
require to access the disk contents, hence increasing computer performance
The defragmentation also creates larger contiguous free space regions
o Disk contents analysis/disk repair software
Software utility for visualization of disk space usage
Gets size for each folder and files, and generates a graphical chart showing disk
usage distribution according to folders or other user defined criteria.
Allows disk to report errors (e.g. “bad sector”)
Software will attempt to offer a solution
o File Compression
Reduces file size by removing redundant data in files
Causes improvements in the computer’s performance by reducing the data that
needs to be stored
o Back-up Software
Makes copy of files on another storage medium in the event of a hard drive
failure, user error, disaster or accident.
Should be a regular process
Can provide synchronization between devices
Language Translators
Assembler
o Software that translates assembly language statements into machine code (binary) for
execution
o The mnemonics used translates into machine opcodes
o Process simple because assembly language has a one-to-one relationship with machine
code.
Compiler and Interpreter
Compiler Interpreter
Translates a high-level language program to Translates and executes a high-level language
machine code. program, line-by-line.
Creates a .exe file which can be easily
No .exe file created.
distributed.
Once compiled, .exe file does not need to be
Execution very slow – translated each time
compiled again, resulting in faster
program run.
execution.
Reports all errors at the end of compilation: Debugging easier/faster, since it stops translating
difficult to locate errors∴ development when it reaches an error. This allows real time
process long. error correction.
Can run program any time, even before code
Only be produced when all errors are fixed.
finished.
Compiler Interpreter
Used when development is completed. Used during development.
Two-step translation
o Java and some other high level language programs may require two-step translation,
i.e., they will be partially compiled and partially interpreted
o Java code first translated to bytecode by Java compiler
o Bytecode finally interpreted by the Java Virtual Machine to produce machine code
Integrated Development Environment (IDE) features
o Coding
Context-sensitive prompts: Displays choice of keywords and available identifiers
appropriate at current insertion point and provides choices in alphabetical order
Highlights undeclared/unassigned variable identifiers
o Initial Error Detection
Dynamic syntax checks: Automatic checking and highlighting of syntax errors, as
soon as line typed
Type checking & parameter checking
o Presentation
Pretty printing: Automatic indentation and color-coding of keywords
Expand and Collapse code blocks: Saves excessive scrolling if collapsed, and easy
to see global variable declarations and main program body when collapsed
o Debugging
Single stepping: Executes program line-by-line to see the effect of each
statement on variables
Breakpoints: Pauses program at a specific line to ensure program operates
correctly up to that line
Variables/expressions Report Window: Monitors variables for comparing values.