Informatica A Journal of Computing and Informatics The Slovene Society ÌNFORMATIK4 Ljubljana A Journal of Computing and Informatics \ : Subscription Information Informatica (ISSN 0350-5596) is published four times a year in Winter, Spring, Summer and Autumn (4 issues). The subscription price for 1992 (Volume 16) is US$ 30 for companies and US$ 15 for individuals. Claims for missing issues will be honoured free of charge within six months after the publication date of the issue. Printed by Tiskarna Tomi Pretnar, Bratov Kemel 52, Ljubljana. Informacija za naročnike Informatica'(ISSN 0350 - 5596) izide štirikrat na leto, in sicer v začetku marca, junija, avgusta in novembra. Letna naročnina v letu 1992 (letnik 16) se oblikuje z upoštevanjem tečaja domače valute in znaša okvirno za podjetja DEM 30, za zasebnike DEM 15, za študente DEM 8, za posamezno številko pa DEM 10. Številka žiro računa: 50101-678 - 51841. Zahteva za izgubljeno številko časopisa se upošteva v roku šestih mesecev od inda in je brezplačna. Tisk: Tiskarna Tomi Pretnar, Bratov Komel 52, Ljubljana. Na podlagi mnenja Ministrstva za informiranje št. 23/216 - 92, z dne 27.3.1992, šteje znanstveni časopis Informatica med proizvode informativnega značaja iz točke 13 tarifne šte\alke 3, za katere se plačuje davek od prometa proizvodov po stopnji 5%. Pri financiranju časopisa Informatica sodeluje Ministrstvo za znanost in tehnologijo, Slovenska 50, 61000 Ljubljana, Slovenija Informatica A Journal of Computing and Informatics EDITOR-IN-CHIEF Anton P. Železnikar Volaričeva ulica 8, 61111 Ljubljana ASSOCIATE EDITOR Rudolf Murn Jožef Stefan Institute, Ljubljana The Slovene Society INFORMATIKA Ljubljana Letnik 16 Številka 3 Avgust 1992 ISSN 0350-5596 Informatica časopis za računalništvo in informatiko VSEBINA Basic Informational Axioms A.P. Železnikar 1 Integrity in the Relational Data Model M. Radovan 17 Understandability of the Software Engineering Method as an Important Factor for Selecting a CASE Tool I. Rozman J. Gyorkos K Rizman 25 O preslikavi HADFG na TAS P. Zaveršek P. Kolbezen 29 Predvidljivo dinamični princip razvrščanja opravil v realnem času Barbara Koroušić P. Kolbezen 36 Sinhronizirana podatkovno pretokovna računalniška arhitektura II J. Šile L. Gyergyek 46 An Informational Approach of Being-there as Understanding III A.P. Železnikar 64 Novice in zanimivosti: Različne novice Compulog NoE ... Statut Slovenskega društva Informatika Nada Lavrač 76 76 78 81 BASIC INFORMATIONAL AXIOMS* INFORMATICA 3/92 Keywords: axiomatization, circularity, externalism, functionalism, informational axioms, intelligent informational entity, internalism, metaphysics, parallelism, phenomenalism Anton R Železnikar Volaričeva ulica 8, 61111 Ljubljana Slovenia This essay brings an approach to the possibilities of axiomatization in the realm of the informational. The axiomatization begins from the informatio prima which says that entities inform or, formally, a (=. This primary postulate causes logical consequences which are comprehended as extensions of the primary axiom of informing of enti ties (informing as extemalism, informedness as internalism, circularity as metaphysics, and informational openness as phenomenalism). A consequent axiomatic deduction (together with operational particularization) is shown for general, alternative, negative, alternative negative, functional, metaphysical, parallel, and intelligent informational cases. Informational axiomatization is a part of the informational logic in which the notion of information is extended to the phenomenal extremity. Axioms are expressed by the formalized symbolism which considers the concept of the informing/informedness (active/passive, subjective/objective, operand/operator) nature of informational entities [TIL]. Osnovni informacijski aksiomi Ta spis prinaša nekatere možnosti aksiomatizacije v domeni informacijskega. Postopek aksiomatiziranja se začenja pri t.i. informatio prima, ki govori, da bivajoče informira, ali formalno a \=. Ta prvi postulat povzroča logične posledice, ki jih razumemo kot razširitve prvotnega aksioma informiranja bivajočega (informiranje kot eksternalizem, informiranost kot intemalizem, cirkulamost kot metafizika in informacijska odprtost kot fenomenalizem). Pokazana je dosledna aksiomatska dedukcija (skupaj z operacijsko partikularizacijo) za splošni, alternativni, negativni, alternativno negativni, funkcijski, metafizični, paralelni in inteligentni informacijski primer. Informacijska aksiomatizacija je le del informacijske logike, kjer je pojem informacije razširjen do skrajnih pojavnih meja. Aksiomi so izraženi s formaliziranimi simboli, ki upoštevajo koncept informiranja/informiranosti (aktivne/pasivne, subjektivne/objektivne, opernadne/operatorske) narave informacijskih entitet [TIL]. *This essay is a private author's work and no part of it may be used, reproduced or translated in any manner whatsoever without written permission except in the case of brief quotations embodied in critical articles. 0. Introduction ...das Mathematische will sich selbst, im Sinne seiner eigenen inneren Forderung, begründen; es will sich selbst ausdrücklich als Maßstab allen Denkens herausstellen und die daraus entspringenden Regeln aufstellen. —Martin Heidegger [FND] 78 Nowadays, the background of informational reasoning seems to be more or less forgotten, fallen into oblivion, but also unrevealed and still subconscious. The broadened notion of information [Owi] was the initial step to this recognition in which formal principles and their consequences have been brought to the reader's consciousness. To develop a broadened and complete theory of information and informational phenomenology, an exhaustive axiomatic background of informing of entities is needed, on which the arising phenomenalism, scenery, processibility and, lastly, formalism can be built up. This step is necessary not only with the aim to broaden the scope of informational cognition, but also to prepare the basis for-the future development of that what we call the informational machine. The reader must be aware that informational axiomatization, in opposition to the known mathematical one, is a continuum in which a new axiom or theorem can always arise between two already existing ones. Informational continuum appears as an infinitesimal realm of information and an informational theory is never developed to an end, staying open for further change, improvement, and broadening. In this essay we shall discuss these assertions among several others. Axioms are formal principles which arise from the principal position and attitude of the logical mind. Informational axioms—among others, for instance, mathematical ones—are the most general and can absorb any thinkable axiomatic concept and include it appropriately into the observed informational system. This is a hypothetical assertion which can always be proven from one concrete case to another. The informational seems, at best, to be the most adequate principle of the universe. We shall try to give a principled explanation of this assertion at the end of the essay. Our way to the realm of axiomatic scenery of the informational must begin with some very basic assertion, which could be called ìnformatìo pnma.. Afterwards, axioms, logical consequences, and theorems can arise in a logically spontaneous, however, systematized way. Let us open this realm of cognition in the next section of the essay. 1. Basic Axioms Der Grundzug muß in jenem bestehen, was die Grundbewegung der Wissenschaft als solcher gleichursprünglich maßgebend durchherrscht: es ist der Arbeitsumgang mit den Dingen und der metaphysische Entwurf der Dingheit der Dinge. Wie sollen wir diesen Grundzug fassen? —Martin Heidegger [FND] 52 As in any axiomatic system, some basic questions prevail: Where is the origin of the informational axiomatic system? Which is the first, most nauiral axiom, from which other axioms and consequences arise in a possible, logical, and systematic way? As the so-called informatio prima of any logic the following could be asserted: Entities inform. If something (an entity figuring as the operand) is marked by a, we can say that oc informs. This statement, consciously or unconsciously, pri-mordially constitutes the first principle of any theory and can be expressed symbolically by (1) This axiom is informatio prima and pertains to any entity, that is, operand, marked by a. The axiom is expressed in the implicative form, using informational operator of implication, which is read as »implies (that)« from the left to the right, and as »is implied by« from the right to the left of formula (1). In the same way, operator \= is read »informs« in the one, and »is informed by« in the other direction. Thus, for formula (1) we have the following explanations: Entity a implies that it informs. Entity a implies that something (the empty place on the right of operator [=) is informed by it. Anytime and anywhere we have or there is an entity a, it informs (oc One of the very essential comments to axiom (1) is that its formula is circular in respect to entity a. (operand a. occurs on the left and on the right side of operator The other comment is, that a. as an informing entity, transmits (operator on the right of operand a) its phenomenality into the informational universe. The first axiom induces consequences which can still be understood as axiomatic. Namely, if we adopt the fact of this axiom, that »if a, then a informs«, then probably something—some other or the same entity—must and can be informed. To inform without to be informed would not have any particular sense in the realm of the informational which is the universe of informing (phenomenaliz-ing) of information (phenomena). Thus, the second most fundamental axiom is coming to the surface, as (2) We can show the basic way to this axiom from the first axiom and vice versa by the following asser- tion: if a informs, then something (a, ß, ...) would be informed. This fact yields (3) which is a consequence of axiomatic character. Further by a similar logical reasoning, which says, that if something is informed, there exists, sometime and somewhere, an informing entity a, thus, (4) The last two axiomatic consequences can be certainly interpreted more universally, by introduction of different entity markers a, ß, y, ... . So, (3') •••) (4') (t=a)^(a,ß,r,-N) These consequences explicate the openness of the informational universe in respect to the informing and informedness of an entity a, where it can inform and be informed by several entities (operands), simultaneously. To remain strictly consequent, axiom (2) follows from axiom (1) in the way (5) (a (a \=)) ^ (t= a) or logically, even more exactly, (6) As already mentioned, in axiom (1) and its consequences the property of a's circularity is hidden. Formula (1) is evidently implicatively circular in respect to a, since operand a stands on the left and on the right side of operator Together with formula (1), also formulas (2) to (6) are perplexedly a-circular. This circularity is of especial interest in case of formulas (3) and (4), since they enable to conclude on a's particular informing which we call metaphysics of entity a. The initial state of a's metaphysics is expressed by formula (7) a (a 1= a) This formula reads: a implies that a informs a and is informed by a. Or, in general, an entity informs (impacts) itself and is informed (impacted) by it- self. Formula (7) is a consequence of both formulas (3) and (4), that is, (8) where the so-called metaphysics follows from the circularly tied informing and informedness of a and (9) where metaphysics is a consequence of simultaneous, cyclically tied informedness and informing of a. Last two formulas conceptualize the circular or cyclic nature of an informational entity (operand, also informational formula) a. The next essential consequence in the framework of informatio prima follows directly from both axioms (1) and (2). This consequence speaks that an entity informs and is informed simultaneously, that it is the informational system of an entity's informing and informedness. Thus, at the end of such concluding, there is, (10) a[=(a^;^a) This formula is not only the most general, but also the most open expression pertaining to entity a and its environment, to a's phenomenality in space and time. It makes evident that a will inform some, yet unidentified entities and itself in the form a [= and that it will be informed by some, yet unidentified entities and itself in the form [= a. It is evident that both formulas a and a are completely open, having the operand empty place on the right and on the left side of operator [=, consequently. The next question concerns the informational spontaneity of an informing entity. How does spontaneity concern the basic axioms? Within a\=, entity a informs in a spontaneous way. Spontaneity is the axiomatic property of operand a as well as operator Informing of any informational entity a is spontaneous within the a's -informational cycle which is constituted by informing, counter-informing, and embedding of information. Further, in a operator \= is particularized in a concrete case and marks only different possibilities of a's operating potentiality. Formulas a \= and (= a depict phenomenalit-ies of one and the same entity a. They express possibilities of a's informational impacting and impactedness, that is, to impact the world and to be impacted by the world. The impacting and impactedness of an entity is spontaneous, uncertain and, in general, indeterminable. The spontaneity of a's informing can be understood through its metaphysics, a\=oc, which can be informationally decomposed by different observers in different (spontaneous) ways. After this discussion we can summarize the four basic implicative axioms {informatìo prima) pertaining to an informational entity a, as follows: (11) (1°) «=>(«(=) [extemalism of a] (2°) a ([= a) [intemalism of a] (3°) a (od 1= a) [metaphysics of a] (4°) a (a 1= a) [phenomenalism of a] Let us have the following dictionary of the primary four informational cases of informing: (12) (1 °) a [=: external informing of a; a's informational impacting; a's informing (informingness) (2°) 1= a: internal informing of a; a's informational impactedness; a's informedness (3°) a 1= a: metaphysical informing of a; a's metaphysical circularity; a's informational metaphysicalness (4°) a }=; t= a: phenomenal informing and informedness of a; a's informing and informedness phenomenality; a's complex phenomenalism There are different modes of general informing and it is possible to make a rough classification in the following sense: general informing: operator \=; alternative general informing: operator negative general informing: operator alternative negative general informing: parallel general informing: operator |[=; parallel alternative general informing: operator =11; parallel negative general informing: operator parallel alternative negative general informing: operator cyclic general informing: operator f—; cyclic alternative general informing: operator -|; cyclic negative general informing: operator cyclic alternative negative general informing: operator parallel-cyclic general informing: operator |[-; parallel-cyclic alternative general informing: operator -j|; parallel-cyclic negative general informing: operator |(/; parallel-cyclic alternative negative general informing: operator /|| To all these cases the so-called subscribed informational operators can be added. A subscript (for instance, subs) means an operational particulariza-tion or universalization. Thus, such operators are: Nsubs> Hsubs' Msubs' ?Nsubs' INsubs» HIsubs» It^^subs' ?1lsubs' h~subs' Hsubs' f/subs' /Hsubs» ll~subs> Hlsubs» il/subs' /llsubs and, certainly various operators of the type '—subs' —Jsubs' 'subs» I subs» '^siibs' ^siibs» ""'subS' ^subs' *^subs» *^subs' =subs> ?^subs» —subS' ^subs» ^subs> ^subs' "subs» ^subs' ^subs' '-subs' ^suos' ^subs> °subs' etc. with particular meanings. We may not forget that all operators (arbitrarily universalized or particularized) used within informational logic are informational. Informational operators are attributes (properties, phenomenalities, happenings, predicates) belonging to the informing and informed entities (operands, formulas, formulas within formulas) and connecting them informationally. The direction (operational orientation or directionality) of operators depends on the verbal definition of a particular informational operator. For instance, in their simple present tense, some verbal forms as »informs«, »inclüde«, »operates«, etc. are oriented from the left to the right operand, while others, for instance, »observes«, »understand«, »conceives«, etc. are oriented from the right to the left operand. Thus, we can distinguish externally and internally oriented operators as determined by simple present tense of verbs. Operands are marked informational entities which are single Greek or Frakmr symbols or formulas composed of operands, operators, parentheses, commas, and semicolons. We shall show the syntactic structure of informational formulas later on. 2. Alternative Basic Axioms Zum Wesen des Mathematischen als Entwurf gehört das Axiomatische, die Ansetzung von Grundsätzen, aus denen alles Weitere in einsichtiger Folge gründet. Wenn das Mathematische in Sinne einer mathesis universalis das gesamte Wissen begründen und gestalten soll, dann bedarf es der Aufstellung ausgezeichneter Axiome. —Martin Heidegger [FND] 79 We are interested to have explicit alternative possibilities to the discussed basic axioms with the aim to be able expressing explicitly the possible alternatives in each particular case as well as'on the most general level. Alternative axiomatic alternatives pertain also to the principle of informational spontaneity and to other possibilities of informing, for instance, to negative informing or non-informing, parallel, serial, cyclic, parallel-cyclic informing, etc. How it is possible to express alternative informing in cases of the most general and particular informing? The alternative possibility of informing speaks in favor of the ability to express simultaneously the case of basic (in general |=-opera-tional) and alternative (^^-operational) informing. We say that an entity informs in one (basic or general) or another (alternatively basic or general) way. How to mark the so-called other case? In general, entity a informs and is informed in this and that way. It informs alternatively and such simation can be expressed symbolically The differences between formula (1) and (1 ) are the following: (i) Operators and =| are counter-oriented, for instance, operator \= is the left-right and operator =1 the right-left symbol. Through this we can read formula a as a informs and formula =1 a.as a informs alternatively (in respect to the case a (=). (ii) Simultaneously, operators \= and =] are dual to each other in the sense of informing and informedness of an entity. For instance, if a means a informs, then (a [negative extemalism of a] (2°) a Ot^ a) [negative intemalism of a] (3°) a (a [t^ a) [negative metaphysics of a] (4°) a (a a) [negative phenomenalism of a] (1°) oc [t^: negative external informing of a; a ' s negative informational impacting; a's negative informing (informingness) (2°) a: negative internal informing of a; a's negative informational impactedness; oc's negative informedness (3°) a ^ a: negative metaphysical informing of a; a's negative metaphysical circularity; a's negative informational metaphysicalness (4°) a a: negative phenomenal informing and informedness of a; a's negative informing and informedness phenomenality; a's negative complex phenomenalism The negative informational in regard to the informational means the lack of certain possibility of informing in regard to already existing or identified one. Informational negativism is one of the basic principles of informational spontaneity, where in each particular case of informing a negative unforeseen, uncertain, indeterminable possibility can arise and come into existence. The altemativeness of the negative informing can be expressed explicitly. It is important to have the possibility of alternative negative informing and informedness on a univei-sal and particular level. Thus, we can repeat the entire system of formal expressiveness and its meaning for alternative negative informing as follows: AN (2AN (3AN (4AN) 5AN (ll^S (a «); a); a; a (1 a) [alternative negative extemalism of a] (2°) a (a [alternative negative intemalism of a] (3°) a ^ (a a) [alternative negative metaphysics of a] (4°) [altemative negative phenomenalism of a] (1 a: altemative negative extemal informing of a; . a's altemative negative informational impacting; a's altemative negative informing (informingness) (2°) [t^ a: altemative negative intemal informing of a; a's altemative negative informational impactedness; a's altemative negative informedness (3°) a a: altemative negative metaphysical informing of a; a's altemative negative metaphysical circularity; a's altemative negative informational metaphysicalness (4°) a; a altemative negative phenomenal informing and informedness of a; a's alternative negative informing and informedness phenomenality; a's alternative negative complex phenomenalism 4. Axioms of Basic and Basic Alternative Parallelism Parallelism belongs to the most significant philosophical and technological approaches of modem-ism. Communication and cooperation among parallel processes constimte the kernel of mastering of complex computing machinery which architecture is built-up in a massively parallel strucmre and organization together with signal processing and networking. And this is the reason why we shall strictly repeat the scenario of axiomatization for the case of parallel and alternative parallel informing. Informational parallelism means that entities inform freely, that is, spontaneously and circularly in parallel ways. An operand as an informationally open entity (phenomenalism) informs unforeseea-bly parallel and is in this way informed. It means that from the informational point of view, there are no limits for a concrete parallelism: it can be extended or suppressed in case of any informational entity (operand) in question. So, let us discuss this particular situation in some axiomatic details. For any imagined entity it can be said that it informs in a parallel way, that its »signals« are spread (broadcasted) in space and time where they can impact entities physically, observationally, or in other ways. This seem to be a natural situation of things which inform in all possible ways to different places and sites. The assertion »entity a informs in parallel« is expressed symbolically a (INo) d") a («N u Axiom (1 ) is the parallel case of infonnatioprima, is in the realm of the parallel informing of entity a.. And certainly, if a informs in parallel ways, then entities are informed in parallel. According to axiom (2) for informedness of an entity, we have the parallel axiom This axiom reads: if a is an entity, then it is and can be informed by several (parallel) entities simultaneously. From this point on, the parallel axioms can be produced automatically from the basic ones, that is. (3) (4p) (8^ (lop (11^) (12^) («IN) (IN«) (oc=>{a\\=)) (IN«); («IN); (IN«); (a (a 1^)) oc)); « (« IN «); a (a ||=; ||= a); (1°) a (a 1^) [parallel extemalism of a] (2°) a d^ a) [parallel intemalism of a] (3°) a (a |(= a) [parallel metaphysics of a] (4°) a ^ (a ||=; a) [parallel phenomenalism of a] (1°) a \=: parallel external informing of a; a's parallel informational impacting; a's parallel informing (informingness) (2°) 11= a: parallel internal informing of a; a's parallel informational impactedness; a's parallel informedness (3°) a |t= a: parallel metaphysical informing of a; a's parallel metaphysical circularity; a's parallel informational metaphysicalness (4°) a |t=; |t= a: parallel phenomenal informing and informedness of a; a's parallel informing and informedness phenomenality; a's parallel complex phenomenalism The parallel informational in regard to the informational means the possibility of informing addi- tionally in regard to already existing or identified modes, that is, simultaneously in many different modes. Informational parallelism is one of the basic principles of informational spontaneity, where in each particular case of informing a parallel unforeseen, uncertain, indeterminable possibility can arise and come into existence. The altemativeness of the parallel informing can be expressed explicitly. It is important to have the possibility of alternative parallel informing and informedness on a universal and particular level. Thus, we can repeat the entire system of formal expressiveness and its meaning for alternative parallel informing as follows: O O (lO^h a^(aHI) (Hi HD; a (a HI a); a (HI ol; a HD; (1 a (HI a) [alternative parallel extemalism of a] (2°) a (a HD [alternative parallel intemalism of a] (3 ?) (a HI a) [alternative paralel metaphysics of a] (4°) a ^ (HI a; a HD [alternative parallel phenomenalism of a] (1°) HI alternative parallel external informing of a; a's alternative parallel informational impacting; a's alternative parallel informing (informingness) (2°) 11= a: alternative parallel internal informing of a; a's alternative parallel informational impactedness; / a's alternative parallel informedness (3°) a HI oc- alternative parallel metaphysical informing of a; a's alternative parallel metaphysical circularity; a's alternative parallel informational metaphysicalness (4°) HI =\\' alternative parallel phenomenal informing and informedness of a; a's alternative parallel informing and informedness phenomenality; a's alternative parallel complex phenomenalism The parallel informational phenomenality concerns the most sophisticated metaphysical and intelligent conceptuality (phenomenology) of the informational (mathematical, mathetical in the sense of the Greek mathesis). In an informational situation, parallel informational phenomena pertaining to this situation can come into existence. The general and particular operators of informational parallelism (|1=, HI. T^D express this faculty of parallel phenomenality in a positive or negative way. Therefore, the following parallel circularity can be considered as the most significant in the context of parallel informational system composition and decomposition: p (13 ) jParallel circular extemalism: (a H ^ (a [=;...; a H; Parallel circular intemalism: (^ a) a); ^{=:a)^(^=a; ... ;{=a); Parallel circular metaphysics: (a N «) (« IN a); (a 11= a) =>(a 1= a; ...;a\= a); Parallel circular phenomenalism: (a |=; t= a) ^ (a |t=; a); (a it= a) (a [=; 1= a; ... ; a [=; [= a) As one can understand, informational parallelism brings into the focus the so-called parallel circular mode of informational arising of entities, systems, formulas, etc. 5. Axioms of Informational Function Wir bringen diesen gesuchten Grundcharakter der neuzeitlichen Wissenshaltung auf einen Titel, wenn wir sagen: Der neue Wissensanspruch ist der mathematische. Von Kant stammt der oft angeführte, aber noch wenig begriffene Satz: »Ich behaupte aber, daß in jeder besonderen Naturlehre nur so viel eigentliche Wissenschaft angetroffen werden könne, als darin Mathematik anzutreffen ist.« —Martin Heidegger [FND] 52 A function (p is an acting or producing informational entity in the realm of several, the function concerning entities. Therefore, it is senseful to speak about a functional scheme in which different entities can be involved when functional activity is coming into existence. It means that the functional scheme should retain sufficiently general perquisites enabling it to be embedded and connected into and with distinguished and essentially different mformational entities, respectively. In general, a function is never something without its roots from where it arose or is still arising. Several essential and general questions can come into the discourse before we list the axioms pertaining to informational function 9. Let us start with some basic questions. (1) Which entity (informational operand) ({) produces (p? (2) For which purposes, marked by n, function

)) The particularized form of the last formula is (18) S(a); S(a)^((oc|=S(a))|=a); Counter-informing axioms: (tNT) <=(«[= a); S(a)CS(a); (a 1= a, Y1= Y) ^ ((e(a)|=a,T)N•); ^ ^ Nintelligent» Nintelligent '-)» (1°) L ZI» (i |=in,eiligem) [intelligent extemalism of l] (2°) L (Nintelligent 0 [intelligent intemalism of t] (3°) I ((, |=in,eiiigent 0 [intelligent metaphysics of t] (4°) L (l Fintelligent! Fintelligent 0 [intelligent phenomenalism oft] Let us have the following dictionary of the primary four informational cases of intelligent informing: (I2V (1°) t ^^intelligent: intelligent external intelligent informing of i ; L 's intelligent informational impacting; L 's intelligent informing (informingness) (2°) Nintelligent intelligent internal informing of i ; I's intelligent informational impactedness; I's intelligent informedness (3°) t [^intelligent t : intelligent metaphysical informing of (,; L 's intelligent metaphysical circularity; L 's intelligent informational metaphysicalness (4°) intelligent^ Nintelligent • intelligent phenomenal informing and informedness of i ; L 's intelligent informing and informedness phenomenality; L 's intelligent complex phenomenalism There are different modes of intelligent general informing and it is possible to make a rough classification in the following sense: intelligent general informing: operator Nintelligent' intelligent alternative general informing: operator ^intelligent; intelligent negative general informing: operator ^intelligent; intelligent alternative negative general informing: operator T^intelligent; intelligent parallel general informing: operator i^^intelligent; intelligent parallel alternative general informing: operator HUtelligent; intelligent parallel negative general informing: operator |}7^intelligent; intelligent parallel alternative negative general informing: operator ?Ì|intdligent; intelligent q^clic general informing: operator [-intelligent; intelligent cyclic alternative general informing: operator Hintelligent: intelligent cyclic negative general informing: operator b^intelligent; intelligent cyclic alternative negative general informing: operator T^intdligent; intelligent parallel-cyclic general informing: operator H-intelligent^ intelligent parallel-cyclic alternative general informing: operator Hlimelligent; intelligent parallel-cyclic negative general informing: operator Unintelligent; intelligent parallel-cyclic alternative negative general informing: operator /||intelligent We see how intelligent informing of an entity i is nothing else than any other particular informing of this entity. Intelligence is merely a specific perquisite of the entity which produces »intelligent« information concerning something which this entity evaluates, observes, or understands. Thus, to the basic axiomatic system of an intelligently informing entity t the parallel system can be added, considering the previous six initial points (1) to (6) of intelligent informing. The markers and to them corresponding meanings of the Greek and Frakmr operands and operators are the following: ßbenefit benefit ßbenefit(^) something's own benefit; benefit of something Tcircumst circumstance(s) ^delight delight ^delightC®) something's own delight; delight of something ^development development ^dynamic dynamics ^dynamic(Tcircumst) dynamic circumstances "•indetenn indeterminacy ^ indetermCTcircumst) indeterminate circumstances I intelligently informing entity something impossible impossible, the impossible(^) impossible concerning something, the invisible invisible, the hnvisibleCc^) invisible concerning something, the Xjive liveliness ^live(^entity) living entity ^meaning meaning l^meaning(^) meaning of something ^possibility possibility/possibilities '^possibility^'' (^development)) possibility of intelligent entity development a something (an arbitrary entity to be »understood« by (,) -•sense sense CTsense(^) sense of something ^significance significance ^significanceC*^) significance of something ^spirit spirit i(o) entity intelligently concerning aspirit(cr) spirit of something «^struggle struggle •^survivaK^)» •••) struggle of something's own benefit, delight, survival, etc. «^survival survival '^survival(^) something's own survival; survival of something ^incertain uncertainty ^uncertain(Tcircunist) uncertain circumstances ^unconscious unconscious, the ^mconscious(^) unconscious concerning something, the ^unforeseeable unforeseeable, the ^unforeseeable(Tcircumst) unforeseeable circumstances ^unknown unknown, the ^mknown(cf) unknown concerning something, the 2ßworld world =analyze analyze(s) Nbehave behave(s) —circular is/are_circular Nevaluate evaluate(s) Nforecast forecast(s) Ngenerate generate(s); bring(s)_to_the_surface —goal_directed is/are_gòal-directed is/are_in; inform(s)_in Nintentional is/are_intentional Nobserve observe(s) Nplay Play(s) Nproduce produce(s) Nspontaneous is/are_spontaneous Nsynthesize synthesize(s) Nunder is/are_under; inform(s)_under Nunderstand understand(s) The six additional paragraphs pertaining to IE can now be formalized by the corresponding informational formulas as parts of the informational system of IE I. For the first sentence and its formula we have: (13^1) IE informs (expresses, describes) something (an entity) in an evaluating, observing, or understanding way; (a [= (t, |=intelligent 0) ('' N^evaluate '' .Nobserve '' Nunderstand In this formula, IE l , that is, its metaphysics i ^intelligent (-, is the intelligent observer of a, so, it evaluates, observes, and understands cr. The second sentence and its formula is: (13^2) IE produces the so-called meaning, sense, spirit, and/or significance of something as information; Nproduce ((^meaningCcf). c^sense(cf)' c^spiritC^)-'^significanceC'^)) The third sentence together with its formula is (13^ 3) IE forecasts, analyses, and synthesizes information concerning something under dynamic, unforeseeable, uncertain, and indeterminate circumstances; —forecast Nanalyze '•C'^)» Nsynthesize ^ Niinder (^dynamic(Tcircumst) > ^inforeseeable(Tcircumst) > ^uncertain (Tcircumst) > '' indeterminate(Tcircunist)) The fourth sentence and formula are: (13^.4) IE brings unknown, unconscious, invisible, impossible information concerning som£thing to the surface; ^ Ngenerate (^inknown(^) > ^inconscious('^)' '' invisibleC'^) » impossible(^)) The fifth sentence and its forinula are (13^5) IE is spontaneously and circularly oriented, intentional, and goal-directed when it observes itself and evaluates various possibilities for its own development; ((th spontaneous' ^circular» Pintentional' Pgoal-directed) —observe '•) Nevaluate ^possibility C*" (^development)) The sixth sentence and its formula are (13^6) IE behaves as a living entity in the world where it plays the struggle for its own benefit, delight, survival, etc.; (('' Nbehave ^live(^entity)) =in ®^world) Nplay C^struggleObenefit(c^). ödelight(^). 7. The Syntax of Informational Formulas In this essay we have used various informational formulas from the beginning, in the most basic axioms. In parallel, we developed a foundation of the so-called operand-operator (0-0) theory which could be understood also outside the so-called informational realm as a mathematical theory. We could simply speak about a self-sufficient operandoperator theory which does not concern only the so-called informational theory. This would mean to ignore the semantics pertaining to the informational phenomenality and introduce operand-operator objects as the only ones into the O-O theory. However, such theory would be nothing else than a particular case of an informational theory. The syntax delivering syntactically correct informational formulas is simple and straightforward. If a. represents any possible operand entity, the formation rules of well-formed informational formulas 9 are the following: (24) (1°) (2°) (3°) (4°) (5°) (6°) (7°) (8°) (9°) (10°) a: (11°) [= (p: (N°NI'('t=°N')'l In the last formula system we have marked symbols '(', ')', and'I'to avoid the ambiguity with the equally marked symbols appearing in syntactic system (xx). In formula (11°) operator entities appear as informational entities. Entity a is a simple operand, that is, operand marker in the sense of formulas (9°) and (10°). folded this situation and attitude üirough the con-ceptualism of informational extemalism, intemal-ism, metaphysics, and phenomenalism which all can be accepted in a general and in every particular case. Thus, any other axiomatic approach can be derived from the informational as a specific axiomatic particularization. On the other hand, an informational (verbal and symbolic) language [TIL], that is, the new formalism, came into the foreground and made the progressing into the domain of the informational (intelligent) machine possible. Various forms of the verb to inform obtained the power of the verb to be and the role of the most primordial (simple and composed) verbal forms. Thus, any operator connection between informational operands could be expressed dynamically in a general or particular way, widening the scope of the verbal phrase which includes informing to arbitrary other words and word groups with particular, composed meanings. The informational approached to that what we can call the understanding way of informing, living the atomized, strictly linguistically structured and organized conceptual-ism in the background, unconscious, however not excluded from the informational realm. In any case, the verb to inform became the central happening between entities and enabled to broaden the informational semantic scope to any dynamically understood relation, operation, and phenomenality, occurring between informational entities (operands). On this way, the informational axiomatiza-tion can encounter the most problematic, semanti-cally complex, intelligent, and real situations, offering e new, flexible, and promising apparatus in the development of nowadays and future theories, systems, and machines. References Conclusion The informational seems to be the most adequate principle of the universe. Things, entities, phenomena, information, minds, machines, and the entirety of the universe inform and are informed, that is, impact and are impacted phenomenally, perform as informational entities, as formations concerning formations; and, that is, speaking roughly, information. In the essay, we have un- [FND] Heidegger, M., Die Frage nach dem Ding, Max Niemeyer Verlag, Tübingen (1987). [Owi] Železnikar, A.P., On the Way to Information, The Slovene Society Informatika, Ljubljana (1990). [TIL] Železnikar, A. P., Towards an Informational Language, Cybemetica35(1992) 2. 139-158. INTEGRITY IN THE RELATIONAL DATA MODEL Keywords: relational model, entity integrity, referential integrity, logic approach, consistency Mario Radovan Fakultet ekonomije i turizma, Pula Inštitut »Jožef Stefan«, Ljubljana The paper shows that the general integrity rules are simply "corollaries" of the (traditional) definitions of primary and foreign keys. Further, it is shown why (and how) the database-specific integrity rules should be treated as expressions of that knowledge which is contained, built-in in our "language, atitudes and measures". Such a conception of integrity allow us to reduce the (rather informal) concept of "correctness" of databeses to the request for its consistency (as a theory). INTEGRITETA V RELACIJSKEM MODELU: Članek dokazuje, da so splošna pravila integritete preprosto korolarj i tradicionalnih definicij primarnega in zunanjega ključa. Dokaže tudi zakaj (in kako) bi pravila integritete specifična za dano bazo, morala biti obravnavana kot izrazi (zapisi) tistih znanj, ki so vsebovana (vgrajena) v našem "jeziku, stališčih (odnosih) in merilih". Tako pojmanje integritete nam omogoča da (precej neformalen) pojem "pravilnosti" baze podatkov zvedemo na zahtevo po njeni konsistentnosti (kot teorije). 1. Introduction "We begin with a little philosophy", says Date, , at the beginning of the chapter on Relatinal Integrity Rules. In this article we begin in the same way; indeed, we also continue in this way because it seems that the basic concepts concerning integrity in general are not yet defined suitably nor clearly enough. Our discusion is concerned with the approach and definitions given in because Date is not only one of the active Contibutors to the field od databases. but also one of the most influen-tal writer on the topic. We are not speaking so much in terms of the "right" or "wrong" way of doing things as in terms of more or less suitable ways of conceiving and defining basic concepts in data modeling in general, and especialy of integrity constraints (rules). 2. The Logic Ap^>roach A set of seminal ideas on the "logic approach" to data modeling was collected in ; among subsequent contributions, it seems that the most influental on the topic was . An analysis and a proposal for (re)defining inference and integrity for knowledge bases, defined in terms of clausal logic and SLDNF-reso-lution, was given in . Generally speaking, the conceptual foundation of any "informal knowledge" always involves "some logic". Such a logic consists (at least) of a language (defined on the level of syntax (form) and semantics (interpretation, meaning)), and a (set of) inference rule(s) which allows us to infer consequences which follow from the given knowledge. Therefore, a "conceptual foundation" of any "knowledge" bring us to a "system" in whose language such a knowledge should be unam-bigously expressed, and by whose rules of inference (all and only) the consequencess of this knowledge could be inferred. What is known as "relational data model" is also such a "system". The logic approach defines a way of conceiving "facts" and "knowledge", and a way of speaking about them. By "model" we mean a set of facts (states, values), while a "theory" is a set of propositions (assertions, knowledge, ... ) concerning some model. In accordance with such a conception, the content of a data/knowledge base is seen as a theory which expresses knowledge concerning some "world". If such a theory is correct and complete, it "tells the truth and only the truth" about the world, and we say that the world is its model. (Incidentally, in such a context, we would prefer to speak of the "relational system", rather than of the "relational model".) 3. The General Integrity Rules In the relational data model (system) , the integrity rules are traditionaly divided into two clases: general and database-specific rul^s. The first class contains only two rules, known as the entity integrity rule and the referential integrity rule. Although there is much "theoretical debate" (not always very clear!) about these rules, their meaning is fairly simple and clear. The entity integrity rule says that a thing about which we (want to) speak must be identified, while the referential integrity rule says that what we refer to must exist. Although these rules are concerned with the relational data model (system), it seems that those requests should be a minimal condition of any "afirmative speech" to be considered inteli-gible! (Therefore, they should form a part of any system (language) , except those of poetry. Of course, hypotetical speech (in religion, politics, ... ) is possible (and coitimonl) even without real identification and existence. ) 3.1. The Entity Integrity Rule In spite of the simplicity of the entity integrity rule, there seems to be much vagueness and disagreement concerning its meaning and definition than one would expect. In , Date states this rule as: "No component of the primary key of a base relation is allowed to accept nulls". He specifies (p. 280): "... we take 'null* to mean, simply, a value or representation that is understood by convention not to stand for any real value of the applicable atribute" (underlined M.R.). In fact, the same was stated on p. 251, where we find: "null is not a value". To evaluate Date's conception of the entity integrity rule, it seems apropriate to cite his definition of candidate (ató primary) key also; in we find: "Atribute K (possibly composite) of relation R is a candidate key for R if and only if it satisfies ... 1. Uniqueness: At any given time, no two tuples of R have the same value for K. 2. Minimality: If K is composite, then no component of K can be eliminated without destroying the uniqueness property". Discusing the entity integrity rule. Date rightly emphasizes that "all kind of problems" arise if the key is (partially) null. Among other things, he stresses that in such a case we do not even know (in general) whether the tuple with a null in its key "represents" some of the entities about which we already have a tuple in the relation. However, a "kind of problem" also springs from Date's concluding fragment of the section on entity integrity; he says: "... it is commonly but erroneously thought that the entity integrity rule says something along the lines of 'Primary key values must be unique' . It does not. That uniqueness requirement is a part of the basic definition of the primary key concept per se. ( under 1 ined M. R. ) The entity integrity rule says (to repeat) that primary keys in base relations must not contain any nulls". In fact, it seems that there really are such "thoughts" as Date mentiones above; whether they are really "erroneous" or not, we will try to see in what follows. For example, in (a respectable book, in my opinion) Groff and Weinberg give the following definition: "Entity integrity: The primary key of a table must contain a unique value in each row Evidently, this definition says exactly what Date denies! Now, which of the two (in fact, three) autors has an "erroneous thought"? And why, and where does the error come from? That is the question we shall try to answer now. First of all, both positions seem to be coherent. Which one will then be the "loser"? We claim: The entity integrity rule itself! For Groff and Weinberg, the position is fairly clear: They give a definition, without much argumentation. The only objection which could be raised against their position is that such a definition makes the entity integrity rule superfluous. Namely, it only repeats what is already contained in the concept of uni-gueness in the very definition of kandidate key! Date's position seems somehow different. However, it seems that the difference arises mainly from his imprecise definition of the candidate key given above. Namely, what does it in fact mean that "no two tuples of R have the same value for K"? Let us try to understand it by means of an example. Let the sheme of the relation R be R^A. B. ... ), and let two tuples from R be . Now, does this pair of tuples violate the above unigueness reguest or not? No, because according to Date, "null is not a value"! Therefore, it is impossible even to speak about the "same value" ! And in such a case, it seems necessary to have Date's definition of the entity integrity rule, so as to "expel1" the -nulls from the key! Namely, otherwise "all kind of problems" would arise: adressibi-lity of tuples, first of all ("null is not a value"!). However, there was one more reguirement in the definition of candidate key: minimality! And this one warns us clearly enough that if we assign to the key atributes something that "is not a value", we must lose unigueness! And by that, we also deviate from the definition of the key (i.e., we lose even the key itself!). Namely, even though by assigning null to an atribute which is a component of the key, the component is not really "eliminated", it is eliminated in a functional sense: it is not "in function" any more! (A component can guarantee (or support) the unigueness of the key only by being instantiated to a value -and not to something which is "not a value"!) Therefore, we must once more conclude that the entity integrity rule (at least, as a rule!) is superfluous, because it only repeats what necessarily follows from the mere definition of the candidate key. Namely, a careful reading of the candidate key definition tells us that the candidate key atributes must not be null. By the above claim of "imprecision" in Date's definition of the candidate key, we mean that with the expression "same value", Date should have really intended "a value"! Well, there is a legation in his definition of unigueness, and that always make things less clear. Namely, as we already stated, "not a value" in fact satisfies the reguest for "no . .. the same value"! However, it seems easy to escape this (rather sofistic) trap. We should only reformulate the uniqueness request, in perhaps the following a way: "Any two (different) tuples of R must have different values for K." Now, from "have different values" we should be allowed to infer "have value"! And then all additional rules concerning "nulls in key" become superfluous . 3.2. The Referential Integrity Rule For discussing' the referential integrity rule we should first give a definition of foreign key. This concept is pretty clear, however it seems very "unsuitable" for being caught in an "elegant" definition. Date, , states it in the following way: "Atribute FK (possibly composite) of base relation R2 is a foreign key if and only if it satisfies the following ... 1. Each value of FK is either wholly null or wholly nonnull. • • • 2. There exists a base relation R1 with primary key PK such that each nonnull value of FK is identical to the value of PK in some tuple of Rl". Now, the referential integrity rule. Date defines, , with the following words: "The database must not contain any unmatched foreign key values". Unfortunately, it séems that there are "some problems", even with this definition. Namely, according to the definition of foreign key, if some "nonnul value" i.e. "value" (all "values" are "nonnull", if null "is not a value"!) of a foreign key FK would be unmatched, it would not be a foreign key! (Read carefully clause (2) of the foreign key definition!) Therefore, in the context of the given definition of foreign key, the referential integrity rule seems to be superfluous (as was the entity integrity key in the context of the definition of candidate key). With the above discussion, we didn't mean to criticize Date's exposition; in fact, he himself says that "... the foreign key and referential integrity concepts are defined in terms of one another. That is, it is not possible to explain what a foreign key is without mentioning the idea of referential integrity (at least tacitly) ...", . Incidentally, we "feel" that the last sentence is too strong. For it is not very clear why it should not be posible to define a foreign key if (some of) its values would be simply (momentarily) unmatched. Let us conclude the discusion on general integrity rules with a few remarks and estimates of their position and role in the relational data model (system). First of all, we hold that there is an esential difference between the request for "uniqueness" (entity integrity) and the one for "matching" (referential integrity). Namely, it is very clear that uniqueness (adresibi-lity) is of an essential importance for the model. Therefore, it should be defined (included) at the level of the syntax of the language (system). On the other hand, we hold that the referential integrity request is of no such importance on the theoretical level. Namely, what is in fact the (cognitive) difference between a null-valued foreign key and an unmatched one? Let as look at an example. Let Rl and R2 be relations, and B be a foreign key of R2 in Rl: Rl(A, ..., B, ... ) R2(B, ... ), and let f • • • f ]d2 f • • • ^ be tuples in Rl. Further, let the relation R2 contain a tuple , but not the tuple . Now, the first two tuples of Rl do not violate the referential integrity rule (the rule allows nulls), while the third one does. However, we think that there is not much difference among them, at least not at the theoretical level of the data model (system). Namely, the first tuple refers to "something unknown", while the third refers to "something unknown, designated as b3". Of course, there is a difference between the first and the third tuple of Rl on the operative (practical) level. Perhaps by inserting null (instead of b3) in the third tuple above, we would not bring in much information about "the world": in fact, "the reality" would be "even more uknown"! However, this "even more" is useful, because - with it, expressed as null - we know that the "referred entity" is actually unknown. And that could be a useful information, not about "the world", but about our knowledge of it! For without a null, we could erroneously hold, in accordance with "common sense", that there is a tuple b3 in R2. In accordance with what is stated above, we hold that the request for referential integrity is a problem which belongs (much) more to the level of implementation (software) than to the basic theoretical (conceptual) level of the model (system). Therefore, we put forward three possible ways of "theoretical treatment" of this rule, where our preference goes from the first downwards. 1. Referential integrity (as a request for obligatory matching) could be ommited as an explicit rule, and as an implicit part of the foreign key definition. 2. Referential integrity could be (and in fact actually is) stated inside (as an implicit part of) the definition of foreign key. In that case, "the problem" is raised on the level of syntax, and there is no more need of a special (explicit) theoretical treatment. 3. Finaly, if we insist to keep referential integrity (as a rule) in the system, then a referential integrity violation should be reduced to the inconsistency of the database as a theory. To achieve this, we should simply define a rule as a "generally holding knowledge (truth)", in the following way: "For every fk, such that fk is a value of a foreign key, there is (in the database) a primary key with value fk." Such a rule would then be part of the (knowledge contained in) the database. Now, if an "actual content" of the database (which is always finite) would allow us (or the DBMS) to infer (compute) that: "There is such a value of an atribute(s) defined as a foreign key (in some relation) which is actually not a value (instance) of the refered primary key", then such an inference (result) would contradict the integrity rule stated above, and show the inconsistency of the database content. Naturally, such a control (checking) should be performed before (every) update of a database. 4. Database-specific Integrity According to Date, a database-specific integrity rule (constraint) "can be regarded as a condition that all correct states of the database are required to satisfy", . Such an assertion immediately lead to the question: What does it mean for a state to be "correct"? Earlier, in , we find: "... database consists of some configuration of data values, ... (which) ... is supposed to 'reflect reality' (i.e., it is supposed to be a model ... of some piece of the real world ... )". (As we already stated, it would be much more suitable to say that a database is a theory rather than a model. Namely, it is the theory we intend to "reflect reality"!) "Now, some configurations of values simply do not make sense, in that they do not represent any possible state of the real world", continues Date. All that sounds well; however, there are too many "critical" (not well Refined) concepts here: in addition to "correctness", we now also have "sense" and "possible states of the real world". Let us start with the last one. Date says (same page) that "weights cannot be negative in the real world". Sounds wise. However, strangely enough, temperature can! Moreover, even the water level of a river can be negative! (I must confess that this "fact" perplexes me anew whenever I hear such a report. I always have an impression that a river somehow went underground!) With these examples, we simply wanted to ilustrate that it is not suitable to speak in terms of what "can" or "cannot" be, or what is " (im) possible" in the "real world" (which is itself not a very clear concept!). Therefore, we propose to move the discusion to the level of contradiction and (in)consistency, which are well defined concepts, and also "manipulable" in the computational sense. Philosophically speaking, the first reason for such an approach would be that there is no such a thing as a "mere fact": Facts are always something already shaped in (or by means of) our language and measures! (Well, even if (at some "deep level") there is the True Reality, it is - by definition - indiscernible for us, because the "eyes" and the evaluation of the "seen" will always be ours!) Now, (database-specific) integrity constraints would express that (relevant) knowledge which is already "built-in" (contained) in our language and measures. Such integrity constraints would not protect the database from "asserting impossible things" but would simply prevent such changes which would lead to contradiction with the knowledge which tacitly holds in the language and which is formally expressed by the database-specific integrity constraints. For exampile, a constraint concerning (our conception of!) weight could state (in some DDL of DBMS): "There is no such a thing as a weight less than zero." Now, if some update would lead to a state in which some value for the atribute WEIGHT would become "less than zero", it would mean that this update would make the database inconsistent! In such a way, the concepts of "cor- rectness", "sense" and "(in)possibility" are reduced to the basic (and "most suitable") concept of consistency. Inconsistent theory don't have a model; therefore, we can say with certainty that an inconsistent database would not speak of the "real world" (not even of an "ireal" one, at least not inteli-gibly). (Note that in such a "conceptual (data) system", integrity constraints are part of the database (theory), although they do not in general state "isolated facts" but "rules" which single facts must not contradict.) Of course, it is not practically possible to prevent all possible errors in the database on the formal level. However, we hold that those preventive measures which are possible should be best done (defined) by means of (database-specific) integrity rules, where integrity is reduced to the concept of consistency. base-specific integrity rules should be treated as expressions of that knoledge which is contained (built-in) in our language, measures and atitudes. Database-specific integrity rules are, in fact, general knowledge wich should be thought (and treated) as part of the database. Such a conception and role of the integrity allows us to reduce the concept of "database correctness" to its consistency (as a theory) . Of course, at the operative level (i.e., at the level of the DBMS) they would serve to prevent those updates which would bring the database to inconsistency. REFERENCES Date, C.J.: An Introduction to Database Systems. Vol. 1 (Fifth ed.), Addison-Wesley, 1990. 5. Conclusion By discussing integrity rules in the relational data model, we tried to show and emphasize the suitability of the logic, proof-theoretic approach to the definition (or conceptual foundation) of data models in general. By claiming that general integrity rules are "superfluous" we didn't mean that their content is irelevant, but that this content could be stated (expressed) within definitions of the primary and foreign key. In that case, general integrity rules (as defined e.g. in ) could be treated as simple "corollaries" (i.e., evident consequences) of those definitions. On the other hand, the data- Gallaire, H., Minker, J. (eds): Logic and Data Bases. Plenum Press, 1978. Groff, R.J., Weinberg, N.P.: Using SOL. McGraw-Hill, 1990. Radovan, M.: "On Deduction and Consistency in Clausal Logic", Acta Analytica, No 3, 1987. Reiter, R,: "Towards Logical Reconstruction of Relational Database Theory", in Bro-die, L.M. et all (eds): On Conceptual Modeling. Springer-Verlag, 1984. UNDERSTANDABILITY OF THE SOFTWARE ENGINEERING METHOD AS AN IMPORTANT FACTOR FOR SELECTING A CASE TOOL Keywords: CASE tool, engineers testing, learning properties, software engineering I. Rozman, J. Györkös, K. Rizman University of Maribor Faculty of Technical Sciences Smetanova 17, 62000 Maribor, Slovenia ABSTRACT — The article highlights the un-derstandability of a software engineering methodology as an important criterion for selecting a CASE tool. This aspect is treated through the comparison of learning properties for two very well known methodology on which the CASE tools are usually based on. The first one is SA-SD and the second one is JSD. In the purpose to compare both methodology a group of young engineers has been tested. Each of them wrote a seminar theme, answered a questionnaire and explained his observations. At the end of the paper, a general conclusion is presented. 1 Introduction Computer - Aided Software Engineering ( CASE ) tools are coming into widespread use in the software engineering. These tools automate methods that can improve software development practice and help to improve the quality of a software product. Choosing a CASE tool can be a difficult ahd confusing task because the great number and variety of tools are on the market. Many potential user of the CASE tool base their selection upon literature from the vendors, perhaps with a trial period using a demo system. In article [6] a method for selection a CASE tool is described as a six step process: • define the CASE requirements, • contact vendors for information, • select systems and vendors for in-dept evaluation, • require vendors to respond in writing to the CASE requirement and to loan demonstration copies of the system trial use arid evaluation, • if possible, visit vendors at their home sites, • select a CASE system for purchase. In the first step, analysis and/or design methodologies which support the tool as an overall system requirement are expressed. It should be noted, that the tool • must have a full semantic understanding of the graphical and textual object comprising each analyses and design component, • must handle a minimum number of levels (e.g. 10 or 15) in hierarchical analyses or design methodologies, and a minimum number of components such as data dictionary entries, data-flow diagrams, or structure charts, • must support completeness and consistency checking across the analyses and design and through all levels of the analyses hierarchy. But, the influence of methodology to be learned itself, is not observed in this article. Methodology is prerequisite and essential for using the CASE tool. The importance of this criterion, as an important criterion for characterizing the CASE tool, was factually not expresséd in last workshop CASE 90 [2]. But from our experience, we know that a full satisfaction with a CASE tool can be achieved only if users like to use them. A tool must be based on methodologies which are close to the way of the user's thinking and close to his/her experience in the past, or that it aids his/her existing knowledge. In order to highlight the problem of friendliness of a CASE tool to the user, we have compared two formal methodologies.regarding to the user's capability to understand it and to learn how a particular method can be applied to the software development. The both chosen methodologies are taken from the two main groups and are quite different. These groups are: • Data Flow Oriented Methodologies and • Data Structure Oriented Methodologies. From the first group the well known SA-SD methodology (Structured Analysis according to DeMarco [1] and Structured Design according to Yourdon and Con-stantine [5]) was chosen. From the second group the JSD methodology [4] (Jackson System Development, author is M. Jackson) was chosen, because this methodology is the most typical and in certain expert circles most widely used. And what has not the least importance, some authors classify this methodology near the object oriented ones (e.g. [3]). Our comparison is based on an experiment in which we tested some engineers to find out which/methods are easier to learn. 2 Experiment description Experiment hćts been applied to twelve person tested who learned the both mentioned methodologies during the post - graduate study. Eight of them are electrical engineers, two are mechanical engineers and two are civil engineers. With the aid of lectures attended (fifteen hours) and literature studied each of them had to solve a problem, approx. 3000 LOG, in the form of a seminar work and according to methodologies cited above. The problems to be solved were mainly procedural oriented, but some of them had important data component, too. If difficulties in individual design appeared consultations were given. When their work was finished they presented their results and answered the questionnaire given. At the samè time they passed the examination. 2.1 Questionnaire The questionnaire is divided into two logical unit. The first two questions are general. The answers are expected to reflect the influence of previous skill of students for modelling a real world. The last four questions are expected to give an individual note of both methodologies and to show which methodology the young engineers are more familiar with. A descriptive manner of answering is foreseen for the last four questions. The narrowness of possible answers and their misguiding influence are avoided, but a descriptive treatment of the results of the questionnaire is needed. For the presentation in the last question the well known Osgood's Semantic Differential with four-level scale is used . QUESTIONNAIRE 1. Which programming language is most often used in your programming experience? a) FORTRAN b) Pascal c) Other d) None 2. Your task is to model a part of the real world into a software system. When such task is given to you, do you think that you understand the required reality: a) Completely b) Only main aims are known; the details are unknown. c) The details axe known; their uniting into a system is unknown. 3. If you don't understand the problem completely, the reason is as follows: a) Ignorance of the skilled perspective of reality. b) It is not known how to express the function of the problem ( It can only be "felt" ) c) Others 4. What do you think of a problem that should be solved? a) The model of reality is seen. b) The model is seen as a transformation of the input picture into the output picture. 5. Which software formal developing method are you going to use with your future work? a) JSD b) SA-SD c) None 6. Why čire you going to use the method marked under point 5? a) b) c) (give at least two answers) 7. Why aure you not going to use the other method mentioned or even none of them? a) b) c) (give at least two answers) 8. With the marks 0 (very bad), 1 (bad), 2 (good), 4 (very good) try to express the degree of satisfaction of paxticulair activities in the life cycle for both methods A - assistance in formulation of requirements B - quick detection of faults C - surveyabiI i ty D - simple maintenance of end-product E - simple completion of end-product JSD SA-SD Figure 1. Questionnaire 2.2 Interpretation of Answers The answers to the first five questions are shown in the tabular form on the figure 2. answer 1 2 3 4 5 a 10 2 7 3 1 b 2 8 2 10 11 c 0 2 3 X 0 d 0 X X X X Figure 2. Tabular presentation of answer to the first five questions Most young engineers answered that they are familiar with the FORTRAN language. This is understood because the young engineers mostly learned this language during their regular education. To have only a skill about FORTRAN means that these people are "half ilhterate" as regards programming. It is sure that ignorance of data part of the program makes the understanding of any software development methodology difficult. In the SA-SD methodology this is seen from the difficult understanding of the data dictionary and data handling in the files as a data base. In the JSD methodology, where entity structure is dominant, ignorance of the data part of the program was undoubtedly one of the reasons for more difficult understan-dability. The answers to the second question show that the tested persons tried to get the most abstract picture of all important functions. Two of them decided that they had known details but they had not had a clear perspective about uniting details into the system. The conversation in the experiment showed that in these two cases tested people were working on the problem long time and the seminar work done during the experiment was prolonging their continuous work. The answers to the questions three and four show that in the most cases the functional decomposition was used as appropriate way of thinking for decomposing a problem into small pieces. The fifth question demanded a concrete decision regarding the methodology used in the future by the individual. The majority (eleven persons) decided to use the SA-SD methodology. Let us consider some most important arguments for preferring SA-SD methodology which were answered under question six: • methodology was easy to learn, • the philosophy of this methodology is close to my way of thinking, • a clear model is quickly reached and • the methodology is simple and efficient. The JSD methodology was negatively appreciated (answers to question seven). The arguments are as follows: • it is difficult to learn, • analysis from the entity/action aspect is difficult to understand and • implementation is not simple. The presented seminar works also showed worse understanding of the JSD methodology. Where usually had the tested people problems? In the first "entity action step" they were in doubt about boundary of the modelled system. They enumerated actions easier as they decided about entities. The second problem, which appeared, was the understanding what the entity is? They usually forgot that actions must appear on the entity what is not the same as the entity in the E-R (Entity-Relationship) diagram. In the second "entity structure step" tested person had problems to understand that each structure in Jackson's diagram has only two levels. The first level is the structure's name and the second level form the parts of this structure, while in the Structure Chart each box represents a program module. In the "initial model step" - step three seems difficult to understand what really a process marked by zero and process marked by one means. In the beginning, it was not very clear to the students why the same object is treated as structure of entity in step two and as process in step three. This was the most repeated question which tested persons had during the working their seminar work. When the first steps were understood the remaining three did not cause greater problems. We are surprised that the function of scheduler (implementation step) is quickly understandable, what means that testes had enough knowledge about concurrent programming. The essence of Jackson's pseudo cod is well accepted, too. The answers to the eighth question are shown in a graphical form as a average values of collected" points of semantical differential. The result's are surprising. Despite of the negative attitude towards the usage of JSD methodology, both methodologies are relatively equally assessed; figure 3. Cumulation of points for question "E" is greater for JSD as for SA-SD. This means that young engineers decided correctly, accepted the essence of both methodologies, and assessed that JSD is moré appropriate for completion of end product than SA-SD. »era^e 2.6 - 2.4 z.z 2 1.9 1.6 14 1.2 1 0sasd □jsd - 1 i j i k Figure 3. Presentation of the answers to the eight question 3 Conclusion It should be stressed that it is not our intention to compare all aspects of both methodologies used in the experiment but only to present that the learning aspect of a methodology is an important criterion which has to be taken into account in the process of selecting a CASE tool. To ćissess this criterion we suggest the usage of a questionnaire like this one, presented in our paper. We are aware of the fact that such exhaustive investigation the problem of the un-derstandability the methodology, as it is presented in the paper, is too time consuming. But however, some problems such £is: types of problems which are usually solved by the group, previous skill of group about modelling real world and programming, familiarity with software engineering methodologies, satisfaction with proposed methodology, should be answered by the questionnaire. The most time needed for questionnaire can be saved with reducing problems with which person are tested. In our experiment we intentionally have not used any CASE tool because we were observing only methodologies themselves. The usage of any tool would make our picture about methodology learning unclear. We have not evaluate the influence of the tool's teaching component. This is a very difficult task which demands additional investigation and it is valid for a particular tool only. The results obtained speak in favour of the SA-SD methodology because it is more understandable to the group of engineers who represent, in our case, the potential user of selected CASE tools. Perhaps, we are wondering, why SA-SD is better assessed than JSD? Our opinion that we obtained such result is, that in engineering curriculums people have gotten much more skills about programming with procedural languages than programming with object-oriented languages. So, we can legitimately expect that those CASE tools which support data flow oriented methodology (like SA-SD) need a shorter training period for people with engineering education than those CASE tools which support other methodologies. If we want to select a CASE tool for another group of users which have got more knowledge and skills in object-oriented programing it is possible that we achieve another fully opposite conclusion about the methodology supported. References [1] T. DeMarco Structured Analysis and System specification, Prentice-Hall, 1979 [2] R. J. Norman, R. V. Ghent. (Editor), CASE'90, Four Internal Workshop on Computer-aided Software Engineering, Irvine, CA (December, 1990). [3] B. Henderson-Sellers, J. M. Edwards, The Object - Oriented Systems Life Cycle, Communication of the ACM, vol. 33, no. 9, Sept. 1990, pp. 143-159 [4] M.A. Jackson, System Development, Prentice-Hall, 1983 [5] E. Yourdon, L.L. Constantine, Structured Design: Fundamentals of a Discipline of Computer Program and System Design, Prentice-Hall, 1979 [6] L.Zucconi, Selecting a CASE Tool, ACM SI-GSOFT, vol. 14, no. 2 Apr 1989, pp. 42-44 O PRESLIKAVI HADFG NA TAS INFORMATICA 3/92 Keywords: tree, network, allocation, network construction Peter Zaveršek*, Peter Kolbezen** * VELCOM d.o.o., Foitova 8, Velenje Institut Jožef Stefan, Jamova 39, Ljubljana POVZETEK. Delo obravnava preslikavo algoritma, ki je določen s hierarhičnim acikličnim grafom pretoka podatkov (HADFG), na drevesno avtomatno strukturo (TAS). Predlagani postopek preslikave upošteva prostorsko optimizacijo avtomata. Podana je primerjalna analiza med avtomatom z drevesno in avtomatom s toroidno strukturo. Na osnovi te analize so pokazane dobre in slabe strani obeh struktur avtomata. ALLOCATION OF HADF GRAPHS ONTO A TREE STRUCTURE. Hierarchical acyclic data flow graph (HADFG) tree-shaping form encouraged us in investigating a possibility of their allocation onto a tree-like automat structure (TAS). Various approaches can be used in order to obtain an appropriate structure. The paper proposes an analytical space-optimizing approach towards the network construction. Further, execution results on such a network are compared to the ones obtained by a torus-like network and the behaviour of each of them is discussed. 1. Uvod V delih [1, 2] je opisan večprocesorski sistem za učinkovito izvajanje hierarhičnih acikličnih grafov pretoka podatkov (HADFG). Sistem ima toroidno avtomatno strukturo. Preslikava HADFG na takšno strukturo je posredna. Mehanizem posredne preslikave s svojimi neželenimi vplivi podaljšuje čai izvajanja HADF grafov, ker zahteva zase del procesorskih zmogljivosti. Tako si lahko upravičeno zastavimo vprašanje uspešnosti neposredne preslikave HADFG na • avtomatno strukturo. Postopek preslikave, če naj bo uspešen, mora v povezavi z avtomatno strukturo čim manj obremenjevati procesorje. Preslikava naj bo zato neposredna, procesorji v strukturi pa statično povezani. Zaželena je avtomatna struktura, ki se povsem ujema s programskim grafom v času izvajanja grafa. Procesorji v dinamično rekonfigurabilnem polju, kot npr. [3] ali sistemi ParsyTec-a [6], bi poleg kompleksnej.še strojne opreme zahtevali dodatne procesorske zmogljivosti za povezovanje v času izvajanja. Omenjene sisteme bi lahko uporabili kot osnovo statičnim sistemom, če bi procesorje v njih ustrezno povezali pred začetkom izvajanja programskih grafov. Procesorji v statični strukturi, ki jo zahtevamo, bodo predvidoma manj izkoriščena kot tisti v toroidnem sistemu, ker se statična struktura ne more prilagajati trenutnim razmeram v sistemu (zasedenost, razpoložljivost procesorjev). S transformacijo DFG v HADFG dobimo drevesni program- ski graf s korenom zgoraj, in vejami, ki se širijo od korena navzdol [1]. Kot je splošno znano, razlikujemo pri drevesnih grafih več tipov vozlišč. Koren grafa je vozlišče, ki nima predhodnika, in ima enega ali več naslednikov. Razvejišče je vozlišče, ki ima enega predhodnika in enega ali več naslednikov. Vozlišče grafa, ki ima le predhodnika in nima nobenega naslednika, imenujemo list grafa. Če poskušamo takšen graf čimbolj neposredno preslikati v avtomat, lahko sklepamo da bo imela tudi avtomatna struktura drevesno obliko. To nas je vzpodbudilo k primerjalni raziskavi drevesne avtomatne stuk-ture in že v delih [1, 2, 4] obravnavane toroidne strukture. Pričakujemo, da bo neposredna preslikava na drevesno avtomatno strukturo (TAS) ponudila boljše rezultate glede na čas izvajanja vsaj za neko družino HADF grafov. Družino HADFG, ki se bo uspešneje izvajala, želimo tudi identificirati. Zato poskušamo v tem delu odgovoriti, ali je za izvajanje alogritmov, ki so predstavljeni v obliki HADF grafov, učinkovitejši toroidni sistem ali TAS. 2. Drevo in torus Predlagana toroidna struktura v delih [1, 2] je sestavljene. iz množice prepletenih zank (prstanov) trans-puterjev. Vsak transputer v avtomatni strukturi je fizično vezan na štiri sosede. Komunikacija med njimi je krožna po zankah, ki sestavljajo torus, in poteka eno- smerno. Vsak procesor ima zato le dva logična soseda. Komunikacijske zanke ponujajo možnosti dvostranskih prenosov, ki jih izkoriščamo tako, da znotraj ene fizične zanke vzpostavimo dve logični komunikacijski zanki. Medtem, ko se po eni prena.šajo podatki, ima druga funkcijo prenosa krmilnih sporočil in ukazov. Zasnova sistema podpira dinamično, "run-time" razporejanje procesov glede na proste vire v polju. Izbrana arhitektura, podprta s preprostimi mehanizmi optimizacije razporejanja, omogoča skupaj z uporabljeno arhitekturo sorazmerno učinkovito preslikavo programskega grafa na statično povezano polje procesorjev. Vsi procesorji v toroidnem polju imajo enako število sosedov, zato so si enakovredni ne glede na položaj v vezju. Ker imajo vsi procesorji logične naslednike, se polje navidezno nikjer ne zaključi. Izvajanje programskih algoritmov, ki so predstavljeni v obliki HADFG, je, zahvaljujoč virtualni razširljivosti toroidnega polja, učinkovito in uspešno tako pri manjšem, kot pri večjem številu procesorjev. Drevesna struktura za razliko od toroidne ni virtualno razširljiva. Terminalni procesorji (listi drevesne avtomatne strukture) nimajo naslednikov. Širjenje HADF grafa po takšnem polju se zaustavi na terminalnih procesorjih, kjer se struktura zaključi. Zato drevo ne ponuja vsem procesorjem enakovrednega položaja v strukturi. Učinkovita preslikava HADF grafa na drevesno strukturo zahteva ustrezno razvejanost in globino strukture. Drevo torej ni tako prilagodljivo, kot je torus. Če želimo izvajati programski graf na statično povezani drevesni avtomatni strukturi, moramo ustrezno strukturo praviloma zasnovati vnaprej. Struktura je lahko predvidena ali za vsak HADF graf posebej ali za neko natančno določeno družino HADF grafov. 3. Določitev drevesne strukture Učinkovito izvajanje algoritma, ki ga predstavlja določen HADF graf, zahteva ustrezno drevesno av-tomatno strukturo. Razsežnost avtomata mora biti vsaj takšna, kot je razsežnost preslikave grafa. Globina avtomatne strukture mora biti vsaj enaka številu paralelnih nivojev HADF grafa, medtem ko mora širina na opazovanem delu ustrezati številu paralelnih vej v vozliščih grafa, ki se bodo preslikala na to avtomatno vozlišče. Zahtevamo, da je avtomatna struktura splošna. Ustrezati mora vsakemu HADF grafu dane oblike in mora zagotavljati neomejeno širjenje procesorskih aktivnosti v njej, neodvisno od časov izvajanja posameznih procesov. Posledica pogoja takšne časovne neodvisnosti je, daje tudi rezultat optimizacije skromnejši. Primer optimiranja avtomatne strukture je npr. sekvenčno izvajanje dveh kratkih paralelnih procesov ob tretjem zelo dolgem, s čemer lahko prihranimo kakšen procesor. V nadaljevanju bomo nakazali možne poti, ki nas pripeljejo do ustreznega avtomata. 'I ÖAÖ / I /, \ / I \ I \ Slika 1: Izhodiščni HADF graf 3.1 Prekrivanje HADF graf natančno predpisuje način izvajanja posameznih vej v skladu s tipom veje (paralelna, sekvenčna). Možnost, ki se sama ponuja, je neposredna preslikava grafa v avtomatno strukturo. Glede na tip veje lahko zaključimo naslednje: • Paralelne veje: Vse paralelne veje, ki izhajajo iz istega (paralelnega) vozlišča, se izvajajo sočasno. Izvajanje ostalih paralelnih vej grafa glede na opazovano vejo je določeno z njihovo lego v grafu. Zaželeno je, da se paralelne veje znotraj enega paralelnega vozlišča, kot tudi vse njim paralelne veje drugod po grafu, izvajajo sočasno. Zajeti želimo ves ponujeni paralelizem in tako doseči največjo stopnjo paralelnosti izvajanja. S tem bo tudi hitrost izvajanja največja. Med izvajanjem moramo imeti vsak trenutek na razpolago zadostno število procesorjev, odgovarjajoče številu procesov, ki jih je v danem trenutku možno izvajati sočasno. Procesorji morajo biti medsebojno povezani tako, kot zahteva HADF graf, saj v nasprotnem primeru preslikava procesov nanje ne bi bila možna. • Sekvenčne veje: Sekvenčne veje se izvajajo druga za drugo. Pravimo, da so si tuje. Pri izvajanju izrabljajo isti del avtomatne strukture. Kaskado večih zaporednih sekvenčnih procesov lahko obravnavamo kot en sam proces. Vse procese, ki sestavljajo kaskado, preslikamo na isti procesor. Podobno obravnavamo podgrafe, ki si sledijo drug za drugim. Tudi te preslikamo na isti del avtomatne strukture. Zavedati se moramo pomembne razlike med procesi in pod-grafi. Posamezni procesi zasedejo le en procesor, medtem ko je razsežnost in oblika zahtevanega avtomatnega polja za podgraf določena s pripadajočo globino in širino podgrafa. Potrebno globino podavtomata določa število paralelnih nivojev najglobjega podgrafa. Število procesorjev na posameznem nivoju je enako številu paralelnih vej tistega peralelnega vozlišča nivoja, ki ima največje število vej. Gornje ugotovitve strnimo v preprost postopek, poimenovan prekrivanje. Z njim je že mogoče določiti avtomat. Postopek prekrivanja na primeru grafa iz slike 1 prikazuje slika 2 in poteka takole : 1. postopek pričnemo izvajati na podgrafu, ki je določen s skrajnimi levimi sekvenčnimi vejami podgrafa (slika 2-1). 2. Preslikamo vozlišča v procesorje po naslednjem pravilu: • sekvenčna vejišča se preslikajo v procesorje, povezave med procesorji pa določajo paralelne povezave grafa • procesi (listi HADFG drevesa) se preslikajo v procesorje • če v avtomatni struktruri na mestu, kjer bi moral biti procesor slednjega še ni, ga dodamo (temnejši proce.sorji na sliki 2) • če ima avtomatna struktura več procesorjev, kot je potrebno, jih ne odvzemamo 3. Izberemo naslednjo sekvenčno vejo na najnižjem sekvenčnem nivoju (naslednji podgraf) in nadaljujemo od točke 2 dalje, dokler ni obdelan celoten graf (slike 2 II-IV). Metoda prekrivanja avtomatne strukture z ustreznimi deli grafa, nam omogoča enostavno konstruiranje avtomatne strukture. Tako pridobljena avtomatna struktura popolnoma ustreza danemu grafu, vendar je v splošnem predimenzionirana. Ugotovimo lahko, da je možno graf ustrezno preoblikovati in realizirati funkcionalno enakovredno strukturo z manjšim številom procesnih elementov. 3.2 Urejeno prekrivanje HADF graf ima v splošnem nesimetrično obliko. Nesimetričnost se odraža v različnih globinah podgrafov istega nivoja, in v različnem številu vej, ki izhajajo iz posameznih paralelnih, vozlišč grafa. Vrstni red posameznih vej znotraj paralelnega vozlišča je funkcionalno nepomemben, saj se vse veje istega vozlišča izvajajo sočasno. Ta lastnost nam daje možnost, da veje med seboj kombinatorično permutiramo tako, da dosežemo kar najboljše prekrivanje nastajajoče drevesne avtomatne strukture z obravnavanim grafom. Originalni HADF najprej graf ustrezno preoblikujemo, nakar sestavimo avtomat z zgoraj opisanim prekrivanjem. Uspešnost postopka se kaže v prostorski optimizaciji ATS in je neposredno odvisna od preoblikovanja grafa. Iterativne metode (npr. simulirano ohlajanje) bi lahko bile zelo uspešne, vendar potrebujejo za svoje izvajanje več časa. Analitični pristop je hitrejši in zaradi drevesne strukture enostavno izvedljiv, zato smo ga uporabili tudi mi. Prvi korak do optimizacije je torej ureditev HADF grafa. Graf uredimo tako, da znotraj vseh paralelnih vozlišč razvrstimo skrajno levo najglobje in skrajno desno najplitvejše veje. V primeru enake globine Slika 2: Postopek prekrivanja dveh vej ima prednost tista, ki ima večje število procesov na najnižjem nivoju. Opisani postopek prevede drevo iz neurejene v urejeno strukturo, kar lahko shematično prikažemo na sliki 3. 3.2.1 Algoritem iirejenega prekrivanja Algoritem deluje na principu utežitve vozlišč HADF grafa. Uteži, ki jih pripišemo vozliščem, so le računski pripomočki in nimajo nobene povezave s časovnimi utežmi grafa. Primerna utežitev nam olajša postopek urejanja grafa. Predpostavke za HADF graf: • začetno vozlišče HADF grafa je sekvenčno vozlišče, ki predstavlja ničti nivo v grafu (/ = 0). V nasprotnem primeru govorimo o večih grafih, ki se lahko izvajajo paralelno. Neurejena struktura Urejena struktura Slika 3; Struktura grafa • na koncih vej, ki izhajajo iz korenskega vozlišča, se nahajajo procesi ali paralelna vejišča. To je prvi nivo v grafu (/ = 1). • ko se spuščamo po grafu navzdol, se izmenjujejo sekvenčni in paralelni nivoji. Nivo v grafu se poveča z vsakim naslednjim vozliščem za ena {li+i = li + 1). Utežitev listov in vozlišč grafa ter urejanje Prvi, prioritetni kriterij pri urejanju grafa je globina. Širina predstavlja drugi kriterij. Utežitev vej mora zagotoviti globjim vejam večjo težo ne glede na širino primerjanih plitvejših vej. Uteži moramo izbirati tako, da ima utež na najnižjem nivoju večjo težo, kot je vsota vseh ostalih uteži na višjih nivojih. n-l 9n > Y1 1=0 Predno začnemo uteževati posamezne liste, moramo določiti težo uteži za liste HADF grafa po posameznih nivojih. Največje število paralelnih vej N, ki izhajajo iz katerega koli paralelnega vozlišča v grafu, je v skladu z gornjo zahtevo in mora biti znano. Enakovredno bi ustrezalo tudi poznavanje največjega števila paralelnih vej po posameznih paralelnih nivojih, vendar zaradi poenostavitve postopka gledamo na HADF graf kot celoto. Uteži določamo po naslednjem pravilu: Utež 90 {I = 0) 90 • • • izberemo: go = O Utež qi (/ = 1) q\ ... izberemo: = 1 Utež 92 C = 2) n > 90 92 > ^ 9i = A^ • 9i = -(V Najmanjša možna razlika za 92 > A' • ■ ■ 92 = /V -f 1 Utež 93 (/ = 3) N 93 = N-q-i = N{N-\-\) = N- + N = ^^ _ ^^ -1 1 = 1 93 = 92 utež qk (/ = k) = 92 -f 1 = N^ + iV + 1 = N - 1 /V qk > 9*^-1 = •'V • qk-i = i = l = + N''-^ + . . . + at + 1) = + N'"- + --- + N- + N = Af* - 1 N - 1 - 1 9t = 92 + 1 = N"-' -I- + jW^- + N + l = - 1 N - 1 Pripisovanje uteži procesom HADF grafa Ko so uteži določene, utežimo z njimi liste grafa (procese) v skladu z njihovo lego v grafu. Paralelne in sekvenčne procese obravnavamo po ločenih kriterijih. 1=1 , f ,, , d^ (i) G) © (D (u) ^ è ^ Slika 4: Urejen HADF graf Paralelni procesi • obsegajo liste grafa na nivojih / = 2ib ;/k = 1,2,... • iz posameznega vejišča izhaja največ N takšnih procesov . utež 9„ = = ^^^ = Sekvenčni procesi • obsegajo liste grafa na nivojih /= 2^-- 1 ;ifc = 1,2, ... • število vej iz posameznega vejišča ni omejeno • utež qr, = = Pripisovanje uteži razvejiščem grafa Paralelna razvejišča (I = 2k — 1) Paralelnemu razvejišča pripišemo vsoto uteži vseh vej, ki iz njega izhajajo: m„t,n n, saj je pri nižjih vrednostih indeksa zanesljivo izpolnjen. Ce je pogoj izpolnjen, poteka razvrščanje opravil po principu prednosti časovno kritičnih opravil. Slika 1: Časovne lastnosti in urejenost opravil Prednost pri dostopu do procesorja ima opravilo, ki je časovno najljolj omejeno. V nasprotnem primeru pa se vključi mehanizem za "izločanje„ manj pomembnih opravil. Recimo, da pogoj ni izpolnjen pri vrednosti indeksa k = j, n < j < m. Potem razvrščevalnik izloči iz vrste opravilo, katerega stopnja pomembnosti je najmanjša v podmnožici prebujenih opravil {ri,r2, ...Tj} ter ponovno preveri pogoj pri vrednosti indeksa k > j. Biyabani in Stankovic [11] sta dokazala, da je princip izločanja najmanj pomembnih opravil najbolj učinkovit. Druga možnost je izločanje opravil, katerih časovna prioriteta je najmanjša in hkrati stopnja pomembnosti ne preseže stopnje pomembnosti opravila r^. V primerjavi s prvo možnostjo, ki smo jo označili kot najbolj učinkovito, je slednja časovno manj potratna. Postopek izločanja opravil se ponavlja, dokler pogoju (1) ni zadoščeno. Ker so predvideni časi izvajanja opravil določeni za „najslabši" (najdaljši) primer, razvrščevalnik dejansko ne izloči opravil iz vrste prebujenih opravil, temveč jih prestavi na konec vrste in obvesti sistem o predvideni zakasnitvi odziva na dogodke, ki so sprožili zahteve za izvajanje teh opravil. Sistem lahko zahteva dejansko izločitev teh opravil iz vrste pripravljenih opravil. Če je dejanski čas izvajanja opravila krajši od predvidenega, razvrščevalnik ponovno preveri pogoj (1) po zaključenem izvajanju opravila. Če je pogoju ( 1 ) zadoščeno, je zagotovljeno idealno razvrščanje opravil, četudi je procesor 100 % zaseden: Tom Tom (2) saj je časovna meja Td^ zmeraj manjša od časa i in velja: lim 1-- m^co Td„ = 1. (3) 2.1 Mehanizem za zaščito skupnih virov Pri opisu zahtev smo omenili, da monitor, kot mehanizem za zaščito skupnih virov, ne zagotavlja pravočasnega izvajanja namenskih aplikacij v realnem času, ker ne dopušča prekinjanja izvajanja opravil v kritičnih področjih [12], Izogniti se moramo tudi težavam, ki nastopijo ob blokiranju (časovno in logično) pomembnih opravil, zaradi zasedenosti kritičnih področij z manj pomembnimi opravili: • verižno blokiranje {chained blocking) izvajanja opravil, • problem mrtve zanke {deadlock). Opravilo je blokirano, kadar čaka na nadaljevanje izvajanja operacij zaradi zasedenosti zahtevanega vira z manj pomembnim opravilom. Težave nastopijo, ko opravilo zahteva vstop v več kritičnih področij, ki so zasedene z manj pomembnimi opravili (verižno blokiranje). Kot primer podajmo situacijo, ko opravilo tc vstopi v kritično področje. Opravilo Tß, ki je bolj pomembno, prekine izvajanje opravila tq ter vstopi v drugo kritično področje. Opravilo ta, ki je še bolj pomembno, prekine izvajanje opravila tb- Ce zahteva opravilo r^ vstop v obe kritični področji, se njegovo izvajanje blokira, ker sta področji zasedeni z opravili tq in rg. Problemu mrtve zanke pri potegovanju za skupni vir se lahko izognemo z uporabo semaforjev [9]. Mrtva zanka pa se lahko pojavi tudi po vstopu opravil v kritična področja, ko opravila navzkrižno zahtevajo dostop do skupnih virov, ki so že zasedeni. Princip monitorja temelji na uporabi semaforjev za zaščito kritičnih področij in signalov za sporazumevanje z opravili, ki zahtevajo uporabo skupnih virov [9]. Princip razširimo z dodatnim mehanizmom, ki omogoča varno prekinjanje izvajanja opravil v kritičnih področjih [12]. Poleg osnovnih lastnosti opravil, ki jih mora določiti programer pred zagonom aplikacije, zahteva mehanizem seznam semaforjev, katere mora opravilo upoštevati pred vstopom v kritična področja. Vsakemu kritičnemu področju določimo prioriteto, ki se med izvajanjem aplikacije dinamično spreminja. Prioriteta kritičnega področja je enaka najvišji prioriteti prebujenega opravila, ki lahko zahteva vstop v to kritično področje. Mehanizem za varno prekinjanje izvajanja opravil v kritičnih področjih razdelimo v dva dela. Prvi del omogoča dinamično določanje prioritet opravil v kritičnih področjih. Opravilo, ki ima trenutno dostop do skupnega vira, lahko blokira izvajanje višje prioritetnih opravil. V takšnem primeru prevzame opravilo v kritičnem področju najvišjo prioriteto blokiranih opravil. Ko izstopi iz kritičnega področja, dobi ponovno "originalno„ prioriteto. Drugi del upravlja s kritičnimi področji. Opravilo, ki zahteva ključ za vstop v kritično področje, mora ustrezati pogoju, da je njegova prioriteta višja od vseh prioritet trenutno zasedenih kritičnih področij. Sicer razvrščevalnik blokira izvajanje opravila in čaka na vstop v zasedeno področje. Opišimo dva možna načina blokiranja opravil, ki zahtevajo dostop do skupnih virov: 1. Opravilo T zahteva ključ za vstop v kritično področje 5, vendar ga ne dobi; ker je njegova prioriteta nižja ali enaka najvišji prioriteti zasedenih področij, S'h- Opravilo r je blokirano, dokler se področje S'h ne sprosti, opravilo v Sh pa prevzame prioriteto opravila r, če je njegova prioriteta nižja. 2. Opravilo r je blokirano, ker zahteva vstop v področje S in ima prioriteto nižjo ali enako najvišji prioriteti zasedenih področij, Sh- Če je opravilo v področju Sh že prevzelo višjo prioriteto od predhodnje blokiranega opravila, potem ostane njegova prioriteta nespremenjena. Dokaz, da mehanizem onemogoča verižno blokiranje izvajanja opravil, temelji na sledečih lemah [12]. LEMA 1: Če opravilo t blokira izvajanje višje prioritetnega opravila Th, potem r zaseda vsaj eno kritično področje S s prioriteto višjo ali enako prioriteti Vk v času prihoda opravila Vh (t). Dokaz: Predpostavimo, da je najvišja prioriteta kritičnih področij, ki jih zaseda r v času t, prioriteta področja Sh- Če je ta prioriteta nižja od prioritete opravila r^, potem lahko opravilo r prevzame le prioriteto, nižjo od prioritete opravila Th.. Drugače rečeno, dokler je opravilo t^ aktivno (prebujeno), opravilo T ne bo razvrščeno tako, da bi blokiralo r^. Torej obstaja vsaj eno področje, ki ga zaseda r, s prioriteto večjo ali enako prioriteti r/j, v času t A. LEMA 2: V vsakem trenutku t obstaja največ eno kritično področje s prioriteto višjo ali enako P, ki ga zaseda opravilo z „originalno" prioriteto nižjo od P. Dokaz: Predpostavimo, da lema ne velja. V času t sta področji 5,- in S j zasedeni in imata obe prioriteto višjo ali enako P. Dodatno predpostavimo, da je najprej opravilo Tp zasedlo področje Si v času tp in nato opravilo r, področje S j v času tg. Prioriteti opravil Tp in r, sta nižji od P. Upoštevajoč princip našega mehanizma mora biti prioriteta opravila r, višja od prioritete kateregakoli zasedenega področja v času tg. Ker pa zahtevamo, da je prioriteta opravila Tg zmeraj nižja od P in prioriteta področja Si višja ali enaka P, pridemo v nasprotje S pomočjo lem smo dokazali, da lahko opravilo t blokirajo le opravila z nižjimi prioritetami, ki zasedajo področja, katerih prioritete so višje ali enake prioriteti opravila r (LEMA 1). V času prihoda opravila t je zasedeno največ eno kritično področje s prioriteto višjo od prioritete r, ki ga zaseda opravilo z nižjo prioriteto (LEMA 2). Tako smo dokazali, da lahko opravilo r blokira največ eno opravilo z nižjo prioriteto in pogoj za verižno blokiranje nikoli ni izpolnjen. Pri izboru mehanizma za varno prekinjanje izvajanja opravil v kritičnih področjih, smo se želeli izogniti tudi mrtvim zankam. Pogoj za mrtvo zanko je navzkrižno čakanje opravil, ki zasedajo kritična področja, medtem ko čakajo na semaforje področij, ki jih zasedajo ostala opravila, sodelujoča v zanki. Predpostavimo, da obstaja mrtva zanka in ima opravilo r najvišjo prioriteto med opravili v zanki. r zaseda področje medtem, ko čaka na semafor področja, ki je zasedeno z drugim (nižje prioritetnim) opravilom iz zanke. Dokažemo pa lahko, da opravilo, ki zaseda področje, ne more biti blokirano z nobenim nižje prioritetnim opravilom [12] (LEMA 3). Tako pogoj za pojavitev mrtve zanke ne more biti izpolnjen. LEMA 3: Opravilo je lahko blokirano le pred vstopom v prvo kritično področje. Dokaz: Ko opravilo r vstopi v prvo kritično področje v času t, ima. najvi.šjo prioriteto med prebujenimi opravili. Ostala zasedena področja, ki jih zasedajo nižje prioritetna opravila v času t, označimo z množico 5'. Prioriteta opravila r je zagotovo višja od prioritet področij iz S. Predpostavimo, da bo izvajanje opravila r blokirano v času ti, ti > t, ko se bo začelo izvajati opravilo z nižjo prioriteto ti. Opravilo r/ bo začasno prevzelo prioriteto od opravila r. Upoštevajoč princip mehanizma lahko opravilo r/ zaklene področje S k, če je prioriteta opravila r nižja ali enaka prioriteti 5fc. Ker nobeno opravilo ni bilo razvrščeno v času med t in ži, je množica zasedenih področij v času il enaka S in Sk € S. Tako pridemo v nasprotje, saj nobeno področje iz S nima prioritete višje ali enake od prioritete opravila r Razvrščevalnik mora preveriti pred vstopom opravila v kritično področje, ali je njegova prioriteta višja od najvišje prioritete zasedenih področij. Ker pa smo v zgornji lemi dokazali, da je opravilo lahko blokirano le pred vstopom v prvo kritično področje, moramo preveriti pogoj le pred vstopom v prvo področje. Nadaljne zahteve za dostop do skupnih virov izvaja razvrščevalnik brez preverjanja pogoja, ali je prioriteta opravila višja od najvišje prioritete zasedenih področij. Predstavljeni mehanizem za zaščito skupnih virov opravil vpliva na potek izvajanja opravil. Blokiranje izvajanja opravil zaradi zasedenosti kritičnih področij vpliva na odzivni čas, kar moramo upoštevati pri preverjanju pogoja o idealni razvrstitvi prebujenih opravil. V pogoj (1) vpeljemo dodatni parameter Bk'. (TD,-{J2Tc, + Bki]>t, l 1. i=I Vrednost indeksa 2 označuje lastnosti opravila T3 in 1 lastnosti T2. Opravilo r3 ima nižjo prioriteto, zato njegovega izvajanja ne more blokirati T2 (Bi — 0). V času t = 3 se pojavi nova zahteva za izvajanje opravila n. RQ = [ri,r2,r3], ?X,ri) = 1, = 2 in p{t3) = 3, c(5i) = €(82) = Pir-i) = 1 in 0(53) = p(r2) = 2. Pogoju (4) ni zadoščeno pri vrednosti indeksa k = 3: Td, - (TC, + Bi) = 6-(2+ 0.5) >3, Td, - {Y.Tc, + 52) = 7 - (2.+ 1 + 0.5) > 3, i = \ Tabela 1: Lastnosti treh aperiodičnih opravil kjer parameter Ta predstavlja čas prihoda zahteve za izvajanje opravila, Tc preostali izvajalni čas opravila in To trenutek, do katerega se mora opravilo zagotovo izvršiti, sicer je zavrnjeno. Razvrščevalnik ureja prebujena opravila v vrsti pripravljenih opravil RQ po PD principu. V času / = O, ob prihodu zahteve za izvajanje opravila rj,' je vsebina vrste RQ = [ra]. Opravilo se takoj prične izvajati, saj je procesor prost. Ob prihodu nove zahteve za izvajanje opravila T2, v času f = 1, vsebuje vrsta RQ = [r2,r3], tako da ima opravilo T2 prioriteto p{t2) = 1 in p(r3) = 2. Opravilo p{t2) ima višjo prioriteto od ^(rs), ker je časovno bolj omejeno. Prioritete kritičnih področij, v katera imata opravili vstop med izvajanjem, so sledeče: c{Si) = 0(53) = p{t2) = 1 in CÌS2) = P{T3) — 2. Pogoj (4) preverimo najprej za prvo opravilo v vrsti RQ {T2): TD, - (TC, + 5i) = 7 - (2.5 -f 0.5) > 1, Td, - Tc, -f 53) = 8 - (2 + 1 -f 2.5 -f 0) < 3, t=i zato je potrebno izločanje manj kritičnih opravil iz nabora prebujenih opravil {ri,r2,r3}. Vrednost indeksa i = 1 označuje parametre opravila ri, i = 2 opravila T2 in i = 3 opravila T3. Bi = 0.5, ker lahko izvajanje opravila rj blokira T2 v 5i za 0.5 časovne enote. B2 = 0.5, ker lahko izvajanje opravila T2 blokira T3 v ^3 za 0.5 časovne enote. Slika 2 natančno prikazuje potek izvajanja opravil. V času t = 1 prekine T2 izvajanje opravila T3. Ker se nahaja T3 v kritičnem področju S2 in T2 ne zahteva dostop do skupnega področja, se izvajanje Ts V S2 nadaljuje. Ko zahteva opravilo T2 v času t = 1.5 ključ za vstop v 53, ga dobi, ker ni zasedeno nobeno področje. Opravilo T2 se ob prihodu zahteve za izvajanje Ti nahaja v področju Si. Ker je c(5i) = p(ti) in p(ri) > p(t2), blokira opravilo T2 izvajanje ti in prevzame do izstopa iz ,S'i prioriteto 1. pri čemer sta To^ in Tc^ časovna parametra opravila T2. Najdaljši možni čas blokiranja opravila T2 42 |5il N I \ Taì TDÌ . , IS3I 1 S: 1 , , n ' 7"2 TA, T. i i S2 1 . 1 7-3 TA, 0 .1 .2 3 .4 .5 ,6 7 .8 tirne ces). Prav tako so določeni tudi strežni in čakalni časi opravil z eksponentno porazdelitvijo. Hitrost prihoda zahtev je podana s parametrom A, srednja vrednost dolžine strežnih časov z /j ter čakalnih časov z 7. Opravilo zapusti sistem, ko opravi vse zahtevane operacije. Verjetnost, da je opravilo prekinjeno in se mora vrniti v čakalno vrsto pripravljenih opravil je določena s parametrom (1-a). Slika 2: Primer PD razvrščanja 3. Primerjava PD principa z dinamičnimi principi razvrščanja Osnovo PD principa razvrščanja predstavljata princip prednosti časovno kritičnih opravil (ED) in princip kritičnih opravil [Priority Scheduling -PS). Slednji dodeli prednost pri dostopu do procesorja opravilu, ki ima tisti trenutek najvišjo stopnjo pomembnosti v vrsti pripravljenih opravil. Stopnjo pomembnosti določi programer subjektivno in se le ta med izvajanjem aplikacije ne spreminja [1]. Pri snovanju PD principa razvrščanja smo težili k odpravi pomankljivosti ED in PS pristopov. Seveda pa smo želeli ohraniti tudi vse dobre lastnosti. V nadaljevanju bomo podali primerjalno analizo, ki je sestavljena iz dveh delov, matematičnega in simulacijskega. Matematični model je zahtevnejši za izpeljavo, vendar podaja zanesljive rezultate, ki temeljijo na primerjavi lastnosti posameznih principov pod enakimi pogoji. S pomočjo simulacije pa lahko preverimo rezultate matematične analize brez upoštevanja predpostavk, katere običajno uvedemo zaradi lažje izpeljave zahtevnega matematičnega modela. <1 -C) Slika 3: Sistem z vrsto Izhodni parametri našega matematičnega modela so naslednji: 1. Izkoriščenost procesorja. 2. Verjetnost zavrnitve opravil. 3. Lastnosti zavrnjenih opravil: • Preostali strežni čas. • Preostali čakalni čas. 1. Izkoriščenost procesorja [U = p) izračunamo s pomočjo dveh podatkov, povprečnega strežnega časa E{Tc) ter povprečnega čćisa W, ki ga opravilo preživi v sistemu [1]: P = E[Tc) w ■ (5) Če upoštevamo, da so strežni in čakalni časi porazdeljeni eksponencialno: 3.1 Matematični model PD principa Namenski računalniški sistem lahko predstavimo kot matematični model iz teorije vrst (slika 3). Okolje pošilja asinhrone zahteve za izvajanje opravil, ki se kopičijo v vrsti pripravljenih opravil. Zahteve so časovno neodvisne in časi med prihodi opravil so eksponentrio porazdeljeni {Markov pro- g(x) = l(x) = (6) potem sledi izpeljava: C(i) = fx9(x) f ^l{y)dydx, Jo Jo H (t) = fgix) f ^liy)dydx, (7) Jo Jo W'{t) = Poraidelit8v preostalega ćakalnsga Ćaaa ix + 2(1-AC(0)2 ifx'g{x) f ^l(y)dyd2 Jo Jo rx'g{x)[l-H{x)]dx), (8) Jo h = w'{t\ (9) W{i) = W'{t) + W"{t). (10) W{t) je povprečni odzivni čas opravila, katerega predvideni odzivni čas je enak t. Povprečni čas opravila s poljubnim predvidenim odzivnim časom izračunamo s približkom vrednosti t s srednjo vrednostjo E{t): Eit)= f°°th{t)dt. (11) Jo 2. - 3. Podrobnejši opis analize verjetnosti zavrnitve opravil ter njihovih lastnosti smo podali v prispevku [13] ter v nalogi [1]. Zato podajmo na tem mestu le grafično primerjavo rezultatov analize dinamičnih principov razvrščanja (graf 1, 2, 3). 16 14 12 10 8 e 4 2 O Verjetnost lavrnltve (%) i : — * EDtIm O PDsim -ED — PD 1 1 i ' i i I □ 1 0 ° —-^— D O * * » a^^ '—'S -i. —r—i Ti , , , 1 i-1-1-1-1- Graf 2: Porazdelitev preostalih čakalnih časov zavrnjenih opravil 0.8 0.6 0.4 0.2 Porazdelitev preostalega strežnega Eass \ X 2 3 y Graf 3: Porazdelitev preostalih strežnih časov zavrnjenih opravil trenutku potegujeta za procesor največ dve opravili. Ker pa je procesorska izkoriščenost v strogih namenskih računalnikih nizka (največ 10 % [14]) in upoštevamo Markov proces prihoda zahtev za izvajanje opravil, rezultati analize ne odstopajo močno od dejanskih. To smo tudi potrdili s simulacijo, ki temelji na bolj realnih pogojih. 5 10 15 Procesorska izkoriščenost (%) 20 Graf 1: Verjetnost zavrnitve opravil Pri analizi matematičnega modela smo privzeli zelo močno predpostavko, da se lahko v določenem 3.2 Simulacijslci model PD principa Program, ki omogoča simulacijo principov razvrščanja opravil, smo razvili v programskem jezi- ku SimScript II.5 za PC kompatibilni računalnik. Uporabnik lahko spreminja sledeče parametre simulacij: • razvrščevalni princip, • dolžino simulacij in • časovne parametre opravil (slika 4). ^ Info B Input B flninatton B Run ^ Results J Quit j Simulation Parameters □ Scheduling Policy Itean of Interarrlual Tlnes .•1B8| Response Ti»es 2 tlean of Conputation Tlnes .16B| Sinple Round Robin fređictdble I>ynanlc ö nean ot Laxities .bsb| Hean ot Context Sultching Tine« .BBlI i PređicUble Dynanic Ungth of Ti«e Slice Hunter of Rejected T&sks rtunbcr of S Imi Ut tons C 3 i'^"" I 1 Continue 1 Slika 4: Vhodni simulacijski parametri ter spremlja rezultate: • verjetnost zavrnitve opravil pri določeni procesorski izkoriščenosti (graf 1), • lastnosti zavrnjenih opravil (graf 4), • uteženo verjetnost pravočasne izvršitve opravil (graf 5). Mero utežene verjetnosti izvršitve opravil smo izračunali s pomočjo funkcije: WGR C. = 100 E.Cc.- I {rLei I) 1 I) ' = e 1-1 (12) Množica {rj^g} vsebuje opravila s stopnjo pomembnosti i, ki so se pravočasno izvršila in {t^/J vsa prebujena opravüa z i-to stopnjo pomembnosti za aplikacijo. Nižja vrednost indeksa i pomeni višjo stopnjo pomembnosti opravila. B B Input B flnimtion J Run ^ Results B Quit | Rejected Tasks 1 - nost critical tasltJ IB - less critical tasks (e.g., 5(3BX) neans that 3Bz of .tasks uith cr 11icalness 5 ucre rejected) Graf 4: Lastnosti zavrnjenih opravil 100 99.S 99 98.S 98 97.5 97 VarlBtnost Izvršitve (*) '—- „ • i \ i\ 1 k -EPalm -PO.lm 1 J_1_ 5 10 ^ 15 Procesorska izkoriščenost (%) 20 Graf 5: .Utežena verjetnost izvršitve opravil O.T 0.6 -:-i-1-!- —r-:-1-;-:-- 0.5 r 0 b a / b i 1 0.3 1 / JJF ^ / y t - / /7 too p R 0. 1 • 1 t 1 .1. f .1. 0.20.40.60.81 :.2i.<:.51.32 ratio Graf 6: Verjetnost zavrnitve opravil 4. Zaključek Predvidljivo dinamični princip razvrščanja opravil, na katerem temelji jedro OS za delo v strogem realnem času, upošteva zahteve realnega časa. To pomeni, da obravnava zahteve za izvajanje aperio-dičnih opravil, ki so časovno in logično različno zahtevna za programsko aplikacijo. V primerjavi z ostalimi dinamičnimi principi razvrščanja opravil (graf 6 [10]) lahko povzamemo sledeče zaključke: 1. Princip PD zagotavlja pri določeni procesorski izkoriščenosti večjo verjetnost zavrnitve manj pomembnih opravil. 2. Verjetnost zavrnitve opravil z visoko stopnjo pomembnosti za aplikacijo je manjša. 3. Ker princip temelji na predvidljivosti, so lastnosti zavrnjenih opravil ugodnejše. Razvrščevalnik lahko preusmeri opravilo v drugo procesorsko vozlišče porazdeljenega ali večprocesorskega namenskega sistema, če je preostali čakalni čas še dovolj velik. Področje večprocesorskih in porazdeljenih namenskih sistemov odpira nove težave, s katerimi se je potrebno soočiti. Naše nadaljne delo bo usmerjeno v raziskavo topologij namenskih sistemov s porazdeljenimi vhodno-izhodnimi napravami, ki omogočajo hitro in zanesljivo zaznavanje zunanjih dogodkov ter komunikacijo med opravili. [6] A. Brodnik in M. Špegel in T. Lasbaher. Programiranje z modulo-2. Informatica, Ljubljana, (2):78-82, 1987. [7] E. Kligerman in À.D. Stoyenko. Real-time euclid: A language for reliable real-time systems. IEEE Transactions on Soßivare Engineering, 12(9):941-949, september 1986. [8] Real-time software. Micro Technology, december 1991. [9] J.E. Cooling. Sofiiuare Design for Real-Time Systems. Chapman and Hall, 1990. ISBN 0-412-341- • 808. [10] D.W. Craig in C.M. Woodside. The rejection rate for tasks with random arrivals, deadlines, and preemptive scheduling. IEEE Transactions on Software Engineering, 16( 10), oktober 1990. . [11] .J.A. .Stankovic. Misconceptions about real-time computing. COMPUTER, :21{i0):10-19, oktober 1988.' [12] M.I. Chen in K..J. Lin. Dynamic priority ceilings: A concurrency control protocol for real-time systems. Real-Time Systems - The international journal of time-critical computing systems, 2(4):325-345, november 1990. [13] B. Koroušić in J.E. Cooling in P. Kolbezen. Predictable hard real-time scheduling. In Proceedings of the 4"* EUROMICRO Workshop on Real-Time, junij 1992. [14] C.J. Paul in A. Acharya in B. Black in J.K. Stros-nider. Reducing problem-solving variance to improve predictability. COMMUNICATIONS OF THE ACM, pages 81-93, avgust 1991. Literatura [1] B. Koroušić. Jedro operacijskega sistema za delo v strogem realnem času (magistrska naloga). Univerza v Ljubljani, Fakulteta za elektrotehniko in računalništvo, april 1992. [2] M. Thaler. Nova tehnologija v pilotski kabini. KRILA, page 28, maj 1989. [3] L.S. McTamaney. Real-time intelligent control. IEEE Expert, 2(4):.55-68, 1987. [4] Operating systems in real time. .EXE Magazine, 4(7):72-77, 1989. [5] W.A. Halang. Evaluation of ada from the viewpoint of control engineering. IEEE, pages 8-13, 1986. SINHRONIZIRANA PODATKOVNO PRETOKOVNA RAČUNALNIŠKA ARHITEKTURA II Keywords: parallel processing, dataflow computing, scheduling, allocator, performance evaluation, parallel computer architecture Jurij Šile Laboratorij za računalniške arhitekture Inštitut Jožef Stefan, Ljubljana Ludvik Gyergyek Fakulteta za elektrotehniko in računalništvo, Ljubljana Delo obravnava problem časovne optimizacije asinhronega procesiranja na omejenem številu procesorjev. Predlagamo izvirno rešitev, ki temelji na uvedbi nekaterih mehanizmov sinhronizacije v asinhrono računanje. Graf pretoka podatkov, ki opisuje asinhrono procesiranje, opremimo s časovno optimalno sprožitveno funkcijo, ki služi tako pri vlaganju grafa v računalnik, kakor tudi pri njegovem časovno optimalnejšem izvrševanju. V ta namen smo razvili hevristična algoritma pOptSinh in TOptSinh za konstrukcijo optimalnih sprožitvenih funkcij, ki po pesimistični oceni vračata optimalno rešitev v 80% primerov. Nadalje predlagamo algoritma za dodeljevanje MinGlDol in MinGlGor, ki temeljita na optimizaciji medprocesorskih komunikacij. V primerjavi z znanimi razvrščevalnimi algoritmi dobimo s predlaganima algoritmoma boljše rezultate, kar potrjujejo analizirani primeri algoritmov za izračun hitre Fourierjeve transformacije, dinamične analize scene in LU rjizcepa matrike. Končno podajamo tudi zasnovo hibridne vzporedne arhitekture računalnika, ki podpira predlagano preoblikovanje asinhronega računanja. SYNCHRONOUS DATAFLOW COMPUTER ARCHITECTURE - We discuss the problem of time optimization of asynchronous processing on a limited number of processors. We present an original solution to the problem based on introduction of synchronization inechanisms into asynchronous processing. The dataflow graph describing asynchronous processing is associated with the corresponding time-optimal firing function. This function is used both for loading a dataflow graph into the computer and for time-optimal graph execution. In order to do this, we have developed two heuristic algorithms, pOptSinh and TOptSinh, which are used for optimal firing function construction. According to conservative estimates, these algorithms return optimal functions with 80% probability. Furthermore, we propose two scheduling algorithms, MinGlDol and MinGlGor, which are based on interprocessor communication minimization. These two algorithms give better results compared to some other well known scheduling algorithms. This fact is illustrated in Fast Fourier Transformation, Dynamic Scene Analysis, and LU matrix decomposition algorithms. Finally, \v„ present a design of hybrid parallel computer architecture capable of supporting modified asynchronous computing. 1. Asinhrono računanje v nadaljevanju bomo opisali način asinhronega računanja, ki ga bomo opisali s pomočjo GPP. Formalizirali bomo problema minimizacije časa oziroma procesorjev. Uvedli bomo pojem sprožitvene funkcije, ki nam bo v nadaljevanju omogočil vpeljati nekatere mehanizme sinhronizacije v asinhrono računanje. 1.1 Graf pretoka podatkov Graf G, ki ga sestavljata množici točk V in povezav £ C V x V, označimo z G{V,£). Število točk in povezav označimo z n = |V| oziroma m = \S\. Kadar je {u,v) G S, pravimo, da je točka v neposredni naslednik točke u, in to označimo z u I—> v. Kadar obstaja vsaj ena usmerjena pot iz točke u do točke v, pa pravimo, da je v nasled- nik točke u, kar označimo z u v. Relacija je tranzitivna ovojnica relacije i—Graf G je acikličen, če ne vsebuje točke v z lastnostjo v v. Če je G acikličen, je i—> relacija stroge delne urejenosti v V, saj je irefleksivna, asimetrična in tran-zitivna. Vhodnja stopnja d'^{v) točke v je število povezav, ki se stekajo v v, izhodnja stopnja d~{v) točke u pa je število povezav, ki točko v zapuščajo. Pravimo, daje G enostaven, če obstaja.med dvema točkama največ ena povezava v isti smeri. Naj bo G{V,£) acikličen. Tedaj zapišemo V kot: V = Vz U V;v U VA'. Vz, Vjv-in Vk se imenujejo množica začetnih, notranjih oziroma končnih točk. Velja naslednje: VveVz : d^{v) = 0/\d-{v)>0, Vt;€Vjv : d+{v) > O A d-{v) > O, Vu e Va' : > O A d-{v) = 0. Če sta Vz in Vk končni, neprazni in nevezani množici, potem v G ni nobene izolirane točke. V nadaljevanju bomo obravnavali le grafe pretoka podatkov GPP, ki so v skladu s sledečo definicijo: Definicija: Par je graf pretoka po- datkov, če velja: (a) G je usmerjen, enostaven in acikličen; (b) VznVK = 9-, (c) IN. □ Če je r G V, pomeni t{v) čas izvrševanja točki v pridružene operacije^. 1.2 Najkrajši čas izvrševanja Naj bodo dani GPP = {G,t) ter točki u in v. Če velja u v, obstaja iz točke u do t; vsaj ena pot p = wi,w2,... ,Wk, kjer je = u ter Wk = v. Tedaj definiramo dolžino poti p kot ^(p) — Z^Li K'^i)- Dolžino najdaljše poti iz točke u v točko v pa označimo z £{u, v). Pot iz množice točk H v množico točk VV je vsaka pot, ki se prične v eni od točk množice H in se konča v eni od točk množice W. Dolžino najdaljše poti med množicama in W pa označimo z C{U, VV). Če vsebuje kaka od množic ali VV en sam element, pišemo namesto množice kar sam element; na primer, če je = {u}, pišemo kar VV). Seveda je. 1{Vz,Vk) najkrajši možni čas, v katerem se še more izvršiti GPP. Označimo ga s Too, ker se GPP izvrši v najkrajšem možnem času le ob zadosti velikem (praktično "neskončnem") številu procesorjev. Če je na voljo le en procesor (zaporedno izvrševanje), pa označimo najkrajši možni čas za izvršitev GPP s Ti. Seveda velja Ti = Evevtiv)- 1.3 Sprožitvena funkcija Naj bodo dani GPP = {G, t), naravno število T > Too ter funkcija 5 : V —^ {0,1,...T}. Če je u G V, pišemo f{v) = s{v) t{v). Definicija: Funkcijo s imenujemo sprožitvena funkcija, če velja: (a) f {v) v ^ f{u) < s{v), Vu,uGV. □ Sprožitvena funkcija s priredi vsaki točki v trenutek sprožitve s{v), v katerem točka v zajame vhodne podatke in prične izvrševanje pridružene operacije. Posredno je s tem natanko določen tudi trenutek izstrelitve f{v), v katerem točka v konča svoje izvrševanje in pošlje podatke vsem neposrednim naslednikom. Zgornja definicija zagotavlja, da vsaka točka izstreli svoje rezultate pred trenutkom T; poleg tega pa proženje ter izstre-Ijevanje spoštujeta relacijo i—»•. Za dani GPP v splošnem obstaja več različnih sprožitvenih funkcij. Množico vseh sprožitvenih funkcij danega GPP označimo z S (T). Vsaka s G S (T) porodi pravilo, po katerem poteka računanje GPP. Kadar bomo želeli to pravilo posebej poudariti, bomo k oznaki s dodali ustrezni indeks. Sprožitveno funkcijo s imenujemo požrešna, če velja 5(t;) = i{Vz,v) - t{v), za vsak u G V, oziroma lena, če velja 5(u) = T - e(v, Vk), za vsak v e V. Požrešno^ sprožitveno funkcijo bomo .označili s s^, leno^ pa s si. Prva opisuje podatkovno vodeno računanje, druga pa računanje vodeno z zahtevo. ^Operacij posebej ne navajamo, ker za samo analizo niso pomembne. ^Požrešno iz angl. "eager". ^Leno iz angl. "lazy". 1.4 Kritične točke Naj bo dan GPP = {G, t). Poti z dolžino ^{Vz, Vk.) so najdaljše poti v GPP. Definicija: Točko v imennjemo kritična, kadar se nahaja na kaki od najdaljših poti v GPP. Če je O < r < (-{V z,V K.), imenujemo točko v kritična na globini t, kadar je kritična in velja i{Vz, v) — t{v) = t. □ Množico kritičnih točk označimo s fC, množico kritičnih na globini r pa s JC{t). Kritičnost je torej značilnost GPP samega, saj je moč enostavno pokazati, da je kritična natanko tista točka v E V, za katero velja e{Vz, v) - t{v) = i{Vz, Vk) - Kv, Vk). v posebnem primeru smemo kritičnost točk opredeliti tudi z vidika sprožitvenih funkcij. Naj bo dan čas izvrševanja T. Opazimo, da je levi del zgornje enačbe enak Se{v). Desni del pa je enak ven- dar le, če je T = Too! V tem primeru je kritični točki možno prirediti le en in en sam trenutek za njeno sprožitev, neodvisno od izbrane sprožitvene funkcije s £ Tcx> ter sprožitvena funkcija s G V /e(u) > > 3e(u))A ifliv) < fliv) > Tj > Izrševanje točke v € Wj_i se časovno prekriva (v vsaj enem trenutku) z izvrševanjem kritičnih točk v časovnem intervalu [rj-i,Tj). To prekrivanje je v splošnem krajše od časa t{v), kajti točka se lahko sproži že pred trenutkom rj_i in/ali konča izvrševanje po trenutku rj. Zato upoštevamo pri izračunu skupnega prekrivanja v intervalu [rj_i, r^) za vsako točko v G Wj-i le njeno minimalno prekrivanje cjj-i(v), ki je ojj-i{v) = min{/e(u) - r^-i. Tj - si{v), t(i;)} Minimalno potrebno število dodatnih procesnih elementov v časovnem intervalu [rj_i,rj) je tako: =( E / \eWj_. \ ' max{rj_i, rmn Se(tj)} - min{rj, ^ f,{v)}. Končno je mogoče zapisati razširjeno kritično vzporednost k' kot k' = max \ÌKj -t- A,) in definiramo oceno za px^ takole: PToo =max(pToo,H,«')-To oceno bomo označili tudi .s PToo,«'- Opisana metoda je poenostavitev Fernandez-Bussellove metode, v kateri namesto C9(T^) intervalov analiziramo največ O(Too) disjunktnih intervalov. S takšno poenostavitvijo pa se natančnost ocene ne poslabša bistveno. n PToo.CE PToo.H PToo.Ji "Toc.'^' 1 - 20 .85897 .91815 .93984 .98225 21 - 40 .81865 .89119 .89983 .93207 41 - 60 .87800 .91306 .91595 .92843 61 - 80 .88899 .91847 .92151 .93322 81 - 100 .88649 .91497 .91904 .92596 1 - 100 .87006 .91143 .91768 .93529 Tabela 1: Relativna natančnost ocen pri t{v) = 1. Primerjava ocen. Ocene za spodnjo mejo potrebnega števila procesorjev smo računali^ ^V ta namem smo uporabili računalnik IBM PC in razvili ustrezna programska orodja. n ptao.cb PToo.H PToo.R 1 - 20 .88188 .92392 .92392 .98498 21 - 40 .82895 .89294 .89354 .94139 41 - 60 .86430 .90486 .90486 .91888 61 - 80 .89379 .91816 .91816 .93241 81 - 100 .89224 .91446 .91446 .92759 1 - 100 .87384 .91040 .91051 .93561 Tabela 2: Relativna natančnost ocen pri t{v) < 5. n ptoo.ce pt^.h "To»,«' 1-20 .88200 .92100 .92100 .98200 21 - 40 .82912 .89350 .89350 .93622 41 - 60 .87045 .90739 .90739 .92385 61 - 80 .89447 .91911 .91911 .93026 81 - 100 .89115 .91370 .91370 .92194 1 - 100 .87510 .91072 .91072 .93348 Tabela 3: Relativna natančnost ocen pri < 10. po Fernandez-Bussellovi, Chen-Epleyevi, Hu-jevi, Ramamoorthy-Chandy-Gonzalezovi in lastni metodi. Skupno smo analizirali 7.500 naključno generiranih grafov pretoka podatkov. Pri tem smo spreminjali število točk n < 100 in čas njihovega izvrševanja t{v) < 10. Rezultati analiz so prikazani v tabelah 1, 2 in 3. Natančnost metod smo določali glede na najnatančnejšo, tj. Fernandez-Bussellovo oceno PTocFBì saj je število PTao neznano. Rezultati potrjujejo, da je naša metoda po svoji natančnosti najbliže PToo,fBi saj je v povprečju le za 6.52% slabša, hkrati pa je za red velikosti hitrejša. Naši oceni sledijo pToo.h (8.70%), (8.92%) in ^^^cE (12.71%). Primerjava med pToo,h in PToo,R l^aže, daje slednja ocena boljša le pri tistih GPP, katerih vrednosti se spreminjajo zelo malo. Samo v takšnih grafih kritična vzporednost prevlada nad največjo povprečno vzporednostjo. Razširjena kritična vzporednost, ki smo jo vpeljali pri svoji oceni PToo,k'ì P^- prevlada tudi v tistih GPP, kjer je t{v) spremenljiv. 1.6 Zahteve po času Naj bosta dana GPP = [G, t) in naravno število P < PToo- Iščemo najmanjše naravno število sprožitvenih funkcij je seveda smiselno le za p < PToo- 1.6.1 Ocene spodnje meje Tudi problem iskanja vrednosti Tp je NP-poln, zato namesto natančnega računanja T-optimalne sprožitvene funkcije uporabimo njeno hevristično konstrukcijo. Podobno kot pri iskanju p-optimalnih sprožitvenih funkcij je tudi tu koristno poznati kar se da natančno spodnjo mejo za Tp, v nadaljevanju označeno s Tp. Tudi tokrat določata kvaliteto metode za računanje spodnje meje: časovna zahtevnost računanja Tp in natančnost Tp, ki jo določa vrednost Tp — Tp. Hujeva ocena. Hu je v [4] vpeljal za Tp sledečo oceno: Naj bo zopet jC{t) množica vseh točk, ki se morajo izstreliti najkasneje v trenutku r. Potem je Tp = Too + max ^ T = 1 Hujevo oceno bomo označevali s Tp^H- Fernandez - Bussellova ocena. Izboljšanje ocene Tp^n sta opisala Fernandez in Bussell v [1]. To oceno določimo s sredstvi, ki so bUa vpeljana med konstruiranjem pt^^fb- Naj bosta ti in T2 poljubni naravni števili in naj velja O < n < r2 < Too- če je na voljo le p procesorjev, potem se izvrševanje točk znotraj intervala [tijTj] podaljša za najmanj - (r2 - ri). Od tod moremo določiti oceno za Tp, ki je Tp = T oo + max TI Too, za katero je množica sprožitvenih funkcij 2. Mehanizmi sinhronizacije S(^Tp) 0. Posledica pomanjkanja procesorjev je podaljšanje časa izvrševanja ATp, ki znaša ATp = Tp-T^ Sprožitvene funkcije, ki minimizirajo zgornji izraz imenujemo časovno optimalne sprožitvene funkcije - krajše T-optimalne. Iskanje T-optimalnih Sedaj bomo opisali hevristična algoritma za konstrukcijo T- in p-optimalnih sprožitvenih funkcij, ki ju bomo uporabili v dveh hevrističnih algoritmih za dodeljevanje; z njima dani GPP porazdelimo med procesorje [9]. vhod: GPP, p. izhod: SGPP{p,Tp), oz. 5(u), za vsak v e V. T := 0; Tp := 0; ? := 0; W := V repeat if g > O then Vp := {t; € V|/(i;) = r}; W := W - V^; q := q - \V„\ endif V, := {u e V|i> ima vse vhodne podatke}; — Množica izvršljivih točk je V,- = /C(r) U Vn, kjer sta /C(r) in V„ — množici kritičnih oz. nekritičnih točk na globini r. if q < p then if p - g < |/C(r)| then bodi Vd C /C(r), kjer je IVjI < p - q else if p - g > j V,I then Vd := V^ else Bodi Vd C V„, kjer je \Vd\ < p - q - \JC{t)\-, Vd Vd U fC{t) endif g := g + |Vd| -- Sproži se nekaj dodatnih, naključno izbranih točk. endif forali v 6 Vd do s{v) := r endforall Tp:=r; r r + 1 until = 0; Algoritem TOptSinh: Konstruiranje T-optimalne sprožitvene funkcije. 2.1 Sinhronizacija Algoritma za konstrukcijo optimalnih sprožitvenih funkcij, kiju bomo opisali v tem poglavju, temeljita na spoznanju, da si moremo izvrševanje GPP predočiti s pomočjo prehajanja točk iz ene množice (stanja) v drugo. Že v prej smo vpeljali eno takšnih množic - množico IC{t) kritičnih točk v trenutku r. Nadalje za vsak trenutek r vpeljemo še množici: V,-izvršljivih točk, tj. točk, ki so zbrale vse vhodne podatke, a se še niso sprožile in Vp = {v € V|/(v) = r} pozabljenih točk, tj. točk, ki so se izstrelile v tem trenutku. V splošnem so poleg kritičnih v množici V; tudi točke, ki smejo svojo sprožitev odložiti, ne da bi to nujno vplivalo na najkrajše izvrševanje GPP. Te točke imenujemo nekritične v trenutku r in jih zberemo v množico Vn. Par {GPP, s), kjer je s sprožitvena funkcija, ki posredno določa tudi p in T, imenujemo sinkronizirani graf pretoka podatkov ter ga označimo z SGPP{p,T). Torej T-optimalna sprožitvena funkcija določa SGPP{p,Tp), medtem ko p-optimalna funkcija določa SGPP{pt^,Too)- 2.1.1 T-optimalna sprožitvena funkcija Za konstruiranje T-optimalne sprožitvene funkcije smo razvili algoritem, ki smo ga imenovali TOptSinh. Ta nam za dani GPP ter vnaprej določeno število p procesorjev vrne takšno sprožitveno funkcijo 5, ki zagotavlja čas izvrševanja Tp, ki je kar se da blizu oceni Tp. Kvaliteto algoritma smo ocenjevali z odstotkom primerov, ko je čas Tp dosegel oceno Tp^n, saj natančne vrednosti Tp ne poznamo. Algoritem je bil preverjen® nad 500 GPP in je v 75.6 % dosegel Tp = Tp,H- Obenem smo merili tudi upad idealne popospešitve Dp v odvisnosti od pomanjkanja procesorjev. Primerjava med asinhronim podatkovno vodenim računanjem (sprožitvena funkcija Sg) in sinhroniziranim podatkovno vodenim računanjem (T-optimalna sprožitvena funkcija) je prikazana v tabeli 4, kjer so podani povprečni rezulati. Ključni del algoritma TOptSinh je v konstruiranju množice Vj, tj. v sprožanju dodatnih izvršljivih točk, kadar so na voljo prosti procesorji. Absolutno prednost pri sprožanju imajo kritične točke v danem trenutku (zaradi omejenega števila procesorjev seveda v splošnem pride do odloga sprožitve celo pri nekaterih kritičnih točkah). Uvrščanje nekritične točk v množico Vd pa smo izvajah v skladu z naslednjimi strategijami: naključno izbiranje (v vrstnem redu, kot prihajajo ® V ta namem smo uporabili lačunčdnik IBM PC in razvili ustrezna programska orodja. vhod: GPP, Toc. izhod: SGPP{pt^,Too), oz. ^(u), za vsak t; e V. Izračunaj r 0; pr«, := 0; q := O repeat if 5 > O then Vp--={veV\f{v)^T}; g:=:g-|Vp| endif V,- := {v G V|i; ima vse vhodne podatke); — Množica izvršljivih točk je V,- = K,{t) U V„, kjer sta /C(r) in V„ — množici kritičnih oz. nekritičnih točk na globini r. 5 := g + 1^(^)1 — Sprožijo se vse kritične točke. ifq< pT^ then Bodi Vd C V„, kjer je \Vd\ < pt^ -'g; q := q+ |Vd| — Sproži se nekaj dodatnih, naključno izbranih točk. endif forali v G IC{t) U Vd do 5(1;) := r endforall PToo := max(g,pToo); t t + 1 until r = Too; Algoritem pOptSinh: Konstruiranje p-optimalne sprožitvene funkcije. PToo p = 3/4pT„ p = IßpToo p = l/4pT„o Sprožitvena funkcija Sg 4 0.030 0.223 1.232 5 0.016 0.121 0.454 6 0.006 0.205 0.621 7 0.004 0.104 0.761 8 0.015 0.147 0.883 9 0.006 0.071 0.397 10 0.003 0.100 0.464 E 0.011 0.139 0.687 T-optimalna sprožitvena funkcija 4 0.011 0.211 1.079 5 0.002 0.048 0.375 6 0.002 0.117 0.537 7 0.000 0.029 0.718 8 0.000 0.044 0.789 9 0.000 0.001 0.324 10 0.000 0.018 0.311 L' 0.002 0.067 0.590 najkrajši čas izvrševanja Too vrne sprožitveno funkcijo s, ki zagotavlja izvrševanje GPP na številu procesorjev, ki je kar se da blizu ocene Pt^. Algoritem v vsakem trenutku r poskuša sprožiti čimveč, toda kvečjemu izvršljivih točk. V vsakem trenutku r sprožimo vse točke iz ÌC{t). Če je zasedenih procesorjev še vedno manj kot pTooj na njih sprožimo nekatere nekritične točke, ki jih izberemo naključno (v vrstnem redu, kot prihajajo v V,). Iz povedanega je očitno, da je pri tem odločilna natančnost PToo- Optimalnost algoritma smo ocenjevali z odstotkom primerov, ko je pxoo dosegel oceno PTcc.H. Pt^.k' oziroma Ptoo.fb, saj natančne vrednosti pT^ ne poznamo. Algoritem je bil preverjen^ nad 1.500 GPP in je dosegel rezultate, prikazane v tabeli 5. Tabela 4: Upad idealne pospešitve Dp. - — - PToo.R PToo.'i' PToo, F B 1 0.705 0.783 0.824 v V,), po naraščajočih t{v) in po padajočih t{v). Poskusi so pokazali, da nobena od strategij ni bila izrazito boljša od ostalih. 2.1.2 p-optimalna sprožitvena funkcija Algoritem pOptSinh za dani GPP ter pripadajoči Tabela 5: Optimalnost algoritma pOptSinh. Pri problemu optimizacije procesorjev je ključen podatek izkoriščenost procesorjev Ep, za katero želimo, da se čimbolj približa vrednosti 1. Slika 'v ta namem smo uporabili računalnik IBM PC in razvili ustrezna programska orodja. E. • • • • o o o o o o -tì— o ... sprožitvena funkcija • ... p-optimalna sprožitvena funkcija —I—I—I—.—I—I—I—I—I—.—W O 20 40 60 80 100 120 Število točk n Slika 1: Izkoriščenost procesorjev Ep. PToo Pi 6 4 2 s — p-optimalna ( , 0 ' 1 ° ( 0 \J 1 i. 0 1 ■ _1_l. 2 4 6 8 .10 PToo Pn 5 = Se Slika 2: Potrebe po procesorjih. 1 prikazuje izkoriščenost procesorjev E-p v odvisnosti od velikosti GPP za asinhro podatkovno vodeno računanje (sprožitvena funkcija Sg) in sinkronizirano podatkovno vodeno računanje {p-optimalna sprožitvena funkcija). Računanje, ki sledi p-optimalni sprožitveni funkciji, ima mnogo manjše zahteve po procesorjih kot računanje, ki sledi 5e sprožitveni funkciji, kar potrjujejo rezultati, prikazani na sliki 2. Tudi tu smo analizirali 1.500 GPP, pri čemer smo spreminjali število točk n < 120 in čas njihovega izvrševanja t{v) < 10. 2.2 Dodeljevanje Po končani fazi sinhroniziranja je GPP pridružena sprožitvena funkcija s in skupaj tvorita SGPP{p,T). S tem so vse v e V urejene po trenutkih sprožitve s{v). Takšna urejenost zagotavlja, da se GPP izvrši na p procesorjih v času T ob uporabi najsplošnejšega algoritma za dodelje- vanje (algoritem NakljDod) [7], ki točko v dodeli naključno izbranemu prostemu procesorju. • vhod: SGPP{p,T). izhod: x(t?), za vsak u G V. Razvrsti pare (t;,5(t;)) po naraščajočih s{v) in jih shrani v sklad S. for g := 1 to p do F[q] := O endfor repeat Vzemi iz S vse pare z enakim s in jih shrani v VV. F {g I < 5} forali ti e >V do Naključno izberi q ^ P. ■k{v) := q; F[q] f{v); P := P - {q} endforall VF := 0; P := 0 until 5 = 0; Algoritem NčikljDod: Naključno dodeljevanje. Po končanem dodeljevanju je vsaki točki v £ V pridružen procesor z indeksom 7r(v), kjer je 1 < Tr{v) < p. V vsakem trenutku je na voljo vsaj toliko prostih procesorjev, kot je točk, ki se morajo tedaj sprožiti. Dodeljevanje teh točk je poljubno, kar pomeni, da moremo v splošnem dani SGPP{p,T) porazdeliti na več načinov. Vse dodelitve so enakovredne, saj vse zagotavljajo, da se GPP izvrši na p procesorjih v času T. Točki M in u iz V sta ločeni, če sta dodeljeni različnima procesorjema. Povezavo med ločenima točkama imenujemo globalna povezava. V primeru hibridne arhitekture poteka komunikacija med ločenima točkama preko nadzorno-povezovalne enote in v splošnem zahteva čas tc > 0. V takšnem primeru najsplošnejši algoritem torej ne vrača več enakovrednih dodelitev, saj se število globalnih povezav spreminja. Že prej smo videli, da število globalnih povezav vpliva na čas izvrševanja GPP. Zato se bomo osredotočili na konstruiranje takšnih algoritmov za dodeljevanje, ki bodo mini-mizirali število globalnih povezav v dodelitvah [8]. Točneje: trivialni kriterij naključnega dodeljevanja prostih procesorjev bomo nadomestili s kompleksnejšim, ki se glasi: Dodeli točke w množice W procesorjem q množice P tako, da bo ^ c{w, q) maksimalna, kjer je c(w, q) število sosednjih točk točke w, ki so bile doslej dodeljene procesorju q. vhod: SGPP{p,T). izhod: ir{v), za vsak v e V. Razvrsti pare (u,5(t;)) po naraščajočih s{v) in jih shrani v sklad S. for 7 := 1 to p do := O endfor repeat Vzemi iz S vse pare z enakim s in jih shrani v W. < s} forali v G W do forali qe P do = število neposrednih predhodnikov od v, ki so bili dodeljeni v g-ti procesor, endforall endforall Reši problem WBM za graf (VV U P, W X P), forali pare (v,q), ki so del rešitve do t:{V) := g; F[q] := fiv) endforall ]y:=0;P:=0 until 5" = 0; Algoritem MinGlDol: Minimizacija globalnih povezav (navzdol). Dodeljevanje, ki poteka v skladu z zgornjim pravilom, je v nekem smislu konservativno, saj poskuša točko pridružiti procesorju, v katerem je največ njenih sosedov. Opisano pravilo je primer znanega problema uteženega dvodelnega ujemanja (WBM») [10, 11]: Naj bo dan dvodelni graf G = (W U P, E), kjer je E C }V X P ter cenovna funkcija c : E —IN. Iščemo ujemanje MCE (množico povezav M, v kateri noben par povezav nima skupne točke) tako, da je T,(w,q)€M 9) maksimalna. Problem WEM znamo rešiti v času 0(nelogra/max(l,log^)), kjer je e = \ E \ in n =1 W I + I P I . V algoritmu MinGlDol poteka dodeljevanje od začetnih točk proti končnim, medtem ko poteka dodeljevanje v algoritmu MinGlGor v nasprotni smeri. V obeh algoritmih se pojavlja problem WBM, pri čemer v prvem primeru določajo ceno c(tü, q) neposredni predhodniki točke w, v drugem pa njeni neposredni nasledniki. 2.3 Primeri Z nekaterimi primeri bomo pokazali učinkovi- tost časovne optimizacije asinhronega računanja s pomočjo mehanizmov sinhronizacije. Obravnavali bomo naslednje primere: hitro Fourierjevo transformacijo (FFT), dinamično analizo scene (DAS) in LU razcep matrike (LU). Privzeli bomo hibridno arhitekturo s p = 3 procesorji (Pi,P2 in P3), katere medprocesorsko komunikacijo t^ bomo ustrezno spreminjali. Kvaliteto naših rezultatov, ki jih dobimo z uporabo sinhronizacijskega algoritma TOptSinh ter dodeljevalnih algoritmov MinGlDol in MinGlGor, bomo primerjali z naslednjimi znanimi razvrščevalnimi algoritmi: CPM^ [12], HNF^" [13] in WL" [13]. 2.3.1 FFT: Hitra Fourierjeva transformacija Povrnimo se na primer izračuna hitre Fourierjeve transformacije na 8 točkah, ki smo ga že obravnavali v prvem delu. Predpostavimo, da se točke A, C, E, G, I, J, M, N, Q, R, S in T izvršujejo eno časovno enoto, točke B, D, F, H, K, L, O, P, U, V, W in X pa pet časovnih enot. CPM, HNF in WL algoritmi. Za primer FFT algoritma dajejo vse tri metode (CPM, HNF, WL) 'Weighted Bipartite Matching ® Critical Path Method '"Heavy Node First "Weighted Length vhod: SGPP{p,T). izhod: 7r(u), za vsak v £ V. Razvrsti pare (t;,s(u)) po padajočih 5(u) in jih shrani v sklad S. for 9 := 1 to p do := T endfor repeat Vzemi iz S vse pare z enakim / in jih shrani v W. P--= {q\F[q] >/}; forali t? 6 VV do forali qe P do c{v,q) — število neposrednih naslednikov od v, ki so bili dodeljeni v g-ti procesor, endforall endforall Reši problem WBM za graf (W U P, W x P), forali pare {v,q), ki so del rešitve do 7r(v) := q F[qV:=s{v); endforall W:=0; P := 0; until 5 = 0 Algoritem MinGlGor: Minimizacija globalnih povezav (navzgor). J- _UL rrlRRl Pi I H I P2 I p iQlEl P I K I X-m P3 I F IcUl g I^UN V I w I 10 15 20 25 30 35 Slika 3: FFT: Razvrstitev po CPM, HNF in WL. enakovredne rezultate. Točke se dodelijo procesorjem, kot je prikazano na sliki 3. Razvidno je, da dobimo v tem primeru 22 globalnih povezav. Upad idealne pospešitve Dp se pri tc > O poveča, tako dobimo pri t^ = 10 čas izvrševanja Tp - 43, kar se odraža tudi v povečanju upada idealne pospešitve Dp = 1.87. Podrobnejši rezultati CPM, HNF in WL dodeljevanja v odvisnosti od časa tc so prikazani v tabeli 6. 'c Sp Ep Dp 0 25 2.88 0.96 0.67 2 27 2.67 0.89 0.80 4 31 2.32 0.77 1.07 10 43 1.67 0.56 1.87 Tabela 6: FFT: CPM, HNF in WL dodeljevanje pri različnih t^. MinGlDol in MinGlGor algoritma. GPP FFT v .(v) v s(v) v A 6 I 15 Q 23 B 5 J 13 R 22 C 5 K 12 S 22 D 0 L 10 T 21 E 6 M 14 U 16 F 0 N 12 V 15 G 5 0 7 W 20 H 0 P 7 X 17 Tabela 7: FFT: T-optimalna sprožitvena funkcija. algoritma najprej sinhroniziramo, za kar uporabimo algoritem TOptSinh, ki vrne T-optimalno sprožitveno funkcijo. Rezultat je prikazan v tabeli 7. Pi [ P2 [ P3 1 H 1 B I L lil U h-lRßl 1 D IGIEI 0 INUMI V 1 W 1 1 F KJlAl P 1 K 1 X isl : o 10 15 20 25 30 35 Slika 4: FFT: Razvrstitev po MinGlDol. V drugem koraku uporabimo dodeljevalni algoritem MinGlDol oz. MinGlGor. Razvrstitev točk po MinGlDol algoritmu je prikazan na sliki 4, medtem ko je razvrstitev po MinGlGor algoritmu prikazana na sliki 5. 56 Pi C L Ps C -TgTeT „WJN I w I F IclAl F I K I X ZEm •p—r I I, 111 u~ffm 0 10 15 20 25 30 35 Slika 5: FFT: Razvrstitev po MinGlGor. Z uporabo algoritmov MinGlDol in MinGlGor dobimo pri = O enake rezultate kot pri algoritmih CPM, HNF in WL (Tp = 25, Sp = 2.88, Dp = 0.667 in Ep = 0.96). Pri tc > O pa naša algoritma vračata rezultate z manjšim upadom idealne pospešitve Dp. Tako je pri tc — 10 čas izvrševanja Tp = 40 (v prejšnjem primeru 43), kar pomeni, da je Dp le 1.67. Podrobnejši rezultati MinGlDol in MinGlGor dodeljevanja v odvisnosti od časa tc so prikazani v tabeli 8. 25 25 28 40 2.88 2.88 2.57 1.80 0.96 0.96 0.86 0.60 0.67 0.67 0.87 1.67 Tabela 8: FFT: MinGlDol in MinGlGor dodeljevanje pri različnih tc- Oba algoritma občutno zmanjšata število globalnih povezav, tako dobimo pri MinGlDol algoritmu 16 globalnih povezav, algoritem MinGlGor pa nam število globalnih povezav zmanjša celo na 15. 2.3.2 DAS: Dinamična analiza scene Za naslednji primer vzemimo algoritem za dinamično analizo scene. Algoritem DAS se uporablja pri izločanju ■ podob gibljivih objektov in je podrobneje opisan v [14]. Pripadajoči GPP prikazuje slika 6. Točke A, B, C in D se izvršujejo 345 časovnih enot, točke E, F, G in H 259 časovnih enot, točki I in J 190 časovnih enot, točki K in L 241 časovnih enot in točka M 69 časovnih enot. CPM, HNF in WL algoritmi. Tudi v primeru DAS algoritma dajejo metode (CPM, HNF in WL) enakovredne rezultate (slika 7). MinGlDol in MinGlGor algoritma. Oba algoritma vračata enake rezultate kot algoritmi CPM, HNF in WL, torej pri = O dobimo Tp = 1449, Sp = 2.31, Dp = 0.31 in Ep = 0.77 ter 12 globalnih povezav. Z algoritmom MinGlGor dobimo tudi enako dodelitev med procesorje (slika 7), medtem ko dobimo z al- Slika 6: GPP DAS algoritma. Pi I-TT P2 I-T P3 I-^ I P I F- IZ3 I I I 500 1.000 1.500 Slika 7: DAS: Razvrstitev po CPM, HNF, WL in MinGlGor. goritmom MinGlDol sicer drugačno dodelitev med procesorje (slika 8), ki pa, kot rečeno, rezultira v enako število globalnih povezev. Podrobnejša analiza pri O < ic < 300 je prikazana v tabeli 9. tc Tv 5> 0 100 200 300 1449 1649 1849 2049 2.31 2.03 1.81 1.63 0.77 0.68 0.60 0.54 0.31 0.49 0.68 0.86 Tabela 9: DAS: CPM, HNF, WL, MinGlGor MinGlDol dodeljevanje pri različnih tc- m 2.3.3 LU: LU razcep matrike Za zadnji primer vzemimo algoritem za LU razcep matrike [15], ki je eden od najpogosteje uporabljenih algoritmov za reševanje sistema linearnih enačb. GPP LU algoritma je podan na süki 9. Točke A, F, K in P se izvršujejo 4 časovne enote, točke B, C, D in E 5 časovnih enot, točke G, L in Q 9 časovnih enot, točke H, I in J 10 časovnih enot. Slika 9: GPP algoritma za LU razcep matrike. Fl I C I fl I fi I rT~1 P2 I BI -P I I L '1 P3 I A I r> I H I t I v rv 500 1.000 1.500 lAINhl I, I -T—T P2 IklHIRI U P3 IKKil ft I T—r 25 50 75 100 Slika 8: DAS: Razvrstitev po HinGlDol. Slika ,11: LU: Razvrstitev po HNF. Pi lAini ft I H- P2 EElEmZDC P3 iKini I, I o 25 □ I ■•) I 50 75 100 Slika 10: LU: Razvrstitev po CPM in WL. ko razvrstitev po HNF metodi na sliki 11. Pri analizi LU algoritma smo tc spreminjali med O in 30 (tabeli 10 in 11). Metodi CPM in WL sta vrnili 36 globalnih povezav, medtem ko je HNF vrnila le 32 globalnih povezav. Zato je upad idealne pospešitve Dp pri tc = 10 za 12.5% boljši. točka O 13 časovnih enot, točki M in R 14 časovnih enot, točka N 15 časovnih enot, točka S 19 časovnih enot in točka T 20 časovnih enot. CPM, HNF in WL algoritmi. LU razcep matrike je primer, da HNF algoritem vrača boljše rezultate od ostalih dveh. Razvrstitev točk po CPM oz. WL metodi je prikazana na sliki 10, medtem tc Sp Ep Dp 0 10 20 30 96 126 166 206 1.96 1.49 1.13 0.91 0.65 0.50 0.38 0.30 0.10 0.45 0.91 1.37 Tabela 10: LU: CPM in WL dodeljevanje pri različnih tc. «c '■'p 5> tc '^P Sp Dp 0 96 1.96 0.65 0.10 0 96 1.96 0.65 0.10 10 122 1.54 0.51 0.40 10 112 1.68 0.56 0.29 20 162 1.16 0.39 0.86 20 152 1.24 0.41 0.75 30 202 0.93 0.31 1.32 30 192 0.98 0.33 1.21 Tabela 11: LU: HNF dodeljevanje pri različnih tc- MinGlDol in MinGlGor algoritma. Še boljše rezultate kot HNF pa vračata naša algoritma MinGlDol in MinGlGor. Razvrstitvi točk po MinGlDol ter MinGlGor sta opisani na slikah 12 in 13. Pi IKIM t, I r I M I M I ^ -1 Pj IFICI g I H I R I Pa IaIRIPIEI Q I J I —1 Tabela 12: LU: MinGlDol in MinGlGor dodeljevanje pri različnih tc- tc MinGlGor (Dp/Dl) MinGlDol (Dp/D^) 5 1.3729 1.3623 10 1.2216 1.2199 20 1.1260 1.1187 25 50 75 100 Tabela 13: Relativna kvaliteta MinGlDol in MinGlGor algoritmov. Slika 12: LU: Razvrstitev po MinGlDol. Fl IPIftI n I o I J I P2 lA'lffI Zr I f/ I M I (? I Pi f I /i I 25 50 75 100 Slika 13: LU: Razvrstitev po MinGlGor. Pri tc>0 dosežeta obe metodi enak upad idealne pospešitve, ki je boljši od upada idealnih pospešitev metod CPM, HNF in WL (tabela 12). 2.3.4 Primerjava rezultatov Na osnovi povedanega sledi, da algoritma MinGlDol in MinGlGor dodeljujeta GPP ob manjšem (kvečjemu enakem) številu globalnih povezav. Analiza FFT, DAS in LU algoritmov je potrdila našo domnevo, da je število globalnih povezav v tesni zvezi z upadom idealne pospešitve. S tem je upravičena naša odločitev, da smo se pri oblikovanju algoritmov za dodeljevanje osredotočili na minimizacijo števila globalnih povezav. To minimizacijo opravljata algoritma MinGlDol in MinGlGor, ki za svoje delo potrebujeta sinhro-niziran GPP. Slednjega pa konstruiramo z enim od naših algoritmov TOptSinh oz. pOptSinh. S takšno minimizacijo je dosežen zastavljeni cilj, tj. časovna optimizacija asinhronega procesiranja. Algoritma MinGlDol in MinGlGor sta bila preizkušena nad 500 GPP, pri čemer smo spreminjali: število točk n < 120, čas njihovega izvrševanja t{v) < 10 in medprocesorsko komunikacijo tc < 20. Število procesorjev smo omejili na p = l/2pXoo-Kvaliteto algoritmov MinGlDol in MinGlGor smo ocenjevali^^ glede na algoritem NakljDod. Rezultati so zbrani v tabeli 13, kjer so D P' Dl m Dì upadi idealne pospešitve pri algoritmih NakljDod, MinGlGor in MinGlDol. 3. Organizacija stroja Končno bomo predstavili še računalniško arhitekturo, ki učinkovito podpira podatkovno vodeno računanje, oplemeniteno s sinhronizacijskimi mehanizmi, kot so bili vpeljani v prejšnjem poglavju. Takšna arhitektura v popolnosti izkorišča rezultate časovne optimizacije asinhronega procesiranja. 3.1 Funkcionalni opis Že uvodoma smo opozorili na problem kopičenja podatkovnih paketov v vrsti pred procesno enoto, ki je posledica omejenega števila procesorjev v procesni enoti. Nakazali smo tudi eno od možnih rešitev, ki temelji na pravilnem vstopanju paketov v vrsto oz. izstopanju paketov iz nje. Na osnovi vpeljanih sinhronizacijskih mehanizmov je to rešitev možno uresničiti z vzporedno računalniško arhitekturo, kot bo opisana v nadaljevanju; poimenovali jo bomo sinkronizirana podatkovno pretokovna arhitektura (SPPA) [7, 16]. SPPA sodi v družino hibridnih arhitektur. Ses- V ta namem smo uporabili računalnik IBM PC in razvili ustrezna programska orodja. tavlja jo množica enakih podatkovno pretokovnih procesorjev (PPP) ter nadzorno-povezovalna enota (NPE), ki so krožno povezani, kot kaže slika 14. Vhodno/izhodna komunikacija z gostiteljskim računalnikom poteka preko NPE. HOST vhodni paketi NPE izhodni paketi PPPI PPPJ pppp • • • Slika 14: SPPA. Preden se lotimo podrobnejšega opisa enot, na kratko opišimo potek reševanja danega problema na SPPA. Reševanje si lahko predstavljamo kot zaporedje treh faz: prevajanje programa ter optimizacija GPP, nalaganje SGPP v SPPA in izvrševanje v SPPA. Prevajanje ter optimizacija. Naj bo dan nek poljuben algoritem, zapisan v kakem od visokih podatkovno pretokovnih jezikov. Z ustreznim prevajalnikom se algoritem prevede v strojni kod, tj. GPP. Prevajanje poteka na gostiteljskem računalniku. V naslednjem koraku GPP optimiziramo, tj. konstruiramo p- ali T-optimalnò sprožitveno funkcijo (pOptSinh in TOptSinh) ter z uporabo algoritmov MinGlGor oz. MinGlDol določimo procesorske indekse tt. Ti indeksi so pomemebni za samo nalaganje GPP v SPPA. Poleg tega pa so ob koncu optimizacije znane še vse globalne povezave ter trenutki sprožitve vseh tistih točk {vhodne ločene točke), v katere vstopajo globalne povezave. Ti podatki imajo pomembno vlogo pri izvrševanju GPP v SPPA. Nalaganje. Kot bomo videli v nadaljevanju, ima vsak PPP svoj grafni pomnilnik, v katerem hrani podatke o delu GPP. V fazi nalaganja se vsaka točka v iz GPP naloži v PPP z indeksom i, če je ■jv(v) — i. Y PPP s tem indeksom se implicitno vpišejo tudi vse povezave, katerih začetna in končna točka sta dodeljeni procesorju z indeksom i, kot narekuje logična zgradba grafnega pomnilnika. V NPE pa se shranijo globalne povezave ter trenutki sprožitve vseh vhodnih ločenih točk. Pri nalaganju sodelujeta gostiteljski računalnik ter NPE. Izvrševanje. Po fazi nalaganja vsak PPP hrani ustrezen podgraf od GPP. Vse točke v PPP, ki za svojo izvršitev potrebujejo vsaj en podatkovni paket iz drugega podgrafa, se imenujejo vhodne ločene točke. Podobno pa so izhodne ločene točke vse tiste točke podgrafa, ki vsaj en svoj rezultat posredujejo v drug podgraf. Vse ostale točke v podgrafu imenujemo notranje točke. Izmenjava podatkov med notranjimi točkami poteka asinhrono, zato je podgraf čisti graf pretoka podatkov brez vnaprej določenih trenutkov sprožitve. Tudi izhodna ločena točka posreduje svoj rezultat takoj, ko se le ta izračuna. Izmenjava podatkovnih paketov med PPP poteka posredno preko NPE. Vsaka izhodna ločena točka torej pošlje svoj paket v NPE. Ta enota prebere iz seznama globalnih povezav, kateri vhodni ločeni točki je paket namenjen. Poleg tega pa iz seznama sprožitvenih trenutkov ugotovi, kdaj mora ta paket poslati ustreznemu PPP. Vidimo, da NPE deluje popolnoma sinhrono na osnovi globalne ure. 3.2 Nadzorno-povezovalna enota NPE opravlja naslednje funkcije: skrbi za vhodno/izhodno komunikacijo z gostiteljskim računalnikom, omogoča nalaganje delov GPP v ustrezne PPP in skrbi za posredovanje paketov med ločenimi točkami. Logično si NPE predstavljamo kot tabelo Globahia povezava Procesorski indeks Podatkovno polje Trenutek sprožitve . u 1—► v P kjer je u i—v globalna povezava iz točke u v v, 7r{v) indeks PPP, v katerem je vhodna ločena točka v, p podatkovno polje, ki ga točka u pošilja točki v, ter s{v) trenutek sprožitve točke v. Podatkovno polje p je par p = {d, a), kjer je d vrednost, a pa določa, kateri od argumentov točke v bo sprejel vrednost d. Tabela se pred začetkom izvrševanja uredi po naraščajočih vrednostih ^(u), ki so bile določene V fazi optimizacije. Delovanje NPE opišimo na primeru. Naj bo A i—> B globalna povezava. Točka A naj bo dodeljena procesorju i, točka B pa procesorju j. Točka B se mora sprožiti v trenutku t. V nekem trenutku r < t točka A pošlje podatkovno polje p v izhodnem paketu oblike NPE A B P v NPE. Ta na osnovi globalne povezave A B poišče v tabeli vrstico s to globalno povezavo ter v podatkovno polje vpiše vrednost p. S tem je sprejem izhodnega paketa končan. Sočasno globalna ura enote NPE šteje čas t. Ko postane r = i, NPE tvori vhodni paket oblike B in ga pošlje verigi PPP, kjer ga jr-ti PPP sprejme. 3,3 Podatkovno pretokovni procesor Podatkovno pretokovni procesor omogoča hranjenje in izvajanje podgrafov GPP ter hkrati učinkovito komuniciranje s svojo okolico. Arhitektura je zasnovana tako, da je uporabljen sinhro-nizacijski mehanizem, ki temelji na shranjevanju paketov. Procesor sestavljajo vhodno-izhodni krmilnik, grafni pomnilnik, enota za ažuriranje in dostavo, čakalna vrsta, procesna enota ter izhodna vrsta (slika 15). Slika 15: Zgradba PPP. Vhodno-izhodni krmilnik skrbi za komunicajo med PPP in okolico. Vhodni podatkovni paketi, ki vstopajo v krmilnik, imajo obliko 7r(v) P kjer je v točka, ki (v procesorju z indeksom 7r(-y)) čaka na podatkovno polje p = {d, a). Iz indeksa ir(v) krmilnik ugotovi, če je prispeli paket namenjen njemu. Če ni, ga vhodno-izhodni krmilnik nespremenjenega v istem ciklu posreduje naslednjemu PPP. Procesorje tako za tuje pakete transparenten. Če pa se ■k(v) ujema z indeksom danega procesorja, se paket sprejme. V tem primeru enota za ažuriranje in dostavo iz paketa izloči indeks t'{v), preostanek I d pa pošlje grafnemu pomnilniku. Grafni pomnilnik hrani opise točk in povezav podgrafa GPP. Opis točke v se nahaja v tabeli Točka Op St. Operandi Točke čakajoče na rezultat v op C dm <"1 ./l ."1 «"n./n.an kjer je op operacija, ki jo mora točka v izvršiti nad operandi di,d2, • • ■ ,dm ter rezultat poslati točkam wi,w2,..., Wn\ rezultat mora biti shranjen v točko Wi kot argument z zaporedno številko a,. Zastavica fi zavzame vrednost i ali G glede na to, ali je točka to, v istem (lokana točka, / = L) ali drugem PPP (globalna točka, / = G). Števec c manjkajočih vhodnih operandov se ob nalaganju postavi na vrednost m. Enota za ažuriranje in dostavo vpiše vrednost d paketa v grafni pomnilnik v vrstico z oznako točke v na mesto operanda da ter hkrati zmanjša števec C za eno. Takoj po vpisu enota za ažuriranje in dostavo preveri, če je vrednost števca c enaka nič. Če je temu tako, posreduje paket oblike op dx v čakalno vrsto, kjer se paketi kopičijo in čakajo na sprostitev procesne enote. Sočasno pa na osnovi v-te vrstice grafnega pomnilnika tvori v izhodni vrsti naslednjo tabelo Povezava Zastavica Rezultat St. argumenta v . u/-| u v • Wj h a. v --- u^n Ir. "n Ko procesna enota izračuna rezultat r op[di,..., dm), tvori paket in ga pošlje izhodni vrsti. Ta vpiše vrednost f v polja za rezultat vseh vrstic, ki ta rezultat pričakujejo. Enota za ažuriranje in dostavo na osnovi zastavice fi tvori lokalni paket, če je /,- = L oz. izhodni paket, če je fi = G. Lokalni paket ima obliko Wi I r a; izhodni paket pa obliko NPE v I—> Wi 1 d kjer je d = (r,ai). Vrednost r lokalnega paketa se preko enote za ažuriranje in dostavo vpiše v grafni pomnilnik v vrstico z oznako na mesto operanda da,. Izhodni paket pa se preko vhodno-izhodnega kr. milnika posreduje NPE. 3.4 Izvedba Zadnji korak do končne izvedbe SPPA predstavlja razvoj strojne opreme NPE in PPP. V začetni fazi je moč NPE relativno preprosto emulirati s kakim od obstoječih mikroračunalnikov; končni cilj pa je izvedba NPE v obliki VLSI čipa. Tudi PPP je smiselno zasnovati kot VLSI vezje, vendar pa že danes obstajajo na tržišču procesorji, ki bi v prvi fazi zadovoljivo opravljali funkcijo PPP. Najbliže temu je podatkovno vodeni mikroprocesor yiPD7281 [17, 18]. Primeren kandidat, ki bi v prvi fazi prevzel funkcijo PPP, je transputer (npr. T9000) [19]. Za konec omenimo še možnost, da bi PPP nadomestili tudi s podatkovno vodenim procesorskim poljem. Še posebej so zanimiva heksag-onalna procesorska polja, ki so trenutno še predmet raziskav [20]. Zgradbo procesorskega polja prikazuje slika 16. Podatkovno vodene celice (procesorji) so organizirane v vrstice. Med vsakim parom vrstic je speljano komunikacijsko vodilo, ki omogoča vhodno/izhodno komunikacijo z NPE ter porazdelitev delov GPP med celice. Vsaka celica je točkovno povezana s šestimi sosednjimi celicami. Slika 16a prikazuje povezanost celice O s sosedami 1, 2, 3, 4, 5 in 6. Iz tehnoloških razlogov je število celic v polju omejeno (trenutno do nekaj 100 [20]). Zato moramo v splošnem GPP porazdeliti po več poljih. Na primer, slika 16b prikazuje rezultat nalaganja tistega dela GPP za FFT, ki je ga je algoritem MinGlDol priredil procesorju P2. 4. Zaključek Povrnimo se ponovno na nalogo, ki smo si jo zastavili. Predpostavimo, da je na voljo podatkovno pretokovni računalnik s potencialno neskončnim številom procesorjev ter izberimo poljuben graf pretoka podatkov. Denimo, da je za najhitrejšo asinhrono izvršitev izbranega grafa potrebnih vsaj m procesorjev. Tedaj označimo s T^ najkrajši čas, v katerem se ta graf izvrši na m procesorjih. Na računalniku z n < m procesorjev pa bi se v splošnem isti graf asinhrono izvršil v času Tn ^ Tm + ATn, kjer Ar„ > 0. Za nalogo si zadajmo minimizirati podaljšek izvrševanja AT„, tj. časovno optimizirati asihrono procesiranje pri n danih procesorjih. Časovno optimizacija asinhronega procesiranja se rešuje bodisi dinamično, tj. med izvrševanjem grafa pretoka podatkov, ali pa statično, tj. med prevajanjem programa v graf. Dinamično dodeljevanje je obremenjeno z "overheadom" ter zaradi lokalne optimizacije redko vodi v globalno (časovno in/ali prostorsko) optimalno izvrševanje grafa pretoka podatkov. Zato je smiselno čim večji del optimizacije prenesti v fazo prevajanja. K razrešitvi opisanega problema smo pristopili po izvirni poti. Rešitev, ki jo predlagamo, temelji na uvedbi nekaterih mehanizmov sinhronizacije v asinhrono procesiranje. Graf pretoka podatkov s predhodno analizo opremimo z dodatno informacijo, ki bo koristila pri vlaganju grafa v računalnik ter med njegovim izvrševanjem. Postopek, imenovan statično dodeljevanje, poteka v dveh korakih: Sinhronizacija: Naj bo V množica točk danega grafa pretoka podatkov ter označimo s t{v) čas L ( ) ( t ) 1 Comuni .kac jsb D V( dilc ) > f J < -o ( ) ( ) ( ) ( ) G) -O z 1 C o ( ) ( < Komuni kacijsko vodik ) (a) o 0— o G o o —° o rt^ o o o o E 0 o o o D o o o Kon Lunikac jsko VC dilo o o o 9 -M- ò J O Q O O 6 O W O O o o o v o- o o Komunikacijsko vodilo (b) Slika 16: Heksagonalno procesorsko polje. izvrševanja točke v £ V. Vsaki točki v € V hevristično priredimo trenutek njene sprožitve «(v) tako, da minimiziramo ATn, kjer je n < m. K hevrističnim metodam se zatečemo zaradi NP-polnosti opisanega problema. Graf, katerega točke so opremljene s trenutki sprožitve, imenujemo sinhronizirani graf pretoka podatkov. Sinhro-nizirani graf je torej oplemeniten graf, v katerem je znano, kdaj oziroma v kakšnem vrstnem redu se morajo točkam pridruženi ukazi pričeti izvrševati, da se bo celoten graf izvršil na n < rn procesorjih v najkrajšem času. Dodeljevanje: Vsaki v £ V priredimo indeks 1 < ''^i'") < n, ki pove, kateremu od n procesorjev se bo točka dodelila. Torej razbijemo V v n particij Vi,V2,...V„, kjer je V,- množica točk, ki se bodo izvrševale na i-tem procesorju. Točki imenujemo ločeni, če sta dodeljeni različnima procesorjema. Povezavo med ločenima točkama imenujemo globalna povezava. Množico V je v splošnem moč razbiti na več načinov, seveda pa se omejimo le na konstrukcijo dopustnih particij, ki omogočajo izvršitev grafa v skladu z določenimi trenutki sprožitve s(u). Med dopustnimi partici-jami iščemo optimalno, tj. takšno, pri kateri bo najmanj globalnih povezav. Tako bo zagotovljena tudi najmanjša medprocesorska komunikacija. Rezultat dodeljevanja je, da imamo za vsako v £ V določen indeks 7r(v) ter "označene" globalne povezave. Sinkronizirani graf pretoka podatkov dobimo s pomočjo hevrističnih algoritmov pOptSinh in TOptSiah, za konstrukcijo optimalnih sprožitvenih funkcij. Po pesimistični oceni vračata predlagana algoritma optimalno rešitev v 80% primerov. V algoritmu pOptSinh je uporabljena izvirna ocena za spodnjo mejo potrebnih procesorjev, ki temelji na razširjeni kritični vzporednosti grafa. Ta ocena je po svoji natančnosti v povprečju le za 6.52% slabša od optimalne Fernandez-Bussellove ocene, hkrati pa je njeno določanje za red velikosti hitrejše. Za dodeljevanje predlagamo algoritma MinGlDol in MinGlGor, ki temeljita na optimizaciji medpro-cesorskih komunikacij. V primerjavi z znanimi razvrščevalnimi algoritmi dobimo s predlaganima algoritmoma boljše rezultate, kar potrjujejo analizirani primeri algoritmov za izračun hitre Fourier-jeve transformacije, dinamične analize scene in LU razcepa matrike. Končno je predlagana tudi organizacija računalnika, ki podpira asinhrono procesiranje z elementi sinhronizacije. Nakazane so možnosti realizacije z VLSI podatkovno pretokovnimi mikroprocesorji in podatkovno pretokovnimi polji. Zahvala Raziskavo je finančno podprlo Ministerstvo za znanost in tehnologijo Republike Slovenije po pogodbi C2-0521-106-92. Za strokovno pomoč pri nastanku pričujočega dela gre zahvala mag. Borutu Robiču, sodelavcu Laboratorija za računalniške arhitekture IJS. Literatura [1] E. B. Fernandez and B. BusselL Bounds on the Number of Processors and Time for Multiprocessor Optimal Schedules. IEEE Trans. Computers, C-22(8):745-751, August 1973. [2] Y. E. Chen and D. L. Epley. Bounds on Memory Requirements of Multiprocessing Systems. In Proc. 6th Annu. AUerion Conf. Circut and Syst. Theory, pages 523-531, 1968. [3] R. McNaughton. Scheduling with Deadlines and Loss Functions. Management Sci., 6, October 1959. [4] T. C. Hu. Parallel Sequencing and Assembly Line Problems. Oper. Res., 9(6):841-848, November 1961. [5] C. V. Ramamoorthy, K. M. Chandy, and M. J. Gonzalez. Optimal Schedulling Strategies in a Multiprocessor System. IEEE Trans. Computers, C-21(2):137-146, February 1972. [6] J. Šile, B. Robič, and L. M. Patnaik. Performance Evaluation of an Extended Static Dataflow Architecture. Computers and Artificial Intelligence, 9(l):43-60, 1990. [7] J. Šile and B. Robič. Synchronous Dataflow-Based Architecture. Microprocessing and Microprogramming, 27(l-5);315-322, August 1989. [8] J. Šile and B. Robič. Program Graph Partitioning for Macro-Dataflow. In Proc. ISSM Int'l Workshop on Parallel Computing, pages 327-330, September 1991. [9] J. Šile. Časovna optimizacija., asihronega procesiranja z uvedbo nekaterih mehanizmov sinhronizacije. Doktorska disertacija, Fakulteta za elektrotehniko in računalništvo, Ljubljana, junij 1992. [10] E. L. Lawler. Combinatorial Optimization: Networks and Matroids. Holt, Rinehart and Winston, 1976. [11] K. Mehlhorn. Graph Algorithms and NP-Completeness. Springer-Verlag, 1984. [12] E. G. Coffman et al. . Computer and Job-Shop Scheduling Theory. Wiley-Interscience, 1976. [13] B. Shirazi, M. Wang, and G. Pathak. Analysis and Evaluation of Heuristic Method for Static Task Schedulling. Journal of Parallel and Distributed Computing, 10(3):222-232, November 1990. [14] G. Pathak and D. P. Agrawal. Task Division and Multicomputer System. In Proc. 5th Int'l Conf. on Distributed Computing System, page 273, May 1985. [15] G. H. Golub and C. F. Van Loan. Matrix Computations. The Johns Hopkins University Press, 1989. [16] J. Šile and B. Robič. MADAME - Macro-Dataflow Machine. In Proc. Mediterranean Electrotechnical Conference - MELECON'91, pages 985-988, May 1991. [17] T. Jeffery. The //PD7281 Processor. Byte, pages 237-246, November 1985. [18] J. Šile in B. Robič. Procesor s podatkovno pre-tokovno arhitekturo. Informatica, 10(4):74-80, 1986. [19] D. Fountain. The Transputer Strikes Back. Byte, 16:265-275, August 1991. [20] S. Weiss, I. Spillinger, and G. M. Silberman. Architectural Improvements for Data-Driven VLSI Processing Arrays. In Proc. Functional Programming Languages and Computer Architecture, pages 243259, September 1989. AN INFORMATIONAL APPROACH OF BEING-THERE AS UNDERSTANDING III Keywords: dictionary, Heideggerian Being-there, information, informational formulas, philosophy, text formalization, understanding Anton R Železnikar Volaričeva ulica 8, 61111 Ljubljana This part of the essay includes the remaining dictionary of Fraktur operands and informational operators pertaining to the Heideggerian Being-there as understanding. These dictionaries complete the discussion concerning understanding as informational phenomenality in terms of informational formulas in which operands communicate among themselves in a dynamic, that is processing and operational way. This informational model of understanding approaches the concept of treating texts informationally in the most imaginable entirety. At the end a short comment is added. Informacijski pristop k biti-tu kot razumevanju ni V tem delu spisa imamo še preostali del slovaija fraktumih operandov in slovar informacijskih operatorjev, ki se tičejo Heideggrove tu-biti kot razumevanja. S tema slovarjema se končuje razprava o razumevanju kot informacijski pojavnosti v terminih informacijskih formul, v katerih operandi medseboj dinamično komunicirajo v procesni in operacijski obliki. Ta informacijski model razumevanja se približuje konceptu informacijskega obravnavanja besedil v kar najbolj domiselni celosti. Na koncu je dodana še kratka opomba. Fraktur Operands (A Continuation) «in Being-in | In-Sein, das | v-bit | (2.2), (2.3), (2.4), (7.2), (10.11) □ 58m(U(2Bworld)) Being-in of understanding of the world 1 In-sein des Verstehens der Welt, das | v-bit razumevanja sveta I (10.11) □ ®in-the-world % 'one's-Self possible Being-in-the-world | In-der-Welt-sein, das ) bit-v-svem (2.4), (2.6), (2.8), (7.1), (7.2), (8.4), (10.1), (10.6), (10.10), (12.4), (16.5), (17.1), (17.7) □ Being-one's-Self | Selbstsein, das | bit-pri-sebi; samobit | (10.6) □ Being-possible | Sein-konnen, das | moči-bit I (3.4), (3.6), (3.7), (4.4), (4.6) □ «possibIe(S)) Being-possible of Dasein | Möglichsein des Daseins, das moči-bit tubiti | (4.6) □ ®there Being-there | Sein des "Da", das | tu-bit 1(1.1), (1.2), (1.6), (2.2), (2.4) □ ®there(®world) Being- there of the world | Da-sein der Welt, das | biti-tu sveta | (2.2), (2.4) □ ®with Being-with | Sein bei, das ] pri-bit; bit pri I (12.5) □ ^withC^^) Being-with Others | Mitsein mit Anderen, das | bit pri drugih | (12.5)0 *^comport comporting | Verhalten, das | vedénje | (8.6) □ ^comport(^oneself) comporting oneself | S ich verbal ten, S, const Sconst(®) S) das I Se-vedénje | (8.6) □ constitution | Konstitution, die konstitucija | (16.6) □ Constitution of the Being | Konstitution des Seins, die | konstitucija biti | (16.6) □ Dasein tubit I (1.5), ®discl S)fact exist ®exist(«) 'expl ®general Dasein, das (1.5), (2.2), (2.3), (2.4), (2.8), (3.3), (3.4), (3.5), (3.6), (3.7), (3.1 D,-(4.2), (4.3), (4.4), (4.5), (4.6), (5.1), (5.2), (5.3), (5.4), (5.5), (5.6), (5.7), (6.1), (7.9), (8.3), (8.5), (8.6), (8.7), (8.8),(8.11),(9.1), (9.2), (9.3), (10.2),(10.3), (10.5), (11.1), (12.1), (12.2), (12.3), (13.1), (16.1), (17.2), (17.3), (17.4), (17.5), (17.6), (17.7) □ disclosure | Erschließen, das | razprtje | (7.1)0 factical Dasein | faktische Dasein, das I faktična tubit | (11.1) □ existing; existentiality | Existieren, das; Existenzialität, die | eksistiranje; eksistencialnostj (3.12), (12.5) □ existence of entities | existierende Seiende, das | eksistirajoče bivajočega | (12.5) □ explaining | Erklären, das | pojasnjevanje | (1.6) □ grasp in general | überhaupt | nasploh | (14.7) □ ©grant granting | Vorwegnehmen, das | vnaprej danost | (16.3) □ grasping | Erfassen, das | zapopadanje | (8.10)D ®grasp(U) grasping of understanding | Erfassen von Verstehen, das | zapopadanje razumevanja | (8.10) □ ®known that_which_we_have_such_ _compentence_over; known | Gekonnte, das | znano | (3.2'), (3.2"), (3.2^) □ :^inter interpretation | Interpretation, die interpretacija | (16.7) □ Sinter(^temporal(®)) temporal interpretation of Being | temporale Seinsinterpretation, die | časovna interpretacija biti | (16.7) □ R kind I Art, die | način | (3.3), (8.5), m) mm (8.11), (9.1), (15.4), (16.5), (18.1) □ kind of Being | Seinsart, die ] način biti | (3.3), (8.5), (9.1), (18.1) □ kind of Being of entity | Seinsart des Seienden, die bivajočega način biti (16.5) □ ß(93(S))) kind of Being of Dasein, the | Seinsart des Daseins, die | način biti mbiti | (8.11) □ ^(Ssee(®)) kind of seeing of Being | Art des cogn lOW Sehens von Sein, die | način videnja biti | (15.4) □ kind of cognition | mögliche Erkennmisart, die spoznavni način | (1.6) □ knowing; knowledge | Wissen, das znanje | (5.4), (12.4) □ knowledge of the Self »Selbsterkenntnis«, die samospoznanje | (12.4) □ ^know(^) knowing of Dasein | Wissen des Daseins, das | védenje tubiti | (5.4) □ [Di 3JÌ(ll) SR D, 'opaque mood I gestimmtes | razpoloženo (1.4), (17.2), (17.3) □ mood of understanding | gestimmtes des Verstehens | razpoloženo razumevanja | (1.4) □ nature | Natur, die | narava | (7.6), (7.7) □ opaqueness | Undurchsichtigkeit, (13.1) □ die I neprozomost sDopaque(®) Dasein's opaqueness | Undurchsichtigkeit des Daseins, die imm ^imm(S)) ^perceive ^percept neprozomost tubiti | (13.1) □ self-perception, immanent | immanente Selbstwahmehmung, die | imanentno samozaznavanje | (5.4) □ immanent self-perception of Dasein | immanente Selbstwahmehmung des Daseins, die | imanentno samozaznavanje mbiti | (5.4) □ perceiving | Wahmehmen, das | zaznavanje | (14.3) □ perceptually tracking down and inspecting j wahmehmende Aufspüren und Beschauen, das | 66 zaznavno zasledovanje in ogledovanje | (12.4) □ ^ercept(cfself) perceptually tracking down and inspecting a point called the "Self" | das wahrnehmende Aufspüren und Beschauen eines Selbstpunktes zaznavno zasledovanje in ogledovanje nekega Se | (12.4) □ project projecting | Entwerfen, das | snovanje; projektiranje | (8.5), (8.6), (8.7), (8.10), (8.11), (16.3) □ ^project(<^) what is projected | Entworfene, das | uestion zasnovano (8.10) □ or D, 'quest question | Frage, die | vprašanje (7.7), (17.5), (17.6), (17.7) □ Öquest(®(®)) ^to-hand question about the Being of Dasein Frage nach dem Sein des Daseins, die I vprašanje po biti tubiti | (17.5), a7.6)n ready-to-hand | Zuhandene, das | priročno (7.4), (7.5) □ ®mind state-of-mind | Befindlichkeit, die | počutnost (počutje, nahajalnost) | (1.1), (1.2), (1.3), (4.2), (5.6), (17.1), (18.1) □ ®of-Bemg state-of-Being | In-der-Welt-sein, das I stanj e-biti; svetovno-biti | (8.4) □ ®of-Beiiig(TcharOi)) State-of-Being of the character of understanding | In-der-Welt-sein des Charakters von Verstehen, das stanje-biti karakterja razumevanja | (8.4) □ 6, see seemg »Sehen«, das | »videnje« (14.3), (14.4), (14.6), (14.7), (15.4) □ 6see(®) seeing of Being | Sehen von Sein, das I videnje biti | (15.4) □ ®seize seizing | verstehende Ergreifen, das razumevno prijetje | (12.4) □ ®seize(