K-INFO
HU
EN
Belépés

Operációs rendszerek

Operating Systems
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Operációs rendszerek
Operating Systems
Tantárgykód BMEVIMIAB00
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 3 0 1
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
Mészáros Tamás Csaba
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Mesterséges Intelligencia és Rendszertervezés Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://www.mit.bme.hu/oktatas/targyak/vimiab00
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

Bevezetés: az operációs rendszer fogalma, célja, osztályozása, vázlatos felépítése, fejlődésének mérföldkövei, gyártók és termékek piaci részesedése, Windows és UNIX változatok, beágyazott operációs rendszerek, a kernel feladatai, főbb részei, nyílt rendszerek és szabványosítás, trendek, fejlesztési irányok.

Felépítés és működés: a kernel felépítésének alapelvei, modelljei; monolitikus és mikrokernel; réteges és moduláris szerkezet; a mai (monolitikus) kernelek problémái, az armored OS koncepció; mikrokernelek felépítése és a második generációs mikrokernelek (L4); az exokernel, a multiszerver és a hibrid kernelek; az OS elindulása, a Linux/Windows kernel inicializáció főbb lépései, a felhasználói működés beindulása, szolgáltatások és kritikus rendszerfolyamatok; UNIX futási szintek, sysinit és systemd; a rendszerhívások működési mechanizmusa, virtuális rendszerhívások.

Feladatkezelés: a felhasználói feladatok jellege (CPU-intenzív, I/O-intenzív, memória-intenzív); feladatok végrehajtásával kapcsolatos elvárások, mérőszámok (várakozási idő, körülfordulási idő, válaszidő, CPU-kihasználtság, átbocsájtó képesség, rezsiköltség, jósolhatóság, determinisztikusság); az optimális feladat-végrehajtó rendszer és megvalósítási nehézségeinek okai; a feladatkezelés alapfogalmai: taszk, folyamat és szál; a feladat-taszk összerendelés; az absztrakt virtuális gép fogalma; folyamatok és szálak összehasonlítása: tulajdonságok, előnyök, hátrányok, teljesítmény; taszkok adatai; taszkok állapotai és állapotátmenetei; taszkok létrehozása; taszk- és kontextusváltás.

Felhasználói felület: a felhasználói felület feladatai, típusai; külső és belső parancsok; a karakteres és grafikus felületek részei: parancsértelmező (shell), ablakozó rendszer, ablakkezelő, kijelzőszerver; a parancsértelmező programozása; tipikus kijelzőszerverek és ablakkezelők; munkamenet-kezelés, természetes nyelvű interfészek

Ütemezés: az ütemezés feladata, időskálái; egyszerű ütemezési algoritmusok (FCFS, RR, SJF, SRTF, PRIO) adatstruktúrái, működése, komplexitásuk, értékelésük; konvoj hatás és kezelése; kiéheztetés és öregítés; a prioritás inverzió és kezelése; statikus és dinamikus többszintű ütemezés, többszintű visszacsatolt sorok ütemező, a tradicionális UNIX ütemező részletes működése és értékelése; a többprocesszoros ütemezés alapjai (CPU-affinitás, erőforrás-allokáció és terheléselosztás), heterogén többprocesszoros rendszerek alapproblémái; ütemezők a gyakorlatban: számítási példák, Windows, UNIX, Linux CFS, Solaris.

Virtuális memóriakezelés: a memóriakezelés feladatai, virtuális tárkezelés; címleképezés, lapszervezés, cserehely (swap) és tárcsere (swapping); laphiba és szoftveres címleképezés; kerettábla, laptábla, diszk blokk leíró és swap térkép; az adatszerkezetek kapcsolatai és működése; fill-on-demand; copy-on-write; lapozási stratégiák: igény szerinti és előretekintő; vergődés; lapcsere algoritmusok: FIFO, második esély, legrégebben nem használt, legkevésbé használt; mostanában nem használt; lapok tárba fagyasztása; a laplopó taszk.

Kommunikáció: kommunikáció közös memórián keresztül: a PRAM modell, szálak közötti adatcsere, közös memória és memóriába ágyazott fájlelérés. Üzenetváltásos kommunikáció: címzési módon, szinkron és aszinkron átvitel, az adatátvitel lehetséges szemantikái, direkt és indirekt kommunikációs megoldások, az adatátviteli sebességet és a késleltetés meghatározó tényezők. Az L4 mikrokernel üzenettovábbiítási technikái. A hálózati (socket) kommunikáció rendszerhívásai és működése. A távoli eljáráshívás (RPC) technológia részei, interfészleíró nyelv, rpcgen, portmapper, a kommunikációs rendszer felépítése. Gyakorlati példák: UNIX jelzések, csővezetékek, üzenetsorok, osztott memória és egyszerű webszerver készítése C nyelven.

