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

Mészáros Tamás
docens
tárgyfelelős
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.