TU Wien:Betriebssysteme VO (Puschner)/Prüfung 2008-10-22 - Beispiel 01
Zur Navigation springen
Zur Suche springen
Mein Lösungsvorschlag:
Init: initS(schliesser_frei, 1); initS(flasche_verschlussbereit, 0); initS(flasche_verschlossen, 0); initS(wagen1_beladebereit, 3); initS(wagen2_beladebereit, 2); initS(wagen1_voll, 0); initS(wagen2_voll, 0); Schliesser: do forever(){ P(flasche_verschlussbereit); close(); V(flasche_verschlossen); } Roboterarm RA1: do forever(){ get(); P(schliesser_frei); turn(120); V(flasche_verschlussbereit); P(flasche_verschlossen); turn(120); V(schliesser_frei); P(wagen1_beladebereit); put(); V(wagen1_voll); turn(120); } Roboterarm RA2: do forever(){ get(); P(schliesser_frei); turn(240); V(flasche_verschlussbereit); P(flasche_verschlossen); turn(240); V(schliesser_frei); P(wagen2_beladebereit); put(); V(wagen2_voll); P(schliesser_frei); turn(240); V(schliesser_frei); } Wagen1: do forever{ P(wagen1_voll); P(wagen1_voll); P(wagen1_voll); deliver(); V(wagen1_beladebereit); V(wagen1_beladebereit); V(wagen1_beladebereit); } Wagen2: do forever{ P(wagen2_voll); P(wagen2_voll); deliver(); V(wagen2_beladebereit); V(wagen2_beladebereit); }
Edit (18.02.2015): in Wagen1 und Wagen2 muss man das Signal von wagenx_beladebereit mehrmals ausgeführt werden (3 bzw. 2 mal). --> Ausgebessert!