Title: Software Hierarchy
 1Software Hierarchy
Software
Development software
System software
Application software
-  compilers 
 -  interpreters 
 -  editors 
 -  debuggers 
 -  Integrated 
 -  Development 
 -  Environments 
 -  (IDE)
 
-  word processing 
 -  presentation 
 -  spreadsheet 
 -  database 
 -  desktop publishing 
 -  multimedia 
 -  communication 
 -  graphics
 
Utility Programs
Device Drivers
Operating system
Shell
Kernel
Allow input/output devices to communicate with 
programs and other system components 
 2The Components of System Software
- Operating system - the principal component of 
system software  - Device drivers - help the computer control 
peripheral devices  - Utility programs - support, enhance, or expand 
existing programs 
  3Structure of the OS
- The operating system shell includes the user 
interface (UI).  - Users only interact with the OS through the UI. 
 - The UI can be 
 - Command/character-based (e.g., DOS or UNIX) 
 - Graphical user interface (GUI), involving 
windows, menus, icons, etc. 
kernel
kernel - program which remains in main memory 
while the computer is running, and directs other 
nonresident programs to perform tasks that 
support application programs 
 4What Is an Operating System?
- The operating system 
 - A collection of programs that help you use the 
computer.  - Acts as a smart assistant that moves controls the 
flow of information to various components and 
other programs.  - Manages the usage, storage, and access of 
programs, data, and processes. 
Common Tasks Performed by the OS 
 5Where is the OS Stored?
- Where does the operating system reside? 
 - ROM (Read Only Memory) 
 - ROM is non-volatile memory that contains the 
skeleton operating system, along with information 
about where the OS is stored on the Hard disk or 
other external storage.  - The skeleton operating system allows use of 
keyboard and both floppy and hard disk drives.  - RAM (Random Access Memory) 
 - The main part of the operating system is 
transferred from a secondary storage (e.g., hard 
disk) to RAM when the computer is first 
turned-on.  - This is called the booting process or 
boot-up.  - After the boot-up, a portion of RAM is taken up 
by the OS and other system software, while other 
portions are available for loading application 
software or data. 
  6The Booting Process
(BIOS)
BIOS stands for basic input/output system basic 
input/output system 
(RAM) 
 7The Booting Process
(BIOS)
(RAM) 
 8Overview of The Booting Process 
 9Main Operating System Functions
- Task management 
 - preparing, scheduling, and monitoring of tasks 
for continuous processing by the CPU  - Memory management 
 - allocation of memory for various tasks transfer 
of data and programs from external storage to 
memory and back virtual memory management cache 
management  - Device management 
 - controlling flow of data to an from input/output 
devices, and management of device drivers  - File and data management 
 - controlling how files are created, accessed, 
organized, copied, and modified controlling and 
managing the storage of data in external storage 
devices  - System monitoring 
 - monitoring of system resources and devices error 
detection and recovery 
  10Some Terminology
- Process 
 - A process is an instance of a program running in 
a computer. In Unix and some other operating 
systems, a process is started when a program is 
initiated. A process is a running program with 
which a particular set of data is associated so 
that the process can be kept track of.  - Task 
 - A task is a basic unit of processing that an 
operating system controls. A process may be a 
single task or may involve multiple tasks that 
are performed together or consecutively.  
  11Task Management Concepts
- Multi-tasking 
 - Running more than one task (or process) 
simultaneously.  - Each process stealing or sharing CPU time. 
 - Such as playing a game while a large document is 
being printed.  - Each process is allocated a CPU time slice at 
the end of the time slice the process in 
interrupted and its state is saved until the 
CPU can come back to the process CPU is then 
allocated to the next process on the queue.  - Context Switching 
 - Switching from one process or one user to 
another.  - Such as from a word processor to a spreadsheet 
and back again (both reside in RAM).  
  12Multi-tasking
CPU Time shared between process A and process B 
 13Task Management Concepts
The process life cycle 
 14Task Management Concepts
- CPU Scheduling Determining which process in the 
ready state should be moved to the running state  - That is, decide which process should be given 
over to the CPU  - The operating system must manage a large amount 
of data for each active process  - Usually that data is stored in a data structure 
called a process control block (PCB)  - Each time a new process is moved to the running 
state  - The CPU must store the intermediate data for the 
currently running process into its PCB.  - Then, the CPU most load the running state of the 
new process from its PCB (this is loaded into 
special memory devices inside the CPU called 
registers).  - This exchange of information is what we call a 
context switch 
  15Task Management Concepts
- Multi-Programming 
 - Same as multi-tasking, but there are multiple 
users that are running programs (e.g., multiple 
users logged in on the same computer). OS needs 
to be able to switch context and allocate CPU and 
memory resources among multiple users.  - Parallel processing (Multiprocessing) 
 - Computing that is done with more than one CPU. 
 - Several processors or CPUs are simultaneously 
computing a program.  - Load Balancing OS tries to manage the allocation 
of tasks to multiple CPUs, in order to optimize 
the load on each processor.  - Scaling OS needs to be able to break up tasks 
into independent units that can be processed 
simultaneously by different processors.  - Distributed processing 
 - Makes use of a network. 
 - Decentralizes and distributes the computing needs 
over several interconnected computers.  - Requires a network operating system that can 
handle allocation and management of tasks across 
the network among multiple computers. 
  16Task Management Summary 
 17Memory Management Concepts
- At any point in time memory is divided into a set 
of partitions, some empty and some allocated to 
running processes.  - A portion of the memory is always reserved for 
the operating system and other system processes.  - When a process is activated, its memory address 
(location of the first instruction in the 
program) and the total space (length) for the 
process are stored the CPU registers.  - This way, the CPU will know how to get back to 
the process as it switches among different 
running processes.  
  18Memory Management Concepts
