LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAICN XStlaY 'Ik** 4-316 V 2 - Report No. 380 /ymZti A SIMULATION STUDY OF A DISK STORAGE ALLOCATION SYSTEM by Judy Ann Lender April 30, 1970 ILLIAC IV Document No. 210 Digitized by the Internet Archive in 2013 http://archive.org/details/simulationstudyo380lend Report No. 38O A SIMULATION STUDY OF A DISK STORAGE ALLOCATION SYSTEM* by Judy Ann Lender April 30, 1970 Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 This work was supported in part "by the Advanced Research Projects Agency as administered "by the Rome Air Development Center under Contract No. USAF 30(602)-lj-lW- and submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science, January 1970. 11 ABSTRACT This report gives a discussion of the field of simulation. The use of the simulation language SIMULA, is then used to program general disk storage allocation simulators with application for use in testing allocation algorithms for the ILLIAC IV disk file allocator. Finally the concept of system design by using simulation in the design phase at various design levels is presented, with emphasis on using SIMULA, for design from the hardware level upward. Ill ACKNOWLEDGEMENT The author would like to express her gratitude to Dr. R.S. Northcote and other members of the ILLIAC IV staff, for their valuable assistance and encouragement in this work. The encouragement and advice from the ILLIAC IV Operating System staff and Mr. Marvin Graham is especially deeply appreciated. Thanks also goes to Mrs. Kay Flessner for the typing of this manu- script. Finally, the author would like to express her appreciation to the Department of Computer Science for making this work possible. IV TABLE OF CONTENTS Page 1. INTRODUCTION 1 2. MODEL BUILDING AND SIMULATION LANGUAGES 2 2.1 Philosophy of Model Building 2 2.2 Design of Simulation Languages 5 2.2.1 General Consideration 5 2.2.2 Discussion of SIMULA 7 3. USE OF SIMULATION FOR STUDYING CERTAIN ASPECTS OF A SYSTEM 12 3.1 Discussion 12 3.2 The ILLIAC IV Disk File Allocator Simulator 12 3.2.1 The Component to be Studied--The Disk File Allocator Procedure 12 3.2.2 The Structure of the Simulator Ik 3.2.2.1 Basic Structure of a Dynamic Storage Allocator System Ik 3.2.2.2 Evolution to the ILLIAC IV Disk File Allocator Simulator 17 3.2.2.3 Discussion of the Problems Encountered in Coding the Simulator 20 h. USE OF SIMULATION IN SYSTEMS DESIGN 21 4.1 Review of the Literature 21 4.1.1 The "Top Down" Approach to Systems Design ........ 21 4.1.2 Levels of Design and Properties of Simulation Languages for Each Level 22 Page k.2 Use of SIMULA in Systems Design • . 26 1+.2.1 Discussion 26 4.2.2 Example 27 5 • SUMMARY 30 APPENDIX A. INSTRUCTIONS FOR COMPILING THE SIMULATOR 32 B. ADDITIONS TO THE B5500 IMPLEMENTATION OF SIMULA 35 B-l PROCEDURE PEAKEDDRAW 35 B-2 SIMULA/MERGE 37 B-3 PROCEDURE REPLACE 1+0 C A SIMPLE DISK FILE ALLOCATOR SIMULATOR kl C-l THE SOURCE CODE kl C-2 A SAMPLE OF THE EXECUTION OUTPUT hS D. THE ILLIAC IV DISK FILE ALLOCATOR SIMULATOR 62 D-l THE SIMULA TRANSLATABLE PORTION — The Simulator Skeleton (SLMULA/TI^DISK) 62 D-2 THE SIMULA UNTRANSLATABLE PORTION -- THE DISK FILE ALLOCATOR AND TREEBUILD PROCEDURES, GLOBAL DECLARATIONS AND DEFINITIONS (SIMULA/ALLOC) 69 D-3 SAMPLE OF EXECUTION OUTPUT 95 LIST OF REFERENCES 109 1 . INTRODUCTION There are basically three purposes for simulation: (l) studying the behavior of a system, (2) training purposes, and (3) systems design. By far, the most extensive use of simulation has been in the first two areas. A simulator built for either or both of the first two purposes has always been built subsequent to or concurrent with the system which it is simulating. Therefore, the simulator is well-defined in the sense that the simulated system has undergone fairly extensive definition. In systems design, however, this order is reversed and a simulator is built before the design is finalized. This is a simulator of system behavior rather than a simulator of well-defined physical components, and the simulator itself is used as a tool to bring the system to a well-defined state. Of course, studying the behavior of a working system often leads to modifications in the design of that system also. Much of this paper will describe a simulator designed for the first purpose mentioned above; that of studying the behavior of the disk file allo- cator algorithm for the ILLIAC IV disk. The simulator sets up a dynamic input- output environment for the disk file allocator by simulating file requests whose entries to the system are time dependent. The objective of this paper, however, is not so much to describe and demonstrate a few lines of code, but to disclose the disciplines involved in model building and systems design. For this reason, the simulator men- tioned above will be discussed only for the purpose of demonstrating the dis- cipline of model building and simulator design. The paper will be concluded with a discussion of the use of simulation in systems design, including a short review of the literature and, finally, this author's own proposal for the use of SIMULA for this purpose. 2. MODEL BUILDING AMD SIMULATION LANGUAGES 2.1 Philosophy of Model Building Basic to every concept discussed in this paper is the notion of a "system", for it is a "system" that will be modelled and simulated. Therefore, it is necessary to define precisely what is meant by the term and related terms within the scope of this paper. A system is a connected set of components whose behavior is self- determined. By self-determined it is meant that the state and outputs of the system can be predicted from knowledge of the previous state of the system and the inputs. A component is a device or program which is self-determined and may, in fact, be a system itself. By connected it is meant that the inputs to some of the components may be the outputs of other components of the system. A system may be a component of another system, so the distinction between system and component is one of level depending upon the system definition of the researcher doing the modelling. The. most important and necessary require- ment of all components defined for a particular system is that they have well- defined behavior, or it must be possible to find an algorithm which describes their behavior. The above definitions conform to those used in the literature and, while there may be systems which do not fit the above definition, computer systems, either hardware or software, do fit the definition. It is clear that these definitions deal with the model, or static representation, of the system. The following are definitions that refer to the dynamic aspects of a simula- tion, or model manipulation, in order to achieve a "motion picture" of reality. The definitions will be extended later in connection with the discussions on simulation languages. An event is an active instance of a component in time. For example, if the component happens to be a device, the event is the manipulation of that particular device as it occurs in a dynamic relationship with the other compo- nents in the system. If the component in question should he a program, the event is the execution of that program as it occurs in relation to the rest of the system. The concept of an event is one basic to any discussion of simula- tion and simulation languages. This author wishes to define the term s imulat ion in the following way, which hopefully will aid the reader in visualizing a static representa- tion of a dynamic situation. First, however, two preliminary definitions are in order. A linear time relationship among events is one in which the events occur in increasing time intervals (simultaneity is not implied) or nonde- creasing time intervals (simultaneity is implied). An event set is an ordered collection of events which exist in an increasing time relationship to one another. Finally, a simulation is a set of event sets. Underlying the construction of any model of a real world system is a certain "way of looking at things" or discipline necessary to facilitate the description of the model. It will be seen later that simulation languages are constructed around this discipline. The remainder of this chapter is a pre- sentation of the philosophy of model building, as applied to computers. It should be fairly obvious by the preceding discussion that the first problem is to define the separate components of the system under inves- tigation. These components are either fairly evident by their physical nature or are determined on the basis of their behavior relevant to the particular aspect of the system being studied. In illustration of the criteria for determining individual components of a system, consider a dynamic storage allocation system. A general problem of the allocation type can he described by four characteristics: (l) receipt of the request, (2) allocation of the request, (3) use of the allocated space, and {k) release of the space. No dynamic storage allocation problem could be described with the omission of any one of these characteristics and, therefore, they constitute the components of the model. Construction of the model will begin with defining the precise be- havior of each of these components with respect to the particular allocation system under consideration. For example, if the times of arrival of requests are random, as is generally the case, then a queue must be added to the model to hold requests until allocation can take place. The next problem encountered after the components of the system have been defined are the interactions of these components with one another. All relevant component interactions must be defined. For example, the component which receives the request in the dynamic storage allocation problem interacts directly with the component which performs the allocation by initiating or "calling" it, and also passes data (the request) to that component. Two individual researchers might view a particular system differently, and it should be apparent that the definitions of the components of a particu- lar system are by no means fixed and absolute. They exist "in the mind of the beholder" so to speak. A different way of viewing the dynamic storage alloca- tion problem might be the following. Since allocation of this type is essen- tially the manipulation of a free space map, or list, the components might be defined as follows on a more physical (or structural) rather than a functional (or behavioral) basis: (l) the queue, (2) the free space list, and (3) the in-use list. Descriptions of the interactions of these components with one another would consist of algorithms changing the physical contents of one com- ponent based on the input of another, rather than a change of state, as with a more functionally-defined component. In summary, to construct a model of any physical system, it is necessary to determine the separate components and to describe the inter- actions of each of these components with the other components in the system. More specifically, these components perform actions and they are data carriers for certain other components of the system. Therefore, definition of each of the components of the system and a description of the actions and data handled by each component will constitute a description of the model to be constructed and the simulator itself. This is the rationale behind most simulation languages; that a component is described by a discrete entity usually known as a process and that a system description in terms of the specific simulation lan- guage involved also constitutes the source code of the simulation program. 2.2 Design of Simulation Languages 2.2.1 General Consideration One definition of a simulation model is the following: the representation of a dynamic system in a form suitable for manipulation by a computer. The key word here is "dynamic" meaning a change of state as a function of time. In defining the components of the model to be simulated, it was not necessary to consider this aspect of a simulation model. However, this aspect constitutes the major problem in the design of all simulation languages. To get an idea of the factors determining the design of a sim- ulation language, consider a set of events in the real world. First there is an interdependence among the events. Every real world event depends on the events preceding it and, in turn, will affect those events which succeed it. At this time the author would like to extend the definition of an event set , keeping in mind that an event is one specific instance of a process. An event set is an ordered set of events, all members not neces- sarily distinct from those of a separate event set, but with the property that if one event is a member of two event sets, then all succeeding events are also members of both sets. Each event of an event set is directly activated by the preceding event and, in turn, directly activates the succeeding event. This is implied by the fact that, as stated previously, the ordering is linear by increasing times. Second, the time-ordered occurrence and interdependency of mem- bers of an event set illustrate continuity in the set of real world events. Third, each event is unique in that it occurs once and only once in the real world. Finally, the real world is distinctive for its simultaneity or, in terms of the definitions given so far in this paper, it gives the appearance of being a set, or system, of event sets utilizing a common time stream. Any simulation language must be able to deal effectively with these four aspects: interdependence, continuity, uniqueness, and simul- taneity. The next section will describe how SIMULA, an AIGOL-based simulation language, handles these aspects. 7 2.2.2 Discussion of SIMULA Consider first the two basic problems which must be handled, by any simulation language, namely, component description and the handling of the dynamic aspects of a simulation. SIMULA describes a component of a system as a class of processes which are described programmatically by an activity declaration, but which allows for the inclusion of SIMULA sequencing statements (to be defined later). A process can be in one of four possible states; active, suspended, passive, and terminated. If a process is active, it is cur- rently being executed in the simulation. These states will be discussed in more detail later. Processes can be referenced individually by a pointer to an area of memory containing the data local to the process and some additional information defining its current state of execution. These pointers are called elements . In fact, if a process must be referred to after its initial activation, the reference must be through an element representing that process. Formally, an element is declared to be of type element . Example : element pat 5 activity secretary (redhaired, thumbs) j boolean redhaired; integer thumbs; begin . . . end ; pat : = new secretary (true, 10 ) 5 8 There are two distinctions to be noted here. A process is one dynamic instance of an activity declaration which includes any of the four possible states . An event is one active instance of a process and is considered to take place in one instant of simulation system time (SST) since the computer can perform only one state change at a time, and updating the SST would itself be such a change. The dynamic aspect of the simulation is controlled by the sequencing set (SQS) which is a set of event notices for which events have been scheduled but not completed. An event notice contains a reference to the associated pro- cess (through an element) and a real number, called its time reference. The SQS is ordered according to nondecreasing time references. The event notices at the "lower end" of the SQS is called the current event notice; its associ- ated process is the currently active one and its time reference is regarded as the current value of the simulation system time. Event notices in the SQS are manipulated by statements called sequencing statements . One cannot write a simulator in SIMULA, or any other simulation language for that matter, nor can one satisfactorily describe a system to be simulated unless one has a clear understanding of the sequencing statements and how they affect the SQS. Similar constructs are used in other simulation languages. Before describing the sequencing statements, it is necessary to describe in further detail the four possible states: (1) active—the currently active process can, by sequencing statements, alter the states of pro- cesses, including its own. (2) suspended—a suspended process has an associated event notice and a reactivation point, the point at which control reenters the process at the time of its next active phase, namely the place where it most recently left its previously active phase. Unless a change of state is caused by another pro- cess, the next active phase of this process will start when the event notice becomes the current one. (3) passive--a passive process has a reactivation point, but no associated event notice. It will remain passive until a change of state is caused by another process. At the time of generation a process is passive, and its . reactivation point is in front of the first statement of its operation rule. (k) terminated—a process becomes terminated whenever control passes through the final end of its operation rule. Such a process has no reactivation point and no event notice. The state of a terminated process cannot be altered by- ordinary sequencing statements. A process will remain part of the system at least as long as it has an asso- ciated event notice. Sequencing statements are statements operating on the SQS, thereby altering the states of processes. A sequencing statement may delete an event notice and/ or schedule an event by generating an event notice. The basic sequencing statements are: (1) cancel (), which in addition to deleting the event notice, also deletes the reactiva- tion point, if any; (3) scheduling statements, which usually generate an event notice for a specified process and include it in the SQS; in addition, the statement will specify explicitly either the time reference of the event notice, or its position in the SQS- The basic scheduling statements are special syntactic constructs as follows : activator : := activate reactivate simple timing clause : := at | delay timing clause : := | prior : := | before | after : := 10 The activator activate will cause the generation of an event notice only if the referenced process is passive, whereas reactivate in addition will delete the event notice associated with an active or suspended process and "re- schedule" the event. A timing clause specifies the time reference of the gen- erated event notice and this determines its position in the SQS. The event notice is normally placed "behind all others with the same time reference, but it can also be placed in front of these event notices by adding the symbol prior . The reader is referred to the paper by Dahl and Nygaard [1] and the manual on the B5500 implementation of SIMULA. [2] for a more complete descrip- tion of the language. Now, consider the four characteristics of a real world system. The SIMULA construct which handles each one will now be discussed. First, there is the characteristic of interdependence. It was men- tioned earlier that a process has two aspects; it is a data carrier and it per- forms actions. SIMULA has a construct called a connective statement which allows a process to access the local variables of another process. Therefore, not only can one process "schedule" another process or otherwise change its event notice in the SQS, but a process can also pass parameters to another process as one would with Algol procedures, or access the local variables of another process through the connective statement. The SQS, if all of its contents could somehow be saved throughout the simulation, would clearly be a set of event sets as defined in the pre- ceding section. This jjnplies that it is ordered by nondecreasing simulation system times. Continuity is maintained in that processes are activated and become current in the order of nondecreasing SSTs in the SQS. 11 The uniqueness of an event is inherent in its SIMULA definition, an active instance of a process which occurs once and only once throughout the simulation. Two or more event notices can exist in the SQS with the same time reference and, even though the processes referenced by these event notices are executed by their positions in the SQS, as far as the simulation is concerned, they occur simultaneously. 12 3- USE OF SIMULATION FOR STUDYING CERTAIN ASPECTS OF A SYSTEM 3-1 Discussion By far the most extensive use of simulation is in the area of study- ing the behavior of certain aspects of a fairly well-defined system. This im- plies that many hours were spent in design in conferences and at the drawing boards, and also in the fabrication of the actual system before consideration was given to a simulation study. In constructing a simulator for this purpose, the component being studied should exist as a procedure, identical in every way to the real world component of the system; those components which directly interface with the component or constitute the input to the component under study may be required also to be procedures, or at least contain parts of the actual code of the real system. This constitutes the most important and most difficult part of sim- ulator design, that of determining realistic driving for the component and relevant input based on the researcher's own specific purpose for the study. If unnecessary or infeasible to give a real world definition to the components interfacing with the component under study, it is usual to design an activity giving a statistical representation of the behavior of that com- ponent. For this reason, most simulation languages include several procedures which generate random numbers according to various distributions. 3-2 The ILLIAC IV Disk File Allocator Simulator 3.2.1 The Component to be Studied--The Disk File Allocator Procedure According to Mills and Alsberg, [k] , allocation of the ILLIAC IV disk among jobs requesting space is a non-trivial programming task due to phase and channel relationships which can be specified by the programmer. 13 ILLIAC IV programs will be heavily I/O bound and disk latency must be minimized. Therefore, it is essential that some means be devised by which allocation al- gorithms can be easily tested and revised. Such a means is obviously a simu- lator. In the following paragraphs a simulator will be constructed according to the criteria established in earlier sections. The Disk File Allocator takes a specific request for disk space and attempts to allocate this space by utilizing a map of free disk space. It is a modular component of the ILLIAC IV Operating System. Thus, the allocator itself exists in the simulator as a procedure, PROCEDURE ALLOCATE, in the actual coded form that it has in the operating system. It should be obvious at this point that if the real world system has a modular design, definition of some of the phases of simulating that system will be quite trivial. Another system, whose component boundaries are not well-defined might prove to be a little more difficult, and would require extra care and definition on the part of the researcher in order that no relevant factors be left out. The allocator takes its request data from two arrays that are de- signed on the concept of levels of blocks. This structure of the request data is called the allocation tree . Allocation begins with the highest level in the disk hardware hierarchy, the electronic units (EUs), allocates them, and then descends through the rest of the hardware levels, the storage units (SUs), tracks (TRKs), and segments (SEGs). The blocks are arranged corresponding to this same hierarchy with an EU level block containing the EU number, the phys- ical or virtual bit, pointers to the SU level block, the TRK level block, and the assignment block which contains specific information as to how the space is to be allocated within segments, and an indication as to whether the request is phased or contiguous or, if neither, that it is in the "junk" category, meaning that it can be allocated anywhere there are segments available. 1U The allocation tree, which constitutes the direct input to the al- locator itself, is created by a procedure called TREEBUILD. This procedure, at the time of the design of the simulator, had been coded and debugged. A quick analysis showed the desirability of including the TREEBUILD procedure in the simulator rather than to hard code data for the allocator in the form in which it is utilized. An allocation tree is not built for a particular re- quest until the time for an allocation attempt. The input to TREEBUILD is in the form of a structure called a disk file block. This block is created by the job parser from ICL file specifica- tion statements at the time the request enters the operating system. As soon as the job parser is debugged, it should be added to the simulator. This will allow complete flexibility of the input in that the disk file requests may be input as ICL statements. The simulator has been designed in order to facil- itate additions such as the above. Instructions for the addition are given in a later section of this report. 3-2.2 The Structure of the Simulator 3-2.2.1 Basic Structure of a Dynamic Storage Allocator System The "core" of the simulator has been determined; it is made up of the procedures ALLOCATE and TREEBUILD, whose actual code was lifted straight from the operating system. Next, there is the problem of defining the structure of the simulator, which is primarily devoted to driving the input to procedure TREEBUILD. The output of the simulator is left entirely to the discretion of the designer and is not a factor in a discussion of the simulator structure. Consider a general dynamic storage allocation problem, including a storage medium with a finite number of units available for allocation and a queue of requests, each for some integer less than or equal to the total num- ber of units available for allocation, representing the number of contiguous 15 units of storage requested. Following allocation, these units will be held for a finite length of time and then again be made available for allocation. As indicated in an earlier chapter, there are four main character- istics of any allocation problem: (l) receipt of the request, (2) allocation of the request, (3) the holding of the allocated space, and (k) release of the space. Since there is no constraint upon the times of arrival of requests to the system under consideration and since allocation handles only one request at a time and requires a finite amount of time for each one* a fifth characteristic, queueing of the requests, is added to this system. In the following paragraphs, each of these characteristics will be described as functional activities in the simulator, and the data they carry and the actions they perform will be dis- cussed. Receipt of the request . In the real world, requests enter the system at random times. Therefore, the times of entrance are chosen randomly from a uniform distribution provided by a SIMULA procedure. Actually this characteristic is best handled in the simulator by two activities, one to gen- erate the request and the other to receive and queue it. The main difference in concept between these two procedures is that one, the activity to receive and queue the request, is part of the system and the other, the request gen- erator, is not. This request generator is the driver of the whole simulation. If there is a system which exists entirely in the form of real -world procedures, and if its input is in the form of a driver activity, then it is still a sim- ulator. This fact and considerations leading to it will form the basis of a subsequent chapter. Allocation of the Request . Functionally an allocation attempt in- volves the following steps. First, the queue is accessed and the information on the head element of the queue is obtained. The allocator procedure then is called and an allocation attempt occurs. If the allocation was successful, 16 the reference to the request is removed from the queue. The request just allocated goes into the state of utilization of the allocated space, i.e., the space is unavailable for allocation to another request and it does not exist in the free space list. Obviously, if the queue is empty, then the allocation attempt is bypassed. The above describes two separate events, the accessing of the queue and the allocation attempt. These events could have been described as two separate activities; however, they occur during the same system time in this example. If it had been desired to increment the system time by any amount between the execution of any two separate entities within the same activity, all that is needed in SIMULA is to insert reactivate current delay prior . As mentioned previously, the symbol prior places the time reference of this generated event notice in front of all others with the same time refer- ence in the SQS • Holding of the Allocated Space . The behavior of this phase merely constitutes a hold through several system times and simulates the behavior of some occurrence that utilizes the allocated space. The amount of time that the space is held is, of course, generated randomly, either from a uniformly distributed stream, or from some other distribution based upon previous anal- ysis. Release of the Allocated Space . Since simulation of the utiliza- tion of the space is only a hold, this aspect and the calling of the proce- dure to release the space are combined into one activity. The hold is ran- domly generated as mentioned above. As a preliminary demonstration of the use of SIMULA to construct a dynamic storage allocation simulator, an algorithm for reserving variable- sized blocks of memory from a larger storage area was used. This algorithm, 17 and its companion algorithm for releasing this storage area, is very similar to the first-fit and liberation algorithms of Knuth [3], except that the algo- rithms were modified to manipulate a separate directory of available space in- stead of using the available space itself to contain such a list, as done in Knuth' s example. This was done because the disk file allocator of the ILLIAC IV Operating System will use a free space map and because, in dealing with allo- cation of disk space, the nonuniform access time makes it better to maintain a separate directory of available space. The SIMULA, source code and a sample of the output are given in Appendix C 3-2.2.2 Evolution to the ILLIAC IV Disk File Allocator Simulator No activities were added or deleted in the transition from the small simulation of Knuth 's algorithms to a simulator of the ILLIAC IV allocation process. The basic ingredients of any dynamic storage allocation scheme are no different in this case. What has changed is the behavior of some of the individual activities. These will now be discussed. The "driver" or request generator . As work progresses in this phase of the operating system, this activity often will be changed to accept input in various ways. At the present time, the activity calls a procedure which reads cards in the format of the disk file block (created by the job parser in the actual operating system) and puts the data from these cards into a file called PASSFLLE which is accessed by procedure TREEBUILD. This activity contains a loop which increments a request count and then activates the process which queues the request. The request is identified in the system by its number. One might argue that it would be more proper for the number assign- ment to take place within the activity which queues the request in that it is within the system and number assignment will, of course, take place within the system. By definition the driver activity does not do any more than drive the 18 system. It should perform none of the activities of the system. However, in a simulation designed for study of a certain aspect of a system, the aspect itself becomes the system (from the simulator's standpoint) and its boundaries are determined completely by the most convenient interpretation for the de- signer. Later versions of this activity, as mentioned in an earlier section, might include the portion of the job parser which builds the disk file block from the ICL file request statements. This would provide the most flexible input. However, short of having the job parser, a suggestion for a method of input would be to set up ten or twenty data sets each representing a file block entry for one job's file requests, put these data sets into a file, and then draw randomly from this file as the simulation proceeds. Because of the sim- plicity of this activity, the user of the simulator may be as creative as he wishes as far as input to the system is concerned. Activity Queuerequest . The ILLIAC IV Operating System will have several queues, called categories, each based upon a value representing maxi- mum time requirements for execution. This value is called a timeshard and the basic timeshard unit is a quadrant minute [k] . The simulator was designed so that the researcher may read in on cards the number of queues and the value of the timeshard of each. Activity Queuerequest puts the request in the proper queue based on the execution time estimate entered with the job. The researcher may wish to add a priority scheme within queues as such a scheme becomes defined for ILLIAC IV. Activity Supervisor . This activity has been modified from the simple basic example more than any other, due to the ILLIAC IV Operating System's procedure for choosing the next job to be allocated. This procedure 19 is as follows: The supervisor goes first to the category of queue with the smallest timeshard and checks the timeslice value of the queue. If this value is greater than zero and the queue is not empty, the supervisor tries to allo- cate the next job in the queue, etc. If the allocation attempts for all jobs in a particular queue are unsuccessful, or if the queue is empty, or if the timeslice for the queue is less than or equal to zero, then the supervisor moves to the next queue in the order of the increasing timeshard value. If all the timeslice values of the nonempty queues are less than or equal to zero, then the timeshard value for that queue is added to the current timeslice value. If the resulting value is greater than zero, then the timeslice value is set equal to the timeshard value. This reinitializes all queues to positive time- slices. When a successful allocation occurs, the job is removed from the queue . Activity Job running . This activity, which simulates execution time or the time that allocated space is unavailable for reallocation, was changed only to the extent that a peaked random number distribution, peaked about a certain value, was used instead of the uniform distribution. The derivation of this procedure for drawing from a peaked number distribution is given in Appendix B.l. It should be obvious that any level of sophistication may be reached within an activity. This, again, is an illustration of the top-down approach in the study of systems. The SIMULA source code and examples of execution output are given in Appendix D. 20 3-2.2.3 Discussion of the Problems Encountered in Coding the Simulator The current SIMULA translator cannot handle ALGOL constructs such as parameterized defines and case statements, both of which are used exten- sively in the disk file allocator and its array defines. Therefore, the source code for the simulator exists in two parts: (l) the SIMULA untrans- latable portion, consisting of the disk file allocator, its procedures TREE- BUILD and ALLOCATE, and its array declarations and defines, and (2) the SIMULA translatable portion, consisting of the main SIMULA block and a few variables global to this block. This portion includes dummy declarations for those items in the untranslatable code which need to be declared to the SIMULA translator and a control section for a program called SIMULA/MERGE, which is used to merge the translated portion with the untranslatable portion prior to the ALGOL com- pile of the complete simulator. The translation and compilation phases of the simulator are discussed in Appendix A, and the code for SIMULA/MERGE is con- tained in Appendix B.2. 21 k. USE OF SIMULATION IN SYSTEMS DESIGN 4.1 Review of the Literature 4.1.1 The "Top Down" Approach to Systems Design In most problem solving situations, the emphasis is first to define the problem precisely before going about devising a method of solution. How- ever, when one considers the design of complex systems, it is not always pos- sible to define precisely the goal of the design process. It is possible, however, to state rather definitely what functions the system is to perform, i.e., the system definition at the design stage is oriented more toward the behavioral , rather than a physical or structural, definition. As noted in the discussion on simulation languages one factor common to all is the existence of an entity to describe a component of the system, either functional or structural. Obviously, if one has defined the behavior of the system to be designed, a simulator may be written to simulate that behavior. Then the simulated system may be broken up into components and their interconnections, specifying the behavior of each component. Then, in turn, each of these components is broken up into subcomponents with inter- connections and behavior specified, and so on, until the final design level, in which units small enough to be completely designed, are obtained. The approach just described is known as the "top down" approach to systems design and, as demonstrated, involves starting at the "top" with a complete specification of the behavior of the system and then breaking the system into smaller and smaller components until the system is specified in terms of the basic building units. Another advantage of designing a system by the top down discipline is that it promotes modularity of the resulting system. Modular systems are 22 by far the easiest to debug, easiest to modify, and are by far the most aes- thetically pleasing to the experienced and inexperienced system designer alike. J+.1.2 Levels of Design and Properties of Simulation Languages for Each Level Simulation languages used for the purpose of systems design must, according to a paper by David L. Parnas and John A. Darringer [5], have certain specifications if they are to be useful. In a later article [6], Parnas indi- cates that the features of the language will be different, depending upon the level of design desired, level in this instance referring to levels of func- tional decomposition ( hardware and software being indicative of a level accord- ing to this definition) rather than referring to "levels of abstraction", or the number of times a component is decomposed into subcomponents during the de- sign phase. The word level will have both meanings in this paper and the specific meaning in context should be obvious. If the reader is confused, he is referred to the article by Parnas and Darringer [6] in which at least two paragraphs are devoted to the two meanings of the word. Parnas and Darringer attempted to construct a language that could be used for design by simulation. In their paper [5], they give several charac- teristics that such a simulation language must have. However, in the later article, Parnas points out the flaws in his original language SODAS which re- stricted it to a very limited class of systems, that of single level computer hardware systems. In this second paper Parnas proposes some improvements and modifications to SODAS in formulating a new language, SOCS, which will allow the design of hardware and software systems of two or more levels. He refers to this computer system class as the Operating Computer Systems, since it usually includes both hardware and the software known as the operating system for the hardware. SOCS allows the design of systems in which the decision of which components are to be hardware and which are to be software may be delayed 23 until very late in the design. The unit Parnas selects which allows him to postpone any decisions about hardware and software is the sequential process , which he describes as a fully ordered set of events in an operating computing system that may be performed either by hardware or by software. Parnas' languages, SODAS (Structure Oriented Description and Simula- tion) and SOCS (Simulations of Operating Computer Systems) and the design levels at which they are optimally used will be discussed, followed by a look at SIMULA as a potential systems design language. The properties of the specification-design language and translator around which SODAS was designed are as follow: (1) Designation of inputs and outputs. If these are not distin- guished, then the system is likely to be overspecified (since the de- signer will have to produce a component that will duplicate the be- havior of the algorithm on all its variables, not simply those which will be used as inputs and outputs). (2) Combination of independently written descriptions. It must be possible to take separately written algorithms, indicate the way that inputs of one are connected with the outputs of others, without exces- sive worry over conflicts in names of variables, etc. (3) Correct handling of simultaneous events. If two of the separately described components happen to be active at the same time and interact closely, the translator must correctly simulate these simultaneous events, although it is restricted to serial execution of the individual algorithms . (k) Components which are themselves descriptions of systems. The language structure must be recursive, i.e., any system described 2k in the language must be acceptable as a subsystem of a system to be de- scribed in the language. (5) Descriptions with mixed levels of detail. The design of one component may advance faster than the design of the rest of the system. It should be possible to combine a detailed description of one component with less detailed specifications of others. (6) Mixed structural (physical) and behavioral descriptions. A structural description of a system describes it as a set of components and their interconnections; a behavioral description is an algorithm which duplicates the behavior of the system. (7) Broad class of systems. The language must allow the descrip- tion of both synchronous and asynchronous discrete systems as well as analog or continuous systems and hybrid systems. (8) Variety of languages for component description. It is a desirable feature of a simulation system that it permit the description and simulation of systems whose components are described in quite dif- ferent languages. The main characteristics of SODAS are as follow: A SODAS system is a set of sub-systems, each with specified inputs and outputs, together with a "wiring diagram" description of the way that the components communicate. There may be only one or any number of subsystems and the subsystems may be described in any language which has been implemented in the system, including the SODAS language itself. The simulation algorithm that is the basis of SODAS depends only on the existence of algorithms for simulating the subsystems and not at all on the language in which the algo- rithms were originally described. These characteristics, as far as this writer is concerned, are the "extras" that SODAS possesses as far as a 25 simulation language is concerned. It has, of course, all of the characteristics of the usual simulation language. The main difficulties encountered in any attempt to use SODAS in the design of a system of two or more hardware -software levels are now discussed along with the characteristics of the language SOCS which can handle the design of such systems. SODAS requires explicit interconnectors between components; however, it may be the case that some processes may have an explicit intercommunication because of resource sharing through global variables, and SODAS does not allow communication through global variables. There is no facility that would allow the simulation system to determine the time of an interruption of an event due to conditions not considered at earlier stages of the design without substan- tial modifications to a description which was actually perfectly valid for the level at which it was written. Finally, SODAS requires that all significant interconnectors between two components be specified at the time that the func- tions of those components are specified and that no new interconnections show up as the design progresses. In the design of operating systems, however, it is quite normal that at certain stages in a design the sequential processes may be described as entirely independent of each other, except for certain explicit attempts at communication. Parnas lists these features that were found in SODAS but were miss- ing in such process-oriented languages as SIMULA. 1. Ability to have a process that consists of a set of processes, e.g., recursive structure. 2. Ability to handle difficult cases of simultaneous events. 3« Ability to handle structural descriptions of hardware. h. The "wait until" or monitoring feature proposed for SODAS. 26 In conclusion, Parnas describes his new language, SOCS, as being some- what reminiscent of SIMULA with extra constructs to provide the features just mentioned. The sub -languages and connection concept would be carried over from SODAS, with a somewhat subdued role as it would be possible, but not necessary, to leave the SOCS language to describe a process. It would be desirable of the language that a SIMULA program could be run without substantial changes, though extensive surface changes might be needed. k.2 Use of SIMULA in Systems Design U.2.1 Discussion This author wishes to present a method for the design of a software operating system for an existing hardware system and to show that this can be done using SIMULA as the simulation language. The design begins, true to previous discussions, using the top-down approach. In this case, however, the behavior of the system is specified con- cerning the manipulation of several structural components which are the existing fixed hardware of the system. It is proposed that these physical components exist in the simulator system as processes, each simulating the behavior of its physical counterpart in the actual computer system. Unlike the other components of the simulated system these components initially are at their final stage of decomposition and are not to be modified during the de- sign of the system. One reason that SIMULA could not be used for design at the hardware level is that there is no specific way to declare input and output variables of activities and, therefore, there is no ability to handle structural descrip- tions of hardware. However, in software considerations, all interface between activities will be handled in the same way as with the procedures through the 27 passing of parameters and global variables and the calling of one procedure by another. One restriction to the use of SIMULA in systems design is that the final code of the operating system be in ALGOL, the language of the simulation language. This was not a restriction as far as SODAS was concerned, providing the necessary translators were available. The big reason why SIMULA cannot be used for design at the hardware level is that its language structure is not recursive, i.e., any system de- scribed in the language must be acceptable as a subsystem of a system to be described in the language. SIMULA does not allow activity declarations within activities. The process decomposition is one level only in SIMULA. Therefore, design of any system using SIMULA will not proceed by component decomposition, but by a similar but less defined means. In terms of ALGOL, the design will be complete when all of the system software components exist as one or more ALGOL procedures. It was mentioned in an earlier chapter that if a system is run by a driver activity simulating the input, then it is still a simulator. It is proposed then that the design be considered complete upon the arrival at the stage when the only activity existing in the simulator is the driver activity, excluding the hardware structures. k.2.2 Example As an example of the use of SIMULA for designing a software system, consider the design of a Version II ILLIAC IV Operating System. Version II programs will be executed on the B65OO in ALGOL. These programs are to govern the initiation of special "algorithms" or kernels , which are sets of instructions manipulating ILLIAC IV itself. These kernels will reside on the ILLIAC IV disk. 28 Version II will act in a multiprogramming capacity. Four or five jobs may be in the mix simultaneously. Whether or not Version II would be feasible depends on the question of what fraction of time the PE's are idle. Obviously, it is not feasible to invest the time and money to design and code a new oper- ating system without knowing if the effort would produce a more efficient system in terms of percentage of PE idle time compared to the corresponding data when operating under the Version I Operating System. However, the problem very nicely fits the design by simulation using SIMULA, as described in the preceding section. The objectives are to design the system for existing hardware and to code the final operating system in ALGOL. It is impractical to proceed any other way. This design will be a design-study application. Initially the designers are faced with four or five very well defined hardware components, as far as their behavior goes, and a set of not -very -well defined components, even as far as behavior goes, representing the modules of the Version II Operating System. Design should proceed in three stages. Stage I-- Behavior Definition of Hardware Components It is assumed that the behavior of the hardware components are known to a great extent. This is mandatory in that the design of the operating system will depend upon the output of each of these components with respect to various inputs. It is suggested that statistical distributions be formulated for the behavior of the various hardware components for use in the operating system design. This stage may very well be the most time consuming of the whole design since all of the decisions concerning the feasibility of the Version II Operating System are governed by the behavior of these hardware components. The designer should also determine tolerance values for his data based upon his estimation of the accuracy of the models of the hardware components. 29 Stage 2-- Behavior Definition of Software Components In the design of this system, behavior definition of the components is a major part of the design phase. (Note that in all previous discussion, the problem of defining the behavior of the major components of the system was glossed over and made to seem trivial. This was not meant to be implied.) However, behavior definition is different in this case in that the behavior must be defined to fit existing hardware whereas, in previous discussions, be- havior definition was not restricted in this manner and extended to logic ele- ments or to "sequential processes", the division just prior to deciding which is to be hardware and which is to be software. Using a simulator to define this behavior would promote a well integrated system as a whole and would alleviate the situation of getting well into the definition of several indi- vidual components only to find that they will not work together. Stage 3 -- Refinement of the Code with Activities to Become Procedures . Once the behavior of each component has reached an optimal definition as far as the hardware is concerned, it is a relatively simple matter to refine the code within the activity to the form in which it will exist in the final system. When all of the SIMULA constructs have been coded out of the system except for one lone driver activity, then this is the final form of the oper- ating system. 30 5- SUMMARY This study served three purposes: first, the design of a flexible simulator for examining certain aspects of the allocation of files for ILLIAC IV was discussed; second, the presentation of the philosophy of simulation and, finally, the presentation of a method of systems design. The ILLIAC IV Disk File Allocator Simulator was constructed mainly for the purpose of providing a useful means of testing the performance of the Disk File Allocator. Another use of the simulator may he to do statistical studies on the interactions between components of the Operating System inter- facing with the Disk File Allocator. Another criterion considered in the con- struction of the simulator was that of flexibility. Each activity and pro- cedure can be extensively changed internally and the simulator can be recom- piled fairly easily. Inherent in the design of any simulation language is the definition of the concept of systems, and a description of the system in a simulation language constitutes the simulator itself minus only the "driver" for the sim- ulator. It is hoped that this paper has presented the philosophies of systems and simulation and their interrelationships in such a way as to facilitate the design of any system simulator. As systems in nearly every aspect of industry become more complex each year, the prospect of design by simulation offers intriguing possibil- ities. This method of design would promote systems with built-in modularity. The top-down design approach should promote greater coordination between the modules or components of the system, resulting in a more efficient system *The design, implementation, and analysis phases all take place con- currently. 31 with less errors in design once the final design stage is reached. Systems analysis and study should be taking place at every level of the design allow- ing finalization of many design details at a much earlier time than would be the case if simulation and a proper study of the system took place after system implementation. 32 APPENDIX A INSTRUCTIONS FOR COMPILING THE SIMULATOR Since the present SIMULA translator cannot handle constructs such as parameterized defines and case statements, both of which are used extensively in the disk file allocator and its array defines, the source code for the sim- ulator exists in two parts: (l) the SIMULA translatable portion, consisting of the main SIMULA block and a few variables global to this block with dummy declaration f or the untranslatable code, and (2) the non-SIMULA translatable portion, consisting of the disk file allocator, its procedures TREEBUILD and ALLOCATE, and its array declarations and defines. The compilation process of this simulator takes place in three stages: (l) translation of the translatable code, (2) the merge of non- translatable code with the output of the SIMULA translation, and (3) the ALGOL compilation of the output of the merge. The following are detailed instructions for compiling the simulator, assuming two files on disk; the translatable code, SIMULA/TI^DISK, and the untranslatable code, SIMULA/ALLOC, the disk file allocator patch deck file. 1. The execution of SIMULA/DISK will translate the SIMULA con- structs into statements which can be compiled by the ALGOL com- piler. In preparing the code for translation, precede each dummy section with "$BD", signifying the beginning of the section to be deleted, and end each of these sections with "$ED" . Somewhere in the code between these two controls, 33 insert "$CP" , in this case, this file is SIMULA/ALLOC. (Note Appendix D.2). The control cards for the translation are: ?USER=OPSYS ? EXECUTE SIMULA/DISK ?PRI0RITY=3 ?C0RE=15000 ?FILE TC0DE=SIMULA/SIUDISK ?FILE DISK=SMJLA/Tl4DISK ?FILE LINE=LINE BACK UP DISK ?FILE CARD=SIMDISK ?DATA SIMDISK $DISK LIST 99999999 (in columns 73-80) ?EKD If card input is used for the code to be translated, then the control cards are : ?USER^OPSYS ? EXECUTE SIMULA/DISK ?PRI0RITY=3 ?C0RE=15000 ?FILE TC0DE=SIMULA/SI4dISK ?FILE LINE=LINE BACK UP DISK ?FILE CARD=SIMDISK ?DATA SIMDISK [source deck] ?EFD (See Appendix D.l for a sample of the translatable code, simula/ti^disk) c The file specified in $CP statement is now merged into the section enclosed by %BD and $ED. This merge is accomplished by executing SIMULA/MERGE, and outputs SIMULA/ MI^DISK . The control cards are : ?USER=OPSYS ? EXECUTE SIMULA/MERGE ?FILE CARD=SIMULA/Sli+DISK ?FILE NEWDECK=SIMULA/MI ) 4DISK ?EHD 3^ 3- Finally the merged source code file SIMULA/MIUdISK is merged with SIMULA./ GLOBAL, which contains the SIMULA procedures called in the translated code and the ALGOL compile is done, outputting the final executable code file, SIMULA/I^DISK . The control cards are : ?USER=OPSYS ? COMPILE SIMULA/ I^DISK ALGOL. LIBRARY ?ALGOL STACK=1000 7ALG0L FILE TAPE=SIMULA/GL0BAL DISK SERIAL 7ALG0L FILE CARE=SIMULA/MI1+DISK DISK SERIAL ?EKD 35 APPENDIX B ADDITIONS TO THE B5500 IMPLEMENTATION OF SIMULA B-l. PROCEDURE PEAKEDDPAW This procedure allows the user to draw a number from a distribution of random numbers which is peaked about a specified number between two limits. The user specifies, as parameters to the procedure, the lower and upper limits, the value around which the numbers are peaked, and a random number drawn from a uniform distribution between and 1. The derivation of the peaked distribution was done in this way. Given a density function F peaked in the following way: The distribution of function F is the following: F (x) = C f PK J f(x)dx = J F PROB(X-LB) dx + J PROB(UB-X) dx PK-LB J UB-PK LB ^PK UB b 36 Finding the value of PR OB and then having an equation representing F will give us the means by which we can have a distribution function for drawing a peaked random number. We know from probability theory that I f(x) dx = 1 and this provides a means by which the value of PROB may be determined, given the lower bound, upper bound, and the value around which the numbers drawn are to be peaked. Our final distribution function is then: F(x) LB and the value of PK is F (U) where U is a random number drawn from a uniform number distribution between and 1. After a certain amount of algebraic manipulation, the procedure is as follows : REAL PROCEDURE PEAKEDDRAW (LB,UB,PEAK,UDISTR); VALUE LB,UB,PEAK,UDISTR; REAL LB,UB,PEAK,UDISTR; PEAKEDDRAW<-IF UDISTRx(UB-LB)<(PEAK-LB) THEN LB+SQRT(UDISTRx(PEAK-LB)x(UB-LB) ) ELSE UB-SQRT((UB-LB)x(UB-PEAK)x(l.O-UDISTR)); 37 B-2. SIMULA/MERGE The B5500 Implementation of SIMULA contains a program called SLMULA/PATCH which is supposed to allow the user to merge with ALGOL code with the translated code prior to ALGOL compilation. However, SIMULA/PATCH does not work and the following program accomplishes the patching. 38 BEGU COMMENT THIS PROGRAM WILL MERGF A DFSIGNATFD F*l OUTPUT OF THE SIMULA TRANSLATOR, USING *. THIS PROGRAMS CONTAIN PARAMFTER I 7FD pEFlNES AND CASF WHICH THt- SIMULA TRANSLATOR CANNOT HANOLE. FOLLOWING ARE THE COMMANDS AND WHAT THFY DO. COMMAND FUNCTION XbD PFGIN DELFTF ARFA *ED END DELFTE AREA *CP P/S COPY THE FILE P/S E WTTH THF CAN PE USFD STATEMFWTS WHF N I INTFGER INC>SEQ W AXJ FILP IN CARD DISK SERIAL (2*10*30)) SAVE FTLE OUT NEWDECK DISK SFPIALr20tA50I ( 2 * \ , 30* S A VF 99)l ARRAY A[0l9]| POINTED P1*P72J INTFGER SEO*LASTSEQJ ALPHA KMND; BOOLEAN DLTOGJ 1TPUE IF CARD IMAGES ARF TO BF PELFTFD LAPFL FOFU DEFINE MAX(MAXl»MA>2)« (IF MAXAtsMAXl GTR MAXBicMAX? THEN MAXA FLSF MAXB)*; PEAL NAXA,NAXPJ DISK SERIAL (?*10*30)J 'ROCEDliRE CUPYITJ PEGIN FILE IN DISK PtTNlFP PPl » LAPfL EOF? INTEGEP I # K* AKPAY PRFSUFto:3]| i i*o; PP1 i ap 1 ♦ 3| THRU ? DO BEGIN SCAN PPllPPl LINTIL IN AlPHAl REPLACE POINTFR(PPESUF[T3)*l BY PP1 iPPl FOR K i 7 WHTLF IN ALPHA* " " FOR kj IF I«0 THEN PEGIM SCAN PPllPPl PP1 tsPPl + 1 J Iis2j FNDI *IF F^D; *THRU FILL DISK WITH PRESUF[0]»PRFSUF[2]) WHILE TRUF DO PEGU' REAP (DISK,10#A[*])[F0FI> REPLACF P7? BY ( I ASTSEO t "L ASTSE 0* INC ) WRITE (NFWDECK#10»A[*])J FNDj UNTIL *MPVE PAST FOR P DIGITS! EOF I END* JCOPYIT 39 % % P1i»P0InTeRCaC03>J P72i«P0INTER(At93)J 01T0GI«FA|_SEJ IF IMC LEO THEN lNCl«2J *USFP HAY SET INC USING COHMON SFCHAXI.26759900-INC-1ISLAST LOC PEFQRF SIHULA/GLOBAL PFAD (CARD#lO#At*])l LASTSE0l«SF0l«INTEGER(P72#8)J WHILE TRUE DO BEGIN COMMENT LOOK FOR COMMANDS J KMND»«PEAL(P1#3)J IF KMND«"tBD" THEN DLTOGl«TRUF ELSF IF kHnD«"*ED" THEN DLTOGl«FALSE ELSF IF KMND« W *CP W THEN COPYIT FLSE IP NOT OLTOG THEN BFGIN IF INTFGER CP72#8) LEO SFQHAy THEN REPLACE P72 BY (LASTSE© I «HAX( Sf 0/ L ASTSFO*I NC ) ) FOP 8 DIGITS ELSE LASTSEOt«SEOi WRITE CNEWDECK#10>A[*3>) END) READ CCARD'10#AC*]HC0FMJ SE0t*INTFGER(P72*8)l end; FliFl i L0CK(NFWDECK)| FND. ko B-3. PROCEDURE REPLACE The present SIMULA translator is written in ALGOL. The following procedure allows the user to replace the XALGOL construct REPLACE POINTER (A[I]) + II BY POINTER (B[j]) + Jl FOR K WORDS by its ALGOL equivalent. SIMULA /REPLACE L I ST t D AT 9:19 ON 6V?98 bY OPSYS S1KFAM PROCEDURE RF PL At E ( UF. S T AR Y# OE ST OF F St T# SOURCE AKY# SOURCE OFF SE.1, COUNT); VALUt SUURttOFFStT#UESTUFFSET*COUNT; * CUMENT KEHLACE Ptil NTEK C A [ 1] ) + 1 1 BY PCINTEKCBU) J+Jl FOR k WORDS ThANSLATtS TO* HEPLACF (At I ]>Tl>BLj]>jl>K); X R t G IN local div64#mcd64; dhsloc pivm;si » = loc count;siissi*6>ui j»oi*7;usi*chr; di »=loc muu6«;ujis[)i + 7;osi«chr; sis=suurceapy;siissi+suurceoffsft; 01 l=DFSTARY;DI i^Ul+DESrOFFSET; UlVb4(US t=63 ^LS;USl B W0S);DSlsMr064 WOS; em hf place; 1+1 APPENDIX C A SIMPLE DISK FILE ALLOCATOR SIMULATOR C-l. THE SOURCE CODE This first section of APPENDIX C contains the source code for the simulator based on Knuth's [3] algorithms. It is assumed that there is a storage area of 20,000 units available for storage. The number of contiguous units requested is generated randomly and the allocator searches a storage directory, using the "first-fit" method, to find an available "block containing an adequate number of contiguous units. When the allocated space is no longer needed, it is released as available space again. k2 FOR RFQUESTS AWAIT OF REQUESTS SUCCES TNG AL SFULLY (DOSSI DOSSTF UE)J EUE)J* SIMULA bEGlN mmtM ioucue SFT DOSSIEPI »SET POPLEAN NOSPACEI BOPLEAN ALLOCATORBUSYI ELEMENT XI FLFMENT ARRAY ALLOC CO 1999 ] | ELEMENT ARRAY QUE [0 1999 J J INTFGER ARRAY WAITIME [0 |999 1, RUNTIMFSC0I250], RUNTlMEt0l999J) OEfINE INDOSSIER«NUMlMDOSSIER«-CARniNAL WRITE (LN,!NDOS,NUMIN DEFINE I NQUEUE«NUM I NQUEUE ♦CARDINAL (QUE WRITE (LN#INCUE#NUMINQU INTFGER Ul INTEGER ALOCASIZEJ INTFGER NUMINQUEUF,NUMINOOSSIE*J INTFGER P,Q,RJ INTFGER Tj INTEGER ARRAY FREELOC t l 999 1 » FREES I ZE [ INTFGER ARRAY ALLOCNUM I t 999 ] , Al L0CSI2 INTEGER LBOA, AVAIL* INTFGER U1,U2,U3,U4J PEAL ZJ ALPHA Qufc-UEHEADJ FILE BG 15(2,10)1 FILF LN 15(2, 10>J FORMAT TOP (///X35,"D I S K MAP X3, "FIRST FREE UNlT"»y«»"SIZ "DIRECTORY LINK*/), TlSKMAP (Xl4,I4,Xl7,I*,Xl2,IB»X FORMAT INDPS (//"THE NUMBER OF REQUEST INOUE ("THE NUMBER OF RFOUESTS IN TH RECRFO (//X6, "REQUEST", I5»" HAS JUST " CONTIGUOUS UNITS. "/"TIME NOW IS " ALLPCDONE (//X6#"PEQUEST",I5," WAS JUST ALLO I6#* UNITS OF TIME"/ "IK THE OUFUF. ITS PEGINNJNG PLO IS", 16 m LPCATlON ALl.OCATFD EP)t R))t; J 0|9991 F[0l99 ,FRFELlNK[0l999l J 9]»ALi.nr Lorroi999ji V/X6, F OF B "POSITION IN pIpECTURY", L0CK",X3, 10, IB)) S ALRFADY ALLOCATED IS ", E Ol'EljE IS %T6, "."/), CPMF IN FOR".!*. »I6,".")» CATFD AFTER WAIT NG ", CK LPCATTPN Pkj DISK T*"> 16 SIZE ANO"/MTS BLOCK ■ UNITS, "/"TIME NOW IS M6 SPACENO (//X6,"WE HAVE Np SPACF " IN THE OUEUE, SO wF TRY THE N /"TIME NOW IS «M6,"."), IhTfRlM (" "), RUNPONE (//X6, "REQUEST", 15," HA /"UNITS OF TIME ANP ITS S /"TIME NOW IS "»I6*"."//)J ,"."/) PN DI FxT EL S FINI PACE I SK FOR RE0UFST",I5, FMENT 1* THF OUFUF." SHFP WUF'NirP AFrt-R ",7-i S RELEASED." FORMAT Fl F2 F3 F4 F5 F6 (//"Bl"), ("B?")» ("B3")# ("BA")# ("B5")# ("B6"//>J I t COMMENT PEAKFDORAW PRAWS IS PEAKED ABPUT A NUMBER * REAL PROCFUURE PEAKEOORAW A RANDOM NUMBER FROM BETWEEN A LOWER ANP U A DISTRIBUTTOm ►hich PPFP POUND, J (LB,UB,PEAK,UDISTP)I h3 VALUE LB*UB#PEAK»UDlSTRj REAL LP UB,PE AIOUDI STR I PE AKFDDRAWMF UDI STR*< UB-l.B )<( 'FAK-LB ) THEN LB*SORT(UDISTRx(PFAK-LB)x(UP-LB)) Fl SE UB-$0RTCx(1.0-UDISTR))J f I COMMENT PROCEDURE ALLOCATOR USFS THF AVAILABLE STORAGF MAP TO SEARCH FOR SPACE IN ACCORDANCF WITH THE NUMBER OF CONTIGUOUS pLOCKS REOUFSTEP FOR A SPECIFIC REOUFST, I SCHED ALLOCATOR(N)j NJ Al , A2» A3, ti» I FINI PROCEDURE VAlt'E N| INTEGER PFGIN LAPEL LAPF.L INTFGFP Kl COMMENT A DIRECTORY OF AVAlLABLF DISK SPACE - HAS THREE FKTrIfS AVAILABLE BLOCK OF UN I TS> F RFEL OC » FREE S I 7E , AND FRFFLINk (POImTfR AVAILABLE BLOCK)* Al t Q + AvAU I IF FREESIZEtOJ^N THEN D FGIN Al PC«-FREELOCtQl) K*FRFFSIZFtQ]-NJ IF KtO THEN AVAIL^FREFLINKfM LLSE PEGIN FPFFLOCC014-FREEI OCtC]*N| FPFFSIZE[Q]«-KJ FNDl GO to ein; ENDJ A?i P«-FREFL INK [ 0] J IF pel PDA THEN PEGU NOSPArE+TPUEJ GO 70 FTM FND) A3 t IF FKEESI7EtP]*N THEN PEGU ALOC^FREELOCtPJi K«-FREESIZECP]-NJ IE K«C THEN FREFLTNK[0]*FREFLINKCP] FL5»F BEGIN FKEELOCrP]*FREELOCtPUN> FREESIZECP]«-KI ENHJ GO TO FIN) FND El SE PE GIN GO TO FNDl FOR TO EACH ».jxt A?j FU l HOLD (RAN0INT(0#10»U3))I kh END ALLOCATOR) X COHMENT PROCEDURE" RFLEASFR PELFASES THE SPACE WHICH WAS ALLOCATED TO A CERTAIN REQUEST WHFN IT IS NO LONGER NEEDFD.t I PROCEDURE RELEASER (PO#N)J VALUE PO'NI INTEGER PO,M F F G I N LAPpL B1#P2#B3#B4,B5>P6» NOSPACE*FALSE| B! I R«-AVAIl i IF FRFELOCtAVAIL]>ALLOCLnCCPO] THFN GO TO B5J B2i P*FPEEI INKIPII IF P«LPDA THEN GO TO R3J IF FREELOCtP]>ALLOCLOC(PO] THFN GO TO P3 ELSE P f G IN R«-p; GO TO B2j FNDJ B3t IF P#LPDA THEN IF ALLOCLOCtPO]+N*FREFLOCtP] THEN BEGIN N«-N*FPEISIZL[PJ) FPEFLINK[P0]*FHEELINK[P]) FND Et SE FREFLINK[P0]*P ELSE FREELINK[P0]4-PJ P4i IF FHFFLOC[R]*FRFESI2E [P]«Al LOCLOCTPOJ THEN p E G I N FRFLSlZF[p]*FRFESIZFtR3+NI FRFEl TNK[p]«-FREELTNKtPOj| END ELSF R E G I K FPFELINKfPHPOJ fpfesizf[poj*n; FRFELOCtP03*ALLOCLOCfPO]J ENDl GO TO P6J P5I IF ALLOCLOC[PO)+N«FREELOCtAvAILl THEN REGIN N*N*FREESIZE[AVAIL]I FREELINK[P0]*FREE| iNKfAvAlLlJ END ELSE FREELINKCP0J«-AVAILJ FREELOC[PO]«-ALLOCl OCtPOIJ FREESIZE[P03*NJ AVAIL*PO| B6l END RELEASER) % % ^ ITS THE MAP IITIAL UNIT UNITS IN THAT BLOCK. I OF AVAILABLE" STORAGE OF A BLOCK OF Fct-E COMMENT PROCEDURE PRINTDISKMAP PPIN' SPACE* GIVING THE ApDRESS OF THF IN! SPACF AND THE NUMBER OF CONTIGUOUS X PROCEDURE PRINTDISKMAP* PEGIN INTEGER J) J«-AVAILJ WRITE (LN,TOP)j WHILE J#LBDA DO BEGIN WRITE fLN,DlSKMAP,J,FREFLnCtJ]>FREFSIZEtJ]»FPEFLlNK[J])J J«-FHEFLINKC J] J FNDJ END PRINTDISKMAP; ACTIVITY JPBRUNNING ( NUM#LOC AT I PN» SIZE ) J IN lOCATION,SIZE;FPRwARD; ACTIVITY OUEUFPFOUEST ( RE OF I LFS . RFQNUM ) J I NT FORWARD! S ALLPCATT L IT IS EI ULATF THE NSUCCFSSFD THIS ACTIV * « comment the following activity make succfssivf mfmbfr or thf gufuf unti case it activatfs jobrunnlng to stm which thf space was allocated, pr u mlmpfh. of the oufile, in which casf % ACTIVITY SUPERVISOR; FFGIN LAPEL KEXTELEMENTI INTEGER j; IF NOT ( ALLPCATORBUSY OR NPSPACF) THEN P F G T N ALLOCATPPRUSY*TRUE) X*F IRST(OMEliE ); IF KPT EMPTY(QUFUE) THEK NEXTE I EKFNTi INSPECT X WHEN CUE UEPF Ol'E ST DP PEGIN j«-rfonum; ALLOCATOR CREQFlLFS); IF NOT NPSPACE THEN PEGIN WAlTIMEfRFtfNIIMUS TEGFR num, FGER RFQNUM, REOF JLES; PN ATTEMFTS PN FaCH THFP SUCCFSSFUL' IN WHICH ExFCl'TION PF THE JOP TP L IN ALLOCATING ANY ITY T^RMTNATFS.J TMAKF AN ALLOCATION ATTEMPT PRINIUISKMAPI ALL nCl PCLPEONUMJ* Al LUCSI2EIRFONUV] WRITE (LN,AlLOCPO ALOCRf CFILES,SI imtime-waitimf rreomjmi ) alpc; ♦rfof iles; ne,reonum,waitime[peonum1, MTIMF ); REMOVF (OUEtREONU AlLOCATORBUSY*FAL ACTIVATE (ALLOCTR ALLOCLOC[HFONU>'] FNDl ENO; IF NOSPACF THFN IF X#LAST(til'EUE) TH BFGIN WRITE (LN, SPACE NOSPACE«-FAl.SE) M] >} SEl FWNUMUNEW #AILPCSIZF JOHPUNNlNGfREPNi'M, CRFONU^))); EN NO,J,SIMTIME)l 1+6 END x*succx GO TO N END) ALLOCATORBUSY*FAL NOSPACE*FALSEJ FNDj SUPERVISOR) EXTE-IFmENTJ SEJ t t COMMENT ACTIVITY jOBRUNNlNG THF 5PACF HAS ALLOCATED, T BLOCK IS UNAVAILABLF FOR RE I ACTIVITY JOBRUNNlNG (NUH> INTEGER NUM,LOCATIONf SI FFGIN INCLUDF (OUFtNUMlf DOS INDOSSIER) INOuEuEJ RUNTlMFtNliM)«-SIMTIMF; Z»UNlFPRM(Of If U2)J HOLD (PEAKFDDRAwClf ?5 RUNTAMF[NUM]«-SIMTIME- URUNTIMEtNUMJJ HUMTlMFS[T]«-RUNTIHES[ REMOVE (OUFCNUH))! RELEASFR (NUM, SIZF )J WRIT 4 - CLNf RUNDONEf NUM PPIMDISKMAPI ACTIVATE NFW SUPERVIS FND JOBRUNNlNG)' cumkfkt activity QUFUERFQUE OF JDPS WAITING TO PE ALLOC TO CONTROL THE ALLOCATION A % ACTIVITY OliEuFRFOlitSTfREfi integer reqfiles1 tntfgfr peonum) h F 6 I N waitAmfcrfonuk]*simti HCIUDF (CUFlPEQNllM]f WRITE f LNf RFCPEQf RE&N INPOSSIER; INOUEUF) ACTIVATE NFW SUPEPVIS FND OUEUFREQUEST) 1 » CHMMFNT ACTIVITY GENERATERE 1 AND 2000 WHICH SlMULATFS BY A PECUFST. PFOUFSTS ARE A NUMBER WHICH IS ASSIGNED % ACTIVITY GENEPATEREQUESTJ BEGIN INTEGER IJ LAPEL I OOP) 1*11 LOPPi SlMULATFS THE EXECUTION OF THF jCp TO wT.YCH HIS RFPRFSFNTS THF TIMF A CERTAIN ALLOCATION TP ANOTHFR PEOUFST.I LOCATlPN»SIZE)l ZE» SlFR)) *AND PUT IN DOSSIER OF R||N*' Nf, JOBS 0* 100»7))l PUNTIMFENUMJJ TJ + ll f R!lNTI»'E[NUM]f SIMTIMF5I PP» ST PUTS THF NFW RFOUEST INTO THF. OnEUE ATFD AKD THEN ACTIVIATFS TmF SPPFRvISPR TTFMPTS. I F ILESfPEONUM)! ME J CUFUF)) UMf REOFll ESf STMTIMF >) PRJ OUFST GFNLPATFS A RANDOM MiMBFP pFrWEEN THF NUMRFR OF CONTIGUOUS BtOCS RFfUFSTF^ iDFNTIFIEn THROUGHOUT THE PROGRAM BY TO THFM IN THIS ACTIVITY. I h7 ACTIVATE (QUE[I]*NEW QUFUEREQUEST(RANDINT( 1 »2000MJl ) M ) ) DEl AY Oj HOLO (RANDINT(1#20#U4))I IF IS99 THEN GO TO LOOPI BAPGHAPH (BG*FUNTIMES[*]#«0»"R«)J END GENERATEREOUESTJ * MAIN PROGRAM AVAlL*Oj LRrA4-20000J FREFSIZECOULPDAJ FRFFLrCtO]*0| FREFLlNKl03«-LPOAj Ul«-3257; H2*46857l U3«-948?3; LI4«-4S789J ACTIVATF NFW GENERATEREQUEST CANCEL (CURNFMT)J END SIMULA. DELAY 0) 48 C-2. A SAMPLE OF THE EXECUTION OUTPUT The execution output is self-explanatory. The time and the size of the block requested is noted each time a new request is generated. If a re- quest is successfully allocated, this fact is noted on the output along with the request number, the units of simulation time that the request waited in the queue, the beginning location of the allocated space, the size of the block, and the current simulation time. After storage is allocated and after storage is released, a free space map is printed of the available blocks of contiguous locations, indicated by the address of the first unit of the block and the size in units of the block. When a run has been completed and the space is again released for allocation, this fact is noted on the output along with the request number, the simulated time of execution, and the current system time. Another feature of SIMULA is the bargraph procedure in which a bar- graph of a generated distribution is printed. In this example, bargraphs were made of the waiting times in the queue (WAITIME) and the running time (RUN- TIME) . ^9 REQUEST 1 HAS JUST OME IN FOR 795 CONTIGUOUS UNITS. TIME NOW IS 0. THF NUMBFR OF REOUESTS ALREADY ALLOCATED IS THE NUMBFR OF REQUESTS IN THE OUEUE IS 1. REOnEST 1 WAS JUST ALLOCATED AFTER WAITING f> UNITS OF TIME IN THE fcUEUE. ITS BEGINNING BLOCK LOCATION ON DISK IS 0» AND ITS BLOCK SI7E IS 795 UNITS. TIME NOW IS 6. DISK MAP POSITION IN DIRECTORY FIRST FREE UNIT SI?E OF RLOCk 795 19205 DlRFCTORY LINK 20000 THF NUMBER OF REQUESTS ALREADY ALlOCATED IS THF NUMbFR OF RFQL'ESTS IN THE QUEUE IS 0. 1 . REQUEST 2 HAS JUST COME IN FOR 1230 CONTIGUOUS UNIT*. TIME MOW IS 1?. THF NUMBFR OF RFQUESTS ALREADY ALlOCATED IS 1 THF NUMBFR OF RFQUESTS IN THE QllFuE IS 1, REQUEST 2 WAS JUS! ALLOCATFD AFTER WAITING *■ IiNtTS tIF TIME IN THE fcUEUE. ITS PEGINNING BLOC* LOCATION OK DISK IS 795* AND ITS MOCK SI7E IS 1230 UMTS. TIMf NOW IS 1P. P I S m MAP POSITION IN DIRECTORY FIRST FREE UNIT Sl/F OF BLnCk- 2025 17975 DIRECTORY LINK 20000 THF NUMbFR OF REQUESTS ALREADY ALLOCATED IS 2. THF NUMBFR OF REQUESTS IN THE OUFuF IS 0. Rfo h EST 3 HAS JUST COMF IN FOR 1467 CONTIGUOUS HNTTt. TIME KOW IS 22. 50 THf NUMBER OF REQUESTS ALREADY ALI OCATED IS 2, THF NUMBER OF REQUESTS IN THE QUEUE IS 1. REQUEST 3 WAS JUST ALLOCATED AFTER WAITING 5 UNITS OE TIME IN THE QUEUE. ITS BEGINNING BLOCK LOCATION ON DISK IS ?02«j» AND ITS PLOCK SIZE IS 1467 UNITS. TIME NOW IS 27. DISK MAP POSITION In DIRECTORY FIRST FREF UNIT SI7E OF BLPCk 349? 16508 DIRECTORY L I M< 20000 THF NUMBER OF REQUESTS ALREADY ALLOCATED IS 3. THE NUMBER OF REQUESTS IN THE QUEUE IS 0. REQUEST 4 HAS JUST COME IN FOR 130 CONTIGUOUS UNITt, TIME NOW IS 40. THF NlfMBFR OF REQUESTS ALREADY ALLOCATED IS 3. THF NUMBFR OF REQUESTS IN THE QUEL'E IS 1. REQUEST * WAS JUST AILOCATFD AFTFR WAITING uMTS t»F TlMF IN THE QUFUE. ITS BEGINNING PLOCf LOCATlnN ON DISK IS 3«9?. ANT ITS BLOCK SI7E IS 130 UMTS. TIME NOW IS 40. DISK MAP POSITION IN DIRECTORY FIRST FREF UNIT M7F OF PLOCk 36?? I637fr DIRECTORY I INK 20000 THF NUMBER OF REQUESTS ALREADY ALLOCATED IS '1 THF NUMBFP OF RFCUESTS IN THF QUEUE IS 0. REQUEST 5 HAS JUST COME IN FOR TIME NOW IS 4fl, 1<5 CPNTlGUPUS UNITt, THF NUMBER OF RFQUESTS ALPtADY ALt OCATED IS A. 51 THE NUMBER OF RFOUESTS IN THE OUEllE IS REOiiLST 5 WAS JUST ALLOCATFD AFTER WAITING 6 UNITS OF TIME IN THE CUEUE. ITS BEGINNING BLOCK LOCATION ON DISK IS 362?, AND ITS Bl OCK SIZE IS 19 UNITS. TIME NOW IS 5«. D I S t< MAP POSITION IN DIRECTORY FIRST FREE UNIT SI7E OF BLOC* t> 3641 16359 DIRECTORY 1 1 NK 200G0 THE NUMBER OF REQUESTS ALREADY ALLOCATED IS *( THF NUMBER OF RFCUESTS IN THE OUFUE IS 0, REOtjEST 6 HAS JUST COMF IN FOR 719 CONTIGUOUS UNTTc. TIME NOW IS 60. THF HIMBFR OF REOUESTS ALREADY ALLOCATED IS «. . THF NUMBER OF RFOUESTS IN THE OliFllE IS 1, REQUEST 7 HAS JUST COME IN FOR 1520 CONTIGUOUS UNIT*, TIME NOW IS 61. THF NUMBFR OF REOUESTS ALREADY ALLOCATED IS S, THE NUMbFR OF REOUESTS IN THE QUEUE IS 2. PFCiiEsT 6 WAS JUST ALLOCATED AFTER WAITING 6 11NITS OF TlMF IN THE t'UEUE. ITS BEGINNING PLOCf LOCATION ON DISK IS 3Ml> AND ITS HLOIK SI7E IS 719 UNITS. TIME NOW IS 66. I) T S K MAP PtlSITKN IN DIRECTORY FIRST FREE UNIT Sl7T nF PLPC* C> a36C 156*0 DIRECTORY LINK 20000 THF EUMHFP OE RFCUFSTS ALRFAUY ALLOCATED TS THE NUMBFR OF RFOUESTS IN THE OllEuE IS 1, REQUEST 8 HAS JUST COME IN FOR 41 3 CONT IGUOUS UNIT*. TIMf NOW IS 74. 52 THE NUMBER OF REQUESTS ALREADY ALLOCATED IS THF NUMBER OF RFOUESTS IN THE QUEUE IS 2, 6. RtouEST 7 WAS JUST ALIDCATFD AFTER WAITING 18 UNITS OF TIME IN THE OUEUE. ITS BEGINNING BLOC* LOCATION ON DISK IS 4360* AND ITS BLOCK SIZE IS 1520 UNITS. TIME NOW IS 79, DISK MAP POSITION IN DIRECTORY FIRST FREE UNIT SI7E OF PLPC* DIptCTORY LINK 5880 14i?r 20000 THE NUMBER OF REQUESTS ALREADY ALLOCATED IS 7, THF NUMBER OF RFOUESTS IN THE OUEUE IS 1. REQUEST 9 HAS JUST COME IN FOR 1848 CONTIGUOUS UNIT*. TIMf NOW IS 94, THF NUMBER OF RFOUESTS ALREADY ALLOCATED IS 7, THE NUMBFP OF REQUESTS IN THE QUEUE IS 2, REouEST 8 WAS JUST ALLOCATFD AFTER WAITING 28 UNITS OF TIME IN THE QUEUE. ITS PEGINNING BLOCk LOCATION ON TISK IS S8flO, AND ITS HI OC* SI7E IS 413 UNITS. time r o^ is 102. o 1 s Y map PUSITICN IN DIRECTORY FIRST FREE UNIT SI7F OF PLPC). 6293 13707 DIRECTORY I IKK 20000 THE NUMbFR OF RFOUESTS ALREADY ALLOCATED IS P. THE NUMBFR OF RFOUESTS IN THE OUFl'E IS 1. REQUEST 10 HAS JUST COMF IN FOR 1205 CONTIGUOUS I'NTTe. TIMF NOW IS 107. THE NUMBFR OF RFOUESTS ALREADY A tOCATED IS THE NUMBFR OF RFOUESTS IN THE OUEuF IS ?. 53 REOUEST 9 WAS JUST ALLOCATED AFTFR WAITING IN THE OUEUE. ITS BEGINNING BLOCK LOCATION ON DISK IS ITS BLOCK SIZE IS 1818 UMTS. TIME NOW IS 11«. 20 nMTS OF TIHF 6?93» AND I S K MAP POSITION IN DIRECTORY FIRST fREF UNIT Sl7E OF BLOC* DlRFCTORY lINK 8141 1 1859 20000 THE NUMBFR OF RFOUESTS ALREADY ALLOCATED IS THE NUMBFR OF RFOUESTS IN THE CUFuE IS 1. REOi)EST 11 HAS JUST CPME IN FOR TIME NOW IS 116. 140 CONTIGUOUS UNIT*. THE NUMBFR OF RFOUESTS ALREADY ALLOCATED IS THF NUMBFR OF RFOUESTS IN THF Ql'FuE IS 2, REOi.iEST 10 WAS JUST ALLOCATED AFTFR WAITING 17 UNITS OF T I MF IN THE CUEUE. ITS BEGINNING PLOCk LOCATION ON DISK IS M«1» AND ITS PLOCk SIZE IS 1205 UMTS. TIME NOW IS 121. DISK MAP POSITION IM DIRECTURY FIRST F RFF UNIT SI7F PF PLPCu 93fl6 10654 DIPF CTORY l IKK 20000 THF NUMBFR Of RFOUESTS ALREADY ALlOCATEO IS 10, THF NUMBFR OF RFOUESTS IN THE OliFl'E IS 1. REPliEST A MAS FIMShEP RuNNINr, ArTFR P9 units Of time and its space is pfleasfo. T1MF NOW IS 1?9. 5h n I S K MAP POSITION IN DIRECTORY FIRST FREE UNIT SI7E OF FJLOC K DIRECTORY LINK 319? 9346 130 10651 20000 RfOUtST 3 HAS FINlSHFO RUNNING AFTER 102 UMTS OF TiME AND ITS SPACE IS RELEASED. TIME NOW IS 129. POSITION in OIRECTORY DISK MAP FIRST FREE UNIT SlzF OF PLnU 2025 9490 1597 10510 DIRECTORY LINK 2CO00 REQUEST 11 WAS JUST ALLOCATFD AFTER WAITING IN THF CIIFUE. ITS BEGINNING BIOCk lOOATlPN OK DKK I «, ITS BLOCK SI7E IS 144 UMTS. TIME NOW IS 131. 15 UNITS OF TIMF 208 717 923 1130 3286 10399 1838ft 543 413 815 79ft 4?B3 96nl 1 376 DIRECTORY LINK bl 87 95 79 46 ft/ 20000 REQUEST 9ft WAS JUST ALLOCATFD AETrR WAITING IK TEE tllEUE. ITS PEdlNNING PI PC* LOCATION ON DISK IS ITS E-LOCK SI7E IS 1360 UMTS. TIME NO* IS 1080. 5 UNITS OF TlMT 192ft. ANO POSITION I*' DIRECTORY 82 81 fl7 95 79 48 67 I S k FIRST ERFF UNIT 20fl 717 923 1130 326ft 10399 1838ft MAP Sl7F OF RLPCu DIRECTORY LINK 543 hi 413 67 835 95 706 79 4283 48 9601 67 1378 20000 56 THE NUMBFR OF REOUESTS ALREADY ALLOCATED IS 7. THF NUMBER OF RFOUESTS IN THE OUFUE IS 0. RK5UEST 97 HAS JUST CPMF IN FOR 665 CONTIGUOUS UN I T « . TIME NOW IS 1093. THE KUM6FR OF RFOUESTS ALREADY ALLOCATED IS 7, THE NUMBER OF REOUESTS IN THE OllFl'f IS 1. RECnFST 83 HAS FINIShFD Pl'NMNG AFTER 163 UMTS OF TlHE AMD ITS SPACE IS RFIEASFD. TIMt NOW IS 1093. POSITION IK' DIRECTORY 8? 81 8 3 87 95 79 18 67 PISH HAP FIRST fREF INI T Si; ?08 717 751 160 8 1130 3286 10399 18386 RfOUEST 97 WAS JUST ALLPCATFD AFTFR wATTHG IN THF ClifUE. ITS PEGIHMNG PinCw lOOATION UK OlSK 1 < US F-LOCK SI7L IS 685 UMTS. TIMf K.C1* IS 1091. PLoCk DIRFCTPRV LINK 5^3 81 413 BJ 1 l'i b/ 150 95 796 79 i?83 AND D I S ► MAP PoSMirK ]►• DIPECTOHY FIRST FREF UNIT «I7F OF 9? 8? 81 83 87 9^ 79 48 67 208 717 751 1608 1130 4 94? 10399 18386 PLnO DIRECTORY LINK 499 82 543 61 41 3 83 172 S7 150 V5 79ft 79 2626 48 9601 ef 137« 20000 THF THE MlMEiFR f UMBEP OF GF REQUESTS RE QUFSTS ALREADY M I OCATFD TN THE QUFliE IS IS 0. 7. HfOut-ST 99 MAS JUST COME IN F CI R TIME NOk IS 1126, 1907 CONTIGUOUS UNIT*. THE NUM6FR OF REQUESTS ALREADY ALLOCATED IS THE NUMFJTR OF REQUESTS IN THE OUFuE IS !• 7. REQUEST 99 WAS JUST ALLOCATED AFTER WAITIMG IN THE QUEUE. ITS BEGINNING BLOCc LOCATION ON DISK IS ITS PIOCK SI7E IS 1907 UMTS. TIME NOV* IS 1130. A UMTS OF TIME 0943* AND I S Y MAP POSITION lw DIRECTORY FIRST FREE UNIT Sl?E OF BLPCk DIo&CTORY LINK 9? 82 81 83 87 95 79 08 67 208 717 751 1608 1 1 30 6850 10399 1838* 099 543 41 3 17? 150 79* 719 9601 137b 82 01 83 87 95 7V «B 67 20(00 THF NUMhFR OF RFQUESTS ALREADY ALIOCATFD IS THF M'MbFP OF REQUESTS IN THE OUFuE IS 0. RF QUEST UNIT? OF TlMF TIMf NO* IS 86 HAS FINISHED RUNNING AFTER 163 AMD ITS SPACF IS PFIEASFP, 1136. T S ► MAP PtSITION IM DIhtCTOPY FIRST FPEF I'NIT Sl7F OF PLnCu OIPFCTPKY LU« 9? 8? 81 83 87 95 79 48 67 r 7i7 751 1608 1 130 6850 10399 18386 09V 503 41 3 172 15' 796 19o5 9601 1 37» h? 61 b3 67 V5 79 lib tr 20000 58 59 REOU&ST 9* HAS FINISHED PINNING AFTER UNITS Of TlMF AND ITS SPACE IS RELEASED. TIME NOk IS 1143. 6 3 POSITIflN IN DIRECTORY DISK MAP FIRST FPEE UNIT SI7E OF PLPC* DIRECTORY LIKK 9? 94 81 S3 87 95 79 48 67 REOUIST 91 UMTS OF T^K-F AKD TIME NO* IS 1173 p p 717 751 1608 1 1 30 685P 10399 18386 has fimshfd running after its space is pfleasfd. 151 499 751 413 17? 150 796 1905 9601 137" 94 81 83 87 95 79 48 6' 20000 P ! S f MAP POSITION In DIRECTORY FIRST FREE UNIT SI7E OF 9? 94 81 83 ^7 95 79 67 717 751 1608 1 130 6850 18386 RLnCi/ DIRECTORY | Ink 499 94 751 81 413 83 17? 87 150 95 796 79 1 31 sr 6/ 137" ?0000 Rf o,,EST UNIT? OF T 1 ME TIMf NO* IS 99 has fimshfp Running aftep AKD ITS SPACE IS RFlFASFD. 1185. 55 POSITION In DIRECTORY rise map FIRST FREE UNIT ? 1 ZE Of PLPCw UlRF CTORY I INK 92 94 499 751 94 81 60 Si 67 95 99 67 REOUEST 96 UMTS OF TIME AND TIME NO* IS 1192 7 H 751 1606 1130 4943 16366 HAS FIMSHFD RUNNING AFTFR 1 1 2 ITS SPACE IS RFLEASFO. 413 172 150 796 150'>7 137« 63 6/ 95 99 67 20000 POSITION ]N DIRECTORY 9? 94 61 63 87 95 99 67 n T s * MAP FIRST FREE UNIT f 1 7F OF P|_PC k 717 751 1608 1 130 494* 18366 PLPfk DIRECTORY | In,k 499 94 751 61 413 83 17? 87 150 95 ?156 99 15057 bf 1 37h 20000 RF QUEST UMTS OF T*ME TIME NO* IS 93 HAS F1MSHFP RliNNJMG AfTFP 198 AND ITS SPACE IS PELFASFD. 1248, PI SI MVh IN DIRECTORY 9? 94 9 3 63 87 95 99 67 Pf Pt'f ST 98 HAS FIM I'MTS (JF TlMf AKD ITS SPACE TIME KOf IS 1258. n T S ► MAP F1PST FRFF UNIT SlzE PF r o 49« 751 16f 8 1 1 3T 4943 18366 ,H*P PINNING ArTFP 137 IS PFlFASFP. pi nCk UIRF CTPKY IIM 499 94 751 93 631 63 17? 67 15< 95 2156 99 l«in«s7 67 1 37*5 20000 DISH MAP 61 POSITION IN DIRECTORY FIRST FREF UNIT MZF OF BLOC* DIRECTORY lUK 92 94 93 83 87 95 67 499 751 1608 1 130 18386 499 751 631 17? 150 18870 137» 94 93 83 87 95 bl 20000 Rf OnEST UMTS OF TIME T I ME NO* IS 97 HAS FIMSHfP RUNNING AfTFP 235 ANO ITS SPACE IS RELFASFD. 1329. POSITION U DTRECTOM 9? 94 93 8 3 95 67 I S * MAP FIRST FBFF I'NIT *I?E Of Bind, n 499 751 113T 18386 499 751 631 1007 1 887c 1 37^ DIRECTORY LINK V4 93 Hi Vb hf 20000 62 APPENDIX D THE ILLIA.C IV DISK FILE ALLOCATOR SIMULATOR D-l. THE SIMULA TRANSLATABLE PORTION -- The Simulator Skeleton (simula/ti^disk). The first section of Appendix D contains the SIMULA translatable portion of the simulator including the SIMULA constructs, namely, the SIMULA block containing the element and set declarations and the activity declara- tions. As stated previously, the current version of the B5500 implementa- tion of SIMULA will not accept parameterized defines or case statements; therefore, all code containing these constructs has been removed from this skeleton portion of the simulator before the SIMULA translation, but will be merged with the translated SIMULA code just prior to ALGOL compilation. 63 %%t%%%i%i%i%t%%tttivxi%t%*%t%%%t%r%t%ri%it%%%*%%%*t%%i%fti%it *%%%%%%%%$ t % SIMULA/THDISK--THE TPANSLATAPlE PPRTJPN I t BEGIN INTEGER I; INTEGER CbtlifNUMJ INTEGFR ARRAY T I MF SHAROf I 99 ) » iKlFGEP T| FILE CD(?,10)J FILE SIMFILE 15(?«1S)J FORMAT F ODlNUM ( T?)» FSHAROMJM (13)1 DEFINF I NsSIMF U Ft; * C C< M M E r T ThL FOLLHwING PROCLPlJRF ALLP^S THF TPAhSFFR UF XAIGPL REPLACE STAjFMF^TS INTO EBUIVALFNT ALGPL STATFMF*'TS> » STPFAN FROCtOllRF REPLACFrDFSTARY»DFSTnFfSET»SOliRfFARy*«;niiRCFrFF e n,rnilNT)J VALIT SnURCEOFFSET#DF?TPFFSrT»CPUNl » * COMMENT RFPLACF Pp 1 NTF R ( A r I ]) ♦ 1 1 PY PPTMF R< P f J 1 ) ♦ J1 FPR k TPANSI ATE S TPt RFPLACF (AC I]#Il,fc[ J],Jl,IOJ * PE f. I N LPCAl DIV64,MPDM; Pl»e|. PC riVf 4JST r=LPC CPUNT;SItsST*Mr I l=( Tt7 JPSS- chr; r. itsioc KLP6«;Dit=DT*7;rs ! =c H R^ SI isSPURCE APYIST tsSI + SDliRCFPFFSFT I PT IsPfSTAhYIPl IsDUPFSTPFF SET) I' IV64(DS »»63 WDSJUS I =wDS ) F PS » =MPDNTlMFtO|999]» TlMESLICrtOiQUFUFNiiMl* TREFPUIl DTlMEtO«9991* Al LOCTIME [0I999JJ DEFINE NtO«#«, I.SS»<«» GTR»># » GE0*2f ) X X THF FIRST TWO DFFINES GIVF THF NUMBFR DF ITFMS JN THE SFT X DOSSIER AND OUFUErM] X DEFINE INDOSSIFR*NUmINDOSSIFR«-CAROINAL(DOSSIER)» WRITE (LN*TNPOS#Ni)MINnrSSIF R^f , IN0ULUFS»FPR Ml*0 STFP 1 UNTIL 01 EUFMlM HO BFGIN NUMINciUFUE[M]«-CARnlNAl(OUFUF[M]); WRITE (LN'lNOUF»M#NUMTNCUFUFrM])J ENn#* x X THIS PRINTS THF CURRENT VALUFS OF THE TIMFSHARD AND TIMESl IfE X FOR A PARTICULAR OUEUF flUFUEINFO«WRITE ( I N* INTFR IM ) J FOR M*0 STEP 1 UNTIL OUFUENUM Dp 65 WRITE U4»U5J INTEGER NUMINDOSSIER) INTEGER ARRAY NUMI NQUEUE t I 99 ] I INTEGER ARRAY FREFLOC T 1999 ] »FREESI7E 1 1 999 ] »FRFEL UK [ 1999 J | INTFGFR ARRAY ALLOCNUMt t 999 J, Al LOCSI 7E t 1999 ] » ALLOCLOC t i 999 ] J RFAL it FORMAT INDHS ("SIM--THE NUMBER OF REQUESTS ALREADY ALLOCATEp IS "# I6»","># INOUE ("SIM--THE NlJMRER HF RFQUESTS IN QUEUE r "> 1 7, " J IS ••* I4#"i")# FSLICE ( , 'S!M--OUFUFt' , #I?#":i-"#X , >,"Ti>» F AT("SIM--RE.0UEST ",I5#" -PROCESSOR TIMF FOP ALLOCATION IS *» 18* w • •• 5 * FtJRMlN(/// H SlM--PEQUEST "»I5#" HAS JUST FNTFPFD OUEUF "#I3» " AT SIMULATION TIMF " > \h »* . •• ) » FALLUC (///"SIM--RFOUFST ">l*, m WAS JUST ALLOCATED AFTFP WAITINC, "»|5i " UMTS OF SIMULATION TIME IN QUFl'E ",13/ ♦•SIM--SIMTIME. NOW IS "»l6»"."># FSEARCH f "SIM--ALLOCATION ATTEMPT TO BE MADE OK' ©UFUrr". I?»"]. H )» F T H R U C/// , 'SlM--hEOuFST «»T3," TS FIMSMFO AFTER " , \5>" UNITS OF TlMF. w )# INTFRIM (" ")) * PEAL PROCFHURF PE AKE DPR A W( LP# UB» PFAK# L'PI STR ) » VALUE Lh»Ufa»FFAK#»)DlSTRJ RFA1 LB* UP* PF AK, UD I STR : PEAkEPDRAW «■ IF UUISTRx(l'R-l. B) < (PEAK-LB) THEN LP*SGRT(UDlSTRx(PEAK-LP)*(UP-LH)) El SL l'P-SGPT( (Up-l b)*(UP-PFAK)*M .O-UDISTP) )i * * * SIMULATOR ACTIVITY PE CL AR A T I PF- S t % ACTIVITY JOBRUNMNG ( NUM* WHI CHOI E UE ) J I NTEGF R MiM, wHT CHOUFtlE t FORWARD) ACTIVITY OUEUFREOUEST ( RECNtlM W I NTF GE R PE ONUM ; L PC AL 5 INTEGER CUEMIMJFURWARDJ * I COMMENT Tht FOLLOWING ACTIVITY CHFCKS EACH OUF UF ANp PN THE BASIS OF ITS TTmESLICF VALUE, EITHER SELECTS A JOB FROM THIS el'FlJF OR CONTINUES ON TO THE NEXT fcUEuF. TF THFPF IS AN Al LOCATION ATTEMPT OK A REcUEST WITHIN A OUFl'E AND IT FAILS. THE NFvT REOUFST IN THE SAME CUEuE IS TAKEN FOR THF NEXT ATTEMPT. I * ACTIVITY SUPFRVISPRj P E G I N LABFL CHECKOUFUES#NEXTEl EMEFTI 66 IF fiS'r AtVpCATORBUSY THEN BEGIN A|_LOCATPRRUSY«-TRUFJ J*OJ CHFCKQUHlFSl X*FlRST(CliEUEr J])J IF TIMESLKEC Jl>0 AND MPT EMPTY (OHFUFfJJ) THFN FEGIN NEXTFI EMFmTi INSPECT X WHEN CUE UFRF QUE ST DP BEGIN WRITE (LN#FSEARrH#J)J T RE EBU I L DT I MF [RF QNUM]i«T I MF( 2 >; TPEEHUILLI TREE.BUlLDTIMFrRF0NUM]|BTIME(2)-TRFEPHlLnTTHr [REQNUM1; WRITE CLN,F TB#RFONUM>TPFERHILnTTMF tREQNHvn)» W P 1 T F M } AL L OC T I ME tRFONUM I «T I KEC2) J ALLOCATE I ALLUCTTMEtRE0NUK]»*PAhP!NTM#50C»uMJ If NPT NPSPACE THFN hLGIN KAlTlKFtREQNUM]|«MMTIMF-WA J UMF[RFONliMil WRITE (LN»FALl OC # PF flNUM, W A I T I NF r RE PNUM ] , J#SIMTTMF)I WRITE (I N,F AT »RFOMif » A| L f )f T TMFJ [ PE CHUM 1 ) i RFMOVFCeUFtPFPNUMDJ ALLOCATPRPUSY*F ALSF) ACTIVATE (0|'EtRFOMIM]lsNF> jORRl'NNTNG f RF CJh UM* J) )t enp; FNDl IF NOSPACE THEN IF X#LAST(Gl'FliFf Jl> THFN BEGIN X*SUC(X)J npspace«-falsej Gn TO Nf XTFI FMFMI F ND El St ALU)CAT0PPPSY4-F ALSF) F Np ElSE BEGIN j«-j+n IF JSOUEUFMU^ THFN GP TP ChECKCUFUFS ElSF PEGIN FPR J«-0 STEP 1 UNTIL OUFUENUM OP WEGIN TIHESLICFT JJ*TIMESLICEI J]*TIMESHARDr Jil IF TlMESLICFt J]>0 THEN TlMFSLlCFtJUTlMESHARDrj); ALLOCATPRPUSY^FALSFI Endi QUEUEINE 01 ENDI riun t 67 END END; SUPERVISOR; I X COMMENT THE FOLLOWING ACTIVITY SIMUlATES THE HOLDtNg M THE ALLOCATED SPACE FOR A RANDOM LENGTH OF TIME. THE NFWIY ALLOCATED REQUEST IS PUT INTO THE DOSSIER OF RUNNING JOBS AMD HFLD THERr UNTIL ITS TIME, AS INDICATED BY THE RANDOM NUMBER DRAWING PROCEDURE, IS UP. THE JOB IS THEN REMOVED FROM DOSSlFR AND THF SUPERVISOR IS ACTIVATED TO ALlOCATF ANOTHER REQUEST,; * I ACTIVITY JP6RUNNIKG(NUM,WHICH0UFUF)J UTEGER NUM,WHICHOUFUE t P E G I N INCLUDF (CUEtNUM], DOSSIER); >*ND PUT IN DOSSIER OF RnN^ING JOBS INDOSSURl INOl'LuES) RUNT A MF tNUV ]*SIMTIME; Z«-UMFORM(0, 1,U3)I HOLD (PEAKFDDRAfc(5>?50,100#7))J RUMTlHF[NU^]*SlMTIME-PUNTlMEtNUM]) WRITE (LN,FTHPU,NUM,RUNTIMErNUMI)j REMOVE (OllFfNUMJ)l TIMESl ICFrwHlCHgiiFUF ]*TIMFS| ICEtWHIf HOIlFllFl-RliNTIMFfNHMii QUFuEjNF Of ACTIVATE NFW SUPERVISOR! F^D JOBPUNNINGJ OMHFM THE FOLIOWING ACTIVITY PAf^DPMY CHOOSFS A QiiFuF ACH REQUEST AND FNTEKS ThE REQUEST IN THE QUEUF.I FOR ACT I Tf FE F^ * * COMmE'N TIME S GETS A * I ACTI PE IUOF I VITY Ql'EUFREQUF ST f RF Ql\j*< )f TEGER RtQMJMj GIN IKTFGFR QUENUM) WAITIMF[RFONUMl*STMTIMEI IF QUEUENUMsO THEM QUFNUM|sO ELSE 0t 1 ENUVt«RANDTNT(C,0UEUFNUM#U4)> WRTTL (LN,FORMIN,PEQNUM#OUF*UM, SIM TIME); INCLUDE (CUF[REQNUM],eiJFUFtCUFMiMl); INnOSSTFRl INQl'tL'FSj ACTIVATE NEW SUPFPVlSpRl D OUEUFRFOUF STJ T THE. FOLLOWING ACTIVITY WAITS FOF AN AMOUNT OF SIMULATION PF C IF IF D PYARANOOM DRAwlNG FPOM A PFAkFD D I STr I PUT ION , RFCUEST, AND THEN ACTH-ATFS ACTIVITY OUEl'FPEQUF ST . J vity gftrfcuest; GIN UTFGER U LAPFL LUOPI 1*1 J RtADEMJ »THIS wHL RFAD SA^E RFOUFST OVFP * OVER 68 AlTIVATE(l#U2)J HOLD (PtAKEnDRAW(l#100#30#Z))l if is99 then go to loop) kd getpeoufst; * I t M Hit l»?l U3 I U4I ACT CAN FND S eno. AIM PROGRAM «5496fj ■3A875J *45fl9J "678943? IVATF MEW GFTRFOUEST DEL^Y 0| CEL (CL'RREMT)J IMULA) 69 D-2. THE SIMULA UNTRANSLATABLE PORTLON --THE DLSK FILE ALLOCATOR AND TREEBUILD PROCEDURES, GLOBAL DECLARATIONS AND DEFINITIONS ( SIMULA/ALLOC ) This section of Appendix D contains the procedure for the allocation of disk space for the ILLIAC IV disk and other procedures, such as Treebuild, and arrays which interface with the disk file allocator and the system. The disk file allocator in this simulator is not logically debugged. It was coded hastily by the author from system flow charts and preliminary definitions made of its arrays in an effort to get a procedure having the same interfaces with the system as was planned for the final allocator. This was because coding on this aspect of the ILLIAC IV Operating System had not begun at the time the coding on the simulator was completed. Two other procedures are contained in this section. PROCEDURE READEM reads the data and sets up a file block. This block (logical records of 30 words each) constitutes the input to PROCEDURE TREEBUILD. PROCEDURE WRITEM outputs the results of the Treebuild procedure. These two procedures, and TREEBUILD are the property of the ILLIAC IV Operating System group. TO A I L D E F I nnntttnnixjumnnjui X X SUULA/ALLOC — THF UNTRANSL nnnnn»nn»nnnnn>» %ixxtx%xrxi%xxxxxxxx%xxi\\xi% X t xxt%i%\%xx%xtxtxtxxxxxxxxxx%x xtxxxxtxxxttxxxxxxxxxxxxxxxtx txxxxxxxtxxxxxxxxxtxxxtxxxxxx X % D I S K F I I f X X ARRAYS* * t%*%'i%ii%i%%%%%xit%x%%i%%i%r% x%xx*xxxri%x**xxrxxxx%xxitxxx % X t * IMIGFK ARRAY ADDSE GS I I 3 TMEGFR NN^NXTBLK'NYASSK* INTEGER F IRST5UM)M»LASTSll ALPHA A#PJ FOOLFAN TOPJ FILE INK (2,10)J FILL FASSFUE DISK PANOflM INTEGER AKDUNTPFFPEEDISk#NU INTFGER TOFHLPCM PROCEDURE F KFFMPSPACf ( A ) J TMEGER AJ PF GIN *V-HAT IS THIS... E ko; %%rtyxxxxxxitx%tiyrrrxxri%xrtx\trxxi%ixxuT xtrxrttxxtttxtxxtxxxxtxxtxxxrtxxxixxxxtxxxx ATAPlE PORTION xxxxxxxxxxxxxtxyxxxxrxxxxxxrxixxxxtxxxtxxxx xtxxxxxxtixrxixxxxxrrxtxxtixxtxxxxxxxxxxxxx xxxtrxtxxxx *********** C A T O N F S , xxxxxxxxxxx *********** P » N X F T L # N F X MiM#F IRSTEU E 3i 300] (2 ^SEGHPFHTRK *»ijx*****i**rj***x****s*i****%* xxxxyyxxxxxxxxxxxxxrxxtxxxxxxtxx xyxxxxxxxxxxxrxxxxxxxxxtxxxxtxxx R - AND PROCEDURES J**********.*************,******** xtxx%ttxxx%%xxxxy*xx%yxxy%xx%%%y T,LARTIN»ASj M'M,L ASTFl'NuMf #3P)> I HROCFDURE GF TMAPSPACE ( A ) ; TMEGFR A J F E G IK *InMAT e*d; IS THIS. PRCCE DMRt I* TEGEh PEGU' XKHAT EMOJ getassnplkspaceca a; IS THIS. . . ) > THF FCIL'WING APE THE GLOBAL ARRAYS Af>D DEFINFS USED BY THE DISK FILE ALLOCATUR PROCEDURES* TREEBUlLD AND ALLTCATE, AMD ThFIP PROrFOuRFS. X PROCEDURE TRFFBUILD-CPFATFD ARRAYS ARE I 71 s ALPHA ARRAY THING[019"J I REAL ARRAY PTPBLK [0 I 63, 1 1 91 ]# ASSNBLK [0163*01191 1, T0PBLK[0l63,0t 191 ), FIlPLK r0l63»0ll9l3# H0LDIT[0t29]) I * TREFBLILD DEFINES ARE t * t DEFINE MJMBPTRCMJMPPTRI )sPTRPl K f NUMpPTR 1 . [ 36 t 6 ] , 3xNU*BPTR 1 . [42t6] ). [ It 9)*, *46=47. VPFTP(VPPTR1)»PTPBI K t VPPTR 1 . [ 36 I 6 ) * 3* VPPTR1 . [A?I6)). f 101 1 )*, NUMSE6S(MJMSFGSl)«PTRBl K[N| 'MSFf.Sl . C 36 I 6 1 # 3»NllMSEGS 1 •(4216)]* [11 «21 )*, Nl.HFPAGS(NUMFRAG«;i)«PTPBlKrNLiMFRAr 1 Sl.r36|61#3xNUMFpAGSl.[4?l6 ]].C3?ll6]»# NX7PTR(NvTPTPn*PTPPLK[NXTPTPl.[36t6]»3xNXTPTRl.[4?t6].fl]. [llll It, PHYPTRfPHYPTPl)=PTPPlK[PHYPTR1.[36l(S]*3xPHYPTPl.[4?!6]*l), [12|1?)*> VSliPTPCVSUPTRl)«PTRBLKrVSL'PTRl,[36l61#3>«VSi'PTPl.r4?l6j*13. [24i 1?]*, V7HKPTP(vTKKPTRl]=PTPBlK[VTRHPTRl.[36t6],3xVTRKPTHl.[42t6]*l] .[361 1 ?!*» PHASPTR(FHASPTRl)sPTRB|K[RHASPTRl.r2ft<*],3*PHASPTRl.[fl2l6]*2] .[ Itl5)#, *46*47. CDNTIGPTR(CnNTI(iPTRl)aPTRBlK[CnN7K,PTPl.[3AJ6]*3xCr N TlGPTRl. [42I6J*2].[ 16 116)1, JIINKPTR(jUNKPTRl)sPTRP|K[JtiNKPTRl.[36lH,3yJUMKPTP1.[4?J6]*2l .[32H6]*, CPM ■ B.[ 7t 1 )*, PH c P. [p i 1 ]*, VFli s P. [ Vl 1 ]*» VSl c 8 • r 1 I 1 ]*> VTRK = B,[ 11 tl]*, PFU = B.C12H ]*, PSU = B.tl3ll ]*, PTRK = H.IUil ]*, EINUM «B, C 15l4]#, StiNUH =R.[ 191*]*, TPKNHM=H.[27t 101*, PHS =H,t37lll]*, SFGS cA,[24i24]|, NXT FRAG (NXTFRAGl)=ASSNPLKrNXTFPAG1, [36:61, ?xNXTFRA(;l.[«2t6]). [ ltl5]*, *46aAME(RF II NAMF1 CF ILKAME(CF ILMAMF1 f42l6]+2)#> SFGSRFCO(SEGSRECDl [42t6]*3).[ 1 12 TOTSFGS(TOTSEGSl) [4216 ) + 3],[?4t PFEPTK(PPEP1R1 ) c r 42 « 6 3*4 ] . C 1 t2 POSTPTR(POSTPTRl ) r 42lft]+«], [241 FlLASSN(F ILASSM ) ♦ 51. [ lllllfji PPYSICALFUCPHYSlf A PHYSICAL { Ul .(4?i6 VIRTUALFU VIRTllALFUl . t 42 I 6 3 PHYSICALSUCPHYSICA PHYSKAl SU1 . [42:6 PHYSICALTRK(PHYSIC PHYSKAl 1KK1 . t 4?i VlWTUALSli( VlPTliALS VIRTUALSnl.r4?lM VIRTUAL TRK (VIRTUAL VIRTUALTRK1 . [42i6 PHASFOPTP(PHASF DPT PHASFDPTR1 . r 42:6] CrNTGPTP(CllNTGPTPl CONTGPTF1 . [42:6]* JKKPTRC JKKPTP1 ) = T(I JNKPTP1 .[ 421 6]«-l J FGl) = ASSNPlMASSNRlkSFG1.[36:A],3x 1+21. t 12111 Up ],[24l?4J#, ].[ 19I5]#« ) s F IL HLK f AF IL ) « Fll BLK[PF IL ) b F ILHLKfCF IL ASEGSRFCD ATOTSFGS APRFPTR APOSTPTR HOLDIT HOLDIT HOLDIT HOLDIT ) « FILBL 31## ■ FILBLKT ?4)#, FlLPl KTPP 3]#> ■ Fll PLKT ?4]#, = F I| Bl KT I FUl )=TOP ] 3.1 1 19)1 ( VIRTUALF ] . 1 1 1 1 2 ] I SUl )=TUP 11.U6I 11 ALTRkI )*T 611. [47: 1 Ul ) = TOPBl 3 . C 22 » 1 2 3 TPKl )*TOP ]]. 13411? Rl )eTOPBt ♦ n. 1 1 * i s JsTOFBI KT 1], [16116 PBLKr JK-KP .[32: 163f r 7].r i r 7], [24 r *i.r 1 r 8]. [24 KTSFGS *46*4 TPTsEG EPTP1. *46 POSTPT FILASS • Bl K[PH p Ul ) = TO tp BLK[PH tp OPPl K[ \t> KT VIRT tp Bl K[VI Up KTFHAS Up COMTGP Up TR1 . [3 p l231## I243#» 123]* p :24]*J NAMFl ! [36|6]#6xAFTLNAfFl. NAMFl,[36»6]»6xpFTLNAHFl. NAMFl.[36:6]#6xCFlLNAKiFlt RECP1.[36i6]»6x«;Er. i) RfCni. 7. Sl.[36l6]»6xT0TsFr,Sl. [ 36:6]> 6XFRF PTR1 . = 47. Rl . r 3*I6]»6xP0STPTRl . Nl.f36t6l»6xFlLA5«*l.[4?!6] YSICAI E u 1 . C 3M6]#?x PPLKf V IRTUALFUI .C 1 «6]>?x YSTC Al SlJl . [ 36l6)#?x PHYS W AL TPKl . r 36 * Nl'MSUFPAGS?)*MAPPLKPTPARPAYrKl'MSUFRAGSl, 73 x * * ** * * * * * ** * * % PE *i*»x**xu»ii*x*ft**x***»**x**f**«x»*tf**st***»**z***xx***«**xt**xx***t PROCEDURE TREFRUlLD BUILDS THE ALLOCATOR TREE FROM THE DISK FILE PLOCK BUILT BY THF JDR PApSFP. *X»*X»*X***X**X*X*X*X***********X********XX*****XXX******X***X***X**X* PROCEDURE TREFPUIIDJ *xxxxx*x*%******xxxxx*xx*»x*x**xx*x*x***xxxxx**xx**xx***xxx»xxtx**x*x* GI NTEGEK m,n» ABfL LPSU,LPT WITCH LNXT «■ *xx**x**x***» ASSK creates AN ASSlGNMFN assn is entf block asshci indicating t thf levfl pl tl the phasf within each SEGMENTS, wl TOP. FOUR C 1. THE LI RK >lvfu>l LPSU*LPTR ASSIGNEE T BLOCK I RFD WITH ATED WITH F THE REG K HAS POI D,CONTlGO OF THFSE TH THE AS ASES CAN ST INTO W 3. THF NEW BLK IS LFVFI PLK IS P THF LIST IS NUT OF THF LIST. NEW PLK IS CKf THF ">EXT PLK "TOP OF THE L THE LIST IS NPT IN IT pFTwFEN THF NEW PLK "NEXT HLK" P "NEXT BLK" P THE LIST IS NOT VSU#L K#FIN XX*XX NT HI S TWO NM CO THIS UFST M T F R S PUS, 3 I IS SIGN* OCCUR HICH A CPFA I N T F EHPT VTRK^FU 3#FINa,l P9#RDI 3i ***** OCKS WORD NTAIN RFGU IS PH TO AND T<, FM IN ThE CTION TFD A TO Y A NO ***** ANO S S IN ING T EST A ASFO, LIST UNK A HF A«s FQUIR HIS F FW AS NO TH IT. THF ******************* ETS POINTFRS TO LINk THINGS UP THE ARRAY "ASSNPLK". HE NO. OF THE LOWEST LEVEL ND THE CASF SWITCH t-CH CONTlGUOUS»OR JUNK. S OF ASSlGNMFNT BLK< CORRES. SSNPLKS ASSOCIATED wITH IT. SNPLKS ARF PRDFRED BY NO. OF ING THF GREATEST NO. AT THE ROCEDURF . . . SIGNMENT BLOCK HusT GO IS NULL E CORPFS. PTR IN THr NEW RFPIiEST MUST GO IN THE TOP ACTION ATFP 8 THE LEVFL PLK PTR. POINTFD TO IT, " PTR IN THE MFW PI K IS POINTFO TO THE III D 1ST" BLK. EMPTY ANU THF NEW RFH'EST MuST pE INTERIEAVF ASSNPLKS A l R. ACTION IS CPFATFD. TR. OF A POINTFD TO NEW RECUFST. TR. OF NFW REQUEST POINTED TO P. EMPTY AND THE NE '•' RF*l L0OH at thf phasf. COf^TlG, PR junk ptr tf thf ipwest 9 LEVFL PLK NFCFSSAPY EPR T H I *; REOUFST. CASE wCH OF F E G T N PP t = PP is PP |i FNDj If THF PCJ PIP ASSIGNMENT BLK PP e THEN THF FIRST ASSNbLK FUR THF FI^ST A55NHLK FU F Ft K FOP THAT FILE. PHASPTM NN) I CPNTIGMR(NN)J Jl'NKPTR(NK ) t * I IF n t p n i IN THF IF\FL PLOCK AND SFT TME PCJ PT GO TO FILL 1 i IS NM I R Tli P T N CRFATF TuF NE<- T TO IT, *IF NO, OF SE6MFNTS IN ASSNRlk *NO. OF SEGS* LOOK AT NXT ASSf IF SFGNUM(PP) > SFGS THEN FEGIN *r,ET PTP TO NEXT ASSNPLK QP 1= NXTK(PP)/ IF CP NFC THFN PEG^ L ASTON f «• PP; pp «■ op; r, f j t n o T r o » FNO FLSE * CREATE NFV PFGIN NXTHL(PP) ♦ N v a s s n ; E T L L ? » SEGM)MN>ASSfO«-SF(j$J PHNuM(NXA$S* )*FHS; *IF THIS IS TH FIRST A tPOIMT THE FllF PLPCt' T IF LASTlNsO THF N E TLASS KXTFPAGd A S T I E ) «■ N X A S S N J I ASTIMsNxASSM NXASSN ♦■ NXASSN ♦ II GO T n Hk?| F NO F ^ r> ELSE ^INTERLEAVE PFGIN NXTbl(NXASSN) «■ p P j * IF THIS IS THE FIRST AS*' » LEVEL PLK> POINT THF LfcVE * PRFCEEOING ASSNPIK TH IT. IF LASTONf NFW ThFN *XTP| * POINT THE PHASF, CONTT * LEVFL PLK TO THF ASSN F TLL1 » CASE WCH fiF BEGIN PHASPTP(NfO t = NXA PniNTFO HI K * CPM TO IS > MFl' GUY S PAPE MP. Of SEGS. ASSNPLf AT ENP PE I 1ST OE OLP ASSNBLKS. SPPINT * F M T F F *E NTFP SSNhl h fl TT . N ( N X F II > 1 *PPTNT I A STPNF ASSNPLK Tn NEW. . f F SFGS !NTP NEW. . PF PHASEc. P « F Tl E . rNYASSr ELS F ST CPFATFO TO NFV . NFW ASSK'PL * IN 01 P t 1ST. HL" OF TH I PI x TP ( L A S T f ■ * F ) G#OR JUKK PLK. IS TYPE TOP THIS IT FLSF POINT THE t=KiXASSN E I &F FTR TM THr SSwj 75 CONTIGPTR(NN)li JUNKPTP(NN) l« ENDJ F ILL2J NXASSNJ NXASSNJ GO TO ENDJ F In2iEND ASSNJ xx%xxxsxxxxxxxftxx:txxxxxxxxxx*xxxxxxxxxxxvxx9)7 * FIND CREATES A NEW UVEl PLK (BLK P) ACCOROT PTS THE ASSOCIATED bLK ON THE LFVFl ABOVE IT LEVEL PLK, FlNp IS ENTERFD WITH KM CONTAINING THE L F VF| ANO WCH INOICATING WHICH PTP SHOULO BE TAKFr UPON EXIT FROM FIND* NN CONTAINS THE LEVEI P ASSOCIATED WITH EACH POTNTFP IN BLK A, IS ' OF COMMON TYPE (E.G. FU»SL'#TPK) IN THE ORPF P CREATED AT END OF LIST). LOOKS DOWN THE LIST ANO 3 fA< IS F MPTY. ACT ION A NEW LFVEL PLK IS CREATED AND THF IS SFT TO HOINT TO IT. FINDS A IFVEl PLK IN THE I 1ST WITH F. El'#SU#TRK jr). ACTION NO NEw PLh. IS F INDS NO LF VFL CfcFATED* (LAST THIs PPOCEDURF 1 . THE I 1ST IT ( I % LSE PFGI FIRS MXTP NUMB XTBLK NN ♦ NXTR * IF * FP IF F f ASF D NEx TPTR( TH M MMJ n nxt *NO F N Tl lr TPCNK PTR(K ) « = NXTB LK «• THIS P THF IPST1 WtH PEGU' PHYPT N X T P T VSUPT VTRKP end; T PLPCK NOT 0, GFT NFvT BLOCK K Gn TP NyT NN)J EN XISTING BLKS AGRFFP, rRFATE MEw DpL a FALSF) ) ♦ MyTPLK; XPPP:T |A N AT THIS NEW PLPCK. NXTPLK +11 IS THE FIRST LEvFL P| K OF THIS TYPE APPVF LEVEL PLK» PT THt APRVF tO THIS NE^ THEN OF R(NM) I* KM H(NM) Je K'N) RfNM) I* NNJ TR(KiM) t= NM FM'il ??** 1%%% ***»*»*> F OR FC E I » IK NXTt NXAS N*FI K'F XT RDi TOP * RE PEAL * EN NEXT * IF % FI IF N PFGI F * * A A G Ff-D **** x*i* **** Miso R N: EG IN ASSK PTRP TpPR F ILB np; itAa I K «■ SN ♦ I «• J = » = T AD T ( PAS TFR *• s THI IF H PT T N NO J F NTFP CONNF PDSFf.S S 1= A r tp l F INPJ ****** h E G I N ****** STFP = STF FLKT^» L K [ M » N I K[M»N L K [ M * K NN IN THF ARRAY CTfU WITH THIS P LAS] 1= NNj S + 1 J NXTt TP+1 ]) *****»*»x»***xx* F' A I N P p D Y PF PP **************** 1 UNTIL 6 3 TP ¥ 1 UNTIL 191 Or M 1*01 ] l».OJ I 1=01 Jf*OJ THAT PTS TP Al I PL i If THIS IS THF ENP UF T^TS FILE* S IF A s AND F = THFN * IF iHFRf IS AMOIHFRF Fl|£ PREP Tf NFXT * THEN GO TP F I K 4 F I SF h F G IN SFF If IhFPF. APF PTHFF- F 1 1 E S ARE TP FPHM MIF. FLPCu. LPSt'l I h f g n TOP js TRUE MXFIl *■ *XF II ♦ 11 L A S T I N t r ; GP TP PPl F ^01 >TF A PHYSICAI FU I TF PFli = THFN (,u TO LVEUJ FTNCUNXT»FUM'M,0#0»1 )i 1 INDICATE PPUT Tn . IN 1 T I A I I / 1 M ¥ F II F Pf AP, NF >T F Tl F Rl K . I A C I J K , NOT HFPUTRFD GP TO L W U. L \j F 1 1 1 IF A PHYSICAL SU IF PSl' = THFN GO TP L F IM(l NXT»SliNHM, 1 >0# 1 ) I K t NOT RECHIRFP TP LVSHJ GP TP LVM IS NOT LVTWKI PFCUIRFP* GH Tp l VTRK , LPTRKI » IF A PHYSICAL TRACK IF FTRK =0 THf N GO TO L V F INPfLNxT#TRKMJ*-»?,0#l>J I VFUl » IF A VIRTUAL FU NpT RFuUlRFp GO TT LVSU. IF VFl s THFN GO TP LVS''J F INlfl NxT»n'NUM,0#l»0)| LVSU: > IF A VIRTUAL SU IS NOT RFOIUPFP GT 70 IVTP*. IF ^$<[i b THFN GP TO LvTRKJ FIND(LNXT*SIJNUM, 1»?,0) J LVTRf 1 * IF A VIRTUAL TRACK IS NOT RFPUlREO GO TP F I M. . IF VTRK * THEN GP TO F I N 3 1 FIND(LN*T#TPKMIM»2>3#0)J F I N 3 I 78 Itch th o fpr assn. In assn to 1 . * IF THE NFW REQUEST IS PHASEp SET THF CASE SV IF PH « 1 THEN ASSN(O) FLSF IIF RFOUFST IS CONTIGUOUS SET THE CASF SWITCH IF CONT « 1 THEN ASSN(l) Fl SF ASSM(?)J I ADD TOP BIK TO ADPSEGS ARRAY. ADDSEGSTAS] l« \i X ADD NP. OF SEGS TP TOTAL IN ALL LFVFL PI KS THAT LEAP X TO THF NEW ASSNbLK. FOR AS »« AS STFP -1 UNTIL PO PFGIN NL'MSE(.S(APDSEGSr ASI) l« NUMSF. GS ( APDSFGS t A $ NUMFPAGS( ADPSFGStAS J) l« NUMF R AGS ( ADPSFGS r ENDI * PPINT I Tp NFXT 2 WPRP PFOUFST TN HpLD ARRAv. )) ♦ STGSl AS!) ♦ II 1*21 to lpo; ASSIGN ( ASSNbLKPTR#WHTCHHAP,PH ASSNPI KPTR,WHJCHMAP»PHASE»THTS asf»tht^map)i map; I I GO F IN4 t END TKEEPUILDI * X X xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxxx X PRPCELUPt ALLPCATF USFS THF ALLPCATTON TRFF ANP * ARRAYS TO ALLPCATF SPACF PN THE DISK FPP FIlF RF X * XXXXXXSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXJXX PROCEDURE ALLPCATF; xxxxyxxxxxxxxxxxxxxxxxxxxxxxxxxxxyxxxxxxxxxxtxxyxx x x * PEG In procelure INTEGfR PF GIN intfgfr mapaddr*nf*nap; LAPfL FIN; ASSKbLKEU(ASSKhLKPTR}|*HEU(KHICHMAP)l ASSNbLKSU(ASSNPLKPTR)tsMSlKKHICHMAP); ASSNbLKTPK(ASSNbLKPTR)leFNTTEP(PHASF/M)MSFr,c ASSNbLKSFG(ASSNBLKPTR)|BPHA?F MPD ( M'MSF GSPF F NUMSEGlNMAP(WHICHMAP)t»MIMSEGlMMAFr»*HICHMAP^ SFGNUH(ASSNB| KPTPH IF F lRSTSEGf THISMAF)=PHASF THFN IF NUMSFG(THISMAP) NFC SFGNIIM ( A SSNPL KPTF PEGIN FIRST SEG(THISMAP)I«PHASE*SF GNU *(A$SN GP TO fin; FND EL?E P E G I n IF THISMAP NEC M APPTR ( *H I CHM AP ) THEk PEGIN MAPADPRl«PAPPTRfWHlrHNAP)J WHILE NF XTMAPPLPCK(MAPAPDR) NFC BEGIN MAPADpRlBhExTHAPBlPCK(MAPADp NFXTHAPPLPCK(HAPAPPP)«BNEyTH end; FND ELSE *XXXX5f»XXXX»XXXXX*XX*X ITS PwN FpEr SPACF BUFSTS. xxxxxxxxxxxxxxxxxuxxxx xxxxxxxxxxxxxxxxxxxxxx pertrk ); TRK); ) THFN BL*PTR)I THISMAP Dp R)J APBI. OCK(THleMAP); 79 MAPPTRC*HiCHMAP)l«NrXTMAPBlOCK(THlSMP)J FPFEMAPSPACE (THISMAPH NMAPFRAGMFNTS(WHICHMAP)l«NMAPFRAGMFNTS(WHlCHMftP)-lJ GP TO F INJ END ELSF BEGI IF ( NO FN'UJ N PHAS THISM BEGIN NEWM GET FIR NliM F I NF* Nf X NMAP FNPJ MSFGf F*SEGNUM( ASSNFJLKPTP) AP) THFN NEO FlRSTSFr,(THTSMP)*MiMSFG APl«NEXTMAPBLOCK(THISMAP)J MAPSPACE (NEKMAP)J STSEG(NEfcMAP)l*PHASE*SFGNUM(ASSNPLKPTR)? SEG(NFW*»AP}l*FlRSTSEfi(THTSMAP)*Nl'MSEr,*SEGNllMfASSFBLKFTR)J PhAsEi = AssNMLtKHICHMAP) FGFR ASsr EGU NBL IF F NFWASSNBLK#NBinCK) BLKPTR NEC THFN UCK«-MAPPTR(WHICHMP)J MIHSFG(NBLnCK)EWASSNP| KJ NXTFPAG(ASSNBLKPTR)»sNEWAS5NRLt'l SEGrUM(-NEWASSNHlK)*^EGNUM(A.^SKPlKPTP)-NliMSFr,(NPiUCK)l SEGMJK ASSNBLKPTP)«-K'UHSFG(NPL0CK5) IGK fASSNPtKPTR#WHKhMAP#FIRSTSFG(NP| OCK)#NPtOC»M! I) C JUNK (NXTBL(ASSNPLkPTN)»HHICHMAP5) F ND F ASS AIL kd; LLOCJUNK t ROPLEAN PRPCEnuRE ALL HCCOK T T G( AsSNFjL KPTP# WHI CHHa P) J 1NTEGFR ASSNPl KPTR#hhlChMAP) PFGIN INTEGER NPLPCKJ LAPEL LOOP'FIMJ IF ASSNBLKPTR#0 THEN H E G I N NPI OCK«-MAPPTR(fcHICHMP)J 81 LOOP t IF NBLflCK^O THEN IF NUMSEG(NBLPCK)*SFGNUM(ASSNBLKPTR) THFN BFGIN ASSIGN(ASSNBLKPTR#WHICHMAP#FIPSTSFGfNBinCK),NRUJCt<)) IF ALlOCCPNTIG^XTBL(ASSNBLKPTP)>wHTCHMAp> THEN BEGIN ALLPCCnMlGt«TR|iE) GH TO FIN) END F| SE fEGIN NBLOCKl«NFVTMAPPLOCK(RFlEASFR(ASSNPLKPTp» WHICHMAP))| GP TO LOOPI ENP> FNO Fl SF PFGIN NPLUCK*NEyTMAPBLnCK(NPLrCK)) GP TP LOOP) F NO El SE P E G I M Al LOCCCNTIG«-FALSE) GP TO F IN> FNDJ FND ELSE ALLOCf PNTir,*TRUEJ FIM END ALLPTCPK'TIGI % % RPPLEAN PROCEDURE PALIPC { PHASF 1 # ASSNPI fPTP # WHT CHmAP) ; VALIF PHASFl»ASSNbLKPTR#wHKHMAPJ T K T E G E K PHA$E1»ASSNPLKPTR#WHICHMAPJ PFGlN INTFGER NFXTMAP»PHASEl LABFL I OPPl»LPOP?»F JNTRIIF»FTNFALSF>FIM LOPP1 l IF ASSKBLKPTR^O THEN PFGP NEXTMAP*^APPTP(WHICMMAP)) PHASE l=PHASEUPHNUM( ASSMBI HPTP) MOD Nt'VSF GSPFRTRK | IF NFXTMAP#0 THEN ^EGJN IF F IPSTSFGCNFxTMAPMPHASF THFM IF FIRSTSFGCNF XTMAPUKUMSFGf NFXTMAP) END Ft SE HEGTN IF FlPSTSFGfNF)fTMAP)*NllMSFGfNFXTMAPUPHASE*SFGNUM (ASSNHIKPTP) THFK HEGIN 82 ASSIGNCASSNBLKPTR#WHICHMAP#PHASF,nExTMAP)| IF PAL10C(PHASF1#NXTBI (ASSMPLKPTP)# WHICHMAP) THFN GO TO F INTPl'E ELSF NEXTMAP|«RFLFASFRfASSKBLKPTR#VjHlCHMAP); END) IF PHASF GEO MJPSEGJNMAP(WHICHMAP) THFN Gr Tn FINFAI. SE F| SE GO TO InOPU END Fl SF BFGIN PHASElspHASF+NUMSFGSPFRTR* i IF PHASE»M»MSF GINMAF(WHICHMAPl THFN GO TO FINFAl SF ELSF GO TO LC0F2J F Kin; FNO ElSE go to f infalsej fkd; fintrhf t pauootrufj f,0 TO FIN) F INF Al SE « PAL LOOFAL SF ; F1M FND PALLOC; * * * BOOLEAN PROCEDURE ALLPCPHASE D( A?SMBt.KPTP# WHI CHMAP ) \ JNTEGFK ASSKHl KFTR»WHICHMAPJ F F G I K INTEGER NPIPCk.PHASE; LAPFL lOOP»FIM NbLnCK*MAPPTR(WHICHKAP)| LOOP! FIN % t PhAS*-«-FlRSTSEG(NBI OCK) j IF NOT PAt LOCfPHASE* ASSNBI KPTR#WHICHMAP) THFN PF (t\l NRI. OCK*NExTMAPBLOCK(NPLPCK) J IF NBLPfKjtO THEN GO TO LOOP ELSE F t G I N AlLnCFHASFP«-FALSFl GO TO F IN; FNDI FfD ELSF ali ocphasfp«-truf; END ALLOCPHASEDj POri FAN PROCEDURE ALLOC ABSPHASFP ( ASSNPl. KPTP # WH ] CHMAP ) J INTEGfH ASSNPLKPTKf WHICHMAP; FEGIN 83 LOOP i IMF- F INTEGER NPL0CK»PHASE#5IZEJ LAPFL LOOP/FlN,FINTRUEJ IF ASSMBLKPTR#0 THEN PEG IN NB10CK«-HAPPTR(WHICHMAP)J PHASE t*PHMJM(ASSN6LKPTR)J SI7E«-SEGM»M(ASSNBLKPTR)| IF NBLTCK^O THEN IF FlRSTSEG(NRLOCK) If PTR NEC THEN REGIN OEALLnCATFThK(PHYSKALTRK(PTR))J DFALLOCATFTRK(VlRTl)AlTRK(PTR)); Qk DEALLnCATFLIST DEALLPCATFSUCMXTPTRCPTR))) FND DEAlLOCATESUJ 'ROrEDURl DEAILPCATE.EIKHTPW TKTEGFR PTRj IF PTP NFG THEN P E G I N nFAlLOCATFSli(PHYSICAL$U(PTR)>J HEALL OCATFSlK VIRTU AL SI' (PTR))) DEALt.OCATFTPK(VTRTUALTRK(PTP))l PEAILUCATFLIST( PHASE DP TP(FTR))J PFALLOCATFLlST(CONTGPTR(PTR>>J PEALLUCATFLIST(JNkPTR(PTR))I nEAlLOCATFEu(NxTPTR(PTR))l fnp of allocatff u; 'PLCEDUPt DE AILPCAUOISM f-EGlN PF ALLOC ATFF IK F>YSK ALE lirTOPPLPCK))! DFALLOCATFFH(VTPTI"ALEli(TPPPlOrK))| OJALLOfATFSI'(VlRTUALSU(T(iPPLOrK))| Dt ALLOC ATFTRK(VIRTUALTRK(TOFRl OCK))J DEALLOCATFITST(PHASE'DPTR(TPPBlOCK))j DFAlLPrATFlIST(fpMGPTh(TPPPlOCK)); OLALLOCATFLlST(jNKPTR(TnPPLPCK))j f NO PF ALl OCATFDISKI 'ROf Ebiipt FUSHJliM«ALLnC(ASS^PlKpTR»FIPRTEUilASTFU#FTRSTSUiLASTSU)l iMtOFk ASSKPtKFTR#FIKSTFII#LASTFU»FIP?TSlt>LASTSlll F F G I M INTEGER NPLOCK»KHICHMAP#Fli»Sli) LAPFL FIM IKTpGFP NF^AS«iNMlK> IF ASSF bLHPTPifO THEN OFGU FOP EU LASTF RF •TlPSTEU STEP (IF FIRSTF USLASTFli THFN 1 FLSF-1) I'MlL II PP GIN v. H I f I NPLPI IF Ml *E\ XTFP XTBt HHAPI*HAPPlKPTRARRA>tFU#Sin» CK«.MAPPTKf WHKHMAP); UHSFGINHAPf KHTCHMAP)#0 THFN G I K IF NUHSFGf NPlPCK)TPL(MFWASSNPLH)l«NXTBl(ASSNPLKPTR); AG(NEWASSNPLK)|eNFWASRNBLK; (ASSN&LKHTRJJbNFKASSNPLKJ SEGhuH(NFwASSMBLK>»SFC»NUMrASSwPL»'PTR>» MUMSFG(NPLPCK) J SEGNUF'(ASSNPLKPTP)«-NUHSEG(NBLPCK)I ENPJ 85 F IN| * ASSIGNF TPSTFl'#L ASTFU# FlPSTSU' L ASTSin J INTEGER ASSNPLKPTR#FlRSTFO»LASTFU#FIR^TSH*LA^TStU FFGIN INTFGER NPLOCK»WHTChMAP#FU»SUI LABEL F INTROE »LOOP»F TM IF ASSKbLKPTPrO THEN tUSUCPNTIOALI POTPljF ELSF FOP FIK-FIPSTEU STEP (IF FIRSTFO LEO I ASTb |i THFN 1 Fl SE -1 ) LINT IL LASTED 00 FOR SU + F IhSTSl) STEP 1 UNTIL IASTSU 00 PFGTN hiHIChMAPJsMAPPLKPTRARPAYrFU#SDlJ NPLnCK«-MAFPTR(WHICHMAP)l TF NUMSFGINMAPC WHTCHMAP)>SFf,NUMf ASSNPLKPTR) ThFM LOOF I IF Nbl GCK*0 THEN IF Mi^SEGf NPLOCK )?SEGNUM( ASSNPl KPTR> THEN bFGTN ASSIGN (ASSNPl>PTR»*HirHMAP,FlPSTSFG(NbL0C»O, NPLOfK) J NUMSErINMAP(KHlCHMAP^4-MlMSFGTNMAP(WHICHHAP)- SFGNl'MC ASSNPl KPTF< )| IF EUSuCPNTIGALLPCfNXTbLCASSNPlKpTP )#lASTFU»FIRSTFn»FIPSTFU,LASTF|i) THFN GP TO FIMTRUFJ NPLPCwiBNFXTMAPHLPCKfPELEASEPCASSfPLKPTP* v-HICHMAP) ) J NUMSEf, INMAP(WHlCHHAP)*NtiM^EGlNMAPfWHICHMAP) + SFGNllMf ASSNPl KPTP)J GP TO LPOP) EKO Fl SE HFGIN NPLPCK«-NEXTHAPBL0CK(NPLPCK); GO TO LOOPI EKOl ENH5 fuSuconttgailoof alsf l GP TO F IN J FINTRI'El FUSUCONTTGALLOOTRUFI FIN | END ELSUCONTIGALLPC J % % I POOLFAN PROCFDURE ALLOC A TF PHASF ( PHASE PPTR . PLOC kPtR ) J 86 INTEGER PHA5E0PTR»B10CKPTPJ PFGIn ENDJ POIUFAN PpnCEpilRE AlLPCATFnNTRK(FlRSTEP»LASTFli»FlPSTSU»LASTSU' bLHChPTR)J H'TFGFN FlRSTFU>LASTEU» FIRST Sli#lASTSU# BLOC KPTPJ PFGIN FORMAT F ALtrCATFONTRK ("ERRPP IN TRACK AUPTATlPN. ALLPfATlPN ", ♦•TERMINATE D • " } J IF BLOCKPTRaO THEN ALLPCATFONTRK l«TRUF Fl 5>E END ALLtirATFONTPK j POPLEAN PPPCFrilRE ALL.PC ATE tjNSl'C F I RSTEL# I ASTE II, P| Of *PTR 1 J TNTEGFN F lRSTFU>LASTElt#PLPCKPTR> PFGIN INTEGER WHICHHAP#SU*EI'#FIRSTSU»LAST?U) LAPH FINI IF BLPCKPTR NFQ THEN PEGIN IF VPPTR(PLOCKPTK)=P then FIRSTFUI=l ASTFU««NUVBPTRf BLPCKPTR) P I G I W FIPSTSUlsFlRSTSI'NUMl LASTSli|*LASTSUNl'Mj FNPJ FPR Fli»*F I KSTFl 1 STFP 1 UNTIL LASTED PP FUR SUlef IRRT5U STFP 1 UNTIl LASTSll Pn B F G I N WHlCHMAPieMAPPLKPTRARRAY[FU»Sl , ]| IF NOT (MLPCK(WHirHMAP)sO OR N'UPSr GS ( PLPTKPTR -) LSS NUVStGTNMAP(WHjCHMAP)) THEN HFGIN IE ALLOCATFPNTPK(FU#Fl'#Sli»Sli»PHYSTCAI TR* ( pLPC k PTR ) ) T^FN HFGIN IE ALLOCATFPhASErfPHASEPFTR(blPCfPTP). WHICHMAP^ THEN BEGTN IF ALlPCCPNTlG(CPNTIGPTR(PLOrfPTR># WHICHMAP) THEN P E G I N A I LPCjUMKf jUNKPTPfBl OCKPTP) , l>HICHMAP)J IE VPPTR(PIPCKPTP)=0 THEN PFGIN HLPCKCWHTCHHAP) t»l J NHMAVAILSIlSEr,S(FU,SU)ts Nl)HAvAILSUSFr,S(Fl'#SU)-NLl>J>FGS f HI PCKPTR) J FNDI IE AL10CATEPNSP(FIRSTFU#I. ASTEp# ► XTRTR(Pl OCKPTP) ) THFN BFGIN 87 ALLDCATEONSlU*TRUFJ GO TO fin; FND ELSF BFGIN DFALLOCATELISKCOMTIGPTR (BlOCKPTR))J DFALLOCATELISTCjUNKPTR (BLPfKPTR))J MLOCK(WHICHMP)|«0) NUMAVAILSUSFGS(FU,SU)«« NUMAVAILSUSFGS(EU#SU)+ NUMSFGSCBLrOPTPOJ END) FNPt DFALLOCATFLTST(PHASFr>PTR(PLOrKPTR))l EM)) DEALLOCATFTPKf V I RTUAL TRK ( PLOCkPTP > ) I FNPj DEAtLOCATETPKfPHYSlfAlTRK(BLOCKPTP))l END enp» allocatepnsui»falsf; GO TO F IN) end; ALLUCATE0N5Ui«TRHE; FINt END ALL^CATEONSUl r * t POTLEAN PROCEDURE ALLOC ATF ONElK PL OCKPTR ) ; INTEGER PLOCKPTPI FFGIN INTFGEf- EU»5U,FIHSTFU,LASTFP#WHICHMAP; LAPFL F IN,FINTRUF> IF HLOCKPTP NEC THEN PEGIN IF VPPTR(PLUCKPTR) « THFN FTRSTFUlel ASTfU««NUK>BPTR(PLOCKPTPJ El SE PEGIN FIPSTFUlsFlRSTEI'NliMl LASTElHsLASTEliNUMJ FNPJ FOR Eln«FIRSTFU STFF 1 UNTIL LASTED 00 P t G I N WhlCHMAPje^HlCH^APN|'M(EU#Sl')J IF NOT (MLLCK(wHICHF'AP)el Op MJMSF GS ( PLPCKPTR 1 | *S MIMAVAILSUSEGS(EU#SU)) THFK IF ALLOCATFTNSUf EU»SU*PHYSICALSIi(RLOCkPTR)) THEN IF ALlOCATFPNSUfEl-»SU#VIRTl'ALSll(RLneKPTP>> THFN PEGIN IF ALlOCATEONTPw(Fti#SU#FlRSTSU^ % % % % PRCCf PE(. ALP ALF J F L A I HUHlP A nEAUOCATESU(VIPTIiALSlKTPPPLnCk))l ENPJ pFAUOCATFFU(VIRTUALEll(TnPFU F PR RLA ANN ANN BE A ANN ANN ANN ANN ANN RPUTt*] 27] NFO IK' CNT l« LACE (A l« 131 l« U TO LPLK I T Ib Q) N'»3,ANP RFHl ACF 1= S IN R( INN#F C7+CNT] [7+CNT] ; CNT is PUNN/F rCT+?xC [CT*?xC D( INN»F roT+i*? rOT+1+2 [OT+1 + 2 [ C T ♦ 1 ♦ 2 fPT+1+2 I* WIT A 1 S NN[C r "ooiooooo*; NP ANNC?8] ^E0 TMFN TFR 1 UNTIL 3 DP NT]»0»zrRDUT[*]»0>1 )J S| CO) ( ANN TFP F, A, .III . [ ?« ; [*]*8> ANPt *1»0* 3)) 1 UNTIL 1 PP P)J 23] i= a; 124] 1= Pj STEP 1 UNTIL 7B OP F#A#fO) MJ.tl l?3] l e Al NT] .[2AI2A] |b PJ ( 1 * c * p * i » f » g ) ; *r nt ]. [7iP] ir r j xfNT ]. f I5l4] l« n> XCNT], C19183 |e ff xCNT]. 127510] Ib F> x C N T ] . ( 3 7 t 1 1 ] ib r, ; FN KPT V R IT F ( IF LIN RF 1. 1 fin FN RFA[. ( F ND PF % ? % PKPCF PUFF R F G I N F PRMAT "F RbLK ftlU 01 TE ( SIXf K NE GIN NKl TF 0) IN*> A F k PASSFILF[LINK1]»30»ANM*J)» IlF> 1*» ANN[*3 ) i T y E N 1 r | . I N' k J RPP J 10»THIN&[* j); I TR BLK 91 F8(X12,«ASSNHLK *">I10»X5,"SEGSs">IlP#X5» "NXT FRAG IN FILE IS AT ASNPLK #",I10), F15(X5>0»"JUNK ASSNBLKSV/) » F16(X50» W THF FILE RFQUFST WAS")» F?7("T0PPLK PTS T0"//)> FRT("FILE BlOCK *"MlO» w IS CALLFD")* FRTICND. OF SEGS/RFCO *%I10#" TOTAL NP. OF SEGS «"MlO# " THE PREPRCCESS REQUEST PTR IS "»I10)> FRT?(" THE POSTPROCESS PTR IS "»I10# " THF FIRST FRAG IK THF FllE IS AT ASSNPL* # w ,I10//), FRT3C IM TPPBLto * OF SEGS «"#110>"» NO. OF FRAGS *"#IlOr POOLE AN UOP»Rf *MI»P01#PEl»D0?#0IDIT#n02?»RFl 1*MI1 I ALPHA TYPE,*PJ ALPHA ARRAY ALAr0t9]J INTEGER ARRAY NX TEU I I 20 ] » NXTSU T I ?0 1 * NXTTRK t P t ?0 ] ) INlFGt-R EUMlMbFR»SHNUMPER»TRKNliMBFR»VPP#SFGS?»FRAGSS»ANDv* andyeu#cn3, andysu,nm, p anda, phss , nxttt » cnt » a, p# r » 0# f. # zz * cnti,cnt2; label z7az,77az1w7a72,mama2,mama1,mama,llvf|'tpm l vsuen» l l vtrksu » flmt#hupba#c0nfin,hubpa1#jnkfin#hubpa2»m0re1»bapa#b/ira1# HAPA2#MAVAA*MAPAAl#MAMAA?; DOOl*Rtl*Mi!Bn01lsRFll*ril?tsDP2?l«RFlltsMT1lsFAL$FJ FOR CNTtsO STEP 1 UNTIL 9 DO RFPL ACF ( AL A f f NT ] » 0, TH I MG r CNT 1 , 0* 1) J FOR Chi is o STFP 1 UNTIL 2 PP KPlTF(SI^FI|E#*»PTRPLKtC#3+CNT]); vRITF(SIkFILF»F16)J WPITF(SIMF II F* 1C#AL A[* J); FOR CNT I =1 STEP 1 UNTIL NXFll PU F E G IN PFPLAcfc-(ALArOJ#0#AF ILNAPE(CNT)#0#t)J RFPLACE(ALAni#P#bFTLNAPF(CNT)#0#l)j Fl)J At= SEGSFtCP(CNT); pis TPTSFOS(CNT); C»s PRLFTR(fNT); Tie POSTPTR(CMT ) J Ft= F I L A SSN ( CN T ) I ^KlTFf SIPFILF»FPT»CNT) j ftRlTF(SIHFHF»3#ALA[*])j V-PITFfSlPFILF#FPTWA*P#C)l WPITE(SIMFILE»FRT9#D»F)J END J F V Is 1; Ats NUNSEGS(NM); R|s NUMFRAGS(NM); ^RllE(SIKFlLF#FPT3»A»t)J f N3 Is CKTl is CK12 «s 0; ANDY is PHYPTP( NM)| IF ANDY * THEN GP TO LLVFUTPJ VRITF(SIMF II F> F?7)) ZZAZlTYPF ♦ " FU M > FUNUNBFF «■ NUHRPTRf ANDY) J VPP «• VPPTP(ANPY); SEGSS «■ NUMSFGSC ANPY); FRAGSS ♦ NliMFRAGSCANDY )) CN3 is CN3 ♦ 1 ; NXTFL'IrN3] «■ NXTPTRC ANDY); ANDYtL) ♦ ANDY) IF VFPrl THFN wDls"PHYS" FLSF WD l s"v I RT W ; In«ITF(SIMFILF#F * AND Y , WD , TYPE , FUNUMPFP , SFGSS » FRAGSS » NXTFU r CN 3 ] ); ANDY * PHYPTP(ANDY); IF A^DY eO THEN GO TO LLVSUFlU vPITF(SINF II E*F?); 7/AZ1 t TYPE * " SU"; SUNUNBEP «• NUMFPTR(ANDY); 92 VPF «• VPPTP(ANPY); SFGSS ♦ NUMSEGS(ANPY)J F&AGSS ♦ Nl)MFRAGS< ANDY)J TNT1 l« CNT1 ♦ 1) NXTSUCCNTl) ♦ NXTPTR(ANDY)J ANDYSU «- ANPYJ IF VPP«1 THEN WDl«"PHYS" FLSF WDl«"VIRT w J WRITE (SlMFILF#F3#ANDY>WD#TYPF,SUNUMPER»SFGSS,FRAr,SS»NXTSntOTl 1)J ANDY *■ PHYPTR( ANDY)J Tf ANDY ■ THEN GO TO LLVTRKSIM WRITF(SlMFILF*Fii)| ZZAZPtTYPE * "TRK") TRKNUMBFR «- NUMBPTR ( ANDY ) I VPP «- VPPTP(ANDY); SFGSS «• MJMSFGS( ANDY)J FRAGSS «■ NHMFRAGS( ANDY) j TNT? lx (NT? + \l NXTTRKffNT?] ♦ NXTPT R ( ANDY ) ) IF VFPsl THEN vDl»"PHYS" FLSF WDtr"VIPT H > KF-ITFCSIMF lLF»F5#ANnY#WD»TYPF#TPKWUMPFR#SFGSS#FRAf,SS» NXTTKKrCNT?] ); Z7 «« 3j GO TD FIMT1 I LVFUTBl ANDY Is NVTPTR( NM)J DOO » = TRIIFJ IF AMY * THEN HFGIN WPI TFC STMF ILF »F?7 ) | fir TO 7ZA7J E»PJ MAMA?t ANDY 1= VSI'PTR(NM)) F-E *■ TRItJ IF AKDY * THFN BEGIN WP ITF ( S T MF R F , F?7 ) } fiP TO 7ZA71I FNDj MAMA1 l ANLY 1= VTPKPTP(NM)J HI * IRI'EJ IF ANDY t THFN HFGIN wR I TF ( S I MF I L F , F 27 )t GO TO 7ZA77JFNM MAMAA?: A* DY is 1 ) Mil » = TPUFJ 7Z It o; GO TO FIMTI LLVSUEUl ANLY «■ VSUPTR( ANDYEU) ) POl «• TPUFJ IF ANDY * THEN HFGIN wR I TF ( STMFIl F, F2 W GO TO 7ZA7U F N n; MAMA I ANDY * VTRKPTR( ANDYED) j FE1 ♦ tpit; IF AMY * THFN BEGIN WP I TE ( S IMF 1 1 F # F? ) ; GO TO 7ZA7?j FfP) MAMAAiANDY t * ANDYFUJ PF11 1= TRUE) n i= u ANDYFU » = 0) GO TD F TN IT J ILVTRKSL'l ANDY ♦ * TPKPTR( ANDYSlOl 002 «• TPUFJ IF ANDY * THFN FJFGIN wR I TE ( S I MF 1 1 F , F 4 ) J GO TO 7ZA72J END J MAMAMlZ7l*2J DP22««TRUlJ ANDY * ANDYSUJ ANLYSU 1= p; FINITIDIDIT I: TRUE) 93 PANDA Nil It «■ PHAoPTP(ANDY)J CI HUPBAI IF PANDA «0 THFN GP TO CONFTM PHSS ♦ PHNLJM(PANDA)) SEGSS ♦ SEGNUM(PANDA)J MXTTT «■ NXTFRAG(PANDA); IP PIDIT THFN FEGIN OTDIT te FALSFJ CASE 11 of BEGIN *RlTF(SIMFIlt#F?7)J WP1TF(SIMFILE*F2>; ^PlTF (SlMFIl E>F4)J uhlTF (SJMFIIE*F6); FKDJ FN[ I IF CM = THEN WRlTf CSIMFILF>F12)I WRITE(SIHFILE>F7#PANDA,PHSS*SECSS#NXTTT); FA^DA ♦ NXTRL(PANDA) t CM ♦ 1J HUPBA J t = to «■ CONTIGPTR(ANDY) J CI CM GO CONF TM PANDA CNT t s HUPPA1 » TF PANDA r THEN GO TO JNKFIM SEGSS «■ SEGNUMfPANDA); NXTTT «■ NXTFPAG(PANDA )J IF OlDlT THFN °EGIN nioiT i= false; CASE 21 PF PFGIK WR1TF(SIMFIIE»F27) \ URITF (SIMFILF >F?)J WRlTF (SIMFIl E#F4)J VPlTF(SIMFIlE*F6); FNDJ Fl^D) IF CM * THEN WRITE(STMFTLF>F 1 « ) J KRITF(SIMFILE*F8*PANDA,.SFGSS,NXTTT)I PANDA «■ NXTRKPANDA ); CNT |b CM ♦ 1 i HUbFJAl » TD GO JNKFIM FANDA ♦ JUNKPTPC ANDY )J CNT »s 0) HUREAPI IF PANDA s THEN GO TD SEGSS ♦■ SEGNHM(PANDA); NXTTt «• NXTFRAG(PAN'DA)) IF HDIT THEN PEIjIN PIDIT lr f ALSEI CASF 11 PF REGR WRTTF(SIMFILE#F27); ^RITFC SIMF !LF#F?ii ■ORF1 J 9k :mmw\m; FND) ENPl TF CNT » THFN WRITF(SIMFIIF#F1S)J WRITF(STMFILF#F8,PANDA,SFGSS,NXTTT) J PANDA «• NXTPL(PANDA)J CNT i« CNT ♦ 1) GO TP Hl'BBA?> MORFil IF CNT2 NEC- THEN PEGIN ANDY li NXTTRKfCNT?]! CNT? It CNT? - II IF ANDY NEC- THEN GO TO 77A7? ELSE GP TO MOPE 1 I FND I IF Dpi!? THFN GO TO BABA) IF PP2 THEN IF ANDYSU NEC THFN GP TO MAMAAl FLSE GP TO RAPA) TF AMJYSU 4 THEN GO TO LLVTRKSUJ PAPAi I IF Rfl F LP2 IF PDl TF ANjD PAPAI X IF C PEGU ANLY t CNT1 t IF A M) DO? t = GO TP FNPJ TF MJ1 1 THEN GP TO PABA1I THEN TF ANDYFU NFQ THEN GP TP MAMAA THEN TF ANDYEU NEC THEN GO TO MAMA YFU * THEN GO TO LLVjtUFUJ NT1 NFO P THFN s NXTSUICNTIJI e CNT1 ~ 1 I Y NEC THEN BEGIN PO?? l- MLSFI 7ZAZ1 I END ELSE GP FLSE FLSE GO GO TO TO PABA1I pABAl I TO PAPA1 | IF TF IF GO PAPA?i HI RF POD TP IF C PEGU ANLY I CN3 «s IF AND PO? t = GO TP FND EL F NO FND I..H THEN GO TO RAM?; THFN GO TP MAMA?) THEN GP TO MAMAll THFN GO TU MAM?) LI VFIiTPI N3 NEC THFN e NXTFU(CN3]I CN3 - II Y NEC THEN PEGIN rOl »« RFl I* RF11 is DP?? »* FALSFI ZZA7) SF GP TO HABA?) ITEM) 95 D-3. SAMPLE OF EXECUTION OUTPUT All of the output lines from the simulator itself are preceded "by the word "SIM — ". These lines contain the request number, queue information, time in a queue until allocation, simulated running time, processor time for procedures TREEBUIID and ALLOCATE, and the current system time. 96 o— o OO CO OO O oo o -» • oo o X« X (MO CM OO o oo o o>o a mo « oo o oo o oo o oo o oo o « ♦ CO oo o oo o oo o ♦ « ♦ »*o -* oo o oo o XO X »o « oo o oo o ox o o— o oo o oo o XO X >-o >- XO X oo o X<"> X oo o oo o oo o oo o oo o oo o oo o oo o O X o oo o Ooo o o X o oo o OK O oo o XCM X »o » — o — oo o CCO <£ OO O oo c oo o oo o O X X OO O oco ec O X X o>- >- o * ♦ oo o o— — oo o oo o CO o oo o oo o oo o oo c oo o oo o oo o oo o oo o Ox X- c * * oo o WO u. a.o * — O ^ tf> «• o oo o oo c oo o o— o oo o oo o oo o lAhft lA IfllA Ml/; lAlfliA oooooooooo u~i if > j">ifitfiinifitf\iriifA (\JfMC\iCXCM(MCMCMr\jrM *r> *rt %n if. tf) fi *r. v, w ^ z ____._._,_.___ o — o __.__._.-.-._._.•- -J _<_J_I__J_J_J__._ 3 MtAi/1 IAIA IAIA tf)u — XXXXXXXXXX %r> *- ** _. _• c— _ _. »* («■ •— •••••••••• >- •- C- I- ►- ►- C— »_►-*_ »-iaoooooooo — o DC ■/: t/. y-j ^ it tfl ir, t/nA ifi uj ►-»-►-»-►-►-»-►-►-►- *-«/)t/)«/)4/)t/)t/)«f)4f>tf>l/) «—•__«_•_••■*_#•— I— •— - — — ____ _ _ _ _ Z^ZZZZXiZZ u,JO-r^n«^CKco& OOOOOOOOOO 3 _j if )T. tf i^ IT in if If > iT IT -J.—^— — ~« — — ^-~ CMOirMCMCXlCMCMCMCgCM 0>-3333333333 U.C/U.u.t_u-l~U.U.L.LJUj a«3333333333 Lvu.0000000000 iaw) (fl »/) *f> i/> c/: »/» »/i if) ►-a _.__.-._._._._-.-. Z—IZX2Z2XZZZZ w — __._._.--.— .— _.— — oooooooooo acaaaanaciaa Kirtirtifuflirttfltfjtfltrttrtul ...««.«..< i«r-»— t— r-»— ^->— i-r-r— »— XXXXXXXXXX 3t/)tSJt/)lA */>«/>t/)«/)t/>l/)lA(/)4f)«/) 33333333333 XXXXXXXXXX iircccca.EC£irC£Ciiia OOCOCC.C.OOOC KaccccccaacBaaa: • • I • I • i I • I aa.a.a.ajcxa-a.cLaja. o«i(^(^« itokcc* C-XXXXXXXXXXX U.ZAZZZZZZZZZ UiUiL u.y Iwu. k kL 3 3333333333 Uyyy^uu^yuy ^ ^ u ^j ^ U U w uJ u, ^ UJXXXXXXXXXXX 3333333333 CX ►-►-►-►-►- C— *-!—»— c—c— oooooooooo • ••■■•••III! I ■ < I • ■ I I • > • ■ I C I I I I I I ■ ■ C < I 1 I ■ • • I I XXXXXXXXXXXX XXXXXXXXXX t/)«/)«fjiAtA*)*A«/)l/) i/l Z t/> *« *"» ui o o •< « o J* o a rvj a. ►- ►- » Ui +*. w> o 0E uj O CL X — U O CN. UJ — X «/) .......... o »-t/)OOOOOOOOC\JO * — i *« •-. »«• ~ «MmQin«ka]»aic 3j o uitWOoooaaoooo^H- »- K X 2-J2222 2.42222 a a. «/i t/> H- »— *-»—»- »—*-►- KhHOW _2) tO «/)«/) t/) U.U,U.Uju-U.U.UU-U^U- l 3 3 O O O <3 3 3 3 (3 3Q.H «UUkiUjyuiUiUJWUUj2 i a. a a a a a. ct ex a. a a l-_ i C\J U U U U U UUUUu-UI-*- CCCCCCLCCLO-J UiuJUjuiujUJuJUJUi^ujO LLtj_a.a_a.cLJ-CLu.cLa- — «~XXXXXili.ilA»-t- *n30_^3Z>-30-0-303<*cO Uj 2 c - uiXXXXXXXXXXX-Jul a »>»■»- k h »■ ►- ►■ kh k S\ \f\ \f. — O 4 vj C ►- r- u. o -: __. ►- UJ X m K> o •-> UJ <•) i/] o — *^ Q IA o ^/j ui UJ j »- ^ c* ^ X o Q. X A O vflu «/>!/) OOO UV _) _J o tJA O «- a. — u- CL - O -C «-« u. O >- rw o _-• w cl ui OOO u. _j — • X owe a- —» o »- OOO w u. 2 97 a Ui X. (9 19 1- OO -« O© til O Ui U. UJ i/> UJ >- «/> m a. u. •- c u. l/> O •« z X « trt (3 1- o « z —• _J X ►" —J X o o */>© »- O u. «z •* —1 It- -J • UJ X o o O X ►- O u. Z 1- i. 1/1 • u< a o at >- ox ►- »- ¥- a. * •- a. m o */> >■ X KO */> »- X -i a. Q. CD a. i/i z>*a >- JC WO _J Ui*- X -J *- UJ a. -X CD. > us « u- >- X. IA _J -J X _i •— u- Q.I > Uj & ia c m u. « > O (/> «/>_! j o UI Mi M «UI * OB a. o a > Ui —1 « •s. o « ►- C\i Ui « > OD JC ue -1 o at ui o a. _JW> jt Oj ►- X Ui u- IX 1- Ui _. « a. •- 1/3 t/i a. a. » .* ai O o o ac ui u. a. ►- i xS l~ X o _i _l « IX •- Ui zm a> • X — a. a. Ui O H- a — X Z *- a.»- 1/1 o « z X ►» X ■ ■ i/i o t- o * z — -J UiUi X 4/> *> x — c « •* ►- o u. X X ■J a. a. •J - u. o O X u. Z 1- . Ui K C a X H- ¥~ z ►- a. o V X w> at c ac ►- t- >- u- a. a. m => m >- x. i/> ►- X -1 a. a. cd »/i >- X —i X -i — UI « « a. od > O Ui it X >« _i .J _i —I u. CD OD > Ui z z m u- « > «/l t/i — 1 a l/> «/> X OD « •* Ui _j « M > a> o or uj K OD •- X -1 « a. ►- OB IX Ui u- X a. t- l/> O 1- O « z •- -I X ►" X x o «A o t- c u. « z ►" -1 X ►" _l • UJ X -« o O X t- o u. z ►- •^ -J a. c — o C X »- *- u. z •- a. • Uj a ci a. >- ox ►- •- >-o. Z t- a. *- ■ 3<« CC it X o IA 1- ~ -J a. > CO CL ►- 3>n OC X 1/1 -J Ul>- •— -J — ■ Ui Q- > CD > •- CM Ui •« -1 a ecu in X CD >- X ►- Ui _j ^ a. t- 0. «n » CD a OCW X. ». a. 1-X -i w 4 a. *- OS a. OD QC UI O »- X »- a. ►- 98 Z Z Z Z Z */>*/» 4ft ift tft (/) tft t/) Ift *ft )/> lA (A «A i/l X Z Z Z Z t- - z z * z z z (/> «ft t-ft tft «ft * < « * « « t- 0. ►- »- ^> w ►- « « 4 < z tft *n *ft tft tft tft « **•■* *■« *■* (ft Ul LJ uj u. IwUO -1 -J -1 -J -1 -J < l~ — —. n -. — CL is> *si »o o OCCCCU tfj to lO «/J «/) lO to « « « « i a a a a o o a a « z I — x i- o to o « z X — O © O O ~i o © © c *c 1/3 •/) M II *Si - CM CM — or c x x x x x to _i _* -J -J — 1 -J — u. CO CO CD CD CL ^ .Z .Z Z Z Z m Lv ifl (/j i/5 ^1 i/J p< J tO CO l/> lO tO X l/> CC t- t- CL CC X •-• —I » X W> -I 1- * «/i «- CC I- i- a. •A -I .— ui 4ft :> *• u. J* — _J CC Uj z *> > to o tO X CD « - X _j _J X _i cr a. a. a to to lO ^ t/1 tO ■-* UJ - X 99 JDd 8) O _ 2 _. 2 1A1A I/) If) UJ O -J « — CE I/) WO WO WO o o o o a a a. a cw. cm cm eg WO wo o o « z l- X — 1 o L. • Ll a x a: o a. 3 wo uj *~ 0. wo WO WO WO WO «-Ot» alia 2 2 2 2 WO WO WO WO WO WO WO WO CE u_ •- X 0. >- wo o •— 2 i-> 2 .......... •- C_W0OOOQOOOO— O <* ►- <_> Ui or o*-wowowooowowowowowowo >- _J«J _. < C.-~'->-"-- -•'-•->—•— "• «« JO ^Mm «in- a. -1 _ ;2 222 222 222 «i a* — —————— — -. — c. I— .W0W0W0WOWOW0WOWOW0WOW0W0 i/jx>wj.-.-»-»-i-.-i-i— .-»-►- ZOCNJUJWOWOWOWOWO wowowo wowowo ~0 UL.LiLilJjL.LiLiUk.ULI wo oraooaioooaOQGV 4 Q. Li UJ UJ W UJ Li UJ UJ UJ UJ Li 2 i tatcct i>> tt t WO — — '—U.U.U.U.U.LLL.U.LL ooccooooooc 2 O CK E OEIt It KCt CCC It Z t*i UJ Ui Ui UJ UJ UJ UJ UJ UJ UJ ice a i a OjOOjOj — j a. oj ■~u.f-2i.22i XXX XX X >/>X»o_i_>_>_>_j_i_>_> 3D J uj— L.X2222222 222 axo_._j_,_j_j_j_j_. _j_j _j Ui— UJXXXXXXXXXXX XXXXXXXXXXX XXX WOW0WOWOWOWOW0WOW0WOW0 wowowo z> «• a UJ * a: _i WO 2 wo wo UJ wo wo — > o < «* o 3 2 O or IM a. >- ►- * UJ « WO o CE UJ o a. wo = m — t. . u. UJ u X UJ a c ¥~ _ o L. — O L —J * - X — MS • ••••••••• c, •-uOOOOOOOOO-^--- • ,-J 4 — •-• I-. ec 2 o e> a UJ w UJ H-«/)t/-«/>«/)(/) irtKhKH^-Kh-hf-Kh Qui DuOlfl i/l i/) lO i/) i^ (/) v/5 -/) */> ►- l_> "3Ljv. U_jLLUL.IvUjL c_ 33.332232 3 3 3 ►- 0E <>( Ui U>J Ui Uj Ui UJ bJ uJ UJ UJ UJ X iKftttttnaaaikaaLji ►- <*1U.U.U.L.U.U-L U. U. U. «__ *— (N- CCOOCOOO CCC 4 acKaccracactraiacaocz I I I l_J L_J Ui Ui Ui UJ UJ UJ »-J Ui 2 a.a.-»-»-l-»-»-»-*-»-»-»--*£L XXXXXXXXX X X X X X l/)tA«/)«/)t/) 10 «/)(/)«/) i/> h- U. 2 _* UJ -i 1 * o u UI */> (/) O -- 2 l> x a o to a 000 a. _j . it> o w a. • » O * M I >-(Ni O 2 UJ i OOO Ui _J « o ** o » — OOO w U. 100 i/> in ul to CI « o o — o o ecu u « a O < z I "-1 X vo O ►- o « Z •-• -J I •- X o o l/i o •- o u < z •-4 _i 2 — —I • u. X o o o z t- C u. 2 »- x «n • u. a c a t- O X H- I- t- a. 2 «- a. t/> 3 >- x cc o »/> r- X -I h- *- 0. a. ac a. IA Zi 1/i > Jt »/> _j Ul ►- X -1 — » UJ a. a. on » 1/3 « u. >- JC -J -i X -I *- «. a. a. > Ui c w. C. m u. o t/". l/> -I .J t*J Ui «k — Ui ac u> o > V c. * H" CM u. « > wO X JC _l 3 o a. -J ■/> x a. u- i- ir »- Ui _i « i/J Uj a. a. M J» aa o o O ac ui -. a. ►- x i CO i- X c _1 < a. •- 2 co CD • X — Q- ac ut o >- O »- X 2 ►- 0. t- o -* X trt RE c. a •- »- t- a a. NQ 3 */> >- *. IO X -i a. a. jd fcT, *: W> -J I — i — > Ui *» ** a CD > O Uw X * U3 _i _* Ui a cd > UJ 2 2 4/) t/) _J O 1/) t/» JC X. «. « _. « •» > CD O Q- Ui k fit »- X < CL »- CD OB UJ ►- a a. i- «/) O i- Ci « z •-• -i x~ X x o V) o ►- o u. < z •— _I a — • u. X — o O X ►- o u z t- •-* -i • u. a c_ — o O X »- ►- u. * *" a. x ia • Ui a c ac »- O X n- h- t- a. z t- o. . ►- 3>« cc X ac o «/) >- •-• -i h- h- a. > cc 0. »- Z> Irt a x «n -j a. ^ at » »- Cw UI ac x iS> _1 •* -J •i ui > CD > Ui » > ■A -J o M ui X CO > Ui O Ui 4» > CO *- _i a ac uj JL 0D •- X Ui CL t- « J- CO o ac uj X CD 1- X _t * a. *- a> ac w ►- X CL >- 101 Z Z Z Z Z */>*/» */) %/i */i j£ I/) W> «: « -i (O « X »- — Q. -«»- m m z a. JO J J JK < < < < < a. x x ae x x u. u. u. u. u. o ^ X it X * or JJJ J -*-i J -o 'Xi aj jj iXt X) •— 2 2 2 2 2 2 l/> l/> «/> «/> t/> l/> 1/1 i/l Wl 1/3 1/. lOu7< tfl UUUj UJ Utw 19 J-1J J -I-J < .-.___ mmi QC (A o « z X »- o •-■ _J — a U II II M M y */)*/) I/) I/) l/)C o o o o o u. u. u- u. i— u. vr. tO © O C C G o o o */> */; */•- i/; «/) a 4. « «.<<►- C X X I X X ~ _» a. o_ a. a a. -j CM O irt O * 2 X « X ►- o H t/1 < 2 X •— X ■ l~ C •-• _1 Uj _. »/ — c o o o o «t < < < (A a a. dc ae * u. u. u. u. -J CD ►-*-»-►- 2 X » X >- vTl 2 2 2 2 «/) O © O O ~> O © © © CCD S l/l l/> */> 4/1 q a o o & O © — © © H H %ti t/> 4/1 c O O <« 2 VwUj 2 >" 4/1 «/> X — **> o esi \t\ rg Po — a. c h- i— a. 3 W) >- a ►- a: * »" _i ¥ X X JC x vO -J n . ix> qc Qj cd ;> 2 2 2 2 2 «*> U- «/) i/l i/) «/) i/} *• _J I/) lA I/) I/) i/l < ■« « < «l U_ O jc CL -J « CO a: uj JC 4/> a »- ►- a. ►- ac jt •-• -j > CD 4/1 _l * > O x CO K x. ift — a. •- »- a. CC Jt •-• -j > CD 2 W > (/) O cfl JC xt a CD CC 0E 2 2 2 2 lAlA«/l - X - -i X -J CD CD CL CO 2 2 t/> */> */) _J t/) i/l *-■ uJ •O UJ 102 me* — o * — %>*. X X X X I _• I 1 flD CO CD SB 2 2 2 2 Ifllfl Ifl in ■/> IA */) «/l UJ O — i or « o xo CM IS IS IS O -« « « « «/) a a a a •- • U. U. 1*1 u. Z CM — ■ — ■ — ■ — ■ 3 CM X X X X Z Z 2 2 » O X. O 2 m 3 u CM CM CM CM «« z U. I —, uo 2 >- O M _| X >- X -IX -I ct o_ I/) «/) vo o — Z — z .......... — w^OOOOOOOOO — < w 3 « c O UJ CC 0*-l^tf)(/)l/)- >-3333333=—3 U X«ww030=3^www w — wOOOOOOOOOO _i — at -J — 2222.kI.Z2.ZZ2 « cr « — — — _. — w —. w ww o l«*l/>»-ww.w,ww.ww. www 3«UJU)«/J«/)IAt/)4/]tA«/)lA*/J«/3 — , UkwUUUJbJL»klWUitwU 033333333333 to ttt»aat»aat»aoaa 4 CL UJ w UJ uJ UJ UJ UJ uJ UJ 1*1 UJ X I CKtCt tKl >ita 1/3 CM — CMU.U.U.U-U.U.U.U- U. w w oceocowoooo X o KaocaocacoxiraaccE Z I.I I. . L. i I 1,1 L. 1 I.I \,f I.I ^ , I QQ £ CD QD OL OU CC CC OD Cti 0D t-uj— XXXXXXXXXXX w— w2.c.ZZ2222 222 3 — - oxauw wuiy y uw ujujuj UJ— UJXXXXXXXXXXX Oil/-. H—wwwwwwwWww xxxxxxxxxxxxxx */> l/t l/i *A */i i/liO Ji V) l/J t/3 «/>«/]«/) u. O CM UJ - X if. .......... o — ./lO—OOOOOOO — • _i « — ^ M -. 3 wC a UJ ^u H-3333333333 UJ wwwU.wU.wwwwwU.wi a«333 33333330-. wWOOOOOOOOOO^w t- OL X X-IXXXX2XXXXX OC UJ ^ — — ww— — — — wwuJO a, KI/)tf)V)l/) UlXXX2.XXXXX.XXUi* 3 OX ouuuuymyyyuwjo wXXIXXXXXIXXwUJ OLWW-wwwwwwwi-^O: xxxxxxxxxxxxxx l/llfll/llfllfllflltll/ll/imitll/ll/im UJ (AlA OX 3tJ X A «J lAO o o o •. — mo —a. - o o — »CM O 3UJ O O O u. w o » o » — O OO wu. 103 -I -J SOD uiul K -1-1 I- — . — O- U. it u. X IT _l cr _i CD CD •A Z IA Z IA IA ia ia UJ iA UJ v> <_> « «_- *- a BE OC a. — a. >- UJ •« Ui « or a a. ia a. ia o o — o o ■o « CD ■■» 4/) IA O O O UJ iulw IA IA IA M « a iA u. UJ t~ UJ ►- u. 10 o i- o «A ■A IA « z •t -J CC cc u. X u. *~ u. e X o c c u. o u . IA o < z ^ c. —J u. • U u. c X ►- • UJ O X o X z z o o O X 2 >- z 1— • i- o u. z 1- _j O o u u cv 4 < h> -< o o X 1- 1— *- O *- in u. z Ol C UJ a « x IA *- ^ • u. a a a. t- _J ox i— ►- <- 0L tt « e Z i- a. IO o z> w> >- ac 0L O i/i t— X -J IA 1- 1— a. Ol CC ■ a IA ia IA _ilA >- 3C IA -1 CM in Ull— X -i — UJ (9 Oj. a. a. > a a. ui m O UJ ►- IA J- X •A —j -J « a. ■ a. u. X -J CL X *" UJ > Ui C V) c. wj O 1*1 Ui *» » O IA u> ■/> IA_i -J O UJ UJ Ui UJ » — ul X (D cc u CL c o > UJ _i « >. c « V c *- <\J UJ *t » 0D ia at lA cc ac -i o OC UI o a. X o SL •A 0D >- X UJ »- t_> UJ CD UJ ■< a ►- m OB -j a _J -J o o a ac UJ ►-u. a. CD ** u. a. ^ X X OB i— X u.Cj u. C_ _> « a. t— CD UJ UJ « UJ Z CD 00 — . I -J X a. OC Ui o «- Ni a ^> o >- X 2 U. z h 0L 1- - 1- ►- ►- O. 0L IA 3 IA >■ X. IA X _J Ol a. is i« >- X IA _l X -1 M UJ u «k Ol 0D > o u. X * «A -1 -1 _J -J u. cd ac > UJ z z & UJ « i> •A IA -J o |A CD acw i- x Ol >- lak X. ■ M. M. JC X ~i -J -I _J _J Z X Z Z 2 (A (A «A tA lA tA 4 4A (A tA (A *A )£ **»>_<*» tn Z Z Z Z Z »- CI o o o o ►- < < < « * a. uc JL x »/» «/) */> w o 13 O O O 4T l*j Wlw Ul IbL. V 4/> tf) I/) t/> tf) O « z 1 •— X I- Ci *■• -J — o «/>(/> IA IT l/> X I I I I I ~ _J a a. a. a. a. _> CM O »/> o « z t- o •— -J _ J CM O « z I ►» X o o o o o o o c ■C <. X !/> X ►- c O 1 z >- a l a t- >- a. ►- a: * •" _j > CD »• a *- >- a. *. * X X X kO J a s s id s > Z Z Z Z Z « Ui U) i/> «/)«/) t/> O X 2 ►- X c l»- H- a. 3 IA UJ »- «k «» «t w » » a. *A X * X X X 2 »- Jt i — i — - — * _* _■ Z -1 rx x a cc CD (X a. cd 2 2 Z Z z z lA tA */) *A lA tA wO -J (A lA «A «A tA l/)l/llAlAIA^ OO (3 r\ j\ *f\ \/\ in S* cm in C\iCUCVi 1/1 t/1 o z «/l 1/1 19 J •* Z a. a t- *- a. 3 <« ui »- » a. to JC >- XC _. X _! cc o- a. 2 *Ol/l -J l/>~- Ui « > M H ■ M I/) */) 1/1 «/l X K X JL X (£ ODa A Z Z Z 1/1 1/1 «/l 1/1 Ultfll/ll/1 V) o •-• m z •••»•••••• »- CJfcOOOOOOOOOO — S ■« c. <-J Ui tt Ok—l/l«/ll/l Ui _j«»*^»i-i»-w*-*«#.«*-^. »- JO U. « o """""•-"""" " « _i o — Mn « /i< k eo a -i O a < w w WW ~ — UI w WW Ui I*. UiUiUiU.UiU.UiUiU.U. *- >-3333333333 « U■-■ » •>•-> W W » M B •— *l/)l/)li)iillAMlAli)IAlAlillA *l*fl*/lx->-*-*-»-wk-wfc-w^- ^«»UUiUiU>LiUiUiU'UJUiUiUi 03 = 33333=1333 "*> 0:901099(309009 4 Q_ UJ UJ Ui Ui Ui UJ Ui Ui Ui Ui Ui x • a.o.ciarxrxactaaa. i/i ««-«u.u.u.u.u.u.u.uu.u.u> oooocoococo X o aaaacacacKKaaca: Z Ui Ui Ui uJ UJ Ui Ui Ui Ui Ui UJ »-Ul»-XXXXXXXXXXX t/1 X ~UiZZZZZZZZZZZ 3 ►- 3 oxauiuiuiuiUiUiuiUiUiuiui UJ — UJXXXIIXIXXIX Kliitth-KHl-KHl-l-KKK xxxxxxxxxxxxxx t/l«AV»l/i*l tAt/ll/)t/ll/ll/ll/lVl«/lt/l Ui Ui Ui Ui UI Ui Ui Ui UI Ui •/> xxxxxxxxxx — x-*-K-w>-»-^.^.*-x— o . » 3 H- l/ll/:i/l«/lt/lVll/l«/ll/lt/l zzzzzzzzzz 3a 333333333_.UJ»- ©OOOOOOOOO O CL miriiriininininiriftm c OJIMCMfMlMfMCMfMOiCM Z U. ►- If] V.IAiAOtAIAlAI/ll/) : « « 1/1 x i a *- a- o — c- »- »» 3 3 3 3 3 3 3 3 3 3 G 3 3 3 3 9 9 9 3 o 3 3 9 9 3 9 3 3 3 -JUI 9 9 9 « cr 1 ■ • XXX 1 X • 1 X X • X 1 1 1 1 I X X X X X l/ll/lt/ll/ll/lt/lt/ll/ll/ll/ll/ll/l x a - IA (A 1/3 UJ *A UJ f> tA(J o < o « *o 3 11 IO a >o Pg a. «- 0. t- *- * Ui « u< « »ao ac IX UJO a. ia a. (A 3>n U. u. U/U> X Ul X Ul no »- _l ¥- _l o Uj— • o u. o u. _J « •c - z t- J-* —1 c — c 4 « ^. a ►- o ►- ►" Ui a Ui o 2 _J ►- —t ¥~ *A O « Z J — X t- o I— -J IA O « z X —• X ►- Ci «— —I —I o o wo « z X~ X «-o «»_J o O «A iZ « z I ►- 2 * II ^ e »- C « z ~ _J UjUj X » _l •AtA z -" c « — . ►- o X X ►" _l a a. — 1 • u. •* o O X l/*i o « z X "" X 1/) o »- o « z •— — 1 X ■- z — o \Tl «J •- t 111 « z —• _l a •- • u. X -t o O X 1- C. u. z ►- ** -1 Ml • u. a c O O o 3 tn >- X ac o 1/3 1- X _J I/) IA «/3 ►- *- a. a. a> N a M o 4/3 IA 3V> >- X >A_I O —i ac a. i/i « u. o ►— *- 1/3 >■ X •A _) —1 «. ii a. m a. X _l m, uj U. a. a > Ui o C l/i O l/j c 1*1 Ui « > X O tA O t/3 1/3 _J -J o ac UJ UJ UJ UJ M MUi xa> »- a. u a o o > Ui _j « *. » v o ^ o *- rsj uj m > 03 */) a: tA ac X —i a ac uj o x o a. o a. IA x a. »- X 2 u UJ *~ Ci Ui *- m v- Ui _j ■« 0. 1- •S, o 1/3 t/3 o 1/3 «/3 0.0. m > 0B a. -J .J a -J — 1 o a a OC UJ «- OS u. a. a. u. a. xa> >- X u. Ui u. c _| _j « a. t~ 3 UJ 00 Ui UJ < UJ zat 03 Ul _1 • X _i • X a. ac Ui «. — o >- *^ o »- o »- X w u. *■ u. z •» a. i- o> — X IA W 1 a o OC >- i- a 0. «A 3 V3 >- X lA *- X _l a. a. cd v; >. X •A _J X -j ^- UJ «» « a. A > O u. X X W3 —1 mI -J -J UJ a. a. > zz ■J u. « J> 4A«A _! o CD O ac uj X 03 t- X 4 0. »- 03 ac Ul t~ X ac o »- *- a => CD ac x OC UJ ►- X a. t- 107 X X t K It lOMrflAri X *J O *3 (A O I— « « « « « o. u. «/> Z _ O J 2 ■» « X - U. i/> _ _ X — : -1 _> -I -I IB Jl Att _ _ _ _ «/>(/) t/> I/. -Z _ .2 _ _ u^i l/> «/.«/] (At/) 19 o _ c o _ u. u. ut u L L. i/' «/) */. 1/5 */> o c- c c c o o o « t/> */> «o _■ O O O ««««!/- a a _ — _ U_U.U-U._I a. >- »- i- ►- z _»* >» X > •/. z z z z m o o o o o c o o ■c <- <£> a. «/> o < z >- c. O X Z I- _ _ t- t— _. _> N ■ H M U ■/> (5 •« z u. u- _ u. U. X — V) i/; vi ia K z I I I X I — _l a. a a a. a _i a. cj i- <- a. _ a i- ►- a. i— _ _ ■-* —i ;» a > at t- t/1 l/> t/. fl — - X _ X _> — _. _J _J _/ — ' u. a. IS (£ IB CO :> Z Z Z Z Z «•> l_ «/) 4/5 «/. 1/1 »/> ~« _l i/5 1/1 */.«/) */l _ - -> t— _ — _i l_ _. cc an z z z z I/) 1/1 a _ a. _ _i >- x 108 o — 2 ■si \n JO CD iH 3 2 2 2 2 lAMlA (A Z LwO — .Ow U* o — Cc O 19 O 13 « « « « a. a a a o t/-J u< *r. */l 4 c *. o Z *n 3 IS« Z bJ2 — *n tft c <9 « Z U- X ~ <*> X ►- c •— —I « c a o a. 3 t/> _IZ -J ota a. CD Ob CC X Z Z z z L/5 t/> l/i (/) 4/3 (/)(/) (/> */> z — z .......... *- o«ooooooooooo < ►- X 1 c O uj CC Ohtftl/llAIAlAt'liAi/llAlfl *- —JO tx — » o o«— — ■ — — .__— — Lw U. bwU.UiU.Liju-U.U.LukM »- >-3333333 333 4 UlCLbLwiwU.Uib.Lw wLbL. w X« 3333333 3 3 3 C. *-wwOOG>00>00 000 _l t— « -1 _l222222i.222 « ££.«__ — ,__.__ _ „ _ o t— *i/)l/}v4lALOl/)l/>i/)t/l VOLOl/l w1^b4w.w.t-w.w.w.K>- .-•*-*— 3 lA Ui LQ UJ UJ x i a: aa actiiLtLt LtLta (A «nw~f*1U.U.U.U.U.U.U.U. U.U.U. oocooooc oco Z C C LtCSIt LCCLt XLtLt Z UJ UJ IwjvJ LnJ LkJ l*J kk. uJ UJ UJ l_W ffi CD Si CD CD Q_ CD (X CD CL CD w-uJt-XXXXXXiX XXX IAXL033333333 333 U.—UJ222 22222 2. z. z. 3 t- 3 U—.UJXXXXXXXX XXX CCwC Ct»-w-w-w-w-»- w-w_ w- w. I- XXXXXXXXXXX XXX i/>tAiAt/>v»iy)4/>*/>«/3«/)«/l lo in u) w-.ro— oooooooo * « •— " — ■ c u, — KlrtVluiWllflLllfllfl^LOlW U, u UJ ^0"">— »-"^"'^""3 0«— — — — — WW- w,- Z LwUU Iw Lwk.lwU.U.U.0 (D>3333333333 0I«3333333333O U-U.OGic»OoaOOOCJ>«l i- * X .£—222 2222222 ^^ — w.— -, — — ™ — — w-UJ flb wl«)i/1l4v)i/IV1l4iAV)iAi/> *0»-u»»_w»j— w_»_»-w»w_ > -0 3 ~~l ^_ Lw" Lw U. U. Lw Lw Lw Lw lw UJ ^Z>33=)303=J30»- 4 u> UJ uJ UJ UJ ut UJ uj u-> uJ UJ Z iaa.aaQiiiafta.a.a.u. .u- iT.UU.U-U-U.U- u. u u u u t~ OCOCOOOOGOC4 UJ UJ W UJ W Ui k*J *-W U* LtJ uJ O CL CL CL QL CL CC CD 0L CL CD CD ^ m L-XXXXXXXXXXXl- m33333333333< Lw2222222Z22^0 XXXXXXXX-I xxxxxxxxxxxxx 109 LIST OF REFERENCES [1] Dahl, O.J. and Nygaard, K., "SIMULA--An ALGOL-Based Simulation Language," Comm. ACM, V . (Sept., 1966) pp. 67I-678 [2] ILLIAC IV Tape Number 3h, SIMULA/MANUAL (provides a listing of the B5500 Implementation of SIMULA, 1966. ) [3] Knuth, Donald E«, "Dynamic Storage Allocation," Fundamental Algorithms , Vol. 1, Addison -Wesley Publishing Company, (1968) pp. 1 +35- i +55 • [h] Alsberg, Peter A. and Mills, Carlton R., "The Structure of the ILLIAC IV Operating System." Proc. Second Symposium on Operating Systems Principles, Princeton, Oct. 1969. [5] Parnas, David L. and Darringer, John A., "SODAS and a Methodology for System Design," Proc. Fall Joint Computer Conference (1967) pp. hkS-kfk. [6] Parnas, David L. "More on Simulation Languages and Design Methodology for Computer Systems," Proc. Spring Joint Computer Conference (1969) PP. 739-7^3 • [7] Alsberg, Peter A., et al., "A Description of the ILLIAC IV Operating System," ILLIAC IV Document No. 212, File No. 791, Department of Computer Science, University of Illinois at Urbana-Champaign (November 1, 1968) . UNCLASSIFIED Security Classification DOCUMENT CONTROL DATA R&D (Security claaallleatlon of title, body of mbmtrmel and Indexing annotation muet he entered when thm overall report la claaeHled J ORIGINATING ACTIVITY (Corporal* author) Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 618OI 2*. HEPOUT SECURITY C L A *SI F I C * T I Or UNCLASSIFIED 26. GROUP REPORT TITLE A SIMULATION STUDY OF A DISK STORAGE ALLOCATION SYSTEM descriptive NOTES (Typo of report and Indue I re datee) Research Report AUTHORISI (Flrat mm, middle Initial, laet name) Judy Ann Lender REPORT DATE April 30. 1970 7a. TOTAL NO. OF PAGES 116 7b. NO. OF REFS CONTRACT OR GRANT NO. USAF 30(602)-l+li+4 PROJEC T NO. •a. ORIGINATOR'S REPORT NUMBERIS) DCS Report No. 380 46-26-15-305 96. OTHER REPORT NOISI (Any other number* that may be aaelgned thle report) ILLIAC IV Document No. 210 DISTRIBUTION STATEMENT Qualified requesters may obtain copies from DCS. SUPPLEMENTARY NOTES NONE 12. SPONSORING MILITARY ACTIVITY Rome Air Development Center Griffiss Air Force Base Rome, New York l^hkO I ABSTRACT This report gives a discussion of the field of simulation. The use of the simulation language SIMULA is then used to program general disk storage allocation simulators with application for use in testing allocation algorithms for the ILLIAC IV disk file allocator. Finally the concept of system design by using simulation in the design phase at various design levels is presented, with emphasis on using SIMULA for design from the hardware level upward. ID ,'^..1473 UNCLASSIFIED Security Classification UNCLASSIFIED Security Classification KEY WORD* ROLE WT ILLIAC IV SIMULA Simulation Storage allocation Disk file allocation Systems design UNCLASSIFIED Security Classification apr - s ^97?