MihaelMattes Blatt8
A
Systemnahe Software (II)
im Sommersemester 2009
Abgabetermin:24.Juni2009
HinweiszurKlausurteilnahmeanalleBahelor-Hörer:FallsSieineinemBahelorstudiengang
eingeshriebensind,diesabernihtsoimSLCsteht(linksobenüberdemAbmelden-Knopf),
meldenSiesihbitteshnellstmöglihperMailbeimÜbungsleiter!BitteName,Matrikelnum-
merundgenauenStudiengangangeben.
31 Message Queues (8 Punkte)
MessageQueuessindeinweitererMehanismuszurInterprozess-Kommunikation(IPC)unter
Unix.EinHandoutbeshreibtkurzdieVerwendungvonMessageQueues.
ShreibenSieeinProgrammmsgqueue.,welheseinezufälligeAnzahlanKindprozessen
zwishen 10und20 Stük erzeugt.DieseProzessesollendannfüreinezufälliggewählte
Zeitspannezwishen1und20Sekundenshlafen.
NahdemAufwahensollendieKindprozessedemElternprozessübereineMessageQueue
denZeitpunktdesAufwahens übermitteln.DerElternprozesssolldarausdieZeitspanneer-
rehnen,diederjeweiligeKindprozessgeshlafenhatunddiesedannmitAngabederPIDdes
Kindesausgeben.
32 Dateizugriszähler mit Named Pipes (6 Punkte)
InUnixgibtesfüreinennormalenAnwenderkeineeinfaheMöglihkeit,dieAnzahlderZugrie
(vonanderenBenutzern)aufeinebestimmteDateizuermitteln.MiteinemkleinenTrikistdies
jedohbeieigenenDateienmöglih.Angenommen,SiehabeneineDateiLieblingsfilme.txt
fürdieÖentlihkeitzugänglihgemahtundmöhtendieZugriedaraufzählen.Dannkönnen
SiedieDateibeispielsweiseinLieblingsfilme-eht.txtumbenennenundeineNamedPipe
namensLieblingsfilme.txt anlegen. Danahshreiben Sie einProgramm,welhes immer
wiedereinenKindprozesserzeugt,deraufdieseNamedPipeexklusivshreibendzugreift,den
InhaltderehtenDateihineinshreibtundsihdannbeendet.DerHauptprozesswartetaufdas
KindundinkrementiertnahjedemProzessendeeinenZähler.
ImplementierenSiediesesSzenarioimeinemProgrammaessount..AlsKommando-
Pipezugegrienwird,sollaessount.denaktuellenZählerstandaufderStandardausgabe
ausgeben.
VielErfolg!