an operating system model for real-time applications

170
AN OPERATING SYSTEM MODEL FOR REAL-TIME APPLICATIONS William Charles Regmund

Upload: others

Post on 11-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An operating system model for real-time applications

AN OPERATING SYSTEM MODEL FORREAL-TIME APPLICATIONS

William Charles Regmund

Page 2: An operating system model for real-time applications

Library

Naval Postgraduate School

Morrterey, California 93940

Page 3: An operating system model for real-time applications

u \i) i li l\ I

n

cj n nisiui

loiiterey, California

p 1 1'

An Operating System Model for Real-Time Applications

by

William Charles Regmund, Jr.

Thesis Advisor: G.L. Barksdale

December 1972

AppH.ove.d {^OK piibtia ^.e/ezLse; dlitnAhution imtimittd.

Page 4: An operating system model for real-time applications
Page 5: An operating system model for real-time applications

Library

Naval Postgraduate SchoolMonterey. California 93940

An Operating System Model for Real-Time Applications

by

William Charles .Regmund, Jr.

Lieutenant, United States NavyB.A. , Rice University, 1965

B.S., Rice University, 1966

Submitted in partial fulfillment of the

requirements for the degree of

MASTER OF SCIENCE IN COMPUTER SCIENCE

from the

NAVAL POSTGRADUATE SCHOOLDecember 1972

Page 6: An operating system model for real-time applications
Page 7: An operating system model for real-time applications

ABSTRACT

The basic organization of an operating system is often obscured

by the myriad details of a particular implementation. In any context

where the conceptual behavior of such systems is of interest, it is

therefore desirable to have at hand some device which is transparent

to fundamental concepts but opaque to the details. The purpose of this

work is to develop such a device in the form of a logical model of

certain operating system functions. In order to test the utility of

this model, it is translated into a computer simulation program. Since

operating systems for real-time applications are of particular interest

here, some features of real-time systems that are built into the

computer model are discussed. Finally, some applications of the

program, and thus of the logical model, are suggested.

Page 8: An operating system model for real-time applications
Page 9: An operating system model for real-time applications

TABLE OF CONTENTS

I. INTRODUCTION 5

II. THE LOGICAL MODEL 7

A. SIMPLIFYING VIEWPOINTS 7

B. READY FOR PROCESSING LIST 9

C. I/O WAIT HEAP n

D. TIMER WAIT QUEUE 11

E. EXTENSIONS 13

III. REAL-TIME CONSIDERATIONS 15

A. PROPERTIES OF THE REAL-TIME ENVIRONMENT 15

B. GUN FIRE CONTROL SYSTEM DESCRIPTION 17

C. HYPOTHETICAL MODEL FOR THE PROGRAM 19

IV. THE COMPUTER MODEL 22

A. OVERVIEW 22

B. IMPLEMENTATION OF THE LOGICAL MODEL 22

C. APPLICATION OF THE PROGRAM 23

V. CONCLUSIONS 27

APPENDIX A PROGRAM DESCRIPTION 28

APPENDIX B SAMPLE DECK SETUP 46

APPENDIX C PROGRAM LISTING 47

APPENDIX D INPUT PARAMETERS 63

APPENDIX E SAMPLE OUTPUT 68

APPENDIX F RANDOM NUMBERS 70

APPENDIX G STATISTICAL CALCULATIONS 73

APPENDIX H DEFAULT PARAMETERS 77

Page 10: An operating system model for real-time applications
Page 11: An operating system model for real-time applications

BIBLIOGRAPHY 79

INITIAL DISTRIBUTION LIST 81

FORM DD 1473 82

Page 12: An operating system model for real-time applications
Page 13: An operating system model for real-time applications

I. INTRODUCTION

The principal concern of this research is the modeling of

operating systems for real-time computing environments. The particular

model developed herein is designed to study those sections of an

operating system devoted to resource scheduling; these sections will be

referred to as schedulers. Attention is given at various point

throughout the paper to the relation of multiprocessing concepts to

the basic model; the goal is to develop the model in such a way that

its usefulness is not restricted to systems with a single processor.

The end result of this work is a computer program which implements

the elements of the logical model and which can be used to study a

certain class of real-time applications.

The work divides naturally into three major areas. The first is

concerned with the development of a logically streamlined viewpoint of

schedulers. The problem of describing a program as complex as an

operating system is introduced and some desirable characteristics for

a model are discussed. The next three sections of the paper define

the main entities of a particular model which has rather general

application to the study of multiprocessing schedulers. Extensions

to the basic model are taken up next and a particular example is

discussed.

The second area for consideration is the real-time domain. Some

properties of real-time systems are discussed in order to focus atten-

tion on a particular class of such systems. The class of interest is

characterized by multiple, complex timing constraints found typically

In process control, data acquisition and command and control

Page 14: An operating system model for real-time applications
Page 15: An operating system model for real-time applications

applications. Details of a specific Naval system of this class, the

MK 86 MOD 2 Gun Fire Control System, are discussed in Chapter III,

Section B. The purpose in this discussion is to pave the way for the

definition of a hypothetical real-time system (similar to the MK 86

MOD 2) v/hich is actually modeled by the computer program. Various

assumptions and characteristics of the hypothetical system are

reviewed.

Finally, the first two areas are brought together and mapped onto

an implementation in the form of a program. The general make-up of

the program is discussed. Specific information on the implementation

of logical model entities is given. The several Appendices describe

details of the program design and utilization.

Page 16: An operating system model for real-time applications
Page 17: An operating system model for real-time applications

II. THE LOGICAL MODEL

A. SIMPLIFYING VIEWPOINTS

The description of a modern operating system is a difficult job

because such a system has a large number of tasks to perform and most

of them seem to be quite intricate and delicately balanced. Even a

major subsystem, e.g., resource scheduling, generally follows this

same pattern. Typically, for each minute sub-task that is considered,

disproportionate numbers of implementation questions arise to retard the

progress of the design. In this section we will attempt to reduce

operating systems descriptions to a set of more manageable essentials.

The goal is a set of distinct logical blocks into which these essential

elements fit so that every function of interest can be simply and

uniquely located in some block. It is this set of blocks that form the

"logical model". Since one of the overall goals of this project

involves integration of multiprocessing concepts, some clarification

of the term "multiprocessing" is in order. Parallel processing is

discussed in much of the current literature [6]; multiprocessing con-

cepts are often found embedded in this context. The multiprocessing systems

referred to in this report do not attempt to subdivide a given job into

segments that may be run in parallel. They have only a small number of

processors (typically 2 or 3) and are thus not of the same class as the

highly parallel ILLIAC IV or PEPE systems [6].

A simplified way of thinking about multiprocessing systems is

desirable in view of their apparent complexity. By design such a schema

is likely to be slanted toward a particular aspect of the system.

Although a particular logical way of looking at real-time operating

systems is thus nominally designed for a particular purpose, it should

7

Page 18: An operating system model for real-time applications
Page 19: An operating system model for real-time applications

UJ

UJQO

<

CDO

UJn:

o

CQO

Page 20: An operating system model for real-time applications
Page 21: An operating system model for real-time applications

be general enough that it is possible to add to the structure in any

direction and thus to illuminate its interfaces with other viewpoints.

Certainly the purposed logical structure loses utility if contradictions

arise when such extension is attempted. The central idea, however,

is that the difficulties in contemplating complex operating systems

(compounded by implementation considerations which properly belong

elsewhere) warrant the search for a logical system structure which

helps focus attention on relevant system features. The following

paragraphs describe a particular logical viewpoint of operating systems

which is convenient for discussion of the scheduling problem. The

model is suggested by the discussion of multiprocessing schedulers in

Lampson [8] and Alexander [2]; it consists of three major or top-

level entities: the Ready for Processing List (RFPL), the I/O Wait

Heap (lOWH) and the Timer Wait Queue (TWQ). The flow of jobs through

the model is shown in Fig 1. No assumptions are made on the

characteristics of the processors. Some simple extensions to this

basic system will be suggested.

B. READY FOR PROCESSING LIST

The focal point of the model is the Ready for Processing List

(RFPL), the queue from which a job is assigned to a processor. The job

at the top of the RFPL is assumed to be that job which logically should

be the next job to get a processor. This assumption is made in order

to sidestep questions of priority, preemption and other details of

queue management. Of course, these subtopics are of great interest

in the overall scheduling problem since they are the domain of specific

implementations of various scheduling algorithms. These details can

be considered separately at a lower level without unnecessarily

Page 22: An operating system model for real-time applications
Page 23: An operating system model for real-time applications

cluttering the system overviev;. The point is that this logical

division of the problem is natural and convenient in the sense that

it excludes consideration of implementation difficulties when attempt-

ing to deal with problems about overall system organization. On the

other hand, the structure lends to considerations of implementation

details a sense of perspective on the larger scale of the scheduling

problem.

With this concept of the RFPL in mind, one can view the processor

scheduling algorith in the following way: When a processor becomes idle,

the top element of the RFPL is inspected. If this element is null then

the processor remains in the idle state. If not, the free processor

is assigned as the executor for the top job. For convenience it can

be assumed that this assignment process includes applicable modifica-

tions to the RFPL. Assumed also is a mechanism which detects the

addition of a job to an empty RFPL and rechecks for idle processors.

Notice again the rather clean logical division of concepts that goes

on here: considerations such as time-slicing and priority are

relegated to a lower stratum in the hierarchy for separate treatment.

Increasing the number of processors in the system similarly adds no

complications to the model.

An example of an extension to the logical processor scheduler is

a preemption mechanism. To add this capability, we include in the RFPL

management routine a section of code which works for the scheduler.

This segment compares the logical priority ( a term intended to suggest

a priority level computed by an arbitrarity complex but lower-level

routine) of each new job arriving at the RFPL with that of each job

currently running on a CPU. Any time the arriving priority is greater

10

Page 24: An operating system model for real-time applications
Page 25: An operating system model for real-time applications

than some current priority, a job svn'tch will occur. Because of the

way the system has been defined, this switch can also be looked at

rather simply as the exchange of a job on some processor with the job

at the top of the RFPL. The possibility of some more complicated

insertion into the RFPL need not be considered at this level.

C. I/O WAIT HEAP

The lOWH holds task control blocks (TCBs) while the corresponding

jobs are in a blocked state awaiting completion of I/O operations.

Details of queue organization are not restricted in any way at this

level. The operation of the lOWH may be viewed in this way: When a

task requests an I/O operation, it is blocked and moved from its

processor to the lOWH. When the interrupt signaling completion of its

I/O occurs, the interrupt handler notifies the lOWH list manager of

this fact; the latter routine then retrieves the indicated control

block and the job is ready to continue through the system. The exact

timing of the above process, and the specific assignment of

administrative functions to routines, is purposely vague since these

implementation details are not considered at the top level.

D. TIMER WAIT QUEUE

The timer wait queue is used by both task processes and system

routines. Its components are a queue and a timer. The enqueued blocks

contain pointers to tasks and times associated with each task. The

user tasks on this list can be in any one of three states (blocked,

ready, running). TWQ entries are assumed to be ordered chronologically

by time. The time field nearest the present (real) time is at the

head of the list. When the timer interrupts the system, the top TWQ

11

Page 26: An operating system model for real-time applications
Page 27: An operating system model for real-time applications

block is removed from the TWQ. The difference between current time and

the time in the next TWQ block is computed and the timer is reset. A

variety of things may happen to a job that is removed from the TWQ;

for example, it may be run on a preemptive basis or it may simply be

made ready and placed on the RFPL. Note that it is sufficient (though

possibly av/kward) to consider that all tasks enqueued on the TWQ

execute preemptively; in this case they behave like one-of-a-kind

timer interrupt handlers v;hich can cause the occurrence of any event

the modeler desires. The job flow of Fig. 1 shows all jobs entering

the RFPL via the TWQ. This could be implemented by assigning a job

which desires a delay of zero a TWQ block containing the current time.

The TWQ adds the flexibility to the model necessary for the

interpretation of more complex systems. For example, suppose that it

is desired to initiate Job X at time T. Assume that it can be

initiated as early as time T'=T-t and that there is a heavy penalty

for initiating X later than T. To model this situation, a control

routine places an artificial process Y on the TWQ which will be run

preemptively at time T'. Execution of Y causes X to be unblocked and

transferred (possibly from the lOWH) to the RFPL. A new block Y' is

then formed on the TWQ which will execute periodically (by

rescheduling itself on the TWQ at each execution) until some time just

prior to T. The main function of Job Y' is to increase the priority

of Job X so that is is maximized just before time T. Thus the probability

that Job X will execute before time T can be adjusted with the maximum

value to which Y' is allowed to raise the priority of X. Job Y' can

thus be thought of as a "watchdog" process. Several of the system

procedures described in the program of Part IV use the TWQ in this way.

12

Page 28: An operating system model for real-time applications
Page 29: An operating system model for real-time applications

E. EXTENSIONS

The model described above provides a useful structure in v/hich to

build a fairly wide range of schedulers. By logically factoring the

system, the model provides a convenient way to assign costs of various

kinds to sections of the system being modeled. For example,

investigation of system overheads associated with transferring a job

from the lOWH to the TWQ is assisted by the model because the source

of all such overheads is pinpointed by the structure. In addition,

such features as interprocess communication, protection mechanisms and

deadlock prevention algorithms can be added to the model without

alteration to the basic routines.

Suppose it is desirable to study interdependent processes so that

capability for interprocess communication is needed. Then Hansen's

scheme [7] for multiple message buffers might be implemented by adding

a new entity, the Message Buffer Pool (MBP) to the model. The MBP

conceptually contains some finite number of fixed-length message

buffers. When process A desires to communicate with process B, MBP is

called. If there is an available buffer, it is tagged with the names A

and B and loaded with A's message. A true is returned to A. If no

buffers are available, false is returned. The A-B buffer is trans-

mitted to the second new entity, the Received Message Array (RMA). The

RMA maintains an active entry for each job in the system. Each entry

consists of a number of status bits and a pointer to the queue of

messages waiting for the corresponding job. When A's message is

received at the RMA, B's entry is checked. If B exists, bits in its

RMA entry are altered to reflect a non-empty message queue. The buffer

automatically remains alloted to A-B until B replies to its message.

13

Page 30: An operating system model for real-time applications
Page 31: An operating system model for real-time applications

When A reads the reply the transaction is considered complete and the

buffer is returned to the MBP. If a process sends a message to a

non-existant process the system will be responsible for generating a

dummy reply for the sender. Obviously, many of Hansen's fine points

have been omitted here; the point is that this extension to the basic

structure can be made without interfacing difficulties.

This section has been devoted to a discussion of a logical model

that seems useful for studying many basic aspects of multiprocessing

systems. In Part IV, a computer simulation model of the logical

structure described above is presented. Chapter IV, Section B,

discusses in detail the implementation of the model entities.

14

Page 32: An operating system model for real-time applications
Page 33: An operating system model for real-time applications

III. REAL-TIME CONSIDERATIONS

The next task is the consideration of the real-time domain. The

goals of the following paragraphs are to (1) outline some properties

of real-time systems; (2) consider in more detail the characteristics

of a real-time system which typifies the class of interest here; and

(3) declare some of the specific characteristics and assumptions

which underlie the operation of the simulator.

A. PROPERTIES OF THE REAL-TIME ENVIRONMENT

All real-time applications are characterized by a sensitivity to

the response time of the system. Modern systems which carry the label

"real-time" vary in response times from fractions of hours to milli-

seconds. Within these loose limits a great variety of application

classes have arisen including systems for terminal support, data

acquisition, command and control, remote batch, processing control,

etc. There seems to be no precise concept or generally accepted

definition of "real-time". Rather than propose yet another definition,

let us examine some of the attributes of such systems insofar as they

relate to the functions of the operating systems of interest in this

paper.

A real-time system has the property that at least one process in

its job stream is highly time-dependent. Usually, the job stream will

contain a mixture of time-critical and non-time-critical jobs.

Response times might be expected to lie between five seconds for a

terminal system interacting with humans to milliseconds for a process-

control system in a petroleum refinery. Such systems commonly deal

15

Page 34: An operating system model for real-time applications
Page 35: An operating system model for real-time applications

with fairly complicated multiple interlocking timing constraints. Thus

in any unit time interval the operating system scheduling algorithms

must decide the execution order of several processes v;ith possibly

interdependent timing requirements.

Peripheral I/O devices not ordinarily associated with a scientific-

or business-oriented batch system are often found in real-time systems.

This characteristic does not apply so much to time-sharing terminal

systems as to process control and command-and-control operations. In

general, however, a real-time system will be expected to handle I/O

streams which have unorthodox rates and record lengths. Input may

arrive at fixed intervals or at variable intervals; it may be supplied

to the system on demand or it may interrupt the system. Output may be

required to follow a certain input at a certain interval. I/O may

occur for some jobs in the stream at a fixed frequency. The informa-

tion may be transmitted as a single message or as a burst of messages.

I/O record lengths may follow a known statistical distribution, they

may be predictable from current data, or upper and lower limits may be

known. These properties are significant to the operating system

because they may define bounds on execution times for the various tasks.

For example, the amount of data editing required will be closely related

to the number of different record lengths that must be taken into a

account. This editing represents a lower bound on processing time for

the task procedures since the input data will not be recognized by

the task procedures until they are edited. On the other hand, the

rate of fixed-frequency arrivals may impose upper bounds on processor

time per task if processing overlap is to be avoided.

16

Page 36: An operating system model for real-time applications
Page 37: An operating system model for real-time applications

The tasks executed by a real-time system are sometimes

catagorized by the response times they require of the system. The

most time-critical jobs in a representative real-time system are

constrained to response times of small fractions of a second with

\ery small tolerance. A second job class would require response in

seconds to minutes and the precision of these limits might to be

specified by some distribution function. Finally, a typical real-

time system processes jobs with delayed response requirements measured

in minutes to hours.

B. GUN FIRE CONTROL SYSTEM DESCRIPTION

To continue the investigation of real-time system properties,

consider a particular system embodying a variety of real-time

mechanisms. Such a system is the MK 86 MOD 2 Gun Fire Control System

(GFCS) employed on some Naval vessels. The characteristics of the MK

86 GCFS are taken from Ref. [11] which is a study done for the Naval

Ordnance Systems Command. The primary purpose of the study was to

define requirements for the operating system of the AN/UYK-7 computer

which forms the core of the GFCS.

The study defines three process types which differ in the timing

constraints they place on the system. Fixed-interval processes require

a certain precise time interval between initiations. This implies that

the operating system scheduler have the ability to preempt processes

in order to supply fixed-interval jobs with a processor when needed.

Fixed-rate processes must be initiated at a fixed frequency. Within

some time interval such jobs may be initiated at any point so long as

the required number of initiations have occured at the end of the

interval. Any slippage in a computed initiation time for a fixed-rate

17

Page 38: An operating system model for real-time applications
Page 39: An operating system model for real-time applications

job must be accounted for in the timing of the next initiation in

order to maintain overall system timing. Cyclic processes must be

completed a fixed number of times per second. The time betv/een

successive initiations is not a consideration. However, once a cyclic

process is initiated it must run to completion. Therefore the operating

system must determine the amount of time available to execute a cyclic

process; if there is insufficient time to complete the task, it must

not be initiated. Finally there are the asynchronous jobs which

usually require immediate handling to prevent loss of data. These jobs

typically preempt any other process.

"The primary mission of a Gun Fire Control System is the trackingof air, surface, and shore targets, and the directing and firingof the ships guns at designated targets. In this capacity, thesystem computer program must receive target data, perform targettracking, compute a ballistic solution, and position and controlthe assigned guns." Ref. [11], page 3-1.

Execution of this mission requires connection of the computer to a

number of peripheral devices whose diverse constraints are a strong

force in the shaping of the executive routine. The following listing

contains the I/O requirements for each class of device.

-Track-while-scan (TWS) radar: Data are transmitted to the

computer each time a target is detected. This input is variable

interval type whose interval length depends upon the number of

targets, target movement etc. Data must go out to the TWS radar

at a fixed time interval after each TWS input.

-Air tracking radar: Input is fixed-rate, output is fixed-rate

at the same rate.

-Remote Optical Sights: Input at fixed rate, output fixed-rate.

-Target Data Transmitter: Input at a fixed rate; no output.

18

Page 40: An operating system model for real-time applications
Page 41: An operating system model for real-time applications

-Consoles and displays: Fixed-rate input and output; rates vary

among the different devices.

-Ship's systems: Fixed-rate input; no output.

-Ship's command and control system: Fixed-rate input and output.

-Other ordnance systems: Fixed-rate input and output.

-Gun servo systems: Fixed-rate input and output.

The purpose in the above listing is to indicate the complexity of the

I/O stream. Each of these devices requires a task devoted to accept-

ing its inputs at the proper time, computing required results and

perhaps outputting data on a specific schedule. There is also a

ballistic solution which must be computed by a successive approxima-

tion technique until the predicted impact point converges with pre-

dicted target position. This calculation requires inputs from many

of the above-listed peripherals. The ballistic solution is essentially

calculated as a background job which is multi programmed with the I/O

device handlers.

Thus the operating system that will supervise these computations

is constrained by the timing requirements of three job types: fixed-

interval initiation, fixed-rate execution and asynchronous execution

of TWS data. Slippage in any of these areas results in intolerable

error. The designers of this AN/UYK-7 executive assume that multi-

processing will not be required to support the present GFCS; however,

a multiprocessor version of the executive is to be prepared in case of

excessive system loading by additional processing requirements.

C. HYPOTHETICAL MODEL FOR THE PROGRAM

The hypothetical real-time system that is simulated by the program

is in many ways similar to the MK 86 GFCS. In particular, both systems

19

Page 42: An operating system model for real-time applications
Page 43: An operating system model for real-time applications

contain subsystems which belong to three important classes of real-

time applications: Process control, exemplified by the gun servo

system task; Command and Control; and Data Acquisition (e.g., SINS

monitoring), which is characterized by time-constrained input with no

output. The following discussion outlines some of the assumptions

made in the design of the simulator; other assumptions will be brought

out in Chapter IV.

Three job types are distinguished by the simulator. Fixed-frequ-

ency jobs are required to complete execution a certain number of times

per second but they may start at any convenient time. The scheduling

algorithm therefore initiates this job type immediately upon termina-

tion of its previous execution. Although the simulator has multi-

processing capability, no special effort is made to initiate more than

one fixed-frequency job at a time. In the context of this paper,

fixed-frequency jobs are assumed to be rather short; however, there is

nothing in the simulator to prevent the user from specifying longer

run times for these jobs. They are assumed by the simulator to

complete their processor period, perform a single I/O operation (which

may involve an arbitrary number of records) and then to terminate.

Fixed-frequency jobs may not interrupt other jobs.

Fixed-interval jobs are also conceptually short jobs which execute

a single I/O operation after completing all other processing and then

terminate. They must initiate at certain fixed times during any unit

interval. They are considered the highest-priority jobs and they

normally enter the system via an interrupt. When interrupts are not

masked off, fixed-interval jobs will always be given a processor on

time.

20

Page 44: An operating system model for real-time applications
Page 45: An operating system model for real-time applications

Background jobs are assumed to require somewhat more time and more

I/O operations than other jobs. Again, this distinction is conceptual,

and the user may specify any run times he desires. Background jobs are

assumed to execute for some time interval E, perform an I/O operation,

and then repeat this cycle until their total CPU time requirement and

total I/O demand are satisfied. The program assumes an excess of main

storage so that allocation of core never delays a job; this is a

realistic approximation for a system in which all tasks are permanently

resident in main storage. However, the skeleton of a core allocation

routine is built into the program in the event the user desires to

consider core allocation in the overall timing of the system.

The simulator provides various measures with which to evaluate the

performance of a particular configuration. The gages actually chosen

as significant will depend upon the nature of the experiment. For

example, a sample run from an experiment investigating the parameter

space of the NAVORD AN/UYK-7 executive discussed above is found in

Appendix E. That experiment assumes that fixed-interval jobs always

start on time. This condition is forced in the simulator by

enabling interrupts. The simulator attempts to initiate a fixed-

frequency job as soon as the previous one terminates; initiation will

be successful except when all processors are busy. In the latter

event the fixed-frequency job is placed on the RFPL to wait. If the

system is loaded beyond some critical point, fewer than the required

number of fixed-frequency jobs will finish in a given unit interval.

This slippage is taken to be an indicator of how well the configuration

is handling the applied load.

21

Page 46: An operating system model for real-time applications
Page 47: An operating system model for real-time applications

IV. THE COMPUTER MODEL

A. OVERVIEW

The program chosen to model the real-time systems of Chapter III .

is a standard discrete time-step event-driven simulator based on

MacDougall's BASYS simulator [1] and coded in Stanford ALGOL-W [2].

It is configured with one to ten central processors and two I/O

channels. Each simulator run requires the input of about 70 para-

meters most of which serve to define the job characteristics (see

Appendix D) . It consists of about 20 procedures, half of which

perform utility functions (I/O, statistics gathering, etc.) for the

program and a short mainline program which merely serves to initialize

the system and set it in motion. Operational details of each procedure

in the program are found in Appendix C.

B. IMPLEMENTATION OF THE LOGICAL MODEL

Procedure RFPQ is intended to simulate the RFPL of Part II. It

therefore manages its linked-list queue in such a way that the job

which represents the "best" choice to get the next free processor is

always at the top of the queue. In the model, the "best" choice is

simply the least recent arrival at the queue which has a priority no

less than any other job on the queue. There is no preemption in the

sense that when a job arrives at the queue, no check is made to

determine whether a lower-priority job is currently running on some CPU,

Incorporation of this feature would require a more general interrupt

mechanism than the one built into the program.

22

Page 48: An operating system model for real-time applications
Page 49: An operating system model for real-time applications

The lOWH of Chapter I is implemented via procedure lOWH. The queue

manager is designed to search the queue for a job which requires a

particular I/O type. Thus, when I/O Device 3 completes an operation,

RELIO directs lOWH to determine whether any other jobs are awaiting

Device 3.

The TWQ is not implemented as a single procedure. Instead the

Event List serves as the TWQ timer and SCHEDULES calls the appropriate

routine to service the "timer interrupt." This means that each new TWQ

application to be implemented must make three changes in the code:

(1) A set of instructions is added to initiate the new TWQ function.

Initiation can be accomplished by placing a block on the Event List

which contains the desired time of the first instance of the function.

The point in the program at which this initiator segment is inserted

depends on the specific function to be implemented. (2) A new procedure

is added to the program whose purpose is to carry out the desired

function. Note that if the new function is to be executed periodically,

the function procedure must also place the block for the next execution

on the Event List. (3) The case statement in SCHEDULES is modified to

call the new function procedure whenever a corresponding TWQ block

reaches the top of the Event List. Section A. 6 of Appendix A contains

examples of TWQ functions implemented in this way.

C. APPLICATIONS

This section describes two simple experiments using the program.

The intent is to give some feel for the type of investigations for

which the model is useful.

Suppose the program assumptions discussed above are applicable to

a user's system. Then the behavior of the average slippage of

23

Page 50: An operating system model for real-time applications
Page 51: An operating system model for real-time applications

fixed-frequency jobs with changes in fixed-frequency CPU requirements

may be of interest. This would be the case if the user were contemplat-

ing recoding the fixed-frequency job for greater efficiency in an effort

to reduce slippage. Job parameters, time slices and overheads in the

model are set to provide the desired loading conditions. A series of

computer runs is then made with varying fixed-frequency CPU times.

This experiment was run with hypothetical parameters for configurations

of 1 CPU and 2 CPUs; each run went for 10 simulated seconds. Default

parameters were used wherever possible (see Appendix H) ; under these

conditions the processors were in use over 95% of the time. About

75 jobs v;ere completed by the dual -processor configuration on each run;

this number averaged 61 for single processor runs. The average RFPQ

length for dual -processor runs was about 6; for single-processor runs

about 8. All the trial runs were compute-bound; I/O utilization

averaged about 50%. The results are tabulated below.

1 CPU:

FFREQ CPUTime(msec)

Avg Slippage(jobs/sec)

2 CPUs:

FFREQ CPUTime(msec)

Avg Slippage(jobs/sec)

100 2.9991 100 1.8994

90 2.9991 90 1.8994

80 2.99991 80 1.7995

70 2.8991 70 . 1.6995

60 2.8991 60 1.4996

50 2.2993 50 1.4996

40 2.2993 40 1.0997

30 2.2993 30 1.0997

20 2.1993 20 0.8997

10 2.0994 10 0.9994

24

Page 52: An operating system model for real-time applications
Page 53: An operating system model for real-time applications

As a test of consistency for the program, the data above were

interpolated to produce estimates of the fixed-frequency CPU time

that would be required to yield an average slippage of 2.0 jobs/sec.

for single and dual processor configurations respectively. These

estimates were input to the program as data; the resulting slippages

(jobs per second) were (single processor) 2.0994 and (dual processor)

1.9994.

Suppose now that under the assumptions above the user desires to

study fixed-interval slippage as a function of the number of processors.

Since fixed-interval jobs receive considerable special attention in

normal operation, simplification of the system would result if such

special routines could be dispensed with. This might be possible if a

sufficient number of processors were available so that the slippage

level is acceptable. Thus a series of computer runs is made with the

heavy CPU load imposed by the default parameters. Interrupts are

turned off so that fixed-interval jobs receive no special treatment.

Again, runs of 10 simulated seconds were made. The CPU requirement

for both fixed-frequency and fixed-interval jobs was 50 msec. Between

67 and 81 jobs were completed by the various configurations. CPU

utilization ran from 59% (5 CPUs) to 96% (1 CPU) while I/O utilization

ranged from 95X (5 CPUs) to 38% (1 CPU). The average PINT delay in

the table below is the average time that a PINT job spent on the RFPQ.

The results for five configurations are shown below:

25

Page 54: An operating system model for real-time applications
Page 55: An operating system model for real-time applications

No. of

1

2

3

4

5

CPUs PINT

(j<

SlippageDbs/sec)

3.8

3.1

2.7

1.5

0.5

Avg PINT delay(msec)

13.50

5.242

1.383

1.105

0.414

Each run of the program requires about 70 input parameters. Of

these 70, perhaps a dozen or more would be selected as significant by

a particular user. Exploration of the parameter space of these vari-

ables is a non-trivial task for which the simulator is useful.

Investigation of the transient system state which occurs when the

system is first started may also be facilitated by the program. A

related area is the definition of the steady-state condition. Effects

of various priority structures could be measured. The simulator would

be useful for measurements and predictions of various sorts involving

system overheads. The major assumption underlying all these suggestions

is, as with any simulation model, that the real system can be described

by the program.

26

Page 56: An operating system model for real-time applications
Page 57: An operating system model for real-time applications

V. CONCLUSIONS

A logical model with rather general applicability to the study of

real-time operating systems has been presented. It has been shown

that the constraints which were outlined early in Chapter II are

satisfied by the RFPL-IOWH-TWQ model. The logical entities have been

translated into a computer program which seems to be a useful tool for

investigation of systems whose assumptions are consistent with those

of the model

.

Various applications were suggested for the program and some simple

experiments were run to illustrate conclusions to which the program

can lead. For example, from the data tabulated in Chapter IV, Section

C, it is seen that fixed-frequency CPU time requirements are able to

influence the average fixed-frequency slippage only very slightly.

Other parameters in the model seem likely to have a far stronger

influence. Also, the data indicate that no value of fixed-frequency

CPU time can bring the average slippage to zero in either configuration,

The data points are grouped in an interesting fashion, with relatively

large values of slippage separating the groups. One is tempted to

explain this situation by supposing that the cluster points represent

quantum loading levels to which the system is sensitive, but more data

are needed to verify this idea. For the dual -processor configuration,

the average slippage is monotone non-decreasing at all points except

in the region of small CPU time; this minimum value, if it appears in

other tests, would be an interesting area for further study.

The data from the second example experiment suggest that increasing

the number of processors will not be an economical way to avoid special

27

Page 58: An operating system model for real-time applications
Page 59: An operating system model for real-time applications

routines for handling the fixed-interval jobs. The detailed program

output indicates that once these jobs miss a scheduled execution

(which happens yery quickly) their timing is severely preturbed for

the rest of the run; at least half a dozen processors are necessary

under the loading conditions of the test in order to insure a timely

processor for every fixed-interval job initiation.

Some modifications to the code v/ould produce unqualified improve-

ment. The most urgently needed change is the modification of the

normal variate generator in RANDOM to produce statistically acceptable

variates (c.f. Appendix F). Algorithm TR from Ref. [1] is recommended,

Another change that would simplify the coding of JOBSTART is the

modification of RANDOM to return integers instead of reals along with

the addition of a procedure to produce real Uniform (0,1) variates.

This new routine would be called by RANDOM and GETCPU. The lack of

multiple random number streams is also a defect. Another program

feature which v;ould make a somewhat more general simulator is a

generalized interrupt routine. Such a routine should be coded as

a separate procedure capable of simulating several classes of

interrupts for any calling job.

The utility of other modifications to the program depends on the

particular system being modeled. Changes in this category include

extension of the I/O procedure to handle more I/O types, inclusion of

a core allocation routine, more direct simulation of supervisor

activities, modification of STAT to gather some new statistics,

alteration of the overhead accounting scheme, etc.

28

Page 60: An operating system model for real-time applications
Page 61: An operating system model for real-time applications

APPENDIX A. PROGRAM DESCRIPTION

This Appendix describes the overall operation of the program and

contains several sections devoted to some peculiarities and special

properties of the system. Appendix C, the Program Listing, contains

comments that elaborate further on the v/orkings of the program.

A.l JOBS

The purpose of the model is to provide the user a view of the

passage of jobs through the system. A job is defined by a table or

block with 9 fields containing such characteristics as total CPU time

required, total number of I/O requests to be made to the system,

priority, etc. Each job is identified by a number, JOB ID, which for

the first job is 1 and which increases serially for each job

thereafter. Thus in the model , creating a job means deciding what each

of the job parameters shall be and placing these numbers in a new

block. The job's progress through the model is then marked by the

movement of a pointer to its job table among the various procedures

that comprise the simulator. As this pointer proceeds on its way it

may find itself allocated to a CPU, waiting in some queue for service,

performing an I/O operation, or exiting the system. The picture of the

system presented to the user is made up of queueing statistics and

such system statistics as CPU-I/0 overlap and CPU utilization.

A. 2 EVENTS

The action within the model is a series of events. An event is

some milestone in a job's passage through the system. The events which

are possible include creation of a new job, allocation and

29

Page 62: An operating system model for real-time applications
Page 63: An operating system model for real-time applications

deallocation of a processor or an I/O device and exit from the system.

It is assumed in this model that a job's time in the system is divided

into periods of CPU use alternated with periods of I/O operations. The

length of each processing interval (and each I/O interval) is a

constant and is chosen so that when a job performs the last of its I/O

operations it will require exactly one more CPU period to complete its

total CPU requirement. Thus, the sequence of events for a particular

job is typically a series of processor allocations and deallocations

interspersed with I/O device allocations and deallocations. This

pattern, however, may be interrupted in various situations to be

discussed later. Note that a job is always in one of three states:

processing, doing I/O, or transitioning into or out of the system or

between the other two states.

Operation of the model hinges on a chronologically ordered linked

list called the Event List. Each entry on this list is an event block

containing the information necessary to set the next event into

motion. This data includes a pointer to the job which is the subject

of the event, the type of event to be performed and the global time

(GTIME) at which the event is to occur. The SCHEDULER initiates a

simulator cycle by removing the top event block (which represents the

event due to happen next), updating GTIME to the time in the block and

calling the procedure appropriate for the handling of the event type

specified in the block. The SCHEDULER passes to the task procedure the

job pointer from the event block; the indicated job becomes the

calling job . When the task procedure has finished its work it returns

to the SCHEDULER, which then initiates the next simulator cycle. This

process continues until the SCHEDULER sees that GTIME has exceeded a

30

Page 64: An operating system model for real-time applications
Page 65: An operating system model for real-time applications

parameter, QGTLIM, which the user has set. At this point the final

statistics are collected and printed and the run is terminated.

The Event List is managed by procedure EVBOSS. EVBOSS is called

by any procedure which desires to place an event block on the List.

EVBOSS forms new event blocks from the data passed to it and inserts

them into the List according to two criteria: (1) No blocks preceeding

a given block may have an execution time later than that of the given

block. (2) If several blocks have the same execution time, then they

are ordered according to event type. The order is EXIT, RELIO, 10,

RELCPU, GETCPU, JOBSTART. The purpose of this second restriction is to

avoid such cases as the following: Suppose that calls to GETCPU and

RELCPU are scheduled at the same GTIME on a single-processor

configuration. If the GETCPU call is executed first, a job will be

sent to the RFPL and without the passage of any simulated time it will

be removed from the RFPL. Thus condition (2) causes the simulator to

take the view that the job attempting to get a processor should have

access to any processors being released at the same instant.

A. 3 Task Procedures

Task procedures are those procedures which are concerned with moving

jobs through the system. They include JOBSTART, GETCPU, RELCPU, 10,

RELIO and EXIT. Each task procedure has at least two functions to

perform each time it is called. First, the calling job is accorded the

basic service suggested by the task procedure's name. For example,

GETCPU first attempts to provide a processor for the calling job,

while RELIO takes care of releasing the I/O device which has been

allocated to the calling job. Next, each task procedure must decide

which will be the next event to occur to the calling job and when it

31

Page 66: An operating system model for real-time applications
Page 67: An operating system model for real-time applications

will occur. For example, when RELIO is called with a job which is

somewhere in the middle of its trek through the system, RELIO must

realize that the next event for this job will be a GETCPU to initiate

its next processor cycle. The "decision" is actually completely

deterministic: RELCPU calls 10, 10 calls RELIO, RELIO calls GETCPU and

GETCPU calls either RELCPU or EXIT. The task procedure signals its

decision by causing a new event block to be formed and chained in

chronological order onto the Event List. This second function is

fundamental to the operation of the model since it is the mechanism

whereby the Event List is perpetuated. Every task procedure forms one

or more new event blocks eyery time it is called. Note, however, that

with the exception of GETCPU when it is handling an interrupt, only

SCHEDULES removes blocks from the list. Note also that while a job is

within its CPU period the pointer to its table is located on the Event

List in a block requesting a RELCPU. In general, the only time a job

table pointer leaves the Event List is when its job is in the

transition state. The most important exception to this rule occurs

when the job is awaiting some service on one of the queues. In this

case its pointer is kept in a block on that queue.

A. 4 JOB INITIATION

Jobs enter the system through JOBSTART. When JOBSTART is called

it is the calling job that is about to enter the system. Its job table

has been filled in previously by JOBSTART and JOBSTART will simply

pass its pointer on to GETCPU. However, before doing this, JOBSTART

constructs a job table for the next job that will enter the system by

drawing from various user-specificed distributions. JOBSTART computes

32

Page 68: An operating system model for real-time applications
Page 69: An operating system model for real-time applications

the global arrival time for the nev/ job (again by drawing) and causes

an event block containing this time and a pointer to the new job table

to be chained onto the Event List. The event type specified in this

block is a pointer back to JOBSTART. In effect, then, when the

interarrival time has elapsed this new job will be a calling job for

JOBSTART and another event block for the succeeding job will be

generated.

A. 5 SPECIAL-PURPOSE JOBS

There are two classes of jobs in the simulator that are of

special interest. These jobs are intended to represent the behavior of

the fixed-frequency and the fixed interval jobs of the NAVORD

Executive and other real-time systems. Fixed interval (PINT) jobs are

those which must be initiated at fixed times during the run. They

enter the system via an interrupt assumed to come from a watchdog

process on the TWQ. Anytime the interrupt is enabled the PINT jobs

will in fact be started on time. The job parameters for PINT jobs are

specified by the user and a special section of JOBSTART handles the

creation of these jobs. It is assumed that PINT jobs perform a single

I/O operation on each execution. PINT jobs are for the purpose of the

sample simulation (c.f. Chapter IV, Section C) initiated to handle I/O

requests from some external devices; therefore they must run to comple-

tion upon each initiation. Anytime a PINT job gets enqueued for a

processor (placed on the RPPQ) it will not initiate on time or it has

been interrupted and will therefore not complete on time. Thus any

time the processor queue RPPQ is called with a PINT job, this slippage

is recorded for later printout by the program.

33

Page 70: An operating system model for real-time applications
Page 71: An operating system model for real-time applications

Fixed-frequency (FFREQ) jobs are jobs v/hich must complete at a

certain frequency, but which may be initiated at any time convenient

to the system. In the model , the user specifies the required

completion frequency (QFF). The system initiates one of these jobs 2

milliseconds after the start of each run; thereafter, each time EXIT

is called v/ith a FFREQ JOBID it introduces the next one (through

JOBSTART) immediately. Thus, with no other jobs in the system, and

assuming sufficient available processor time, a run would consist of

exactly QFF FFREQ jobs each second for the entire run period. In the

usual case, however, FFREQ jobs will not be able to complete at the

desired frequency since they can be interrupted but cannot cause

interrupts in order to recover a CPU. At the end of each 1 -second

interval, procedure SPEC determines the difference between the

required number and the actual number of completions. The user will

normally give these jobs as high a priority as possible in order to

ensure that they are not preempted in the processor queue by less

important background jobs.

A. 6 INTERRUPTS

Whenever GETCPU is called with a FINT job and interrupts are

enabled, an interrupt occurs. The interrupt system which is then

activated is intended to model in some ways the interrupt system of a

multi -processor AN/UYK-7 configuration. Toward this end, the

processors in the system are divided into two sets each time an

interrupt occurs: those which are free and those which are busy. If

either of the sets is empty, then the processor that will handle the

interrupt is chosen equiprobably from the other set. If neither set is

empty, then it is 10 times more likely that a selection will be made

34

Page 72: An operating system model for real-time applications
Page 73: An operating system model for real-time applications

from the set of free processors. Although the factor 10 v;as

arbitrarily chosen, it is intended to model the fact that during

certain portions of an AN/UYK-7 instruction cycle, the processor is

sensitive to certain interrupt types. A specific probability is

difficult to compute since it represents a yery gross assumption about

AN/UYK-7 interrupts. In any event the processor to handle the

interrupt is selected with equal probability from whichever set is

chosen. If a free processor is chosen then it is simply allocated to

the interrupt. If a busy processor is chosen then extra steps must be

taken to ensure that the interrupted job will be handled logically.

First the time remaining in the interrupted job's current CPU period

is computed and stored in a field in the job's table. The job is sent

to the RFPQ to await a processor. When the job again gets a CPU it

will run out this old period before resuming its normal schedule.

Finally, there is a block on the Event List which must be removed; it

is the block which contains the call to RELCPU that would have

terminated the interrupted job's processor period had it been allowed

to continue.

It is logically convenient to consider that interrupts occur at

the end of each I/O period. Such interrupts take the form of a call by

SCHEDULER to RELIO in response to an Event block created by procedure

10. RELIO then schedules the calling job for GETCPU, but only after a

user-specified delay (QIOSTOP) which represents the interrupt

processing and any other overheads the user wishes to associate with

this operation. Interrupts of the type that occur to FINT jobs, e.g.,

TWQ watchdog process interrupts, are also used directly by routines

that operate as part of the simulator supervisor system. For example.

35

Page 74: An operating system model for real-time applications
Page 75: An operating system model for real-time applications

procedure SPEC is designed to check on the actual completion rate of

FFREQ jobs. Therefore, an event block whose execution time is GTIME=1

second is placed on the Event List by the Mainline routine which

initializes the List. When this block reaches the top of the List a

logical interrupt occurs and SPEC is called. After completing its

calculations SPEC creates a new event block with an execution time of

GTIME+1 second and blocks itself. Similarly the IOCS routine, which

controls the output from the program, is driven by TWQ interrupts.

This interrupt facility is very simple and thus quite limited in

usefulness in sections of the program other than the PINT job

mechanism. The fact that a more general interrupt handler is not

available is clearly a weak point in the program; for example, a

preemptive RFPQ would require the same type of service that PINT jobs

receive but such service is unavailable in the present implementation.

A. 7 OVERHEAD ACCOUNTING

System overheads can be inserted into the model by delaying the

passage of a job from one event to the next or from a queue to its

next event. Por example, suppose it were desired to include in the

simulation the overhead associated with transferring a job from the

RFPQ to a processor. It would be necessary to modify the code in eyery

place where such a transfer occurs (there are two: one in RELCPU and

one in EXIT so that a new event block would be formed. This block

would specify a call to GETCPU at a global time of GTIME plus the

amount of the overhead. Such overheads are built into the model rather

arbitrarily to allow for setting up I/O operations and for continuing

normal operations after an I/O operation. Users of the simulator will

doubtless want to modify its overhead accounting to suit their particular

needs

.

36

Page 76: An operating system model for real-time applications
Page 77: An operating system model for real-time applications

A. 8 I/O IN THE SIMULATOR

The simulator contains two I/O "devices" and two dummy devices

which use the parameters furnished for the other two. A "device" is

one of four sections of code in procedure 10. Each time 10 is called

the lOType is retrieved from the calling job's table and used to

decide which user-specified distribution parameters will be used to

determine the duration of the I/O operation. An event block is then

formed whose event type is RELIO and whose time is GTIME plus the

interval computed as above. The dummy "devices" were included to

simplify the task of adding new I/O devices to the system.

A. 9 SIMULATED TIME

The basic time unit in the simulator is assumed to be 1 mill isecond.

It is toward this basic unit that all printout messages and conversions

are oriented. Thus procedure STAT contains the constants appropriate

for converting to minutes from milliseconds. There is, however,

nothing to prevent the user from considering any other basic unit he

desired except the text of the output segments.

In the sample experiments run for Chapter IV, Section C, time was

compressed by a factor of about 5 when the simulator was configured

with fewer than four processors. Thus a run of 20 simulated seconds

required about 4 seconds of execution time on an IBM 360/67 running

under OS/MVT.

A. 10 COLLECTION OF STATISTICS

Procedure STAT collects and prints all statistics for the simulator.

It is always automatically called at the end of a run. The user may

cause a call to STAT to occur at any time(s) during the run by

37

Page 78: An operating system model for real-time applications
Page 79: An operating system model for real-time applications

inserting an appropriate control card, Card 22 (see Appendix D) , into

the program input stream. The numbers on this card are considered by

the reader procedure to be global times and an event block containing

a call to STAT is formed that will execute at each of these times.

Appendix G describes the manner in which STAT calculates its outputs.

A. 11 INPUT PARAMETERS

Each run of the simulator requires approximately 70 constants to

define the jobs and configuration for the run. All of these parameters,

with two exceptions, have default values assigned (see Appendix H)

and need appear on input cards only to override the defaults. On

every run, two cards must appear in the input stream: Card 23, the

Output Control Card, and Card 24, the Run Termination Card (see

Appendix D for details on each card type.) The Run Termination Card

must always be the last card in the input set and must always be

immediately preceeded by an Output Control Card. All other cards, if

any, may appear in any order in the input stream. The program is

designed to execute several input sets in succession and it is these

latter two cards that delimit the various input data sets. With one

exception, all input cards contain a series of integers. The exception

occurs when the user desires to specify an empirical distribution for

some job parameter; in this case he will provide a follower card

containing real numbers which describe the distribution. In either

case the numbers are punched in order and separated by one or more

blanks. Appendix D contains a detailed discussion of the format of

each input card along with an explanation of the parameters.

The output segments mentioned in connection with Card 23 will

print only if the I/O flag, I OF, is on; the numbers on this card

38

Page 80: An operating system model for real-time applications
Page 81: An operating system model for real-time applications

control the flag. The integers and 1 have special meaning not

attached to any other integers. A zero tells the output control

procedure IOCS that no additional flagged output should be printed; a

1 implies that all flagged output should be printed at the level

specified by QIOF. IOCS v;in not attempt to read any additional

output control numbers from Card 23 after seeing either of these special

characters. Every output control card must end with either a or a 1

.

If the first datum on Card 23 is not a or a 1, then it will be

interpreted by IOCS as the global time at which the user desires the

printing of flagged output at the indicated level to commence. This

integer must be followed by another, larger integer which represents

the stop time for flagged output. This stop time may now be followed

by a zero, indicating no more flagged output is desired, a one,

indicating that all flagged output should be printed from this time

on, or another start-stop pair. Note that a sequence of start-stop

times must be strictly increasing.

Although the data for the output of MAP (see Section A. 13) is

constantly accumulated by that procedure no matter what the setting

of IGF, the MAP output is printed only after a full line (650 msec.) is

accumulated. This occurs at GTIMEs that are integer multiples of 650

milliseconds. Only at these times is lOF checked. Therefore, the user

must insure through his Card 23 that lOF is equal to 1 at the end of

each 650 msec, interval for which MAP output is desired. For example,

the sequence (100,645,0) on a Card 23 will be interpreted as follows:

At GTIME=100 msec, set I0F=1 (commence printing all flagged output).

At GTIME=645 msec, set IOF=0 (stop printing flagged output). Leave lOF

set to zero for the remainder of the run (print no more flagged output).

39

Page 82: An operating system model for real-time applications
Page 83: An operating system model for real-time applications

Note that at time 650, when MAP is prepared to print the first chart,

IOF=0; therefore MAP discards this data and commences collection of

data for the 650-1300 millisecond chart.

A. 12 RANDOM NUMBERS

Many cards in the input stream contain parameters that will

eventually be used by JOBSTART in calls to RANDOM. Procedure RANDOM

returns variates from uniform, exponential and normal distributions

of arbitrary parameters (see Appendix F) and variates from a user-

specified empirical distribution. It may also simply return a user

specified constant. It returns real numbers, never integers. RANDOM

always expects three integer parameters; however, the exponential

routine and the constant routine actually use only two. READER takes

this into account and the user need specify on his input card only

those parameters actually used. In the following parameter format

table for each function of RANDOM, EX stands for the distribution mean

while SIG is the standard deviation.

Type of Variate First Parm Second Parm Third Parm

Uniform(a,b) 1 a b

Exponential (EX) 2 EX Ignored

Normal (EX, SIG) 3 EX SIG

Empirical 4 NPAIRS* INTERP*

Constant 5 CONSTANT Ignored

*See text below

Notice that the first parameter tells RANDOM which distribution is

being called upon and the remaining numbersare the parameters of that

distribution.

40

Page 84: An operating system model for real-time applications
Page 85: An operating system model for real-time applications

An empirical distribution is stored in an array in the form of a

stack of ordered pairs (L,R) of real numbers. Each stack contains up

to 10 pairs. Sufficient space has been alloted so that every job

parameter required by JOBSTART can come from an empirical distribution

if the user desires. Each time a variate from an empirical distribu-

tion is desired, RANDOM first obtains a variate v from U(0,1). It then

scans down the appropriate stack testing for the condition that v is

less than the L part of each pair. When this condition is met,

RANDOM has bracketed v with the L parts of two consecutive pairs (this

assumes of course that the pairs are strictly ordered on the L parts:

see example below.) RANDOM now returns either the R part of the

lower-bound pair or a value obtained by linear interpolation betv/een

the R parts of the bracketing pairs. The decision is based on the

value of the third parameter in the call to RANDOM (INTERP in the

table above.) If INTERP is equal to 1 then the uninterpolated value is

returned; any other value for INTERP results in an interpolation.

Suppose that it is desired that at some point in a program RANDOM

return numbers from the set (4., 3., 2., 1.) with equal probability.

This would occur if RANDOM returns 4. when v (a U(0,1) variate) is

between 1.0 and .75, a 3. for .75<v<.50, a 2. for .50<v<.25 and a 1.

for .25<v<0. The first step in setting up for this task is to read the

distribution in to RANDOM. Then any call of form REAL:=RANDOM

(Q1,Q2,Q3) with appropriate parameters will produce the desired

variate. Every empirical distribution is read in on two cards.

Therefore any of Cards 1-12 or 14-21 whose first parameter is 4 must

be followed by a second card containing in free form the set of pairs

for the distribution. Each number in each pair may be either type REAL

41

Page 86: An operating system model for real-time applications
Page 87: An operating system model for real-time applications

or type INTEGER; they will all be converted to type REAL after being

read in (recall that RANDOM always returns reals.) The three para-

meters on the first card of this set are, in order, as follows:

First Parameter - Always the integer 4 for empirical distributions.

Second Parameter (NPAIRS) - An integer between 1 and 10 (inclusive)

equal to the number of pairs to be read in for this distrbution.

In the example above, NPAIRS=4.

Third Parameter (INTERP) - If INTERP=1 then the linear interpola-

tion will not occur; any other value for INTERP will result in an

interpolation. This parameter must always be an integer.

Thus for the example, the first card has the form <s> 4 <sp> 4 <sp> 1

<s> where <s> indicates zero or more spaces and <sp> indicates 1 or

more spaces. The "no interpolation" option is arbitrarily specified

here. In this case, the second card would be <s> .75 <sp>4.<sp>.5

<sp>3.<sp>.25<sp>2.<sp>0<sp>l .<s>. Note carefully how the intervals

specified in the example translate into the numbers on the second

input card. In particular, the upper limit for the L parts, 1.0,

is assumed, while the lower limit, 0, must be explicitly punched.

This assumption does not hold in case interpolation is desired: in

this event, both limits and their corresponding R parts must be

punched up.

A. 13 OUTPUT

Output from the simulator is divided into classes or levels. The

user specifies via Card 13 which levels he desires to print on each

run. Output at level is considered necessary on every run. Output

at level 3, the highest level, is detailed debugging information that

the user will generally not want. All levels up to and including the

42

Page 88: An operating system model for real-time applications
Page 89: An operating system model for real-time applications

one specified on Card 13 will be printed. A11 levels greater than zero

produce what is referred to in Section A. 11 as flagged output. The user

may elect to turn off all output during some time intervals and to

print at the specified level during others. This is accomplished with

Card 23 as described in Section A. 11. The kinds of output included in

each level are detailed below. See Appendix E for a sample output.

-Level 0: At the lowest (most important) level is the printout of

the input parameters and most of the output from procedure STAT. Each

job characteristic name in the parameter output is followed by the

parenthesized number of the card on which READER expects to find

corresponding parameters for RANDOM. The last segment of parameter

output is a listing of those job characteristics for which no card was

detected in the input stream; the values printed for these

characteristics are default values. The output from STAT is self-

explanatory; details of the calculation of each statistic is found

in Appendix G.

-Level 1: The only output segments at this level are those

generated by procedure MAP. MAP produces a one-dimensional chart

depicting the activities within the processors with time. Page

width limitations break the chart into 650- millisecond segments

which then print down the page. Each segment consists of an axis

line, a CPU time-line for each CPU in the system and the segment

origin time. The axis line is the time scale line and is divided by

50-millisecond clock marks. The top CPU time-line corresponds to

CPUl , the second to CPU2, etc. Each time-line is a dashed line

which is interrupted by X's whenever the corresponding CPU is

processing a job. Each X represents 5 milliseconds of processor

43

Page 90: An operating system model for real-time applications
Page 91: An operating system model for real-time applications

time. Each series of X's on a time-line begins with the JOBID of the

job being run. Thus JOBID 386 running for 20 milliseconds appears on

its processor time-line as --386X-.- and running for 10 milliseconds as

--38--. Any time a job initiates within 5k milliseconds of the end

of its segment (where k is the number of digits in its JOBID), none

of the JOBID will be printed; in this case the entire job will be marked

by X's. Thus JOBID 386 running for 20 msec, but starting at GTIME=641

will appear as --XX in the current segment and XX-- in the following

segment. The user must also beware of such situations as — 501XXX

which might be JOBID 501 running for 30 msec, or JOBID 50612 running

for 10 msec, followed by JOBID 1 running for 20 msec. In general the

only way to resolve irrational MAP entries (such as JOBID 501 suddenly

reappearing long after it should have exited the system) is to examine

the Level 3 output to be described below. The segment origin time is

printed immediately below the axis line near the left end. If

extensive use is to be made of the MAP feature, a different format

should be considered, e.g., continuous chart with vertical rather

than horizontal orientation.

-Level 2: This level is a dummy in the basic simulator and is

included for user convenience in adding additional output types.

-Level 3: This Level produces an output statement each time any

task procedure is called. Messages from each call to MAP and from

procedure SPEC are also printed at this level. In addition, procedure

STAT produces a listing of JOBIDs on the Event List, lOWH and RFPQ

which prints at Level 3 each time STAT is called. Each of these

messages except the ones from SPEC and STAT begin with the procedure

name of the sending procedure. The message from SPEC begins with

44

Page 92: An operating system model for real-time applications
Page 93: An operating system model for real-time applications

"&&& FFREQ SLIP:'. The second field of each Level 3 message with the

above exceptions contains the JOBID of the calling job. The informa-

tion following the JOBID, if any, is listed below:

RFPQ: Priority of calling job.

RELCPU: JOBID of job on CPU 1,... JOBID of job on CPU QCP. Zero

indicates a free CPU.

EXIT: Total CPU time used by the calling job.

MAP: Same as RELCPU.

The message from SPEC contains the FFREQ slippage (i.e., the difference

between the required number of job completions specified by QFF and the

actual number of completions) for the particular 1 -second interval

indicated in the message.

45

Page 94: An operating system model for real-time applications
Page 95: An operating system model for real-time applications

APPENDIX B. SAMPLE DECK SETUP

The follov/ing listing shov;s the deck setup for running the program

on the IBM 350/67 at the W.R. Church Computer Center of the Naval

Postgraduate School. The User's Manual published by the Center has

additional information and explanation of the JCL.

1. //xxxxxxxx JOB (yyyy ,zzzz,aaaa),

'bb. . .b'

2. // EXEC ALG0LW,REGI0N=130K

3. //SYSPRINT DD SYS0UT=A,DCB=BLKSIZE=3458,SPACE=(TRK,(5,1 )

)

4. //ALGOL. SYSIN DD *

5. Algol Source Deck

6. //GO. SYSPRINT DD SYS0UT=A,DCB=BLKSIZE=3458 ,SPACE=(TRK,(5,1 )

)

