An operating system is a program that acts as an intermediary between a user of
a computer and the computer hardware. The purpose of an operating system is
to provide an environment in which a user can execute program.
An operating system is an important part of almost every computer system. A
computer system can be divided roughly into four components: the hardware, the
operating system, the applications programs, and the users)
The hardware ñ the central processing unit (CPU), the memory, and the input /
output (I/O) devices - provides the basic computing resources. The applications
programs ñ such as compilers, database systems, games, and business
programs ñ define the ways in which these resources are used to solve the
computing problems of the users.
An operating system is a control program. A control program controls the
execution of user programs to prevent errors and improper use of the computer.
It is especially concerned with the operation and control of I/O devices.
A more common definition is that the operating system is the one program
running at all times on the computer (usually called the kernel), with all else being
applications programs.
Simple Batch Systems
To speed up processing, jobs with similar needs were batched together and were
run through the computer as a group. Thus, the programmers would leave their
programs with the operator. The operator would sort programs into batches with
similar requirements and, as the computer became available, would run each
batch. The output from each job would be sent back to the appropriate
programmer
The definitive feature of a batch system is the lack of interaction between the
user and the job while that job is executing. The job is prepared and submitted,
and at some later time, the output appears. The delay between job submission
and job completion (called turnaround time) may result from the amount of
computing needed, or from delays before the operating system starts to process
the job.
In this execution environment, the CPU is often idle. This idleness occurs
because the speeds of the mechanical I/O devices are intrinsically slower than
those of electronic devices).
SPOOLING
When a job is executed, the operating system satisfies its requests for card-
reader input by reading from the disk and when the job requests the printer to
output a line that line is copied into a system buffer and is written to the disk.
When the job is completed, the output is actually printed. This form of processing
is called spooling i.e. simultaneous peripheral operation on-line. Spooling, uses
the disk as a huge buffer, for reading as far ahead as possible on input devices
and for storing output files until the output devices are able to accept them.
Spooling is also used for processing data at remote sites. The CPU sends the
data via communications paths to a remote printer. The remote processing is
done at its own speed, with no CPU intervention. The CPU just needs to be
notified when the processing is completed, so that it can spool the next batch of
data.
Spooling overlaps the I/O of one job with the computation of other jobs. Spooling
has a direct beneficial effect on the performance of the system. Spooling can
keep both the CPU and the I/O devices working at much higher rates
Multi-programmed Batched Systems
Spooling provides an important data structure: a job pool. Spooling will generally
result in several jobs that have already been read waiting on disk, ready to run. A
pool of jobs on disk allows the operating system to select which job to run next,
to increase CPU utilization. When jobs come in directly on cards or even on
magnetic tape, it is not possible to run jobs in a different order. Jobs must be run
sequentially, on a first-come, first-served basis. However, when several jobs are
on a direct-access device, such as a disk, job scheduling becomes possible.
The most important aspect of job scheduling is the ability to multiprogram. Off-
line operation and spooling for overlapped I/O have their limitations. A single user
cannot, in general, keep either the CPU or the I/O devices busy at all times.
Multiprogramming increases CPU utilization by organizing jobs such that the
CPU always has one to execute.
Time-Sharing Systems
Multiprogrammed batched systems provide an environment where the various
system resources (for example, CPU, memory, peripheral devices) are utilized
effectively.
Time sharing, or multitasking, is a logical extension of multiprogramming. Multiple
jobs are executed by the CPU switching between them, but the switches occur
so frequently that the users may interact with each program while it is running.
An interactive, or hands-on, computer system provides on-line communication
between the user and the system. The user gives instructions to the operating
system or to a program directly, and receives an immediate response. Usually, a
keyboard is used to provide input, and a display screen (such as a cathode-ray
tube (CRT) or monitor) is used to provide output.
A time-shared operating system allows the many users to share the computer
simultaneously. Since each action or command in a time-shared system tends to
be short, only a little CPU time is needed for each user. As the system switches
rapidly from one user to the next, each user is given the impression that she has
her own computer, whereas actually one computer is being shared among many
users.
Time-sharing operating systems are even more complex than are
multiprogrammed operating systems. As in multiprogramming, several jobs must
be kept simultaneously in memory, which requires some form of memory man-
agement and protection.
a
Buy IBPS CWE Common Written Examination: Recruitment of Specialist Officers from Flipkart.com
0 comments:
Post a Comment