Table Of ContentStudienreihe Informatik
Herausgegeben von W. Brauer und G. Goos
Ralf Guido Herrtwich
Gunter Hommel
Kooperation
und Konkurrenz
NebenHiufige, verteilte und
echtzeitabhangige Programmsysteme
Mit 89Abbildungen und
28 Kapitelillustrationen
Springer-Verlag
Berlin Heidelberg NewYork
London Paris Tokyo Hong Kong
Or.-Ing. RalfGuidoHerrtwich1,2
Prof. Or.-Ing. GunterHommel!
1TechnischeUniversiUitBerlin,FachbereichInformatik
FachgebietProzeBdatenverarbeitungund Robotik
FranklinstraBe28/29,0-1000Berlin 10
2InternationalComputerScienceInstitute
1947CenterStreet,Berkeley,California94704-1105,USA
Umschlag-undKapitelillustrationenvon
RalfKrischker
SuarezstraBe11,0-1000Berlin19
ISBN-13:978-3-642-97852-4 e-ISBN-13:978-3-642-97851-7
001: 10.1007/978-3-642-97851-7
CIP-TitelaufnahmederDeutschenBibllothek
Herrtwich.RalfGuido:KooperationundKonkurrenz:nebenlauflge.vertellteundechtzeit
abhangigeProgrammsysteme/RalfGuidoHerrtwich•GunterHommel.Kap-III.vonRalf
Knschker.-Berlin;Heidelberg,NewYork;London;Paris;Tokyo,HongKong:Spnnger,
1989
(Stud,enre,heInformat,k)
ISBN-13:978-3-642-97852-4
NE:Hommel,Gunter.
DlesesWerk1sturheberrechtlichgeschutzt.DiedadurchbegrundetenRechte,msbesondere
diederUbersetzung,desNachdrucks,desVortrags,derEntnahmevonAbbildungenund
Tabellen, der Funksendung, der MikroverfllmungoderderVervlelfalllgungaufanderen
WegenundderSpelcherung10Datenverarbeltungsanlagen,blelben,auchbelnurauszugs
welserVerwendung,vorbehalten.EineVervielfaltlgungdiesesWerksodervonTeilendieses
Werkesistauch1mEinzelfallnurindenGrenzendergesetzlichenBestimmungendesUrhe
berrechtsgesetzesderBundesrepubllkDeutschlandyom9 September1965inderFassung
yom24.Juni 1985zulassig. Sie1stgrundsatzlichvergutungspfhchtig Zuwiderhandlungen
unterhegendenStrafbestlmmungendesUrheberrechtsgesetzes
Text,AbblldungenundProgrammewurdensorgfaltlgerarbeltet.VerlagundAutorenkon
nenjedochfureventuellverblelbendefehlerhafteAngabenundderenFoigenwedereme
junstlscheVerantwortungnoch,rgendemeHaftungubernehmen.
DieWiedergabevonGebrauchsnamen, Handelsnamen,Warenbezeichnungenusw 10die
semWerkberechtigtauchohnebesondereKennzelchnungnichtzuderAnnahme,daBsol
che Namen 1m SlOne der Warenzelchen- und Markenschutz-Gesetzgebung als frel zu
betrachtenwarenunddahervonjedermannbenutztwerdendurften
e>Springer-VerlagBerlinHeidelberg1989
SoftcoverreprintofthehardcoverIstedition 1989
SatzdurchdieAutorenmitMicrosoftWord3.01undMacDrawIIaufAppleMacmtoshII
undLaserWnterPlus.
Druck:Beltz,Hemsbach;Bmdearbeiten Schaffer,Grunstadt
2145/3140-543210- GedrucktaufsaurefrelemPapler
Jenen, diefruher auf»login:« auch mit »jrst« geantwortet haben
- genau dafur
R.O.H.
Herm Prof RichardBaumann
fur die groftzugige Unterstutzung meinerArbeiten
an der Technischen Universitiit Munchen
O.H.
;
/'
/
---7.k- ~1-!-L--L_I~~~---
_------;;lIo-----
-,-(1(- ,r--
Vorwort
Hamlet: So ringsumstricktmitBubereien,ftng,
Ehich nochden Prolog dazu gehalten,
Mein Kopfdas Spiel schon an.
Hamlet (V. Akt, 2. Szene)
Die Programmierung nebenHiufiger, verteilter und echtzeitabhangigerSysteme
erlangt zunehmende Bedeutung nicht nur in der Informatik, sondem vor allem
auchin zahlreichenAnwendungsbereichen. Ursprunglich muBte man sichmitihr
nurbeirnBetriebssystembauundetwas spliterauch inderProzeBdatenverarbei
tung beschliftigen. Heute ist sie aufgrund neuartigerRechnerarchitekturen und
derVerwendung von RechnemetzeninderTelekornmunikation, inderProduk
tionstechnikundin derBuroautomationfUrvieleandereGebiete wichtiggewor
den. Es liegtdeshalb nahe,ihre grundlegenden Konzepte, Methoden undTech
nikenimZusammenhangdarzustellen.
Das vorliegende Buch entstandaus Unterlagen zu Vorlesungen und Kursen,
die wir getrennt und gemeinsam an den Technischen Universitaten Berlin und
Munchen gehalten haben. Genau wie diese Lehrveranstaltungen sowohl fUr
kunftige Informatiker als auch fur kunftige Ingenieure gedacht waren, richtet
sich auch dieses Buch an beide Zielgruppen. Inhalt, Aufbau und Darstellungs
weise dieses Buches setzen daher nur Programmiererfahrung, aber keine spe
ziellenKenntnisse theoretischerMethodenderInformatikvoraus.
Wer heute ein nebenlaufiges, verteiltes odergarechtzeitabhangiges System
programrnieren will, sieht sich typischerweise in einer zwiespaltigen Situation.
Aufder einen Seite findet man fUr diesen Zweck in der Literaturjede Menge
VorschlagefUrProgrammiertechniken, -methoden und-sprachen. Aufderande
ren Seite stehen oft keine odernur unzureichende Werkzeuge fUr die spezielle
Aufgabenstellung zurVerfugung, sodaB man zur Realisierungeines konkreten
Systems sogarelementareFunktionen selbstprogrammieren muB. DieserSitua
tion wollen wirindiesem Buchdadurch Rechnung tragen,daB wirverschiedene
Verfahren vorstellen, vertiefen und zueinanderin Beziehung setzen. Wirgeben
dabei nicht nur Konzepte an, sondern zeigen auch, wie diese Konzepte imple
mentiert werden konnen. Idee, Anwendung und Realisierung gehen in diesem
BuchHandinHand.
Urn verschiedene Konzepte einander gegenuberzustellen, bietet es sieh an,
ihrehistorischeEntwicklungnachzuvollziehen undsie aus heutigerSiehtzu be-
VIII Vorwort
werten. Das dazu notwendige Herausarbeiten der Unterschiede darfnicht den
Blick aufGemeinsarnkeiten verstellen. Deshalb verwenden wir zum Betonen
von AnalogienimmerwiederdiegleichenBeispiele.Wirwollendarnitauchda
flir sorgen, einzelneVerfahren aus demWechselbadkonsequenterVerdammnis
aufder einen undblinderVerehrung aufder anderen Seite zu befreien. Nurwer
verschiedene Altemativenmitihren StarkenundSchwlichenkennt, istinderLa
ge, sichflireinekonkrete Aufgabenstellungdas geeigneteMittelherauszusuchen
unddie getroffeneWahl niichtem zu begriinden.
1mMittelpunkt dieses Buches stehen Programmierkonzepte- und nichtdie
ProgrammierungineinerbestimmtenSprache. Natiirlichkommen wirnichtum
hin, unsere AlgorithmenineinerbestimmtenFormaufzuschreiben, doch istdie
hierfiir verwendete Notation ganz bewuBt fiktiv gewlihlt. Wir geben deshalb
auch keine Sprachregeln flir diese Notation an; alle halbwegs erfahrenen Pro
grammiererwerdenkeineSchwierigkeitenmitihrerInterpretationhaben. Urn zu
zeigen,in welchenModifikationenundErweiterungendieeinfachenKonzeptein
praktischbenutzteProgrammierspracheneingeflossen sind, stellenwirimmerim
AnschluBan unsereeherabstrakten Betrachtungenkonkrete Sprachenvor. DaB
diese BehandlungimKontext dieses BucheswederhinsichtlicheinzelnerSpra
chen noch hinsichtlich der gesamten Sprachvielfalt vollstlindig sein kann und
will, versteht sich von selbst.
Zum Verstlindnis dieses Buches sind auGer praktischen Erfahrungen in der
Programmierung,etwainPascaloderModula-2, einigeGrundkenntnissein der
Organisation von Rechenanlagen hilfreich. Dariiberhinaus istdie Bereitschaft
erforderlich,die Algorithmen,dieindenTextdieses Bucheseingeflochten sind,
nichteinfach beimLesen zu iiberspringen, sondem griindlich zu studieren und
hierfiirauch einmalmehralseineMinute zuinvestieren. Wirhaben aufForma
lismenanden Stellen verzichtet,woihrGebrauchdas Verstlindnisfiirdieange
sprochenen Zielgruppen zuerschwerendrohte. FormaleBetrachtungen,die un
bestritten fiir Korrektheitsfragen beiderProgrammierungnebenliiufiger, verteil
terundechtzeitabhlingigerSysteme wichtigsind, stellenwirnurdortan, wosie
tatslichlich zumbesserenVerstlindniseinesProblemsoderseinerLOsungbeitra
gen. Geradedann sollten sie vondenLesemauch nachvollzogen werden.
Bei der Auswahl und Darstellung des hier behandelten Lehrstoffes konnten
wirunteranderemaufArbeiten von EdsgerDijkstra, TonyHoare, LeslieLam
port,ButlerLampson,BarbaraLiskov undFredSchneiderzUrUckgreifen, deren
EinfluB andieserStelledankbaranerkanntsei. Auch allen Studenten,die in den
vergangenenJahren mitihrenkonstruktiven, kritischenAnmerkungenaufdieses
BuchEinfluBgenommenhaben,danken wirflir ihrInteresse undihreHilfe.
Einem unserer ehemaligen Studenten gebiihrt besondere Erwlihnung: Ralf
Krischkerhatdie Idee gehabt,dieeinzelnenKapitel unseres Buchs lihnlichdem
lEX Book von DonaldKnuth mit lllustrationen zu versehen. Er besitzt unsere
BewunderungfUr seinkiinstlerischesTalentundunseren DankdafUr,daBerdas
Kanguruh Hoppy, das immer wieder durch die Ubungsaufgaben unserer Stu
denten sprang, zu bildlichemLebenerwachenlieB.
Vorwort IX
Es hateinige Zeit gedauert, bis dieses Buch fertig wurde. 1mZuge derEnt
stehung der versehiedenen Versionen standen uns viele Kollegen und Freunde
mit Rat undTat zurSeite. Daes unmoglich ist, andieserStellejedeneinzelnen
EinfluBangemessen zu wiirdigen, seihiernureinigenbesondersgedankt.
Richard Baumann, Werner Riib und Gerhard Schrott haben mit ihren Ar
beiten imBereich derEchtzeitprogrammierung an derTechnischen Universitat
Miinchen unsereDarstellung beeinfluBt. AnderTechnischenUniversitatBerlin
haben HeinerMarxen undJOrgHahndurch das Korrigierender allererstenFas
sungdes Buchtextesdie Weichenrichtig gestellt. UweWolfgang Brandenburg,
ReinhardBaierundFredSchneidereithatten mitunseren UnterlagenKurse und
Lehrveranstaltungen zu halten und waren deshalb besonders kompetente und
kritische Begleiterunserer Arbeit. Hans-Joachim Peters hat am besten erkannt,
wenn einerunsererExkurse zu langgeworden war. PeterPepperwies uns nicht
nur immer aufdie Stellen hin, die wir "flir die Kollegen" geschrieben hatten,
sondernhatauchunsere BerlinerSichteinerMiinchnerPrtifungunterzogen.
Gudrun Pourshirazi ist die beste Sekretiirin, die wir uns vorstellen konnen.
Sie hatdie MtihenderUbertragung des alten troff-Textes in diejetzige Version
wacker getragen. Renate Kirchmann hat uns bei der Erstellung einiger Zeich
nungen geholfenunddabei ihreVirtuositatamZeichenbrettaufihrenMacintosh
tibertragen. Renate Gtinther war stets zur Stelle, wenn wir nieht sicher waren,
ob unsere Programme- vorallem unsere Ada-Programme - wirklich so funk
tionieren wtirden, wie wir es uns vorstellten. Ulrich Einig hat am Ende, wie
schon sooft,die Mtiheaufsichgenommen,denTextnoch einmalaufSatZfeler
durchzusehen. Etwaige trotzdem noch verbliebene Unzulanglichkeiten gehen
aberselbstverstiindlichaufunserKonto.
Dank gebtihrt auch unseren Herausgebern, Wilfried Brauer und Gerhard
Goos, flir ihren Zuspruch zu unserer Arbeit. Vor allem Gerhard Goos hat uns
viele Anregungen flir die endgiiltigeFormdes Buehes gegeben. Hans Wossner
undIngeborgMayervomSpringer-VerlagschlieBlich begleitetenunsere Arbeit
mitdernotigenUnterstiitzungunddererforderlichenGeduld vomerstenExpose
bis zumfertigen Buch.
RalfGuido Herrtwich
Gunter Hommel
Inhaltsverzeichnis
ZweiteHexe: Sumpf'gerSchlangeSchweifundKopf
BratundkochimZaubertopf:
MolchesaugundUnkenzehe.
HundemaulundHirnderKrahe;
ZiiherSoftdesBilsenkrauts.
EidechsbeinundFlaum yomKauz:
Macht'gerZauberwiintdieBriihe.
HollenbreiimKesselgliihe!
Macbeth(IV. Akt.I. Szene)
Vorwort VII
Inhaltsverzeichnis XI
Prolog 1
o Motivation 3
Teil A: StrukturennebenHiufigerProgrammsysteme 11
1 NebenHiufigkeit 13
1.1 ZuslitzlicheEigenschaftenvon Algorithmen 13
1.1.1 VenichtaufSequentialitlit 14
1.1.2 VenichtaufDeterminismus 17
1.1.3 Nebenlliufigkeit,Nichtdeterminismus,Nichtdeterminiertheit 18
1.2 Prozesse , 21
1.2.1 Kooperierendeund konkurrierendeProzesse 22
1.2.2 SynchronisationundKommunikation 26
2 Modularitat 29
2.1 Module................ 29
2.2 Modularten 32
2.2.1 AbstrakteDatenstrukturen 32
2.2.2 AbstrakteDatentypen 35
2.2.3 Generischeabstrakte Datentypen 35
2.3 ModularitlitinModula-2 37
2.4 ModularitlitinAda.. 41
3 ProzeBbeschreibung 47
3.1 AblauforientierteProzeBbeschreibung 47
3.1.1 ProzeBablosung 48
3.1.2 Koroutinen 49
3.1.3 NebenlliufigeBlocke 50
3.1.4 ProzeBabzweigung 54
3.2 ProzeBdeklaration 57