What is Batch Processing Operating System?

boilermakerwrapperΗλεκτρονική - Συσκευές

8 Νοε 2013 (πριν από 3 χρόνια και 10 μήνες)

92 εμφανίσεις

What is Batch Processing Operating System?

WRITTEN BY DINESH TH
AKUR

Category:

Operating System

To avoid the problems of early systems the batch processing systems were introduced.
The problem of early systems was more setup time. So the problem of more set up
time
was reduced by processing the jobs in batches, known as

batch

processing system.

In
this approach similar jobs were submitted to the

CPU

for processing and were run
together.



The main function of a batch processing sys
tem is to automatically keep executing the
jobs in a batch. This is the important task of a batch processing system i.e. performed by
the 'Batch Monitor' resided in the low end of main

memory
.



This technique was possible due to the invention of hard
-
disk drives and card readers.
Now the jobs
could be stored on the disk to create the pool of jobs for its execution as a
batch. First the pooled jobs are read and executed by the batch monitor, and then these
jobs are grouped; placing the identical jobs (jobs with the similar needs) in the same
bat
ch, So, in the batch processing system, the batched jobs were executed automatically
one after another saving its time by performing the activities (like loading of compiler)
only for once. It resulted in improved system utilization due to reduced turn aro
und
time.



In the early job processing systems, the jobs were placed in a job queue and the memory
allocateor managed the primary memory space, when space was available in the main
memory, a job was selected from the job queue and was loaded into memory.



Once the job loaded into primary memory, it competes for the processor. When the
processor became available, the processor scheduler selects job that was loaded in the
memory and execute it.



In batch strategy is implemented to provide a batch file proc
essing. So in this approach
files of the similar batch are processed to speed up the task.






Traditional Job Processing




Batch File Processing



In batch processing the user were supposed to prepare a program as a

deck of punched
cards. The header cards in the deck were the "job control" cards which would indicate
that which compiler was to be used (like FORTRAN, COBOL compilers etc). The deck of
cards would be handed in to an operator who would collect such jobs f
rom various
users. Then the submitted jobs were 'grouped as FORTRAN jobs, COBOL jobs
etc.

In

addition, these jobs were classified as 'long jobs' that required more processing
time or short jobs which required a short processing time. Each set of jobs was
c
onsidered as a batch and the processing would be done for a batch. For instance, there
maybe a batch of short FORTRAN jobs. The output for each job would be separated and
turned over to users in a collection area. So in this approach, files of the similar
batch
were processed to speed up the task.

In this environment there was no interactivity and the users had no direct control. In
this system, only one job could engage the processor at a time and if there was any
input/ output operation the processor had
to sit idle till the completion of I/O job. So it
resulted to the underutilization of CPU time.

In batch processing system, earlier; the jobs were scheduled in the order of their arrival
i.e. First Come First Served (FCFS).Even though this scheduling metho
d was easy and
simple to implement but unfair for the situations where long jobs are queued ahead of
the short jobs. To overcome this problem, another scheduling method named as
'Shortest Job First' was used. As memory management is concerned, the main mem
ory
was partitioned into two fixed partitions. The lower end of this partition was assigned to
the resident portion of the OS i.e. named as Batch Monitor. Whereas, the other partition
(higher end) was assigned to the user programs.

Though, it was an
improved technique in reducing the system setup time but still there
were some limitations with this technique like as under
-
utilization of CPU time, non
-
interactivity of user with the running jobs etc. In batch processing system, the jobs of a
batch were
executed one after another. But while these jobs were performing I/O
operations; meantime the CPU was sitting idle resulting to low degree of resource
utilization.

Definition of Real Time Operating Systems

WRITTEN BY DINESH TH
AKUR

Category:

Operating System

Real time

Operating Systems

are very fast and quick
respondent systems. These
systems are used in an environment where a large number of events (generally external)
must be accepted and processed in a short time. Real time processing requires quick
transaction and characterized by supplying immediate respon
se. For example, a
measurement from a petroleum refinery indicating that temperature is getting too high
and might demand for immediate attention to avoid an explosion.

In real time

operating system

there is a little swapping of programs between primary
and secondary

