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+P	Kategória	Típus	
5	2+0+2+0	szaktárgy	választható	

II. Főá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	Magyar Matematika és Informatika	*			
Jakab Hunor	Drd.	doktorandusz	Magyar Matematika és Informatika			*	

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 felépítésével kapcsolatos kérdésköröket
–	a folyamatok közti kommunikáció különböző eszközeinek megismerése
–	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
Memóriakezelés
Ütemezés
Ki-/bemenet kezelés
Osztott rendszerek	
V. Könyvészet
1.	William Stallings, Operating Systems: Internals and Design Principles, 7th ed., Prentice Hall, 2011 
2.	(www.WilliamStallings.com)
3.	A Tannenbaum, Modern Operating Systems 3rd Ed., Prentice Hall 2007
4.	A. Silberschatz, P. Galvin and G. Gagne, Operating System Concepts, John Wiley & Sons, Inc., 2002
5.	BOIAN F, VANCEA A. BOIAN R. BUFNEA D., STERCA A., COBARZAN C., COJOCAR D. Sisteme de operare Ed. Risoprint, 2006 
6.	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
Szinkronizáló eszközök a gyakorlatban
-	IPC csomag szinkronizáló eszközei
-	POSIX szinkronizáló eszközök
-	példaprogramok

8. hét
Szálak, SMP architektúra
-	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
-	SMP szervezés

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: http://canvas.infooktatas.ro/courses/14

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 a tantárgy honlapján:
http://canvas.infooktatas.ro/courses/14	

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,						Előadás felelőse,
    2011. okt. 3.						Dr. RUFF Laura Ildikó, adjunktus