V 1.0 OE-NIK HP 1 Haladó Programozás Folyamatok Szálkezelés alapok.

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

Készítette: Kun Béla.  Operációs rendszernek nevezzük a számítástechnikában a számítógépeknek azt az alapprogramját, mely közvetlenül kezeli a hardvert,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Operációs Rendszerek I.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Haladó Programozás Parallel.For()
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Ember László Damn Small Linux Microsoft VPC környezetben.
Az operációs rendszerek
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
C# tagfüggvények.
C# tagfüggvények.
Krizsán Zoltán.  Ha az algoritmus sokáig dolgozik,  de el akarjuk kerülni a „fagyást”.  Kisebb a költsége, mint az új folyamatnak.  Programozás szempontjából.
V 1.0 OE-NIK HP 1 Haladó Programozás BackgroundWorker Szálkezelés + szinkronizáció.
Kivételkezelés.
1 Operációs rendszerek Az NT folyamatok kezelése.
1 Operációs rendszerek Az ütemezés megvalósítása.
1 Folyamatok modellezése az operációs rendszerekben Operációs rendszerek.
1 Operációs rendszerek Signal kezelés. 2 SIGNAL kezelés Egyszerű folyamatok közötti kommunikációs (IPC – Inter Process Communication) megoldás. A signal.
V 1.0 OE-NIK HP 1 Haladó Programozás Folyamatok Szálkezelés: Parallel.For.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
Az operációs rendszereK
A Unix operációs rendszer Előadást tarja: Lázár András.
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Operációs rendszer.
Publikációs portál Platform Specific Model UML bázisú modellezés és analízis Csapat: UML7 (Percze Dániel, Rajnai Zoltán, Ráth István, Tóth Dániel, Vágó.
J.Zs.Cs.: Vizuális programozás (c) 2010 Vizuális programozás Fájl- és állományrendszer kezelés Névtér: System.IO.
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Az operációs rendszerek feladata, fajtái, felépítése
Bevezetés az operációs rendszerek világába TMG SZK.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
A gyakorlatok munkakörnyezete
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
Enterpise JavaBeans Simon Balázs
Párhuzamosság, kritikus szakasz, szemaforok Operációs rendszerek.
Óravázlat Készítette: Kucsera Mihály és Toldi Miklós
Szoftverek.
Óravázlat Készítette: Kucsera Mihály és Toldi Miklós
V 1.0 OE-NIK HP 1 Haladó Programozás A párhuzamos végrehajtás alapjai Folyamatok Szálkezelés alapok.
Haladó Programozás System.Threading.Tasks.Task OE-NIK HP.
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
DLL használata és készítése Feladat
V 1.0 OE-NIK HP 1 Haladó Programozás Szálkezelés + szinkronizáció.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Operációs rendszerek Az operációs rendszerek működésének alapfogalmai.
Párhuzamos programozás
Neumann János Informatikai Kar
Web programozás és haladó fejlesztési technikák Folyamatok és szálak
Thread és Task.
Folyamatok.
Web programming and advanced development techniques
Előadás másolata:

V 1.0 OE-NIK HP 1 Haladó Programozás Folyamatok Szálkezelés alapok

V 1.0 OE-NIK HP 2 Haladó Programozás Folyamatok Szálkezelés alapok

V 1.0 A párhuzamos végrehajtás alapjai A Neumann-architektúrára épülő számítógépek a programokat sorosan hajtják végre Több program egyidejű végrehajtásához kell: –Több processzor, több mag –Hyperthreading / hasonló technológiák –Időosztás A végrehajtás alatt álló programok egymástól való elszigetelése is szükséges –Folyamatok (processzek): magas szintű elszigetelés Egy program egy futó példánya által használt erőforrások halmaza Külön memóriaterület Hiba esetén csak a hibázó folyamat sérül (se más processzek, se az OS) Nincs egyszerű processzközi kommunikáció –Szálak Folyamatokon belüli párhuzamosítás Részben megosztott memóriaterület 3 OE-NIK HP

V 1.0 Illusztráció: az időosztás elve P 1 folyamat Futó állapot Futó állapot Futásra kész vagy várakozó állapot Állapotmentés (PCB 2 ) Állapotbetöltés (PCB 1 ) Állapotmentés (PCB 1 ) Állapotbetöltés (PCB 2 ) Megszakítás vagy rendszerhívás Futó állapot Futásra kész vagy várakozó állapot Futásra kész vagy várakozó állapot P 2 folyamat Megszakítás vagy rendszerhívás Original image © David A. Solomon and Mark Russinovich 4 OE-NIK HP

V 1.0.NET folyamatok, szálak, AppDomain A.NET keretrendszerben a folyamatok megfelelnek az operációs rendszer folyamatainak –System.Diagnostics.Process, System.Diagnostics.ProcessStartInfo A.NET szálak (jelenleg) megfelelnek az operációs rendszer szálainak –De elméletileg egy valódi szálon a keretrendszer több szála is futhat(na) A.NET a folyamatokon belül egy további szintet, az ún. alkalmazástartományt („application domain”) is meghatároz –A felügyelt kódú programokat a keretrendszer futtatás közben is ellenőrzi, ezért ezek nem képesek egymást negatívan befolyásolni –Így viszont nem feltétlenül szükséges külön folyamatként futtatni őket –Sebesség és memóriaigény szempontjából nagy előny (folyamatok létrehozása, nyilvántartása és a közöttük történő váltás sok időt és memóriát igényel) Az alkalmazástartományokkal és programozásukkal a jelen tárgy keretében nem foglalkozunk részletesen. 5 OE-NIK HP

V 1.0 Folyamatok kezelése (kivonatos referencia) System.Diagnostics.Process osztály Metódusok Start()Folyamat indítása CloseMainWindow()Folyamat főablakának bezárása (GUI alkalmazásoknál) Kill()Folyamat leállítása GetCurrentProcess()Aktuális folyamatot reprezentáló objektum lekérése GetProcesses()Összes folyamat adatainak lekérése a helyi számítógépről WaitForExit()Várakozás az adott folyamat befejeződésére Tulajdonságok StartInfoA folyamathoz tartozó ProcessStartInfo példány PriorityClassA folyamat prioritása (fontossági szintje) EnableRaisingEventsA folyamat kiválthat-e eseményeket HasExitedA folyamat kilépett-e ExitCode, ExitTimeKilépési kód, illetve a kilépés (vagy leállítás) időpontja StandardInput, StandardOutput Alapértelmezett be- és kimeneti csatorna (adatfolyam) Események ExitedA folyamat kilépett (vagy leállították) 6 OE-NIK HP

V 1.0 Folyamatok kezelése (kivonatos referencia) System.Diagnostics.ProcessStartInfo osztály Tulajdonságok FileName Fájlnév megadása az indítandó folyamathoz (program vagy programmal társított fájltípusba tartozó fájl neve) Arguments, WorkingDirectory Parancssori paraméterek és munkakönyvtár megadása az indítandó folyamathoz Domain, UserName, Password Folyamat indítása adott felhasználó nevében RedirectStandardInput, RedirectStandardOutput Alapértelmezett be- és kimeneti csatorna átirányítása ErrorDialogHibaüzenet jelenjen-e meg, ha a folyamat indítása sikertelen UseShellExecute Operációs rendszerhéj programindító funkciójának használata folyamat indításához VerbA társított fájl megnyitásakor végrehajtandó művelet WindowStyle Kezdeti ablakméret megadása (normál, minimalizált vagy maximalizált méret) 7 OE-NIK HP

V 1.0 Példa új folyamat indítására using System; using System.Diagnostics; class Program { static void Main() { Process newProcess = new Process(); newProcess.StartInfo = new ProcessStartInfo("hello.exe", "Pistike"); newProcess.StartInfo.ErrorDialog = true; newProcess.StartInfo.UseShellExecute = false; newProcess.StartInfo.RedirectStandardOutput = true; newProcess.Start(); newProcess.WaitForExit(); Console.WriteLine("Az elindított folyamat üzenetei:"); Console.Write(newProcess.StandardOutput.ReadToEnd()); Console.ReadLine(); } OE-NIK HP

V 1.0 Feladat Hozzon létre konzolos alkalmazást, amelynek segítségével előre beállítható darabszámú traceroute (tracert) folyamatot tudunk párhuzamosan futtatni, így az egyes hívások nem blokkolják a fő alkalmazást. 9 OE-NIK HP

V 1.0 OE-NIK HP 10 Haladó Programozás Folyamatok Szálkezelés alapok

V 1.0 A többszálúság megvalósítási lehetőségei Aszinkron metódushívás (nem tananyag) –Delegáltak és az aszinkron mintát támogató metódusok aszinkron hívása Thread osztály –Szálak alacsony szintű kezelését teszi lehetővé –Egyszerű, de sok munkát és pontosságot igényel ThreadPool osztály (nem tananyag) –Állandóan rendelkezésre álló „szálkészlet” használata –Nem kell a szálakat egyenként létrehozni, megszüntetni –Kezelése egyszerű és hatékony, de a szálak egyéni identitását nem biztosítja BackgroundWorker osztály (nem tananyag) –A felhasználói felületi funkciók és a háttérben elvégzendő sokáig tartó műveletek végrehajtásának szétválasztására szolgál –Korlátozott funkcionalitása miatt kevés célra alkalmas TPL / Task osztály –Magas szintű szálkezelésre való egységes, rengeteg funkcionalitással bíró API TPL / Parallel osztály –Adatpárhuzamos végrehajtásra nyújt beépített megoldásokat 11 OE-NIK HP

V 1.0 Szálak kezelése (kivonatos referencia) System.Threading.Thread osztály Metódusok Start()Szál indítása Suspend(), Resume()Szál felfüggesztése, illetve folytatása Abort()Szál leállítása GetHashCode()Szál azonosítójának lekérése Sleep()Várakozás a megadott időintervallum elteltéig Join()Várakozás az adott szál befejeződésére Tulajdonságok CurrentCulture, CurrentUICulture A szálhoz tartozó aktuális kultúra, illetve a szálhoz tartozó felhasználói felület kiválasztott nyelve IsBackgroundAz adott szál háttérszál vagy előtérszál* IsThreadPoolThreadAz adott szál a ThreadPool egyik szála-e ManagedThreadIDA szál egyedi azonosítója NameA szál megnevezése PriorityA szál prioritása (fontossági szintje) ThreadStateA szál aktuális állapota(i) * A programok futása véget ér, ha az utolsó előtérszál is lefutott (az esetleg még futó háttérszálak ekkor automatikusan megszűnnek). 12 OE-NIK HP

V 1.0 System.Threading.Thread példa using System; using System.Threading; class Program { static void Main(string[] args) { Console.WriteLine("Szál közvetlen létrehozása"); Console.WriteLine("Főszál ({0})", Thread.CurrentThread.GetHashCode()); Thread newThread = new Thread(ThreadMethod); newThread.Name = "Új szál"; newThread.Start(); newThread.Join(); } static void ThreadMethod() { Console.WriteLine("{0} (sorszáma: {1})", Thread.CurrentThread.Name, Thread.CurrentThread.GetHashCode()); } OE-NIK HP

V 1.0 Feladat Hozzon létre konzolos alkalmazást, amelynek segítségével előre beállítható darabszámú weboldal teljesítményét tudjuk másodpercen át tesztelni külön szálakon futó System.Net.WebClient().DownloadString(url) metódushívások segítségével 14 OE-NIK HP

V 1.0 OE-NIK HP 15 Források Miklós Árpád prezentációja Jeffrey Richter: CLR via C#, 4th edition (2012, Microsoft Press)