memory
. Most of the time, processes remain in primary memory in orde
r
to provide quick response, therefore, memory management in real time system is less
demanding compared to other systems.



The primary functions of the real time operating system are to:



1. Manage the processor and other system resources to meet the re
quirements of an
application.

2.


Synchronize with and respond to the system events.

3. Move the data efficiently among processes and to perform coordination among these
processes.



The Real Time systems are used in the environments where a large number
of events
(generally external to the
computer

system) is required to
be accepted and is to be
processed in the form of quick response. Such systems have to be the multitasking. So
the primary function of the real time operating system is to manage certain system
resources, such as the

CPU
, memory, and time. Each resource must be shared among
the competing processes to accomplish the overall function of the
system Apart from
these primary functions of the real time operating system there are certain secondary
functions that are not mandatory but are included to enhance the performance:



1. To provide an efficient management of

RAM
.

2. To provide an exclusive access to the computer resources.



T
he term real time refers to the technique of updating files with the transaction data
immediately just after the event that it relates with.



Few more examples of real time processing are:



1. Airlines reservation system.

2. Air traffic control system.

3. Systems that provide immediate updating.

4. Systems that provide up to the minute information on stock prices.

5. Defense application systems like as RADAR.



Real time operating systems mostly use the preemptive priority scheduling. These
support more than one scheduling policy and often allow the user to set parameters
associated with such policies, such as the time
-
slice in Round Robin scheduling where
each t
ask in the task queue is scheduled up to a maximum time, set by the time
-
slice
parameter, in a round robin manner. Hundred of the priority levels are commonly
available for scheduling. Some specific tasks can also be indicated to be non
-
preemptive.

Definition of Distributed Operating System

WRITTEN BY DINESH TH
AKUR

Category:

Oper
ating System

Distributed

Operating System

is a model where distributed applications are
running on multiple computers linked by communications. A distributed

operating
system

is an extension of the network operating system that supports higher levels of
communication and integration of the machines on the network.

This system looks to i
ts users like an ordinary centralized operating system but runs on
multiple, independent

central processing units
(CPUs).



These systems are referred as

loosely coupled systems

where each processor has its own
local

memory

and processors communicate with one another through various
communication lines, such as high speed buses or telephone lines. B
y loosely coupled
systems, we mean that such computers possess no hardware connections at the
CPU

-

memory bus level, but are connected by external interfaces that run under the control of
software.

The Distributed Os involves a collection of autonomous

computer

systems, capable of
communicating and cooperating with each other through a LAN / WAN. A Distributed
Os

provides a virtual machine abstraction to its users and wide sharing of resources like
as computational capacity, I/O and files etc.

The structure shown in fig contains a set of individual computer systems and
workstations connected via communication syst
ems, but by this structure we can not
say it is a distributed system because it is the software, not the hardware, that
determines whether a system is distributed or not.

The users of a true distributed system should not know, on which machine their
progra
ms are running and where their files are stored. LOCUS and MICROS are the best
examples of distributed operating systems.

Using LOCUS operating system it was possible to access local and distant files in
uniform manner. This feature enabled a user to log o
n any node of the network and to
utilize the resources in a network without the reference of his/her location. MICROS
provided sharing of resources in an automatic manner. The jobs were assigned to
different nodes of the whole system to balance the load on

different nodes.



Below given are some of the examples of distributed operating systems:



l. IRIX operating system; is the implementation of UNIX System V, Release 3 for Silicon
Graphics multiprocessor workstations.

2.

DYNIX operating system running on

Sequent Symmetry multiprocessor computers.

3.

AIX operating system for IBM RS/6000 computers.

4.

Solaris operating system for SUN multiprocessor workstations.

5.


Mach/OS is a multithreading and multitasking UNIX compatible operating system;

6.

OSF/1 o
perating system developed by Open Foundation Software: UNIX compatible.



Distributed systems provide the following advantages:



1 Sharing of resources.

2 Reliability.

3 Communication.

4 Computation speedup.



Distributed systems are potentially more reliable than a central system because if a
system has only one instance of some critical component, such as a CPU, disk, or
network interface, and that component fails, the system will go down. When there are
multi
ple instances, the system may be able to continue in spite of occasional failures. In
addition to hardware failures, one can also consider software failures. Distributed
systems allow both hardware and software errors to be dealt with.

