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	
MID0033	Paradigme de programare nesecventiala	

Félév	Órák: C+S+L+P	Kategória	Típus	
8	2+1+2+1	specialitate	obligatorie	

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	
LIBAL Andras	Dr. 	Lect.	Sisteme Informatice	*			

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élkituzései
A párhuzamos programozási paradigma elméleti alapjainak az elsajátítása. A cél, hogy megtanuljuk a folyamatok és szálak (thread) létrehozásának és koordinálásának a módszereit. A oktatás gyakorlati részén a hangsúly a UNIX (Linux) valamint a Windows 2000 operációs rendszerek folyamatkezelésén van. A használt programozási nyelv a standard Java illetve annak szabadon elérhető könyvárai.	

IV. A tantárgy tartalma
1. A párhuzamos feldolgozás szintjei
      1.1. A párhuzamos feldolgozás Flynn-féle osztályozása;
      1.2. A párhuzamosság és konkurens programfutás; rendszer-granularitás;
      1.3. A pipe-olás fogalma;
      1.4. Vektoriális processzorok és klaszter-rendszerek;
      1.5. A párhuzamosság operációs-rendszer szinten;
      1.6. Bonyolult kifejezések kiértékelése multiprocesszor-rendszereken;
      1.7. Megfeleltetési sorozatok rendezése;
      1.8. For-do cikklusok párhuzamosítása;
2. A konkurencia absztrakt fogalmai;
      2.1. A Nem-szekvenciális programozás módszerei;
      2.2. A folyamat – szál megfeleltetés formái;
      2.3. Párhuzamos programok specifikációs formái;
      2.4. A kivételkezelés konkurens rendszereknél;
      2.5. Konkurens rendszerek kontrollja, kommunikációs- és szinkron-mechanizmusok;
      2.6. Aszinkron és részlegesen aszinkron konkurencia kontroll-mechanizmusai.
      2.7. Példák konkurens rendszerekre, feladatok és megoldások formájában;
3. Folyamatokkal történő konkurencia-megvalósítások
      3.1. Folyamatok a UNIX és a Windows rendszerekben a JAVA nyelvi implementációkon;
      3.2. Pipe-ok használata folyamatok kommunikációjánál;
      3.3. Osztott memória általi folyamat-kommunikációs protokollok;
      3.4. Szemaforok használata folyamatok szinkronizálására;
      3.5. Folyamatok kommunikációja üzenetek segítségével;
4. Konkurencia szálak (thread) segítségével;
      4.1. Általános jellemzők;
      4.2. Példák szálak használatára;
      4.3. Szálak a Unix rendszerben: a Posix és Solaris standardok;
      4.4. Szálak a Windows NT (2000) rendszerben;
      4.5. Szálak Java programnyelven;
5. Komplex konkurens rendszerek alkalmazásai;
      5.1 Konkurens alkalmazások tervezésének módszertana;
      5.2. Az MFC által kínált szálak a Windows NT rendszeren;
      5.3. Szálak, szignálok a UNIX folyamatokban;
      5.4. Szálak a Java applet-ekben és servlet-ekben;
      5.5. A Windows NT alkalmazások többszálas futtatása;
      5.6. Egy konkurens Java chat-szerver;
      5.7. Egy nem-interaktív FTP-kliens;
      5.8. A szálakkal történő programozás hatékonyságának mérési módjai;	

