Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba maghiara
Limba de predare: Maghiară

SYLLABUS

I. Általános adatok
Kód	Tantárgy neve	
MIC0002	Osztott operációs rendszerek	

Félév	Órák: C+S+L	Kategória	Típus	
5	2+0+2	szaktárgy	választható	

II. Foállásban az  Egyetem  oktatói
Név	Tudományos	Oktatói	Tanszék	Tevékenység	
	fokozat	státus		E	Sz	L	
RUFF Laura Ildikó	Dr. 	adjunktus	Informatikai rendszerek	*			

Társult oktatók
Név	Tudományos	Intézmény	Állás	Tevékenység 	
	fokozat		típusa	E	Sz	L	

III. A tantárgy célkitűzései
-	megismerkedni az operációs rendszerek általános elméletével (fontosabb összetevők, funkcionalitás, tervezés, különböző algoritmusok, alapelvek)
-	megismerni a mai modern operációs rendszerek ismérveit
-	a folyamatok közti kommunikáció különböző eszközeit megismerni a multitasking-ot illetve többszálúságot (multithreading)  támogató operációs rendszerekben fellépő problémák megértése, illetve az ezekkel kapcsolatos megoldási stratégiák elsajátítása	

IV. A tantárgy tartalma
Bevezetés – operációs rendszerek főbb jellemzői; történelmi áttekintés
Folyamatok
Versenyhelyzet
–	Kölcsönös kizárás
–	Holtpont
–	Éheztetetés
Szálak
SMP architektúra
Mikrokernel
Memóriakezelés
Ütemezés
Ki-/bemenet kezelés
Osztott rendszerek	

V. Könyvészet
-	F. Boian, A Vancea A., R. Boian., D. Bufnea, A. Sterca., C. Cobarzan, D. Cojocar,  Systeme de operare, Ed. Risoprint, 2006
-	A. Silberschatz, P. Galvin and G. Gagne, Operating System Concepts, John Wiley & Sons, Inc., 2002
-	William Stallings, Operating Systems: Internals and Design Principles, Prentice Hall, 2005 (www.WilliamStallings.com)
-	A Tannenbaum, Modern Operating Systems 2nd Ed., Prentice Hall 2001

-	(Kis István, Kondorosi Károly, Operációs rendszerek, Műegyetemi kiadó, 1996)
-	Buzogány László, Folyamatok, http://cs.ubbcluj.ro/~robu/so2/folyamatok/index.htm	

