Krishna 1987
Krishna 1987
9, SEPTEMBER 1987
Abstract-Optimizing the design of real-time distributed sys- control function is well-defined, so is the set of tasks that the
tems is important since the systems are frequently critical to life computer has to run. These tasks may be run cyclically in an
compute to r These tasks by event i
be
The cost function expresses the fact that since a positive probability of dynamic failure and mean cost. Section IV has
computer delay aggravates latent system instability, the some detailed numerical examples. The solution is numeri-
magnitude of the control called for will rise with the computer cally obtained, tabulated, and interpreted in the context of
response delay. The cost function is an expression of cost in real-time application. We conclude with Section V. The
physical terms such as energy, fuel, etc., and is the extra cost Appendix contains a list of definitions.
of control-in these terms-that is incurred because of the
nonzero nature of the computer response delay. Costs incurred II. SYSTEM MODELS AND ASSUMPTIONS
add up; if we denote by rij the cost incurred in relation to A. System Model
version Vij of task i, the total cost of control is >jEj rij. The
mean cost (MC) is the mean total cost of control incurred over We consider a potentially very popular class of computer
a mission lifetime, given that the dynamic failure has not architectures, which is similar to the continuously reconfigura-
occurred. See the Appendix for a list of terms associated with ble multimicroprocessor flight control system (CM2FCS)
real-time control systems. In [6], we discuss the cost function structure proposed by the United States Air Force [8]. (See
in detail, and in [10], we provide a detailed case study of its Fig. 1 for an architectural block diagram.)
determination and use aboard aircraft when the task is to This class of computers shares the following characteristics.
control the deflection of the elevator during landing. So far as Processors work together in triads, and are synchronized.
this present discussion is concerned, there are only two Faults are masked by voting when a failure is located, and the
quantities of interest: the probability of dynamic failure and injured triad is either purged of its faulty element and brought
the mean cost. In other words, we shall analyze certain up to strength with the introduction of a spare (if a spare
processor tradeoffs using these two objective measures. exists), or the triad is disbanded and its working processors
We can now restate our optimization problem to make it classified as spares.
specific to real-time computers: find a design which minimizes The processors each have their own private memory. In this
the mean cost for a particular application over a total working class of architectures, each private memory contains a copy of
lifespan of a given number of missions, subject to the the operating system and all the applications software. In
constraints of a) life-cycle cost, b) the interarrival and service certain applications, where there are only a small number of
time distributions for the various classes of tasks to be programs to be executed, this is possible. This can be justified
executed, c) the characteristics of the available components, by the fact that on-line loading of both program code and data
and d) the maximum acceptable probability of dynamic requires too much time to meet real-time constraints, and
failure. continuous increase in capacity and drop in cost of memory
While this problem is now more definite and formal, it is make such an arrangement economically feasible.
just as impossible to solve exactly and efficiently as the one Tasks enter the system and must be scheduled. The job of
with which we began. So we must study tradeoffs between the scheduler is taken up by one of the triads.
various aspects of the problem, and use human intuition and When a task arrives, it is queued at the scheduler until a
judgment to arrive at a quasi-optimal design. In this paper, we processor triad becomes free. It is then allocated, on a first-
study several important tradeoffs which occur in one poten- come-first-served basis, to that triad. When a free triad in the
tially important type of distributed real-time computer. system receives a task, it can begin executing it immediately.
We study the impact of the application requirements
(expressed through the task loading, the finite cost functions, B. Assumptions
and hard deadline distributions for the various classes of tasks)
on computer performance (expressed through Pdyn and MC). We make the following assumptions:
And we consider the impact of the processor replacement Al. All processors are identical.
policy and processor burn-in times (i.e., the time for which a A2. Tasks belong to well-defined task classes. There is no
processor is made to execute in a test setting) on computer restriction on the distribution of the task service time, except
performance. Finally, we calculate the number of processors that service times are stochastically independent.
that must be replaced under any replacement policy and burn- A3. When a task is completed, it is voted on and the results
in time, thus computing an important factor in the life-cycle are used to control an actuator or update a display.
cost. A4. There is no intertask communication during task
In order to be realistic, exponentially distributed service execution. That is, tasks communicate with each other at the
times are not assumed in our analysis, and an exact analytical beginning for input and at the end of execution for output, but
solution to the models we study is as yet unknown. Analytical not during execution.
methods will be used to obtain upper and lower bounds to the A5. Tasks arrive according to a Poisson process.
reliability: to do this using simulation is impractical since Pdyn A6. The computer system operates in missions. A mission
for critical real-time applications must be of the order of 10-5 iS a continuous interval of time during which the computer
or (usually) much less. performs its function. We treat the case where no repair is
This paper is organized as follows. In Section II, we possible during a mission; repairs must be conducted between
describe the architecture studied, and our modeling assump- missions.
tions. Section III contains analyses such as of the impact of All these assumptions are realistic for computers in charge
processor replacement strategies and the burn-in time on the of real-time control. By A4, the influence of the interconnec-
1032 IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 9, SEPTEMBER 1987
where Bi() and Fdi(*) are the service time and hard deadline 4 a3
distributions, respectively, for class i. l4
The waiting-time deadline distribution is as simple as it is
because the arrival process is Poisson. Fwd( ) is independent t14 73t
of the current system state because the service time and hard Commencement Mimion
deadline are independent of the current state. Let End
Fig. 2. Example mission profile.
Pfail(t nn I i by 7^ji = max {0, j7i+ I, , - t}, where #i
00
{ fail ( , 71 n I Xt
-q I Pfail ( t, 31 n ls,(iX|?2s7
So, the probability of failure during mission / is given From the definition of q it follows that
(approximately) by
7rf3nl(m,
-n''J
\-1 2)Pp
where Oi(t) _ | w(Oa)dB#(t - a) and we may recall that Fig. 3. Markov model for special case.
fi(t) is the (finite) cost function for task class i and Bi(*) is the
service time distribution.
Therefore, the contribution to the mean cost of an arrival at ( i )
time t into mission 1, I'(t) = ,j=_ C(j)u1(j, tlm), where Ti (t)=- {tiLp+ | ( , dFwd( )$ 7ri(t)
ul(j, ti m) is the conditional probability that t E [j, ru ) if ° I
the lifetime of the lth mission is m. u can be computed directly + (i + )lp 7ri 1(t), 3n c i< 3n, + n2
from the sojourn time distribution g( m).
The mean cost of the mission is, therefore, upper bounded
by ,fail (t)E { a ( j d) ()
oo m
XA o
4f(t) dt dM(m). 7ri(t) + nUp1rp(),
The probability of dynamic failure and mean cost over the where 7rf0i1(t) = probability of having failed by time t, and
f(0) = p, bai0, vi 3n, + n2 Then, the
e fi
B. Steady-State Waiting Time Distribution Since the service time distribution of each task is known, it
If there are n triads, the system can be modeled as an M/G/ is now a simple matter to calculate the response time
n queue. The waiting time distribution of such queues is as yet distribution by using the service time with the waiting time
unknown, so approximations must be sought. distributions.
We employ the approach of Arjas and Lehtonen [1]. The
M!G/n queue is approximated by two E,/G/1 queues: one C. Probability Density Function of m
yields the upper bound, and the other the lower bound of the In this subsection, we compute the joint density of the i
Lm.
t, 1. Denote When we say that a processor's age is r, we mean,
therefore, that the processor has seen r seconds of service. Let
tt
isinta
t mission h ytmlae
n I°1 beeteeohi
Because of the assumption of Poisson arrivals, '~~~ the waiting h Ith
,
the epoch in the that the system leaves state i
time distribution is independent of the class that C, belongs to, (note that all these times are relative to the time of starting the
and the service time distribution of C, is independent of the .
mission). For convenience, we shall suppress the superscript.
arrival process. C, belongs to class i with probability X1i/X Clearly, we can write
where X = Er Xi. Define B(-) - Y,r (Xi/X)Bi(*). Let bl,
b2, b, be a set of independently identically distributed . =h (l)
(IID) random variables with distribution B(-). Let B(u)(.) and g(1 t1nI n, , 1)h ni)
B(')(-) denote the distribution of b(u) = max { b, * *, bn and * h . -
b(') = min {b,, , bn, respectively. n
LetA(t) - Xe`t((Xt)n-I/(n - 1)!) which represents the w h iy
distributi'on lof7=
Of En ti.
distribution t, Then, by the result of Arjas and
ofArjasand
whr
ha1( ni h rbbiiyta h ytmlae
state a in [a, ta + di1), given that it entered state a at %a+ 1 (in
Lehtonen [1], the waiting time distribution of tasks in the mission 1). For a < nI we get h(1)tiaI a+i) d? = Pr {sojourn
original M/G/n queue which represents the computer, is a
upper-bounded by an En/GI 1 queue with arrival and service dtim IZ }
distributions A( ) and B(u)(.), respectively, and lower
bounded by another En/G/1 queue with arrival and service _ Pr {Xand Y Z}
distributions A (*) and B(')( ), respectively.
Recalling that Lm( ) is the distribution of ur, Lindley's (3a+2 (,7 1)}12{1 )}3
a(
equation [4] immediately yields \\2/
X / 3aa d03l(na)
W M+( +ly)= Lm (y -w) d Wm (w)
0
V1J1-
1 010a
where WI(w) = 1 V w 2 0. If E[umr] < 1 v m, there exists a and
limit such that limm,o Wm(y) = W(y).
Implementing this iteration directly on a computer is, in hn(')1 - (3n;+ n2 N ,(0
general, fraught with formidable difficulties. If the Laplace 2 ) { X )
transform of L,?7 is rational, spectral factorization followed by ~3 n/3X dfSl(7n)
a Laplace inversion [4] can be used to obtain an exact solution. * { 1-&6(0, t7) ] V l y1l ,(;1nl)
If it is not rational, then we must seek approximate methods.
One such method is due to Kingman [5]. Let L*(s) denote where
the Laplace transform of L. Then, defining s0 = max {s~> X = two out of the 3a + 2 processors fail in less than 7}
OIL *( -s) c 1 }, we have the following upper bound to the - Na+ 1 seconds after state a was entered,
waiting time distribution: Y = one further failure occurs in [m1a- na+l tI?- fla +1
W(y n) = 1 - e-soY. + da1) after state a was entered,
1036 IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 9, SEPTEMBER 1987
(31 + t) - 01)
...
dM(xI)
,
11 - 1(71) IV. NUMERICAL EXAMPLE
In this section, we present examples of the dependencies and
P(I+tburn, 2) if I
+ t tradeoffs among the various parameters under the control of
P(Q1, =2)- 1-P(0, (I tburn) 1 burn- the designer, and consider the effect of the application
. otherwise, requirements the performance of the computer system. To
ensure clarity,on we consider the individual tradeoffs and
0 otherwise,
where p(t, r) is the probability of a processor failing after dependencies separately.
operating (or burning-in) for r E [t, t + r). The function In [11] and [12], we have considered the impact of the
g1(X01,n1s I 1 * * 1) is only valid for qij T,, the lifetime
- < of application requirements on the system performance in detail.
mission 1. The influence of the application is felt through the task
Special Case: Processor Failure Time Exponentially loading, the cost functions, and the hard deadline distribu-
Distributed: Let the failure rate be yp, then P(t, T) = 1 _ tions. To illustrate this, we have treated in [11] and [12] an
e- AP7* The equations for g, and h () will still remain valid, with example sufficiently idealized to remove any extraneous
the simplification that factors. This is the number-power tradeoff, first considered-
in a different context-by King and Mitrani [3]. Assuming that
6{(j, t) = j3(t) 1 - e-pt. the product of the number of triads and the power5 of the
individual triads (which is termed the number-power prod-
D. Calculating the Age Density Function uct) is constrained to be a constant, and considering the effects
Let agei,1(1 t1, , ti- X) be the density function of the of varying the processor number, one can gain useful insights
processor age under policy Pt at the beginning of mission i, into the impact of the application requirements on the optimal
and conditioned on mission j ending at tj, j = 1, * *, i - 1. structure. Especially, one can analyze the tradeoffs between
-
Then age1,, can be derived recursively as follows. the processor speed and processor redundancy in distributed
real-time systems.
agei+ 1,(0l1, , ti) Since processors can only be replaced at the end of
missions, the mission length greatly affects the probability of
- Pr {age of processor at t1> (, or dynamic failure and the mean cost. We illustrate this in
processor has failed in [ti- 1, ti]} Section IV-A by an example with two task classes, each of
p(l, Tj) agej,j1jtI, ti-1) dl
deterministic service time requirements.
When processor failure laws are not memoryless, burn-in
p(l, T,) age1,(lIt1, . 0, ti i) dl
and replacement policy are important. We give an example of
+ + 11 _p(l- Til T1)}
{ 1 -p(l- T1, Ti)l the influence of both of these on the probability of dynamic
failure, the mean cost, and the expected number of processors
agei,1(l- T tI, ** ti_ 1) dl, to be replaced over the system life, in Section IV-B.
A. Influence of Mission Lifetime
where T, =fais t,_1. The
ti -duringThe first term is theterm
mirssioti,anths probability that the
phrocesso is theprobabil The overall useful life of the system in this example is 960
notfails
probability that itt does
doe during mission i, ute hs see
not fail during mission i, but has seen
h. We study the effects of breaking this period up into n
probability that
more~~~~~~
tha~ ~ eod
~ fsriean
. uthrfr,b
miso,eahflngh90nfrn=2
missions, each of length 960/n, for n = 2, ~*,,16Te 16. The
morep thaced
secondsofservicandmust,therefoe
' system parameters are: n1 11,
= n2 = 0, task arrival
300, and there are two tasks, 1 and 2, with X1 = X2 = 150,
rate is
If I > 0, we get and the service time being 0.001 and 0.002, respectively. The
agej4I'jljtI'
ti) hard deadlines are 0.099 and 0.098, respectively. For the
purposes of our example, the finite cost function is taken as
r I-p(l- T, T.,
T o) a(l- Tt1,
t , t.1) if Til< < equal to the waiting time. The processor hazard rate is shown
0o otherwise. in Fig. 4.
As might be expected, the probability of dynamic failure
The initial condition for the recursion is trivially obtained, drops as the number of missions increases, and the missions
Take ageo,(0) = 1, ageo,1(t) =0 v t > 0. We create a become correspondingly shorter. This effectively measures
dummy mission number zero which ends at time zero with all the sensitivity of the system to the interrepair periods. One has
processors new. to pay for this in terms of a greater number of processors
To find the unconditional density function of the age, we
need the following integration. 5Power is the instruction processing rate.
KRISHNA et al.: PROCESSOR TRADEOFFS IN REAL-TIME SYSTEMS 1037
0.01
0.001
2 4 104 106
PROCESSOR AGE
Fig. 4. Processor hazard rate.
TABLE I
INFLUENCE OF MISSION LIFETIME
Mean No. of
No. of Missions Mission Length P M.C. Processors Replaced
2 480.0 9.99 X 10-1 25.39 32.33
replaced. This is captured in the third and fourth columns of and service times are as before, the replacement strategy is Po,
Table I, which are the ratio of the marginal decrease in the and the processor hazard rate is given by
probability of dynamic failure and the mean cost, respectively,
to the marginal increase in the mean number of processors (0.02e-0.02995t if 0< t<100
replaced. 0.001 if 100 c t c 2100
Notice that the mean cost for the system with two missions =0.Z o( 02e°002995(1-2200) if 2100< t<2200
is very low. The reason is that the mean cost is computed on 0.02 if t22200.
condition that the computer does not fail, and when the failure
probability becomes sufficiently close to one, this causes an We consider the failure probabilities over a period of 15
actual decrease in the mean cost. missions, each of length 170 h.
Table II contains the numerical results of the dependence on
B. Influence of Burn-In Time tburn~As the burn-in period rises, Pdyn initially drops, as does
The task mix used here is the same as in the previous one. )1 the mean cost. Above a burn-in period of 35, however, anl
=- = 150, the length of each mission is 170 h, the deadlines increase in tburn causes an increase in Pdyn, i.e., deterioration of
1038 IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 9, SEPTEMBER 1987
TABLE II
INFLUENCE OF BURN-IN TIME
Mean No. of
Burn-In Time Pdyn M.C. Processors Replaced A B
B =
MC of previous row - MC of present row
tburn of present row - tbu.n of previous row
reliability. This is because the burn-in time is large enough to the FTMP-type structure [2]. Analyzing this would require an
bring the aging-caused rise of the Pdyn within the useful life of approximation to the waiting time distribution in GIG/n
the system. The rightmost two columns of Table II give the queues with blocking, and this is a difficult problem.
ratio of the improvement in Pdyn and the mean cost, respec-
tively, due to burn-in, and the corresponding value of the tburn APPENDIX
used. Such ratios, which indicate a return for the burn-in, can DEFINITIONS
be used in the system optimization mentioned in Section II.
C. Influence of Processor Replacement Strategy A. Terminology Used for Real- Time Control Systems
We assume tburn = 4, the processor hazard rate as in Fig. 4, Given below are the definitions of frequently used terms.
the task mix as in Section IV-B, and 16 missions of length 60 h * Mission: A continuous interval of time during which the
each. Our numerical results are contained in Table III. Rather computer performs its function. We treat the case where no
than indicating replacement policy by processor age, we have repair is possible during the mission: it is only after a mission
chosen the alternative of indicating it by the number of has been completed that the system can be repaired and
missions undergone. Since the mission lifetimes in this processors replaced.
example are deterministic, this is just another way of * Task Trigger: The initiation of a task. A task trigger can
specifying processor age. As before, we provide sensitivity be produced by a timer, a prespecified combination of
ratios for both the Pdyn and the mean cost. controlled system states, by the operator, or any combination
of the above. Triggers produced by timers are open-loop
V. CONCLUSION triggers, those produced by the controlled system state
It has been argued [7] that computer performance is only combinations are close-loop.
meaningful in the context of its application. When computers * Critical Task: The system response time for any version
are designed for specific applications, the needs of the of a critical task must be less than a preset finite deadline if
application can be formally embedded within the computer catastrophic failure is to be averted.
performance analysis. This results, as we have shown in this * Hard Deadline: The hard deadline is a maximum
paper, in precise and quantitative tradeoffs, indicating how computer think time allowed to keep the controlled system
changes in computer parameters affect the capability of the within a "safe" region (see [10] for more on this). The hard
computer to satisfy the demands of the application, deadlines of critical tasks of class i are denoted by tdi. Hard
Many extensions of this work are possible: the bottleneck is deadlines are generally random variables, characterized by a
likely to be the queueing analysis. Similar analyses can be distribution function Fd,( )
carried out for other architectures. One obvious candidate is * Static Failure: When so massive a set of permanent
KRISHNA et al.: PROCESSOR TRADEOFFS IN REAL-TIME SYSTEMS 1039
TABLE III
INFLUENCE OF PROCESSOR REPLACEMENT STRATEGY
Max. Age Mean No. of
(in Missions) Pdxn M.C. Processors Replaced A B
hardware failures have occurred that it is impossible for the Fwd( ) Distribution of waiting time deadline.
computer to perform its duties, static failure is said to result. 77i Epoch when the system leaves state i (i.e.,
The onset of static failure is typified by a utilization demand of degrades to i - 1 working triads) during
greater than unity. mission 1. Actually, it has to be -j to
* Dynamic Failure: When the deadlines for one or more indicate its dependence on the mission 1,
critical tasks have been violated, dynamic failure is said to but the superscript I is dropped for
have occurred. Note that dynamic failure subsumes static convenience.
failure. The probability of dynamic failure is denoted by gk(q,n, * *, Joint density function of time qj, which is
Pdyn -l) when the system leaves state ni, i = 1,
* Burn-in Time: The time for which processors are n1, for mission 1.
"burnt-in" by being made to execute in a test setting. Burn-in M( ) Distribution function for the length of a mis-
tends to remove latent manufacturing defects. sion.
* Processor Replacement Strategy: The processor re- -M i-fold convolution of M.
placement strategy Pt is the policy according to which a n, Number of triads in the system at the beginning
processor is replaced at the end of a mission during which it of a mission.
has failed or has seen more than t hours of service, whichever n2 Number of spares in the system at the beginning
is the lesser. of a mission.
p(t, r) Probability of a processor failing after
B. List of Symbols Used operating (or burning-in) for t E [t, t + r).
agei,(~) Density function of the age of a processor at the qi Probability of a processor having to be replaced
beginning of mission I when replacement policy at the end of the ith mission.
Pt is used. r Number of task classes.
B1('*) Service time distribution for tasks of class i. T1 Random variable denoting the length of the
ft Finite cost function for tasks of class i. ith mission.
Fd, Distribution of hard deadlines for tasks of t1 Ey5 Tj.
class i. W(' 1) Distribution function ofthe steady-state waiting
1040 IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 9, SEPTEMBER 1987
time of a task when the system has j triads Kang G. Shin (S'75-M'78-SM'83) received the
operational. B.S. degree in electronics engineering from Seoul
National University, Seoul, Korea in 1970, and the
Xi Input intensity for tasks of class i, and M.S. and Ph.D. degrees in electrical engineering
X- Si=l Xi- l _ _ from Cornell University, Ithaca, NY, in 1976 and
irf.il(t, 7,,n Probability of the system failing t units into 1978, respectively.
From 1970 to 1972 he served in the Korean Army
* *, 7l) the current mission when it leaves state i at j.t as an ROTC Officer and from 1972 to 1974 he was
REFERENCES on the research staff of the Korea Institute of
Science and Technology, Seoul, Korea, working on
[1] E. Arjas and T. Lehtonen, "Approximating many server queues by the design of VHF/UHF communication systems.
means of single server queues," Math. Oper. Res., vol. 3, p. 205, From 1978 to 1982 he was an Assistant Professor at Rensselaer Polytechnic
1978. Institute, Troy, NY. He was also a Visiting Scientist at the U.S. Airforce
[2] A. L. Hopkins et al., "FTMP-A highly reliable fault-tolerant Flight Dynamics Laboratory in Summer 1979 and at Bell Laboratories,
multiprocessor for aircraft," Proc. IEEE, vol. 66, pp. 1221-1239, Holmdel, NJ, in Summer 1980. Since September 1982, he has been with the
Oct. 1978. Department of Electrical Engineering and Computer Science at The Univer-
[3] P. J. B. King and 1. Mitrani, "The effect of breakdown on the sity of Michigan, Ann Arbor, MI, where he is currently a Professor. He has
performance of multiprocessor systems," in Proc. Performance been very active and authored/coauthored over 100 technical papers in the
'81. Amsterdam, The Netherlands: North-Holland, 1981, pp. 201- areas of distributed fault-tolerant real-time computing, computer architecture,
211. and robotics and automation. As an initial phase of validation of architectures
[4] L. Kleinrock, Queueing Systems: Vol. L. New York: Wiley, 1975. and analytic results, he and his students are currently building a 19-node
[5] , Queueing Systems: Vol. IL. New York: Wiley, 1976. hexagonal mesh real-time system at the Real-Time Computing Laboratory
[6] C. M. Krishna and K. G. Shin, "Performance measures for multipro- (RTCL), The University of Michigan.
cessor controllers," in Performance '83. Amsterdam, The Nether- Dr. Shin is a member of the Association for Computing Machinery, Sigma
lands: North-Holland, 1983, pp. 229-250. Xi, and Phi Kappa Phi. He was the Program Chairman of the 1986 IEEE Real-
[7] C. M. Krishna, K. G. Shin, and Y.-H. Lee, "Optimization criteria for Time Systems Symposium and has served as the Guest Editor of the special
checkpoint placement," Commun. ACM, vol. 27, pp. 1008-1012, issue of IEEE TRANSACTIONS ON COMPUTERS on Real-Time Systems,
Oct. 1984. August 1987.
[8] S. L. Maher and S. J. Larimer, "Continuous reconfiguration in a
multimicroprocessor flight control system," in Proc. NA TO AGARD
Conf. Tactical Airborne Distributed Comput. Networks, Roros,
Norway, 1981.
[9] S. M. Ross, Stochastic Processes. New York: Wiley, 1983.
[10] K. G. Shin, C. M. Krishna, and Y.-H. Lee, "A unified method for
evaluating real-time computer controllers and its application," IEEE
Trans. Automat. Contr., vol. AC-30, pp. 357-366, Apr. 1985.
[11] K. G. Shin and C. M. Krishna, "The processor number-power tradeoff
in a class of multiprocessors," in Proc. 5th Int. Conf. Distributed
Comput. Syst., Denver, CO, May 1985, pp. 321-328.
[12] , "New performance measures for design and evaluation of real-
time multiprocessors," Comput. Syst. Sci. Eng., vol. 1, pp. 179-191,
Oct. 1986.