V. Könyvészet
1. BACON J (1998): Concurrent Systems, Addison-Wesley, England.
2. BARRY A (net) Concurrent Programming,
http://www.csm.uwe.ac.uk/personal/am-barry/Q2H611/concprog.html
3. BOIAN F.M, FRENTIU M, KASA Z (1989): Effieciency in Parallel Evaluation of Arithmetic Expressions, Universitatea Babes-Bolyai, Facultatea de Matematica, Seminar on Complexity, Preprint no. 10/1989.
4. BOIAN F.M (1998): Programare distribuita în Internet; metode si aplicatii, Editura Albastra, Cluj.
5. BOIAN F.M, FERDEAN C. M, BOIAN R.F, DRAGOS R.C (2002): Programare concurenta pe platforme Unix, Windows, Editura Albastra - grupul Microinformatica, Cluj.
6. BOIAN F.M, VANCEA A, IURIAN S, IURIAN M (1994): Arhitectura 80x86, Limbaj de asamblare, Legatura între limbaje, vol. I si II, Lito. Universitatea Babes-Bolyai, Cluj.
7. FLYNN M. J (19727): Some Computer Organizations and their Effectiveness, IEEE Transactions on Computers, C-21.
8. IGNAT I., KACSO A (1995): Gestionarea proceselor, Editura Albastra, grupul Microinformatica, Cluj.
9. STALLINGS W (1997): Operating Systems: Internals and Design Principles, Prentice Hall. 

VI. Az oktatói tevékenység heti tematikája
1. A párhuzamos feldolgozás általános fogalmai
A párhuzamosság szükségessége, a párhuzamosság fogalmainak változása, különböző generációk a párhuzamosság taglalásánál.
A Flynn-féle osztályozás. A konkurens programfutás; rendszer-granularitás.
2. A pipe-olás fogalma, vektoriális processzorok és klaszter-rendszerek.
A párhuzamosság megvalósítása operációs-rendszer szinten.
Példák párhuzamos rendszerekre.
3. Bonyolult kifejezések kiértékelése multiprocesszor-rendszereken. A sorrend-függetlenség fogalma.
A megfeleltetési sorozatok rendezése. Párhuzamosítás ciklusok esetén.
4. A konkurencia absztrakt megfogalmazása. Példák.
A nem-szekvenciális programozás módszerei. A folyamat – szál megfeleltetés formái.
5. Párhuzamos programok specifikációs formái.
Példák gyakorlati specifikációkra.
6. A kivételkezelés konkurens rendszereknél.
A konkurens rendszerek kommunikációs- és szinkron-mechanizmusai.
7. Aszinkron és részlegesen aszinkron konkurencia kontroll-mechanizmusai.
Példák konkurens rendszerekre, feladatok és megoldások formájában.
8. Folyamatokkal történő konkurencia-megvalósítások.
Java nyelvi specifikáció. Folyamatok Unix-ban. Folyamatok Linux-ban.
Pipe-ok használata folyamatok kommunikációjánál.
9. Osztott memória általi folyamat-kommunikációs protokollok.
Példák az osztott memória használatára.
10.Szemaforok használata folyamatok szinkronizálására.
Példák. Üzenetekkel történő kommunikáció.
11. Konkurencia szálak (thread) segítségével.
Példák szálak használatára.
A UNIX  Posix és Solaris standardjai.
Szálak Java programnyelven. Szálak a Windows NT (2000) rendszerben.
12. Konkurens alkalmazások tervezésének módszertana 
Komplex konkurens rendszerek alkalmazásai.
Rendszerek tervezése: specifikumok.
Az MFC által kínált szálak a Windows NT rendszeren. Többszálas futtatás Windows-ban.
13. Szálak, szignálok a UNIX folyamatokban.
Szálak a Java applet-ekben és servlet-ekben;
14. Alkalmazások, ismétlés.
Konkurens Java chat-szerver. FTP-kliens bemutatása.
A szálakkal történő programozás hatékonyságának mérési módjai;	

VII. Alkalmazott didaktikai módszerek
Bemuató, feladatmegoldás, tesztek	

VIII. Értékelés
60%  az évközi tevékenység (tesztek,házi feladatok)
40%  évvégi vizsga (írott, teszt stílusú)
10%  laboratóriumi/szemináriumi tevékenységre adott bónusz 	

IX. Kiegészíto könyvészet

	Dékán,						Tanszékvezeto,

	Dátum,						Eloadás felelose,
								Lect. Dr.  LIBAL Andras