Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Beágyazott operációs rendszerek

    A tantárgy angol neve: Embedded Operating Systems

    Adatlap utolsó módosítása: 2014. október 3.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Villamosmérnök Szak, MSc képzés         

    Számítógép-alapú rendszerek főspecializáció         

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA08 1 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Vajk István, Automatizálási és Alkalmazott Informatikai Tanszék
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Vajk István

    egyetemi tanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Szabó Zoltán

    mérnöktanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Bányász Gábor

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Oláh István

    mestertanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít ·         A C++ nyelv, valamint az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.

     

    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIAUM166" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIMIM151" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUM166", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVIMIM151", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:
    nincs

     

    7. A tantárgy célkitűzése A tantárgy célkitűzése bemutatni azokat a platformokat, technikákat és eszközöket, amelyek szükségesek a valósidejű követelményeknek megfelelő rendszerek alkalmazás és rendszer szintű szoftverének megírására és futtatására. A tantárgy középpontjában a hardvertervezés során létrehozott eszközök szoftverrendszerének kialakítása áll. A beágyazható operációs rendszerek (Linux, Windows család, QNX, stb.), és az általuk biztosított programozási-, és rendszerszolgáltatásainak bemutatását az adott rendszerek meghajtóprogram-modelljeinek részletes ismertetése, illetve a szinkronizálás és párhuzamos végrehajtás problémáinak vizsgálata követi.

     

    8. A tantárgy részletes tematikája

    Az előadások az alábbi témákat érintik, míg a gyakorlatok célja az előadáson hallottak gyakorlati elmélyítése.

    Bevezető (1. hét)

    Operációs rendszerek alapvető szolgáltatásai, a beágyazott rendszerekben történő alkalmazásuk sajátosságai. Operációs rendszerek elterjedtsége, kiválasztási szempontjaik.

    Egyszerűbb operációs rendszerek (1-2. hét)

    A uCOS-II és a FreeRTOS operációs rendszerek felépítése és szolgáltatásai. Ütemező algoritmus, taszkok nyilvántartása, elérhető szolgáltatások, taszkok közötti kommunikáció.

    GNU/Linux operációs rendszer ismeretek (3-4. hét)

    A GNU/Linux operációs rendszer történetének és általános jellemzőinek bemutatása. Megismerkedés a Kernel legfőbb, a valósidejű működést befolyásoló jellemzőivel úgymint ütemezés, memóriakezelés, megszakításkezelés. Az operációs rendszer felépítésének elemzése. Az alapvető Unix parancsok áttekintése után a BASH shell funkciónak részletes tárgyalása többek közt parancs értelmezés, állománynév helyettesítés, programozási funkciók. A jogosultság kezelés részletes tárgyalása, egyszerű reguláris kifejezések, és folyamatok kezelése. Gyakorlaton ismerkedés az operációs rendszer kezelésével.

    Beágyazott Linux rendszer ismeretek (4-6. hét)

    A minimális x86 alapú Linux rendszer felépítésének, komponenseinek részletes bemutatása. Az alap konfigurációs állományok ismertetése.

    Linux rendszer összeállítása eltérő architektúrájú (ARM) céleszközre. Automatizált beágyazott Linux rendszert generáló eszközök áttekintése úgy mint Buildroot, OpenEmbedded, Yocto Project. A Yocto Project rendszer felépítésének és használatának részletes ismertetése. Gyakorlaton beágyazott Linux rendszer összeállítása a Yocto Project rendszer segítségével egy adott eszközre.

    Linux alkalmazások fejlesztése (7-8. hét)

    Ismerkedés a fejlesztő eszközökkel: fordító (gcc), fejlesztői könyvtárak, Makefile szintaktikája, hibakeresés eszközei (gdb, malloc debugerek, valgrind, strace), integrált fejlesztői környezetek

    Az állományabsztrakció bemutatása, és az állománykezelő rendszerhívások áttekintése, beleértve az i-node kezelő függvényeket is. Párhuzamos programozás: folyamatok. Gyakorlaton példák, I/O multiplexálás és az ioctl rendszerhívás bemutatása. Párhuzamos programozás: folyamatok közötti kommunikáció, szálak, szálak közötti szinkronizáció. Valósidejű alkalmazások fejlesztése. Hálózati kommunikáció a Berkley socket API használatával.

    Linux kernel modulok fejlesztése (9-11. hét)

    A Linux kernel fejlesztés alapjai. Kernel modulok írása, fordítása, használata. Paraméterátadás a modul számára. Karakteres eszközvezérlő felépítésének bemutatása. Eszközvezérlő regisztrációja. Konkurencia kezelés a kernelben: atomi műveletek, spinlock, semaphore, mutex, reader/writer változatok. Gyakorlaton példákkal egybekötve az I/O portok és a megszakítás kezelésének bemutatása.

    Beágyazott Windows operációs rendszerek (11-12. hét)

    A Windows helye a beágyazott eszközök világában. A Windows Embedded és Windows Embedded Compact felépítése, szolgáltatásai. Ütemezés, szinkronizációs objektumok, megszakítások kezelése. BSP-ben megvalósítandó feladatok, driver modellek. Natív WinAPI alkalmazás felépítése fejlesztése.

    QNX operációs rendszer (13-14. hét)

    QNX operációs rendszer felépítése. Kernelszolgáltatások, ütemezés, megszakítások kezelése, hálózatkezelés. Beágyazott rendszerek készítése QNX operációs rendszerrel. QNX operációs rendszer felhasználói szemmel. Alkalmazások fejlesztése QNX operációs rendszerrel.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás, gyakorlat

     

    10. Követelmények A félévközi ismeretek elsajátítása a szorgalmi időszak alatt 1 alkalommal nagy zárthelyi formájában kerül ellenőrzésre.

    Az aláírás megszerzésének feltétele a zárthelyi elfogadható (legalább elégséges szintű) megoldása. A vizsgára bocsátás feltétele az aláírás megléte. A vizsgán is el kell érni legalább az elégséges szintet, a tárgyból szerzett érdemjegy 30%-ban a zárthelyin, 70%-ban a vizsgán mutatott eredményből tevődik össze.

    11. Pótlási lehetőségek

    A zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk.

    12. Konzultációs lehetőségek Igény szerint az előadóval egyeztetve.

     

    13. Jegyzet, tankönyv, felhasználható irodalom
    • Tantárgy weboldalán található oktatási segédanyagok.
    • Bányász Gábor, Oláh István, Szabó Zoltán: Valósidejű rendszerek (elektronikus jegyzet) BME AAIT,2014
    • Asztalos Márk, Bányász Gábor, Levendovszky Tihamér: Linux programozás, Szak Kiadó 2013

       

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra18
    Felkészülés zárthelyire15
    Házi feladat elkészítése
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés45
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Vajk István

    egyetemi tanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Szabó Zoltán

    mérnöktanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Bányász Gábor

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Oláh István

    mestertanár

    Automatizálási és Alkalmazott Informatikai Tanszék