- Cache memory 
 - If the primary memory were as large as ever 
needed, the following ideas would not be 
necessary.  - Cache memory Addresses the concerns of speed and 
efficiency (two types).  - 1. Disk cache - saves the most frequently used 
parts of the program being run or executed in the 
RAM memory - it will be there ready to go (very 
fast).  - 2. RAM disk - fools the program into thinking it 
is accessing the disk, but instead the needed 
information has been transferred to RAM (RAM is 
much faster than disk access). 
  19Memory Management Concepts
- Virtual Memory 
 - addresses the problem of a program (or multiple 
programs) being too big to fit into the available 
RAM.  - The operating system divides the program into 
pieces.  - The pieces are stored on the hard disk. 
 - The pieces are retrieved into RAM as needed. 
 - Disadvantage This slows the system down, because 
retrieval of information from the disk is time 
consuming. 
  20File Management Concepts
- A file is a named collection of related data 
 - A file system is the logical view that an 
operating system provides so that users can 
manage information as a collection of files  - A file system is often organized by grouping 
files into directories (Folders)  - Most files, whether they are in text or binary 
format, contain a specific type of information  - For example, a file may contain a Java program, a 
JPEG image, or an MP3 audio clip  - The kind of information contained in a document 
is called the file type  - Most operating systems recognize a list of 
specific file types 
  21File Management Concepts
File Types
- File names are often separated, usually by a 
period, into two parts  - Main name 
 - File extension 
 - The file extension indicates the type of the file
 
Some common file types and their extensions
File Operations
- Create a file 
 - Delete a file 
 - Open a file 
 - Close a file
 
- Read data from a file 
 - Write data to a file 
 - Rename a file 
 - Copy a file 
 - Move a file
 
  22File Management Concepts
- File Protection 
 - In multi-user systems, file protection is of 
primary importance  - We dont want one user to be able to access 
another users files unless the access is 
specifically allowed  - A file protection mechanism determines who can 
use a file and for what general purpose  - A files protection settings in the Unix 
operating system is divided into three 
categories Owner, Group, World (all users) 
  23File Management Concepts
Directory Trees
- A directory of files can be contained within 
another directory  - The directory containing another is usually 
called the parent directory, and the one inside 
is called a subdirectory  - The directory at the highest level is called the 
root directory  - A file system is often viewed as a directory tree 
 - At any point in time, you can be thought of as 
working in a particular location (that is, a 
particular subdirectory)  - This subdirectory is referred to as the current 
working directory  
  24Example Directory Tree in Windows 
 25Path Names
- A particular file is identified by specifying 
that files path, which is the series of 
directories through which you must go to find the 
file  - An absolute path name begins at the root and 
specifies each step down the tree until it 
reaches the desired file or directory  - A relative path name begins from the current 
working directory  - Examples of absolute paths 
 -  C\Program Files\MS Office\WinWord.exe 
 -  C\My Documents\letters\applications\vaTech.doc 
 -  C\Windows\System\QuickTime 
 - Suppose the current working directory is 
 -  C\My Documents\letters 
 -  Then the following relative path name 
 -  applications\depaul.doc 
 - Corresponds to the absolute path 
 -  C\My Documents\letters\applications\depaul.doc
 
  26Disk Scheduling
- File systems must be accessed in an efficient 
manner  - As a computer deals with multiple processes over 
a period of time, a list of requests to access 
the disk builds up  - The technique that the operating system uses to 
determine which requests to satisfy first is 
called disk scheduling 
  27Disk Scheduling
- First-Come, First-Served Disk Scheduling 
 - In FCFS, we process the requests in the order 
they arrive, without regard to the current 
position of the heads  - The shortest-seek-time-first (SSTF) 
disk-scheduling  - moves the heads the minimum amount it can to 
satisfy any pending request  - SCAN Disk Scheduling 
 - An elevator is designed to visit floors that have 
people waiting. Elevator moves from one extreme 
to the other (top of the building to the bottom), 
servicing requests as appropriate.  - The SCAN disk-scheduling works in a similar way, 
except instead of moving up and down, the 
read/write heads move in toward the spindle, then 
out toward the platter edge, then back toward the 
spindle, and so forth.  
  28System Software - Utility Programs
- Backup utility 
 - program which makes a duplicate copy of the 
information on your hard disk  - Data-recovery utility 
 - program which restores data that has been 
physically damaged or corrupted  - Antivirus software 
 - program that scans hard disks, floppy disks, and 
memory to detect viruses  - Data compression utility 
 - program which removes redundant elements, gaps, 
and unnecessary data from a computers storage 
space so that less space (fewer bits) is required 
to store or transmit data  - Disk cleanup utilities 
 - Detect  remove unnecessary files 
 - Detect  correct disk problems
 
  29System Software - Utility Programs
- Fragmentation - the scattering of portions of 
files about the disk in nonadjacent areas, thus 
greatly slowing access to the files  - Defragmenter utility - program that finds all the 
scattered files on your hard disk and reorganizes 
them as contiguous files 
  30Development Software
- Computers can only understand instructions that 
are in machine language  - Machine language instructions are binary encoded 
operations that make up a program  - Programmers, however write programs in a 
high-level language, not in binary  - A special program, called a translator needs to 
be used to convert the high-level language source 
code into binary machine code that the computer 
understands. The machine code program is called 
the object program.  - Two types of translators 
 - Compilers translate the whole source code into 
machine code in one step. After the translation, 
the machine code can be executed as a single 
program.  - Interpreters translate and execute the source 
code one statement at a time. The processing is 
done interactively. 
  31Development Software
The Compilation Process