vyuka:cviceni:x36dsi:uloha1

This is an old revision of the document!


Zadání

Stáhněte si, rozbalte a zprovozněte obecné simulační schema SHO (ke stažení zde).

Upravte obecné schéma SHO na tento případ:

Uvažujme hospodu, kde roznáší pivo jediný hostinský. V hospodě sedí 20 hostů, z toho 5 hostů jsou štamgasti, a mají proto při obsluze přednost. Každý z hostů pije pivo průměrně 20 minut, doba pití piva jedním hostem je dána exponenciálním rozložením. Jakmile host dopije pivo, zavolá na hostinského, aby mu přinesl další (my víme, že tohle je blbost, ale nechtějte, abyste museli simulovat skutečnou hospodu). Hostinský je schopen najednou obsloužit pouze jednu objednávku (jednoho hosta). Obsluha mu trvá 2-4 minuty (tedy 120-240 sekund) s rovnoměrným rozložením. Objednávky svých přátel obslouží vrchní přednostně před ostatními, nepřeruší ale obsluhu předchozí objednávky. Na začátku simulace (po otevření hospody) si všichni hosté objednají pivo. Hospoda je otevřena 10 hodin ⇒ Simulaci nechte běžet po dobu 10 hodin (simulačního času !).

Určete:

  • průměrnou i maximální dobu čekání na pivo štamgastů
  • průměrnou i maximální dobu čekání na pivo ostatních hostů
  • kolik štamgastů průměrně/maximálně čekalo najednou na pivo
  • kolik ostatních hostů průměrně/maximálně čekalo najednou na pivo
  • kolik objednávek zůstalo v době zavíračky nevyřízeno.

Tyto hodnoty zobrazte v přehledné tabulce.

Termín odevzdání

Úlohu odevzdejte do konce 2. cvičení. Pokud ji nestihnete, pošlete do začátku 3. cvičení na adresu xsmitka@fel.cvut.cz hodnotu md5 zdrojového souboru s Vaší implementací (zpravidla Main0.cpp). Neposílejte žádný soubor. Na nejbližším cvičení úlohu zkontroluji a pokud hodnota md5 odpovídá a byla poslána v časovém limitu, dostanete body.

Hodnotu md5 umí spočítat v linuxu příkaz md5sum jmeno_souboru, ve Windows ji spočte např. Total Commander.

Jak přeložit a spustit příklad na SHO

Následující řádky popisují postup, kterým dosáhnete překladu a spuštění příkladu ve výukovém systému pro simulaci systémů hromadné obsluhy v učebně K311.

  1. Stáhněte si soubor s obecným simulačním schematem SHO (queuesys.zip) a rozbalte ho do nového adresáře.
  2. Spusťte Microsoft Visual Studio .Net (Start → Programy → Microsoft Visual Studio .Net → Microsoft Visual Studio .Net)
  3. Otevřete projekt queueSys.dsp (File → Open → Project and select queueSys.dsp), potvrďte případnou konverzi na nový formát projektu.
  4. Vpravo nahoře rozbalte v okně “Solution Explorer” položku queueSys a Source Files
  5. Poklepejte myší na souboru Main0.cpp
  6. Otevře se soubor se zdrojovým kódem, ten si prostudujte.
  7. Překlad provedete Ctrl-Shift-B
  8. Spuštění provedete Ctrl-F5. Občas se výsledný soubor (uložen jako queueSys.exe v podadresáři Debug) odmítne spustit s tím, že nemáte dostatečná práva ke spouštění souborů na aktuálním disku. Pomůže např. zkopírování exe souboru do adresáře C:\TEMP.
  9. Prohlédněte si výsledky simulace.

Velmi doporučuji založený projekt neměnit a v případě změny simulace podstrkávat Visual Studiu pouze jiný soubor Main0.cpp. Soubor Main0.cpp je jediný, který budete editovat, ostatní soubory projektu v žádném případě neměňte.

  • vyuka/cviceni/x36dsi/uloha1.1204586404.txt.gz
  • Last modified: 2008/03/03 23:20
  • by smitka