By Ms Payal Gupta
Chapter 8-CS
System Software
Operating System
Need for 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 OS 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 (Main) 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
By Ms Payal Gupta
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
By Ms Payal Gupta
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
Program Libraries
o Pre-written code that can be linked to a software under development without any
amendments
o Can perform common or complex tasks
o Takes the form of classes
o Benefits:
Saves time: less code needs to be written
Smaller testing time: pre-tested and used by others
Library file is a complex algorithm which the user does not need to understand to use it
Dynamic Link Library (DLL) files
o Shared library file that contains code and data
o Code saved separately from the main .EXE file, reducing the .EXE file’s size
o Code only loaded to main memory when required
o DDL file can be made available to several applications simultaneously, thus reducing strain
on memory
By Ms Payal Gupta
o DLL files act as modules in more complex programs, making it easier to install and run
updates
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 Translates and executes a high-level
program to machine code. language program, line-by-line.
Creates a .exe file which can be easily
No .exe file created.
distributed.
Once compiled, .exe file does not need
Execution very slow – translated each time
to be compiled again, resulting in
program run.
faster execution.
Reports all errors at the end of Debugging easier/faster, since it stops
compilation: difficult to locate errors∴ translating when it reaches an error. This
development process long. allows real time error correction.
Only be produced when all errors are Can run program any time, even before code
fixed. finished.
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
By Ms Payal Gupta
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
Prettyprint: 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.