Feladatok

Fakultatív feladatok

A feladatokra jelentkezés menete:
  • A konzulensek kiírják a feladatokat. Saját feladattal is meg lehet keresni a konzulenseket, esetleges érdeklődési körük a témakiírásokból vagy más tanszéki anyagokból (pl. önlab, szakdolgozat, diploma kiírás) kiderül.
  • A hallgatók kb. 1/2-1 oldalas írott anyagot készítenek a témáról, "motivációs levél" jelleggel, amit elküldenek a konzulensnek email-ben. A levélből derüljön ki, hogy milyen háttere van a hallgatónak a feladat megoldásához, miért érdekli az őt, mi az elképzelése a feladat megoldása során végzendő munkáról. Természetesen a levél tartalmazza a hallgató nevét, neptun kódját, és elérhetőségét (email cím).
  • Egy feladatra kisebb hallgatói csoportok is jelentkezhetnek, ekkor a hallgatóknak természetesen arányosan nagyobb feladatot kell elvállalnia.
  • A konzulens a motivációs levél alapján dönt a feladat elvállalásáról, a hallgatók befogadásáról. Erről a hallgatókat email-ben értesíti. Ha nem fogadja be őket, akkor a döntését röviden indokolja.
  • A tárgyfelelős oktatónak a konzulens megírja (email-ben), hogy kiket (név, neptun kód) milyen feladatra fogadott be.
  • A 4. oktatási hét végéig ennek a folyamatnak le kell zajlania, és a feladatok kidolgozásának el kell kezdődnie.
A feladatok értékelése:
  • A feladatok megoldása során rendszeresen konzultálni kell a konzulenssel, mert csak így biztosítható, hogy a feladat mindkét fél számára az elvárt irányba halad. A konzultáció gyakoriságát a konzulens figyelembe veszi a feladat értékelése során.
  • Maximálisan +1 jegynyi (+20%-nyi pont a vizsgán) pontot lehet kapni értük, ha a vizsga legalább elégséges a vizsga során szerzett pontok alapján. Vagyis a 2-es vagy annál jobb jegyet lehet javítani vele. Csoportos feladat megoldás esetén a konzulens adhat a csoporttagoknak eltérő értékelést.
  • A feladat megoldását dokumentálni kell, a dokumentációt a konzulensnek kell leadni, aki megadja a feladat teljesítésének szintjét a tárgyfelelősnek. A feladat teljesítésével arányos plusz vizsgapontot ezek arányában vesszük figyelembe, pl. 80%-os feladat esetén 16%-nyi plusz pont jár a vizsgán.
  • A megoldásokat a szorgalmi időszakban le kell adni, és a pótlási hét végére a konzulensnek meg kell küldenie a feladatok értékelését a tárgyfelelősnek (hallgatók neve, Neptun kódja, a feladat %-os értékelése tagonként).

A feladatok később TDk dolgozat, önálló labor, projekt munka vagy akár szakdolgozat formájában folytathatóak a tanszéken.

2014-as feladatok (folyamatosan írjuk ki őket):

Feladat: Kölcsönös kizárási algoritmusok helyességének bizonyítása

