[9 p] Yksisuuntainen silta
Kahden kylän A ja B välissä olevan joen yli kulkee niin kapea silta, että autot voivat ajaa sitä
pitkin vain yhteen suuntaan kerrallaan. Kun sillalla kulkee autoja A:sta B:hen, niin B:stä A:han
haluavien täytyy odottaa. Silta ei myöskään ole kovin vankka, joten sillalla saa olla korkeintaan
10 autoa yhdellä kertaa. Jotta varmistetaan, että autot menevät sillalle vain kulloinkin sallitusta
suunnasta, siltaa käyttävät autoprosessit kutsuvat proseduuria aja_sillalle(suunta) pyrkiessään
sillalle ja sillalta poistuessaan proseduuria poistu_sillalta(suunta).
Process auto[i = 1 to N] {
.....
aja_sillalle(suunta);
ylitä silta
poistu_sillalta(suunta);
......
}
Tee semaforeja ja P- ja V-operaatioita käyttävät koodit proseduureille aja_sillalle(suunta) ja
poistu_sillalta(suunta). Ratkaisun ei tarvitse olla reilu, vaan autojen odotusajat saavat olla pitkiä.
Kuitenkin samalta suunnalta tulevien autojen tulee päästä sillalle saapumisjärjestyksessä.