7. //GO. SYSIN DD *

8. 13 1000 2 50 75 4 3 100 Any Comment

9. 9 5 75 Any Comment

10. 14 1 1 4 Any Comment

n . 23 1 Any Comment

12. 24 Any Comment

13. /*

The alpha fields on Line 1 are job accounting fields; see the

User's Manual. Lines 3 and 6 are optional; they reduce the SYSOUT

space requirements of the program. Lines 8 and 9 are optional input

cards. Lines 12 and 13 are required on eyery run. Any other data cards

would be inserted between lines 7 and 17.

46

Page 96: An operating system model for real-time applications
Page 97: An operating system model for real-time applications

APPENDIX C. PROGRAM LISTING

» to iri ••

•^1 >_! • » r-A

h- <10c0 :^ .r z • »

oL 1— »-•"_ t/1 :»i (\j a #•* o»—

<

<; .iLL 2: z: u *. »—1 • * LUO ,- »-..x HH <imiL rn OH- 001—

t

-^ (~r-<<t O —Ih-iCJ < 00 1- SL^ t- tJ^S • CQ>-< ». o l>0O

C3 Q- Kz: LL "Cyr-I *. ••00 lULU OQOQ- O '"^oo •-o CM Qc: 00 Zcc ^^ Ol/)K-( »—

1—• »—1 f\J LL < o o

o > ..t>-5(/)_j • •-OOXi-tO O O0_Jy-\ UJ .^-.a. ••<oo to-— •.^<H-1 »• •. oo< L/)

^ *-#• '~-_JOLUO-*-« —»00. •• C?ro rH UJ K-*

LU LU -JQH-Cr^ULL- o,-«o««-» •-s: < _jq;s: O Oll—iO r-H •« C3>-<'H'-HU- O < a:»-t z LUX 0>-0- • • f» »>«»*rr^i—(CI? •* LU ••" oy- LU •- • •.-^<I<t»-l •• i-h5;2;<-<»-' » rn a:— t-•z. Q^—»uJLuc? -a:-J .-^«—-.LU«— 0(\J D. f-i <LU LULLOio^OaJQ^OO «-o_jq:o -s O •(NJ -J^ U-O.Q-CL^-'a:<Li- _j_ji— o2:rou_ >. 1— •• Z)

LU LU f X—O LL OOILO ^--oc? CM O" 5:CL crx'-- luoq: •- 1— OO^Qit-H •>•-CL -«rH t—

1

>- coQ-— o-<::luh- o <i»-c?r-(roc? ^^"^ ooH- •••ID-U-O^: "OCJ >CL<x<^ a.:^ 1— q:

O CO cr.oLU2:Lui>o«'«->.<:cj«: cMu.u_-< OH- LU•—

<

ej-»»-'i-<(x •-^-cx--,<j;q--i— <; "Kj><30iCx- LLX X•• -3<3U.'<-*lU_j;2 •-OQio'.oo ^t-i •- o O K

Z) —ooiuu- •^1— r-(Q:<i OCX. oorofM .....(—

Q. CD «-'^o UJ UJ o««< »-iuj—< »CLz:i"omo>- zO <LUlUirC!:S OOtt 0:00 •• '~ILLU-'-«(^JCQ<I H-t

a: cDZUjQi.-h-o •-w LUo 00 h- <-<'-• • •• •t-ct-'a: 1—O Ol!JLLlUCLO<00u_OUJCJZ^O0vJ'-<(MOO<t *-*

O -^niujLLLJH-i o-i aj(~'-<>-'a: •Cl2:<-< ••-< S•• «—UJCXIUH ^ IL CJ >- f—ZO I— rOLLU OCNJiyi'-.

>. LULL a:LUl.uLLt-i<rZH-i .oosioo •CNJ ft^ _i

^- OLUt» 2:0 •Qi'-' a:SO»-* • •-.-tOcL^ <•-• 2S Ct of. •—.•—< oocr: ••UJt—I Or-<f^ •-*-<00 >OC LU UJIX)>h-t— ~3< ••'-.Ol— >- CL<00>-'Z QCO ex: •••I— <ILUOZLL '^•<)-UJUJ<(NJLLLL •• •-00>--< LU-< LUH-CLi—^ "-oaiocovj ••f-cxorsioorO'-' cc \-CC LL-J -JLUIULL "LU" ••ZJ— Oi'-' • •0<MQ:|— 21a. lu -"^ osiLLooo •• •-^»-toT<orof\ioaLuoo •-<

O (r)<CQLU(— LLOl- O •*2:-~.-(t-<LLf\|OlU.» LUHH ••<L>-<icxoQ-^2:o_JOi-c-":5:ooo •-i——. 2:CP LUf— cQf— LU ».»—!.—«»-<,—tu |^_r^l^-( • •CJCOZf^ •-<

O ScnOCQLLLU •• • •t^HLLCJ'-tOCNJ—1 »-r-l>-'(NJ K~5 t-iQ-joiuo^ooo •••• y-cC'" •z<r-(Ci ••

t-"^—'-50iO'-icO'^.-H>-2:i— OrO^-.LLLJH-i.».. oa: »^uj'— Ohhoo ••<>-"o02f O-ooooSt-H •-«

LU LULUOU' .•_J •-Ji—(OOq; »-h»-' • •• fLUw«» 00

O o2ZOCL»-.ocir •• •• Di—la^QiOr-tromfNJi— Ooo <LU cic:2:ujZ3<_j ..••<<lijk •z-^sir-t _iq. ca\- LU LU a: LU Q.> LLZ rH .-I LJO OO CM K-. LL CJQ '-^ U_ LU^ O0r'-UJC£:o<HLU^'*-a^*-'UJ O-OO •t-HCDOX LU•-« LULUllUJ 00_JCDCLLUOH- •»•-' •• •Cs^Ci<l'^<. X»- hlllull^ll t-H 5:cD0 2:zcjrn(Nj2: -t— s: i—CD z LU a: LU CLo I— •>-Luaj _)•-<•-< »-<i-4 0t-ico>-< t-H a:— o: u- »-i 00 :2<o H- _!r-i>-<LL •'•-io<»— ^(_ W.W. w(^ •_jluq: z r3CLOO.~<o-3cr:_j -k-

00 clo^-q. ••_ia:>->—. .—. • •5Lt-<»— oioo •»

O >ollOlu cQa:<t.< ^ooJ'-<C3olu<ll -k

-J LUoa:i-<o -J Qi •• Lo <-' 'LJ -K-

za: •olclcc'Z ^ (X .-. a. o: mz _j ct: i—Q OOaQLULUHLULU<lQ: OLUOOLUZLU<LU 2

Zol "DiOlQlCtiQiOOOO ZO »0<^QiO0 LU•-•O—OOCJOUjLUt— UJLLi_l_J t-iUi—tmLLI oLUf-ilU 51tDOh-UUOOLLf— r3Hh-<.<I CL t-< LJ H- 'NJ LL <J H- 51LUUJZIULLLULULUZCLZZLULU (—Z t—LLZ Z LUOZ O0DQ:i-icxcLQ:cxQ:>-«O'-"-'Qict: (/it-iC30»-iOQ:_i>-i <j

47

Page 98: An operating system model for real-time applications
Page 99: An operating system model for real-time applications

o «»

o• » *-^

2o .-• *^ 1—

1

\- + C\J h-o > »- <o -5

II

>-3 2

ff «> «• V- 3a. > 00 o:

s: -5 «-« 1-

UJ t*» a.M 2: QC

o 1— Q LU LU

H- »—

<

Of H-

O X • » —

»

1li_

o .»• iH *-» <rH ^ r\J

• *» H- »> > •• i-

a: -> r-H 2o #•

1 <z. w-t (/) > »-

*-' «.^ —> l/l

o %•• • •- 2: CL •• 21- rvl ^^ 2: 00 CJ

• » o ^- «-•% Q UJ •»»

^^ o »—

«

«-^ 2.» Q.

1— X rH <M V s: 1-• • •- ct:i- > LU

(/) a. o + -H UJ» X H- •- >x aiuj—

'

ex:

2 LU rH 11 -JOO-}*- q:

U- O «w^ ••0 »-H.-J*^

O CJ 2: :>h- XLU—uu 1- IS r-t

3 O • r Q 00 1S\ - LU_l o •-< 2; QO • r •> a:

< ..i^ < ^^ + -) 3> • * 2: a: CM" .-!"-^ »> 00

u_ ^ ._< fH—. »•(CNJOO 2OC'i»t—

*

-J 2 00 ••>-* »—

«

uj>2: «-< _i _J + •->D.0-)ID * Jf »—«^^ rH-52:UJ • #>^-% U) 1- • _• UJ H-

f-o:o 2:00 12vO 2:«/)cj

ZUU|- 1 => 1 CJ '^ 1 Q-^oo SIH- _j > QQ-> LU

wLJJO UJ»^ < r-lvw 2 2:^ a»- q: + UJ II -n <UJ'— Q

5122 00 cc ..|_ ot:o + <O'—it-« _i^ a »—1"-^ II II -^

O o •K -J h- _J •t ••OJ 00

2 •LU o^<. Q o:< >> - • »»—

1

<a.>CD >4-UJ 2 CjLu > LT, >Q^ ODt r) u-a: •2-3 •• «Ln

-JU- .-to Q o f-HliJ •M + •

UJ<0 II t- DC "1- II X(/)l- 00

a:uj ..Q II 00 • • f_— -« II *idq:z: _JZ • • II 2 > Q-X .H ••

o U- ID > ••3 -> rHS >2UJZ .•0 >o II LUO UJ ••

O'i-hLU .. u-o: • t ..oc «• (-OH • •2; M»»OOu^Q •-' II a. Ql II CL II 25: t-Oa:uj<2 z •• X 0.. 2:ll"o LJO •-'2CLcnuLu I3> LU 2> LU•-"^O UU XLU

>J<iLU0^

48

Page 100: An operating system model for real-time applications
Page 101: An operating system model for real-time applications

o \-Q

O*-» QOA -*•-^ K»^ LUQ. A

*** -je* -yr -Hr M M -^ •-

* LLJ CO ^i-

* X^-" H- * ••«• HOH-X LU •«• —*UJO0h- t— * CL ••>

*x< z ^cc « s: «»«-K-_joo3: »2;Lij »• LLJ Q.« h-oujH-(- ••«• I- s:•« t>-2QQ00UJ oi* — UU

•K a ooxcDxa.2; •« o- h•« O-O 3: H-_Ht 5; ..

^tz < -J ujoo_j* uj a.

•"•K^l—<< 3:0000 ^-»-«-00 D oUJ<l--«-Q--jf -' :^D- Ljj>-ii-i00 z:-«-

* _iuoi/>a:(/)o u.j-«

-^«- Oh-Z3H- (XUJ>->i-

<l*2:cQ ori-ui- H -Jl

h- ^«- UU •LU s: • i/)>cD^< >»-i/)h-:si--uj2^H-ji-o «• LU 00 i^:z LU 00 5: -!X «•

->jt q:o'-'Z •-< t— •«• LU —*«-.>(. Lu»-H00 Lut—Q -M- •- t- a.Lu^i- xu._ja<t_f ujx^toc — 5:0-«- H- CD -nLUOOO-if l»i H LU

2-M- > <;Xx2;z)>-<-j^ a. |_LU-«-O^Z o:i:< X^to^ "— ^Q:^ I— >-0<-0>-< OOLUS^UJ LUZf-LU^ZZ) '-'XI— CD -JS O 2-UJQ.IJU4t OQO St/OLU t— 7,^LU -iX— ••>

LU-K- ZQ. cr:X_J<^tl- HH-UJ'-.QC^t- (/)<f-iS:Q;»-<h- —I -S 2 »-' '——

»

« ixi 2;luluu_ t~iLU^t-« Qq:QQ.•-^oX'-'f-t- OSS-it- Hiiczs:(— -«-OK-< LL.LU2: •-'•«••• <. II <liJ•4!_Jh-.X »<.X'-'I-|--«- a. ^1 h-

45- >-LUOO^ 0-. n +.-<.,,-hO ILI-Ji 02: '—X -M-LU ^U-i^H-•»; ^—^-2 0^< a-..2::£0— o •»-H-aLuoa>-<if-uj-)( >- q-i—iid.* zi-4_j-R. —»c_i'-^'~'»-tLu.-^ •»•-< (X-ji- 2:Luf-_J»-'i:OH- x-s- 2; '^ •

•M-l— -<h-CC)* >t-CU|— h- OJOl—. LU-Jt LUM<aJ(— ZlUI— •}( — LU«'—>CL*20Z *luluOL1jo —^•» o-«- >»-h|— <luocl -K- > I Q. ••

.}{. LUQ. "-•<)«- '——HQ: ulU- CDO^ LU^l- LU_jK-.f-O2U>00-K LU ——^511—•K- > O ^t (— ULj|~HOOw-> 1—.)^ <_JoOOO H-t-i-Jf-— HQ.UJ

«•«• UJ</)CL 00 -Jf LUQ.— 00 00 -7C0O Z! * OO >-< t-n Ot: _JO 00 •« UJ Q- :£ t— h-

OO-K »-i Z:* O II h-A II '^*^0^ »-*-K ?"l— O^-i :^H-|— -K O —LU^LULU-K-UJ v^i_-}< 2 •• CLLU ••Ol— ->CQ '--;'-'-(< LLLU000Z -« 2! Ujl— I— •—

_j«- XH-o<:^ Luo aLs—Di^o*' -«-<ii:u. X'-'Ouu «-R-iiJ ^'— q.>3^»—ooox*Q^ .»^-Hl~cuJ<I,r)-5^- oo.,(-x^ >»— -J>oo-j! a: "^K-— UJO-K- -i_j(_)-K. uj.«H-(— I— I— Q-— a: 00i>o OS ocolulu-JcLucli— Q-lu ii

LU-K-O0_JCO ^- Li.h-'~'OUjLU00oO< O-Ji- 00»—SOZ _l-J{-U_0 w>I ••

X-«-D ^.«luq:Q c£:oocn_jLui— cd-m-oo*-* ^h-'-'ooujid-k luh- auji-h«OH-Jl-i— cu-M- Q:<^2u.^-<tOLuD.oo >i— i/:; :siQ 2: o:xQ -jt a: lu i— 2: i- o.i/^zo^zro-J^ H- Lu,_oo(_)-oct:oo ••• lu^oh-o h-'-'luh-lu-j^ 11 ^k_^2:

LUX:UJLUh-4{- 2:00 00 LUCQtnOUJ00<Q X •« 2 • Ull— LULUULI5: >>uj-k-*-' >- 2: LU2:>»-'_JX»-'Xa:ooo-K-'-'CL_j II -JH- •»

QCSOLULU— .)}• O LU OlSlLU—'CQI— _JOOf-ioO-«- OShh ..K-i—

a

DU •» LU a UO ^J-UJLUxo-Xt-ZQO .«)(•-)(.«•* CO O" QO*-K •K--)t **-«-*-«-*cOf-Si^3:Q.uJLU H lUO •-' oO Q OQ. LU O.

«*•«• -it * •""

Hr if*UJ M-*X ^ t ».

*l- * t- s:Jt ^- If H-<

•JtZXQ. •«• h- • ••

*00 II * LU -^•«- <•• ^ -z. CC »^ •»

•M-:^UJQ. «• LU \- OQ*o * X 00 —

z

*OZI- -» 1— II cdlu•» -J'-'LU •«• • •

•K-CQ •K 2: 2: .--J.^•Jf 0^ • K- —

t

*—\ ^^*— *-»

•»( O-UJf- •«• _J (— -«H—•M-OI-00 K H O'—'O-K-l-Z'-H •«• CL ^x«-K- t-t-J •« H CDLUcDK LUO •« A 00-« XO-LU « LU -3. --3

JtH- X •Ji- 2: • •» >-^ .»»*-•

* LiJI- ^ f-M *-^ ID—.LU* 'X * H r-H ClCjJ_J

W-H-H-Z •« •» o—o.•K-Z •K- l-aJ2;•)f LUoo K- u. r» LUO<K >.-^i<i «• —

<

O-300« UJ ^<- • » •* «^

* H-O ^ *^ .»o.-M-H-Q._j •* «i^ ^HH|~4t X CD^-^c «-• Q. --.-Kt•X-UJ . (^^<- UJ < OLUh-*i::QL|-.-^M- 2: 2: —'QCOO* OX-J-Jt HH CDfrLUH UJ •K- h- 2: o.»..*.»t XUJZIJ.1^ II

—1 tv -3^^»{»- X4^ •• oo v»««^ii >-ujj-;t LU UJ2: r-lOO^t-QicOX •w- 5: "CQUJ <—w«^•JVO h-LL^t- » 1 •-^ LUCQCQi< LLO 1^«- H-02 .r q:oo•»v h-oo^t 0«-LUO o-)-3«-LU h- •Jf H-XU-\ 0—

^

K- CLQ ^^ •.»Q.I— 02: OOO

49

Page 102: An operating system model for real-time applications
Page 103: An operating system model for real-time applications

•»•**«* ••-

* K- • •• tvl s:Mr Q * t- —^ z: «• u_ o >- D^ .mo « 2L • •>co 11 • •» z•ft "Xi^ M- •-0 Z) rH • *• • • + '^ <•« 21— CO * --l- o II z 00 \- UJO a:Lu«-o •« —O CC ••0 a: Z) s. W2:*i^O|- » xo o Of-i UJ Q- H-^^^ LU^_,

«-CDH-l/0 K- — N^ LUOO »- t-o ^-^-* zct: * OLU O QC^-t z OUI <o*q:kh^ * (—lOO ••• <I o> LU • *k -q: t.

•M-O U- * CQ_Jt/0 CQ Zhh —

*

—0 z-^K-LLOD }f OUJCD —

.

Q 00 CQ »^ '-Z r)-»-« t-Juu «^ -> a z 00 ro •r^^v. QirnK-CQOX K- 0-5 Q UJLU .».< —> z O-HH- >--<^t-J H- •K = LL HH XOO ^CL ^—

4

»•—

D

•-LL

* o •K-•• Q (-3 —.OCL ^0

^t^-^zz J1- t-O^ CD < 0 Z »• ^ o •-» »K- .-hO •n- q:(-3 ^0 v-<\- <M rocvjw m(M*o_j •«- <oa -> V •-0 ^ Z CXuLU II CL1-.

^t UJ_J(_•Jc

•* H-Oa: II OQ CD 1—4 >—<V-H|

• • U-U_*a:<CL •K-H- 00 UJZ C3» C30< h- OC3f • *

K-U.OUJ it> CDZ^x: •• cr< LUZ - »' o 3 ». •• .-«.

^f u_ o K-ix OLUO OJ OtLU 00 r-< CM-HZ cu cg-H H-<!• LUX iha. -)X<: _i z-- OX a: z Q.>—'^ •» O-'-' O-K-(XXUJ *<! 1— CO • LU ZH- t—

t

K-H .-.-hQIOO t» O-U. -3

*OI- * • U-> •• U- 001- l^ O'- 00^U- UJ it '- 00 K •"-"O h-O w< w < 0-. *«.< ,~.

it oos: R-*-^ LU Z m >A LU ^ r-ISOD. in.-. ,-KT. CO*-U-UJ»-< * 00 UJ •- .-<t ct:-^ X Q-OLU II m CLO <

.K-Ot/^h- «a» 03 .•"5: '- —^^^ QC-X h- Q H-.QQ^O ..z U.Q t--.•K t-<<^ K UJ COD -.-.jr ...^ "•^ <w Z ozot— ULL OZ co •»

X-K- <>- i^QC V0"-^'^0— fO fOO ->- z < w-<i^ CJC? «-< uoa clo: »; o — Qi'-'ramo-.< z CLH LU Qi •»5^q: -o t—< •• •'^ of. -JZ

'^M-H Lu fr-ci xo.-»o^ 010 00 |-^-4 X •.^<-0—— CM -^0^ •^LUCO-K 2Q> * ~ fOOO«'CL - H- OCi: 3: UJ.—QLU-, zz »^ouj LU<-«-f-HHULI -}! -^ Ciih-^ »• --(OfNJ r\i .-<o (— OTZh-m •' llJLLrOZH-.e O'-|-*U-UJ if IX •-^U.OC^JCNJ II •<I ZLU >»—

*

00 <0<<.<3.-» xoo<<—> •• Z-*CD-»f Z M Q- CO oi-Ht'CNJo Ol- h-Qi »-H O'-if^O'-irvj h- u-a:oo o UJH-OHt oiujuj i<- OOCMOOCDCl < Z50- Z0w20o, --to^z •• z a:o-->-)t OXi^ i<-l- -jf-s: • ••-jo.-< ^0 ••Q. 3 •lurD •'S: oz LUID— '-U,! UJ-J—'^<.U->-< •if 3 0.-<rH ••< zz ^OLL 11 Qrc\jH-Q:cMLu o^u. ojH-ctroo Li.«=-

UJ-)j- H it CL ..• LLUJ •O'-^Zr-tO 03 ••-< X H-*-'<H<I.H- r~-C30<l|— LUh-.. UJOO* QCn^ if oc\1 s-tOC'-i^JOiKXiC^*^ «lr LUoO II •-HO •'—

' * A^ u_o -n;_JO 0:0.Z'}{-»-<oO if a. 111^—W-X05: ^h- Diz: .» lU • • (:j'Zh-o-» Lus: ozi-oo-UJ^- eui^-. if (.i-s = ZX'-oSlSH-^O — 2. Z)I5 -f\l oco *33Z _J "I—ct-k-oz i^ t-u;IwLU »-Oo 2lO 0—1 Z^-TSJ t—

t

UJi-imCLi-ICL -<Q.-)a:a.v.o<:t t-iLU

uj-j; t- it i_)»-ujx:^5^-OOc^(_JZ<-zv ^QiO- (- CT-LJI— o<i5; ZOH-OI-f-U.* QUJ^ i<-»-H »-t-OO^ZCT^O<U.J< l-Q-S Q'-' • (-tlU U.<LLv f rI3 Qc:

uj-;{^ -.ctx •jf —

^

•-< q: <i<. v^2 a: s. oi 00 r) ••LU >- ZC3Q 0|- -in: Ou-—O-O LUZOCVC CDQUJ ift/)CDQi IJL2(X(XA< —'*-•—' Li J clcdi- <"-J >•i^t—1 ^•'^.^ «->—Q—OO" OLU*^-i<-c_)o •ifS-<3:ch <j;ww-cQcf:LUi— uji— O-J -oz tr!^f-< :^uj .»uj2:^-.m— -^ luX

•«-> 00 if H 0^ LU Di LU LD _)w (- 1- •=>. w^h-H-O ^(D— OS r-IH-O—SILU ..X \-\-H-K- O^ if oicaZNtO— t— 1— Lij<+<»-H. CO>_J + DCD Q»-< .^<OcQU-|— —» - za: }<• LUH X K- ujoiiJ AaLu<<Li-i— Ol— ocr-»LU<I.Q^<LU QZ< Zf- LLOZ<CS<fVJO •-0<:« X H if o-ojL-^oi— oo>-H<:^>'Z<3.3:i— f-cv- X »—1.dt- <IZ oz<ti- »oa.— w. II

»-i^H-_j -«• LU«-'HX •<iz:z: or>Q::z)>o<cQ<oH- •-'(:i;:aQ ckTLU HH3 Qi CO (\iz 5: UJ »—

«

l/O-Ji- _J « if 1— LL1 »-. "O-J^ •'^tuciioi: •—Joo •'(— • II"-0 « II q: —o^zjujo: LU

QD-K oo<5: * ZoCslQ '^^QCO^r-iIDI— <H- •UjZ-J'-" t «•!JJ-5 LU.-I • •H-UJ-JU-Qih-O CiTU-

Ol— •-•OLLJ •ii-»-'ZAt-^h-3H-f- + a: II It II h-CQ3 II ^OH- af- II H— a. II t- II 01—wo o*-<-JZ (—_(><- LUU-cOZo: II II CDH-.."'• ..ZwQ: '"OOOZ t-H.< •• <lO Q" <t.. • ••3

LUQUJoO_l-)< ZctOnUJI- •• ••_J II t-»-GUJ |_f\Jl/) LU •—1(^rvj ot^ <-iOO(M'~<OD-«« zlUSt-nXX-it K-iLLi»--3 5: II K-CL II •• >>Lu2:a 11 q-oujs ;ZCL zo LUZQlSLUOOO LU>-<

o::5:»-i|-ooO-M-OLL s: ••r5K ••-'Qiarcx:2-Qr .tScQoo^: ..

;

Ds: ocD • •Q:r)5:u-a:H-oo Q^OZ3U ^ UJLiJLl-U_O00Q.UCQQ:(XQ:OOUJ«-'UJ>—lO 1— fiCILU Qi> c30Qiujoauj< OUJQu )$*•){«•«• CD a:; —• K-i 2H.J *-•—' Q- <!.<2 M •-• 1— LU LU U-l— 1- 1— LU LLZ 1— l—wiioo. OCD\Xi LUo uocc C£.

Ql Q.

50

Page 104: An operating system model for real-time applications
Page 105: An operating system model for real-time applications

^ o ^ a. -«o o•« — u I ^f > ujz :^^ »-H 00 OLD • < 4f LU SILU LLI

> «-u_uj2»-hujz)oo o:^ .•-^j^ Zi-Hh- uj>a:Q-LuooLiJ^ —.«f-..> ..

•K-ooOOt—Q »-H LJL.)vUJCQ fX. •» :s:

•»t <l—Q>-UJIU< 2 «LU-JOl.Z ^-^ O '-

•)<^ CL»-iz—ioc:x_iijj'-io-«- o—'CO j_ j_ ,-1

•»5->'Of- ^y^T.>—z^^-:^:>,^(yrn^ h- o.•« ooooi-H »r):sf- >-iH-.-»f Lucjacj u •••— rx)

jt- 300 Lua. aih- <•« a.-3»-<o f— '-q.o•)(-cD< •ooi/)<"^Li'i^->i- uj II en r> a.co-3K- Q-UJt-H ujQ.a:>uj^ a: ..O" o. coo—

.

if- .|— 30 Luuj*^ r ..a •• »-5:ci;

•M-——0:3:0. ujoot.o<a--^uj.»..<ia: »- 2:»-hO

^t-^-'-'UJZ OOtO»— « II a. 2: H- H-Ql II

•K- CL CL3 <. oo oc o. •h-iD^; ca<(_i_ cl"- + iij—•K- OOQ Z5 IDoOCL-M <It-iUJOO O'-'UJS-O.•K- A UJOOCQ •OQ.H-iO-Jt- K- OUJH- -)i:»-<CD•M II :^o>-' t—zo_J -jfcQ.. rn .H'-'H-o

K- II orOH-h- z>on~>z zo ——o -—• •ii- — e>Q-UJ2?oo •aiLu K-'— q; uj cl< •"r-o»«-— -k »—Z 23 t— 00 f-.K IJJ t- XZ CQ'-'-J-'—UJO .^D-i< — -•>ooLL.Q.az:z-jtoi— h-uj o——oott^^ 1-

0-«--JZ <^ CY-O 0*UJ-J Oh- ^OooO*-" X—>^u-ZD^^'^(y)y~a: ^5:-)t(x< 11 i— oooco •»

•M-Oa:uj< ooiuujo<-K- luuj —.— cctnco^-^^ a^)t- 00 ••«:(— XO }( U-cr. -"O hhOujujcl I—CO* tcQ OH-t-<2:H-—(oo^f LU ^11 OCLlU XCQ<•»;- ooooozcLU_f_, cqq^{-d:.» oi>i •-<<_> 21—000K-»f 3 ">•-'•-< or IX- -J-K O -JOO • 2UJ ->ZOCQ-»^CL LlJl—>-UJOoOO-?r "^ U-5I — •••i-<XO ••LU

O-Jf OLuOcozcnx cDX*H-. r. o'-' <Q.oi~-i:s •»

~5-M- X—I •-< 1—00 -K- ~30. O i-KLLU U-K-.«»-. ..t-HcQ II O II CJ >••»-•-<Z r-40(_>

3

— -R- U_(— LLUJ 00 :^-7cO^ .-LL IJL«— ^.JCDOV- (——.Q. Q. LJ-..002>« 2 LUOO I— >-'5:^— Q-uj-K-CJ HS «LiMjj •^^ 2_ ..r t-iQ _ja: wtzoloco coolu'-'I— lu<.olu— ^f^^O- ujouoO* U.2ii-iQLU_JUJOLU^ i~iCL— 2Z 00>ii ^- + -{U II QOO _J h-iI— XcOLU<I UJ •' (— -J 00

Z^t QtlQ^-'l-LUriCOXuj-J-h H-CDLUO<;ZI— OlIJ— LU<l-> •• _J«-2—i.» I—O -^OLU LLI— ••

LU-KlU OOU-Zt—H-COa «1 •h-O—hhO XClU.S*-' • D.C3.uj— M(— OCtO -5 "vi-XS .-UO—(X-Ji 03 •3< < Cl<.^ -a.*— O •-.»l— CQ»-<_ .-,-< U-O rH022UCJO>-— II lij>-'< OLU^ 2:t-HLUQ.UJOX03f-)! <lOCr'.CLOLUCL'H O I—S— OO LU3LUIX II QQ- f l-»-i«'Q.SiLit 3cQUJoa:2 LUCK )<-.-.3:00^ coco n -^zrO'-'O •• soco •• r'-'>—l-o !

•-'CQ •

in-a,- 'Zcjai o<_J2a:cQ^ uo Or- 0'»C>^>-' •f-a. o—'uj •• i-t.».——aiuQ-z | t— -^oo.a:* -7U-LULU _joujo ty. 2 a2-3— cr'0 0>tQr.u- 11 •-' r-12 11 nO—<iQ-0^>lu—o 11 ~50•— 1< LU XUO0^_l^->^—-3 • IJJC UJ _J f-i LU w.< v^" UJ LU w- »a: .. |— •» <— LU .. O OOhhO "5 (— UJ 21 Q- I— • t ^^ ••

3*XLUO0H- >-3o02 V-OLUX>-i-5XLU>-HAQiCDOOK-4 II C)2i-t>_X< |^w. Q.^2:>3— U'X

CL-Jtl— X*-" OOO oOt-iZQ-Uit-Dt— f-*"!— s:— hhO oO-3«» 213 + LJI— t-nOQ-LL 2lu II IUOLUClCl ST'-'0->i h- a:i^:Z3>-<l t-<3t— LU 2 khC)~5'-'LUO>-»Q, 11 Q.Q H-O II CJ_J ..— •-'--UUf-Hl—I— i(-O0 —.UJQ^CQl/) LU Di2|— {M3U-Ot— _J 00 CO Q. CO • • r-< cD2 —t o:: 0««00>-iQ. OOLU II -"j—Ofuj»— k-.ooh-'XO 3O0I— qq^»-'2 a '-' II a:u_LLU_ _!><(_) OO II II < »oa~CLOox>u-oo^ ••20: •

02 Q^-l— t-<OGQ'-'<r _JLU -<LL<-< r II 0»-it-<LUUJ5:-5 •• t.Di VLL.0'^tJ<l3:UJ>-i<>-'h-0 II *-• ••

UJCL_l3tu t— oUJ»—2 Oil a-<i.. ••

iJU2:ooDLXoo2Q:cLo»-'2f-..»>-i..»-»-H2: r-uj0:2:0X0 3:H-<.-(0<-J_Jti-.M00 i-HX •-' 2003U LJU>U. IUU.(_ _JQo-jn(-^i.*^(--« «••«•*«••«• CO LUH-. a: ^-.Qi: UJUJ Ooa:o.

• •k

t • 9*

t-C • • » ^^

en D CL• ••• 2 CQ

1) <-4 2 a: lU U.. + —1 •^ Qt: ->200 D. LU .» ••

a: II tr- LU * »-^ 5:• • »-• CO h-.- K Q. —1

200 < LUO. * > h-U.) H-

<

2 II > * UJ OHX'* •>ai LU ..LU * *—

*

+H-t-i CD X Oil * y- UJ

II II f~ ^ •* •R .«a. •<?-

O" .- • • ILIO * < II -HII—

Q

CL < > * HH •• K<I.CL2 -H •.•UJ * +—.-.CQLU «• —^ K- -.c? »•

>— 2 1- a.2 * —> <^LLCD .r l»t V O-" * ClLU v^»-< f-l \-(S> 5 >*- 00—2 + LU 2 UJLU v^ UJh- 00-«•—lO. CO ct wCO LU <— Q.f-IOLL l~ h- CO CO

lU II 2 LL. 0.0 —

1

0- >ocu .. • UJ 1—

«

II Q a 0— LU* euro X • * 2 ^•^^-^ • *

.-«2li-0 1- CL-» l-o. •-5:wLU >D. 2 •••2> •-»—

1

:^x .-0 < IIJO LU.-.1-1 LU .-^H-01— ^<H- *—* 00 •m' Xi= II

— o-clcj:II it 1

•-2 t-3««cn<cn +2f-fO H- Q. CMO 1CL—0_)OH-< II -^0 V II 00 —^i;_)— •r)a:-5Ucr— ex ..00 h-H-D. r->wt-II '-<UL2 2 o< II UJ>.-tO|—

3

..«W-UJ Q^ _J»'SCL roLuw. CiCO.

20U-X »-iO *-» «^o .-HH(Ja:-i H-'.»U- h-2 2 11 a2COCLt-«0 II

Li-2 00^-. 2ujt-' r >i-OU- II l-H..

••0^0*>v 3 — UJ -:>a: ., »-r-« II •0 • •UJ^^ H^;Z— II •-'—OII U.LUOOr-(C)»»r-4vOnOCL UJOK- ••Q.CLt—

..^CL II 2 1 a H- O00««-3OH CO-'Qi t-( II Ho0 5:»-2CLo: II ••3<>-«ClUJ0:0 2U- • • IL <IQ.O.h-<(-LL (X^-i 4- HH -"ooois: ••

2 • • *• t-HI m vO —

1

D Q X

51

Page 106: An operating system model for real-time applications
Page 107: An operating system model for real-time applications

^4 -K- ^<-4t •- »^ •»*t/) ^ -J H-"^ZD * UJ •» UJ

-»;^o * £_> UJ • «» + -J 00Q. -Jf LU * s: ro H •-•

CQ^Z O •« CC »—

t

Ql _J ^_ .*v>o-K-< t~ a UJ 1- SL I/O 2 -^l-H-)•« 1- Z -K- e> r o UJ .-u_ • •» 3 E"-•JtZLUO * UJ • • II H- -J II 00 2 -jfo:CD^^ <(- -K • f* H o .. II _J •• 1- .-1 HH ^0<^f»-<CO ^^ —

1

2 a. — • «• «t =)H z: II « U-»~**^Ha Jf a: f—t U_ Q. -^ CL Z-J UJ •• LU *cDitzt/o-o -:(- Cl a: CD t^ < ID ll«/> 5: s: CO -»t Xo-»(- »- -n >•• o i-H a: Ol ..U. s: .-^{••v--5^ UIZ -Jf <r i-< "5 + —

.

O «^ o CC 20Z)CJ0^"A LUZ)'-' }{- or «^ 00 _j Q, ••• o UJ2C)L. 2liJ-«^XLU'< •>? z CL CQ o UJ r>— u. xmoouj-0^»-I3X i!r

»—

«

-•^ O O u_ oo CL.-1Q 3 H UJ2L^ OU -K^ X CQ U -)

II -J ooz a. • • ••'>-5r •"

UJ^^OO A •}{ 1- < CC •• UJ ——"UJ o ^•'— r-lt/>3-^o:-K .-1- II •« t—

4

H- • » II < UJDi 1— -»CJ CDS 3003:U)-);- oo—iLU^f 2 CQ •-I • • CC ro tXO'* UJ C02I— CDOOLUU->tZ<-J3-J< (_) + 00 Q. Q-UQ o l-ujmo <2LU^c UJ_I31.U^( a -5 CL CD o s: 1 Z CO ->i-o ^a:)t_j Z3?t UL- v^ •—

t

U LJ UJ • -UJUJ 2 -J.»w- Z0')3^(a:uj n o-s^ -H UJ •» _J -J t~ '••s; »—

«

^-~.00 -HO.•-•jt X r ^r LL OUJ 00 oc ^ II Ol(—< •» LU f-H XX^t- •H-Q.Z^f zs: —

1

*— • • 3»-_l Q t-iSCD h- 00l_J^O CQ'-i^( •- UJ>—

'

u_ • » —^ .», Q.OUJ UJ COt—'C ••»—<CUJo< -jt^ o. LLu •;•;

»—

I

Qih- II .-1 < ^^ OHO 2 0>-~5Q-S»-hOlU* LLO->0c:4t q: ujO • • + q: < w. II

• ••I—

t

~5 11 <o-K or Lu-jt- a. U- II Q. 2: •-•

CC. _)-J.. —.u. — ^O-^i 2LU^ UJ •-)( aj.« -H UJ a: ^^ OUJOO ODUJ r: 2—>a:Lui— ui

H-n orsooic^. OL Q^H- _J -J UJ .-UJ U-QQ, HQ ••Of-4>_)2X2r-)(-0'-'a-»-«-«- UJ O .00 a: 1- '-^CC li UJ CO 3UJwO_ja.'H"-<•«• U- K-—lO-S- X •'l/) •—-4 II Ci.<:ia. .. ZX -)LU C h- 2 <1 2:— ^f -JCL* o moc -^U_ • • —'iVC^ Cl.t-H< CC 0'-<0'-O2;_j

}<tOLutn ^ -H CL o. zo>- ••_) 305: — <; -JQiOOO 0^^-ox a. ^4 X 51 . ODZ UjZt-'--a CLUJ CD UJSOO II 303

o^f-zt-H-o^x UJ—

*

o-< _J<tt-< <U. .e ucnz <:uj ..'q: <..cl 2a.>t-0 ZH-K UJ H-H -50 CC (Xq: .-( UJ Ko:ss .»a.'^«o II

U,-}fO<>0f-t * > »o = »-UJ -,0'—z 1 .'Z:x couJUJ——o-^—'•' r«:•«• UJQLLZ-K- < <l/) — >-CQ •••-JhhILUUJ Z — UJ|— OX2UJ—* — iu-^2:

*Vi/)_J QC-St X QlQi UJH- -j_iDt:Q:x UJZQ-X -J h- SU_2iXCQl.UuJi;- 1 ooor?-!^ 1 h—-2: -J30LD.I- -jujr5H-_i wO-.-— H-iO »l-2q:-kcdx»-i--^ (/) UJ •-Ho:uj 32 II ^ aixCL UJ UJUJCQlXZ 00 •CCZD-W-O ZILLI'W- IX -'s: ccox 2 II VCL-J II h-OC^Q Ooo<2:<-iJCoo •-5U-C3-««--5»-i:)Q:-!f UJ D.»-H IS^-h- II r-.'cr)_j.^ .. w(J>V 231— ooo<l. • »•—

UJ-^ OOA-Jf OJ U.I-2 q: • •

.

-^CL oi^ro ^_jQir-oo ••• UJ cn2oo Q.a:ooOi*t OOOOO II -Jt 2: q:ou) 2CLa> .--•<ICD-3 2CL UJ_)UJACL-J QiooO'-'<:cLOOo •'

O-Ji-Lua: _J-»( ID .^^.»x UJ *-Qs OCtO'— II 'S _JZ)I UJ-J UJUJ-^OQ-O cc^^a:-« h- CL_J}<- 2 *t- X— r- —-> TLU aizcLr-tx:^ U-_J--ujuo«'a:o_iOL-}t<i «-.r)>f lUZ HCLA .'_J—

1

CL— h-II II 0<I2 UJCQLUCG*- OIXi + _J

K-_jx_j2:* d: OUJ_J CD-' ci.O>u.< II 2 r ..—s II cc<.iji 2_jitiu-ir)—.•? Dh-oo II -u UJ Z-J-J CMOQ. i3u_h-o:d: •• UJ'-«.-<0 •• w.^2 2CJ>-<"-;; 2:2CQ-J( ^0»-'Q.Jf o ujq:3 A-^CQ CL"*--»—

1

II ^——

<

XClO^-hUL^ QiLLJUJUJh- '-*'-> ••

<^Z52U.m^^ o OfC+Z U-w-O o Ct • • UJ< 2(-lD cn«—

o

3 <1 oiX 1- 2 •-< «• H •-<

H-K-OUJ UK- 1—

<

UJ«-0 200-) ujorna:Di: -< cl2o Q.>UJr-«->3>-,; O"-CD-^ 0_l •->«• OJ U-~> II -•-i»--.w II -Jh-i CLCL^ 00O^-).»UJ" U- 0: O-Jt f-CJ

0^'< UJ -M- LUU- r O CQO • •"-"Dr^: moujA^-o —itoo _J*UJ(NJ3'-»_Ji<l^CL"5(— ujO •->; tv a: q: a. UJ U-o *-' <XcLUJu.a:2:cDzoiuiu_Li.'_iz: UJH-Ql A II U-r ^U.w^ooDzro* •K- II cQoOK-i-ja-) ct:3—

1

1— »->ClUJ UJUJCQ.-iQUJUJ 01:2 U_0 ..O^-oOQiUJ-?UJ<CLJf * z:"0 o -JH UJ20Q'-' UJOO II

UJ5:u.I3XU,-K * •—loO-j -? <t» ujd:q. UJSt-"*-' HO ••

USIQCOOOC^f •ft o-> o oo 0:2:0 Q-or -•aQ:^zu «• H UJU.U. U-2 _JU.U- r-4 3<-JUju.oo a:>LL)UJO^t «}(- «••){ i: cQci:»-« 1—lUJ UjHHl-4 O DOcn>-<tju. 3:uj2CC LU UJlU 2: • « • •

u_ s: a t-t

UJ a 7C CC 3CC o UJ a.

52

Page 108: An operating system model for real-time applications
Page 109: An operating system model for real-time applications

•- • ^ -Jf -K- i!- -R-••>

^ '-' '-^ *u-i -^-« ^^"- H-ft •« •*

I—'-' CU-K- LU ^ O. "OX -5-K- l-X -K "5: —

.

•U.! ^ <0 ^f S Uj *^— --•« l-a: 4f .. H- <l—O ••> CD-Jt CO< -Jt X II H-CQI— • •• '- <!.* LU -it 3: •• ta«

o \~ \- y- \~^ ujt/) -^ o Q. -J->0 + + CO cQ-«- 3A -K-

•-« O Ow,0 Ul I' I O O.^ LLJ II -Y- \- U_Q •*2: 2; ~) -3-}ft/)I3-J «• »_i ^ 'f- X»—«

••> Qi—( t--i #• •-'if '--'C3_J •}(••" -^ »-» «^CO'— 21- l"l— UJ4<3^(-«^ ••• ^ <UJ01- LOO a •-+ o^:2H-z •« o "^^ < h- ex:

-jaj M >-i .-lUJ Z-J^ LUl/) II ^f O. I— — Q.•o ••"It II 1-2- LLi^ _j<H- ^f^ s: »- _J XZ —> vj-" •• O'-i Crrti- -•—ICL -K CD UJ CO o•• • H-UJ UJ *-*}-" Ui^t CD •« <t I— <I UL ••o-i OS 5; O U,.J< tu_-> ^^ H- H ^- X —^_,>^ H-tK-, i-( CJ «- uu-f; LOO -K cu • ~7

II <X I— t— K-<J Ct.^ ID ^{^ (_) — •••** •• I—• 3: 00 O C— -K^ U.IUJIJJ •W--5.» CL "-^U-l CL —

>- o i-HH _! oi/) •--» Z)s:z3 jt— UJ O I CL o _i1/1 »-' o t/) CL4tOH-.uj 4f ujs: y- z:>- 1— oZ) II Of .» ..O >-^f 1—3 * Ot-H •-• UJI— i-H u,CO«' •• —. ^ vtcD I— -JfUJ o -J^ Zl- w -JO X

r\j {\i .»—. — 1— > -K Xco -S ujo UU *-*>-* 2: II

ooo o mm ro cuj Q::-}ti-»-<o -fr ai II cc II n »-' ••

*-* I— •-• CM '-' UJJf I— -j; Ul" CL .. r OQ''— Z 00 O t» o^l oci— •-;tU-(— .x ZCL ujz:^• •-'—CO -< >-H»-i H-t .*Q_ (jjJ[ OOCQCLJi UIO •-• LU>- CDUJ<—.i-.<x (j5 00 C\I<I I— -ff U.t/)0>--J^ cr.t/0 4- •' —Jl— H-!—'—»— m O • •- t 1 "Z^ '-'-)l— •«• •-• ^— »-'— z .—cQUJcQ CD t-fJ tM <Dcc *-*rkin II •};- ••> coo. q uj_iuj000 Or-f CM >-'> — -K o tirsuj-K- Nt ••> 00 2:2: X—io:—>>-'-> Z 00 O O ^t 2tXUJQ.-5*^ CL-^ -jh- ui< i-3a.>»- 10 _( ^ o x^r ai-2:>-t; 511- •-«•-' x— z srx

«ujuj X zr .»o o I— • 3-i;oo i~-Jtujo s n • i--J i-o _j 11 »-

CDOO I— »-'(\l •> •- O--" O-IMJ-JZQ -JM— 00 w. .t_j _J X _I««_J< 2: ot— r-t r-i oil i-^-n- (yjujoo-«- -I UJ co_( o3 i— 0—0 ••

I— ouj f-< uJD<-< (\) •• rr I _j<i*^)! <3.I I— coiD Az: "2:—u_a

cov^Ci: II cOf_o O ••-•« uj->i-aT A—'-J^i-uj •— 02 z ll —1 — 11 <xzO"— ujr — I— -< fO)'-". ct:->>cjuiii ^. -s: a: -^ uj r "-J <i— h- lu

-JAU-"—— u-oo o I— I- z)-jc -:»i3_jx->^ ''•-^ 3: "-ih- _j-^~r) 1—<—

z

— II LUIUI— 01— w- V- CJCO d-^ UJ_JI—* CJH- Q. t-<<<;^ >— I— -J"-""uJ,-^cl:^—co os: s: -•o aJ*oo:^r5^-ln 00 z z.""cd i— i— 11 co—oo-'Oil H-.0 —00 O -5 O* UJOZ Jl* •-'— UJ Ul-,.-|-5 U.W-W- r <iUJU.I.U<:Z.'^">CC—> I- D Q w 0*1— II -K —* X X— + *- -•aQ—)^ h-OiXCOI-UJH-ih-S*, QQ .»2 2 UJ ct:-«-<IO0 r CD^UJZ I- Kl- 20 <0<12-)Q.^ w <)-

DT— UJ Or-K <r CL CL* -J ID1—0* OUJ CLUJO .»H-U-H-k-. II XUJUJUJ "Ou-iOctizcL -jh-d: q: >- « zjocl-j-j;- 2_j -J (\icd_j^ cl-3x^O«« a:i/)a:oU IUJLU> wO— ^ I— -* -K- rZ UJ CO -JfUJH-i _J A~J>-« II O"-* II COUJ«sj-U-D--JO-2uju-oxh- u_.'t-iuj .»uj •» o CO »; :3 2! -3 oi s< q: + 3 u_^ 11 •• 1— ..<;cdc?>-'XujxujQCt-iUJI—O CL h-'-d—.-H »-..» <-);0<r O-K UJl/5 ;2ZOQ»«v}- 2:>-.UJ<Ih-«—»—>-• >-0<l— <»— wO H--«<_)l— •U.-R- u-r) •» II '-"-'•-' 2: CL t-i II _j(— -5 ••

K-ZCNJ^ \--\~^J>XiJ»< OZ cQ-}< <2!UJ -K-UJO^jrO CDUJSQ 0««>-« QOh-»-<AO OOlfLL'SLu _iuj OH <ouj-k- ci:>-'_JH-ujU-0-Juj2 uj<xOx 2:•—Z U-_J -•O^ 3 U- -32001—2:15* II 3 CL CD •~i~3 -I I- LO CD|—SOf-. IXJ

uj2:ou- orooro <-••• w.uj-3oo<uj-f-2»«2:cduj 2: »-.-• i-H ••UJ (_(— (— H- I— uj2:o2:x3-« •-'to II -5 UJ •»01:2:0 Qoo II II ..•-' 02:>-<»-H004t- 0-5 •• »/) o3ouju.u_2< .tcj'to r-ix z:lj -fruja^tu- _j 2OO 00 »-'•-'.UJO H-OH-O H-LU UjO-«- -K- •«*« CO »-'0»-. UJ LUUJ .. •• X q:O r-t CM UJ UJO f_ (_ ULcc 00 UJQ. I—I H-« CC

53

Page 110: An operating system model for real-time applications
Page 111: An operating system model for real-time applications

K- «•«• ^f •}( -K .«••>

-it i/) ^•^ «• UJ 00 ^. t»UJ * >. h- ^ ^5: •• -w- ujz « ••> t.>co

»- 5: -Kr "-"-JU. •«• * ^1-O •-' «-C0 LU ^ .*^t UJ .-

•• H- -JJ-UJ • CO -Jt••• -»f— .t. O

-^ i<-2Q -H- ^ a: K-J ^ .^iiiCD Z -Jtt-iZOi^-JV OLU CO i-t-X-3 :s *5:ozz) #_) H-Q < +-.^ O ^orOOO #< 13+ (- Zr-i

t-H iLiuj ^h-oouj ^( Dc: o^- H- ••zCO ooiti •); UJ t/)i- -a -oz oc Zw.O _J< ^Oh- O -K"^ QtyO^-- < *•

-> LUJ— -K- Zh-»-i -K- O -.000 »— .rH .»•• 4f|— UJX»-4{->~i IILL) 00 O*- r-i

= O «•-< a: Lu 00 -if s ••CD en ,-ioo +•• —•*>» j<-xct:2:cQ y. ••»— o *^oo v-o cu^ •^Lur) o « (— ujj-^ ~? q:o o»-i -7 It ^( Ouj-> •«- ~) OlOt-U . 11 CO CQ-J *-Q- •« • X ^ oj <uox r-i:^: ••> MU-i LJ ^1/1UJ|—O 4<- Q U^K- -i- >-H OCLU •• ••

(X inv- -K^oiX UJ ^t I- (-0 t— -^h-00 -JfOH-LLo: -if •• O'-Q OLD Z'-.rO^+ ^<-H- OLL -ft Q H-h-'-' LUcD ,-,-»t-CO'—Lu^ •«-<o u_ if- ^ Z)_J " II oct:x r)5:0 4? _|ZH- ^ ClUJ ."Z UJw .cl•-<)«• •«-ID'-'a:^o •)<• •• OQ'^ t— UJ coiuOOOKh- •«-;iQ:<i- ^(- z +2f ox i-H- II (-OZ -K-IDrDH-Z: « oJK-Z U-I- 0< "UJ

•• --UJ ••••«-00003 ^ CC <.«— QOO-'O'-» s: —-M-o o ^<•uJ.Q|~2l 2u- 2:02CD r-:^ co-;(- <t_)ujo *o.-i»-<<;o "-ill oid •-z-> — c_) <l^ mx Jfiu + coiioo 00 r-tcf. "ZUJ

000 I— •}<• _J—If-H- M-t-H-Q.^l/) UjV AH-'HOX— 00 «-<-' O «^ZU-3f-< COH- Q^II+OOl—CD •••O • '^

-if O <t f— U. «^< H-if— <Q. Z ..h-00< CLCO-. cD^t»-HO< oo-},- qq «ho 20 ujZO<_ih- • OOD <!•« \— «CQ-5! ••O •< UJU- _J f—lO I

COM _)UJ-3.» h--Jc00UJO>-O7< >-~>l— U. XU- >-<"iior)O Cii — ClJi-: •-4>u_>_J-3-;c l|H-..rH-. h- x*^" 2:-J— >2 -J o-5i(-<3:ct:uj j^'.^.^x-^ u, 321— •-ii— CD OUJD._l^» -5 rr<XLLt— Q-M CDH-UJCDO '-»'-'

-J^ OQ. T

uj-y.r xoz)'-' '-T' H- u.<i^-!'r<ior <Q "O jr^-H<i>-of— '.-•'f-i— :^M uj-rtooco -.(j-^ |_^-^^_ o(_>«»> .»o —

1

zrULUO o') ••^ Ovi- 01— OiiiH CO CD UJ-* 0.2: CO i-H .o ,-12: Li: U-UJOh- II 0-»0 Z^fUJLUXUJCQv;- 001— UJOUJV + O II *-'UJ>v-ten:-:),-,.. H-(CD»-. UJ-;;- D:a:uj2; -jc -j-jt-iszo oi— -i:««ujxoULl— ci^-^CT'O") QC-k <U-25:t/)-K--' CtH-. •••k-.2UJ2:I-I— •*

U_UJ3'-'0N + — 2: LJU-J5- LL t-.H-.R-UJ^.3f-_jm—O < •••—UJO CQstUJUJuj IL-kt— UJ Zr-^ O-^ Z»-h3QU- ....OCT'O—

I

iX2:2-5Ais:a.x LJu-y-f-LLXi-:::?-}^ 2coz:ujk :2u-i-ujza^ 11 -j»-»ujujw^H-,>.f- Ql-j^Gu.^— •-'(-i-suj<u.j

I 20<. II X5:3t^»«r3«»ciixujcoi— I- — •)<-t/)0» o-;; Qi^-xuJI^^-— •• i->o:a-^.2—

OLUHCL-joo—I -x-oo ujuj -H-ajwH-s: Of-oi-i-Qz: •co•— U, -^-^ ^•-'.J H-il- CC:_I_IH--R- U-Q t-"r-l0a>2|—0 II -'wrH<_)UJCM(—orn^3 »-i4fcJLur)Z)0-«4- uiHH(Nj»- 11 0<fO II •• O— f-

ujcn aoh-.wX2: XI- xC'Oca-K ctcDAO" au_o..qu-_joa: u,*-" CD 003 II UJ2I-H-UJUJ -j^ ou- 11 2 •-QU.Oo^iti'-^ii.Q-'-'ZO*-OC0Q r UJ<UJXXQ-«- ^-JCj^^2 2k-. OLi-—

ujH-.^-o-JO'-'M" uj2:i-xooz-5f HH II t-Hi- 2:^ ,, Qiuj-' Lu 2: 1-X -«-•-'*-•o u-s: i—QlO -J CO II O Qc:5-<3oooO<-Jt O •• -Jq:: II a^.tlQ^Q o^5:ooUJ-X-0 -JQ'.t-.H-i ..

I3uju_u-u.> "U-Z x>a -R- UJQU.UJO ••u_ ZLn^OZ :do •r-uju.u.o i—^oOCOi-HKHHHUJMt-iUJ QO-K- ^ -K-* -K- * CD <-!>--< QU.^»_< UJ3>ULU QO*** CD -<»-. u. •• O QuOUj UJ .. UJ (MKJ iO H- O Q-O (_) X oex: QC cCQ. Q. Ol

« -Jt * • ••

«• •« s•Jt Q. «K< if _J«--J )!• u.^cc »{• •—

t

•K-UJ « t.

*> «• •»

•M-O Vc —

»

* 4t C\J

•K-O ^t^^

^^ ^^

* A •M _J* II •« u_*o ^< u* n •« *•

«-o }( — • »

•K-J •« .-1 COK-LL •«• «-» • » a.•)M- «- 1—

1

K 00 « _J Ql

* * u. »-

^t • i{-•••

•M-LU Vr •- 1— i~aM-f- •«• s ^0*< * X•«-K * _J oz•«-oO «• u. UJ

K ^ 2 oxj; Q *• •• UJ \~\-•tr u-i »• •> X« O- * UJ H- O-HK-CL i^ s II

•«-<l V: (—1 »-4 *-^

* -i ^- h-'»' II• •»—«

Jco: •«• o-*i*— 0—ft-i^ •«• •*^-««iHH

II

•»(> * = -sT^^ ••_J«0 •«• -w^0 ••ou_«• •« ••O—IH-_J.~i

•K-^ K Q-_J U-,hhU_«-• ^t <i:a.oxi— u.

* •)> _ji-i(300t-t

•Jt3 •5^ CC •.u.

-M- K- >—.l-4|3 '-a*2: K- OfO1 1h-h-Q* •K- S *«^0 00*O0 •}^ »-oao~j-i-*•-« k UJ_J1 (Si 1

* * 1— LLD. UJ_J•M-s: •it- »—1»—

<

'(j'^i-:^!*-^

•«-LU it- a. ••csu.i»-(|~

*H- * 3-^ XH-:2•»O0 «• C^J_JI—03

•»* > « Z— »—

4

+•«-O0 •« UJOI— OUJr-l

CL-ff A * X_J ^ II5- II

<?«• II •« v-u. IDO"—'••

-J-?!- —• • S- t-H _Jf-H-f-D^-Ji II OO-S- CNJ » —11XO r\J

>t-OI-->v- A--• 11 1— II Q^CLoz—1<^-«- U.-^1

••<L/) ••0uju- •-••}( ^0—•¥~* UJU-O

54

Page 112: An operating system model for real-time applications
Page 113: An operating system model for real-time applications

II

• •

to

•SLH-

4

II

• •

I-

Xao

o

UJXI-

M

O_JU- •HO

UJ

• • »—

I

roxO-O

55

Page 114: An operating system model for real-time applications
Page 115: An operating system model for real-time applications

•«• -K- * * ^ * * «• « ••> --«

K- * II 5:

K- XOW>- ^(- II —* I Luiyoj— -^ 2:: * a: •• ->

^Luxi— —*Ln<i «- ••o •-O >—•K- 2:1-2 h-Z*-* * (XU- 01- ^«-. UJ<h-<xZ •»-" 2 CL^f_*>^5: <<•-" i<- ••• - UJLU oM- ujOi-:s -K- _!-. . u) wJtLUQLUXUJ Q. -R- <.Q O ••• ••> ••-_J ex:

* I— Otoi— q::oo< * uui-i in ^-^ »-* t-HLU H-•jt <o i>^ Lii:^- if cc-i >o I m o t/)

^t 0:0< 11.2: -'lo «• ••>= *- iTi •«• azK-ot.3 s: I i/> •« H-<.. in '^ O'^ Qace >-UJ0UJIJU # Q^CL O 2 f-tOO*"

.•>•« Q. 002 XLJJ 5: ii * 1—< V. UJ w^tOO O,-.•» ex -.<|—t/0 -!_, 4f 1^5: H- _J«»LLICNJ n~l COu-ii- < I

1 « —. a: -2C)H- + uj'H r-H

o.* uj»-ioi-<i-Lu ^(. w »- t-ojoi 12: _JO* X —ICXSZ)^ ^t O l/> IX 2^UJ»-' -<R-H-OCX OKI ^2 •«- <L»'»3UJ _J •-!—

2* 2XXUJ ^- «• t-< LU |-t-<a:Qr-l II 5 2UJ*-2q UXLU ^ • (X h- oO + (~U + .iX3_J« 0_J2; K-f-3 .» CO l~ < «-oiioo—

-

~^^f- UJO t-iU) •«• O t/1 O *-»-<., II Q^D. II .-I

»Mjj3:aiuJH-o:2h-# ~) •-2 lu 11 cQ "oo ••

+

0^*0:0000133; a:-)*- •• srj I— •• ^ II vrf-^ouj^ujx 5:0 y-<.-ti <• o •-•IX <t02.-i'«2:.-i(—O-K- X • "OX^f h- K-H- 0>-"-<—-OLU— II

LU* 3:00.01/01—00-jt- >- •• .* o II 2 ooorcji^-...

»—* 2<l^ii:(X -«- <l CD O OC •• ID'^UJCtOOw-j2*i'^<5-v02Sii:(-* _l 2 1—2: tx •COO -»t-i-«- UJ < 200-U o: O UJ 00>-< HO —.2«»o.q:

•K-QI— UJh- _j «<<I^ UJ H-H II— II i-iO—UJOOO••); -tcr:XXcOQ_J_j.« > •• .» UIO ••'^QQ-XrO~-U.o-H-o<i-uj ujQj >< o s ^ Sci: So: 01— r-fix»-«^UJI- 2U.I— UJ^ /^ HI ^ _<>_.»^H-cO-' 11 I—

2

-^* OOOO _JQ...X-j{- II _J 5; H-t^O_J|| Q,:0'»<^UJ•« i-uj<;i3<i~-« o ••—02 ••_Jh-r>-^OoX

UJ-)f CL_)2XXcir 3 -M- II O 2 II 2U1 .a: (-"OO^H- 1—r)* <_j.-ii— oc s:-^ i^ (xrO""'-' —-'»—ov o_J-S-51«-' HUI •l_)^l 0"<^K-l— Cl«»U^ 2 020-^<* 3:h-aooHujDc-)^ • •ujo'iQ^tiiuja: v>23 ••cr:*-' o>.K-u_ .-i|-ci:2s:u_44 UJ I— H- <3:<Xco^-'i-^~' —cooro

•K OQ- 2'-'t-<>-< -K- I— od^-'Q. I— I— a:0.-)CQ UJI— ,-»

a:-j<- <tooc)U- I— oc^- »-' <.q:ooi/520<iuj | ^u.cu vUJ)tU-5:i— 00 UJ-K- QL h- 12^1— UJQCI— GO Q»-i _je)04£- -J C*:2UJh-c2>-«- :^ 00 2 "Xl—^ O-*-" 2t-<(_UJ* <3:ujOX -'O-J^ A 2OOOI-00— OUJ-J'-UJH-w.H>t XUJOO_ji— coo -^ II d:'—UJO II

I iiJO|->-CQX22» 22U- CD>-<h-',i r-i UjOI- ..Ol-I- OO uj •}<-

h- —>O•-•^h- -<o:u.->ct:u.-H- II ou.it-.20incx<o i-o 2-«-}( ooLu ujcj ouj-«- u. ujcqd:uj»-iO<.0'-'0<i—oo<•«-o:xo> < —1^<- • I— sx Ai-2At—o I mx ••

CL**-'I- 02: O ^i^ • 22 H- .•I—oO^q: II 20—10'^ O<H-U, Q UQ:2oo-?f H •-'UJO OoL II iX»-^'«Z3'-iA II rvj 3212 UJf-,|-|-llJ»-UJ-K- 2 XQrH»-<<"l~ cOiX-52: .. II ••

UJUJ2CQ<tl— l"0:2:-M UJ 21- II -3H-I- II LU'->H II •-"-•U.r Qujsixt-ioxOLL I— .-«-);- 2: «-• ci-U- II </i(X ••_! ii .._i — ji—

ci:2:»-_j-ji-co<ooi--w- 2: ocNo •• <:o*-'q: .to a: 'IDU * (_) ujAou-Q:u-t-Q:xao'-'LLa"- II aQo >(••«•)( *»**•)$••«• a cQu_ •-'.-.-Hooo3u.f--^.-tu-.-^«»oUJ 0_J 1-o «-!--( •• cj:o Y- ^ :s.

OC LL2 O

• »>

vt • ^ .#fc

t-l ->Q..11 :*;:2

«• .. wUJ2UJ— 2:UJMS UJ..>

•—"* cxo.00^=. oro— Q-if II r-^— -I-K- .. 1

H-lUJ-Ji- co.^WK_^ i«i.^ct:u.* 2«0I-I--JC -^2:2

•-C02->> OlUUI— 0.-H-K- iliCC

E — ^i CQO •••

UJ..-*- II QS 1 -K- 2 "2«H^2:« UJ^^UJUJQl>-.-«- Xi>Cl-SI--}; f-«--• o* 2:.-OC .rQi-}? f—lUlS3— ^-^^ rOQix

= 00 .j<. i-it^r•- ^-JV V 11

'-= UJ-)i- —^ .. ».

= — I--K- :»:o—UJ^-H^ •— f<~i,-»

:^ i~q:-«- ^ i—U—— -•S-Jt UJ II 03ujq: ^ q:..v^l-S.'-J. Offl'-'•— sO^t *"*

0:2 II -ji^ U-2i<irs t—4 » «

-jf »—

1

—<(—<»-•

OUJ-«- Oq:•»Ujr->l^ UJ 2lu^-<!.CQ»--^ CO •—iCOOO:S 00-Jc

OQ<J UJUJuo_i-« CD 00 CJh- UJ = _joOO-^-^wQ. 2UJOtjU-UJO UJ 03Of-KO X

2 2f-H • »|—Q—

1

uj-j^-io:—!:*^ 2'—X.-H 3:-^ 20UJf-H-l- •• 1— <l 11 22-^ .'2 -1 r •'=)

Or3oO-»3CQ^OII t-*r II i<i II .-1

U-'-tX •-• ..^.. II .»

II < = II —s:— .'O»—1 «t »-• v^ «» i;: UJ^ CD2

»—lUJUJi^'— Q^—iliUJu. \-\- 0:02:•—iq: '—'•—' 0^:1— ujq:«»oixcfooou-oroo

••u.3:su-o>-'OU-3

56

Page 116: An operating system model for real-time applications
Page 117: An operating system model for real-time applications

>- r-* ih ^-I Q ^/\ *O — ••>•}! II ^

UJ O CO LUif-^^OTJ-oo«»- q: o 0.^00 •)^

LU O »•->{«— Ct-Jt —

.

O-i O LU -J-K-I-UJ-J^ Oo»-< < oo i/^*2ra.* Q

•-H U_ LU LU-J*- Q-J<- H-

a:«-t •-< o _j-R-cDa-}<- 2: •-.

LUOO II <-K O K- LU II> II •" 00 •• >^-3UJ-M- ••

UJ..Q (_ — -Jf X* ••> >*~<^ LU ^ CxT-K-OK^ _1 h-

XOLU 00 D LU-M-Z -Jf 00 OC

CJOOt.^ to .•>Q»»- LU-R _JtJ-« Of. 2:t-H -^ Lj»-.o t--iisu:-n- uj t-H

••tvl rO ZcDZ 2-K-<U--R: CL OCOCMQ CNJ •LUOUU >-«)< O •«• tj LU« •« O -3 -K- LU^;- II CO

o-)fo LU 2:«- •• ••-«• LiJo^(- ••

CLZO Q- LUt--2l— Q-«-Xh-i* — IU«»LLLUrH >- XUlX 0-R-|--JSt •Q OOQa:_J+ H- •"MXfvl — -k oO-fr LUO .j::^

a:iu »- H- co-K q: -jf Ow lulu"Lu + s: o xcj •• <i*a<-«- cct-'^HCf— "-ex: M(— LL.-- I— -K-LL -K- .»^-Z QMh-OI— '^< OQ- CD* Z-}tLUII»-< iCQ 000 r-IO OOi-<— O-Ji ai>-5{- OT« LU

'-LU II fH oo 110 -^^ —< «<_I_JQ •-H-CO_l..r-^ '-Q 0»-->0 UJ-Jf OCLU-Jf U-LLOOZ —iQi<Q.Q^-* CQ<a. OU-.-<< 0-5r LUl/)-Jfr II H- II LU OOK-5:OoO <LiJ DQLU Z-a CX-^-ii "Z" I

a3<oooo HQ^ ••'•-•wq: uj^- lu4VO^-'>«» ^^(_)oou^o oj OOQ a:* 3 •« -J 1— h- ZQ-> en ouj II III-..* Lu-K Q- •--jfLL^or.D •-'o ••

^LU'»> -)a: ,,"CQ'-' LL* oO-K-h->-< o—LUa:2LLJ w3 LLU.O'-H LU-)i- OfZOZtU UJ|- ..

O^LJJ LUQ OLJ-5LJ Q:f^ Ul'-'-Ji- H-iLU*-'!— CDZr~ZO-J'*- OLU -'»-< • — {< XOi* CDO -<DLUu-ia:(M 20 U-Q. UJ $(-»— LU-K- . LUO ZMQio + ^f Luu zz*-" • 2:* a.^>2cao lu..

•"•-'ocxc-^ d^q: h-^^ c^ >—-ib'^ *^-'J-' -J••

u.a:02: luo- ocD*-— i— -JS-lu^-k-oi^xz •• i-qqLUCLt-iLU LL LUUJ— 1>0 D^*Hq.-«. I-LUq: QZq: (/)_) Luoo cDcdr-ioo -{frju-^Q: xlu -Jwlu""OO II -. O-.h-i 00 LU-JtCL -Jt-lijOl— CL O0|~UJHH..+ wx z:zwcD q:-)! :r2-«-o II o az ••

-JXOIh^ H- UJLUQ> 3-M-DlU-JtLU-^-J II ^»-iOQ.(— eJO 00 XX^-iLU 0-R-02-JI t—Q^ •• " II

5:-»{-»-'00 0-«- »— h- CQ LU-«- •)( 2:OA> Q«».«<H-00(/) 01— O ••• Oh- LU^--«- -"— Ctl— *-_J'-ooz II '—z o—1-5LL oz^oc-a- H-LUa: h-ooqUJ2»« ujz II II no q:lu^-.<-k Z20. 2 11 Q

LUS:>-'H-. UJJ-'-'O-Q. ..H-i Q.S(— I— 4{- »-•'—'OLU »-i..^-ocsioo 0:5:0 ulo Sq:oo-){-o 00 >h-IDOLUOO 3 0'-'-'LLLL0 II OCU )*• UJ LL LL _l LL|—

Z

On^cDiy) CJo CQ •"••-"-• •• Luo-M- •**• ^ cQ>—'(—iiu n-ictit-H

LU LU O00 UJ00 Hor. q: 2Q. Q. . 1-4

57

Page 118: An operating system model for real-time applications
Page 119: An operating system model for real-time applications

— uj o •• •• «S •• •I— ---l— C —. ., 5

•- (_ s »-4 y-cD •• E *— ^— r o "o: oo^- o - z >- ^Z wu. frPIS ». H-"^U UJ S.c E 's.s ^ ^•«• uu •• •> r cQ-'t— I/) c/^o *- i/)0 E r )(»<•>— 5 2 ••> O'v.cQ ^ ->> UJ -5> «^ ^. 4f.

^ K-. O'- .. .-J—-o UJ u.< I— 0< UJ ^ 4*.

jc (X •• -'C Q.'->'s^f\i~> o £!::•--<*-—$$••• -w-

•K-so t— <ir K--jt w <i wuj cc wuj M ^ ^ ^•« uj<s _j<i^«»ql w_j -jz «_j q: }(• —

-Jt

^ "-al M*" a:s |~t— s Q- ••-{t Q- •it o^ 3: ^(- cl ^f

.)f-^u_ »-<ni uj<^<<2: »-< oo o:^ •-_j03: ^ q z:«- -»•

It- UJU- _J>_ •• >UJ^-t— H-i _J«»< CO 0< 0UJ0<: •••-it Y" ^~^—

»

$(

•){-2:c t-HK-it Oh- w-<2: 00^..o -^to ••'Z:Qf-(t/) '-q •>»• uj os «•

^t--< \-oC'> K-<^f I

V, 5 «-5 ^- ^UJ + w:: ^z 4(. V-. tu }(•

*H-t— DSBf UJcsiOH-"^ O £ q: UJ«- r lAiUJ*- E UJ -n UJ COS •«

•M-OO •• OIS-lh-CQ UJ= \ H-H .-JHZ « • ^ ••»•

K- •--' 3 Z < —OO DC^r H- <o = —o<o E • « -«. OOJ o*}( r •• O-'-O i—'-LULT)-) U-UJ«— _J {JilLI —-^hhOUJ «-^ ^ ^i. Ql— z^K-"S 0^»-« 2:—.(— 1/> U-H-LUOO ^1— UJOO II 2t~ UJ^ 4(. CL ^_ UJ*•}<-'^ Z OH- UJO<* •-•H-U, r3»-« |_CU..3h-. |_l>0 ^ .^o -Jq: *)( O •• -.-K oc_)(_jh-»— octi>-i «. c^ix -"Ui/iq:q: »-<cq —»*— _JS •"•»}

^{.ujh- I— ^vM QcirH^Lj:^ >3:ct.n »-3: qc~j-31— 3; (xt_) u-uj Z) -^-m-)tt/02 O— t-H U)V.rDK-a. <T 3:«» ». -?Q10 »• 3:"5 t/' CJw 2: ••• Cl*•M-5:*-* I '-i Q-^occQX r •» o r2 v.»->s 2 -. :p i— cq ii q a-«-•K-«— UL 3-^»-« r -»H-0 •"-.lu t-i "OO -1 .-'Ni I— UJO r ZOH-itM- C O-lTlH- •«-» .--jr) .»Q._l-^O0 .»...0 —.-5.«.,0 ^-.00 < «--j ^UJOt-H-Jt^(- UJ »• 003 ujinr «-0'-»>-<coa.:^ ..._n/)ai ^u_—.oouj "—~5 t— t— »- cl w-k-•JJ-S.H- O 2:0 ••0:= _)U-»-i ».-»ujq:icq ^-^ocy—cncQ —»C 1/1 clq zj ••»-j_j-k-^-•O •ouj>-,o..r X L/)u—iQ.r 00 r-t-.'UU .-HM II i-i Q.-^—lO*•K-i— h- r +^f— I— oo-^t— E u_xoo.-> +-)i^

ID00-5Z I

w- LL) *'cr> i_)cl3U-i'\-

^ CD '~.KH»-<aOUJQr w-u_<.»-i_J= to UJ OO^"-" UJ (/IQ Z3 Q-O *-02X-«-^5 _)0 ..UJ a: too^:— Lu :?r_u_oow-)ox (X)3 | ox co^ lu 0-3 o^Q-iiii-jt-

H <l~) .-l:)-^'^ 3 •-4-5CZJUJ(-E • LUU_U.If- OUUJUJl— CJID Z3 H-w UJO f "*R. CO f^UJt-H e. S —. Uh- t-o'E ^ I~H-Q:I3 -00^2:13 -JO O UJUJ H-*-^Q.-«-K- OS = t/)»— UJ •» H-uJiXt-ioioo . ••^-' II uj,-(E a: •-•ujr-tr -ho: i— Q._jclo*K- _J 2:^)5;-^ •• 02:<a:3:cLQ.ooi-.Qi ..r^AUJ— •1—3 AUJ«— •• Q .»-. OOH--?^•«-0..= -Jtt-H =(_)(—•-<22 i-<'-.o.UL3;ooot/)0-5<- = OOtOOji r 2S ^oi UJU.H- m^.K- Q— CLh- UJZJH-q: .».J_Jk-. -52:CD2::oO wZcQZtO" < =3: -J II t-H «

UJUJQOO= *^a- ID "•-.oooo_iO.»u_UJO<co ..-K- ujo<cQO •• hh..*-.*^I—* Hh-UJai>-.— 5:OCl|—^= <^)>— Ct: ~3>-'OUZ -3»-<OUJ I— UJZ XCLa3->.-«-

•jf ujt-ii/)«- -UJ •'V^Zw-r ox <i/) oo:Q::-5UjujOt-(Q:-5oo ..-oo ZD^-^ ji:i3<— «-

<* -JaO'^r f-C5.UJOUJ = UJ<t— S CL .'Z <0110_J2 <l^-^^Sl 0^-^ UJO CLh--***a.:s t— ..-<<2:ooE —'tr 5:z*-uj'^ u_>^£h-i u.>'— "-^-j I3u-' •'0~>cl-«-

t— -jbs: ujooDr:_j>->Q:2^uju_r -lUJXi— co>-i v^ ii c>»-i ^ ^ oca — o-K•ft (_) ••^1— Uj:SQ:H-<I<lLiJH-U. ••U.^-<0> .»UJ->.UJ ..> UJ—UJ I— = "LUI— -R-

l/)t O— -'IDi^ UJOZ>-<f—— UJ t-i2.oO<I—._IC\J5:_J< .'—IfM^ Oz: H-O ..—.-J»-HS.•« ^- t— h-0.2: .*>^-Q:a:t-'or. u.5:u.a: a: (X-f; i-iUJ —.0.^1-4 f— uj 2D q(,-.»_.-.s--J-^UJl/)0 (_) '^0~-'^<Ct20'—03= I I 05.-J» (—Q I 05:^ I— > UJ Q.'-XCDUJlu^f- H-ccicnr)^uj-. «•(—>3 f- .•ujOo<a: xo<lh-( ouj >_j u_o-:s<i—0-)f»-"U •CL-jf. 2:UiZ)o .0<-3020S:Q..-ioOOh- .'3--^ooo>— .'O UJ-J.»Q^ID k—>-<

•ifQi~5r OO"—'EcLOuj •.-»2*^2ujuj'—'U-v, 1—«t—i_jo'^ »-it-4_j r idos cl.»—jo:ct:-^^ 01— »—000 '^uj -^ xt/iH-ct:-. (rxujt-"-» (/xujz^t- wsz—o—w^uj.)?. _j.._io f-

Io<r '^i:_jo_j|-SO — = I

3:q -^= | scjuj-k ujiiujuj^eqo-K •••<o<'-<ooo.-iq: '-•k-.<io< w- in a: i

in .-.i x* "i— r h-Q[:»«»-i.»

.•IXI-J5- '^H- 2: H-^ *>»•«• "^^uj •^h- ^_o^-o ••)t 5f o tooo 00 -M-o 0000 00>—« --.I-.-. .» H~4 UJUJ CD—»— H--K- r oz)Ouji-'C\i>-.uj:>o I oOr-<o AD-2-fl- ocQoo:>-5-JtocD<^>-3 -k^ e arcL^Dii—ZDor<t2-«- i-CJ— I- ^ H-<'-tt— "^1— -K-

1— ooh-uj-w- »ot/)<u_-{t •Oto<oro-«- 3:oa.3:cLuj-5\—*->Z Z Z or.S <_J\_J<= ^O— E CLE CD_J_JE +-1^E CLZ +-5^<-E •—VE = |— O ^3—

E

CO —«——0~-0<UJ<CO^*— t— <~5'-'»-'—'CD*^Ci^^"**G^t^~'ll —'-•-HoO-- II u_w-*- .rUJl— .•QOUJ«—2UJUJuJi<iUJ2V-2:t— ZUJ-^a30UJ_JUJ-5 II UJUJV^COUJ ..UJUJV.COUJ .'OUJUJ— «— UJ— *-• h-LU

UJ>-.H-h-t— of— 30»-'03HLnOOt— i/)H-q:X ..(— SIci^Ol— i/)l— 2:'-'Of-i>0*-'l— t— E cC1*-e cDO'-'t— •»

oc:o>-i»-'(-i<^ct:t— I— h-ci::t-'0-5 0t-iu_»-' <_j»-ii-iO-3>-i-5>-i»-'0-5>-i"i •-it-, ot— Ot-<ct>-.QZ)UJo;o^c^cQcxHE oe H-Qi •wvCQ:u-ci:u-2:uja:i— -< a: D:u-ot:H •-•'-' 0:0 u. 0:0: r -jcle ~3= scuzc_)cQ3:3:2E :s'^wH-4w^3: +)(« 3^3'-'E a30oo—3Qi:scnow3.-.»-.3:s—. nww^ 3ujUU UJUJ ..UJ UJUJz .•

O I iQ.H-HH-'-'OO »_H l—l (—<

>—1 1—1 O >—

I

Of OfX I- a: q: oi UJ :xi

CL 33Uj3Sj:cq

58

Page 120: An operating system model for real-time applications
Page 121: An operating system model for real-time applications

it -Jt * •* *» ** *•»o **IU *•)tl/) *•« 3 ^* •«•

* • «•

•K-s: * —•«-<j: •«-UJ

•X-LU •K- «/)

* DC •M-_J*>- *<*t/) M-LL* •K- II

*»- •«- ••

«• z> ^-^•«-CL «• Ql•M-^ •K^O«-.-• «-o^ ii —it i- •K-OfrU * -JK-a: •»-LL

fru. •)to* »t O^Q ^*< •«• •-

•JtliJ •W-"*a: •« Q.« o-.^toJf^UJ-K^O* l-IJH--» —« UJ^-i-S- Q•fr cQo:^ <•«• S-if uj

it^ •«- a:

K-<U-^*xo* ..

ft- •*l-^(.t-tLU^Q:

K- »:»•<^f LU =))' H-•K-a.»-4i-oo*>-<l-»- •'

^H-UJ^. O•« LL-)fl>0

•x-o #

al GO ••

O 22:0U. UJUJ •-

oOQQQQODCJOOOO— —.<^ OLULUUJUJUJUJUJUJUJUJUJLUOO •—ICNJCD

c.jrvJf\ir\J(NJc\)<Mc\j(M<Mr\j(M .2::2z:^srz .-o**CL 5:O^< Z: a. S: O •-I <; 2: LLO lU LU LU LU LU LU r-( ,H -5QMHt—«^-^»-^^-^^-.u_U.U-LLU_^l,Oi5: fHf\J || :2

,H"—li-H--^—<.Hi—It—lt-4'-H.—I—< *"-C\J(\iC\i^\iC\iC\iCi^^y^ '"

CL5:o>-'<iii:cL5r-0>-'<ii:u

q.2:o'-<<i2— *~-i— c:^

»_h-4>_i>_H-.»-<u.U_ULU_U-LLU_—.OOCJOOOQQ Z0'ooc3'OOa'oooc3oc?'--( ^ »• ^ •• b-<<2:lu

OQ000 0000000.-1 0.5: OH-.<iZ 0:0: CD'*<< <3.<;<<<<;<< <a.<o 00o cj cjoo c? Lju Lu uj

UJUJUJUI1-L)LUUJUJUJUJLULUH-H-^-'—"—-«— II II CQO(XQ^oiarctiaio^oiQiQiciiarooCJiQOOQQO .. •• 00uu Lu u J Lu uj Lu uJ LLi uJ LU lu uJo—< <i<< <• <T ro roO— t

»

II II II II II II II II II II II II t-<ZUJl-LjUJUUl.iJlU.-ICNJQii:0• • •• • •• •• "OUo^cxtxaicrQiOCi CJ2roc<loirr(r<^nmrOfOrr)rOfn »-oujujujujujuj'-'>-hOOlua.2:o»-«<2:Q_so^-'<2:c/)< 11 11 11 11 11 11 00 11

*=!

OOOooooooooO'-'DCfOrororOrof^ .*.»'Oa:>—

....».,...•.».».».».•.,.» .-oaOOOOCS'CMtM fXO-^-^^-^-^-^ .-^— .CuQ rHIMUJ-^ 2(\lc\J(\|CMogfM(\jrsl(MCNJf\jfNJO •••«>••'••.^-'OO—iSIOLUO- 5:O •-'< 2 Ol 2:O '-'<Z C5 CL --•—.—. '^— -^ •-' t-H -. LU ^-

_,»-4,_<i-i.--.vhLjl.u_u_'-i-u_U- •o(^J(^^Jf^<^'^!^OOX^— ••

0OC30O0OO0C?002-CCL2lO'-'<2: • •'3: "Ol— 2: -P- —I »-'«- 01x1 LU o»»..»»•».-*.»». t-i Qrooooo.-t'-H oo—) t-i-H- <; «- II xixo:^r-|,-lr-H'-l,-|.-»,-4rHr-Hr-(_|.-l_J_J f ^ - ^ - ^OvJ.^t/") X w--«->H"«- ' '>- O U-"

Q- 5;o -'<t: z Q- s; c_)'-'< 2: 1— -'f-ir-<i-i rH,-Hr^00-* • * « o ^- 00 -r;- c) z:

M- Clt'.h--W- Cl.^>-"-'t-.>-'>-.K-.LHj_LLU_U. U. Of—a.2-0^<-^'—"-•00—» ••• <.S<- < -( },' — K-.f\j.»

^ <i;oO^ Ot-iOOOOOOOOOOOOOZOOOC30C300<^>—ta.h- UJ* O-M ••mOO'-H•)fO'-'^;oo——>-——«-'-'>-'-"-«—^^^'—-'——*-^ —wq: orifto -i^oiiLu +)rAO-«- ujz2:2:2:z2'2:2:z2:222 5;2z;22:z:2:z2:oo2'< uj«-z:_j-)f r-tco_jo* It « arcDocjoouoooooooo ooouoaooot/^oi— ^fo<-«-0[^o ^<i

•••K- '-'(—K- UJ QOOOOQOOOOQOO OOOQOQOO OOOoO LU* -iU->v UJ— Zl— II

ot^. II _j^f ejuL<<i<<<<<!<<< <<i<t <<<<i<T<<c<<!;aQ< ct^-K- oom-h. oa:ujz: ..

LU^ « ID -}(. LUOlJJLU LULU UJUJ LULU LULU UJUJ LU LU LULULUujLU UJIU I U> LUO 3 "K- L/0 0(1 -it LUO X3Ot-3-«- »-'<i-K- 1— q: DC cu QC oc o: q: q: q: cc a: (X c: a:a:Q:a:cr:Q:Q[:(xa:uJa:»— q-k- <!;*-<•« i—'^f- <<:-K — LU-W- ^O. LU* CL^f. Zr-I (NJ

lUH-OUJ-«- t-oZZZZZZZZrs^ZZZZ ^ZZZZZZZZ .'ZO Uf-OS-)r -^ II <f I! ••

q:z_jd-k- o'-"-'»-i>-<h-i^»-.>-ik-.h-.^^-.^ ^ _.f-i<-<H-i —•-,,_,--<.— H-.0 o2'<Lu-jt- .-III..OUJU- «• Zr OOOOOOOOOOOOO OOOOOOOOOOO o^LUlu I'r 20.-it-t<I.

UJ5:0>-?( •-'LUUJUJ LUlU LULU LULU UJLi-'UJ UJUJ LU LU LU LU LU LU LU UJ LU •LU.» Q. :r Qi 2 •«•-"-O II

a:2:OCQ-J(- OLOcDCDcDcnicDCDCDcQcDCDcQCQCQ CD CD cD CQ cQ CD CD CD CDO cDO iLUJ<4^0 Q^ ••

ZDO -8 Lu< 2 a:cj -K- LU u_ u-o cNJ

do*** EDO "-• LUO-H- -K- -n- CO -••-> u_oUJ oO h-CC Zo. •-«

«*«•« *^ M-

* JJ-*2 **'-' •« ••• •»

* •« >^o«

* I/) •Jc—.->•

J4-Q K- fM-5•« < * •- ••

*iJ-i •K- r-l>-H

.*it q: •K- •» •»

'-if •K- —ouCNJ^ <-s j:. o<<:O-Jt- •W- 2^^i»«^

«-q: •«• LUQ_Q.h--«-UJ K 5:s:-J4«- \- if- ...LULU

r>4t UJ * CLOCI/)* 5: * H- »-UJ-M--^ « oo*-*^:.*Ol^f-Ct * ^uo

«-<I •«• <~i .-oz:UJ-«- CL * f-.-H<J.lU

3* * UJ-J-K h- ^ ooci:<-«-3 •K- o<.>•« o. •Hr .-o

•«-z •if • .Ci-Qa:-K-« )f —s uLU-JJ •R OLUfMo-J^o • •K- *-o ••

UJ-X-OCUJ-W- z-'-J..H--i«- •-';2-«- oo^-.a^M XU-ft- 0<H-H-f-H*- f- •R- <iuj2:oo

5t t/)* UJQ!:3• r-K- LUi-•}»• a:r-<-fi X * •••r-«

O^- h-LU* 2— M« (::«:»} t—<o ••

ct: « o lu -«• o«--)uu-»i H-X-Jf UJZo-«- H--;;- cDOo:LUHf lU « oo(-•M- Z3U-* .>-2<LU_ ••

59

Page 122: An operating system model for real-time applications
Page 123: An operating system model for real-time applications

•K- oo «• - • 5:j: •••2: — — r-H X "• u- £ •-

K^H- -K^ -J •-' '^U_«»'C IXJ— CM v^E -^ CJ _j o•it -J -it s <i a '- c o*"* •'K t/) c\j .« o— z t-H -< E 2«• < •« uj»-' ovJfO £ fNJ"-! '— siocoo t-H r a.\— _j » ii: lu j-*""^•}{• LL -k f-o:: s:»-' —' ^Lu LU 02UJ c? m rD'-' i>o = d i~ t-<^o.-jf- uu ^f (-<•-» t—iH-. UJ u_o I— ••..«3 ». i-H h-ci^ f_ -^ -! d::—2;o*0 .{f a:cL 00 j„ or ,. _< rvj-^QT r-4 uj3: C? n --< o^ 30UJ||K- }<- 3:^ ». ^ »_< ».r\j a: Zilrouj r\Joi/)'-»,~tiiT£ O-*^i- lu ^ lu ,-t<\j IX i-4(-i *3: O'-'o: o ex: ••> ;2 w .. ZO'-H-K- t— -Jt^ •••A s:»-i ••3: .K^LLfV^ ••or hh < q-« O —J »-« ••> UJr-(a.Z«• <• -je '-. II .,.f-.H-ir<"> —U_'0<t^ r-l .-LL O O **vU_ LU LU —» X^_jO->(•-< •«• s -4- .-*oc3<.«-E o »-u.— 5:(\jo »• t >-iiL H- > or. r hdooul•){-o£ -j^ «• • r ^ •»-.--. rHOrs Gi'»-< s • —O f-<iuO-«- o Qiiu.^ Q. •}{- ^[ t s: .-HOC Z s *-i - •O'O ^•E,.oC_ILL.-Jf Z: C\!-^..•)f O * }(• • S — •-' » —— LLCNJS .-= ••^ >-< 2: ».S 15 '-a- O A-'-J''"4(- a: -K- ^ _j w-f\j>-<c\js lu 03 <«--—.—'»-<— cm clO — — -fb o u_luoo*-.^t Q. *• -K^ <; Lu^o<*-'H-w »-u-UJC Lat-.— w o o^u o 3 = -u- uj 01— ulq•« Q- •«• •« 2: H-LU •(-.UJ^LUE Of— r-IOS CM OCn O a -Jt- I/) ~i<LJL* <l •}< Jb ct »-(q:= Oh- cxct'- •--<;: «••••>— -< ••u- .» »— * OXi-JK- *• •«• O orO'-. t-<:soo.-Hci:.—uir ro o = lu-^q. :j ^t x LLii:<!:o•R- to -k ii- ^ so-j-rHn: o>-i<3iiJor'-«< .-.t-<^=00«'-«- o i-i3:?-~3«• •)!- « A —«-<3C">—— u_ h-or^O — ZDDf- O oo«»-a- < a: •* t/^ •)* -K- II •• UU»-< ——.LUO ••••-<Or-( •• — <. Q.OE 2'-«-R- LU •••H-Sco^ UJ ^ jf rn —.r Q.o»»-E r o- #-—.a:

wcm e cju-»-_j c o—.-r- ••h- .-luw* 13 -R- •«• • 5 •>• »—'I/) ..>£ rOS— LLJ<.e » O^ UJ»-H • -<-<* LU-^^t Xoo* _i * -R- • oonn-E roa:fOH--»^ e O-O-^ro llOh-i~ q. »—«-««• tDOo 1— i/)

•K- < * ^(- t a'Q-o-*:^ii-io-OrHLL .^ ^>- •-= ,-1 3 oiiJ'-H^: •• Dor-jv <.—u-=«fc o•W- > *• ^—1 u I »-•-' Lf'>»-'h-u.t-<'-<o^mt—'--» o oca:3 £ c£)H--f{- a.uJu- —ico•«- * o:< h-O

---OujO—— •-= ClO<S •-• <S> OU-S •-'X-K- CX S | OoO>•M- H- * LU*-" LU ••—.J ••5; t.-—_J(\)l/>0»-'0—O 2 >-< (XO* •--Hf-'LLZU-LiJ•)!- Z> •»«• H-t- SOvir <1CM<C\|E <2CX — LU »-i —£ .'II h- «- -*_Jt-U-OLI-* ex. »<- iu2:"<Q. ».>^a:a. '•>u_ujcM— £ f-cvj £ ^.. i/)£ •?<• oi/)2:Oox«-* z # s:Lu-~.Q:^rn(Xi-i<u-rO(XOH-a.£ '--•—I u. .-o-itis: -^ •-' •)< ijjiiiu<io•K- t-H -M- <Z£ <ooujoci-Oouj luo •'Coq:o :su(y") m o •»- ^-o 11 "Loso* -Jf niO Q- ••-'h- •• u-i— f-15: «-o"ir-(:2>-' Z t-Hj— 5:0: CM -jv cDu! ..a. A"?•K- »— * <cle .-<oz'r-ic0r-io:^z<'-'O— o _joT-<o — . t— £ ^ <icx:Q_j a. 11

* 3 •» O-X— cnQ. i-i^iOCL •"-'LLCXCLO_J . • O h-UOU- 5: _Jw--j( h-Ll-O'>0£ _)••M-U « IUlUQhhCNJ f-.-5li-(M 0<0 <^r-« O"-- (X Oi:* CDU_-J OO^•»(• •« cnAi—>0(_)_J0 oo_J ••Q. •rM>£ •-* o OOE . < <!:o!f- •» cj zcx. o)«• oooo-K- •»o II -< •-i< ••> »LL<£ r LJcs: o - f^-^ o- luuj-ito -jui .»i-<_jll^•«• LUCrC-rt vO~)fMCX_J= 0>£ 0£ 0>'^cn—OUIE i-i E £ tJlZ LUH-^ti^ «-UJ Q-0<>T-<LiJ*t-uj-?*. II -if •3:<i—. «--.—.2^ ••'-'fMOvf- ••H-^o -n x< •• o o>— itLu uji~_jLu •• s:«•-<»—•}(• ••>t • >,-it-i(XvOLLir--r-t(X>-<~>'-t'-<ZLu »••« h-"^^oo V. r (X^ OZDoonos .»-<

K- fXtU-Tr UJ-«- fcx—oa:—3—'Oa^— "-^O^-iH-r -^-K- •-•O LU ,-, >^s-W- ^Cl. • Q-t—« :ss:-)t- M-}>^ ^-.Lu>i-.<i/oo>-LL<iooQ>.o -i-^e •« s: t—o lu ;<••• luscj^: "-JzJt- <

.f*.H-. -Ji- (X £ H H-O—H-UJKO—'HZf- "-JIXO «• t-HLUQ-*-" _l H-2-i! •>? £XOCJUJQ.00UJ

* >- cx4 <^-^f^ cj z'*-! — t/)(X»-' •— oorD>-i£ <3:cM£ -jt _jc/^r5—I <: ^--Lu^i-r-i ujo*^x>-< +

•te -J<^(• 0-)i-U_£ »-'CX£ E U)U-CX£ £ LU0Q:^> —— •« <:(Xt/0 •-< OiX-)t II LL I— _JCL«'•R- CLCL-Jt —J**-"— 0-»—'3 0-»— Z3(XOvO«-< ••'-HLU-st UJUJtX H :Sf-4t ** UJOCt OO^-iO

••jt 2: 4v Lu-R- i2mOH-<mujOQ<-'C^LUOO>-i>-Hcx;^H-l— »«• S—iluiu .-. ^. lu cxuilull joa:-)}- t-ii— ^ k-H^t 3f— LU(X~ f— aiLucx*-!— uj^ix^-cxmot-i-^j- •-'UJH-^ 2: •• ••"— ^r "^ >-'ClOllOooou-i-K-oo3-j<u--}«-A^-«xa.ai>-'(Xxa.Lu>-'(XoQ-uj<z»-iC£:-«- ^f_(X2:»-«"~''-«-»»-'^- hh oou-jOLuu-r-iI--R- Q1.-K- h-* II Cti'—— ^CX »-.—.5:0: <1--:S

U>—3-K-E2 •-'I •—££"-^O0 O l-VQiU- +-'•K (X2!-<(- Z-fi- --HTSU-—"-"SU-LL— »—3:U-CQ——— ••— ^ ZDO—— £ — <J-K- Q LU« Zf-U, II QCtrt—U I •-')< t-iTitE EEI— 0££»— 0££l— £CM£"££(XV.££ ££E—l-«-_l Q.H->-'2f'-'-'»03:2^H- ^- -M-w.rwwr).' w.«r),, w-w.3.^^v--»—w—_wwr .^w ^LL^j^. LU t/12: o Ci--3

LU.-(_J-*«- ZE lU'-lULUO-'-'OLUUJCl.'^OUJUJCLLU>-«LUr<lLUUJ£ — LU LU—• LU LU lUO «- -< LU2Ll-fa>-H II

LUSIiX J-K .-iwHE (_(— (j£ Zt—HOE Zf-HOI— I— CNh->—— £ I— H- LU t— I— I—O «• U-. LUS -'U. rS-J «•

tX 5: IS< -it O LU t— t— -I t-.— — t-HK-— — -(-I— -<._H>-<a>-'»-'LU *»-.»—If— t-HK-ii—i ^ f— (XSlO r3<-OQIDO «• LU (— QiZ (X IX r (XOC— £ (XCX (XZ (X '-' Ct (X f— 00 tX DC .-. (X (X CX Li- £ Z IDCJIUU.ELLOOO-M-** CD'-':S<S-S£ —= SSE — £ SSE 3<-J»203 :2»-h03:3:X3 3 S*-"- »-' QOCQK-.WLL-JUJ cc y- q:*-! 3 UJ LU

O S L/1 30 >- OO Z H-. oq: o (X a:

Q. O so.

60

Page 124: An operating system model for real-time applications
Page 125: An operating system model for real-time applications

•«• ^<- ^i- * •«• ** «*U3 ^* • **_JtO ^•«• h- •Jf

* •(/) Ji• »

*Q-H-i * :;*<o * o .-

•«-5: 4f or r-t

^«- -J * II II

•«-a:< if 0^ •• ••

*00 •« -.0R-a-'-^ •»c _JrH<•«• oc: *^t/)HM K 1-0.«-»-Q- •K^ 2wO*x^ •^ 3i^ II

^{-<UJl/)-«- 2 •• ••>

•M- i<i-«- t-(<_l —

»

*0(- (_)«- II _I00 _J*zr)cj* • • CDLU •'•_)

•JKQ-.-•* <l U-'^^ID* i^CC* T-xo-z:^l-OHH •R- o<i.otJ-U.1 >--}f '•o:2:5:i-_i

• • S 00 ••> HO S^f II _!,_( r\j .« Q .» .-o ••^ •-••a:*- II ••> ro o (MO (nj

I— II s —CLCt .. 02: a. II 2:25: zO't"—irHb^h- (M •• clo««- u- o •• I—<<io 11.

LU^oc-tOX i-Hvj- 000 or <_J I/) Otxo oi/xro.—<(_) II -< II H-'-to II Q. •- «—2 >.

wOOCCD •• O" 1/1 II LH •• _J UUa> rHUJ< r-<

1-0:0:1— E '-^ (NJ o •• II ro -< XO" 21— a: zc/)i— U-I II r r-H ••a. -.(NJ.. < ^_ <i>j- »-<<—. Li.

"•xiJ-u-'H-cNj inu, oocNj LL ^i 5; II oouu aOOr —Ow lie* "-CiKi or 33 ... .. .«-2l— w» ,-<tt-^a: ., .••O'-o II ••> o t^u_ 2:iD< s:

!—•<«.% i r-<i^f-- .-imtNjLA' I"- .t r-!o 1100 oa'.ij o-Jr -*i~ *-•(_>X »-i II II II 11 Ln .^fT) II 2 ..o"— 01—2: QZ)3^-cjq:<o *-*•• •• •• ••

II r-o-^ "UJ 1—00 2: ••O 2<CLw>_,|_cQ OrHULoO'-f.i II u_ i»^ —III <-«a: <LLOQioxs •• Q.ooo'~<"C? •- t/)»« q::'-»i— a:LJJ^-h-o;o II s •-u.t-i>-<o<Q. II 0:0 u_o — ro •• —ozxu- "--t ooc^o .«^ar«»-«« o II •- -! mo.^ uj

*-<OU_ '-•UJ tNJ ••0"0r0 ..-LL .to •'•-H |_^-<—. (_>-LL E •-r-.Q- II ••fNjvOiTiir-iO q: '-no <ioro <COS »• II E r-l>- .. mil 11 II II LL liJ"'>C,, II

•• o »>-, oII r «• "—I— (NJ II •#••.,#. Of H-2—Uj««0 2(NJ>-» 2

o.to:— (xo 2: t.u.cNin)c\j II •-"-'^i.s.cyo 11 »- Z)U-Of 3uy-oo I— »-' *-i c\Jos.Q.(Nj" (^_Jijj*-<co ..o a:>-i •. qit/irnzr-toxr c? »-<cj)oo(-JfO sri^cy-h-o-. 11 i~ucnj.^ |—

•K-zosr-jr ooLu II uj_j :d~-i—-t/oo n u_..-.»«»»-f2: iioo~3>3-«« 11 -'-^ 11

•—'(— S;-}? LTMJ- •• ••r? ^^CHZcyl*-^ • •• OOLHrHOLL •••• II -<»-<— I— .,r-)>-<0 ••

Lu_j :z)-};- vo ••CL_J2: (— ^t~2:.»—. in •o n 11 "O a:— ••11 1100 ujn-o • luQo-Ji II '-t •-•_) ». a:XU-XS - o II ir>o«« ..in n ujin-^.i •»_jaQ cct— .-—• a:

Zi^< -ji- ••= —.—ir)_i Luoc o II Z3rM ..II in'-irsi II ,. o— :^i:^— t/5UL I! oorHUj a

2UJX^-5: r (/)2_j f- II ..cl—' r-4 .. II :?-a. "ro <<3.— <:-5h-. .. (^w-f-i(x o•-<<d:i--« •-<= II •-< -ZD _...••. .»-->oq: 2: »-c«oc?.-hq. uj::i:2H-o 11 h- <i;2l»-io <

_juj^-.ir h- II ..u 02 (XE — r rov:i- —< -is: .•»(mii, .» q:^o<I'-'"0 oqtu-JcD ^«uj»t'-»ii w :sQ:vo::^rHox c? u-»-HOr-icjoo vii/-)!! ii«-^u. .cq^<i .,

>- ii D:-.r-t ••oq. o»^-q.>-<c_) o—ioiik-.1i II ..2:i/)'« "ro II .^25:^ -«ZoicDi/)-}; i~r-(— u,«_u- c£:0(DiO("-r:cQ •» •.•i-i-t..o.« •• uj<<[LU|—— .. -^<oca —

.

I— Lu-JP t-/)—ot-<>a: Oh-i— 01— = •• O'-'OO II r-<..-(M^ z>—10.5:001- r*"ia:Q_j co•-HxaiD-i,- O'-H-jLu II u-z:xQ:xiit or^oo ••0.02:00 a:cDo'-*oo_jo o—z^ oo ujuj ;,•..«-. + </) II .. »-'(ou-0"a: .-n 11 r-t..-—OOt-<s: h hi— i-<ll»-. «»(-iijj<lu ll

< I ooiDTi- oto-jLL t.Q. o:u- u-.-^o II .. II r-(f\i.».-io»-t II ..oii»-.ii i-an—cch- otNJDo-jf I! "-i-^ u-clZ) i-r .'E = v02 «»..r\i .. 11 ^vj- n 11 o .. '^ 11 •• u •• u) ••<—<

2:rn -y-'-xoiiocL x 11 = w ccr-t^ t/ir\j2:<"M"_i 11 •• •• n ^cj^^'Z^t-i •-<<\io!^o cm•jt 'Hj.oLu-jf s:<r-t ••!—o ot.>"CJ—

o

ci:o—«or\joo..rvjro •• »-'0»-u..uj—

o

_jo2:i— 2: oM- •-"X-j; t-H «— H-uj •-^cir'-2c<<i UJ.-<oii-2l— rO'"'<trO *- O'il—irNi»-t •-•rxZ) U-M-Lu I— •)<»— 2. t/o2 .» ujc\j<tc^o>i— CO H cj*'Ou..c?>-"0»-"=i OsO_i»-''-'^co H oci:^ci:irc:j•ft-MO -a CDf-i>—LJ'"-^ M—H-'(XX= LU in .,Ci; .•C>-hOCJI _IOvJU.I- II O II Z HZH--* *i<-»-<<UJ -it- 0:0x0.-^-) >-'Q:2£i:u_o II 5: — 11 in .»o..-o n 11 u_rHOC3 ••_) •• uur-t t) •sir-i•«• -J M-K-t— ijj<u i_j _ji— t-Hh-LL .. <in«« II ino^ .».. •• u 11 oou-(3C >(ooa;uju-io«<. •-i-K-<^>aQ _j3 <xllxe •'-» a: II rH.. II f-i II inrom o_J •'••cQ^-'O uj'-'Oi-txi—u.*>-i2;_j-«- •• '-z>^ -loroiiso^ <i.,^r-i.. n •• u t-^,-* >-*^\—o w >-> oco»o»-o4t f— 0<-)i- •or t—2 |_ II ..a:,-! (x.-it-'O—I •f\) ••>-'0 Cjf— 20~3 ••</) iiJ..,-wCQ(_;.-^—•Jf -•Ok-H^^ r o 100 ••—J t~« .r .. .»*~.o—

'

oou_2'^'-'.-<c3»-' 02<h-u:— II ^jsco_j<:^5;^i-22H-->f

iE m_j^ 2= '^r fMocu ^-.-<•••ou-'-^Or-^ II o r)_i3iir-4" k-^o< » »uja

•jt *-•< -! )(- jcM II vO_JZ) •-it-iLna:r-<i,ii— _ioo •••cj»^.»0»« 11 r\! cdcl..whh _joi--~'-.f-Q•K- alz-H: j.-<»«vorj2 •oc— (_)<-* (_)X i3.rino"_i.-i>--irn •• r\iin 11 o</)00 «a.2ccj'-'-.w2

«CLo:ua:<to <inr\jrMrgoo II o5I(-n .. 11 -5_J(jO •-"<Or<"^mtu<• I— t— OH-(3D Li- II II II II H- •• ••'-'Ovj _) D. '- • • u. un/^ I— a:"3^<scii•2xc£:XE •• UJ ...... •«Or-imoo >—iLUi«ii— q:»—• n •—1*^ n .-•_. t-^v^

• h-oLI-O II S Qr^tNOvjCM .'^ II II •— h-H-^O II II•• 2LU^^OOI— LU

• iL u. ..> •Q.<5:<ino .. .»

o

2ooa:i— .. ..Qi '-'l— 5: • »2i—• E .'E .»'-a: •» •»—i»-<u-LL II .r^Jro II 3 1— cQf—Oo <tujfMr\iuj<t• HE iiEin<iE toooo ..020 .. .-ii/)0(j-j<^; •oh 5i< •o• ..|_ ,, >r-(j^CNJ ••»«•.» •»LL-O0^-'f^ 1—I II O~300LH/) •2 '—'-<•—<2

I .o—'Q!:wOLu f-ininininu-o ••02 ii •• ii ct:i— ti h- l^^'Oo— ID2i-t»-'0o<a.(i:<.CL 2iiiiiiiioininiio ••<2«^iiio'» 2or-»»- i/io:LU—'I—^^0KCD>- LLl*. •« •• •• •• II 11 •» 11 -'^'-'LU •• II t— ULlK'^f-l'-'OOl—:sa:2Q:a:XE I- 2:.-H,-i,-(.-iLn'. ..ro •• oc.:2.^»- 5; ii rosKO n511— H-i— u-O n o 2LQ,<:^<r-rO'-iD.ro cjictrojoLut—o 2; ..2'~"-<cq «.

OXLL-XU- .."-H O'-'i-'Li-U- II 2'-'5: OOCQO—Ioooo OCD'—00>CDijujis ijz .»^E 00000.'OOOO i-LU- 2a:_Ji/) o_)0—*-u-i—

1

*co •"-••);- j '^Ln2 ••«-LUlU ^ l-J—t " --iK^INl-O^ E (—1— • • .—1 _J

R«-<K-. ^ II (-<_! 1 3•M -j_)co-j;. "7Z~) *2^ <t «-2Z)-t- .»0'-^{^o^-.ln•Jt .-. -jr-—.0«• I- -K _JO-}J co>0H-»-H-.CO^ 13 11 O^LU»-<2002LU-R- ..^<r II It

uj(i:t-«2 ••-o—rsj.. ••

^1—1 1—1 2 l>0 U"i Q- Q.2:ii-s_j •—q:"-. II 00

<OX ••1— 1-

0*** s;u.<:2:ujk-.

61

Page 126: An operating system model for real-time applications
Page 127: An operating system model for real-time applications

o—02:zo • »

<;q <"^

cc-z. 2:—

<

LU

lUoi H-H— ^<UJOH-z:< t-l

DO ^a:z r-<

h-i:) i-M

Q^ ^^— 1~ lyi

«« » .*oo

m— —Q.'-' 5: COu-ro UJ>c?»-< l-LU••u. •>

CvH^ .O'*Q. •• ^0-'U-CNJ 5:02:o^-* •• LU,-(LLJ

•u.»— H- -H- f V

^OCi OD 2CL .• • ro— 'H 1—

t

u.--*^ *-oo *• <O—'UJ i-lc/)C7^ ^wU-o: w-Uw-soo 00 CD 00 •

0^0 t/)>t/) vl-H-

q:^< CJLUO CMzo^ CD CD

<Qca > •'> LIJOa: 2: -J LU»-»UJ a.w<:w- >--zUJD^liJ « » * tw- HUJI-— h- —O'^ " X<LU< 0 H-QH-01-0 0 ctQl2:<2 ••0 |-<l,-(3<-'=J • • .-0 .- OOCJ II

q::2:qi'--^ooo _l

H-31-:s. ••0 » .»O0^cc LLlO.-tO '-QU-ot— ujh- •• •• » rH<l>-l

-u. 000 •LUincoo *-••• OQi .»

w-lOzooo 9- —

«

CO ••< LU • •• •• OH-_Ji-ooo

—coocorn--LUOOO02.rn5: • • •• Q- Q-Mi-< -ir-lOO •»<H-<II OLLK-——— OSXUj• • ••OZcQcDCQ II Lua:51 (NJ UJ<<< .. .»2UJSKM H-h-*- UJt/l •H- Li-< —• !^ CQ "^ Q^UJ^--••Ou-—OOLJ O—II——

1

"-^ •OcO-3-5"7 UZJZ—-^t-l » 00 II 11 II <Olurn2:<-<o II uj5:q •

2u-<:cD2:2:2. ..X5:<aLL U. > Lb LU ULj CDOQLUZO—'OLUI-l—l— -JOOOCtU-'

62

Page 128: An operating system model for real-time applications
Page 129: An operating system model for real-time applications

APPENDIX D. INPUT PARAMETERS

The purpose of this Appendix is to discuss in detail the use and

preparation of the 24 types of input cards. It is assumed that Section

A. 11 has been studied. A number of general rules dealing with card

preparation are listed first.

1. Each card type is identified by an integer as indicated in the

LISTING BY CARD TYPE below. The first number to appear on every input

card must be this card identification number.

2. With the exception of Card 23 and Card 24, the input cards may

appear in any order in the input stream.

3. Card 23 and Card 24 must always appear in the input stream.

All other cards are optional.

4. Card 24 must always be the last card in a particular set of

input cards and it must always be proceeded by Card 23. Note that the

input stream may contain more than one set of input cards; in this

case Rule 4 applies to each set.

5. On most card types three integers are punched following the

card type number. The cards for which this is true are identified in

the listing by a list of parameter names, each beginning with "Q",

immediately following the Card type. These numbers are parameters used

to call the random number generator RANDOM, providing a variate for the

job/configuration characteristic defined by the card type. The

parameter names are the variable names to which the integers on a

particular card will be assigned by the input procedure READER; they

are lised to aid in associating this text with the program listing in

Appendix C. As will be discussed shortly, the third parameter may

63

Page 130: An operating system model for real-time applications
Page 131: An operating system model for real-time applications

sometimes be omitted, depending on the distribution desired from

RANDOM. These cards have the format <card type><Parml><Parm2><Parm3>,

where at least one blank must appear between each field. The formats

for the three card types which contain data other than parameters for

RANDOM are explained in the listing.

6. Whatever the format, the space on the card after the last number

is not scanned by the program (but remember that every number for the

program is followed by at least one blank) and may be used for comments

that identify the card contents. This practice is particularly

encouraged for Cards 23 and 24 since the order in which these cards

appear is significant.

7. When reading the card descriptions below, remember that the

Q-variables shown are parameters for RANDOM whereas the comments

following the Q-variables apply to the variates returned from RANDOM. •

Thus making QIPl larger does not guarantee higher priorities for PINT

jobs; one must look at RANDOM (see Section A. 12) to determine the

effects of such a change.

LISTING BY CARD TYPE

-Card 1: PINT job priority (QIPl, QIP2, QIP3). Larger numbers

imply higher priorities; FIFO within a priority.

-Card 2: PINT job memory requirement (QIMl, QIM2, QIM3) . This

parameter is to be used with a user-implemented core allocation routine;

it does not affect the operation of the basic simulator.

-Card 3: PINT job CPU time (QICl , QIC2, QIC3). Total CPU time

requirement in milliseconds.

-Card 4: PINT job I/O type (QUI, QII2, QII3). Defines which of

the four I/O "devices" will be used by each PINT job.

64

Page 132: An operating system model for real-time applications
Page 133: An operating system model for real-time applications

-Card 5: PINT job interarrival time (QIAl , QIA2, QIA3). The time

betv/een PINT job interrupts.

-Card 6: Number of PINT job I/O requests (QINl , 0IN2, QIN3).

Determines the number of I/O requests each PINT job will make during

its life in the simulator.

-Card 7: PFREQ job priority (QPPl ,QFP3, QFP3). Larger numbers

have higher priority, PIPO within a priority.

-Card 8: PPREQ memory requirements (QFMl , QFM2, QFM3) . This

parameter is to be used by a user-implemented core allocation routine;

it does not affect the operation of the basic simulator.

-Card 9: PPREQ CPU time (QFCl, QPC2, QPC 3). Total CPU time

requirement in milliseconds.

-Card 10: PPREQ I/O type (QFIl, QFI2, QFI3). Determines which

I/O "device" each PPREQ job will use.

-Card 11: PPREQ interarrival time (QPAl , QPA2, QPA3). This is a

dummy parameter in the basic simulator since PPREQ jobs are restarted

by the system as rapidly as they exit.

-Card 12: Number of PPREQ I/O requests (QPNl , QPN2, QFN3). Defines

the number of I/O requests each PPREQ job will make during its life in

the simulator.

-Card 13: This card contains from 8 to 18 integers, depending on

the configuration of the system. The numbers, in order, are:

13- The card type for this card.

QGTLIM (RUNTIME LIMIT) - The global time (milliseconds) at which

the run is to terminate. ...

QCP - The number of central processors in the configuration. 1 to

10 inclusive.

65

Page 134: An operating system model for real-time applications
Page 135: An operating system model for real-time applications

QIOS- The overhead, in milliseconds, to be associated with

returning to normal operation after an I/O interrupt.

QIOF- The output level (see Section A. 13) desired. to 3

inclusive.

QTSL(I)- This entry comprises a series of integers, one for each

CPU, which indicate the time-slice size associated with the

corresponding CPU. There are QCP of these parameters.

Note that the user is specifing on Card 13 the actual numbers that

will be used in the simulation. In order to override any one of the

defaults for these parameters the user must prepare a card containing

all of the above Card 13 entries.

-Card 14: Background job priority (QPl, QP2, QP3). Larger numbers

have higher priority, FIFO within a priority.

-Card 15: Background job memory requirement (QMl ,QM2

, QM3). This

parameter is to be used by a user-implemented core allocation routine;

it does not affect the operation of the basic simulator.

-Card 16: Background job CPU time (QCl , QC2, QC3). Total CPU time

requirement in milliseconds.

-Card 17: Background job I/O type (QIl , QI2, QI3) . Determines which

I/O "device" each background job will use.

-Card 18: Background job interarrival time (QAl , QA2, QA3). Time

between initiation of successive background jobs.

-Card 19: Number of background job I/O requests (QNl , QN2, QN3).

Determines the number of I/O requests each background job will make

during its life in the simulator.

66

Page 136: An operating system model for real-time applications
Page 137: An operating system model for real-time applications

-Card 20: I/O Type 1 processing time (QIOll, QI012, QI013). These

parameters specify the distribution to determine the time to process

I/O operations of type 1.

-Card 21: I/O Type 2 processing time(QI021, QI022, QI023). Same as

above for I/O type 2.

-Card 22: Statistics interval specification. This card contains,

after the card number, a series of integers which will be interpreted

as the global times at which the user desires to call procedure STAT.

The series is arbitrarily long and must end with a zero. The times

need not be in increasing order. Statistics always reflect cumulative

values; it is not possible to reset the statistics gathering machinery

during a run.

-Card 23: Output Control - This card and as many following cards

as required contain a series of integers which tell the program at what

global times the user desires certain output called flagged output

to be printed (c.f. Section A. 13).

-Card 24: Run Termination Card - The first non-blank character

after the card number must be an integer. If this integer is 1 the

program will assume that another complete set of input parameters

follows, the entire simulator will be reset, the another run with new

parameters will commence. If this integer is not 1 the program will

halt.

67

Page 138: An operating system model for real-time applications
Page 139: An operating system model for real-time applications

ao:u.u.

oa

oo

aUJa:u.

aoace.

u.

at:

o lU

a;>-O-t-oou.

D-I—

CD

LU_lD-

CO

XI—

I

Q

a.

LUs: .-I

<

3CLo

ID

XoUJ

<lU-ILUOC-

O

0:0.

Zl-t-oZi-1

a:o>z

<ozco

>

ok:•-o»-<zeo

o

O

o00

E — ir\ _^ LU 3*LU ^^ — .-» <-4 ct > CL*A (M 00 ^- < 'Ss LU a:o»

» II «^ <h^ LU -* -H _) 0^** -1- LU LU c»: ._i • ~-^ o<->« (O'-i« • a. OC a INI • t- !-<((• ^0 00« • «.« • o ZCD* in 1n 00* • — rsi z (M a " *

_J —

.

.. «» 1— 1— LL* < ^ ~. 3 « in« T. QC» in

1n CO

» CC <NJ in -^ •—

«

o#* _ —"O* in* z in in 1- L/l QC^»» A CJ n CLO*«- II < Q- •-I t-<*« ro ZCD** • 00 a: -• «t/1 • 10 a: LL U- * «• • • ••

of • Qi LU in »H in Z3 * t- ••1- Oh- (JUJ —1 LU in ir\ h- -J- i-tt QC -lao: _j -j _JQC _Jy- < 1- LU OC* < LL<< u. LL ..LL< LL

tu LU 2: 1/1 z (^ a# H- ••02: t- ••UOOI- "O2: t- X < OC >^ —

*

^* 00 z> 00 (3 ~ l/lr)

< Z •5 a: LU o* cca CD -« _l CDQ.QC UJ q: < —* t- •-^ f-i LL .^ ••<* ao<M (Nl CVJLUfMOOO< Z •< -^ Q. ^H LU CO ro v/offm -3 1— ->oo incco-ji-inQ. a in _t s: •-^ ,_( Z rg z n lU 0^ 1-^ (M LUnj

0. in <-rf CD in ** < «« « inED X CD _i _l OC —1 in 2: •- *O LLI < -5 < < < f-t 0: K-a:*—> A -5 > > a > in < zio»* II a: > cc QC ^ a CDZ** (M —1 LU LU <n -»^ LU 1- </) —'O*« • < 'vt h- Z «« t- a -1- t- # ,M < •• a ocq:** • > «^ z UJ t^ z -) f-4 z # X T. i/i "^ l-LL** « a ^^ 3 *- ^^ ^^ * _ LU »_« COLL** I LU > > D > -^ * _i K- !_; "-

* at: t- V— _l LU h~ : z K- —J « a •*-< -J Q «* a z »— < 0: »— < 3 1-^ < CM * LU 3 -J < «« u. *~« q: > LL a > c QC > «- * S OC i/i >—

I

H>* •• • • *• • • • • ••

» C<M to a c- »—

,^ * QC 1- _JaC# a Da a CL az c ^- q: Q •—

a t: QC 1— » h- LL LL h~ z:<* < Q-< < a <* 3 UJ a Qt LU cr: OC ^ oc OC c * Z ^- z z <ia* _j U—

1

_j -1 —

1

* A X a < X a < LJ a. < >— * 13 z t—

'

^- a QC* 0: _JQC OC QC QC

« M m ^ ^ ^- ^ — < —

.

— — « Q. ^x 1- — llll-k > LL> > > >* ^^ u. — — u. — — a: — — — « — — cu.* c q:0 . a

68

Page 140: An operating system model for real-time applications
Page 141: An operating system model for real-time applications

r,

o o o o

O ,-4 -1 O

O O O O O (J

u

I I

Li

XX

—1 o o o

O o o o

o o o o_l -J -J _JIL U. LL U.

oo^ o ^

Io

I

I

OJ—

I I i

I I I

I I I

o ^o ^o oo -JO

00 CO

oo00 lA

lO -1 -HI I

I—I I

I I

I I

o o o oin in

oQ.

00 tn

1- O" o O tj O O Ol— (J ••(- o- y- (J5 O •• Oq: -ia -J _i —J _j _J -jQt —lO-o: -JO. a^ _/ —10. -1

..< u.< u. u. u. U."LL"U-< U-<< LL<"..< U. U.< U-LUt- ••oz o o- u-•oaoooi-->05:i-"i_;5:ujujh--' u-'or oq:i/)3 Q o — —' i/)r) v/l=) o:cr:i>o3 D<cQa »—« ^- -J _i coo. CCQ. < <COQ. Q.

O Ol^ O r^ O r*Lijoujr*-o^o oom oo ouo m1—

>

i-f^- oiri p-ir- o cMa:inotr--)i-o -JH-O t-t--3t- —Oh-O -lOo UJfSJ omom •I- >r -r >} uJu-\ ujin OO UJ O-OLUvO vO1- o a: in o O *-t- o 00 oz> 3Z)Ol o.ao OO

• < Q.<Q-< <•- _l 0_J0_| _l

X > LU>Uj> >u. o acocca C

OO

CO-3 -J

a •-—> XXO U.LU

3Q. a OQ. aQ.< < Q.< <O—

i

_j o_i _i—IQC ct -IQC aU-> > ll.> >QCC u occ u

I I »h— «I I *I I »I I «I I *I *

I I

I I

I I

- ..OOO ooo ••

- a - — a, -. _j _i >-

fiujo OLumr inoCOfMOctO

-o ^•o^- r-

-JO_l

69

Page 142: An operating system model for real-time applications
Page 143: An operating system model for real-time applications

APPENDIX F. RANDOn NUMBERS

The purpose of this Appendix is to describe the methods used by the

program to produce random variates for the simulation and the statistical

tests performed on these generators. See Ref. [10] for more details on

the first three of these routines.

Uniform (a,b) routine: The Uniform generator uses a multiplicitive

congruential method to produce random numbers in the interval (0,1).

These numbers are then scaled into the desired interval (a,b). The

uniform generator was subjected to the frequency test in the interval

(0,1). Ten sub-intervals were used with sample sizes of 100, 300 and

500. A 9S7o confidence interval was placed around the mean for each

sample size. The results of these tests are tabulated below. Chi

squared(9) equals 16.919 at the 95^ confidence level.

Sample Size Sample Mean Interval Chi Sq.

100 .50231 .484-. 516 6.5999

300 .50744 .489-. 511 2.5999

500 .50248 .493-. 507 2.4400

Exponential (MU) routine: The exponential generator uses the

inverse transform method to produce exponential variates of arbitrary

mean. This routine uses U(0,1) variates from the Uniform routine

above. The exponential generator was tested with the frequency test in

20 intervals. Sample sizes of 500 and 1000 were run; the theoretical

mean was 1.0. Chi squared (19) is 10.117 at the 95% confidence level.

Sample Size Sample Mean Sample Std Dev Chi Sq

500 .9932 .9873 6.781

1000 .9973 .9951 7.376

70

Page 144: An operating system model for real-time applications
Page 145: An operating system model for real-time applications

Sample Size Sample Mean

500 .0542

1000 .0233

Normal (EX,VAR) routine: The Central Limit Approach is used to

produce these variates. Twelve U(0,1) variates from the Uniform

routine are used to produce each Normal variate. The N(0,1)

distribution was tested with the frequency test; sample sizes of 500

and 1000 with 20 sub-intervals were tried. Chi squared(19) is 10.117

at the 95% confidence level.

Sample STD Dev. Chi Sq.

.9762 20.598

1.0039 24.487

Judging from the frequency histogram, the normal curve produced

by this routine has irregularities at about + 1 sigma from the mean.

These results indicate that the normal generator is statistically

deficient.

Empirical routine: To determine an empirical variate, the genera-

tor first draws from U(0,1). This number is then used to interpolate

into the table as described in Section A. 12 in Appendix A.

Constant routine: This code segment simply returns a real-valued

constant which was provided by the user.

The tests done on the random variate generators are minimal. Real

statistical significance of results should not be counted on from these

generators. Serial correlation tests should by performed on all gene-

rators. Larger sample sizes should be tested. Although the method

used to produce normal variates is admittedly approximate, the deviation

from the theoretical results indicated in the above table casts doubt on

the validity of the U(0,1) variates from the Uniform routine;

consequently, these should be double-checked. It is recommended that

71

Page 146: An operating system model for real-time applications
Page 147: An operating system model for real-time applications

the normal generator be completely replaced. The user should not

rule out the possibility that variate generators are available as

library routines and could be used by the simulator.

72

Page 148: An operating system model for real-time applications
Page 149: An operating system model for real-time applications

APPENDIX G. STATISTICAL CALCULATIONS IN PROGRAM OUTPUT

This Appendix describes in detail the calculations performed by

procedure STAT at each call. These calculations lead to the statistical

output of the program. Each entry in this Appendix begins with the

exact identifying phrase that appears in the output (see Appendix E).

-Global Time (Msec): A direct printout of GTIME at the time of

the call to STAT.

-Total Jobs Completed: Each time EXIT is called, it increments a

job counter (JOBTOT). This statistic is a direct printout of JOBTOT.

EXIT also maintains job counters by job type; these counters are

printed out with the labels "PINT", "FFREQ", and "BACKGROUND".

-Total CPU Time Used, Msec: Each time GETCPU procures a processor

for a job and creates a RELCPU block for that job, it adds the job's

processing time to CPUTOT. If the job is interrupted, an appropriate

amount is subtracted from CPUTOT. The statistic is a direct printout

of CPUTOT.

-Total I/O Time, Msec: Each time 10 does an I/O operation for a

job, the I/O time is added into lOTIME. The printed value is lOTIME.

-CPU Utilization ,%: GTIME is multiplied by the number of CPUs to

obtain total available processor time. This is divided into CPUTOT,

rounded to the nearest one-tenth of one percent, and the result is

printed.

-Total I/O-CPU Overlap, Msec: I/O-CPU overlap is accumulated by

the special procedure OVRLAP, which is called every time the state of

any I/O device or any CPU changes. See Appendix C for details on the

operation of OVRLAP. Its accumulator is printed out directly. Note

73

Page 150: An operating system model for real-time applications
Page 151: An operating system model for real-time applications

that overlap as defined here occurs at any point where at least one CPU

is busy at the same time that at least one I/O device is busy. Four I/O

devices are assumed to be on-line, even though only two time distributions

are shared among them.

-Percentage Overlap: Overlap time is divided by CPUTOT; the result

is rounded to the nearest hundreth of one percent and printed.

-Average Turnaround Time, Msec: Each time EXIT is called, the

routine computes the difference between GTIME and the time of entry of

the calling job and accumualtes this quantity in ATAT. The time of

entry is obtained from the calling job's table. ATAT is divided by

JOBTOT and the result is printed out.

-Variance (Turnaround): Each time EXIT is called it accumulates in

SSQTT the square of the difference between GTIME and the time of entry

of the calling job. The variance in turnaround time is computed as

(J0BT0T*SSQTT-ATAT**2)/(J0BT0T*(J0BT0T-1)) and printed.

-Throughput, Jobs/Min: JOBTOT is divided by the number of minutes

in the run so far; this number is rounded to the nearest integer and

printed.

-Total Number of FFREQ Slips: At the end of each second, procedure

SPEC is called. This procedure computes the difference between the

required number of completions (QFF) and the actual number of

completions of FFREQ jobs. This difference is accumulated in

FFSLIP and printed.

-Max Slip: The maximum slippage for FFREQ jobs over all 1 -second

intervals in the run is maintained in MAXFFSL and printed.

74

Page 152: An operating system model for real-time applications
Page 153: An operating system model for real-time applications

-Total Number of PINT Slips: A PINT slip occurs any time a PINT

job gets removed from its processor and sent to the RFPQ. RPPQ accumu-

lates these occurances in PISLIP and its value is printed by STAT.

-RPPQ-Avg No. Enqueued Jobs: Before eyery change in the length of

any queue, the queueing routine accumulates in RPJS of lOJS the product

of queue length and length of the interval since the last change. This

sum is adjusted for the job-seconds accumulated from the last length

change to the present time, divided by GTIME in seconds, and printed

out. The value of RPJS or lOJS is then reset to its value at the last

length change, in case STAT has been called in the middle of a run.

-*Sample Avg: Every 100 msec, procedure SAMPLE samples the RPPQ

and lOWH queue lengths and accumulates these quantities and their

respective squares in SIGR, SIGI, SSQR, and SSQI. Procedures RPPQ

and lOWH record the total number of jobs which ever enqueue in either

queue; variables RJOBS and IJOBS hold these numbers. SIGR is divided

by RJOBS and the result printed to produce this cross-check on average

queue length.

-*Sample Variance: The quantities explained above are combined

according to the formula (RJ0BS*SSQR-SIGR**2)/(RJ0BS*(RJ0BS-1 ))

and printed.

-*Avg Wait Time, Msec: Accumulated job-seconds are divided by the

total number of jobs entering the queue; this value is printed.

The last four quantities are also computed and printed out for the

lOWH. Starred quantities are printed only if the number of jobs

queued at the time of the STAT call is greater than 1.

75

Page 154: An operating system model for real-time applications
Page 155: An operating system model for real-time applications

STAT also prints, at Output Level 3 (See Section A. 13 of Appendix

A), the contents of the RFPQ, lOWH and Event List (along with the

number of the task or utility procedure to be called by SCHEDULES).

76

Page 156: An operating system model for real-time applications
Page 157: An operating system model for real-time applications

APPENDIX H. DEFAULT. PARAMETERS

This Appendix lists the values that parameters will be given by the

program if no input cards are supplied. Unless otherwise noted in the

listing, all default distributions are constants.

Fixed Interval Jobs

Priority 5

CPU Time 100 msec

Core 20

I/O Type 2

Arrival Time 250 msec

No. of I/O Requests 1

Fixed Frequency Jobs

Priority 4

CPU Time 100 msec

Core 20

I/O Type 3

Arrival Time 2 msec

No. of I/O Requests 1

Background Jobs

Priority U(l,5)

CPU Time U(1000,5000)

Core 60

• I/O Type U(l,4)

Arrival Time 500 msec.

No. of I/O Requests 3

77

Page 158: An operating system model for real-time applications
Page 159: An operating system model for real-time applications

Configuration

Total Run Time 5000 msec (simulated)

No. of CPUs 2

I/O Setup 0/H 50 msec

I/O Released 0/H 75 msec

FFREQ Completion Frequency 5 jobs/sec

Time Slices 100 msec

I/O Type 1 100 msec

I/O Type 2 50 msec

Output Level 2

lOF 1

Interrupt Mask (interrupts on)

78

Page 160: An operating system model for real-time applications
Page 161: An operating system model for real-time applications

BIBLIOGRAPHY

1. Ahrens, J.H., and Dieter, U. , "Computer Methods for Sampling fromthe Exponential and Normal Distributions," Communications of the

ACM , V. 15, p. 873-882, October, 1972.

2. University of Michigan Computer Center, Time Sharing SupervisorPrograms , by M.T. Alexander, May, 1959.

3. Aron, J.D., "Real Time Systems in Perspective," IBM SystemsJournal , v. 6, p. 49-67, 1967.

4. Computer Science Department, Stanford University, Algol VI .

(Revised) , by H.R. Bauer, S. Becker, S.L. Graham, andE. Satterthwaite, SeptemiDer, 1969.

5. Burroughs Corporation, B5500 SIMULA : Users Manual , November, 1968.

6. Di gest of Papers for the Sixth Annual IEEE Computer SocietyInternational Conference , September, 1972.

7. A/S Regnecentralen , RC4000 Software - Multiprogramming System ,

edited by P. Brinch Hansen, February, 1971.

8. Lampson, B.W., "A Scheduling Philosophy for MultiprocessingSystems," Communications of the ACM , v. 11, p. 347-360, May, 1968.

9. MacDougall, M.H. , "Computer Systems Simulation: An Introduction,"Computing Surveys , v. 2, p. 191-209, September, 1970.

10. Naylor, T.N., and others. Computer Simulation Techniques , p. 43-

102, John Wiley and Sons, 1966.

11. Naval Ordnance Systems Command Contract No. N0017-70-C-4448,Technical Report on General Requirements for a Standard

Ordnance Executive , by Systems Consultants, Inc., 1050 31stSt. N.W., Washington, D.C. 20007, 12 August 1971.

79

Page 162: An operating system model for real-time applications
Page 163: An operating system model for real-time applications

DISTRIBUTION LIST

No. of Copies

1. Defense Documentation Center 2

Cameron StationAlexandria, Virginia 22314

2. Library, Code 0212 2

Naval Postgraduate SchoolMonterey, California 93940

3. Professor G.L. Barksdale, Jr., Code 72 Bv 1

Computer Science GroupMonterey, California 93940

4. LT William C. Regmund 1

612 Zoe StreetHouston, Texas

80

Page 164: An operating system model for real-time applications
Page 165: An operating system model for real-time applications

Socunty Classificationcunty

DOCUMENT CONTROL DATA -R&D: Security ctes sHicmtion ol lllle, body o/ KbstrscI end indexing annolnlion niusf be entered when the overall report Is ctnasllled)

iCiNATiNG ACTIVITY (Corpormie euthor)

aval Postgraduate Schoolonterey, California 93940

2«. REPORT SECURITY CLASSIFICATION

Unclassified

2b. CROUP

>ORT TITLE

1 Operating System Model for Real-Time Applications

SCRIPTIVE NOTES (Type of report end, Inclusive dates)

jster's Thesis; December 1972THORISI (First name, middle initial, lael neme)

illiam Charles Regmund, Jr.

>ORT DATE

^cernber 1972

7a. TOTAL NO. OF PACES82

7b. NO. OF REFS

11

5NTRACT OR GRANT NO.

«OJEC T NO.

9a. ORIGINATOR'S REPORT NUMBERIS)

9b. OTHER REPORT NOIS) (Any othvr niunbera the I msy be ueelgnedthie report)

STRIBUTION STATEMENT

proved for public release; distribution unlimited.

PPLEMENTARY NOTES )2. SPONSORING MILITARY ACTIVITY

Naval Postgraduate SchoolMonterey, California 93940

The basic organization of an operating system is often obscured by theriad details of a particular implementation. In any context where the conceptualhavior of such systems is of interest, it is therefore desirable to have atnd some device which is transparent to fundamental concepts but opaque to thetails. The purpose of this work is to develop such a device in the form of aoical model of certain operating system functions. In order to test the utilitythis model, it is translated into a computer simulation program. Since operatingstems for real-time applications are of particular interest here, some featuresreal-time systems that are built into the computer model are discussed. Finally,ne applications of the program, and thus of the logical model, are suggested.

FORM> NOV es

101-807-681 J

'..1473 (PAGE I)

81Security Classification

A-3I408

Page 166: An operating system model for real-time applications
Page 167: An operating system model for real-time applications

Security Clas9ifir«tion

Multiprocessing

Operating System Model

Simulation

Real-Time

Resource Scheduling

.""."..1473 iBACK)

MOI •6Cn-6i2\82

Security Classification A- 31 409

Page 168: An operating system model for real-time applications
Page 169: An operating system model for real-time applications

'^Ap ff7

" ^ 3 /

^ ' '/

^^^760

'"°^e; for "3 sys

ons

^295

'Stemme jm

2 2 '^ -- -

1

1 i1 '

.- 1 ji.

Thesisn?-95 Reqmund

c.l An operating system

model for real-time

appl ications.

760

Page 170: An operating system model for real-time applications

thesR295

An operating system model for real-time

3 2768 002 05056 9DUDLEY KNOX LIBRARY