Konzulens: Dr. Majzik István (http://home.mit.bme.hu/~majzik/)
Leírás: Az évek során több algoritmust javasoltak a taszkok közötti kölcsönös kizárás problémájának megoldására. Ezek között olyanok is akadtak, amelyek nem váltották be a hozzájuk fűzött reményeket, és hibásnak bizonyultak. A feladat kidolgozása során két algoritmust kell modellezni a véges állapotú automatákon alapuló UPPAAL modellező eszközzel, majd az algoritmusok helyességét ellenőrizni. Meg kell ismerni, hogy (a működés szimulációja mellett) az UPPAAL milyen lehetőségeket ad az elvárások megadására ás ezek automatikus, "gombnyomásra történő" ellenőrzésére.

Feladat: Elosztott protokoll kódjának generálása modellalapon

Konzulens: Vörös András (http://home.mit.bme.hu/~vori)

Leírás: A feladat során különböző eszközök/nyelvek segítségével tervezünk egyszerű protokollt, és kódgenerálással állítjuk elő a forráskódot. Lehetőség van megismerkedni többféle tervező eszközzel is, a teljesség igénye nélkül: mbeddr , Yakindu . A megtervezendő programnak javasoljuk egy elosztott konszenzus protokoll, kölcsönöz kizárást biztosító algoritmus vagy egyszerű ütemező választását. A feladat elvégzése során a hallgató megismerkedhet különböző tervező eszközökkel és a kódgenerálás problémakörével.
A kapcsolódó dokumentációkat és eszközöket az első konzultáció alkalmával áttekintjük!

Feladat: Kölcsönös kizárást megvalósító protokoll fejlesztése és ellenőrzése a NASA Java PathFinder eszköz segítségével

Konzulens: Vörös András (http://home.mit.bme.hu/~vori)

Leírás: A feladat során a hallgató egy nagyon egyszerű több szálon futó kölcsönös kizárást megvalósító programot készít. Ez lehet az irodalomban jól ismert protokollok egyike, vagy egy egyszerű saját implementáció. Ezután a hallgató megismerkedik az egyik leghíresebb és legelterjedtebben használt szoftver modellellenőrzővel, a Java PathFinder eszközzel: http://babelfish.arc.nasa.gov/trac/jpf

A feladat az eszközzel való megismerkedés az egyszerű protokoll ellenőrzésén keresztül. Amennyiben a hallgató lelkes, van lehetőség bonyolultabb esetek vizsgálatára is!

Feladat: Ütemező algoritmusok formális modellezése és analízise

Konzulens: Vörös András (http://home.mit.bme.hu/~vori)

Leírás: A feladat során a hallgató egy vagy több (a kiválasztott ütemező algoritmus bonyolultságának függvényében) általa választott ütemező algoritmus formális modelljét készíti el és vizsgálja meg. A tárgyban szereplő ütemező algoritmusok közül is lehet választani, de egyéb hivatalos forrásokban található algoritmusok is megfelelőek. A feladat elkészítéséhez az UPPAAL (http://uppaal.org/) modellező eszköz ajánlott, azonban használható más is (első konzultáción mutatunk más eszközöket is).
A feladatra több hallgató is jelentkezhet.

Feladat: Elosztott rendszerek ellenőrző algoritmusai

Konzulens: Vörös András (http://home.mit.bme.hu/~vori)

Leírás: A feladat során a hallgató megismerkedhet egy egyszerű, aszinkron rendszerek modellezésére szolgáló modellezés nyelvvel, majd gráfbejáró algoritmusokon alapuló elérhetőségi vagy invariáns tulajdonságokat vizsgáló algoritmusokkal lehet megismerkedni. A feladat célja, hogy a hallgató egy ellenőrző algoritmust implementáljon és próbáljon ki. A feladat elvégzéséhez egyszerű programozási és algoritmusokkal kapcsolatos ismeretek szükségesek. Lehetőség van többszálú algoritmus megvalósítására vagy a különböző algoritmusok összehasonlítására is.

Feladat: C programok verifikációs (ellenőrző) eszközeinek megismerése és összehasonlítása (több hallgató)

Konzulens: Vörös András (http://home.mit.bme.hu/~vori/)

Napjainkban egyre elterjedtebbek a szoftverellenőrző eszközök. A hallgató(k) feladata két, C programozási nyelvhez készített szoftver ellenőrző keretrendszer kipróbálása és összehasonlítása. A munka során a hallgató(k) nem csak az eszközökkel, de a használt algoritmusokkal is megismerkedhetnek. Természetesen lehetőség van további eszközök kipróbálására is, de alapvetően a CBMC és a BLAST nevű, neves külföldi egyetemek által használt eszközök megismerése a cél.
További információ az eszközökről:

http://www.cprover.org/cbmc/

http://mtc.epfl.ch/software-tools/blast/index-epfl.php

http://linuxtesting.org/project/ldv

Feladat: Órakezelés és időszinkronizáció Linux-ban és beágyazott rendszerekben

Konzulens: Kovácsház Tamás (http://www.mit.bme.hu/general/staff/khazy)
Leírás: Az operációs rendszerek egyik fontos komponense a rendszeróra. A feladat során meg kéne vizsgálni, hogy a rendszeróra hogyan működik a Linux-ban vagy a beágyazott platformon, milyen alternatív lehetőségek vannak idő, időintervallum mérésre, hogyan oldható meg az elosztott rendszerekben szükséges óraszinkronizáció, és ebben a környezetben milyen változások várhatóak a HW támogatott IEEE 1588 óraszinkronizáció (PTPd, linuxPTP) elterjedésével. HW IEEE 1588 óraszinkronizációt támogató eszközök az Intel és más gyártok támogatásával elérhetőek a tanszéken, ezeket fel lehet használni a feladat megoldása során.

Feladat: Tűzfal- és NAT-barát  check_mk

Konzulens: Kovácsházy Tamás (http://www.mit.bme.hu/general/staff/khazy)
Leírás: Az operációs rendszerek működését a rendszer üzemeltetői szeretik folyamatosan megfigyelni, arról adatot gyűjteni. Erre az egyik legkiválóbb eszköz a Nagios. Sajnos a Nagios-t borzasztóan nehéz konfigurálni, és a konfigurációt karbantartani (aki csinálta, tudja). Mathias Kettner elég korrekten megoldotta a problémát a  a check_mk nevű szoftverrel. Sajnos a megoldás nagyon nem szereti a tűzfalakat meg a NAT-ot. Egy kicsit át kéne írni. A dolog különösen OpenWRT és/vagy Ubuntu (ARM-os, Raspberry vagy BeagleBone) alatt érdekes, mert az ilyen beágyazott eszközök gyakran kerülnek NAT mögé, de központilag kéne őket menedzselni. Elsősorban már Linux-hoz jól értőket várok a feladatra.

Feladat: Intel Galileo platform élesztés

Konzulens: Kovácsház Tamás (http://www.mit.bme.hu/general/staff/khazy)
Leírás: Az Intel Galileo HW platform egy teljesen új termék az Intel-től, amely egy nagyon kis fogyasztású x86-os rendszert takar, amelyet az Intel elsősorban beágyazott célokra fejlesztett ki. A feladat megoldása során meg kell ismerni a platformot, tesztelni azt, pl. teljesítményt (I/O, egyes szolgáltatások), stb., valamint kis példaalkalmazások (pl. meterológiai állomás, szerverfelügyelei vezérlőegység, stb.) fejlesztése képzelhető el.

2013-as feladatok:

Feladat: Órakezelés és időszinkronizáció Linux-ban

Konzulens: Kovácsház Tamás (http://home.mit.bme.hu/~khazy/)
Leírás: Az operációs rendszerek egyik fontos komponense a rendszeróra. A feladat során meg kéne vizsgálni, hogy a rendszeróra hogyan működik a Linux-ban, milyen alternatív lehetőségek vannak idő, időintervallum mérésre, hogyan oldható meg az elosztott rendszerekben szükséges óraszinkronizáció, és ebben a környezetben milyen változások várhatóak a HW támogatott IEEE 1588 óraszinkronizáció (PTPd) elterjedésével. HW IEEE 1588 óraszinkronizációt támogató eszközök az Intel támogatásával elérhetőek a tanszéken, ezeket fel lehet használni a feladat megoldása során.

Feladat: Tűzfal- és NAT-barát  check_mk

Konzulens: Kovácsházy Tamás (http://home.mit.bme.hu/~khazy/)
Leírás: Az operációs rendszerek működését a rendszer üzemeltetői szeretik folyamatosan megfigyelni, arról adatot gyűjteni. Erre az egyik legkiválóbb eszköz a Nagios. Sajnos a Nagios-t borzasztóan nehéz konfigurálni, és a konfigurációt karbantartani (aki csinálta, tudja). Mathias Kettner elég korrekten megoldotta a problémát a  a check_mk nevű szoftverrel. Sajnos a megoldás nagyon nem szereti a tűzfalakat meg a NAT-ot. Egy kicsit át kéne írni, azt tudom, hogy hogyan, de időm nincs rá. A dolog különösen OpenWRT alatt érdekelne, mert akkor adatot tudnék gyűjteni az OpenWRT-és beágyazott cuccainkról. Elsősorban már Linux-hoz jól értőket várok a feladatra.

2012-es feladatok:

Feladat: Kölcsönös kizárási algoritmusok helyességének bizonyítása

Konzulens: Dr. Majzik István (http://home.mit.bme.hu/~majzik/)
Leírás: Az évek során több algoritmust javasoltak a taszkok közötti kölcsönös kizárás problémájának megoldására. Ezek között olyanok is akadtak, amelyek nem váltották be a hozzájuk fűzött reményeket, és hibásnak bizonyultak. A feladat kidolgozása során két algoritmust kell modellezni a véges állapotú automatákon alapuló UPPAAL modellező eszközzel, majd az algoritmusok helyességét ellenőrizni. Meg kell ismerni, hogy (a működés szimulációja mellett) az UPPAAL milyen lehetőségeket ad az elvárások megadására ás ezek automatikus, "gombnyomásra történő" ellenőrzésére.

Feladat: Singularity

Konzulens: Micskei Zoltán (http://home.mit.bme.hu/~micskeiz/)
Leírás: A feladat megismerni a Microsoft Research kutatási operációs rendszerét, a Singularity-t. Először meg kell ismerkedni a Singularity fejlesztési elvével, átnézni, hogy miben különbözik a tradícionális operációs rendszerektől. Ezután egy virtuális gépbe fel kell telepíteni, és néhány példaprogram segítségével bemutatni a működését.

Feladat: Párhuzamos programozás

Konzulens: Bergmann Gábor (http://home.mit.bme.hu/~bergmann/)
Leírás: A hallgató feladata egy választott párhuzamos programozási környezetben (pl. C++ megfelelő könyvtárakkal, Java, .NET) megvalósítani a hivatkozott feladatkiírásban leírt programot, és egy többprocesszoros vagy több CPU magú számítógépen elvégezni a kísérleteket. Leadandó a forráskód, valamint a döntésekből, tapasztalt mérési eredményekből és azok magyarázatából összeállított jegyzőkönyv.

Feladat: Protokollok invariáns tulajdonságainak hatékony vizsgálata

Konzulens: Vörös András (http://home.mit.bme.hu/~vori/)
Kommunikációs és egyéb szinkronizációs protokollok tervezésekor fontos szempont lehet, hogy bizonyos specifikációs tulajdonságokat biztosan teljesítsenek. Ezeket a biztonsági tulajdonságokat hívjuk invariánsoknak. Ezen tulajdonságok vizsgálata azonban nehéz feladat, jellemzően komoly gráfelméleti algoritmusok szükségesek a probléma megoldásához. A hallgató feladata a félév során ilyen algoritmusok kipróbálása, vizsgálata és továbbfejlesztése. A fejlesztéseket egy meglévő, a BME MIT FTSRG kutatócsoport által fejlesztett keretrendszerben lehet elvégezni, amellyel a hallgató szintén megismerkedhet. A téma során a hallgató megismerkedik a formális módszerek témakörével is.

Feladat: C programok verifikációs (ellenőrző) eszközeinek megismerése és összehasonlítása (több hallgató)

Konzulens: Vörös András (http://home.mit.bme.hu/~vori/)

Napjainkban egyre elterjedtebbek a szoftverellenőrző eszközök. A hallgató(k) feladata két, C programozási nyelvhez készített szoftver ellenőrző keretrendszer kipróbálása és összehasonlítása. A munka során a hallgató(k) nem csak az eszközökkel, de a használt algoritmusokkal is megismerkedhetnek. Természetesen lehetőség van további eszközök kipróbálására is, de alapvetően a CBMC és a BLAST nevű, neves külföldi egyetemek által használt eszközök megismerése a cél.
További információ az eszközökről:

http://www.cprover.org/cbmc/

http://mtc.epfl.ch/software-tools/blast/index-epfl.php

http://linuxtesting.org/project/ldv

Feladat: Solaris virtualizáció: zónák

Konzulens: Mészáros Tamás (http://home.mit.bme.hu/~meszaros/)
Leírás:Cél megismerkedni a Solaris Zónákkal, és egy választott feladatot (pl. virtualizált kisvállalati szerverek) alapjaiban megoldani. További információk...

Feladat: "Kisszekrények" konfigurációja

Konzulens: Mészáros Tamás (http://home.mit.bme.hu/~meszaros/)
Leírás: a tanszékünkön elérhető, kisebb szekrény méretű Sun szerverek hardverének megismerése (PROM monitor, szervízkártya), "játék" a hardverrel és az operációs rendszerrel. További információk...

Feladat: Órakezelés és időszinkronizáció Linux-ban

Konzulens: Kovácsház Tamás (http://home.mit.bme.hu/~khazy/)
Leírás: Az operációs rendszerek egyik fontos komponense a rendszeróra. A feladat során meg kéne vizsgálni, hogy a rendszeróra hogyan működik a Linux-ban, milyen alternatív lehetőségek vannak idő, időintervallum mérésre, hogyan oldható meg az elosztott rendszerekben szükséges óraszinkronizáció, és ebben a környezetben milyen változások várhatóak a HW támogatott IEEE 1588 óraszinkronizáció (PTPd) elterjedésével. HW IEEE 1588 óraszinkronizációt támogató eszközök az Intel támogatásával elérhetőek a tanszéken, ezeket fel lehet használni a feladat megoldása során.

Feladat: Tűzfal- és NAT-barát  check_mk

Konzulens: Kovácsházy Tamás (http://home.mit.bme.hu/~khazy/)
Leírás: Az operációs rendszerek működését a rendszer üzemeltetői szeretik folyamatosan megfigyelni, arról adatot gyűjteni. Erre az egyik legkiválóbb eszköz a Nagios. Sajnos a Nagios-t borzasztóan nehéz konfigurálni, és a konfigurációt karbantartani (aki csinálta, tudja). Mathias Kettner elég korrekten megoldotta a problémát a  a check_mk nevű szoftverrel. Sajnos a megoldás nagyon nem szereti a tűzfalakat meg a NAT-ot. Egy kicsit át kéne írni, azt tudom, hogy hogyan, de időm nincs rá. A dolog különösen OpenWRT alatt érdekelne, mert akkor adatot tudnék gyűjteni az OpenWRT-és beágyazott cuccainkról. Elsősorban már Linux-hoz jól értőket várok a feladatra.
 

Feladat: ROS operációs rendszer megismerése

Konzulens: Oláh János  (http://home.mit.bme.hu/~olahj/)
Autonóm robotok fejlesztése során a kutatók többnyire arra törekednek, hogy a robotok minél jobban tudjanak együttműködni a humán felhasználókkal. Ritkán kerül előtérbe, hogy a robotok hogyan tudnak egymással együttműködni, ezért a kutatások során fejlesztett robotok többnyire elszigeteltek, képtelenek külső komponensekkel kommunikálni. Ezen változtat a nyílt forráskódú robotics operating system (ROS), amely egyrészt Unix-szerű operációs rendszerként, másrészt hasznos, bővíthető csomagok gyűjteményeként (SLAM, útvonal tervezés, észlelés) könnyíti meg az autonóm robotok fejlesztését. A feladat egy virtuális gépbe telepítve megismerni az ROS-t, és egy jegyzőkönyvben összefoglalni a szerzett tapasztalatokat.
© 2010-2024 BME MIT