You may face any number of these and other
situations each day. You should have a backup or
contingency plan in the event you lose a piece of
hardware. For example, if the fastest printer is down,
will the user be satisfied with one printed copy now and
the remaining copies printed tomorrow? Or is there
another AIS facility in your immediate area that will let
you use its printer? It will be your job to prepare the
most realistic schedule you can, and then be ready to
adjust it. What tools will you have to help you prepare
the schedules? What information will you need? What
methods can you use? In the following section, we talk
about the types of information you will need to prepare
a schedule. Then we explore a few of the scheduling
methods you might use.
Regardless of the scheduling method used, you will
need to know specific types of information. Some
information is job-related; that is, information about the
resources, media, and time needed for a particular job.
Some information is AIS facility-related; for example,
workload, anticipated resource changes, number of
operators available, the system capabilities and
capacities, and so on. You will need to consider both.
Lets look at the job-related and AIS facility-related
areas in a little more depth.
One of the most apparent pieces of job-related
information is that every job has resource requirements.
These requirements vary considerably from one job to
the next. One job may require 125K of memory with
no other peripheral devices except a printer for output.
Another job may require four tape drives, two disk
drives, a printer, and only 40K of memory. But a jobs
resources cannot be looked at in these terms alone. Can
you recall the terms PREcomputer and POSTcomputer
processing? All AIS facility resources must be
considered. You must consider data entry functions, job
setup functions, and output control functions.
Overloading data entry can delay jobs, causing them to
be assembled for computer processing later than
scheduled. Suppose I/O control is overloaded. What
difference would it make if jobs were processed and
completed as scheduled? They would only be delayed
because work is backed up or personnel are not
available. Overutilization of resources affects service.
Underutilization of resources is expensive and wasteful.
The balance will be up to you and the efficiency of your
Another piece of job-related information to
consider is processing time. To set aside a sufficient
amount of time for processing, you must know how
long a job will reside in memory. Processing time is
normally estimated for a multiprogramming
environment since most computers today process
programs/data in this fashion, and job mix affects the
overall processing time for a job.
Lets assume you have a static workload with no
jobs being added to or deleted from the schedule. Even
under these conditions, you can expect job processing
to deviate from the schedule. Why? you might ask. The
reasons for this are the uncertainty about job processing
time and disrupted processing. Take, for example, a job
that normally has a processing time of 45 minutes.
Today, because of a large increase in input, the job
processing time is 1 hour, thus delaying all the
following jobs by 15 minutes. This is unavoidable and
must be expected. The same is true of disrupted
processing, whether it is hardware failure or software
problems. One way to avoid these delays is to include
a specified amount of buffer time in your schedule. You
might add a safety factor of 10 percent to the expected
processing time. In our previous example where
processing time increased from 45 minutes to 1 hour, a
buffer time of 10 percent would only give you an
additional 4.5 minutes of processing time. This would
still have been inadequate. However, since all the
following jobs also have buffer time built into their
scheduled processing time, the job overrun should not
be that critical for meeting the overall schedule of a
Another piece of job-related information to
consider applies to multiprogramming environments.
The challenge here is to combine as many jobs as
possible so that each resource is used to its maximum.
In a nonmultiprogramming environment, you have no
problem in scheduling jobs because you can process
only one job at a time. However, resources are
underutilized, and thats a fact you must live with. This
is a direct result of having all resources dedicated to one
computer, even when they are not needed. On the other
hand, multiprogramming allows you to execute several
jobs at the same time using as many resources as
possible. The difficulty of manually preparing such a
schedule for a system that runs in a multiprogramming
environment is in trying to obtain a job mix that makes
the best use of most resources without bogging down
the entire computer system.
Figure 1-5 gives you some idea of how main storage
and peripherals can be fully utilized as a result of the
proper job mix. It shows where the jobs are in memory,
and what tapes and disk drives are used by each job. It
also shows information about printing and printers. It