A distributed system

is a set of computers that communicate and collaborate each other
using software and hardware interconnecting components. Multiprocessors (MIMD
computers using shared memory architecture), multicomputers connected through
static or dynamic interconnection

networks (MIMD computers using message passing
architecture) and workstations connected through local area network are examples of
such distributed systems.

A distributed system is managed by a distributed operating system. A distributed
operating system
manages the system shared resources used by multiple processes, the
process scheduling activity (how processes are allocating on available processors), the
communication and synchronization between running processes and so on. The
software for parallel com
puters could be also tightly coupled or loosely coupled. The
loosely coupled software allows computers and users of a distributed system to be
independent each other but having a limited possibility to cooperate. An example of
such a system is a group of c
omputers connected through a local network. Every
computer has its own memory, hard disk. There are some shared resources such files
and printers. If the interconnection network broke down, individual computers could be
used but without some features like
printing to a non
-
local

printer
.

Definition Multiprocessor Operating System

WRITTEN BY DINESH TH
AKUR

Category:

Operating System

Multiprocessor

Operating System

refers to the use of two or more

central
processing units

(
CPU
) within a single

computer

system. These multiple CPUs are in a
close communication sharing the computer bus,

memory

and other peripheral devices.
These systems are referred as

tightly coupled systems.



These types of systems are used when very high

speed is required to process a large
volume of data. These systems are generally used in environment like satellite control,
weather forecasting etc. The basic organization of multiprocessing system is shown in
fig.



Multiproces
sing system is based on the symmetric multiprocessing model, in which
each processor runs an identical copy of

operating system

and these copies
communicate with each other. In this system processor is assigned a specific task. A
master processor controls the system. This scheme defines a master
-
slave relationship.
These systems can save money in compare to single processor systems because the
processors can share peripherals, power supplies and other devices. The main advantage
of multiprocessor system is to get more work done in a shorter period

of time.
Moreover, multiprocessor systems prove more reliable in the situations of failure of one
processor. In this situation, the system with multiprocessor will not halt the system; it
will only slow it down.

In order to employ multiprocessing operatin
g system effectively, the computer system
must have the followings:

1. Motherboard Support:

A motherboard capable of handling multiple processors.
This means additional sockets or slots for the extra chips and a chipset capable of
handling the
multiprocessing arrangement.



2.

Processor

Support:

processors those are capable of
being used in a
multiprocessing system.

The whole task of multiprocessing is managed by the operating system, which allocates
different tasks to be performed by the various processors in the system.

Applications designed for the use in multiprocessing are
said to be threaded, which
means that they are broken into smaller routines that can be run independently. This
allows the operating system to let these threads run on more than one processor
simultaneously, which is multiprocessing that results in improve
d performance.

Multiprocessor system supports the processes to run in parallel. Parallel processing is
the ability of the CPU to simultaneously process incoming jobs. This becomes most
important in computer system, as the CPU divides and conquers the jobs.

Generally the
parallel processing is used in the fields like artificial intelligence and expert system,
image processing, weather forecasting etc.

In a multiprocessor system, the dynamically sharing of resources among the various
processors may cause ther
efore, a potential bottleneck. There are three main sources of
contention that can be found in a multiprocessor operating system:

Locking

system:

In order to provide safe access to the resources shared among
multiple processors, they need to be protected b
y locking scheme. The purpose of a
locking is to serialize accesses to the protected resource by multiple processors.
Undisciplined use of locking can severely degrade the performance of system. This form
of contention can be reduced by using locking schem
e, avoiding long critical sections,
replacing locks with lock
-
free algorithms, or, whenever possible, avoiding sharing
altogether.

Shared data:

The continuous accesses to the shared data items by multiple processors
(with one or more of them with data writ
e) are serialized by the cache coherence
protocol. Even in a moderate
-
scale system, serialization delays can have significant
impact on the system performance. In addition, bursts of cache coherence traffic
saturate the memory bus or the interconnection ne
twork, which also slows down the
entire system. This form of contention can be eliminated by either avoiding sharing or,
when this is not possible, by using replication techniques to reduce the rate of write
accesses to the shared data.

False sharing:

This

