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!