An Operating, an interface between a computer user and computer hardware and
controls the execution of all kinds of programs.
Some of important functions of an operating System are:
- Memory Management, management of Primary Memory or Main Memory.
* Keeps tracks of primary memory i.e, what part of it are
in use by whom, what part are not in use.
* In multiprogramming, the OS decides which process will
get memory when and how much.
* Allocates the memory when a process requests it to do so.
* De-allocates the memory when a process no longer needs it
or has been terminated.
- Processor Management, decides which process gets the processor when
and for how much time via process scheduling.
* Keeps tracks of processor and status of process. The
program responsible for this task is known as traffic controller.
* Allocates the processor (CPU) to a process.
* De-allocates processor when a process is no longer
required.
- Device Management, manages device communication via their respective
drivers.
* Keeps tracks of all devices via the I/O controller.
* Decides which process gets the device when and for how
much time.
* Allocates the device in the most efficient way.
* De-allocates devices.
- File Management. A file system is normally organized into directories
for easy navigation and usage.
* Keeps track of information, location, uses, status etc.
* Decides who gets the resources.
* Allocates the resources.
* De-allocates the resources.
- Security, By means of password and similar other techniques, it
prevents unauthorized access to programs and data.
- Error detecting aids, Production of dumps, traces, error messages,
and other debugging and error detecting aids.
- Coordination between other software and users, Coordinating and
assigning of compilers, interpreters, assemblers and other software to the various
users of the computer systems.
Some common services provided by an Operating System are:
- Program Execution, A process includes the complete execution context.
Some major activities of an operating system with respect to
program management:
* Loads a program into memory
* Executes the program
* Handles program's execution
* Provides a mechanism for process synchronization
* Provides a mechanism for process communication
* Provides a mechanism for deadlock handling
- I/O Operation, An Operating System manages the communication between
user and device drivers.
* I/O operation means read or write operation with any file
or any specific I/O device.
* Operating system provides the access to the required I/O
device when required.
- File System Manipulation. A file represents a collection of related
information.
Some major activities of an operating system with respect to file
,management:
* Program needs to read/write to a file.
* Provides an interface to the user to create/delete files.
* Provides an interface to the user to create/delete
directories.
* Provides an interface to create the backup of file
system.
- Communication, Multiple processes communicate with one another
through communication lines in the network. The OS handles routing and connection
strategies, and the problems of contention and security.
Some major activities of an operating system with respect to
communication:
* Two processes often require data to be transferred
between them.
* Both the processes can be on one computer or on different
computers, but are connected through a computer network.
* Communication may be implemented by two methods, either
by Shared Memory or by Message Passing.
- Error Handling. Errors can occur anytime and anywhere. An error may
occur in CPU, in I/O devices or in the memory hardware.
Some major activities of an operating system with respect to error
handling:
* The OS constantly checks for possible errors.
* The OS takes an appropriate action to ensure correct and
consistent computing.
- Resource Management. In case of multi-user or multi-tasking
environment, resources such as main memory, CPU cycles and files storage are to be
allocated to each user or job.
Some major activities of an operating system with respect to resource
management:
* The OS manages all kinds of resources using schedulers.
* CPU scheduling algorithms are used for better utilization
of CPU.
- Protection, a mechanism or a way to control the access of programs,
processes, or users to the resources defined by a computer system.
Some major activities of an operating system with respect to
protection:
* The OS ensures that all access to system resources is
controlled.
* The OS ensures that external I/O devices are protected
from invalid access attempts.
* The OS provides authentication features for each user by
means of passwords.
History of Operating Systems
Earliest computers had no Operating System. Applications were loaded manually
and users were experts on the hardware
First System Software was libraries of code to manage devices.
This grew to batch processing systems, where some focused on application
programming and some on systems programming.
Batch Operating System.
Here, the users do not interact with the computer directly. Each
user prepares his job on an off-line device like punch cards and submits it to the
computer operator.
To speed up processing, jobs with similar needs are batched
together and run as a group.
The programmers leave their programs with the operator and the
operator then sorts the programs with similar requirements into batches.
, The problems with Batch Systems are as follows:
* Lack of interaction between the user and the job.
* CPU is often idle, because the speed of the mechanical
I/O devices is slower than the CPU.
* Difficult to provide the desired priority.
Time-sharing Operating Systems
A technique which allowed multiple users to interact with a
computer at the same time. This is a logical extension of multiprogramming.
The main difference between Multiprogrammed Batch Systems and
Time-Sharing Systems is:
* In Multiprogrammed batch systems, the objective is to
maximize processor use.
* n Time-Sharing Systems, the objective is to minimize
response time.
Multiple jobs are executed by the CPU by switching between them,
but the switches occur so frequently. Thus, the user can receive an immediate
response.
Advantages of Timesharing operating systems are as follows:
* Provides the advantage of quick response
* Avoids duplication of software
* Reduces CPU idle time
Disadvantages of Time-sharing operating systems are as follows:
* Problem of reliability
* Question of security and integrity of user programs and
data
* Problem of data communication
Distributed Operating System
This systems use multiple central processors to serve multiple
real-time applications and multiple users. Data processing jobs are distributed
among the processors accordingly.
The processors communicate with one another through various
communication lines (such as high-speed buses or telephone lines).
Advantages of distributed systems are as follows:
* With resource sharing facility, a user at one site may be
able to use the resources available at another.
* Speedup the exchange of data with one another via
electronic mail.
* If one site fails in a distributed system, the remaining
sites can potentially continue operating.
* Better service to the customers.
* Reduction of the load on the host computer.
* Reduction of delays in data processing.
Network Operating System
Runs on a server and provides the server the capability to manage
data, users, groups, security, applications, and other networking functions.
The primary purpose of the network operating system is to allow
shared file and printer access among multiple computers in a network.
Advantages of network operating systems are as follows:
* Centralized servers are highly stable.
* Security is server managed.
* Upgrades to new technologies and hardware can be easily
integrated into the system.
* Remote access to servers is possible from different
locations and types of systems.
The disadvantages of network operating systems are as follows:
* High cost of buying and running a server.