Správa procesů Problém spícího holiče , Brno Připravil: Tomáš Rozbořil
strana 2 Cíl práce Navrhnout program pracující s více navzájem propojenými běžícími procesy Zamezit výskytu deadlocku Vypsat každou změnu u všech procesů
Popis situace V imaginárním holičství pracuje právě jeden holič Holičství navštěvuje různý počet zákazníků Pokud se v holičství nevyskytuje žádný zákazník, holič spí Po obsloužení zákazník odchází strana 3
Problémy Holičství navštíví dva zákazníci ve stejnou chvíli Zákazník vstoupí, zjistí, že holič je zaneprázdněn, než přijde do čekárny, holič dokončí práci a zkontroluje čekárnu, která je prázdná, a proto jde spát strana 4
Řešení „Základem všech z nich je vzájemné vyloučení přístupu ke sdíleným zdrojům.“ [1] (holičova židle, čekárna) Synchronizované metody (Java) Semafory (C#) strana 5
Semafory Holičova židle Fronta u holiče Fronta zákazníků Holičova obsluha Celkové ukončení obsluhy Výpis změn Pomocný semafor (další zákazník) strana 6
Parametry Počet židlí v čekárně Doba generování zákazníka Doba obsluhy Počet zákazníků Výpis: –Jméno výstupního souboru (.txt) –„-“ pro výstup na stdout strana 7
Funkce holiče V nekonečné smyčce Kontrola holičství Otevření semaforu holičovy židle Obsluha zákazníka strana 8
Funkce zákazníka Vytvoření zákazníka Uvolnění pomocného semaforu Kontrola semaforu fronty zákazníků Kontrola semaforu holičovy židle Usazení do židle Kontrola obsluhy zákazníka Uvolnění fronty u holiče Konec procesu strana 9
Použité zdroje informací [1] Problém spícího holiče. Wikipedie [online] [cit ]. Dostupné z: _sp%C3%ADc%C3%ADho_holi%C4%8De strana 10
DĚKUJI ZA POZORNOST