LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN -Yvo.ib&VbtO CENTRAL CIRCULATION BOOKSTACKS The person charging this material is re- sponsible for its renewal or its return to the library from which it was borrowed on or before the Latest Date stamped below. The Minimum Fee for each Lost Book is $50.00. Theft, mutilation/ and underlining of books are reasons for disciplinary action and may result in dismissal from the University. TO RENEW CALL TELEPHONE CENTER, 333-8400 UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN APR 4 ISW4 MAR 2 / 1994 JAN Q6 When renewing by phone, write new due date below previous due date. L162 Digitized by the Internet Archive in 2013 http://archive.org/details/costeffectivepri509bowd \\ V REPORT NO. UIUCDCS-R72-509 COST EFFECTIVE PRIORITY ASSIGNMENT IN NETWORK COMPUTERS by E. K. Bowdon, Sr. and W. J. Barr March 28, 1972 REPORT NO. 509 COST EFFECTIVE PRIORITY ASSIGNMENT IN NETWORK COMPUTERS *y E. K. Bowdon, Sr . and W. J. Barr Department of Computer Science University of Illinois Urbana, Illinois (This research was supported in part by the National Science Foundation under Grant No. NSF GJ 28289.) ABSTRACT With the advent of network computers, a new area of computer systems analysis has evolved. Unfortunately, most of the work which has been done to date merely extends the previously existing theory of communications. While this work has been very fruitful and produced important results, our analysis is predicated on the assumption that a geographically distributed network computer is, in reality, quite different from telephone networks and individual computing centers. In this paper, we focus our attention on the probable goals of the networks and define a measure of cost effectiveness. Then using this measure we develop a priority assignment technique for the individual centers that comprise the network. We conclude by expanding the measure of cost effectiveness to determine load leveling rules for the entire network. 1. INTRODUCTION Previously, the study of network computers has been focused on the analysis of communication costs, optimal message routing, and the construction of a communications network connecting geographically distributed computing centers. While these problems are far from being completely solved, enough progress has been made to allow the construction of reasonably efficient network computers. One problem which has not been solved, however, is making such networks economically viable. The solution of this problem is the object of our analysis. Our basic assumption is that economic viability for network computers is predicated on efficient resource sharing. This was, in fact, a major reason for the construction of several networks — to create the capability of using someone else's special purpose machine or unique process without having to physically transport the work. This type of resource sharing is easily implemented and considerable work has been done towards this goal. There is, however, another aspect of resource sharing which has not been studied thoroughly: load-leveling. By load-leveling we mean the transfer of tasks between computing centers for the purpose of improving the throughput of the network or other criteria. We contend that the analysis and implementation of user-oriented load- leveling is the key to developing economically self-supporting network computers. 2. A SCENARIO OF COST EFFECTIVENESS Until recently, efforts to measure computer efficiency have centered on the measurement of resource (including processor) idle time. A major problem with this philosophy is that it assumes that all tasks are of roughly equal value to the user and hence the operation of the system. As an alternative to the methods used in the past, we propose a priority assignment technique designed to represent the worth of tasks in the system. We present the hypothesis that tasks requiring equivalent use of resources are not necessarily of equivalent worth to the user with respect to time. We would allow the option for the user to specify a "deadline" after which the value of his task would decrease, at a rate which he can specify, to a system determined minimum. With this in mind, we propose a measure of cost effectiveness with which we can evaluate the performance of a network with an arbitrary number of interconnected systems, as well as each system individually. We define our measure of cost effectiveness y» as follows: L a M-L Y = (-SL) (i 3 ) T K M ' V R-l ' I 3(i) i=0 where L is the number of tasks in the queue, q. M is the maximum length queue, R is the number of priority classes, a is a measure (system-determined) of the "dedicatedness" of the CPU to the processing of tasks in the queue, and 3(i) = (R-i) I (g(j)/f(j)) J=l where g(j) is the reward for completing task j (a user specified function of time), and f(j) is the cost (system determined) to complete task j . L The term (rp) is a measure of the relevance of the queue to processing activities. Similarily, we can look at B(i) as a measure of resource utilization. Note that 6(i) indicates a ratio of reward to cost for a given priority class and is sensitive to the needs of the user and the requirements imposed on the installation. It is user sensitive because the user specifies the reward and is installation sensitive because the cost for processing a task is determined by the system. The measure of CPU dedicatedness (a), on the other hand, is an entirely installation sensitive parameter. The first problem which becomes apparent is that which arises if R-l I 8(i) = 0. This occurs only in the situation where there is exactly one i=0 priority class (i.e., the non-priority case). We will finesse away this problem by defining M-L 3*-= R-l I 3(i) i=0 for this case. Intuitively, this is obvious, since the smaller this term gets, the more efficiently (in terms of reward) a system is using its resources. Furthermore, in the absence of priorities, the order in which tasks are executed is fixed, so this term becomes irrelevant to our measure of cost effectiveness. Thus, for the non-priority case, "we have L a Y V M ' which is simply the measure of the relevance of the queue to processing activities. This is precisely what we want if we are going to consider only load-leveling in non-priority systems. However, we are interested in the more general case in which we can assign priorities. An estimate of the cost to complete task j, f(j) is readily determined from the user-supplied parameters requesting resources. Frequently these estimated parameters are used as upper limits in the resource allocation and the operating system will not allow the program to exceed them. As a result, the estimates tend to be high. On the other hand, lower priorities are usually assigned to tasks requiring a large amount of resources. So the net effect is, that the user's parameters reflect his best estimate and we may be reasonably confident that they truly reflect his needs. At the University of Illinois computing center, for example, as of July 26, 1971 > program charges are estimated by the following formula: cents = a(X + Y)(bZ + c) + d where X = CPU time in centiseconds, Y = number of 1/0 requests, Z = core size in kilobytes, a, b, c are weighting factors currently having the values 0.01*, 0.00^5, and 0.5, respectively, and d is an extra charge factor including $1.00 cover charge plus any special resources used (tape/disk storage, card read, cards punched, plotter, etc.). The main significance of the reward function g(j) specified by the user is that it allows us to determine a deadline or deadlines for the task. Typically we might expect g(j) to be a polynomial in t, where t is the time in the system. For example, the following thoughts might run through the user's head: "Let's see, its 10:00 a.m. now and I don't really need immediate results since I have other things to do. However, I do need the output before the 3:00 p.m. meeting. Therefore, I will make 2:30 p.m. a primary deadline. If it isn't done before the meeting, I can't use the results before tomorrow morning, so I will make 8:00 a.m. a secondary deadline. If it isn't done by then I can't use the results, so after 8:00 a.m. I don't care." The function g(j) this user is thinking about would probably look something like Figure la. Wow, this type of function poses a problem in that it is difficult for the user to specify accurately and would require an appreciable amount of overhead to remember and compute. Notice, however, that even if turnaround time is immediate, the profit oriented installation manager would put the completed task on a shelf (presumably an inexpensive storage device) 3! 30 pm time Cal Ideal function. 8:00 am g(j) 9i ft rri2 3.30pm 8:00 am time (b) Approximate function. Figure 1. Example of a User's Reward Function. 5 and not give it to the user until just before the deadline-thus collecting the maximum reward. As a result, there is little reason to specifying any- thing more than the deadlines, the rewards associated with meeting the deadlines, and the rate of decrease of the reward between deadlines, if any. Applying this reasoning to Figure la we obtain Figure lb. Note that this function is completely specified with only six parameters (deadlines t , t_; rewards g , g ; and rates of decrease m , iru). In general, we may assume that g(j) is a monotonically non-increasing, piecewise linear, reward function consisting of n distinct sets of deadlines, rewards, and rates of decrease. Thus we can simply specify g(j) with 3n parameters. Note that, in effect, the user specifies an abort time when the g(«j) he specifies becomes less than f(j). If the installation happens to provide a "lower cost" service, f(j) and if g(j) > f(j), this task would be processed, but only when all the tasks with higher g(j) had been processed. Now, what we are really interested in, is not so much an absolute reward, but a ratio of reward to cost. Since f(j) is, at best, only an estimate of cost, we cannot reasonably require a user to specify an absolute reward. A more equitable arrangement would be to specify the rewards in terms of a ratio g(j)/f(j) associated with each deadline. This ratio is more indicative of the relative worth of a task, both to the system and to the user, since it indicates the return on an investment. 2. PRIORITY ASSIGNMENT Let us now turn our attention to the development of a priority assignment scheme which utilizes the reward/cost ratios described in the previous section. We begin by quantizing the continium of reward/cost ratios into R distinct intervals. Each of these intervals is then assigned to one of R priority classes 0, 1, 2, ..., R-l with priority being reserved for tasks with highest reward/cost ratios and priority R-l for tasks with reward/cost ratios of unity or less. A task entering the system will be assigned a priority according to its associated reward/cost ratio. We want to guarantee, if possible, that all priority tasks will meet their deadlines. Furthermore, if all priority tasks can meet their deadlines, we want to guarantee, if possible, that all priority 1 tasks will meet their deadlines and, in general, if all priority k tasks can meet their deadlines, we want to guarantee that as many priority class k+1 tasks as possible will meet their deadlines. To facilitate the priority assignment, we introduce the following notation: For priority k, let T. denote the i task. Then we assume for each T. i l that we receive the following information vector: (T., f/g, d., t., s.) where T. is an identifier, l f/g is the reward/cost ratio associated with meeting the task's deadline, d. is the task's deadline associated with f/g, t. is the maximum processing time for the task, and s. = d. - t., is the latest time at which the task may start processing and still be assured of meeting its deadline. Now since each task has an associated deadline and maximum processing time, we can use the resulting latest start time as the basis for assigning positions to tasks within a priority class. A last come, first served rule will be used to break ties. Additionally, we will use a compacting scheme to ensure that as many tasks as possible start processing before their latest start times . More formally our algorithm may be stated as follows : Priority Assignment Algorithm First, we assign a new task a priority based on its f/g ratio, say priority k. Then within class k, its position is determined as follows: 1. Beginning with the last priority k task (that is, the task with latest deadline) search forward until two tasks, T. ., J-l and T . , are found such that d. _, < d. < d.. Insert T. between the J J-l i J i two tasks, assign it a start time s. = d. - t., and renumber the ill tasks behind T. accordingly (i.e., T. becomes T . , T. becomes J i J J T , etc.). 2. Now, if s. n + t . .. < s. < s., n - t. there is sufficient float J-l J-l - J - J+l J time between T. _ and T., n for T. to be processed on time and the J-l J+l J priority assignment is complete. However, if either s.., +T. n >s.ors. + x.>s., n ,a deadline might be missed: J-l J-l J J J J+l so we proceed with Step 3. 3 . Compacting Scheme . Let f . denote the float time between any two J tasks T. n and T . , where f. is defined: J-l J J f . = s. - (s. + t ) J J J-l J-l Then, F., the total float time preceding T., is given by: J J F. = I f . = s. - t + I T.. J k=l J J k=l J where t is the current time. Now, starting with task T , if s + t > s and F >_ t,, J U J J J J we assign a new starting time to T. given by: J S . = S. ... - T, . J J+l j and we continue with T. . . T. ^, etc. until we encounter a task T, , k ^ j , such that s. < s. . - T. . (Note that T. . k k — k+1 k j+l and all its predecessors are guaranteed to meet their deadlines.) h. However, if s. + x. > s... but F. < t., we do not assign a new J J J+l J J start time to T . . Instead we leave the start time at its latest J critical value, even though it may not start processing at that time. We observe that many tasks may not require all of the processing time specified by their maxima, and as a result sufficient float time may be created later to enable the task, T., to meet its deadline. J Examples . Several examples will now be given to illustrate the efficacy of the algorithm. Suppose we have determined that a task, T. , should have priority k and that at time t = 0, the state of priority class k is that shown in Figure 2. (Note that since all priority class k tasks have similar f/g, we need not show these ratios.) Notice that forming the float time column is analogous to forming a forward difference table. In each of the following examples we assume that Figure 2 is the initial state of priority class k. i) Suppose the information vector (with f/g omitted) for T. is (T. ,6,1,5) Beginning with T , we observe that d < d. <_ d < d, < d . So we insert T. between T and T and renumber the tasks accordingly. I I I I I I 0123456789012345 Ti T 2 T 4 T 5 a) schedule of tasks, Tx d! = 2 Ti - 1 Si = l T 2 d 2 = 4 T 2 = 2 S 2 = 2 T 3 d 3 = 10 T 3 = 3 S3 = ^ T 4 d 4 = 14 T 4 = 2 S 4 = 12 T 5 d 5 = 15 S 5 = 14 v_ J INFORMATION VECTOR FLOAT TIME; f i B) INFORMATION VECTORS. FIGURE 2 -STATE OF PRIORITY CLASS K AT TIME t = 10 Now s n + T- < s_ < s, - t_ since 2 + 2 < 5 < 7 - 1, so the priority 2 2—0—4 5 — — assignment is complete and all tasks are guaranteed to meet their deadlines. The resulting state of priority class k is shown in Figure 3. ii) Suppose instead that the information vector for T. is (T. ,9,2,7). We find that &_ < d, < d_ < d, < d.., so we insert T. between T 21—34 5' i 2 and T and renumber the tasks accordingly. However, s + x > s, since 7 + 2 > 7 and a deadline could he missed. But F >_ x since h >_ 3, so we assign a new start time to T : s = s, - x = 7 - 2 = 5. Now s < s - x since 2 <_ 5 - 2, so the priority assignment is complete and all tasks are guaranteed to meet their deadlines. The resulting state of priority class k is shown in Figure k. (Note the effect of the last in first out rule for breaking ties on start times. ) iii) Next suppose the information vector for T. is (T.,9,^,5). We find that d_. < d. < d„ < d, < d_, so we insert T. between T^ and T„ 2 i — 3^5 i 23 and renumber the tasks accordingly. However, s„ + x > s« since 5 + h > 7» and a deadline could be missed. But F >_ x since k >_ k, so we assign a new start time to T : s^ = s. - x_ = 7 - h = 3. Next s + x > s since 2 + 2 > 3, so we assign a new start time to T : s = s - x = 3 - 2 = 1. Now s + x > s since 1 + 1 > 1, so we assign a new start time to T : s = s - x = 0. The priority assignment is complete and all tasks are guaranteed to meet their deadlines. The resulting state of priority class k is shown in Figure 5- 11 I I I I I I 0123456789012345 Ti T 2 T, T 4 T 5 a) schedule of tasks before assignment. 3 4 5 6 8 9 I I 2 I I I 3 4 5 T x T 2 T: T, T 5 T 6 b) schedule of tasks after assignment, t Tx 2 1 1 T 2 4 2 2 \ T 3 6 1 5 ^ T 4 10 3 7 \ T 5 14 2 12 % T 6 15 1 14 c) information vectors after assignment. FIG. 3- RESULTS OF PRIORITY ASSIGNMENTS FOR EXAMPLE ( j ) 12 I I I I I I 0123456789012345 \ T 2 T 3 Ta T 5 T| a) schedule of tasks before assignment, 234567890 I I I I 2 3 4 5 Ta T 2 T 3 T 4 T 5 T 6 b) schedule of tasks after assignment. t T, 2 1 1 T 2 4 2 2 X T 3 9 2 5 \ T 4 10 3 7 \ T 5 14 2 12 \ T 6 15 1 14 c) information vectors after assignment, FIG, 4 -RESULTS OF PRIORITY ASSIGNMENTS FOR EXAMPLE ( i i ) 13 I I I I I I 0123456789012345 Ti T 2 T 3 T 4 T 5 T, a) schedule of tasks before assignment. I I I I I I 23456789012345 Ti T 2 T 3 T 4 T 5 T 6 b) schedule of tasks after assignment. T x 2 1 T 2 4 2 1 H T 3 9 4 3 ^ T 4 10 3 7 \ T 5 14 2 12 % T 6 15 1 14 c) information vectors after assignment. FIG. 5 -RESULTS OF PRIORITY ASSIGNMENTS FOR EXAMPLE ( i i i ) Ik iv) As a final example, suppose that the information vector for T. is (T.,9,5,U). As before, we find that d < d. <_ d < d, < d , so we insert T. between T^ and T and renumber the tasks accordingly. However, s_ + t > s. since k + 5 > 7, and a deadline could be missed. Furthermore, F < x_ since h < 5, and the compacting scheme will not help us. Instead we leave the start times at their latest critical values and hope that sufficient float time is created later to enable the tasks to meet their deadlines. The results of this assignment are shown in Figure 6. Note that T is the task which is in danger of missing its deadline. The last example brings up the problem of what to do with a task whose deadline is missed. We simply treat it as though it had just entered the system using the next specified deadline as the current deadline. If no further deadlines are specified, the task is assigned priority R-l and will be processed accordingly. When a processor finishes executing a task the following scheduling algorithm is used to determine which task is to be processed next. Generally, the algorithm takes the highest priority task in the queue that Is closest to its latest starting time. Scheduling Algorithm Beginning with k=0. 1. We examine the float time, f , for the first task in priority class k. Then for I = k+1: 15 I I I I I I 0123456789012345 Ti T 2 T 3 T 4 T 5 Ti a) schedule of tasks before assignment. 234567890 I I I I 2 3 4 5 Ti T 2 T. T 5 T 6 b) schedule of tasks after assignment. t Tx 2 1 1 T 2 4 2 2 X T 3 9 4 5 \ 1 4 r 10 3 7 \ T 5 14 2 12 \ T 6 15 1 14 C) INFORMATION VECTORS AFTER ASSIGNMENT. FIG. 6- RESULTS OF PRIORITY ASSIGNMENTS FOR EXAMPLE ( i V ) 16 2. If f of priority class k <_t for the first task of priority- class &, we set k.=l and continue with Step 1. Otherwise we continue with Step 3. 3. Set H = 2.+1 and continue with Step 2 until all priority classes have been considered. Then continue with Step k. h. Assign the first task, T , in priority k to the available processor. In the foregoing we have tacitly assumed that each task enters the system sufficiently before its deadline to allow processing. The two algorithms taken together facilitate meeting the deadlines, where possible, of the higher priority tasks. Those tasks which do not meet their deadlines will tend to be uniformly late. IT 3. LOAD LEVELING IN A NETWORK OF CENTERS Thus far we have been concerned only with cost effectiveness in a single center. Next, let us consider the more general problem of load leveling within a network of centers. Each center may contain a single computer or a subnet of computers. The topological and physical properties of such networks have been illustrated (1,5,6,7) and will not be discussed here. We wish to determine a strategy which optimizes the value of work performed by the network computer. That is, to guarantee that every task in each center will be processed, if possible, before its deadline and only those tasks that offer the least reward to the network will miss their deadlines. Implicit in this discussion is the simplifying assumption that any task can be performed in any center. Removal of this restrictive assumption leads to many interesting problems for future research. We define the measure of cost effectiveness for a network of N centers, y, T , as follows : N N y, t = T w.y. given that V u>. = 1 'N . L . i' 1 . L . i i=l i=l where the to. are weighting factors that reflect the relative contribution of the i center to the overall computational capability of the network, th and y. is the measure of cost effectiveness for the i center. i Note that if a center is a subnet of computers, we could employ this definition to determine the measure of cost effectiveness for the subnet. We also let c. . denote the cost of communication between centers i and j; and t as the transmissior time between centers i and j . 18 Ideally, we want the network computer to operate so that all tasks within the network are processed before their deadlines. If a task is in danger of missing its deadline, we want to consider it as a candidate for transmission to another center for processing. The determination of which tasks should be transferred follows the priority assignment (i.e., priority tasks in danger of missing deadlines should be the first to be considered, priority 1 tasks next, etc.). We note that this scheme may not discover all tasks that are in danger of missing their deadlines. In order to discover all tasks that might be in danger of missing their deadlines, we would require a look ahead scheme to determine the available float time and to fit lower priority tasks into this float time. The value of such a scheme is questionable, however, since we assume some float time is created during processing and additional float time may be created by sending high priority tasks to other centers. Also, the overhead associated with executing the look ahead scheme would further reduce the probable gain of such a scheme. The determination of which center should be the recipient of a transmitted task can be determined from the measure of cost effectiveness of each center. Recall that the measure indicates the worth of the work to be processed within a center. Thus, a center with a task in danger of missing its deadline will have a larger measure than a center with available float time. Thus, by examining the measures for each center, we can determine the likely recipient of tasks to be transmitted. These centers can in turn, examine their own queues and bid for additional work on the basis of their available float time. This approach has a decided economic advantage over broad- casting the availability of work throughout the network and transmitting the tasks to the first center to respond (h) . 19 Once a recipient center has been determined, we would transmit a given task only if the loss in reward associated with not meeting its deadline is greater than c.., the cost of transmitting the task between centers and transmitting back the results. When a task is transmitted to a new center its deadline is diminished by t. ., the time to transmit back the results, thus ensuring the task will J- J reach its destination before its true deadline. Similarly, the reward associated with meeting the task's deadline is diminished by c.., since this represents a reduction in profit. Then the task's f/g ratio is used to determine a new priority and the task is treated like one originating in that center . This huristic algorithm provides the desired results that within each center all deadlines are met, if possible, and if any task is in danger of missing its deadline, it is considered for possible transmission to another center which can meet the deadline. 20 h . SUMMARY We have introduced a priority assignment technique which, together with the scheduling algorithm, provides a new approach to resource allocation. The most important innovation in this approach is that it allows a computing installation to maximize reward for the use of resources while allowing the user to specify deadlines for his results. The demand by users upon the resources of a computing installation is translated into rewards for the center. This approach offers advantages to the user and to the computing installation. The user can exercise control over the processing of his task by specifying its reward/cost ratio which, in turn, determines the importance the installation attaches to his requests. The increased flexibility to the user in specifying rewards for meeting deadlines yields increased reward to the center. Thus the computing installation becomes cost effective, since for a given interval of time, the installation can process those tasks which return the maximum reward. A notable point here, is that this system readily lends itself to measurement. The measure of cost effectiveness is designed to reflect the status of a center using the priority assignment technique. From its definition, the value of the measure depends not only on the presence of tasks in the system but upon the priority of these tasks. Thus the measure reflects the worth of the tasks awaiting execution rather than just the number of tasks. Therefore, the measure can be used both, statically, to record the operation of a center and, dynamically, to determine the probability of available float time. This attribute enables us to predict the worth of the work to be performed in any center in the network and facilitates load-leveling between centers. 21 Finally, our approach treats a network computer as the economic entity that it should be: a market place in which vendors compete for customers and in which users contend for scarce resources. The development of this approach is a first step in the long road to achieving economic viability in network computers. 22 REFERENCES 1. Abramson, Norman, The AL0HA System , University of Hawaii Technical Report, January, 1972. 2. Bowdon, E. K., Sr . , "Dispatching in Network Computers," Proceedings of the Symposium on Computer-Communications , Networks and Teletraf fie , April, 1972. 3. Bowdon, E. K., Sr . , and W. J. Barr, "Throughput Optimization in Network Computers," Proceedings of the Fifth International Conference of Systems Sciences , Honolulu, January, 1972. k. Farber, David J., and Kenneth C. Larson, Supplement to Proposal for Research Submitted to the National Science Foundation on Distributed Computing System , University of California at Irvine, Technical Report, October, 1970. 5. Frank, H., and I. T. Frisch, Communication , Transmission and Transportation Networks , Addi son-Wesley, 1971. 6. Kleinrock, L., Communication Nets ; Stochastic Flow and Delay , McGraw-Hill, New York, 196k. 7. Syski, R. , Introduction to Congestion Theory in Telephone Systems , Oliver and Boyd, Edinburgh, i960. 23 IBLIOGRAPHIC DATA HEET 1. Report No. UIUCDCS-R72-50Q "Title .in.i Subt itlr Cost Effective Priority Assignment in Network Computers 3. Recipient's Accession No. 5- Report Date March 1972 \utliori* ■* Edward K. Bowdon, Sr. and William J. Barr 8. Performing Organization Rept. No. Performing Organization Name and Address Department of Computer Science University of Illinois Urbana, Illinois 6l801 10. Project/Task/Work Unit No. 11. Contract/Grant No. NSF GJ 28289 I Sponsoring Organization Name and Address National Science Foundation Washington, DC 13. Type of Report & Period Covered Research 14. 5. Supplementary Notes ;. Abstracts With the advent of network computers, a new area of computer systems analysis as evolved. Unfortunately, most of the work which has been done to date merely xtends the previously existing theory of communications. While this work has been ery fruitful and produced important results, our analysis is predicated on the sumption that a geographically distributed network computer is, in reality, quite ifferent from telephone networks and individual computing centers. In this paper, we focus our attention on the probable goals of the networks define a measure of cost effectiveness. Then using this measure we develop a iority assignment technique for the individual centers that comprise the network, conclude by expanding the measure of cost effectiveness to determine load leveling ules for the entire network. '. Key Words and Document Analysis. 17a. Descriptors Network Computer, Queueing Theory, System Modeling, Throughput Analysis Dispatching, Load Leveling b. Identifiers/Open-Ended Terms c COSATI Field/Group •Availability Statement Release unlimited R M NTIS-35 19. Security Class (This Report) UNCLASSIFIED 20. Security Class (Ihis Page UNCLASSIFIED 21. No. of Pages 23 22. Price USCOMM-DC 40329-P7I 1 V