Beágyazott operációs rendszerek

A tantárgy angol neve: Embedded Operating Systems

Adatlap utolsó módosítása: 2019. január 17.

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,
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
VAGY
TárgyEredmény( "BMEVIAUMB06", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMB06", "FELVETEL", AktualisFelev()) > 0)

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

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

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

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
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.

 

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 előadásokra14
Félévközi készülés gyakorlatokra 7
Felkészülés zárthelyire15
Házi feladat elkészítése-
Kijelölt írásos tananyag elsajátítása5
Vizsgafelkészülés37
Ö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