Module 1 -Contents:
Introduction to software: System software & application software, examples-System
software – assembler, loader, compilers, interpreters and their functions, comparison.
Operating system – definition – functions of Operating system - different types of Operating
Systems - batch systems - multiprogramming systems - time sharing – multiprocessor
systems - real time systems.
Software is a set of programs, procedures, and routines that instructs a computer system what to
do. It is mainly of two types named as, System Software and Application Software. Both the
software help the computer to perform specific tasks and allow the user to interact with the system.
"System software acts as the interface between the application software and hardware of the
computer system. Whereas, the application software acts as an interface between the system
software and the end-user."
What is System Software?
1
System software is a set of computer programs, which is designed to manage system resources. It
is a collection of such files and utility programs that are responsible for running and smooth
functioning of your computer system with other hardware. System software runs and functions
internally with application software and hardware. Moreover, it works as a linking interface
between a hardware device and the end-user.
Some essential functions of System software are:
Disk Management
Memory Management
Device controlling
Loading and execution of other programs.
Examples of System Software are Operating systems, Compiler, Assembler, Device drivers, etc.
What is Application Software?
Application software (an application) is a set of computer programs designed to permit the user to
perform a group of coordinated functions, tasks, or activities. Application software cannot run on
itself but is dependent on system software to execute.
It acts as an interface between the end-user and system software.
Application software provides an interactive UI (user interface) for users to interact with it and
work on it.This software is usually developed with the help of High-level languages, such as C,
C++, Java, etc. Some examples of Application software are MS Office, Paint, Spreadsheet, Web-
browser, etc.
Some standard functions of application software are given below:
Data Manipulation
Writing Reports
Creating Spreadsheets
Managing records.
Assembler and its function
It is a program that accepts as input an. assembly language program and produces its machine
language equivalent. Source code programs are written in assembly languages and an assembler
converts the written assembly language source program to a format that can be executed on a
processor.
2
r
To convert the assembly language into machine code.
Translate mnemonic operation codes to their machine language equivalents.
Assigning machine addresses to symbolic labels.
Loader and its functions
A loader is a system program, which takes the object code of a program as input and prepares it
for execution.
Functions:
1. Allocation - The loader determines and allocates the required memory space for the program to
execute properly.
2. Linking -- The loader analyses and resolve the symbolic references made in the object modules.
3. Relocation - The loader maps and relocates the address references to correspond to the newly
allocated memory space during execution.
4. Loading - The loader actually loads the machine code corresponding to the object modules into
the allocated memory space and makes the program ready to execute.
Compilers and Interpreters and their functions
A compiler is a system program that processes statements written in a particular programming
language and turns them into machine language.
An interpreter is a system program that translates and runs the program at the same time. It converts
one program statement into machine language, executes it, and then proceeds to the next statement.
3
Compiler Vs Interpreter
4
OPERATING SYSTEM
Definitions of Operating System:
1. An operating system (OS) is system software that manages computer hardware and
software resources and provides common services for computer programs. The operating
system is a component of the system software in a computer system. Application programs
usually require an operating system to function.
5
2. An operating system is a set of programs that manages hardware resources and provides
common services for application software. It is the most important type of system software.
Without operating system a user cannot run application programs on their computer.
3. An operating system is a set of programs that mediate access between physical device
(keyboard, monitor, disk drive network connection) s and application programs (word
processor, web browser, electronic mail, presentations)
Functions of Operating Systems
6
Security
The operating system uses a password protection to protect user data it also prevents unauthorized
access to programs and user data, but for external functionality we need to install malware software
to protect the system.
Control over system performance
The operating system monitors overall system setup to help in improving the performance and it
also records the response time between service requests and system response so that it has a
complete view of the system. This can help improve performance by providing important
information that is needed at the time of troubleshooting problems.
Job Accounting
Operating systems always keep track of time and resources that are used by various tasks and
users, this information can be used to track resource usage for a particular user or a group of users.
Error detecting aids
Operating systems constantly monitor the system which helps us to detect errors and also avoid
the malfunctioning of computer systems.
Coordination between other software and users
Operating systems help in coordinate and assign interpreters, compilers, assemblers, and other
software to the various users of the computer systems.
Memory Management
The operating system controls the primary memory or main memory. Primary memory is a large
array of bytes or words where each byte or word is assigned a certain address. It is a fast storage,
and it can be accessed directly by the CPU which is present inside the system. If a program wants
to be executed, it should be first loaded in the main memory.
It keeps track of primary memory.
Memory addresses that have already been allocated and the memory addresses of the memory that
has not yet been used.
In multiprogramming, the OS decides for how long the process must stay and the order in which
processes are granted access to memory.
It allocates the memory to a process when the process requests it and deallocates the memory when
the process has terminated.
Processor Management
7
The OS manages the order in which processes have access to the processor, and how much
processing time that each process must stay in the multiprogramming environment. This is called
process scheduling.
Keeps track of the status of processes.
The program to track the status is known as traffic controller.
It allocates the CPU and deallocates the processor when it is not required.
Device Management
An OS manages device communication through respective drivers.
Keeping track of all devices connected to the system.
The OS designates a program that is responsible for every device which is called the Input/output
controller.
It decides which process gets access to which device and for how long. It then allocates the devices
in an effective and efficient way and de-allocates devices when they are not required.
File Management
A file system is arranged into directories for efficient navigation and usage. These directories
contain other directories and other files.
It keeps track of where information is stored, user access settings and status of every file and more.
These facilities are called the file system.
Types of Operating Systems (OS)
An operating system is a well-organized collection of programs that manages the computer
hardware. It is a type of system software that is responsible for the smooth functioning of the
computer system.
1. Batch Operating System
In this technique, similar types of jobs were batched together and executed in time.
This type of operating system does not interact with the computer directly.
There is an operator which takes similar jobs having the same requirement and groups
them into batches. It is the responsibility of the operator to sort jobs with similar needs.
The system put all of the jobs in a queue on the basis of first come first serve and then
executes the jobs one by one. The users collect their respective output when all the jobs get
executed.
8
Advantages of Batch Operating System
Multiple users can share the batch systems.
The idle time for the batch system is very less.
It is easy to manage large work repeatedly in batch systems.
Disadvantages of Batch Operating System
The computer operators should be well known with batch systems.
Batch systems are hard to debug.
It is sometimes costly.
The other jobs will have to wait for an unknown time if any job fails.
Examples of Batch Operating Systems: Payroll Systems, Bank Statements, etc.
2. Multi-Programming Operating System
Multiprogramming Operating Systems can be simply illustrated as more than one program
is present in the main memory and any one of them can be kept in execution. This is
basically used for better execution of resources.
Multiprogramming is an extension to batch processing where the CPU is always kept busy.
Each process needs two types of system time: CPU time and IO time.
In a multiprogramming environment, when a process does its I/O, The CPU can start the
execution of other processes. Therefore, multiprogramming improves the efficiency of the
system.
9
Advantages of Multiprogramming OS
Throughout the system, it increased as the CPU always had one program to execute.
Response time can also be reduced.
Disadvantages of Multiprogramming OS
Multiprogramming systems provide an environment in which various systems resources
are used efficiently, but they do not provide any user interaction with the computer system.
3. Time-Sharing Operating Systems
Each task is given some time to execute so that all the tasks work smoothly.
Each user gets the time of the CPU as they use a single system.
These systems are also known as Multitasking Systems. The task can be from a single user
or different users also.
The time that each task gets to execute is called quantum. After this time interval is over
OS switches over to the next task.
10
Advantages of Time Sharing Operating System
The time-sharing operating system provides effective utilization and sharing of resources.
This system reduces CPU idle and response time.
Each task gets an equal opportunity.
Disadvantages of Time-Sharing OS
High Overhead: Time-sharing systems have a higher overhead than other operating
systems due to the need for scheduling, context switching, and other overheads that come
with supporting multiple users.
Complexity: Time-sharing systems are complex and require advanced software to manage
multiple users simultaneously. This complexity increases the chance of bugs and errors.
Security Risks: With multiple users sharing resources, the risk of security breaches
increases. Time-sharing systems require careful management of user access,
authentication, and authorization to ensure the security of data and software.
IBM VM/CMS: IBM VM/CMS is a time-sharing operating system that was first introduced in
1972.
TSO (Time Sharing Option): TSO is a time-sharing operating system that was first introduced
in the 1960s by IBM for the IBM System/360
4. Real Time Operating System
In Real-Time Systems, each job carries a certain deadline within which the job is supposed to be
completed, otherwise, the huge loss will be there, or even if the result is produced, it will be
completely useless.
Real-time systems are used when there are time requirements that are very strict like missile
systems, air traffic control systems, robots, etc.
The Application of a Real-Time system exists in the case of military applications, if you want to
drop a missile, then the missile is supposed to be dropped with a certain precision.
11
Types of Real-Time Operating Systems
Hard Real-Time Systems:
Hard Real-Time OSs are meant for applications where time constraints are very strict and even the
shortest possible delay is not acceptable.
Soft Real-Time Systems:
These OSs are for applications where time-constraint is less strict.
Advantages of Real-time operating system:
Easy to layout, develop and execute real-time applications under the real-time operating
system.
In a Real-time operating system, the maximum utilization of devices and systems.
Real-time operating system in the embedded system: Since the size of programs is small,
Disadvantages of Real-time operating system:
Real-time operating systems are very costly to develop.
Use heavy system resources: Sometimes the system resources are not so good and they are
expensive as well.
Complex Algorithms: The algorithms are very complex and difficult for the designer to
write on.
Examples of Real-Time Operating Systems are scientific experiments, medical imaging systems,
industrial control systems, weapon systems, robots, air traffic control systems, etc.
5. Multi-Processing Operating System
Multi-Processing Operating System is a type of Operating System in which more than one CPU
is used for the execution of resources. It betters the throughput of the System.
12
Advantages of Multi-Processing Operating System
It increases the throughput of the system.
As it has several processors, so, if one processor fails, we can proceed with another
processor.
Disadvantages of Multi-Processing Operating System
Due to the multiple CPU, it can be more complex and somehow difficult to understand.
13