Fakulta Informatiky Masarykova Universita v Brn
}
w A| ,-./012345
Vybran partie z informatiky Pednky: prof. RNDr. Jaroslav Krl, DrSc. Zpracoval: David Krsensk
Brno, duben 1995
OBSAH
1
Obsah
1 Paraleln vpoty a potae
1.1 vod do paralelismu : : : : : : : : : : : : : : : : : 1.1.1 Co je to paralelismus : : : : : : : : : : : : : 1.1.2 Vektorov potae : : : : : : : : : : : : : : 1.1.3 Aplikace superpota : : : : : : : : : : : 1.2 MIMD potae : : : : : : : : : : : : : : : : : : : : 1.2.1 Symetrick multiprocesing : : : : : : : : : : 1.2.2 Masivn paraleln architektury : : : : : : : 1.2.3 Transputer rmy INMOS Ltd. : : : : : : : 1.3 Systmy v m ny zprv : : : : : : : : : : : : : : : : 1.3.1 Systmy relnho asu : : : : : : : : : : : : 1.3.2 Prce simultoru : : : : : : : : : : : : : : : 1.3.3 Dekompozice : : : : : : : : : : : : : : : : : 1.3.4 Izolace hard real time st : : : : : : : : : 1.4 Jazyk pro vektorov potae Fortran 90 : : : : : 1.4.1 V voj Fortranu : : : : : : : : : : : : : : : : 1.4.2 Prce s poli ve Fortranu 90 : : : : : : : : : 1.4.3 Datov struktury : : : : : : : : : : : : : : : 1.4.4 Vrstvy : : : : : : : : : : : : : : : : : : : : : 1.4.5 Deskriptory nsobn ch hodnot : : : : : : : 1.5 Jazyk OCCAM 1 : : : : : : : : : : : : : : : : : : : 1.5.1 Zkladn rysy OCCAMu 1 : : : : : : : : : : 1.5.2 Pklady programovn v jazyce OCCAM 1 1.5.3 Alternujc procesy : : : : : : : : : : : : : : 1.5.4 Pole proces : : : : : : : : : : : : : : : : : 1.5.5 Vazby na hardware : : : : : : : : : : : : : : 1.6 Ada : : : : : : : : : : : : : : : : : : : : : : : : : : 1.6.1 Vazby na hardware : : : : : : : : : : : : : : 1.6.2 Modernizace Ady Ada 9x : : : : : : : : : 1.7 Mikrojdro : : : : : : : : : : : : : : : : : : : : : : 1.7.1 Princip mikrojdra : : : : : : : : : : : : : : 1.7.2 Zkladn rysy systmu s mikrojdrem : : : 1.7.3 Komunikace : : : : : : : : : : : : : : : : : : 1.7.4 Rozhran na Mach z C : : : : : : : : : : : : 1.8 Shrnut : : : : : : : : : : : : : : : : : : : : : : : :
2 Softwarov inenrstv
2.1 Tvorba rozshl ch systm : : : : : : : : : : : : : 2.1.1 Souasn situace : : : : : : : : : : : : : : : 2.1.2 Customizace : : : : : : : : : : : : : : : : : 2.1.3 Nebezpe organizanch zm n : : : : : : : 2.1.4 Interview : : : : : : : : : : : : : : : : : : : 2.2 Ekonomick aspekty : : : : : : : : : : : : : : : : : 2.2.1 Nklady na software : : : : : : : : : : : : : 2.2.2 Anal za pnos : : : : : : : : : : : : : : : 2.2.3 Anal za rizik : : : : : : : : : : : : : : : : : 2.2.4 Odhady : : : : : : : : : : : : : : : : : : : : 2.3 Sledovn kvality : : : : : : : : : : : : : : : : : : : 2.3.1 Inspekce : : : : : : : : : : : : : : : : : : : : 2.3.2 Zkuenosti s inspekcemi : : : : : : : : : : : 2.3.3 Vcefzov inspekce : : : : : : : : : : : : : 2.4 Pouvn norem : : : : : : : : : : : : : : : : : : : 2.4.1 Vlastnosti norem a zsady jejich pouvn
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
3
3 3 4 4 5 5 5 6 8 8 9 10 10 10 11 11 11 12 12 13 13 14 15 17 18 19 19 20 23 24 24 26 27 27
28
28 28 28 29 29 30 30 31 31 32 32 32 33 35 36 36
SEZNAM OBRZK 2.4.2 Normotvorn aktivity : : : : : : : : 2.5 Normy v softwarovm inen rstv : : : : : : 2.5.1 V znam norem pi tvorb softwaru : 2.5.2 Pln zajit n kvality : : : : : : : : : 2.5.3 zen kongurace : : : : : : : : : : 2.5.4 Testovn : : : : : : : : : : : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : :
Hyperkrychle stup n = 0 1 2 3 4 : : : : : : : : : : : Adresovn vrchol hyperkrychle : : : : : : : : : : : : : Td n na architektue INMOS : : : : : : : : : : : : : : zen systmu relnho asu : : : : : : : : : : : : : : : Napojen dcho systmu na simultor : : : : : : : : : Historick v voj vyuvn pota : : : : : : : : : : : OCCAM: proces realizujc druhou mocninu : : : : : : : OCCAM: s proces pro tvrtou mocninu : : : : : : : : zen zesilovae : : : : : : : : : : : : : : : : : : : : : : Pole proces pro iteraci druh odmocniny : : : : : : : : OCCAM: denovan propojen procesor : : : : : : : : Pepojovac pole : : : : : : : : : : : : : : : : : : : : : : Pkazov blok disku : : : : : : : : : : : : : : : : : : : : Rozhran systm s mikrojdrem : : : : : : : : : : : : : Mapovn zprv : : : : : : : : : : : : : : : : : : : : : : : Pedvn zprv pomoc sovho serveru : : : : : : : : : Srovnn detekce chyb klasick m testovnm a inspekc : Kombinace klasickho testovn a inspekc : : : : : : : : Pklad modelovn td : : : : : : : : : : : : : : : : : : Typy vazeb mezi tdami : : : : : : : : : : : : : : : : : : Znzorn n instanc : : : : : : : : : : : : : : : : : : : : : Model n-rn relace : : : : : : : : : : : : : : : : : : : : : Instance s vytvoenou n-rn relac : : : : : : : : : : : : Atributy relace : : : : : : : : : : : : : : : : : : : : : : : Pklad relac s atributy zam stnanci : : : : : : : : : : Pklad ternrn relace : : : : : : : : : : : : : : : : : : : Sprvn a nesprvn pouit atribut : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
3 Pel mel
3.1 Architektura klient/server v databzch : : 3.2 Objektov orientovan anal za a nvrh : : : 3.2.1 Principy OOMD : : : : : : : : : : : 3.2.2 Z eho modelovn vychz : : : : : 3.2.3 Denice n-rnch vztah : : : : : : : 3.2.4 Atributy relac : : : : : : : : : : : : 3.2.5 Implicitn nsobnost relace : : : : : 3.2.6 Co vechno lze specikovat u relace : 3.2.7 Vyjden d d n : : : : : : : : : : : 3.2.8 Rekurzivnost td : : : : : : : : : : : 3.2.9 Abstrakce a abstraktn tdy : : : : 3.2.10 Objektov a dynamick model : : : 3.3 Superpotae : : : : : : : : : : : : : : : : : 3.3.1 Architektury superpota : : : : : 3.3.2 Rozitelnost : : : : : : : : : : : : : 3.3.3 Pam typu cache : : : : : : : : : :
Seznam obrzk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
2 37 38 38 39 40 41
42
42 42 43 43 43 44 44 44 45 45 45 45 47 47 49 50
6 6 7 8 9 10 14 14 16 17 18 19 19 24 27 27 34 35 43 43 44 44 45 45 46 46 46
1 PARALELN VPOTY A POTAE 28 29 30 31 32 33 34 35
Pouit znaky agregace : : : : : : : : : Vyjden d d n : : : : : : : : : : : : : Rekurzivnost td : : : : : : : : : : : : : Abstraktn tdy : : : : : : : : : : : : : Denice stavu : : : : : : : : : : : : : : : Pechod ve stavovm diagramu : : : : : Pklad: regultor topen : : : : : : : : : Organizace pam ti v systmech MIMD :
3
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : :
47 47 48 48 49 49 50 50
1 Paraleln vpoty a potae
1.1 vod do paralelismu
1.1.1 Co je to paralelismus
Vme, co znamen slovo paralelismus: programy (procesy) jsou spout ny tak, e b navenek souasn , soub n . Rozliujeme dva typy: fyzick paralelismus pota m skuten vce procesor , pseudoparalelismus programov paralelismus, pota m pouze jeden procesor, b h proces se pepn. V modernch programovacch jazycch je obvykl, e pseudoparalelismus m e, ale nemus vyuvat paralelismus fyzick . Pro vyuit paralelnch v pot mme v zsad tyto d vody: aby to potalo rychleji, aby se toho spotalo vce (vce procesor = vce prce)1 Zopakujeme si nyn prci klasickho potae. Pota m jednu sb rnici spolenou pro instrukce i data. Budeme sledovat fze, kter se opakuj, a jejich asovou nronost: 1. Peti instrukci. Probh ve tyech subfzch: Odesln adresy jde po sb rnici. Dek#dovn adresy (v pam ti). Vyzvednut instrukce (z pam ti). Posln instrukce op t jde po sb rnici. Vidme, e doba ten instrukce lze vyjdit jako 2 tsb + c1 + c2 , kde tsb je as penosu signlu po sb rnici (je omezen rychlost sv tla), konstanty c1 c2 vyjaduj dek#dovn adresy a ten instrukce$ jsou to parametry pam ti. 2. Dek#duj instrukci. Probh v procesoru v konstantnm ase. 3. Peti data. Fze je analogick ten instrukce, dosp jeme ke stejnmu asu proveden. 4. Prove% instrukci. Zle na procesoru, instrukce mohou trvat r zn dlouhou dobu. Vidme, e vzhledem k omezen en signlu po sb rnici rychlost sv tla nem eme zvyovat v kon potae do nekonena. Pro zrychlen je n kolik monost: 1. Men vzdlenosti (krat sb rnice). Programov je ovlivnit nem eme$ zejm i zde jsou urit hranice technick ch monost. 2. Zrychlen pam ti. To je v zsad mon, ale pom rn dosti drah. Nabz se pouit 1
Znm heslo: Republice vce prce, to je nae agitace.
1 PARALELN VPOTY A POTAE
4
n eho v procesoru a velmi rychlho bu%to registry (zvl rychl!), anebo primrn cache (pmo integrovna do procesoru) nebo n eho blzko procesoru a rychlho sekundrn cache. 3. Proudov zpracovn (pipelining). Proveden instrukce se rozlo na etapy, kter se provd j soub n . (Stle se vak jedn o 'klasick( schma programovn.) Z hlediska dosaenho zrychlen je velice efektivn. 4. Superskalrn architektura vce v konn ch jednotek ALU. To je 'tm klasick( programovn, objevuje se zde vak tak ji skuten paralelismus.
5. Vektorov potae SIMD (Simple Instruction, Multiple Data). Vektorov mi potai se nyn budeme zab vat podrobn ji.
1.1.2 Vektorov potae
Principem vektorov ch pota je, e jsou denovny operace pro n-tice (kde n 100). Pitom n-tice jsou uloeny v rychl ch registrech, operace se provd ve vce v konn ch jednotkch. Krom toho stle existuje klasick SISD2 reim, tedy m e pracovat jako klasick pota. Hlavn charakteristikou ji nejsou MIPS (mili#ny instrukc za sekundu), ale MFLOPS mili#ny operac v pohybliv dov rce.3 (Souasn piky v konu jsou dov 103 ; 104 MFLOPS.) Pitom MFLOPS je jen indiktorem v konnosti: skuten v kon zvis na rozm ru )lohy a zejmna na tom, jak rozm r )lohy vyuije vektorovou architekturu. Proto se obvykle uvd )daj n1=2 , co je rozm r )lohy, pi kterm doshne pota poloviny teoretickho v konu. Ukzkou programovn vektorov ch pota je Fortran 90, o kterm se zmnme pozd ji. Fortran 90 pracuje s cel mi poli, existuj jeho pekladae specieln pro vektorov potae. N kter jsou dokonce schopny analyzovat klasick Fortran a 'vyrobit( z n j program vyuvajc maticov operace. Typick m v robcem vektorov ch pota je CRAY tento pota je uren zejmna pro v deckotechnick v poty (koupil si jej nap. Walt Disney pro zpracovn obrzk , kde se vyskytuje spousta v pot ). Stle se vak pohybujeme na poli 'klasickho( programovn, kdy se programtor nestar o to, jak to paraleln b h. Pro typick databzov systmy to pli vhodn nen.
1.1.3 Aplikace superpota
Nejast jmi aplikacemi jsou zejmna: Fyzika. Nron jsou nap. numerick v poty z oblasti hydrodynamiky. Chemie. Jedn se o kvantovou chemii a o v poty s molekulami. Parciln diferenciln rovnice. Op t numerick metody, nap. metoda konen ch element . Simulace. Simulan programy se uplatuj nap. v oblastech: vlen hry, ekologick katastrofy, v poty z ekologie (chovn ekosystm ), astronomie typicky v voj galaxi, poas (op t parciln diferenciln rovnice). Animace. Vyuit v zbavnm pr myslu. Virtuln realita. Zatm je spe ve stdiu pokus . 2 3
Simple Instruction, Simple Data. Jedn se o poet operac t ch jednotliv ch jednotek.
1 PARALELN VPOTY A POTAE
5
Pipomnm, e databze nejsou vhodnou oblast pro aplikace. Vektorov procesory jsou vhodn i pro )lohy s malou zrnitost (granularitou), piem )loha s velkou zrnitost je takov, kterou lze rozd lit na sti (relativn velk), kter se daj eit odd len . Tak nap. )lohy s velkou granularitou jsou nap. SQL databzov operace, oproti tomu malou granularitu vykazuje nap. )loha inverze matice. U vektorov ch procesor se v kon zvyuje dre ne u superskalrnch architektur.
1.2 MIMD potae
Do tto skupiny pat dva typy architektur: vceprocesorov systmy typicky 4 ; 128 procesor . Jedn se o tzv. symetrick multiprocesing, kdy vechny procesy maj stejn prva. masivn paraleln architektury maj a 105 procesor . Mezi n pat i transputery, na n se souste%uje v zkum$ n kter z nich napodobuj neuronov st . Probereme nyn ob skupiny podrobn ji.
1.2.1 Symetrick multiprocesing m dv v tve:
zce vzan. Pedstavuje jej technika tzv. mikrojdra$ znamen to, e paralelitu nahrazuje operan systm (je to
zvldnuteln v UNIXu).4 Voln vzan. Tedy potae spojen do st (potae pitom mohou mt vevnit procesory)$ velice zle na sti a na zrnitosti )lohy. Procesory pitom spolupracuj pomoc v m ny zprv. Symetrick multiprocesing pitom funguje typicky tak, e kdy nap. k sti ty procesor pidme dalch dvanct, systm funguje se estncti procesory$ pracuje vdy procesor, kter je momentln voln , )lohu si 'odn kud( (z bu*eru) vyzvedne. Toto u masivn paralelnch architektur mon nen nelze toti napojit dov desetisce procesor na spolenou sb rnici.
1.2.2 Masivn paraleln architektury
Tato architektura je dna t mito atributy: asynchronn innost, v m na zprv je zvisl na grafu propojen, graf propojen m e b t pitom pevn , nebo nastaviteln . Doporuen postup pi programovn takovho systmu je zhruba nsledujc: 1. Navrhne se graf propojen. 2. Navrhnou se algoritmy pro jednotliv procesory a zprvy, pomoc kter ch budou komunikovat. 3. Realizuje se graf propojen (je-li m niteln ), nebo se zobraz do grafu, kter je k dispozici. Nejast j propojen je hyperkrychle. Pitom hyperkrychle stupn n je graf vytvoen na 2n uzlech takto: pro n = 0 je hyperkrychle izolovan uzel, a hyperkrychli vyho du vytvome ze dvou hyperkrychl stupn o jedna men propojenm stejnolehl ch uzl . Pklady hyperkrychl pro mal n vidme na obrzku 1. Diametr hyperkrychle stupn n, tedy nejv t vzdlenost mezi uzly, je roven n$ stupe vech uzl je tak n. Adresovn hyperkrychle se zavd takto (viz obrzek 2): uzly hyperkrychle stupn n = 1 adresujeme jako 0,1$ pi konstukci hyperkrychle o d vy zavedeme dal binrn slici. Soused se pak li v prv jednom bitu$ pi cest 4 Mikrojdro je systm primitivnch operac, pomoc nich lze naprogramovat operan systm. Pouv ho nap . operan systm Mach, dle Next, s v hradami Linux.
1 PARALELN VPOTY A POTAE
n=0
b
n=1
b b
n=2
b b b b
6
b bb ; b;
b
b bb ; b;
;C ; C C ; C ; ; bb C b C b b; ;# ; ;# ;# ;# # ;
b
n=3
b bb
b b
b
b
; % % ; ;% % ; ; % % ; hhh hh ; ; L ; L ; L ; L;
b bb b
b
b
b
n=4 Obrzek 1: Hyperkrychle stup n = 0 1 2 3 4 n=1
n=2
b b
d ;d d ;d d ;d ; d; ;d 110
1
010 ; ;
b b b b
100
0
10
11
00
01
000
111
011
101
001
n=3
Obrzek 2: Adresovn vrchol hyperkrychle z uzlu do jinho lze nejlpe postupovat tak, e se piblme (posuneme) do uzlu, jeho Hammingova vzdlenost (poet rozdln ch bit ) je men (ili: soused, jeho adresa se v jednom bitu li). Nejv t komern pouit hyperkrychle byla H16 , co pedstavuje 65536 procesor $ jednalo se o pouit v databzi Oracle. Jin mon architektura je propojen do dvojitho stromu: stupe vnitnch uzl je pak roven 6, diametr grafu je log2 n], kde n je poet list . Masivn paraleln architektury se pouvaj zejmna v databzch.
Probl my programovn. Zejmou nev hodou je zejmna to, e kad algoritmus pedstavuje zvltn trik$ zobrazovn musme provd t na architekturu, kter je k dispozici$ proto se programovn pot k s obtemi. Tyto architektury jsou vak vhodn pro standardn, masov pouvan algoritmy vy zrnitosti, jako nap. n kter )lohy linern algebry, a rovn databzov (SQL) operace.5
1.2.3 Transputer rmy INMOS Ltd.
je RISC-ovsk procesor se tymi kanly a s vazbou na spolenou pam . V kon se pohybuje okolo 4 MFLOPS, m k dispozici 4 KB vlastn pam ti. Programuje se v jazyce OCCAM (viz dle), d leit jsou pkazy kanl?x pro vstup, a kanl!x pro v stup.
Pklad 1.1 Tdn n sel na n2 procesorech 5 Zejmna nalezneme uplatn n u databz s dov mili ny a destkami mili n zznam, jako tomu je u bankovnch transakc, a tak nap . v grack ch informanch systmech, kdy mapa je uloen vektorov .
1 PARALELN VPOTY A POTAE
7
1. Rozelu td n sla po dcch a sloupcch. 2. Pomoc sloupcovho stromu zjistm poet ppad , kdy je dkov slo men nebo rovno sloupcovmu. 3. Pokud je v sledek 'hlasovn( j -tho sloupce roven k, pole se sloupcov slo z k-tho procesoru po stromu vpravo (jako j -t setd n slo).
3
4
c34
1
3
c33
c31
c32
4
c43
c44
c41
c42
1
c13
c14
c11
c12
2
c23
c24;
c21
c 3m
4m
2
c c 22 1m % 2m
c
$
c %
Obrzek 3: Td n na architektue INMOS Nzorn nm innost algoritmu ukazuje obrzek 3: jsou zde vyznaena sloupcov a dkov sla$ ipky ukazuj zv ren hlasovn (sla v kroku) a v sledek (dkov slo u konce ipky). Jsou zde t naznaena spojen procesor
v dcch a sloupcch. +asov sloitost tohoto algoritmu na uveden sti je pitom linern.
Pklad 1.2 Gaussova eliminace
Jedn se o znmou )lohu vyeit soustavu rovnic A x = b. Provdme postupn transformaci na troj)helnkovou matici tak, e postupn eliminujeme sloupce pod diagonlou. Postup v jednom kroku je pak tento: 1. Najdu max(aij ) i j m a ozname jej akl . 0
0
2. Pehodm rdky a sloupce tak, aby se akl dostalo na pozici (m m).6 3. Eliminan (m-t ) dek d lm diagonlnm prvkem. 4. Ode vech dk ak , k > m, odetu m-t dek vynsoben akm . Gaussova eliminace m malou granularitu, a proto se na sti patn pot. Pokusme se ji implementovat na k n2 procesorech, a to op t propojenm dkov ch (sloupcov ch) strom . Sloitost (kter je pi b nm v potu rovna n3 ) je zde: 1. Nalezen hlavnho prvku: 'nahoru( se posl (aij i j ), 'dol ( pak maximln prvek, sloitost je log2 n. 0
6
Tyto dva kroky se provd j z dvodu numerick stability jinak by byl algoritmus dky zaokrouhlovacm chybm nepouiteln .
1 PARALELN VPOTY A POTAE
8
2. Pesun hlavnho prvku (vichni v d, kam): log2 n. 3. Vyd len m-tho dku: konstanta. 4. Eliminace: posln amj po sloupci, posln aim po dku oboj log2 n (pracuje soub n )$ modikace v konstantnm ase. Jeden krok tedy prob hne v ase n log2 n, cel v poet (n krok ) pak v ase n log2 n. Masivn paraleln architektury se pouvaj pi n kter ch v potech n kter ch typ nap. poas, zpracovn signl (Fourierovy ady), databze (velk granularita).
1.3 Systmy v m ny zprv
V databzov ch systmech komunikuje databzov stroj s r zn m okolm. V d sledku toho na )rovni SQL nelze adu chyb odhalit. Na druh stran se dky tomu, e databzov stroj je univerzln, snadno realizuje nap. klientserver apod. Znamen to, e jednotliv komponenty systmu se mohou chovat r zn , ale mus poslat stejn zprvy. Realizace je takov, e procesory poslaj zprvy do bu*eru (fronty zprv), a op t podle poteby si je zde vyzvednou. Evidentn lze bez problm pidat dal procesor, a proto je tato architektura vhodn pro )lohy s velkou granularitou.
1.3.1 Syst my reln ho asu
Pro systmy, pracujc v relnm ase, je podstatn poadavek, aby odpov d l na podn t 'vas(. Takov systmy jsou v zsad dvojho typu: vas v pr m ru( nen osudn chyba, kdy je n kdy del odezva nap. terminly$ ' do x msec( vdy je nezbytn odezva do uplynut danho intervalu jedn se o zen proces , jako nap. ' stroje, letadla, jadern elektrrny. NC kolem je odladit nap. systm pro zen vlcovny, ale bez skuten vlcovny (skutenho zenho systmu mlokdo vm p j vlcovnu na hran), a to tak, aby systm pracoval sprvn , vetn reakc na havarijn situace, kter se mohou v provozu vyskytnout. Je tedy teba mimo jin otestovat doby odezvy, pr b n generovat protokol ('ern skka(). Mezi dcm systmem (kter programujeme) a zen m systmem (vlcovna) mus b t pitom denovno komunikan rozhran s driverem$ vlastn softwarov logika dcho systmu pedv zprvy driveru, a ten je posl systmu zenmu. (Viz obrzek 4.) Drivery jsou pitom soust zvltnho programu$ komponenty pak b v reimu 'peer to softwarov logika L L
XX zen z X XX X soustava
p edvn zprv
Obrzek 4: zen systmu relnho asu peer(. Pokud systm ladme, musme pesm rovat tok zprv do simultoru, msto do relnho systmu (viz schma na obr. 5). +innost relnho systmu tak nahradme simultorem$ nhradu nm pitom zprostedkuj v m ny zprv sta, aby simultor reagoval na zprvy stejn jako reln systm. Tuto losoi tak m eme uplatnit pi dekompozici systmu: sprvnost jednotliv ch st pak kontrolujeme tak, e kontrolujeme zprvy, kter produkuj.
1 PARALELN VPOTY A POTAE softwarov logika
.
9
... . . . . . . ... ..
E E . E . E . . LL.............. . . ......... .
log (urnl)
XX zen z X XX X soustava
; ; simultor
Obrzek 5: Napojen dcho systmu na simultor
1.3.2 Prce simultoru
Jdrem simulanho programu je fronta udlost (kalend), kter obsahuje: simulan as podle n j jsou udlosti uspodny, vstupn bod procedury (ukazatel), parametry (do jistho maximlnho potu). Tedy: jakmile nabude as danho okamiku, spust se uveden procedura s takto denovan mi parametry.7 D vodem pro sput n simultoru m e pitom b t pchod zprvy, nebo reln as( tr = t0 , kde t0 je as prvn udlosti. ' Pi zpracovn pchoz zprvy pitom m e dojt ke zm n v kalendi. Vlastn prce simultoru pak probh v t chto krocch: 1. Zastav se systmov hodiny$ nech as je roven tr . 2. Vyhodnot se dol zprvy (existuj-li). 3. Provedou se vechny udlosti (t n par) takov, e t tr , a to v danm poad podle t. 4. Zjist se as prvn udlosti v kalendi, vyhodnot se doba ekn tc = t1 ; tr , spust se hodiny, a simultor se suspenduje na dobu tc . Pokud je pitom kalend przdn , klademe tc = 1. D leit zde je, aby simultor m l nejvy prioritu. Lze provst anal zu, na zklad kter ukeme, e tento simultor funguje tak, jako by to byla reln soustava. Sput n systmu se provede nsledovn : inicializuj se vechny programy, do simultoru se napln udlosti, a sko se na bod 4. Systmov hodiny se vak narozdl od naich pedpoklad zastavit nedaj, musme tedy potat s tm, e urit as b simultor, a proto zavedeme nsledujcm zp sobem opravu: zapamatujeme si tedy pouze jejich hodnotu tr , a v bod 4 zjistm znovu jejich stav, a odetenm dostaneme as t ; tr , po kter pracoval simultor. Tuto dobu si stm do pomocn prom nn pom, a ukldm pak (t ; pom mesg). 7
Pro pseudoparaleln zpracovn by bylo t eba umonit i pozastaven procedury.
1 PARALELN VPOTY A POTAE
10
1.3.3 Dekompozice
dc systm, o kterm jsme hovoili, m eme pitom realizovat jako n program , kter komunikuj pomoc zprv. To m urit v hody: Kad program m pom rn )zk rozhodovn, mohu tedy snadno simulovat jeho okol (nahradm jej genertorem zprv). Komponenty lze pst v r zn ch programovacch jazycch (je teba zajistit pouze konzistenci zprv). Systm m e b t i distribuovan . Celkov snaz realizace. Nev hody oproti tomu jsou: Administrace penosu zprv (reie). Je teba tuto komunikaci zajistit$ spotebuje urit as, proto nem eme pout na zazen, kter m problmy s asem (nesth). N kdy pli )zk zprva je mal.
1.3.4 Izolace hard real time st
Pod pojmem 'hard real time( zde rozumme sti, kter bezprostedn a nejvce zvis na relnm ase, tedy pm zen. (Nap. v automatizovanm skladu, kde z databze vybrme )daje, na jejich zklad nechme pohybovat zaklada, je prv zaklada hard real time mus se zastavit pesn tam, kde m.) V systmu UNIX se potebn hard real time vlastnost ned zajistit je zde systmov program cron, kter 'obas( uklz bu*ery, a ten se ned rozumn peruit (ned se tedy zajistit potebn priorita).
1.4 Jazyk pro vektorov potae Fortran 90
vodem si pipomeme historick v voj vyuit pota , jak nm jej zachycuje obrzek 6. V prvopotcch byly 100 % real
hry time
DB
Cobol VTV 0% 1955
1965
1975
1985
1995
Obrzek 6: Historick v voj vyuvn pota
potae ureny v hradn pro v deckotechnick v poty (VTV). V edest ch letech dochz k jejich masov jmu nstupu i mimo sfru v zkumu v oblasti hromadnho zpracovn dat (jazyk Cobol), co je umon no zv enm spolehlivosti a snenm ceny pota . Podl v deckotechnick ch v pot pitom kles. Dle v letech sedmdest ch nastupuj databze a vytlauj dosud masov uvan Cobol. Pozd ji pib v vyuit pota na poli real time systm , a poslze i fenomn poslednch let zbava, hry. Vidme, e Cobol postupn zcela ustupuje$ podl v deckotechnick ch v pot kter jsou pedstavovny jazykem Fortran, v relativnm vyjden kles, avak stle maj ve sv t v poetn techniky sv msto.
1 PARALELN VPOTY A POTAE
11
1.4.1 Vvoj Fortranu
Jazyk Fortran8 vznikl v roce 1956 pro usnadn n programovn v deckotechnick ch v pot . Postupn se rozil, a v roce 1966 se dokal sv velk normy Fortran 66 neboli Fortran IV, kter byla dlouho v platnosti. V roce 1977 nsledoval Fortran 77, kter 'uzkonil( n kter pouvan rozen zavedl textov prom nn (typ CHARACTER), blokov IF. V osmdest ch letech se vedou spory, co dl co se m do nov normy zakotvit. (V deck veejnost je toti konzervativn a m v i zm nm odpor, rmy nejev o novou normu zjem, nebo trh na Fortran je pom rn mal .) Pipravovan norma je oznaovna jako Fortran 8x, poslze vznik norma Fortran 90 (v roce 1990). V novm Fortranu 90 ji nachzme prvky obvykl v ostatnch modernch programovacch jazycch, jako jsou datov struktury, dc struktury CASE a WHILE, voln formt programu (odpad pevn v znam sloupc , lze pst vce pkaz na dku). Pokrauje standardizace, jsou nov vstupy a v stupy, existuj prostedky pro superpotae (vrstvy, operace s cel mi poli viz dle). Jako zastaral (tj. prvky, kter v pt verzi Fortranu zmiz) jsou kategorizovny: aritmetick IF, koncov pkaz spolen vce DOcykl m, pkaz ASSIGN a tzv. assigned GOTO. Pro denovn pesnosti reln ch sel je vedle p vodnho REAL a DOUBLE PRECISION (z Fortranu IV) a nov jho REAL *8 (z Fortranu 77, pesnost v byte) zaveden popis KIND(9,99) denujc poadovanou pesnost mantisy a exponentu. Vechny nov rysy jsou pitom zapracovny tak, aby bylo lze pouvat rysy star a programtoi nebyli nuceni m nit sv zvyklosti. Pro zajmavost: denice normy Fortranu IV byla na 38 stranch, Fortran 77 na 250 stranch, a Fortran 90 zabr ji 360 stran...
1.4.2 Prce s poli ve Fortranu 90
Zejm nejsiln jm nstrojem jsou ve Fortranu 90 jsou pkazy pro zpracovn pol. Pitom je zachovna ortogonalita typ, co znamen, e nov typ je mon zcela plnohodnotn pouvat jako typ star . Take mm-li typ matice, mohu matici pedvat jako parametr, a m e b t dokonce funkn hodnotou. Deklarace se provd tak, e (narozdl od starch verz Fortranu) uvedeme vechny atributy pohromad : REAL,DIMENSION(0:10),SAVE::A,B,C
narozdl od dv jho9 REAL A,B,C DIMENSION A(0:10),B(0:10),C(0:10) SAVE A,B,C
Jsou mon obecn meze (doln mez r zn od jedn) a libovoln dimenze (dve jen trojrozm rn pole).10 Z matic je mon d lat nespojit v ezy sloupce, dky. Existuj rovn konstanty typu pole lze pak pst (/1,2,3,4/) =(/I,I=1,4/) (/1.1,1.2,1.3,1.4/)=(/I*0.1,I=11,15/)
V pkladech je zrove ukzka pouit cyklu v inicializaci.
1.4.3 Datov struktury
Nov datov typy (zznamy) si m eme denovat takto: TYPE TRIPLET REAL,DIMENSION(3)::VERTEX END TYPE TRIPLET TYPE (TRIPLET),DIMENSION(10)::T 8 9 10
Nzev je zkratkou za FORmula TRANslator, tedy p eklada vzorc. Popis SAVE denuje prom nn, jejich hodnota bude po oput n modulu a op tovnm vstupu zachovna. Pole vych d jsou hojn vyuvna nap . v teorii prunosti tenzory.
1 PARALELN VPOTY A POTAE
12
Takto denujeme pole T poloek novho typu$ pro pstup ke slokm pak peme T(2)%VERTEX. Fortan 90 podporuje t ukazatele a dynamicky deklarovan prom nn: REAL,POINTER::SON REAL,POINTER,DIMENSION(:,:)::A ALLOCATE(SON,A(N,N)) DEALLOCATE(A)
Zde jsme vytvoili ukazatel na matici A (dvojteky bez uveden mez uvd j jen rozm r), a pot jsme matici alokovali.
1.4.4 Vrstvy
elem vrstev je v ez z nsobn hodnoty (z pole). Tak nap. z pole REAL,DIMENSION(N,N)::A,B
m eme vybrat tet sloupec: A(1:N,3), tot strun ji: A(:,3), nebo dokonce jeho lich prvky: A(1:N:2,3) Piazen pol lze pst strun A=B, ppadn A=f(B), anebo (m-li to, vzhledem k rozm r m smysl) A+B.
1.4.5 Deskriptory nsobnch hodnot
Ukeme si nyn techniku, kter je pouvan pro tyto operace s poli. Za deskriptor budeme povaovat tveici (dimenze, adresa prvnho prvku, meze index, dlka typu elementu). Tak matice A(1:N,1:N) m deskriptor
(2 &A(1 1) 1 N 1 N 4) Vidme, e adresu prvku A(i,j) spoteme jako (i ; 1) 4 N +(j ; 1)+&A(1 1). Zejm by se dal v poet usnadnit,
pokud by deskriptor byl ve tvaru Potom by toti stailo
(2 &A(0 0) 1 N 4| {zN} 1 N K1:::krok
4 )
|{z}
K2 :::krok
&A(i j ) = &A(0 0) + i K1 + j K2
m se v poet adresy nejen znan zpr hledn a zjednodu, ale zrove dostvme i n co obecn jho: m eme takto reprezentovat v e popsan v ezy z pol, nap. vektor A(1:N,3) bude mt deskriptor
(2 &A(0 3) 1 N 4 N ) Vektorovmu procesoru pak tedy m eme pedvat nap. prv takovto deskriptory. Piazen zde funguje tak, e se zavol procedura pro piazen, kter se pedaj vyhodnocen deskriptory lev a prav strany. Hodnoty (prom nn) maj pitom tak statickou st: skalr (jednotliv prom nn) je adresovna staticky, pole m deskriptor nsobn ch hodnot, struktura sestv z posloupnosti statick ch st jednotliv ch poloek. Dynamickou st pitom tvo hodnoty zskan indexovnm. Nejsnaz een je pak zavst deskriptor typu: pro skalry k#d,
1 PARALELN VPOTY A POTAE
13
pro nsobnou hodnotu k#d 'dimension( a deskriptor hodnoty prvk , pro datovou strukturu posloupnost deskriptor pol, tvar struct poet pol, deskriptory pol. U parametr sta denovat dimenzi a doln meze. Ve Fortranu 90 existuj jet dal operace nad poli: SQRT(A) provede odmocninu nad vemi prvky, WHERE (A>0.0) A=1.0/A provede pkaz nad vemi prvky, splujcmi podmnku. Piazen pol lze provst i u pol s r zn mi mezemi sta stejn rozm r (poet prvk ). Nov Fortran rozliuje t vstupn a v stupn parametry (ve starch verzch bylo pouze voln odkazem s v jimkou ppadu, kdy skuten parametr byl v raz).
1.5 Jazyk OCCAM 1
je jazyk nzk )rovn pro multiprocesorov systmy. Samotn transputer je pitom RISC-ov procesor se 432 KB lokln pam ti, tymi vstupn v stupnmi kanly a jednotkou pro operace v pohubliv dov rce (Floating Point Unit FPU). Jazyk OCCAM 1 byl v born npad mal (slab) rmy INMOS Ltd. (UK)$ bohuel jej nedothli do konce, trh ovldly rmy z USA nejv znamn j je rma Connection Machines. OCCAM 1 je vhodn pro n kter algoritmy, a zejmna pro vysv tlen princip . Jeho rozenm je OCCAM 2, zejmna obsahuje typovost.
1.5.1 Zkladn rysy OCCAMu 1
V OCCAMu 1 je kad pkaz procesem. Nejd leit j pkazy jsou: vstup: KANL?PROMNN v stup: KANL!VRAZ piazen: PROMNN:=VRAZ Procesy se pitom daj skldat paraleln konstrukce PAR, sekvenn konstrukce SEQ, alternativn (podmn n ) konstrukce ALT (IF). Je zaveden pevn formt programu, podzen konstrukce se odsazuje o jednu mezeru. Jsou zde jen omezen monosti pro tvorbu podprogram a pol, jazyk je mlo ortogonln. Doporuen postup programovn je pitom tento: 1. Napsn programu. 2. Simulace v pseudoparalelnm m#du. 3. Zobrazen proces . 4. Vlastn (paraleln) v poet. D sledkem nedotaenho v voje je mimo jin i to, e asto b v s transputer napojena jako periferie k PC.
1 PARALELN VPOTY A POTAE
14
C1-
X
X*X
C2-
Obrzek 7: OCCAM: proces realizujc druhou mocninu
1.5.2 Pklady programovn v jazyce OCCAM 1 Pklad 1.3
Ukeme si, jak se v OCCAMu nape program (proces) pro v poet druh mocniny. Zrove nm tento pklad bude demonstrovat losoi jazyka. Proceduru (proces) budeme povaovat za krabiku( (ernou skku) s denovan m vstupem a v stupem$ s okolm komunikuje prostednictvm kanl tak, jak' nm to ukazuje obrzek 7. Program pak napeme nsledovn : VAR X: SEQ C1?X C2!X*X SEQ ...
Nyn si vimn me n kter ch rys : Prom nn nemaj specikovan typ. Pkaz pro ten ek, a n co pijde (pozor na deadlock!). Pkaz pro zpis ek, a si n kdo v stup odebere (je to v souladu s pravidly CSP). Posledn dek ukazuje, jak by se (bez odsazen) psala dal konstrukce programu$ pokud bychom ji odsadili, zskme vnoenou konstrukci. Pokud chceme proces, kter bude pracovat 'neustle(, tedy bude vdy dvat na v stup druhou mocninu vstupu, napeme (op t odsazen ) konstrukci WHILE: WHILE TRUE VAR X: SEQ C1?X C2!X*X
2
Pklad 1.4
Nyn si ukeme tvoen st vytvome ze dvou umocova na druhou( proces, umocujc na tvrtou, jak nm to ukazuje schma na obrzku 8. Kanl CM pitom' pat ob ma proces m, a proto napeme globln deklaraci.
C1-
X
X*X
CM-
Y
Y*Y
C2-
Obrzek 8: OCCAM: s proces pro tvrtou mocninu
1 PARALELN VPOTY A POTAE CHAN CM PAR WHILE TRUE VAR X: SEQ C1?X CM!X*X WHILE TRUE VAR Y: SEQ CM?Y C2!Y*Y
15
(pro cel sek) (oba WHILE paraleln) (prvn krabika)
(druh krabika)
(Vidme, jak neikovn je odsazovn, kter musme pesn dodret.)
2
Pklad 1.5
V pedchozm pkladu jsme m li opakovn k#du. Ukeme, si, jak je mon toto napsat pomoc podprogram . Ty jsou oteven, co znamen, e kad voln vytvo staticky nov proces. PROC square (CHAN source,sink)= WHILE TRUE VAR X: SEQ source?X sink!X*X
Takto m eme pedchoz pklad zkrtit na CHAN CM PAR square (C1,CM) square (CM,C2)
Dalo by se ct, e popis PROC je vlastn makro, protoe takto se vytvo dva procesy.
1.5.3 Alternujc procesy
Ukeme si nyn n co, co je obdobou vcecestnho ekn v Ad .
Pklad 1.6
Budeme programov ovldat zesilova (amplier), kter ovld motor (engine) pomoc dvou tlatek (zrychlen, zpomalen) viz schma na obrzku 9. Stisk tlatka Louder znamen pitom zv en v konu o jednotku, stisk Softer snen v konu o jednotku. Makat mohu cokoliv, program ek pouze na jeden z nich. Pouijeme konstrukci ALT louder?ANY softer?ANY
kter ek na spln n n kter z podmnek, tedy a se n jak (jakkoli ANY) hodnota objev na ktermkoli kanle. Cel program pak vypad takto: VAR volume: SEQ volume:=0 WHILE TRUE ALT louder?ANY SEQ
(souasn hodnota) (inicializace) (nekonen cyklus) (pepna, provede se vtev, kter se oteve dve) (prvn vtev)
1 PARALELN VPOTY A POTAE
16
louder @
@ R @
softer
;
;
;
ampli er
engine # "!
Obrzek 9: zen zesilovae volume:=volume+1 amplifier!volume softer?ANY SEQ volume:=volume-1 amplifier!volume
(druh vtev)
2
Pklad 1.7
Pokud nyn navc chceme, aby hodnoty volume byly n jak omezeny, pouijeme sloenou podmnku: DEF max=10,min=2 VAR volume: SEQ volume:=min WHILE TRUE ALT (volume<max) & louder?ANY SEQ volume:=volume+1 amplifier!volume (volume>min) & softer?ANY SEQ volume:=volume-1 amplifier!volume
(pojmenovan konstanty) (souasn hodnota) (inicializace) (nekonen cyklus) (pepna...) (prvn vtev)
(druh vtev)
2 Tvar 'str( (guards) m e b t pitom tento: podmnka & vstupn proces ekm na podmnku a vstup, podmnka & SKIP ekm jen na podmnku, podmnka & WAIT ek na podmnku, nejmn vak uren as (tedy podmnka se zane zkoumat a po uplynut doby). Ukeme si jet ekn na asov limit WAIT.
Pklad 1.8
1 PARALELN VPOTY A POTAE DEF timeout=100: VAR clock,X: SEQ clock:=NOW ALT C1?X C2!ok.message#x WAIT NOW AFTER clock+timeout C2!timeout.message
17
(lokln as) (str", guard) (ekn na as)
2 Pro )plnost zde jet uve%me tvar pkazu IF: IF i=1 out!x i=2 out!y
2
1.5.4 Pole proces
si budeme demonstrovat na nsledujcm pkladu, v n m budeme potat hodnotu druh odmocniny znmou NewtonovouRaleighovou iteran metodou, kdy nov odhad y spoteme ze starho y ze vztahu 0
y = 0
y + xy
2
Procesory realizujc n iterac jsou pitom zapojeny tak, jak to ukazuje obrzek 10. x,x/2-
NR krok 0
x,est
-
NR krok 1
x,est -
x,est -
......
NR krok n-1
Obrzek 10: Pole proces pro iteraci druh odmocniny
Pklad 1.9
Nejprve si nadenujeme jeden proces: VAR X,Estimate: SEQ values$i]?X values$i]?Estimate values$i+1]!x values$i+1]!(X/Estimate+Estimate)/2
Nyn spojme tyto procesy do pole proces
CHAN values$n+1] PAR i=$0 FOR n] WHILE TRUE VAR X,Estimate: SEQ
root-
1 PARALELN VPOTY A POTAE
18
values$i]?X values$i]?Estimate values$i+1]!x values$i+1]!(X/Estimate+Estimate)/2
Cel program pro odmocovn pak vypad takto: PAR PAR i=$0 FOR n] ... (viz v&e) WHILE TRUE (prvn iterace) VAR X: SEQ Root?X values$0]!X values$0]!X/2 WHILE TRUE (posledn iterace) VAR root SEQ values$n+1]?ANY values$n+1]?root
Poet iterac slo n mus v tomto ppad b t zadno pedem.
1.5.5 Vazby na hardware
V pkladu 1.4 jsme si ukzali, jak se dva procesy spoj do komunikujc st . Nyn naveme, a to vazbou na konkrtn hardware a vstupn v stupn kanly: CHAN CM PLACED PAR ALLOCATE 0 PORT 0:-CM PORT 1:-C1 LOAD 1 buffer(C1,CM) ALLOCATE 1 PORT 0:-CM PORT 1:-C2 LOAD 0 buffer(CM,C2)
(definujeme, co kam pat) (obsazuji, definuji 0-t procesor) (mapovn kanl') (nvaznost na 1) (procesor . 1) (mapovn kanl') (nvaznost na 0)
Tm se denuje propojen zachycen na obr. 11. Aby se nemuselo realizovat fyzick propojen, nalo se nsledujc
C1 1
0
0 CM 0
1
1 C2-
Obrzek 11: OCCAM: denovan propojen procesor
een: ada transputer je zapojena k tzv. p epojovacmu poli (switching array), kter funguje podobn jako telefonn )stedna (schma na obr. 12). Pepojen se pitom d m nit i b hem v potu, ale tato monost se pli asto nepouv. ekli jsme, e OCCAM je produktem britsk rmy INMOS Ltd.$ americk rmy naopak zvolily pevn propojen, automatick mapovn, a cesty zprv jsou ureny globln . V souasn dob se zkoum, jestli je mon nemt to propojen 'natvrdo(.
1 PARALELN VPOTY A POTAE
19
......
Obrzek 12: Pepojovac pole
1.6 Ada
1.6.1 Vazby na hardware
Ada je modern programovac jazyk, vhodn zejmna na programovn realtime systm (komunikujc procesy). Ukeme si ale, e v Ad lze tak programovat 'na nzk )rovni(, nap. v absolutnch adresch, je mon 'na bit( popsat strukturu hardwarov ch zprv apod.
Pklad 1.10
Pro denici povel n jakho zazen m eme tak pst type command is (start,stop,repeat,hold,resume)# order: command# for command'size use 8# for order use at 16#8001## for command use (start=>1,stop=>2,repeat=>4,hold=>8,resume=>16)#
se zejm m v znamem denujeme v tov typ specikaci hodnot.
command
a prom nnou
order,
dle velikost, umst n, a pesnou
Pklad 1.11
Podobn je mon programovat sedmisegmentov displej pokud si nap. oslujeme segmenty od nuly pro horn segment, dle proti sm ru hodinov ch ruiek, prostedn segment bude mt slo 6, m eme pst type digit_display is ('0','1',...,'9','C','d',...)# for digit_display use ('C'=>15,'1'=>48,...)#
piem vidme, e hodnoty v tovho typu m eme oznaovat i znaky (nejen identiktory).
Pklad 1.12
V dalm pkladu budeme implementovat doskov operace, piem pkazov blok disku v systmu vypad tak, jak jej zachycuje schma na obr. 13. (Hv zdiky oznauj bity, jejich hodnota nen vyuita.) Pitom tveice bit , Byte: 0 - 1 2-3 4-5 6-7
f
* pb l * * * * * * * * diskov adresa adresa pam ti poet penesen ch slov
Obrzek 13: Pkazov blok disku oznaen jako f, oznauje operaci (funkci): 0001 znamen ten, 0010 zpis,
1 PARALELN VPOTY A POTAE
20
zpis s testem (verikac), 1000 hledn (seek). Dle mme v pkazovm bloku ti indiktory p zpis zakzn, b disk b (busy), l vypnuto (o* line). V Ad pak pkazov blok m eme popsat nsledovn : 0100
type disk_function is (read,write,write_and_verify,seek)# type disk_kontrol_record is record function_code: disk_function# disk_address: integer# store_address: system.addres# words_transfered: positive# write_not_permitted: Boolean# disk_busy: Boolean# disk_off_line: Boolean# end record#
Pokud z staneme u tto deklarace, umst kompiltor poloky zznamu tak, e to fungovat nebude$ musme proto dle specikovat for disk_function use (read=>1,write=>2,write_and_verify=>4,seek=>8)# for disk_function'size use 4# -- 4 bity for disk_control_record use record function_code at 0 range 0..3# -- at .. adresa v byte disk_address at 2# store_address at 4# words_transferred at 6# write_not_permitted at 0 range 5..5# disk_busy at 0 range 6..6# disk_off_line at 0 range 7..7# end record# for disk_control_record'size use 8*system.storage.unit# control_block: disk_control_record# for control_block use at 8#77340##
Nyn je ji vechno umst no tak, jak m$ navc je struktura maximln zhut na, pon vad jsme pikzali pout 8 bajt .
1.6.2 Modernizace Ady Ada 9x
Ada je jazyk, kter se pom rn intenzivn vyvj$ posledn modernizaci zaila v roce 1983. Autoi jazyka se zhldli v mechanismu sch zky (rendezvous) natolik, e v rmci zachovn istoty jazyka neobsahovala Ada nic jinho. Pesto nov verze Ady ji obsahuj nap.: d d n, synchronizaci na spolenou pam (protected variables), zobecn n monost tvoen adres, odstran n n kter ch chyb pedel ch verz. N kter z rys si pedvedeme podrobn ji.
1 PARALELN VPOTY A POTAE
21
Ddn. Ukeme si, jak se d v Ad napsat pklad s d dinost, kdy nejprve nadenujeme typ rectangle (obdlnk), a poslze jej s pomoc d dinosti 'rozme( na kvdr (cuboid). Pklad 1.13
type rectangle is tagged -- tagged znamen, "e jej lze roz&iovat record length: float# width: float# end record# type cuboid is new rectangle with record height: float# end record# type shape is new rectangle with null record# function size(R:in rectangle) return float is begin return R.length*R.width# end size# function size(C:in cuboid) return float is begin return size(rectangle(C))*C.height# end size#
2 Vyuit d dinosti je pitom zpravidla v hodn j ne variantn zznamy: pokud pidvme n co novho, nemusme (je-li to vhodn ud lan) znovu rekompilovat st pro rectangle jedn se o tzv. late binding.
Odkazy na podprogramy. Novinkou jsou ukazatele na procedury a funkce, jak znme nap. z jazyka C. Napemeli v Ad deklaraci
type trig_function is access function(F:float) return float# T: trig_function# X,Theta: float#
(kde access vytv ukazatel), m eme pst nap. T:=sin'access# X:=T(Theta)# X:=T.all(Theta)#
piem posledn tvar s all je nutn , pokud nem funkce parametry.
Zobecnn odkaz. Vid li jsme, jak se v Ad p mimo jim i odkazy na podprogramy. Vechno ale m eme zobecnit, co je zajmav i z hlediska dalho monho v voje. Pi prci s adresami poadujeme zejmna obecnost (abych mohl mt adresu od veho), bezpenost (nelze pout odumel ( odkaz), ' rychlost.
1 PARALELN VPOTY A POTAE
22
Pitom je zajmav, e se a do vytvoen Ady nepodailo splnit vechna tato kritria. V Ad pitom (za cenu jistho snen bezpenosti) mohu ukazovat i jinam, ne na haldu (heap): type Int_Ptr is access all integer# IP: Int_Ptr# I: aliased integer# -- aliased => lze zpstupnit access IP:=I'access#
Pitom prom nn IP nesm mt ir oblast platnosti (scope) ne I. Ukazatel se ukld do zvltn oblasti (ne na hromadu), a tm dochz ke zrychlen. Pro pouit v potenciln nebezpen ch konstrukcch jsou pom rn komplikovan podmnky. Dle si vimn me, e ve je testovateln v dob kompilace. Jet si ukeme, jak lze odliit odkaz na konstantu: type Const_Int_Ptr is access const integer# CIP: Const_Int_Ptr# C: aliased constant integer:=815# CIP:=C'access#
2
Semafory. Vme, jak funguje semafor: d se ct, e jeho funkce je podobn elezninmu autobloku: vpust 'dovnit(
(do kritick sekce, resp. na tra) pouze omezen poet poadavk (proces , resp. vlak ). Pi oteven semaforu (oput n) se pitom dostane dle jeden, anebo vichni (pouiteln nap. u ten a psa ). K semaforu pistupujeme v zsad pomoc dvou operac: wait(P) ekej, pi pr chodu zavi, signal(P) oteven, uvoln n. D leitou vlastnost je pitom chovn pi kolizi, tedy pi souasnm pchodu poadavk : mus b t lhostejno, kter se vybere jako prvn.
Spolen pam. Ukeme si, jak se v Ad programuje kritick sekce pro pstup ke spolen prom nn. protected Variable is function Read return Item# procedure Write (NewValue: Item)# private -- nevidm vnitn strukturu Data: Item end Variable# protected body Variable is -- realizujeme vzjemn vylouen function Read return Item is begin return Data# end Read# procedure Write (NewValue: Item) is begin Data:=NewValue# end Write# begin -- inicializace Data:=Init_Value# end Variable#
2
1 PARALELN VPOTY A POTAE
23
Implementace Dijkstrova semaforu. protected type C_Sema (Start_Count: integer:=1) is -- parametr m implicitn hodnotu entry Secure# procedure Release# function Count return integer# private current_count: integer:=Start_Count# -- inicializace end C_Sema# protected body C_Sema is entry Secure when current_count>0 is -- nen-li splnna podmnka, ekm begin current_count:=current_count-1# end Secure# procedure Release is begin current_count:=current_count+1# end Release# function Count return integer is begin return current_count# end Count# end C_Sema#
Zde Secure odpovd Dijkstrov operaci P (obsazen), Release operaci V (uvoln n)$ jedn se o n-rn semafor. Kdy se to realizovalo, podailo se oproti sch zce asi dvacetinsobn zrychlen.
1.7 Mikrojdro
Je znm v c, e operan systm Unix se rozil dky sv snadn penositelnosti na r zn platformy. Penos se d pitom realizovat tak, e pelome jeho zdrojov text v jazyce C$ peklada jazyka C na nov pota sestrojme takto: 1. Mme kompiltor z jazyka C do strojovho k#du M, napsan v jazyce C (ozname C ! M C ]). 2. S pom rn malou nmahou napeme C ! M 1 C ] na nov pota. 3. Nov peklada s pomoc starho pelome zskme kov peklada C ! M 1 M ], tedy peklada jazyka C do strojovho k#du novho potae, kter vak pracuje na starm. 4. Nyn ji z Unix C ] snadno zskme Unix M 1]. Peklada C ! M M ] mohu pitom z jeho zdrojov podoby C ! M C ] zskat nap. takto: 1. Vezmeme C 1 ! M M ], ten zskme 'n jak(, nap. pomoc C ! M SETL]. (Zde C 1 je podmnoina jazyka C.) 2. Napeme C 2 ! M C 1], piem C 2 C 1. Ten pelome na C 2 ! M M ]. 3. V n kolika dalch iteracch rozme na plnohodnotn C. Toto pekldn vak nee penos mezi operanmi systmy.
1 PARALELN VPOTY A POTAE
24
Poznmka. Pro linkovn jsou v objectu ptomny dva seznamy: export kter jmna jsou v modulu denovna a dna k dispozici, import co je poteba denovat (co poadujeme z jinho modulu). Sestavovac program (linker) pak pracuje s t mito odkazy.
1.7.1 Princip mikrojdra
Zkladem operanch systm , kter pouvaj mikrojdro (microkernel), je denovan rozhran mezi strojov nezvisl mi stmi operanho systmu, a mikrojdrem, kter je zsti zvisl na hardwaru (viz obrzek 14). Princip
4.3 BSD
HP-4X OS-2
NT
Microkernel MACH Obrzek 14: Rozhran systm s mikrojdrem mikrojdra byl poprv pouit v systmu Mach (dnes Mach 3), dle jej vyuvaj operan systmy jako NeXT, Windows NT, Cairo, CHORUS. V modelu operanho systmu tak vstupuje mezi hardware a jdro operanho systmu dal vrstva mikrojdro. Na mikrojdru se tedy nejlpe programuj systmy, kter maj jednoduch rozhran.
1.7.2 Zkladn rysy syst mu s mikrojdrem Zkladn pojmy. Mikrojdro pouv nsledujc terminologii: task execution environment: jsou to zde 'zdroje(, jako pam , porty, procesory$ thread vlkno: jedn se vlastn o proces, ale se zdroji sdlen mi s ostatnmi vlkny )lohy (task)$ d se ct, e
vlkno pedstavuje v poet$ port fronta zprv: odeslatel mus mt prvo zpisu, pjemce prvo ten$ zprvy pitom nemus jt fyzicky pes port$ port set mnoina port se spolenou frontou$ message zprva, je to 'typed collection of objects(: bu%to data, nebo odkaz na data, nebo prva pstupu k port m$ memory objects zazen na prci s pam t, je velice obecn. Funguje to pitom i v distribuovanm prosted (podstatn 'trik( je skryt v portech). Dle v mikrojdru pracuje ln vyhodnocovn odkaz (a je to nezbytn).
Sprva proces. Zatmco Unix vdy vytv nov zdroje (kopie adresovho prostoru) a vytv se jedno v potov
vlkno, obecn to tak b t nemus. Vlkno m e b t running nebo suspended$ jsou zde proto operace thread_suspend(id) a thread_resume(id), kde id je systmov slo vlknu uren. Vlkna pitom vytv tyto funkce (pozor prosted se vytv jinak): cthread_fork vytvo nov vlkno,
1 PARALELN VPOTY A POTAE
25
cthread_exit
ukon vlkno, cthread_join ekm na syny (po fork-u), cthread_detach alternativa fork-u, po kter nikdy nebude join, cthread_yield vrcen procesoru. S t mito prostedky se d napsat jak round robin, tak asov kvantum.
Prostedky pro vzjemnou synchronizaci. Existuj dva, a to: spolen promnn tedy kritickou sekci provdm pomoc prom nn x$ k dispozici mme funkce mutex_alloc(x)
vytvoen prom nn pro vzjemn vylouen (mutual exclusion mutex)$ mutex_lock(x) ekm, a bude volno, potom zamknu$ mutex_unlock(x) odemknut, signal$ mutex_wait(x) ekm na uvoln n$ mutex_free(x) zruen prom nn. podmnkov promnn nhraka za neimplementovan monitor: condition_alloc(c) vytvoen podmnkov prom nn$ condition_free(c) zruen$ condition_wait(c,m) znamen vlastn if c then wait(m) endif, tedy ek, a c nabyde hodnoty true, a pak se ek na m$ provd se ale jako ned liteln akce$ condition_signal(c)
2
Implementace monitoru. Ukeme si ppad producer-consumer. mutex_alloc(m) condition_alloc(nonempty,nonfull)
-- dv promnn
producer repeat mutex_lock(m) while (full) -- pokm condition_wait(nonfull,m) -- zapi& do bufferu condition_signal(nonempty) mutex_unlock(m) until false consumer repeat mutex_lock(m) while (empty) -- pokm condition_wait(nonempty,m) -- vyber data condition_signal(nonfull) mutex_unlock(m) until false
2
1 PARALELN VPOTY A POTAE
26
Kvantovn asu. Poet peruen zejm zvis na potu vlken. Za kvantum se bere interval 10 ms$ proto frekvence = 10 ms * poet procesor .
Vjimky. Pedvedeme si jet oeten v jimen ch situac, kter funguj podobn jako v jimky (exceptions) v Ad $
m e jt nap. o hardwarov chyby, ale tak o detekce situac, rovn lze takto zpracovat voln uivatelsk ch slueb. Zpracovn probh tak, e 'ob ( zavol raise(exception_name) a ek na vyzen. To zp sob vyvoln funkce handleru, kter m tvar vjimka(thread,task,typ) , piem typ odpovd parametru, se kter m se volalo raise$ navc se do handleru ped )loha a vlkno, ve kterm k v jimce dolo. Jedn se tedy o pjem zprvy. V t le handleru pak bu% pmo prohlsm v jimku za vyzenou a vrtm se zp t za raise, anebo je mon provst nap. restart ob ti (s n jak m indiktorem) a ukonen vlkna.
1.7.3 Komunikace
Zajmavou kapitolu pedstavuje meziprocesn komunikace (Inter Process Communication IPC), kter pokr v BSD pipe, signal, priority, socket. V m na zprv se d je pes location independent ports, tedy porty, jejich skuten poloha v systmu nen specikovna. Pro prci s porty jsou funkce port_allocate(task_self) do parametru se dv identikace portu$ port_deallocate(p) port_status(p)
a dle pro mnoiny port
port_set_backup port_set_allocate(s)
denice mnoiny port_set_remove(s) zruen port_set_status(s) port_set_include
rozen mnoiny.
Pedvn zprv. Jako adresta uvdm port, namsto zprvy uvdm msto, kde se zprva nachz. Peme pak msg_send(port,zprva).
Pokud pi vysln zprvy ekme na odpov %, uvedeme navc jako dal parametr msto, kam si odpov % pejeme uloit: msg_RPC(port,zprva,kam), kde RPC znamen Remote Procedure Call, pkaz ek na pchod odpov di. Poslednm pkazem je msg_receive(port,kam), kter pebr zprvu (op t zadvme adresu, kam zprvu uloit).
Mapovn zprvy. Hovome zde o procesech na stejn platform .
Pam nen (nemus b t) souvisl, je organizovma ve tech patrech: m segment (co je nejv t jednotka), region, strnku$ pak ji adresa. M jme tedy zprvu, kterou posl proces A na port, kter pat procesu B (viz schma na obr. 15). Fyzicky se provedou tyto innosti: z A se zavol jdro, zprva se pemapuje do oblasti jdra, a jdro ji poslze pemapuje do clovho adresovho prostoru. Pesn ji eeno, celou innost zprostedkovv sov server (Net Message Server), kter je ptomen v obou potach$ zprvy si pak vlastn vym uj mezi sebou, jak to ukazuje obrzek 16. Pam tov objekty se chpou jako port, metody a data$ pam pitom m e b t v systmu distribuovan.
1 PARALELN VPOTY A POTAE
27
A HH H
B 3
HH j
port
mapa A mZ PP
mapa jdra
mapa B
1 mZ2 P q mZ1 P
Obrzek 15: Mapovn zprv
uiv. proces data ( (((( A A NetMsg Server
?
jdro
uiv. proces 6 NetMsg Server
jdro
Obrzek 16: Pedvn zprv pomoc sovho serveru
1.7.4 Rozhran na Mach z C
funguje tak, e preprocesor vygeneruje kus souboru *.c pro zavleen include, a dle dva soubory s procedurami. Jednotliv prvky jsou implementovny nsledovn : fork: ud l se kopie tabulek virtuln pam ti$ objekty: hld se u nich poet odkaz (je-li roven nule, zru se)$ nepouvaj se kritick sekce (je-li vce procesor , jeden z nich rozhoduje) objekty se samy zamykaj$ znan st k#du byla pevzata z BSD$ identikace objekt se provd zsadn pes port$ )sp n byl prov en et z: shell interpretuje pkazy, jeho podprogramy jsou napsny v pkazech mikrojdra, mikrojdro provede, hardware realizuje.
1.8 Shrnut
Ud lali jsme pr ez problematikou paralelnch v pot a paralelnch architektur. Pipomeneme si jet jednou nejd leit j rozdly mezi jednotliv mi typy:
2 SOFTWAROV IN ENRSTV
28
Symetrick multiprocesing (nap. Silicon Graphics) je vhodn pro poet procesor max. 1012$ rovn zrychlen b v zhruba desetinsobn. Vektorov procesor (Cray, Convex) je zleitost vnitn architektury$ rovn m smysl uvaovat zhruba o destce procesor . Pitom pro vektorov procesory ji musme pst programy s pouitm specilnch technik, kter vyuij vlastnost t chto architektur. Oproti tomu symetrick multiprocesing se programuje 'klasicky(. Masivn paraleln architektury (Thinking Machines, IBM SP2) ji pedstavuj rozshl systmy, pro kter nen horn mez v potu procesor : existuj i systmy s 210 a 216 procesor . Probrali jsme tak technologii mikrojdra, kter vedla celkem ke dv ma standard m, z nich jeden Mach jsme rozebrali podrobn ji.
2 Softwarov in enrstv
2.1 Tvorba rozshl ch systm
2.1.1 Souasn situace
Ve sv t se v souasn dob tvorva software stv velkov robou, dochz ke koncentraci, ub v prostoru pro 'osam l vlky(.11 Nen tedy tm dn monost prosadit se ve standardnm software. (Tak napklad ustupuje Software 602, pon vad rmy pechzej na MS Word.) V aplikacch se preferuj v t rmy (mal rma snze zkrachuje apod.), je proto tendence kupovat znakov software (a tak znakov hardware). Software se kupuje hotov .
2.1.2 Customizace
Dodvan software b v asto jako balk s parametry$ customizac pak rozumme nastaven parametr pro danou aplikaci (konkrtn instalaci). Jsou pitom mon i dod lvky. .ivotn cyklus softwaru pitom doznv urit ch zm n zejmna co se t e pracnosti. Zhruba nm ji zachycuje tabulka 1. Pitom customizace m urit specika nvrh je provd n pouze sten , k#dovn vcemn vypadne, Poloka Klasicky Customizace Specif. cl
5 5 Specif. poadavk
1520 1520 Nvrh 2030 do 10 K#dovn 1520 pod 10 Testovn 3050 do 20 Pedn (0) (0) Souet asi 100 asi 40 drba 200 50
Tabulka 1: Snen nklad pi customizaci namsto testovn nastupuje zkuebn provoz. Pouitm customizace kles pracnost tvorby SW zhruba trojnsobn $ celkem (s )drbou) 45 krt. V tina pracnosti je pitom skryta v sti cle-specikace-nvrh. Je v hodn provd t customizaci i tak, e dodvme rozshlej systm, ze kterho st odstranme$ nejv t v hodou pro ns jako v robce je to, e udrujeme pouze jeden systm. Takovto praxe (balky a nsledn customizace) je zejmna v ekonomii: nap. systm R3 rmy PCDIR ()etnictv, skladov hospodstv, plnovn v roby) za 10100 mil. K$ pevzetm systmu se pebr 'knowhow( vech b cch instalac. Je zejm, e tento systm si nem e dovolit ledaskdo: omezenm je ji cena, dle pak poadavky na organizaci (aby se v ci d laly urit m, a ne jin m zp sobem). 11
Viz t lnek v jednom z poslednch sel Bajtu: Konec zlat ch as.
2 SOFTWAROV IN ENRSTV
29
2.1.3 Nebezpe organizanch zmn
vyvolan ch nasazenm softwaru je velk, proto rad ji nesahat do organizace, pokud to nen nevyhnuteln nutn. Pokud to nutn je, dojde zkonit k poklesu v roby. Podnik je toti protkn jemn m pedivem obtn popsateln ch vazeb (lidsk faktor pracovnci v, za k m konkrtnm maj jt), jejich naruen b v drastick. K tto situaci dolo ve /kod Mlad Boleslav, kter pela na nov informan systm: namsto FoxPro zaali pouvat Oracle a specializovan informan systm. Zatmco na FoxPro byl ji zvykl t m, kter odstraoval chyby apod., pi pechodu na nov systm byla nutn zm na pravidel, vichni se s nm museli seznamovat, v d sledku eho dolo k poklesu v roby a o 50%. (Dal pinou bylo zaveden novho modelu /kody Felicia.)
2.1.4 Interview
Pi specikaci poadavk musme zjistit, co zkaznk potebuje. K tomu je nejvhodn jm prostedkem interview (rozhovor, pohovor), kter nm pomh odpov d t na otzky: co se poaduje, co a jak funguje apod. Tm se pedchz mimo jin vnucen nesmysln ch organizanch zm n. V pr b hu interview vyvstanou zejmna tyto problmy: patn lid , patn as. Je teba najt vhodn lidi, kte znaj potebn informace$ tak nen vhodn pichzet v ase, kter je napjat (nechodit za )etnmi zatkem roku). Stv se tak, e ani management neporad, za k m jt (osobn antipatie apod.), pop. je pesv den, e podniku rozum jen on sm. patn otzky, patn porozumn. Proto se nesmme ptt na hlouposti$ je vhodn ptt se nejprve na obecnosti, pot pejt k podrobnostem, ale v dnm ppad zbyten neobt ovat. Nedvra. K tomu je nezbytn zachovat celou adu pravidel: Nevyvolat pocit ohroen. Systm nen nasazovn proto, aby se uetili lidi (alespo prvotn ), ale nap. pro jejich lep vyuit. Nepohrdat dotazovan m, netvit se a nejednat pov en . Ten lov k je potebn , i kdy je to d lnk ve pinav ch montrkch. Existuje rozshl systm poznatk , jak d lat (a jak ned lat) interview$ dle nap. nen vhodn napodobovat vlezlost novin (odpuzuje to). Proto sestavujeme tzv. pln interview. Znamen to, prozkoumat organizaci, zjistit kdo s k m co d l, kdo za co odpovd, jak se lid vzjemn dopluj apod. Je vhodn zanat od prodejc , protoe ti by m li urovat chod podniku. Mnoho informac dostaneme 'bokem( (o konkrtnch lidech)$ hodn v sekretky. Ped provedenm interview je teba si vydat povolen spe jako dost o spoluprci. (Veden nem rdo, kdy se moc 'mejd( v podniku.) Pozor 'editel v vechno nejlpe(. Lidi musme brt jako partnery, nepovyovat se nad n , neotravovat, zabrnit v nich pocitu ohroen zam stnn. Zsadn se vyh bat vnitnm spor m (i mezi lidmi), zachovat 'kamennou tv(. Zsadn etit as t ch, jich se dotazujeme. Vychzet z toho, e maj dost sv prce, proto b t na interview pipraven , nachystat otzky. Je d leit, aby m li o interview zjem (lze vyvolat nann motivac) a neodb vali jej, a tak aby nebyli a priori proti (vhodn as). Osv duj se CASE a formln systmy (Data Flow Diagram apod.), ale veho s mrou nesm svoj formlnost a ppadnou nesrozumitelnost odradit. Interview je zleitost psychologick proto zat od toho, co dotyn povauje za d leit. Dal rady: Neodrazovat technick mi termny. Jednat jako rovn s rovn m. Velmi opatrn upozorovat na rozpory v jeho poadavcch. Pesv dit o shodnosti cl .
2 SOFTWAROV IN ENRSTV
30
Opatrn zasahovat do mocensk ch vztah (obzvlt nelokalizuje-li se kupovan systm). Pesv dit o vlastn kompetentnosti (reference, dvn souvislost) e se orientuji v problematice.
2.2 Ekonomick aspekty 2.2.1 Nklady na software
Dotkneme se sprnho stanoven nklad pi tvorb softwaru. +asto se opomj zejmna vedlej nklady. Celkov se daj nklady rozd lit na mzdy, reii, hardware, software, cestovn atd.
Vvoj. Nklady na v voj tvo zejmna: manaei, obchodnci )ednci ()etn, sekretky), vrtn, njem zstupci uivatele zvis to na smlouv (zejmna za minulho reimu se praktikovalo uplcen kolenm() ' konzultanti, subdodvky programtoi dohled (audit), systmci, QA Quality Assurance (zen jakosti norma ISO 9000) Dal ztrty (nklady) jsou: dan pojit n ztrtov asy (kolen) nklady na zskn nov ch zakzek (propagace, )platky) )roky spotebovan ch pen z Vidme tedy, e nklady zdaleka nepedstavuj jen mzdy: pokud bereme jako zklad mzdy (vetn odvod ) a amortizaci pota , s pihldnutm ke 'ztrtm(, jako obchodn innost, vlastn r st, dovolen, administrativa apod., zjistme, e potebn trba je minimln 1,52 nsobek platu, resp. trojnsobek istho platu. U mal rmy, kter m vlastn kancel, stoup tento nsobek (reie) na 57, u velk ch rem 1020.
Nklady na instalaci. Sestvaj zejmna z:
kolen uivatel
konverze dat a databz kupovan hardware a software (instalace) nklady na pevzet nklady na paraleln provoz (soub h se star m systmem) nklady v vojovho t mu b hem instalace
Provozn nklady. (M jme na pam ti, e star se uet.)
Nklady na hardware a software (leasing, dohled). Mzdy (opertoi, systmci, provozn programtoi). drba.
2 SOFTWAROV IN ENRSTV
31
Poznmky. Je ikovn stt se dealerem softwaru, m se vstupn ceny sn o 3050%. (Oproti tomu jako dealer
musm nap. zajistit kolen.) Velk rmy maj tendenci b t systmovm integrtorem. K terminologii: systmov integrtor = nln dodavatel: je v hodn ve nakoupit a dodat (vysok zisk) dealer = obchodnk distributor = velk rma, kter dodv dealer m (nap. Software Sluovice) branch oce = poboka v robce, je tendence fungovat souasn jako distributor (tm se sn ceny o zisk ppadnho distributora), n kdy jako systmov integrtor
Ztrty. Zejmna ztrty pi zadn mohou znamenat ohroen rmy.
Je vhodn sepsat smlouvu tak, aby dodavatel neruil (pli mnoho) za ztrty pi selhn software, ale pouze se zavzal k oprav .
2.2.2 Analza pnos
Pnosy rozd lme na dv hlavn skupiny: taktick projev se v chodu rmy, ani to ovlivn jej celkovou politiku, zam en atd.: ? )spory lid (nen to to podstatn, ba n kdy ani dobr) ? )spory z ob hu (dky zlepen informovanosti): snen zsob (tm se uvoln znan prostedky!), rychlej vyzen objednvek, snen v robnch as
strategick vliv na strategii rmy apod.: ? rychleji se m n v robky (inovan doba se snila z p ti let na dva roky) ? ir vyuit poznatk pro zen (sklady, prodejn trendy, kvalita prodejc ) ? men zvislost na jednotlivcch (plnovat mus jen jeden ale kdy onemocn l, fabrika stla) ? lep podklady pro management ? lep sluby zkaznk m (snze se pln poadavky12 a termny)
2.2.3 Analza rizik
Rozebereme dle mon rozika (s pihldnutm k tvorb software): krach dodavatel hardware a software (pop. odchod z trhu) lid onemocn, odejdou software neodpovd specikacm (k tomu vede pedasn formalizace) nedodren termn (a nsledn penle) odbory (odpor proti propout n) dal dodavatel podrazy patn spoluprce se zkaznkem (nen ochoten )asti) patn pipraven a kvalikovan t m zm na podmnek u uivatele (nov management m jin nzor) 12 P kladem toho jsou automobilky, kde dealer p evezme od zkaznka poadovan parametry vozu, a vz je smontovn de facto na zakzku.
2 SOFTWAROV IN ENRSTV
32
skryt nklady ('paprov vlka( namsto jednn se poslaj obshl spisy) uivatel nezvldne systm bu% na to nem lidi (jeho chyba), anebo by znamenal pli velk zm ny (software nen dobe pizp soben), pop. jej vyut nechce (osobn zjmy), nev nuje mu pozornost systm je pomal nebo nevhodn n kter data nelze zskat (utajovan, nedostupn apod.) nedostaten ochrana zkaznk je ohroen bankrotem Zejmna pro zkvalitn n styku se zkaznkem je teba o vem (zejmna o specikacch apod.) d lat podrobn zpisy.
2.2.4 Odhady
Pi rozbhn projektu potebujeme odhadnout zejmna potebu lid, termny, dynamiku t mu, rozpoet. Tyto odhady maj znan rozptyl, protoe se zpravidla nemme o co opt. B v dle tendence podceovat problm a peceovat vlastn monosti, tak je teba odolvat tlaku f . Odhad tedy jist m zp sobem souvis s riziky. Pozor: je teba rozliovat odhad (tedy kolik to bude stt) a dohodu (tedy to, co vyjednm) dohodnut by nem lo jt pod odhad. Zpravidla se bere odhad platy reie, a v sledek se jet vynsob tzv. bezpenostnm koecientem, kter je zhruba okolo 23 a vyjaduje n kter rizika, jako nap.: peceovn monosti pesas (v zsad jen z nouze!) peceovn monosti vyuit zkuenost z jin ch problm obvykle toti nen k dispozici dostatek )daj
o minul ch projektech (snad u velk ch rem, ale ty maj reii okolo 20) Je obtn odhadovat sm sebe, proto je dobr mt nezvislou kontrolu. Ukazuje se, e pi odhadech se v jednotliv ch fzch d laj zhruba tyto chyby: po specikaci cl
50% na konci anal zy 25% ped zatkem k#dovn 10% po naprogramovn 5% S postupem prce na projektu se tedy chyba zmenuje$ u velk ch softwarov ch balk b v men.
2.3 Sledovn kvality
D leitou, a tak, jak jsme si ekli, pom rn nronou st ivotnho cyklu softwaru je sledovn jeho kvality. Zejmna se jedn o hledn a odstraovn chyb. Pi odstraovn chyb se doporuuje soustedit se zejmna na: sb r )daj pesn zaznamenat, kde je chyba, typ chyby (rozhran), pina atd. vyhodnocovn vhodn je nap. pouit spreadsheet , pop. programu Statgraph. Dle se zam me na jednu z pouvan ch metod pro odhalovn chyb.
2.3.1 Inspekce
je nej)inn j metodou odstraovn chyb (je uvd na a 80procentn )sp nost). Cena za detekci chyby je pitom men ne 10% ceny pi pouit 'klasick ch( zp sob . Jedn se o vnitn oponenturu, kter m institucionalizovan pr b h. Inspekce je pouiteln pro vechny etapy ivotnho cyklu. P vodcem metody je rma IBM, autorem je Fagan zveejnil ji v roce 1979. kolem inspekce je tedy nalzt chyby, to znamen, e chyba v een nez stane a nezv jeho cenu. Nalezen chyb je spolenm zjmem vech eitel . kolem nen chyby opravovat (s v jimkou dokumentace pro uivatele), pouze ji nalzt a zadit, aby se n kdo postaral o jej odstran n. Problmem jsou ony 'spolen zjmy(, tedy pi inspekci 'thnout za jeden provaz(. Znamen to mimo jin, e ten, u koho je nalezena chyba,
2 SOFTWAROV IN ENRSTV
33
1. se neuraz (nen jeitn ), 2. za to nen postien$ tomu by m la b t pizp sobena pravidla v organizaci, tedy veden by o tom ani nem lo v d t. Inspekce se provd v tmu, provd se na textech, co m e b t nejen program, ale tak specikace, dokumentace apod. Sloen t mu je nsledujc: 1. Modertor. d prce, moderuje zasedn. Je to klov osoba, m l by mt cit pro detekci chyb (z pr b hu inspekce 'vyctit(, kde jsou). 2. Zapisovatel. Nem l by se pli )astnit diskuse, aby se zbyten nerozptyloval od zaznamenvn jejho pr b hu. 3. Peditatel. M e, ale nemus to b t sm autor. 4. Oponenti. Zpravidla jsou dva a tyi. Velikost t mu je volena podle odpozorovanho faktu, e vce ne osm lid se zpravidla nikdy nedohodne.
Prbh inspekce. Z d vodu udren maximln pozornosti se doporuuje zsadn oponovat jen tolik materilu,
aby byla inspekce zvldnuteln za 12 hodiny (odpovd to 24 strnkm dokumentu). Postup je nsledujc: 1. V dostatenm pedstihu (alespo n kolik dn) ped oponenturou se rozdaj oponovan materily obvykle na pape (pota zbyten zuuje pohled). Stanov se doba konn. 2. +lenov t mu materil prostuduj. 3. Vlastn zasedn. Sch zi vede modertor. Peditatel podrobn prezentuje materil m e to b t sm autor, co m tu nev hodu, e m tendenci vlastn chyby skr vat, ale na druh stran je schopen odpov d t adu otzek, zn souvislosti. Zapisovatel zapisuje chyby, a to ve tvaru: id chyby strun nzev chyby nebo jej charakteristika popis chyby eho se chyba t k ve kterm mst textu se nachz mon efekty, resp. odchylky kdo chybu naprav a dokdy. Zpis z cel inspekce m pitom tvar id inspekce eho se inspekce t k msto a as konn (kde, kdy) jmna a funkce )astnk .
2.3.2 Zkuenosti s inspekcemi
Jak jsme si ekli na zatku, sniuje se pouitm inspekc poet chyb a na p tinu. Podmnkou )sp nosti je pitom: dobr modertor ovzdu t mu usilovn snaha chyby nalzt.
2 SOFTWAROV IN ENRSTV
34
Detek. chyb 100 %
klasika inspekce
80 %
60 %
40 %
20 %
0 lze zmirnit
Pracnost
Obrzek 17: Srovnn detekce chyb klasick m testovnm a inspekc
Efekty. Klasick testovn je oproti inspekci zpotku mn )inn, avak doke odhalit vce chyb pomoc inspekc
se nad 80% odhalen ch chyb nedostaneme (viz obr. 17). Vidme, e st neefektivnho klasickho testovn se d uetit tak, e ob metody kombinujeme: zpotku vyuijeme efektivn j inspekce, a poslze pejdeme ke klasickmu testovn (obrzek 18). V hodou inspekc je, e zatmco klasick testovn zvis na peloenm programu, inspekce se d provd t i na ' pape( bez toho, aby program b el na potai. Slab msta. kali jsme si, e )sp nost inspekce siln zvis na osob modertora. Lid vhodn ch jako modertoi je vak mlo$ problmem je tak navozen a udren dobrho ovzdu v t mu. Obtn je tak testovn inspektor jak zjistit (a jak vas zjistit), jestli pracuj zodpov dn . Nen mon je prov ovat a pi testech produkt .
Varianty inspekc. Aby se napravila n kter slab msta a nedostatky, pouvaj se n kter varianty metody inspekce, jako:
Formal review teni, naslouchajc a zapisovatel. Walkthrough n kolik lid 'simuluje( program prochz text. Faganova inspekce. Tou jsme se zab vali v pedchozm textu. Active design review aktivn testovn nvrhu. Je obvykl nap. pi testovn poadavk $ clem je zabrnit po-
vrchn prci inspektor . Kladou se otzky (nap. autor se zept: zjist te, jak se hled v tabulce symbol ), potom se provd inspekce pro jednotliv kritria (nezkoum se dokument vcelku). Provd j se tak nsledn inspekce po odstran n chyb, asto s jin m t mem, kter kontroluje, jak byly odstran ny chyby, odhalen v minul inspekci. Cleanroom. Tak m p vod u IBM, rozdly jsou tyto: nesm se )astnit autoi poukazuje pouze na jednotliv kritria nap. rozhran zasedn jsou velmi krtk.
2 SOFTWAROV IN ENRSTV
35
Detek. chyb 100 %
80 %
60 %
40 %
20 %
0 inspekce
klasika
Pracnost
Obrzek 18: Kombinace klasickho testovn a inspekc
N fold inspection n kter z pedchozch technik se aplikuje tak, e se na dokumentu nech pracovat n kolik nezvisl ch t m (ale s jednm modertorem).
Kritika. Zejmna metody cleanroom a aktivn inspekce jsou kritizovny za to, e jsou zam eny pouze na detekci
chyb, nikoli na kvalitu celku odpovdajc norm ISO 9000 ta toti poaduje nejen bezchybnost, ale tak sleduje kvalitativn ukazatele. Proto je nutn podstatn zlepit inspekce. Pouh detekce chyb nesta, sledujeme dle zejmna udrovatelnost (zda se daj provd t modikace) penositelnost na r zn HW/SW platformy vystopovatelnost (pro to tak funguje) znovuvyuitelnost st efektivita. Dle je v kritice poukazovno na to, e chyb kontrola )innosti (kvalita z)astn n ch obtn se pozn, kdy je to na nic). Rovn chyb pevn pravidla pro hodnocen, zejmna formln normy pro tvar program (tvary identiktor
apod.). Nev hodou je tak neformlnost diskuse, slab povahy proto obtn prosad sv nmitky (boj se to ci). Posuzuj se papry, ne potaov mi prostedky (v jimkou jsou n kter CASE systmy). Inspekce je pasivn, nevyuvaj se znalosti toho, kdo een realizoval.
2.3.3 Vcefzov inspekce
Proto se pouvaj vcefzov inspekce, kter obsahuj pokus o formalizaci. Soust procedury by nadle m la b t pr b n kontrola kvality prce inspektor . K tomu se pouvaj nap. zaset chyby (seed errors), tedy zm rn ud lan chyby, zpravidla takov, kter nenaruuj logiku programu. Inspektor by je m l odhalit.
2 SOFTWAROV IN ENRSTV
36
Principy vcefzov inspekce. Fze zajiuje, e produkt m jednu nebo n kolik mlo pesn denovan ch vlast-
nost (nap. tvar identiktor ), ze kter ch m e dal fze vychzet. Vlastnosti jsou tedy prov ovny postupn , a proto mus b t uspodny. Zkladem jsou tyto dv fze: 1. Single inspector phase kontroluj se formln nleitosti textu (tzv. pretty printing, itelnost, odsazovn). Odpov % na tyto poadavky je v zsad ano/ne. Dle se kontroluje pouit index , tvar zkratek, ptomnost denic neznm ch pojm (zkratek), celkov struktura dokumentu. Do tto fze rovn pat pln n dohod o tvaru identiktor a konvenc o voln funkc (parametry, bon efekty). 2. Multiple inspector phase op t pracuje modertor, zapisovatel a inspektoi. kolem je detekce chyb a sledovn kvalitativnch poadavk . Postup je nsledujc: (a) Studium materil inspektoi je studuj nezvisle$ odpovdaj na otzky, kter byly zadny pedem (pi pedn materilu bylo denovno, co se m sledovat). (b) Sch ze, porovnn v sledk . (c) Zpis a vyhodnocen v sledk , odkud vyplyne i )sp nost odpov d, n kdy tak )daj, kolik chyb (zejmna zaset ch) inspektoi nali.
Vbr inspektor. Zkuenosti ukazuj, e na r zn fze (oblasti) se osv duj r zn inspektoi: na formalismy jsou dob mlad lenov t mu$ star lpe sleduj souvislosti (vcekrt se pouili z vlastnch chyb), ale jsou hor na programovn a formality. N kte z inspektor by m li znt oblast aplikac.
Pklady fz. Jednotliv fze ve vcefzov inspekci mohou b t zam ena na nsledujc kritria: F1 tvar dokumentu a pravopis F2 pretty printing (je-li dokument tiskasky dobe ud lan ) F3 itelnost a mnemotechnika (netriviln je zejmna volba obecn ch identiktor ) F4 dodrovn dobr ch programtorsk ch praktik (mlo goto a bonch efekt ) F5 dodrovn pedepsan ch obrat (nap. inicializace prom nn ch, zavrn soubor ) F6 multiple inspector. Vsledky. Existuje i potaov podpora systm InspeQ. Pi odhalen jedn chyby za jednu lov kohodinu se uet a 33 hodin pi )drb . Tyto zkuenosti vak nejsou doloeny z v tho potu projekt . Je dobr pov it lidi, aby tak zjistili, zda se dodruj normy. Tak multiple inspector phase se d provst r zn .
2.4 Pouvn norem
Protoe software je technick produkt, je tak, jako kad technick oblast, urit m zp sobem standardizovn. Typick mi normami jsou nap. denice programovacch jazyk , nebo denice rozhran pro periferie. Softwarov normy se v hojn me pouvaj zejmna v USA$ k nm se tento trend dostv tak. Budeme tedy hovoit zejmna o americk ch zvyklostech v tto oblasti, dotkneme se tak norem obecn (nejen v software).
2.4.1 Vlastnosti norem a zsady jejich pouvn
N kter normy, nap. technick, hygienick (ty zejmna) jsou 'z vy moci( pedepsny a jsou tud zvazn, jejich nedodrovn je pak sankcionovno. Budeme je oznaovat jako de iure normy$ na druh stran stoj normy de facto, kter zvazn nejsou, ale dobrovoln se dodruj (asto psn ji ne normy de iure).
2 SOFTWAROV IN ENRSTV
37
Normy maj svoje nesporn v hody: sjednocuj a stanovuj pravidla, jak pouvat a spojovat r zn produkty r zn ch v robc (typick jsou nap. rozm ry roub 13 nebo vlastnosti stdavho proudu), dle umouje 'jednotn ( zp sob vyuvn lid (nap. programovac jazyky). Klov mi vlastnostmi norem jsou proto stabilita a jednotnost. Nev hodou norem je oproti tomu urit setrvanost, zp soben zdlouhavost tvorby norem. Dky tomu normy neodpovdaj nejposledn jmu stavu poznatk a jist m zp sobem konzervuj znormovan stav. Proto dochz as od asu k inovaci norem. Normy jsou pitom ve ejn a jsou kadmu zdarma (za cenu okoprovn) k dispozici. Pouit norem je nezvazn, nejsou poskytovny dn testy ani dal sluby. Mezi nejd leit j zsady pouvn norem pat: 1. Pouvn norem je dobrovoln, je v c dohody. 2. Normalizan )ady nenesou dnou odpov dnost za ppadn kody, vznikl pouitm norem. 3. Norma vyjaduje jist stav znalost, a proto zastarv. Proto by m la b t (sofwarov norma) nejdle po p ti letech inovovna, resp. znovu potvrzena. V opanm ppad , a m e b t cenn (jako zdroj poznatk ), by nem la b t jako standard nadle doporuovna. Praxe je ovem takov, e normy b vaj asto potvrzeny i bez nezbytn aktualizace.
2.4.2 Normotvorn aktivity
Na potku vzniku norem jsou producenti, z nich vychz norma vrobce (pop. podnikov norma), kter se stane de facto standardem. (V robci b vaj pitom ovlivn ni v zkumem a univerzitami.) Pokud je takov to standard hojn uvan , nrodn normalizan komise vytvo tzv. pracovn skupinu (working group), kter piprav nvrh normy. Po schvlen nrodn normalizan komis vznik nrodn standard. Prci nrodn normalizan komise m e jet pedchzet innost tzv. profesnch skupin (nap. na poli elektrotechniky a hardware je to IEEE), kter na zklad uvan ch standard vytvej t svoje normy. Z nich pak vychz pracovn skupiny nrodn normalizan komise. Mezinrodn normalizan komise (International Standard Organization ISO) pak vytv, zpravidla na zklad nrodnch (tedy nejast ji americk ch) norem, normy mezinrodn. Rovn ISO vytv sv pracovn skupiny, kter se zab vaj nvrhem normy. Normy ISO zpravidla nejsou zvazn. Mezinrodn normy pak pebraj nrodn normalizan komise, provedou lokalizaci (peklad do domorodho jazyka a pizp soben normy), a tak se z nich stanou nrodn normy. Cel proces je pitom zdlouhav , trv dov n kolik let. Standardy (normy) se na r zn ch )rovnch identikuj: de facto standard dn zvltn oznaen nem, pouze v robn znaku (pop. u podnikov ch norem intern oznaen) profesn organizace m sv oznaen (nap. IEEE 9836.2), dvaj tm doporuen normy nrodn norma obsahuje zkratku )adu (sttu) a slo normy, b n (znm) jsou v USA normy ANSI (American National Standard Institut), pop. NIST (National Institut of Standards and Technology) v SRN znm normy DIN (Deutsche Industrie Norme) v R plat soustava norem +SN (+eskoslovensk sttn norma) mezinrodn normy maj oznaen ISO pevzat normy se cituj zpravidla pomoc nrodnho oznaen (po lokalizaci normy) a pomoc mezinrodnho oznaen normy, kter odpovdaj. V na republice eviduje normy (a t ochrann znmky) +esk normalizan )ad (+N), kter rovn souste%uje vechny normy ze sv ta. 13
Existuj dv soustavy norem pro rozm ry roub metrick, a americk, tzv. Whitworthova, vychzejc z palcov mry.
2 SOFTWAROV IN ENRSTV
38
2.5 Normy v softwarovm inen rstv
Podrobn ji jsou popsny v knize Software Engineering Standards, IEEE/Wiley 1984. Tyto normy vznikly p vodn jako dohoda ady v robc a jin ch organizac (kupodivu bez IBM)$ poslze vznikl 'samozvan ( v bor, kter vytvoil nvrhy norem, a ty byly pijaty ANSI. Nejv t zm ny se pitom daj oekvat v oblasti kvality asi bude sestavena norma na bzi ISO 9000, co je soustava doporuen, kter zaruuj kvalitu produktu. Zahrnuje tedy nejen poadavek, aby nebyly ptomny dn chyby, ale tak maximln uspokojen poadavk uivatele. K tomu je sestavena cel ada pravidel$ u softwaru to zatm vyeeno nebylo.
2.5.1 Vznam norem pi tvorb softwaru
V oblasti software jsou normy potebn zejmna pro: programovac jazyky (dve byly de facto standardy, nap. Fortran) oblast komunikac (perifern rozhran, komunikan protokoly) reprezentace dat (zobrazen v pohybliv dov rce) standardn metody realizace softwaru (jsou pokusy o jeho normovn). Softwarov normy tvo zejmna IEEE, ANSI a ISO$ ANSI tak standardizovala adu programovacch jazyk , jako nap. Fortran, Pascal, C, Adu a jin. Uivatelem sofwarov ch norem jsou samozejm uivatel softwaru programtoi, dle v robci softwaru, ale tak veejnost. Pro uivatele jsou pnosem zejmna proto, e nemus ztrcet dve dosaen v sledky (nvaznost na star verze) normy jsou nstrojem kontroly prac jsou nstrojem kontroly dodren poadavk
umouj vasnou detekci chyb. V robc m pinej normy jednak tot, co pro uivatele, kontrolu stabilitu podmnek realizace (neztrcej se v sledky) nepmo se vytv tlak na zlepen metodik. Veejnosti se pak nabz snaz kontrola, zda dodvan software je v souladu se zkony, zda je software neohrouje nebo nepokozuje (v poet dan, nann operace) kontrola, zda nedochz k pl tvn, a odtud sniovn nklad veejn ch projekt .
Terminologie (Glossary of Software Engineering Terminology). Normy softwarovho inen rstv zahrnuj:14 14
Pln kontroly kvality Software Quality Assurance Plans. zen kongurace (norma pro sprvu verz) Software Conguration Management Plans. Pln test Software Test Documentation. Nvod na specikace Software Requirements Specication Guide.
Anglick nzvy vychzej z knihy Software Engineering Standards.
2 SOFTWAROV IN ENRSTV
39
Slovnk potaov ch termn . Jako pklad si uvedeme podrobn ji (Project Journal) nap. zen kongurace. (Zkladem je Inspection-AuditWalkthrough.) 1. Procedura vyhodnocovn, pjmn nebo zamtn a koordinace zm n po formlnm vyhodnocen jejich identikace v konguraci (proces). 2. Systematick vyhodnocovn, koordinace, pjmn nebo zamtn zm n a implementace vech pijat ch zm n v konguraci (prvku kongurace) po formlnm proveden identikace zm ny v rmci kongurace (dohled).
2.5.2 Pln zajitn kvality
neboli Quality Assurance Plan je dal z normovan ch oblast tvorby softwaru. M l by obsahovat tyto sti: 1. el eho se t k, pro co plat, ppadn i pro co neplat$ zde vypsat pslun moduly (komponenty). 2. Odkazovan dokumenty vechny by m ly b t explicitn uvedeny. U dokumentu se uvd jeho identikace, nzev (ppadn verze), tak dosaitelnost (kde se najde, u soubor pln jmna). 3. Management tedy stanovuj se )koly. Tato st zahrnuje: organogram organizan schma ( pavouk() ' )koly (podle etap) odpov dnosti a termny 4. Dokumentace. Ta je nutn pro proveden kontroly. Proto by zde m l b t seznam dokument (viz 'Odkazovan dokumenty(), jak je mon je zskat, a minimln dokumentace: seznam poadavk , a to v kontrolovateln form , tedy precizn (popis jako odpov % mus b t v tinou do ' jedn vteiny( tedy nevyhovuje) popis nvrhu (architektury SW) pln verikace a validace15 zprva o verikaci (u ns se v tinou ned l) na zklad inspekce vstupnch )daj
uivatelsk dokumentace nepovinn : normy, manuly apod. 5. Normy, konvence a metody, a to zejmna: normy struktury dokumentu normy k#dovn (identiktory, voln podprogram ) logick struktura koment
6. Review and audit. T mito pojmy se rozum review vnitn oponentura, kterou provd j eitel mezi sebou audit dohled, provd j nap. lid z managementu. Minimln by se pitom m ly provst reviews (nap. inspekce) specikace poadavk
pedb nho nvrhu podrobnho nvrhu 15
P i verikaci se kontroluje, zda produkt odpovd pvodnm poadavkm, validace jej testuje.
2 SOFTWAROV IN ENRSTV
40
verikace/validace a vn j oponentury (kdy produkt pedvme veden, nebo pmo zkaznkovi) funkn audit jestli to funguje fyzick audit kontrola kompletace dodvky pepadovky b hem een (in process audit), kter pr b n kontroluj, jestli se dodruj termny a rozpoet. U v tch rem (zhruba nad 30 zam stnanc ) m v znam tzv. managerial review, tedy pr b h projektu z hlediska managementu, odhaluje, kde se 'ztratily( penze. zen kongurace (conguration management). Metody evidence a oprav chyb. Nstroje a metody realizace/kontroly (tedy speciality). Kontroly k#du, mdi, dodavatel . Doba platnosti v originle how the documentation will be retained(, tedy jak se bude udrovat, jestli se bude obnovovat nebo ruit, a kdo 'to m na starosti.
7. 8. 9. 10. 11.
2.5.3
zen kongurace
Ji jsme se zmnili o tom, e i na conguration management (neboli zen kongurace) existuje norma. Pitom vme, e pro dodvky softwaru irok pouitelnosti mme v zsad dv monosti: 1. parametrizovat jedin produkt (tedy customizace) pokud to ovem jde, tedy zejmna pokud se pli nem n logika 2. nebo mt produkt ve form 'stavebnice(, tedy skldat jej z vce st. Parametrizace se pitom pouv zejmna u programov ch balk , zatmco stavebnice jsou obvykl u operanch systm , a to pedevm pro slov potae mainframes. zen kongurace umouje nap. SCGS, a sten i znm program make. zen kongurace se op t skld z n kolika st: vod : )el oblast platnosti denice, zkratky, odkazy Management : organizace (vazby, procedury), odpov dnosti (kdo, kdy, za co) kontrola rozhran jak to spolupracuje zp sob realizace (nstroje a metody) pouit pkazy a procedury innosti : identikace kongurace zen kongurace (co se kdy a jak bude m nit) vyhodnocovn stavu reviews and audits jestli byly vas odevzdny vechny dokumenty Nstroje, metody : kontrola subdodvek
2 SOFTWAROV IN ENRSTV
41
Organizace. Do oblasti organizace pat zejmna vztah programtor-'idi( kongurace organizan pavouk jak pi v voji/)drb vztahy v voj-uivatel Zd razuje se pitom zejmna )drba.
Kontrola rozhran. D leitou oblast je tak kontrola rozhran interface control: identikovat dokumenty postup pijet zm n sledovn, realizace kontrolnch dn
)drba interface a kontrola stavu interface Pokud je toti patn navren rozhran, je to velmi zvan chyba.
Identikace kongurace. Tato st (conguration identication) by m la zejmna vyjmenovat hlavn komponenty (podle etap), pojmenovat polky pro review, pro schvlen, a dle denovat formu )asti uivatele (m la by b t soust dohody). Typick komponenty jsou: funkcionln souhlas uivatele s funkcemi a jejich testovnm allocated souhlas s omezenmi nvrhu (co to ned l), souhlas, e jsou dodreny normy uivatele produkt odsouhlasen (pevzet) hotovho produktu Pedv se pitom jmno a verze slo verze, zp sob implementace nvod na instalaci znm chyby a nedostatky (co tam nefunguje) mdia (na em se to pedv) ppadn termny doplk a zm n.
2.5.4 Testovn
Na zatku stoj dokumentace projektu a popis st testu, a z nich se vytvo pln test. Ten se konkretizuje ve specikaci test , a po oeten specilnch ppad je test proveden. V sledkem proveden je test log, tedy zznam testu, a test incident report, tedy seznam 'pr vih (. Na zv r se sestav shrnut, neboli test summary report. Test incident je pitom popsn takto: id
kdo, kdy strun popis d sledky:
3 PELMEL
42
? pokraovat v testech? ? )pravy test a software ? pokuny k )prav (termn) ur se kdo, ale ne jak
rizika (m e dojt ke kodm zejmna kdy se ovld zen soustava v pr myslu apod.)
3 Pelmel Do tto kapitoly jsem zaadil zbyl pednky, kter bylo t k shrnout pod n jak spolen nzev. M la zde b t i pednka doc. Paulkov z FE VUT o biokybernetice a potaov ch zvislostech, ale vzhledem k jej celkov zmatenosti nebylo mon ji n jak rozumn sepsat.
3.1 Architektura klient/server v databzch
Vichni znme princip tto architektury: server je 'cel aplikace(, spravuje data, b jako jedin exempl, pedv data (po znacch) klientovi, kter je zobrazuje uivateli. Klient b v vce. U databzovho systmu GUPTA to tak docela nen: mezi serverem a klientem 'b haj( pkazy SQL, a na klientovi b cel aplikace (plus prezentan grack st). To m svoje v hody: nezvislost na DB a na hardware a software serveru men zaten serveru vyuit v konu klient
ale tak nev hody, z nich nejv razn j je tzv. 'pekrmen klient( (fat client): aplikace roste, a na ni klient ve sv dosavadn konguraci nesta, tm pdem je ale teba provst poslen hardware (upgrade) vech klient . een pekrmenho klienta je takov, e se architektura klient/server dle rozd l, a ud l se vyven systm se temi komponentami: 1. Server(y) 2. Aplikan server(y) 3. Klienti Znamen to ale, e musme b t schopni kadou st aplikace 'odeslat( na libovoln msto st . Tento poadavek vypad triviln , ale mto provd n se tak m e pom rn snadno m nit. Orientaci na klienta (aplikace b na klientovi) pedstavuje Gupta, a zsti t Fox. Orientaci na server (aplikace b na serveru) pedstavuje Progress (spe znakov). Obecn ppad jsou nap. Taligent, New Era (produkt Informix), kter umouje i balacovn v konu kad modul lze poslat kamkoli. Poznamenejme jet , e pekrmen klient nemus b t a tak na zvadu, pokud klienti bu% nerostou, anebo je jich dov mlo.
3.2 Objektov orientovan anal za a nvrh
Zde budeme vychzet z knihy: James Rumbaugh, Michael Blaha, William Premeklani, Frederick Eddy, William Lorensen: Object Oriented Modelling and Design, Prentice Hall, 1991. Podle tto knihy vznikly nov metodiky, kter byly peneseny i do CASE systm . Jedn se tedy o pokus o objektov orientovan navrhovn systm .
3 PELMEL
43
3.2.1 Principy OOMD
Object Model zahrnuje statick vlastnosti model (atributy a vztahy)$ je to vlastn zobecn n Entity-Relationship diagram . Dynamick model je pak zobecn nm pechodovho diagramu. Funkcionln model je prakticky identick s Data Flow Diagramem diagramem toku dat. Tabulka v relanm modelu zde odpovd td , atribut odpovd atributu$ pro operace nen odpovdajc prot jek v relanm modelu. Principem pitom je o v ci pem let, a pak 'ono to z toho n jak vypadne(. Obecn se poaduje, aby byly v ci dokumentovny, a proto se d pedpokldat, e budou tyto nstroje pouvny.
3.2.2 Z eho modelovn vychz Tda se kresl jako obdlnk: Nzev tdy Atributy
Operace Tda odpovd denici tabulky v databzi.
Atributy se uvd j: jmno, $typ, $pop.
i defalult hodnota]]
V n kter ch fzch (jako je modelovn) pitom sta i pouh jmno. Zsadou je, e se uvd j jen ty atributy, kter jsou viditeln uivateli. Neuvd j se implementan zvisl. (To je zsada, platn i pro b n datov modelovn.) Zem jmno
hl_m sto M sto jmno
Obrzek 19: Pklad modelovn td Pklad td a vztahu mezi nimi je na obrzku 19. Operace zde v tdch nejsou, a proto je neuvdme.
t t ;t d
2+ 1
4
prv jeden
0;1 2;1 1;4 0;1
Obrzek 20: Typy vazeb mezi tdami Typy vazeb (ili zejmna nsobnost, arita) se znzoruj u ry, kter zna vztah, a to zp sobem, kter shrnuje obrzek 20.
Instance td se p jako obdlnky s obl mi rohy (obrzek 21). Typ instance pitom nemus b t zaznamenn. 3.2.3 Denice n-rnch vztah
se provd zp sobem, kter je naznaen na obrzku 22. Pklad instance, kde se osoba Jana )astn vce projekt , je pak na obrzku 23. Je pitom zsada pevd t 'vce-rn( relace pokud mono na binrn (protoe tak se v nich lpe vyznme).
3 PELMEL
44 (Zem ) Kanada
hl_m sto
(M sto) Ottawa
Obrzek 21: Znzorn n instanc Projekt
t
1+
Vlastnosti projektu HH HH
1+ Jazyk
t
t1+
Osoba
Obrzek 22: Model n-rn relace
3.2.4 Atributy relac
K relaci m eme piadit atributy, jak to ukazuje obrzek 24. To je vlastn tabulka, v n je uveden vdy uivatel, soubor, a jeho pstupov prva k tomuto souboru. Jin pklad vidme na obrzku 25. Vimn me si zde, e u konce relace peme role (f, pracovnk)$ relace 'podzen( (to je jej nzev) m svoje atributy (zde: hodnocen)$ stejn tak relace 'pracuje pro( m atributy, odpovdajc pracovnmu zaazen (mzda a profese skuten pat k tomuto pracovn prvnmu vztahu, ne k lov ku). Relace tedy zan b t velmi koat: m sv j nzev, atributy, nsobnost, nov pak role.
3.2.5 Implicitn nsobnost relace
si ukeme na pkladu (obrzek 26). Interpretace je zde takov, e hr m e v uritm roce hrt za vce t m . Za kolik t m skuten hraje, to se ur anal zou dat. (V klasick relan databzi zde mme poloku tabulky, v n je Hr, T m, Rok, a mnoina v sledk .) Doporuuje se, atributy patc vztahu nedvat do td. Pklad mme na obrzku 27, kde jsme si vzali st pkladu z obrzku 25. Prvn uveden pklad je lep, protoe se snze udruje integrita dat. Tak je na prvn pohled zejm, e atribut se t k smluvnho vztahu mezi osobou a podnikem, a ne podnikem.
3.2.6 Co vechno lze specikovat u relace
1. Jmno vztahu (relace). 2. Asociovan tda. 3. Role tedy specikace v znamu relace u entit (dopluje jmno). Pklad jsme m li na obrzku 25, kde relace podzenosti m la role 'f( a 'podzen ( (pracovnk). 4. Nsobnosti u 'konc (. 5. Kvalikace k relaci pipeme jmno atributu, kter zajiuje vazbu (pokud je znmo uivateli). 6. Znaka agregace viz obrzek 28. 7. (v tinou se nepe) Doplujc podmnka nap. { ordered } (e je to uspodan)
3 PELMEL
45 (Projekt)
(Jazyk)
Zdrav. poj.
FoxPro
(Osoba) Jana
(Projekt)
(Jazyk)
Penz. fondy
GUPTA
Obrzek 23: Instance s vytvoenou n-rn relac Soubor
Uivatel t Pstupn t
Prva
Obrzek 24: Atributy relace
3.2.7 Vyjden ddn
Hlavnmi atributy objektovosti, jak vme, jsou: data a operace jsou obsaeny spolen v objektu vznik a znik objekt (persistence) overloadnig (polymorsmus) d d n, a to bu% jednoduch, nebo nsobn V OOMD se d d n vyjaduje zp sobem, kter ilustruje obrzek 29.
3.2.8 Rekurzivnost td
se vyajduje zp sobem, znzorn n m na obrzku 30. Je zde op t pouita agregace, tedy model vztah 'skld se z(.
3.2.9 Abstrakce a abstraktn tdy
Abstraktn tdy shrnuj spolen vlastnosti 'uiten ch td(. Obvykle nemaj instance. V naem pkladu s pumpami (obrzek 29) bylo takovou abstraktn tdou zazen (v robek). Shrnut abstraktnch td je na obrzku 31.
3.2.10 Objektov a dynamick model Objektov model tvo:
tdy a vztahy, kter tvo zobecn n entity-relationship diagram
3 PELMEL
46 f podzen
t Osoba t jmno, adr.
t Spolenost jmno, adr.
pracuje pro
pracovnk
hodnoc.
profese mzda
Obrzek 25: Pklad relac s atributy zam stnanci T m Hr
;
V sledky
H HHH
Rok
Obrzek 26: Pklad ternrn relace diagram toku dat (DFD) dynamick model pechodov diagram (podstatn zobecn n ) Tyto ti modely ale mezi sebou nemaj dostaten formln vazby. Nejsou tak napklad jasn (formln ) denovny operace nad tdami. Otzkou tedy je, jak to ud lat v SQL? Pracuje se proto na jazyce SQL3, ale na metodick )rovni to jasn nen.
Dynamick model jsou vlastn vloen konen automaty. Stav m e b t denovn konen m automatem (viz
obrzek 32). Jeden stav se tak rozvine do vcestavovho diagramu. Jak vypadaj v tomto modelu pechody: ukazuje nm to obrzek 33. Vidme, e se stavem jsou asociovny ti skupiny podprogram . Jsou to poloky do, entry a end, tedy programy, kter se provedou, pokud dojde k jakkoli Podnik jmno adresa
Osoba pracuje pro jmno adresa profese mzda
sprvn
Podnik jmno adresa
Osoba pracuje pro jmno adresa profese mzda
nesprvn
Obrzek 27: Sprvn a nesprvn pouit atribut
3 PELMEL
47 lampa ...... ........ .......... ... .. .. ... ........ ......... ........
podstavec
m sti
t leso
vypna
Obrzek 28: Pouit znaky agregace zazen nzev v robce typ zazen
. ...... ... ...... ... ... ...
pumpa v kon kapalina
v m nk v kon mdium
...
typ pumpy . . .
..... ... ...... ... ... . ...
Obrzek 29: Vyjden d d n zm n vstupnch parametr . Dle zde mme datov prost ed, ve kterm automat pracuje, t du, kter je asociovna s pechodem, a udlost s atributy, co je n co, co se provede pi podmnce$ pak se provede akce. Celkem tedy mme udlost(atributy)$podmnka]/akce
ili zprvu (udlost), podmnku odesln zprvy, a akci, kter se provd pi pechodu. Uvedeme si jet pklad, na kterm je podprogram pro zen topnho systmu (obrzek 34).
3.3 Superpotae
Toto je pednka dr. Matysky, kter m la b t v novna superpotaovmu centru MU, ale byla pro ns spe opakovnm ze zatku zimnho semestru, kdy jsme paraleln v poty probrali.
3.3.1 Architektury superpota
Architektury superpota se pouvaj zejmna pro nron numerick v poty. Roste pitom i jejich praktick nasazen napklad pedpov di poas. Rychlost se udv v jednotkch MIPS (mili#ny instrukc za sekundu) a MFLOPS (mili#ny instrukc v pohybliv dov rce za sekundu). Ve skutenosti vak tak zle na typu instrukc, kter procesor vykonv: d len je mnohem nron j ne stn a nsoben. V tinou se udv teoretick rychlost. Donedvna platily za v konn nap. potae typu VAX 11/780 s rychlost kolem 1 MFLOPS$ dnes ji procesor Pentium m v kon destinsobn . Zet zen systmy RISC, pracujc na principu superpipelining, maj v kon dov stovek MFLOPS (POWER 2 266 MFLOPS, DEC 21064A 175 MFLOPS). Nastvaj ale problmy pi v voji, zp soben vysok mi kmitoty (stovky MHz). V kon se asto zvyuje skldnm vce 3oating point jednotek.
3 PELMEL
48 Program
t1+ t Blok ..... ... ...... ... ... . ...
Sloen agregace pkaz
Jednod. pkaz
. ...................... ............. ..................... .
Obrzek 30: Rekurzivnost td metatda m podtdu podtda Tda podtda
d
t
. ...... ... ...... ... ... ...
instance
konkr. tda
m nadtdu nadtda
abstr. tda
. ...... ... ...... ... ... ...
t nekonc. tda
supertda
koncov tda
Obrzek 31: Abstraktn tdy Vektorov procesory (o kter ch jsme hovoili v odstavci 1.1.2) pracuj nad vektorem.16 Nejznm j je na tomto poli rma CRAY Research, jej pota XMP m l v kon 250 MFLOPS, YMP pak 1 GFLOPS. Spojuje se proto vce procesor dohromady, co vede k zapojen architektur SIMD a MIMD. Zatmco SIMD pedstavuj vektorov potae, u architektury MIMD si kad procesor 'd l co chce(, a urit m zp sobem se synchronizuj. Problmem vak je organizace pam ti: 1. Bu%to m kad procesor stejn (stejn drah ) pstup do jedn, globln pam ti je to tzv. shared memory. 2. Anebo m kad procesor svoji lokln pam , a sekundrn pak pstup bu% k pam ti jinho procesoru (za cenu velkho zdren nebo v bec), ppadn distribuovan pam a sdlen zprv. Distribuovanou sdlenou pam pak pedstavuje architektura NUMA Non Uniform Memory Architecture. Oba systmy jsou schematicky znzorn ny na obrzku 35. Zkuenosti ukazuj, e se systm snze programuje, pokud je distribuovanost schovna. (Distribuovan pam je vak levn j tak funguje i lokln s.) 16
Je ovem problm vektorov pota efektivn naprogramovat: to lze rozumn jen u loh, kter jsou snadno vektorizovateln.
3 PELMEL
49
B stav
@ R @
A
?
s s ? m - m JJ ^ = m @@R tmB ? tmA
Obrzek 32: Denice stavu datov prosted stav A do: posloupnost akc entry: akce pi vstupu end: akce pi v stupu udlost (atributy) tda pechod stav B
Obrzek 33: Pechod ve stavovm diagramu
3.3.2 Rozitelnost
Zajmav poet procesor se pohybuje dov ve stovkch. Ideln by bylo, aby n-krt v t )lohu zvldl ve stejnm ase n-krt v t pota. Snaha tedy je, mt pi pidn procesoru tm linern r st v konu i ceny. Je-li rozitelnost (scalability) v mezch dov 1000 procesor , je ji systm prakticky 'neomezen (. R st ceny pitom zvis na propojen a na reii celho systmu. Podle propojen rozliujeme: pm st , kde je kad procesor spojen se sousedy$ pokud si s nimi vysta, je systm dostaten rychl nepm st , kde jsou procesory odd leny, a pi komunikaci se vdy mus pejt do globln pepnac st $ zt se tak ale d mnohem lpe globln rozprostt. Pi komunikaci se pak pouvaj techniky pepnn paket (packet switching): paket je samostatn jednotka$ pakety mohou pitom cestovat r zn mi sm ry, ale tak v r znm poad, proto mus b t 'chytej( protokol, kter je uvede do sprvnho poad virtuln okruhy (virtual circuits): pokud cht j dva procesy komunikovat, otevou si virtuln okruh$ oteven ns tak stoj zv enou reii, ale komunikace je pak rychlej, a data se doprav pmo ve sprvnm poad Pouv se technika 'store and forward(, tedy 'peber a poli dl( (tedy poslm a celou zprvu), nebo 'erv dra( (wormhole), kdy poslm zprvu dl u pi obdren prvn sti. Sm rovac cesty mohou b t statick a dynamick (adaptivn), podle toho, jestli se propojen pr b n m n.
3 PELMEL
50 start Topn systm topen zapnuto
t < T ^ topit]
topen vypnuto
t > t _ netopit]
Obrzek 34: Pklad: regultor topen pam
proc. pam proc. pam
procesory
Obrzek 35: Organizace pam ti v systmech MIMD
Topologie st uruje jej chovn. Sledujeme tak tzv. latenci, co je zdren pi pstupu. Ideln je latence konstatn, ale zpravidla b v logaritmick. R zn topologie jsme probrali v odstavci 1.2.2$ pipomeme si hyperkrychle , kter je zajmav nap. jednoduch m sm rovacm algoritmem zprvu sm rujeme do uzlu, jeho adresa se li od na o jeden bit, a je ble adrese clov$ nev hodou je, e procesory nem eme pidvat jednotliv , vdy jen vzr st na dvojnsobek, a je poteba velk mnostv spoj
torus (anuloid) neboli k-rn n-krychle Zajmav je tak sb rnice, kter je velice pjemn, avak mlo pr chodn. Cena je toti konstatn. N kter systmy maj proto sb rnic n kolik.
3.3.3 Pam typu cache
Procesor je v tinou schopen pracovat podstatn rychleji, ne jak je mu pam schopna dodvat data. Proto m procesor vnitn registry, anebo (protoe registry nesta) se mezi procesor a pam dv rychl pam cache (ti 'ke(). V cache jsou zpravidla bloky xn dlky, kter mapuj bloky hlavn pam ti. D leit je procento )sp nosti pi ten z cache zhruba 80 ; 90% je dostaten k tomu, aby se nm systm jevil, jakoby pracoval jen s cache. V sti ppad se ale data v cache pam ti nenachzej$ tyto ne)sp chy (misses) maj tyto piny: Compulsory prvn pstup, kdy v cache nic nen Capacity potebujeme vce dat, ne je cache schopna pojmout Con"ict kon3ikt v umst n: nastv, pokud se urit blok hlavn pam ti mapuje na uren msto cache (tento nedostatek odstrauje asociativn pam )
3 PELMEL
51
Coherency jen ve vceprocesorov ch systmech: jeden z procesor zape n co do bloku, kter m ve s cache,
)daj v cache druhho je tak neplatn Posledn jmenovan problm se e zavedenm tzv. adres , kdy si pamatujeme, ve kter cache je kter blok. Bloky pak mohou b t uncached, shared, dirty. Jin monost je, mt adres u cache, kter si pak pamatuje, kter jsou v n bloky. Objevuje se zdren (latency), kter je dno tm, e pam pracuje pomaleji. D se odstranit 1. pomoc cache: (a) maximalizace )sp n ch ten z cache (b) minimalizace ceny ne)sp n ch ten z cache 2. zakryt: pokud mme k dispozici superpipelining, nemusme v d t o tom, e potebujeme data 'odjinud(, protoe procesor data mezitm piprav$ ppadn se mohou pepnat kontexty ()lohy), co je ale dost len (nap. procesor SPARCLE) Uvedeme si jet pojem cache only memory, co znamen, e chpeme vekerou pam jako cache, co umouje hardwarov podpora koprovn potebn ch blok do lokln cache. V t chto architekturch je nepjemn lad n: k peruen toti dochz asynchronn k instrukcm$ musme proto zakzat pipelining, m jde ale rapidn dol v kon.