Operációs rendszerek B

VIMIBA01  |  Üzemmérnök-informatikus BProf  |  Félév: 2  |  Kredit: 6

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.

  • (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.
  • A tárgy oktatói

    Mészáros Tamás
    Mészáros Tamás

    docens

    tárgyfelelős

    Eredics Péter
    Eredics Péter

    tanársegéd

    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.