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ó    

    Operációs rendszerek B

    A tantárgy angol neve: Operating Systems

    Adatlap utolsó módosítása: 2018. június 26.

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

    Üzemmérnök-informatikus szak,
    BProf képzés, közös tárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIMIBA01 2 2/0/3/v 6  
    3. A tantárgyfelelős személy és tanszék Dr. Mészáros Tamás Csaba, Méréstechnika és Információs Rendszerek Tanszék
    A tantárgy tanszéki weboldala https://www.mit.bme.hu/oktatas/targyak/vimiba01
    4. A tantárgy előadója Dr. Mészáros Tamás Csaba egyetemi docens, BME MIT
    5. A tantárgy az alábbi témakörök ismeretére épít

    Hardver alapismeretek (a számítógép felépítése, CPU és MMU működése), programozási alapismeretek (egyszerű algoritmusok megértése és megvalósítása, lista- és gráfműveletek), a számításelmélet alapjai (a komplexitás fogalma).

    6. Előtanulmányi rend
    Kötelező:
    Training.Code=("5N-A9") ÉS
    (TárgyEredmény("BMEVIIIBA01", "FELVETEL", _) > 0
    VAGY TárgyEredmény( "BMEVIIIBA01" , "aláírás" , _ ) = -1 )

    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.

    7. A tantárgy célkitűzése

    Az operációs rendszerek felépítésének, valamint alapvető működési mechanizmusainak megismerése (rendszerindulás, feladatkezelés, eseménykezelés, kommunikáció, fájl- és tárolórendszerek, virtualizáció és felhasználói felületek), valamint a menedzselésük alapvető eszközeinek és módszereinek gyakorlati szintű bemutatása.

    A tantárgyat teljesítő hallgató

    • (K1) ismeri az operációs rendszerek alapvető felépítését és működési mechanizmusait, valamint a virtualizáció alapvető területeit és módszereit.
    • (K2) érti a taszkok (folyamatok és szálak) végrehajtási módjait, az általuk végrehajtott rendszerhívások működését, az operációs rendszerek erőforrás-kezelési mechanizmusait, így az alapvető ütemezési algoritmusokat, a memóriakezelést valamint az I/O (tároló- és fájl-) rendszerek működését. Érti a beágyazott operációs rendszerek működési módját.
    • (K3) ismeri és alkalmazni tudja az operációs rendszerek által támogatott alapvető kommunikációs mechanizmusokat (PRAM és üzenetalapú rendszerek), valamint ismeri a szinkronizáció alapvető formáit és képes az alapvető kölcsönös kizárási eszközök alkalmazására is. Képes Linux és Windows rendszerek alapvető menedzsment feladatainak ellátására (felhasználók létrehozása, alkalmazások telepítése), valamint virtualizációs eszközök (Vmware, VirtualBox és Docker) telepítésére és alapszintű alkalmazására.
    8. A tantárgy részletes tematikája

    Az előadások tematikája:

    Előadás

    Előadás anyaga

    1.

    Bevezetés: az operációs rendszer meghatározása, feladata, kialakulása, a hardverkörnyezet áttekintése. Az elterjedt operációs rendszerek áttekintése. A terület legfontosabb szabványai.

    2.

    Az operációs rendszer felépítése és működése: a kernel mint vezérlőprogram és erőforrás-allokátor, a felépítés alapelvei, moduláris és mikrokernelek, rendszerhívások működése, az operációs rendszer indulása és alapvető rendszerfolyamatai.

    3.

    Beágyazott operációs rendszerek: felépítésük, a rendszerindulás folyamata, valósidejű rendszerek, hardverkörnyezetek és alkalmazási példák, a beágyazott laborkörnyezet részletes bemutatása.

    4.

    Felhasználói felületek: grafikus és parancssori felületek felépítése és működése, shell programozás.

    5.

    Feladatkezelés: elvárások és jellemzők, a taszk fogalma és megvalósításai (folyamat és szál), életciklus és futási állapotok, programok adatterületei.

    6.

    Ütemezés: alapvető ütemezési algoritmusok, a Linux és a Windows ütemezője

    7.

    Memóriakezelés: a taszkok memóriatérképe, lapszervezésű virtuális memóriakezelés, hardver és szoftver címleképezés, teljesítménynövelő technikák, programozási példák.

    8.

    Kommunikáció: a taszkok közötti alapvető adatcsere és kooperációs megoldások ismertetése. Közös memórián (PRAM) alapuló módszerek, üzenetalapú kommunikáció. Gyakorlati példák: POSIX shmem, jelzések, üzenetsorok, csővezetékek, távoli eljáráshívás stb.

    9.

    Szinkronizáció: az operációs rendszerek szolgáltatásai együttműködő alkalmazások fejlesztésére, kölcsönös kizárás megvalósítása szemaforokkal, a holtpont fogalma és kezelése. Gyakorlati példák: POSIX szemaforok, test-and-set és compare-and-swap.

    10.

    Fájlrendszerek: alapfogalmak, létrehozás és hangolás, biztonsági mentés, Windows, Linux és Android könyvtárstruktúra, fájlok tulajdonságai, fájlok zárolása

    11.

    Tárolórendszerek: fájlrendszerek szervezése fizikai és virtuális tárolórendszerekben, LVM és RAID, elosztott tárolórendszerek: SAN, NAS és Ceph.

    12.

    Virtualizáció: alapfogalmak, hardver, szoftver és adatvirtualizáció, főbb fajtái (rendszer, folyamat és infrastruktúra), hosted és bare metal virtualizáció, IaaS, PaaS, SaaS, konténervirtualizáció és Docker.

     

     

    A laborok tematikája:

    Labor

    A labor anyaga

    L1.

    Linux bevezető: telepítés, szolgáltatások beállítása (távoli elérés, webszerver), felhasználók és folyamatok kezelése.

    L2.

    Linux-alapú kisvállalati szerver beüzemelése, email- és fájlszerver, tűzfal, hozzáférés-szabályozás.

    L3.

    Linux-alapú webszerver beüzemelése egy példa alkalmazási feladaton (webshop) keresztül, webszerver, adatbázis és PHP telepítése. Teljesítménymérés.

    W1.

    Windows alapok: felhasználók és folyamatok kezelése, munkamenetek, alkalmazásbolt, fájlrendszerek kezelése, szolgáltatásmenedzsment.

    W2.

    Windows menedzsment: naplózás, menedzsment konzol, teljesítmény-monitorozás, memóriafigyelés, biztonsági házirend.

    W3.

    Windows szerver beüzemelése.

    B1.

    Ismerkedés a beágyazott operációs rendszerekkel, egy mintaalkalmazás telepítése és futtatása.

    B2.

    Szoftverfejlesztés beágyazott operációs rendszereken: a projekt felépítése, fordítása és telepítése.

    B3.

    Többszálú alkalmazások beágyazott környezetben: kommunikáció és szinkronizáció.

    V1.

    A virtualizáció alapjai labor: Vmware, VirtualBox, KVM- és felhőalapú (VPS) virtualizációs rendszerek alapismeretei gyakorlati példákon keresztül.

    V2.

    Konténervirtualizáció: docker konténerek létrehozása, telepítése és használata. Egy konténeralapú szolgáltatási környezet kialakítása (web- és adatbázis szerver, alkalmazásfuttató környezet).

    V3.

    Privát felhő: vállalati saját felhőalapú szolgáltatások kiépítése nyílt forráskódú szoftverek segítségével.

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

    Az előadások alapvetően egy-egy terület elméleti bemutatására kerül sor, de emellett részletesen kidolgozott demonstrációkkal és gyakorlati példákkal igyekeznek érdekessé és könnyebben elsajátíthatóvá tenni a tananyagot. A demonstrációk részben az előadásokon is követhetők, de otthoni környezetben is könnyen megismételhetők.

    A laborokat az előadásokkal párhuzamosan tartjuk, önálló felkészülési anyaggal rendelkeznek, így különálló tanulási egységeket képeznek. A haladó jelzésű laborok a bevezető jellegű foglalkozások tananyagára is építenek, de ezen kívül az egyes foglalkozások között nincsenek kötöttségek.

    Az előadások anyagához kapcsolódóan otthoni fakultatív házi feladatokat is kiadunk, amelyek a tananyag jobb megértését segítik.

    10. Követelmények

    1. A szorgalmi időszakban:

    a. A félév során a hallgatók egy zárthelyit írnak. A félév végi aláíráshoz a zárthelyi legalább elégséges szintű (40%) teljesítése szükséges.

    b. Az aláíráshoz szintén szükséges a laborfoglalkozások kétharmadának legalább "megfelelt" szintű teljesítése. A laborok elején beugrót írnak a hallgatók, a beugrót nem teljesítő hallgatók a laborfoglalkozáson nem vehetnek részt. A laborokat a mérésvezető "megfelelt", "nem megfelelt" és "kiválóan megfelelt" szintekkel értékeli a foglalkozáson elvégzett munka alapján.

    c. A fakultatív házi feladatok megoldása nem feltétele az aláírás megszerzésének.

    2. A vizsgaidőszakban:

    A tantárgyhoz tartozó kreditpontok megszerzésének feltétele a legalább elégséges vizsgaeredmény.

    A vizsgára bocsáthatóság feltétele az aláírás megszerzése.

    A vizsga három részből álló írásbeli vizsga: teszt, kis kérdések és számítási feladatok. Az elégséges vizsgához  a teszt min. 60%-os és a teljes vizsga min. 40%-os teljesítése szükséges.

    A vizsgajegy számítása a vizsgával megegyező félévben aláírást szerző hallgatók számára a zárthelyi pontszám (1/3) és a vizsga pontszám (2/3) súlyozott átlagával történik, amelyhez hozzáadjuk a fakultatív házi feladatokra kapott pontszámot. Ez utóbbi nélkül is megszerezhető a jeles osztályzathoz szükséges pontszám.

    A korábbi félévben szerzett aláírás esetén csak a vizsgán szerzett pontszámot vesszük figyelembe a vizsgajegy kiszámításánál.

    Elővizsga: nincs

    Megajánlott jegy: kiváló teljesítményt nyújtó hallgatók számára megajánlott vizsgajegyet adunk a laborok, a zárthelyi és a fakultatív házi feladatok értékelése alapján.

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

    A zárthelyi pótlására a TVSZ-nek megfelelően egy alkalommal biztosítunk lehetőséget.

    Laboratóriumi gyakorlat nem pótolható.

     

     

    12. Konzultációs lehetőségek

    A zárthelyi és a vizsgák előtt konzultációs lehetőséget biztosítunk a hallgatók számára.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Mészáros Tamás: Az operációs rendszerek alapjai (elektronikus jegyzet)
    Kóczy-Kondorosi (szerk.): Operációs rendszerek mérnöki megközelítésben
    Silberschatz-Galvin-Gagne: Operating System Concepts with Java
    Tanenbaum-Woodhull: Operációs rendszerek, tervezés és implementáció
    Russinovich-Solomon-Ionescu: Windows internals Part 1-2

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontaktóra70
    Készülés előadásokra10
    Készülés gyakorlatra 0
    Készülés laborra30
    Felkészülés zárthelyire20
    Házi feladat elkészítése0
    Önálló tananyag-feldolgozás0
    Vizsgafelkészülés50
    Összesen180
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék:

    Dr. Mészáros Tamás Csaba

    egyetemi docens

    BME MIT

    Dr. Hullám Gábor

    adjunktus

    BME MIT

    Eredics Péter

    tanársegéd

    BME MIT

    Naszály Gábor

    tudományos segédmunkatárs

    BME MIT