Szinkronizáció: taszkok versengése és együttműködése; klasszikus szinkronizációs problémák: író-olvasó, többszörös olvasók, termelő-fogyasztó (korlátos raktárral); a szinkronizáció és alapvető formái; kölcsönös kizárás és kritikus szakasz; atomi memóriaműveletek: test-and-set-lock (TSL) és compare-and-swap (CAS); zárolási eszközök: lock bit, mutex, szemafor, spinlock, ReaderWriterLock és RecursiveLock; a szemafor műveletei és megvalósításuk TSL segítségével; a kritikus szakasz megvalósítása TSL és szemafor alkalmazásával; erőforrás-foglalási gráf; a holtpont és kialakulásának feltétele; holtpont kezelése: strucc algoritmus, detektálás, feloldás, megelőzés és elkerülés; a biztonságos állapot fogalma és ellenőrzése; a prioritás inverzió és kezelése; kiéheztetés foglalással és várakoztatással; a szinkronizáció okozta teljesítményromlás; optimista zárolás; zárolás- és várakozásmentes szinkronizáció.

Fájlrendszerek: fájl, könyvtár, kötet, meghajtó, fájlrendszer és partíció fogalma; könyvtárstruktúrák gráf felépítése példákkal (Windows 10, Linux és Android), elérési út, szimbolikus és rögzített linkek; fájlok tulajdonságai, POSIX hozzáférési-jogosultságok, ACL és setuid, setgid, sticky bit; fájlrendszerek adminisztrációja: formázás, csatlakoztatás, ellenőrzés, hangolás; elterjedt fájlrendszerek; biztonsági mentések; fájlrendszerek programozói interfésze, soros és közvetlen elérés, fájlleíró és nyitott fájl objektum; ajánlott és kötelező zárolás; fájlok memóriába ágyazott megosztott elérése; nem blokkoló és aszinkron műveletek; adatok elhelyezése a háttértáron, szuperblokk, metaadatok, allokációs táblák, üres helyek menedzselése; diszkpufferelés; naplózó fájlrendszerek; virtuális fájlrendszer interfész; fizikai tárolórendszerek; I/O ütemezés; tárolórendszer-virtualizáció: LVM, RAID, hálózati és elosztott fájlrendszerek, NFS és Ceph.

Virtualizáció: a virtualizáció fogalma, alkalmazási területei; a virtuális gépek osztályozása; hardver virtualizáció: hosted és bare metal megoldások; CPU virtualizáció: emuláció, trap and emulate, binary translation, para- és hardveres virtualizáció; memória virtualizáció: árnyék laptáblák, para- és hardveres virtualizáció; I/O virtualizáció: szoftveres, paravirtualizáció és hardvertámogatott megoldás; virtualizációs rendszerek áttekintése: gyártók és termékek; felhőalapú rendszerek: IaaS, PaaS, SaaS; Docker; Mirage OS.

Laborok: a félév során hat laboratóriumi foglalkozást tartunk Windows, Linux, virtualizáció és beágyazott operációs rendszerek témakörökben.

A félév egyes előadásaihoz fakultatív házi feladatok is tartoznak, amelyek egyszerű programozási feladatokon keresztül segítik az adott előadás anyagának jobb megértését.

A tárgy célja az operációs rendszerek funkcióinak, működési elveinek, fő típusainak, valamint a konkurens és elosztott rendszerek programozási modelljeinek megismertetése, az elvek szemléltetése példákon, az operációs rendszer választás szempontjainak bemutatása. A tárgy és a hozzá tartozó laboratóriumi foglalkozások során komoly hangsúlyt kapnak gyakorlati ismeretek is, így a kurzus elvégzése elvezet az operációs rendszerek használatának mérnöki, készségszintű elsajátításához is.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Előadás és laboratórium

Tanulástámogató anyagok

Online források
Mészáros Tamás: Az operációs rendszerek alapjai (egyetemi 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

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Számítógép architektúrák, Programozás alapjai, Programozás technológiája
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Számítógép architektúrák, Programozás alapjai, Programozás technológiája
Általános szabályok
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 hatból négy laborfoglalkozás 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. Pótlási lehetőségek: p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: left; }p.western { font-family: "Calibri",serif; font-size: 11pt; }p.cjk { font-family: "Droid Sans Fallback"; font-size: 11pt; }p.ctl { font-size: 11pt; }a:link { } 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ó.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás
IMSc program: Az IMSc program hallgatói számára emelt szintű laboratóriumi gyakorlatokat és emelt szintű fakultatív házi feladatokat kínálunk. Alapvető célunk az, hogy a hallgatókat a tananyag mélyebb megismerésére ösztönözzük, ugyanakkor fakultatív feladatokkal és nagyobb laborfeladat-készlettel választási lehetőségeket is kínáljunk számukra. IMSc pontok: A tantárgyból maximum 25 IMSc pont szerezhető, amire összesen 35 pontnyi választási lehetőséget kínálunk az alábbiak szerint: Zárthelyin (pótzárthelyin) maximum 5 IMSc pont szerezhető. Fakultatív házi feladatok emelt szintű megoldásáért összesen maximum 15 IMSc pont szerezhető. A laborok emelt szintű teljesítéséért összesen maximum 10 IMSc pont kapható. Bármelyik vizsgán maximum 5 IMSc pont jár az IMSc feladat megoldásáért. Az IMSc pontok megszerzése az IMSc programban nem résztvevő hallgatók számára is biztosított.
Ajánlott tantárgyak

Nincs megadva.

A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.