Yliopiston etusivulle Suomeksi På svenska In English
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Suomeksi In English Laskuharjoitus

Rinnakkaisohjelmointi, S2007, LH 5

Nämä tehtävät käsitellään harjoituksissa viikolla 48, 26-31.11.2007.
  1. Tehtävä 6.6 oppikirjasta.
     
  2. Tarkastellaan kirjan algoritmia 6.21 (s. 144). Huomaa typo algoritmissa.
    1. Osoita, että lukijoilla on etusija kirjoittajiin nähden.
    2. Toimiiko algoritmi, jos kaikki kolme semaforia toteutettaisiin busy-wait -semaforeina tavanomaisten suspend-wait -semaforien asemesta? Missä tilanteissa busy-wait -semaforeja tulisi/ei tulisi käyttää suspend-wait -semaforien asemesta?
    3. Muokkaa algoritmia siten, että kirjoittajilla on etusija lukijoihin nähden. Miksi näin tehtäisiin?
    4. Muokkaa algoritmia siten, että lukijat ja kirjoittajat ovat samanarvoisessa asemassa. Miksi näin tehtäisiin?

     
  3. Tee laskuharjoitusten 4 tehtävä 1 (PlusMinus BACI ohjelma) uudelleen siten, että prosessien synkronointiin käytetään monitoria.

  4.  
  5. Tarkastellaan kirjan algoritmia 7.3 (s. 152). Huomaa typo algoritmissa.
    1. Mitä merkittäviä eroja algoritmilla 7.3 on luennolla esitetystä usean tuottaja/kuluttajan semaforipohjaisesta ratkaisusta (luento 6, kalvo 16; Andrews, Fig 4.5)? Kumpi on parempi/huonompi ja miksi?
    2. Mikä tarkoittaa käsite monitorin signalointisemantiikka?
    3. Algoritmi 7.3 perustuu IRR signalointisemantiikan. Anna skenaario, jossa algoritmi toimii väärin, jos signalointisemantiikkana olisi E=S=W.
    4. Kuinka algoritmia 7.3 tulee muuttaa, jos monitorin signalointisemantiikkana on E=S=W?

  6.  
  7. Tee laskuharjoitusten 4 tehtävään 4 (kapea silta) semaforiratkaisu, jossa autot odottavat vuoroaan yksityisissä semaforeissa.

  8.  
  9. Tee laskuharjoitusten 4 tehtävään 4 (kapea silta) monitoriin perustuva ratkaisu.

 
Teemu Kerola 16.11.2007 12:43