Escolar Documentos
Profissional Documentos
Cultura Documentos
Operating System
Snapshot
Introduction
Operating System
Early Operating Systems
Buffering and Spooling
Batch Processing Systems
Multi Programming Systems
Time Sharing Systems
Parallel Systems
Distributed Systems
Real Time Systems
Summary
Introduction
Operating systems are primarily resource manager. The main resource they
manage is computer hardware in the form of processors, storage, input/output devices,
communication devices, and data. Operating systems perform many functions such as
implementing the user interface, sharing hardware among users, allowing users to share
data among themselves, preventing users from interfering with one another, scheduling
resources among users, facilitating input/output, recovering from errors, accounting for
resource usage, facilitating parallel operations, organizing data for secure and rapid
access, and handling network communications.
The Operating System is a set of programs that are implemented either in the
Software or Firmware to activate the Hardware, in order to maintain the functionality and
resources of the system.
Many of the timesharing systems of the 1960s were multimode systems which
supported batch processing as well as real-time. Real-time systems are characterized by
supplying immediate response.
The 1970s
The systems of the 1970s were primarily multimode timesharing systems that
supported batch processing, timesharing, and real-time applications. The TCP/IP
communication standards of the Department of Defense became widely used.
Communication in local area networks (LANs) was made practical and economical by
the Ethernet standard. Encryption received much attention and it became necessary to
encode proprietary or private data.
The 1980s
The 1980s was the decade of personal computers and workstation.
Microprocessor technology evolved to the point that it became possible to build desktop
computers as powerful as the mainframes of the 1970s. Computing was distributed to the
sites at which it was needed rather than bringing the data to be processed to some central,
large-scale, computer installation. Application software packages such as spreadsheet
programs, word processors, database packages, and graphics packages helped drive the
personal computing revolution.
Electronic mail, file transfer and remote database access applications proliferated.
The client/server model became widespread: Clients are network users that need various
services performed: servers are hardware/software network components that perform
these services.
Buffering
Buffer refers to the memory area that stores data while they are transferred
between two devices or between device and application. As Input/Output process transfer
progresses, its speed depends on many factors related to input-output hardware, but
normally unrelated to processor operation.
Coping with speed mismatch between producer and consumer of data stream.
Spooling is also used for processing data at remote sites. The CPU sends the data
via communications paths to a remote printer (or accepts an entire input job from a
remote card reader). The remote processing (processing done at a different place) 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. Even in a
simple system, the spooler may be reading the input of one job while printing the output
of a different job. Spooling has a direct beneficial effect on the performance of the
system. For the cost of some disk space and a few tables, the computation of one job can
overlap with the I/O of other jobs. Thus, spooling can keep both the CPU and the I/O
devices working at much higher rates, as shown in the figure 1.3 below:
The operating system functions can be divided into three broad categories:
• Category 1: Essential Functions - Functions that fulfill the basic aim of an
operating system, namely effective utilization of the computer resources.
Batched
• To batch jobs with similar needs and run through the computer as a group
Single Programmed
No disk is used
Multi Programmed
Time- Sharing
Multiple jobs are executed by CPU "at the same time" – CPU is given, to one job
for a period of time and then switches to another.
• Switching appears so frequently, that for each user and each job it looks
like computer runs particularly that job
Batch
Monitor
Job n
Storage
The storage arrangement with batch monitor program and the user job of a batch
sharing the storage involves the design decision of how much storage to reserve for the
monitor program and how much to make available for user jobs of the batch. In the
overlay technique, part of the monitor code is permanently situated in the main storage,
while the other sections of the monitor code are loaded into a transient area of main
storage on demand. Monitor functions such as I/O control, interrupt processing, that are
frequently required during batch processing are located in storage while infrequently
required services like device error recovery, opening and closing of files are loaded into
transient area when required. The storage allocation is shown in the figure 1.5.
Permanently
Allocated
Area
Multiprogramming Systems
Supervisor
CPU
Job 1
Job 2 I/O
Channel
Seq.
Acces I/O
s
Job n
An OS supports variety of I/O facilities such as access methods for different file
organizations, file security mechanisms etc., supported by modules of file system or
IOCS (Input-Output Control System) components of OS. The I/O requirement is passed
to the supervisor, who analyses the requirements and initiates the I/O on the appropriate
device. Device errors are handled by the supervisor, which organizes automatic error
recovery.
Time Sharing Operating System
If a computer is used in a batch mode, a user submits his program along with a
number of other users and all the jobs are put in a job-queue and fed into the computer. A
number of jobs in the queue are kept in the computer’s memory and a multiprogramming
operating system is invoked which schedules the execution of individual jobs with the
main object of keeping all the units of the computer simultaneously busy.
Using this method the total number of jobs processed by the computer in a given
period is maximized. This is known as maximizing the computer’s throughput. It is more
desirable for an individual user to minimize the time elapsed between the submission of
the job and obtaining the results. This time is known as the turnaround time. If the user is
Allotted
time slice
over
READY Wait
I/O Completed
User 1
(Wait)
User 6
(Ready) User 2
(Active)
CPU
User 5 User 3
(Ready) (Wait)
User 4
(Wait)
(A)
User 6
(Ready) User 2
(Ready)
CPU
User 5 User 3
(Active) (Wait)
User 4
(Wait)
(B)
The response time requirements of a real-time system are critical. The real-time
application and the time-sharing support the foreground activities. The Background
activities are supported by batch processing systems. The following figure illustrates the
operating system supporting a real-time application:
Supervisor
Background
Batch Activities
Processing
Time- Foreground
Sharing Activities
Support
Real-Time
Applications
Parallel Systems
Most systems to date are single processor systems; that is, they have only one
main CPU. However, there are multiprocessor systems. Such systems have more than
one processor in close communication, sharing the computer bus, the clock, and
sometimes memory and peripheral devices. These systems are referred to as tightly
coupled systems.
There are several reasons for building such systems. One advantage is increased
throughput. By increasing the number of processors, more work can be done in a shorter
period of time. When multiple processors cooperate on a task, a certain amount of
overhead is incurred in keeping all the parts working correctly. This overhead, plus
contention for shared resources, lowers the expected gain from additional processors.
Another reason for multiprocessor systems is that they increase reliability. In
case if one of the available processors fails, then each of the remaining processors pickup
a share of the work of the failed processor. Thus the entire system runs only a certain
percentage slower, rather than failing altogether.
The process in a distributed system may vary in size and function. They may
include small microprocessors, workstations, minicomputers, and large general-purpose
computer systems. These processors are referred to by a number of different names, such
as sites, nodes, computers and so on, depending on the context in which they are
mentioned.
Real-Time Systems
A real-time system is used when there are rigid time requirements on the
operation of a processor or the flow of data, and thus is often used as a control device in a
dedicated application. A real-time operating system has well-defined, fixed time
constraints. Processing must be done within the defined constraints, or the system will
fail. A real-time system is considered to function correctly only if it returns the correct
result within any time constraints.
There are two kinds of real-time systems. A hard real-time system guarantees
that critical tasks are completed on time. This goal requires that all delays in the system
be bounded, from the retrieval of stored data to the time that it takes for the operating
system to finish any request made of it.
A less restrictive type of real-time system is a soft real-time system, where a
critical real-time task gets priority over other tasks, and retains that priority until it
completes. Soft real-time systems, however, have more limited utility than hard real-time
systems.
The operating system functions can be divided into three broad categories
based on functions namely Essential Functions, Monitoring Functions and
Service Functions.
Buffer refers to the memory area that stores data while they are transferred
between two devices or between device and application.
Turn-Around Time is the time taken since the submission of a user job to the
time its output is returned to the user.
A real-time system is used when there are rigid time requirements on the
operation of a processor or the flow of data, and thus is often used as a control
device in a dedicated application.
Exercise: -
2. List the four steps that are necessary to run a program on a completely
dedicated machine.