VI. Az oktatói tevékenység heti tematikája
Előadás
1.  hét
Bevezetés
–	Operációs rendszerek fejlődésének története
–	Op. rendszer kérdéskörök
–	Modern rendszerekhez kapcsolódó fogalmak
2. hét
Folyamatok
–	Folyamatok állapotai (jelentésük, állapotmodellek, mi tette szükségessé egy-egy új állapot bevezetését)
–	Állapotátmenetek
–	adatsruktúrák, melyekre az op. rendszernek szüksége van a folyamatkezeléshez 
–	Memória táblázatok
–	Ki-/bemeneti eszköz táblázatok
–	Állománytáblázatok
–	Folyamattáblázatok
–	Folyamatkezelés
–	Üzemmód váltás illetve folyamatváltás (melyik miben áll, különbség)
3-6. hét
Versenyhelyzet
–	Alapfogalmak (kölcsönös kizárás, kritikus szakasz, holtpont, éheztetés)
–	Megoldandó problémák egymással (különböző mértékben) kölcsönhatásban levő folyamatok esetén
•	Kölcsönös kizárás
–	Kialakulásához szükséges feltételek
–	Kölcsönös kizárás megvalósítása
–	Szoftver megoldás (Dekker algoritmus, Peterson algoritmus)
–	Hardver támogatás (megszakítások letiltása, speciális utasítások –Test and Set, Exchange –)
–	Operációs rendszer támogatás (szemafor, monitor, üzenetek)
–	tipikus példafeladatok (borbélyüzlet, termelő/fogyasztó, író/olvasó probléma)
•	Holtpont
–	Fellépése újrafelhasználható/elfogyó erőforrások esetén
–	Holtpont kialakulásának feltételei
–	Holtpont kezelés:
–	Holtpont megelőzése – deadlock prevention (a holtpont kialakulásához szükséges 4 feltétel valamelyikének megszüntetése által)
–	Holtpont kialakulásának kivédése – deadlock avoidance (folyamat kéréseinek megtagadása indulásból, erőforrás-hozzárendelés megtagadása – “bankár” algoritmus –)
–	Holtpont felismerése és feloldása
–	holtpont felismerésére szolgáló algoritmus
–	különböző megközelítések a holtpont feloldására
–	lásd még: tipikus példafeladat (étkező filozófusok problémája)
7. hét
Szálak
–	A fogalom tisztázása (különbségek a folyamathoz képest)
–	Szálak használatának előnyei
–	Szálak kezelése (felhasználói- illetve kernelszintű szálak)
–	Szálak és folyamatok egymáshoz való viszonya
8. hét
SMP szervezés
Mikrokernel architektúra
–	Előnyei, teljesítménye, felépítése
9-11. hét
Memóriakezelés
–	Memóriakezeléssel kapcsolatos követelmények
–	Memóriakezelési technikák:
–	Fix particionálás 
–	azonos/változó méretű partíciók
–	előnye/hátránya
–	Dinamikus particionálás
–	előnye/hátránya
–	memóriablokk elhelyezése (best-fit, first-fit, next-fit algoritmus alapján)
–	„Buddy” rendszer 
–	Egyszerű lapozás
–	Egyszerű szegmentálás
•	Virtuális memória kezelése
–	virtuális memória használatának előnye, alapfogalmak
–	lapozást támogató hardver
–	lapozás
–	szegmentálás
–	lapozás + szegmentálás
–	Operációs rendszer stratégiák
–	betöltési stratégia (fetch policy)
–	elhelyezés (placement)
–	lapcsere (replacement)
–	lapcsere algoritmusok (optimális, a legrégebben használt, FIFO, clock)
–	lap-pufferelés
–	rezidens halmaz kezelése
–	kiírási stratégia (cleaning policy)
12. hét
Ütemezés
–	Hosszútávú ütemezés
–	Középtávú ütemezés
–	Rövidtávú ütemezés
–	osztályozási kritériumok
–	ütemezési algoritmusok
–	FCFS, round robin, SPN, SRT, HRRN, visszacsatolásos
–	Fair share (elve)
13. hét
Ki-/bemenet kezelés
–	ki-/bemeneti eszközök osztályozása
–	ki-/bemeneti technikák (programozott I/O, megszakításvezérelt I/O, DMA)
–	a ki-/bemenet kezelő funkció fejlődése
–	DMA (szerkezete, működése, szerepe, különböző konfigurációk)
–	tervezési szempontok
–	logikai szerkezet
–	I/O pufferelés
–	lemez teljesítménye
–	lemez ütemezése
–	ütemezési algoritmusok (FIFO, LIFO, SSTF, SCAN, CSCAN, N-step Scan, FSCAN)
14. hét
Osztott rendszerek
–	kliens-szerver kapcsolat
–	osztott üzenetküldés
–	távoli eljáráshívás

Laborgyakorlat-témák:
1. rendszerhívások 
2. jelzések (signals) 
3-4. osztott memória - szinkronizálás nélkül 
5-6. szemaforok és osztott memória 
7-8. üzenetsorok 
9. POSIX/Solaris szálak (threads) - szinkronizálás nélkül 
10-11. POSIX/Solaris szálak (threads) - szinkronizálással 
12-13.memóriakezelés
14. labortevékenység lezárása

egyéb információk a tantárgy honlapján: www.cs.ubbcluj.ro/~laura/so2	

VII. Alkalmazott didaktikai módszerek
- Vetítés, gyakorlati példákon keresztül történő szemléltetés, grafikus ábrázolás, magyarázat, dialógus.
- Gyakorlatok, házi feladatok, fakultatív pluszfeladatok.	

VIII. Értékelés
Az értékelés az alábbiakból tevődik össze:
-	évközben szerezhető pontok: a labor-házifeladatok értékelése során, a laborgyakorlatokon megoldott pluszfeladatok által, illetve az előadások anyagából írt rövid felmérőkön 
-	a félév végi értékelés: írásbeli vizsga és laborvizsga
A végső jegy az  évközi tevékenységből származó pontokból, és az elméleti-, illetve laborvizsgán szerzett pontokból lesz kiszámolva, ahol a felsorolt összetevők az alábbi arányban esnek latba a végső jegy kiszámításánál: 
-	évközi tevékenység  20%
-	elméleti vizsga (írásbeli) –  40%
-	gyakorlati vizsga – 40%
A követelményekkel kapcsolatos részletek megtalálhatók az alábbi címen:
http://www.cs.ubbcluj.ro/~laura/so2/olvass_el.htm	

IX. Kiegészítő könyvészet
–	Boian F.M. Ferdean C.M., Boian R.F., Dragos R.C., Programare concurentă pe platforme Unix, Windows, Java. Ed. Albastră, grupul Microinformatica, Cluj, 2002
–	I. Ignat, A. Kacso, UNIX - Gestionarea proceselor, Microinformatica, 1995	

	Dékán,						Tanszékvezető,

	Dátum,						Eloadás felelose,
	2008. okt. 28						Dr.  RUFF Laura Ildikó, adjunktus