form of contention arises when unrelated data items used by
different processors are located next to each other in the memory and, therefore, share a
single cache line: The effect of false sharing is the same as that of regular sharing
bouncing of the cac
he line among several processors. Fortunately, once it is identified,
false sharing can be easily eliminated by setting the memory layout of non
-
shared data.

Apart from eliminating bottlenecks in the system, a multiprocessor operating system
developer shou
ld provide support for efficiently running user applications on the
multiprocessor. Some of the aspects of such support include mechanisms for task
placement and migration across processors, physical memory placement insuring most
of the memory pages used
by an application is located in the local memory, and scalable
multiprocessor synchronization primitives.

Definition of Multiprogramming Operating

System

WRITTEN BY DINESH TH
AKUR

Category:

Operating System

To overcome the problem of underutilization of

CPU

and main

memory
, the
multiprogramming was introduced. The multiprogramming is interleaved execution of
multiple jobs by th
e same

computer
.

In multiprogramming system, when one program is wai
ting for I/O transfer; there is
another program ready to utilize the CPU. So it is possible for several jobs to share the
time of the CPU. But it is important to note that multiprogramming is not defined to be
the execution of jobs at the same instance of
time. Rather it does mean that there are a
number of jobs available to the CPU (placed in main memory) and a portion of one is
executed then a segment of another and so on. A simple process of multiprogramming is
shown in figure



As s
hown in fig, at the particular situation, job' A' is not utilizing the CPU time because
it is busy in I/ 0 operations. Hence the CPU becomes busy to execute the job 'B'. Another
job C is waiting for the CPU for getting its execution time. So in this state
the CPU will
never be idle and utilizes maximum of its time.

A program in execution is called a "Process", "Job" or a "Task". The concurrent
execution of programs improves the utilization of system resources and enhances the
system throughput as compared t
o batch and serial processing. In this system, when a
process requests some I/O to allocate; meanwhile the CPU time is assigned to another
ready process. So, here when a process is switched to an I/O operation, the CPU is not
set idle.

Multiprogramming is
a common approach to resource management. The essential
components of a single
-
user
operating system

include a command processor, an input/
output control system, a file system, and a transient area. A multiprogramming
operating system builds on this base, subdividing the transient area to hold se
veral
independent programs and adding resource management routines to the operating
system's basic functions.

Definition of Time Sharing Operating
System

WRITTEN BY DINESH TH
AKUR

Category:

Operating System

A

time sharing system

allows many users to share the

computer

resources
simultaneously. In other words, time sharing refers to the allocation of computer
resources in time slots to several
programs simultaneously. For example a mainframe
computer that has many users logged on to it. Each user uses the resources of the
mainframe
-
i.e.

memory
,
CPU

etc. The users feel that they are exclusive user of the CPU,
even though this is not possible with one CPU i.e. shared among different users.

The time sharing systems were developed to provide an interactive use of the com
puter
system. A time shared system uses CPU scheduling and multiprogramming to provide
each user with a small portion of a time
-
shared computer. It allows many users to share
the computer resources simultaneously. As the system switches rapidly from one us
er to
the other, a short time slot is given to each user for their executions.

The time sharing system provides the direct access to a large number of users where
CPU time is divided among all the users on scheduled basis. The OS allocates a set of
time to

each user. When this time is expired, it passes control to the next user on the
system. The time allowed is extremely small and the users are given the impression that
they each have their own CPU and they are the sole owner of the CPU. This short period
of time during that a user gets attention of the CPU; is known as a

time slice or a
quantum.

The concept of time sharing system is shown in figure.



In above figure the user 5 is active but user 1, user 2, user 3, and user 4

are in waiting
state whereas user 6 is in ready status.

As soon as the time slice of user 5 is completed, the control moves on to the next ready
user i.e. user 6. In this state user 2, user 3, user 4, and user 5 are in waiting state and
user 1 is in ready

state. The process continues in the same way and so on.

The time
-
shared systems are more complex than the multi
-
programming systems. In
time
-
shared systems multiple processes are managed simultaneously which requires an
adequate management of main memory
so that the processes can be swapped in or
swapped out within a short time.

Note:

The term 'Time Sharing' is no longer commonly used, it has been replaced by
'Multitasking System'.