Operációs rendszerek B

A tantárgy angol neve: Operating Systems

Adatlap utolsó módosítása: 2021. október 19.

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,
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 rend az adott szak honlapján és képzési programjában található.

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. A zárthelyi két részből álló írásbeli teljesítményértékelés. A megfelelt szint eléréséhez az első rész min. 60%-os és a teljes zárthelyi min. 40%-os 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 laborokra előzetes felkészülés szükséges, amit ellenőrzünk. A felkészületlen hallgatók a foglalkozá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 két részből álló írásbeli vizsga. Az elégséges vizsgához az első rész min. 60%-os és a második rész 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 Igény esetén - személyi és tárgyi erőforrások függvényében - az előadóval egyeztetett módon és időpontban.
13. Jegyzet, tankönyv, felhasználható irodalom

Mészáros Tamás: Az operációs rendszerek alapjai (elektronikus jegyzet, letölthető a kari Moodle-ben)
Előadásvideók, demonstrációs anyagok a kari Moodle rendszerében
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

Előadások

Dr. Mészáros Tamás, Méréstechnika és Információs Rendszerek Tanszék,
valamint a meghívott vendégelőadók

Laborok:

Eredics Péter, Méréstechnika és Információs Rendszerek Tanszék
Dr. Hullám Gábor, Méréstechnika és Információs Rendszerek Tanszék
Dr. Mészáros Tamás, Méréstechnika és Információs Rendszerek Tanszék
Dr. Micskei Zoltán, Méréstechnika és Információs Rendszerek Tanszék