Unit I INTRODUCTION TO OPERATING SYSTEM
Unit I INTRODUCTION TO OPERATING SYSTEM
➢ Mainframe Systems
• In the 1960s, the common form of computing facility was a mainframe computer
system.
• The mainframe computer system would be normally housed in a computer center
with a controlled environment which was usually an air conditioned area with a clean
room like facility.
• The users used to bring in a deck of punched cards which encoded the list of program
instructions.
• The mode of operation was as follows:
a. User would prepare a program as a deck of punched cards.
b. The header cards in the deck were the “job control” cards which would indicate which
compiler was to be used (like Fortran / Cobol compilers).
c. The deck of cards would be handed in to an operator who would collect such jobs from
various users.
d. The operators would invariably group the submitted jobs as Fortran jobs, Cobol jobs etc.
In addition, these were classified as “long jobs” that required considerable processing
time or short jobs which required a short and limited computational time. Each set of jobs
was considered as a batch and the processing would be done for a batch.
e. Users had no direct control
f. Also, at any one time only one program would engage the processor. This meant that if
there was any input or output in between processing then the processor would wait idling
till such time that the I/O is completed.
g. Clearly, this led to poor utilization of the processor.
In a multi programmed batch system, multiple programs can be brought into the main memory
from the disk simultaneously at a particular time as shown in Figure.
1. One of the jobs in the main memory will be given the CPU.
2. The operating system now has additional functionalities of selecting jobs
from the disk to be brought into the main memory and selecting one of the
jobs in the main memory to be given to the CPU.
3. If there are 10 jobs in the disk and there is space in the main memory for
only 3, 3 out of the 10 jobs must be chosen to be brought into the main
memory. This is done by the job scheduler.
4. As only one job can be given to the CPU at a particular time, choosing
one of the different jobs present in the main memory to be given to the
CPU is done by the CPU scheduler.
5. When the 3 jobs are placed in the main memory, decision has to be made
as to where to place the jobs in the main memory.
6. Hence memory management was added as a functionality of the operating
system.
7. I/O devices also have to be allocated to processes. Hence I/O management
was included as functionality to the operating system.
In these systems, multiple programs can be kept in the memory. But a one-
to-one interaction between the user and computer was missing. Hence, a new system
was developed called the time-sharing systems. These time-sharing systems are
basically an extension of multiprogramming systems and are called multitasking
systems.
The operating systems like Windows, MacOS and Linux that we see today are all time
sharing systems. A time sharing system is a logical extension of multiprogramming systems.
1. In these systems, the CPU is multiplexed among several jobs that are kept in memory
and on disk and hence job scheduling and CPU scheduling are included in the functions
of the operating system.
2. Here, a direct communication between the user and the system is provided. It is possible
for many users to use the system at a particular time.
3. Since the speed of users is much less than the speed of the CPU, CPU time can be shared
among the different users’ programs.
4. Since many jobs can be brought into the main memory, memory management is needed.
5. It may be necessary for some process to wait for I/O to happen (say read an input from
the user). Then this process may be moved/swapped from the main memory to the disk.
6. Another partially executed process which was moved to the disk earlier can be brought
into the main memory. Thus partially executed jobs can be moved in and out of memory
to the disk. Hence the concept of virtual memory is introduced. Virtual memory also
allows programs to be larger than the physical memory.
7. Since many users are using the computer, each user will have his/her own files and these
files have to be placed in the secondary storage device / disks. When there are many
files, the files have to be arranged in a logical manner. Hence, file systems were included
as a part of operating systems.
8. It is possible to have many processes of a particular user or different users to run
concurrently. At a particular time, only one process can use the CPU. When one process
is waiting for I/O, another process may use the CPU and vice versa. This may not be felt
by the users using the computer. Thus concurrent execution of processes is possible.
9. When many processes execute concurrently, they may have to communicate among
themselves or may have to share common variables or data structures. Hence job
synchronization and communication are needed.
10. Similarly, when processes execute concurrently and share resources of the computer, it is
possible that deadlocks may occur. Hence the operating system must have the capability
to handle deadlocks.
➢ Desktop Systems
Initially, the CPUs in PCs lacked the features needed to protect an operating system
from user programs. PC operating systems therefore were neither multiuser nor multitasking.
1. The goals of these operating systems have changed with time; instead of
maximizing CPU and peripheral utilization, the systems opt for maximizing
user convenience and responsiveness.
2. Initially, file protection was not needed in a personal machine. But since
computers are connected to other networks these days, other computers and
other users can access the files on a PC and hence file protection again has
become a necessary feature of the operating system.
3. The lack of such protection has made it easy for malicious programs to
destroy data on systems such as MS-DOS and the Macintosh operating
system.
4. These programs may be self-replicating, and may spread rapidly via worm or
virus mechanisms and disrupt entire companies or even worldwide networks.
➢ Generation of Computers:
First Generation OS: ( 1945 - 1955 ): Vacuum Tubes and Plugboards
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.
Advantages of Real-time operating system:
1. Easy to layout, develop and execute real-time applications under the real-time operating
system.
2. In a Real-time operating system, the maximum utilization of devices and systems.
Disadvantages of Real-time operating system:
3. Real-time operating systems are very costly to develop.
4. Real-time operating systems are very complex and can consume critical CPU cycles.
➢ Clustered Systems
1. The clustered systems are a combination of hardware clusters and software
clusters.
2. The hardware clusters help in sharing of high performance disks between the
systems. The software clusters makes all the systems work together.
3. Clustered systems are similar to parallel systems as they both have multiple
CPUs. However a major difference is that clustered systems are created by two or
more individual computer systems merged together.
4. Basically, they have independent computer systems with a common storage and
the systems work together.
Advantages:
1. High Availability
2. Cost Efficiency
3. Additional Scalability
4. Fault Tolerance
Disadvantages
1. Required Resources
2. Maintenance
➢ Parallel systems:
1. Parallel Systems are designed to speed up the execution of programs by dividing
the programs into multiple fragments and processing these fragments at the same
time.
Advantages of Parallel Systems:
1. High Performance
2. Cost Effective.
Parallel systems work with the simultaneous The distributed system consists of a number of
use of multiple computer resources which computers that are connected and managed so that they
can include a single computer with multiple share the job processing load among various
2. processors. computers distributed over the network.
These systems share a memory, clock, and These systems do not share memory or clock in
7. peripheral devices contrast to parallel systems.
Goals of Operating System
There are goals of the operating system:
1. Convenience: An Operating System's primary and first goal is to provide a
friendly and convenient environment to the user.
2. Efficiency: An operating system should utilize all the resources efficiently.
3. Portability and Reliability: The operating system can work/operate on different
machines with different processors and memory configurations.
4. Hardware Abstraction: The operating system can conceal or can be said to
control all functions and resources of the computer.
5. Security: An operating system provides the safety and security of data between
the user and the hardware.