A párhuzamos végrehajtás alapjai
|
|
- Mátyás Németh
- 7 évvel ezelőtt
- Látták:
Átírás
1 Haladóprogramozás (C#) BMF NIK Párhuzamos programozás: folyamatok és ak A párhuzamos programozás alapjai A végrehajtás szétválasztása: elszigetelés és párhuzamosítás Párhuzamosság és ütemezés az operációs rendszer szintjén Folyamatok fogalma és kezelése Új folyamat indítása, létező folyamatok leállítása és bevárása Folyamatok tulajdonságainak és eseményeinek kezelése Szálak fogalma és kezelése Új ak indítása, ak felfüggesztése, állapotvezérlése és leállítása, ak prioritási szintjei Előtér- és háttérak, ThreadPool ak, aszinkron metódushívás Szinkronizáció A szinkronizáció alapfogalmai, versenyhelyzet és holtpont fogalma Kölcsönös kizárás biztosítása, a lock utasítás, ak bevárása és randevúja miklos.arpad@nik.bmf.hu Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. 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 A gépi kódúprogramok tényleges futtatása utasításról utasításra történik. Ahhoz, hogy egy számítógépen egyszerre több program is futtathatólegyen, olyan megoldásra van szükség, amely biztosítja a végrehajtás alatt álló programok egymástól való elszigetelését, valamint a végrehajtás alatt álló programok (látszólag) egyidejű futását. A programok elszigetelése és párhuzamosítása a folyamatok koncepciójának segítségével megoldható Az elszigetelés érdekében minden folyamat saját memóriaterülettel rendelkezik, amelyet más folyamatok nem érhetnek el, így hiba esetén csak a hibázófolyamat sérül, a rendszer többi eleme működőképes marad (viszont a folyamatok közötti közvetlen kommunikációra sincs egyszerű lehetőség). A párhuzamosítás tipikus megoldása az időosztás, amikor minden folyamat kap egy-egy ún. időszeletet, melynek leteltét követően egy másik folyamat kapja meg a vezérlést. Ez a megoldás gyakoratilag függetleníti egymástól a processzorok és a rajtuk egyidőben futtatható programok számát.
2 Illusztráció: az időosztás elve Futó állapot P folyamat Megszakítás vagy rendszerhívás Állapotmentés (PCB ) Állapotbetöltés(PCB ) P folyamat Futásra kész vagy várakozóállapot Futásra kész vagy várakozóállapot Futó állapot Megszakítás vagy rendszerhívás Állapotmentés (PCB ) Állapotbetöltés(PCB ) Futó állapot Futásra kész vagy várakozóállapot Original image David A. Solomon and Mark Russinovich Ütemezés az operációs rendszerekben Az ütemezés fogalma a végrehajtás alatt állóprogramok közötti rendszeres váltás módját, időzítését és szabályait takarja A Microsoft Windows preemptív, prioritásos, körbenforgó, kétszintű* ütemezési politikát alkalmaz. Az ütemezés preemptív : az operációs rendszer kívülről bármikor képes megszakítani a programok futását Az ütemezés prioritásos : minden programnak van egy fontossági szintje (prioritása), amely meghatározza, hogy egy-egy időszelet lejártakor melyik program következhet sorra Az ütemezés körbenforgó : az egyforma prioritásúprogramok között a rendszer egyenlően osztja el a rendelkezésre állóidőt, és a programok sorban egymás után kapnak egy-egy időszeletet (az utolsó program időszelete után ismét az első következik) Az ütemezés kétszintű : az elszigetelt folyamatok mellett léteznek ún. ak is, amelyek a futtatni kívánt kód egy folyamaton belüli további bontását teszik lehetővé(lásd később) A Unix/Linux rendszerek a legutóbbi időkig félig preemptív, prioritásos, körbenforgó, egyszintű ütemezési politikát alkalmaztak. Az ütemezés félig preemptív : az operációs rendszer a programok futását kívülről bármikor képes megszakítani, saját belső elemeinek futását azonban nem Az ütemezés egyszintű volt: a rendszerben csak elszigetelt folyamatok léteznek, ezek képezték a párhuzamosítás alapegységét is (a Linux ma már kezelést is támogat) * A modell ténylegesen négyszintű, de a legfelső( job ) és a legalsó( fiber ) szemcsézettségi szint csak speciális módon használható. Folyamatok A.NET keretrendszerben a folyamatok megfelelnek az operációs rendszer folyamatainak A folyamatok kezelését a System.Diagnostics.Processés a System.Diagnostics.ProcessStartInfoosztályok biztosítják. A Process osztály segítségével új folyamatok hozhatók létre, létezőfolyamatok szüntethetők meg és a folyamatokról részletes adatok érhetők el. A ProcessStartInfo osztály segítségével számos paraméter és beállítás adhatómeg a folyamatként elindítani kívánt programokhoz. 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, ami sebesség és memóriaigény szempontjából nagy előny, mivel a 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.
3 Folyamatok kezelése (kivonatos referencia) System.Diagnostics.Process osztály Metódusok Start() CloseMainWindow() Kill() GetCurrentProcess() GetProcesses() WaitForExit() Tulajdonságok StartInfo PriorityClass EnableRaisingEvents HasExited ExitCode, ExitTime StandardInput, StandardOutput Események Exited Folyamat indítása Folyamat főablakának bezárása (GUI alkalmazásoknál) Folyamat leállítása Aktuális folyamatot reprezentáló objektum lekérése Összes folyamat adatainak lekérése a helyi számítógépről Várakozás az adott folyamat befejeződésére A folyamathoz tartozó ProcessStartInfo példány A folyamat prioritása (fontossági szintje) A folyamat kiválthat-e eseményeket A folyamat kilépett-e Kilépési kód, illetve a kilépés (vagy leállítás) időpontja Alapértelmezett be- és kimeneti csatorna (adatfolyam) A folyamat kilépett (vagy leállították) 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, Alapértelmezett be- és kimeneti csatorna átirányítása RedirectStandardOutput ErrorDialog Hibaü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 Verb A 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) Példa új folyamat indítására 0 0 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(); Console.WriteLine("Az elindított folyamat üzenetei:"); Console.Write(newProcess.StandardOutput.ReadToEnd()); newprocess.waitforexit(); Console.ReadLine(); ProcessExamples\Program.cs
4 Feladat () Készítsünk konzolos alkalmazást, amely (a számítógépre telepített.net keretrendszer segítségével) képes a parancssorban megadott C# nyelvűforrásfájl lefordítására és az esetleges hibák megjelenítésére! Amennyiben a forráskód hibátlan volt, ezt a program külön üzenetben jelezze! Ötletek: A.NET keretrendszer része a parancssoros C# fordító(csc.exe) A program számára parancssorban megadott adatok kezeléséhez a Main() metódus args paraméterét használhatjuk fel, amely karaktersorozatok tömbjeként tartalmazza az átadott adatokat Ha a forráskód fordítása sikeres, maga a C# fordítóegy néhány soros fejlécen kívül semmilyen üzenetet nem ír ki. A fejléc megjelenítése a /nologo parancssori paraméterrel kapcsolható ki. 0 Megoldás () 0 0 using System; using System.Diagnostics; class Program static void Main(string[] args) if (args.length > 0) ProcessStartInfo startinfo = new ProcessStartInfo(); startinfo.filename = String.Format(@"0\..\Microsoft.NET\Framework\v\csc.exe", Environment.GetFolderPath(Environment.SpecialFolder.System), Environment.Version.ToString()); startinfo.arguments = String.Format(@"/nologo /t:exe 0", args[0]); startinfo.redirectstandardoutput = true; startinfo.useshellexecute = false; Process compilerprocess = Process.Start(startinfo); string output = compilerprocess.standardoutput.readtoend(); compilerprocess.waitforexit(); if (output == String.Empty) Console.WriteLine("A forráskód hibátlan, a fordítás sikerült."); else Console.WriteLine("Hibaüzenetek:" + Environment.NewLine + output); Compiler\Program.cs Feladat () Készítsük el az előzőfeladat bővített megfelelőjét grafikus Windows alkalmazásként is (az elkészült program adjon lehetőséget a forráskód szerkesztésére, betöltésére, mentésére, fordítására és futtatására)! Ötletek: A program a forráskódot fordítás előtt mentse el egy ideiglenes fájlba A futtatáshoz használjuk a Process osztály statikus Start() metódusát
5 Megoldás () VisualCompiler Szálak A ak elsődleges célja a folyamatokon belüli párhuzamosítás A folyamatok adminisztrációja és váltása igen erőforrásigényes művelet, viszont az általuk nyújtott elszigetelés szintje egy programon belül csaknem mindig szükségtelen. Ezt az ellentmondást oldják fel a ak, amelyek elszigetelést nem nyújtanak, gyors párhuzamos végrehajtást azonban igen. P folyamat T T T P folyamat T T T T P folyamat T A.NET keretrendszer támogatja a ak kezelését is A keretrendszer kihasználja az operációs rendszer támogatását, de a.net ak és az operációs rendszer ai között nem feltétlenül létezik : megfeleltetés (egy valódi on a keretrendszer több a is futhat). A többúság megvalósítási lehetőségei System.Threading.Thread osztály Lehetővéteszi ak egyenkénti létrehozását, azonosítását, állapotvezérlését és megszüntetését. Kezelése egyszerű, viszont sok programozói munkát és pontosságot igényel. System.Threading.ThreadPool osztály Gyakran ismétlődő, rövid ideig tartó, erősen párhuzamos műveletekhez rendelkezésre álló készlet, melynek használatával megtakaríthatóa ak egyenkénti létrehozásának és megszüntetésének időigényes munkája. Kezelése egyszerű és hatékony, de a ak egyéni identitását nem biztosítja. System.ComponentModel.BackgroundWorker osztály A felhasználói felület kezelésének és a háttérben elvégzendő, esetenként igen sokáig tartóműveletek végrehajtásának szétválasztására szolgál. Kezelése kényelmes (az állapotváltozásokról események útján értesíti a felhasználóját), ám korlátozott funkcionalitása miatt kevés célra alkalmas. Aszinkron metódushívás Képviselők és az aszinkron mintát támogató metódusok aszinkron hívása
6 Szálak kezelése (kivonatos referencia) System.Threading.Thread osztály Metódusok Start() Suspend(), Resume() Abort() GetHashCode() Sleep() Join() Tulajdonságok CurrentCulture, CurrentUICulture IsBackground IsThreadPoolThread ManagedThreadID Name Priority ThreadState Szál indítása Szál felfüggesztése, illetve folytatása Szál leállítása Szál azonosítójának lekérése Várakozás a megadott időintervallum elteltéig Várakozás az adott befejeződésére A hoz tartozó aktuális kultúra, illetve a hoz tartozó felhasználói felület kiválasztott nyelve Az adott háttér vagy előtér* Az adott a ThreadPool egyik a-e A egyedi azonosítója A megnevezése A prioritása (fontossági szintje) A aktuális állapota(i) * A programok futása véget ér, ha az utolsóelőtér is lefutott (az esetleg még futóháttérak ekkor automatikusan megszűnnek). Szálak kezelése (kivonatos referencia) System.Threading.ThreadPool osztály Metódusok QueueUserWorkItem() Metódus végrehajtása egy ThreadPool on A rendelkezésre állóthreadpool ak számának GetAvailableThreads() lekérdezése GetMaxThreads(), Maximálisan rendelkezésre álló, illetve minimálisan GetMinThreads() életben tartott ThreadPool ak számának lekérdezése SetMaxThreads(), Maximálisan rendelkezésre álló, illetve minimálisan SetMinThreads() életben tartott ThreadPool ak számának beállítása RegisterWaitForSingleObject() Várakozás erőforrásra vagy időzítőre Szálak kezelése (kivonatos referencia) System.ComponentModel.BackgroundWorker osztály Metódusok RunWorkerAsync() Háttér indítása CancelAsync() Háttér leállítása ReportProgress Háttér folyamatjelzése Tulajdonságok IsBusy A háttér aktív-e (éppen fut-e) CancellationPending Leállítás folyamatban (leállási kérelem érkezett) WorkerSupportsCancellation A háttér kérés esetén képes idő előtti leállásra WorkerReportsProgress A háttér képes folyamatjelzésre Események DoWork Kezelője a háttérben futtatandó metódus* ProgressChanged A háttér folyamatjelzését fogadó esemény RunWorkerCompleted A háttér futása befejeződött * Ez a metódus (a Windows UI megvalósítási modellje következtében) közvetlenül nem érintkezhet a felhasználói felület elemeivel. Ezek szükséges frissítését és állapotmódosításait a ProgressChanged és a RunWorkerCompleted eseménykezelőkben lehet elvégezni.
7 Példa új indítására 0 0 using System; using System.Threading; class Program static void Main(string[] args) Console.WriteLine("Szál közvetlen létrehozása"); Console.WriteLine("Fő (sorszáma: 0)", Thread.CurrentThread.GetHashCode()); Thread newthread = new Thread(ThreadMethod); //.NET. esetén: Thread newthread = new Thread(new ThreadStart(ThreadMethod)); newthread.name = "Új "; newthread.start(); newthread.join(); static void ThreadMethod() Console.WriteLine("0 (sorszáma: )", Thread.CurrentThread.Name, Thread.CurrentThread.GetHashCode()); ThreadExamples\Program.cs Feladat () Készítsünk konzolos alkalmazást, amely a ThreadPool osztály segítségével külön on jeleníti meg az egyes ak által folyamatosan növelt saját belsőszámlálóértékét! A program valamilyen megoldással biztosítsa a ak által kiírt adatok vizuális elkülönítését! Ötletek: A QueueUserWorkItem() metódus paramétere egy WaitCallback típusú képviselő, amely visszatérési érték nélküli, egyetlen ( object típusú) paraméterrel rendelkező metódusokat képes tárolni A ThreadPool ai is azonosíthatók a ManagedThreadID tulajdonsággal (azonban előfordulhat például, hogy egy által megkezdett feladatot egy másik folytat és egy harmadik fejez be) A ak közötti váltások megfigyeléséhez érdemes sok munkát adni az egyes aknak és néha várakoztatni őket (ennek legegyszerűbb módja a Thread osztály statikus Sleep() metódusa) 0 Megoldás () ThreadExamples\Program.cs
8 Feladat () Készítsünk Windows alkalmazást, amely időigényes műveletet futtat a háttérben, a felhasználói felülettől független on! A program legyen képes a művelet indítására és menet közbeni biztonságos megszakítására, a háttérben futóművelet állapotát pedig folyamatjelzővel jelezze! Ötletek: Célszerű a BackgroundWorker osztály segítségével megoldani a feladatot A háttérben futó a ReportProgress() metódussal jelezheti az előrehaladást (ezt az adatot a ProgressChanged esemény második paraméterében kapja meg a megfelelő eseménykezelő metódus) A művelet megszakítását csak akkor kíséreljük meg, ha valóban fut (ez az IsBusy tulajdonság vizsgálatával állapítható meg) A háttérben futóművelet végén a RunWorkerCompleted esemény kezelője a második paraméterben kap információt a műveletről (véget ért vagy megszakítás miatt fejeződött be, mi a végeredmény, történt-e hiba stb.) Megoldás () BackgroundWorker Aszinkron metódushívás Új képviselődefiniálásakor a C# fordítóolyan új osztályt hoz létre, amellyel szinkron és aszinkron módon is meghívható(k) a képviselt metódus(ok) A képviselőközvetlen (szinkron) hívásakor a képviselőinvoke() metódusa hajtódik végre, azaz a fordítóa képviselőpéldány()szintaxissal megadott metódushívásokat automatikusan képviselőpéldány.invoke() hívásra alakítja át ezért lehet tehát egyszerű szintaxissal meghívni egy képviselőt. Aszinkron hívás esetén a képviselt metódus(ok) két részletben hívható(k): delegate «visszatérési típus» Képviselő(«paraméterek»); Képviselő k = new Képviselő(«hívandó metódus»); IAsyncResult «objektum» = k.begininvoke(«argumentumok»); «visszatérési //...tetszőleges típus» kód, eredmény amely a = képviselt k.endinvoke(k.begininvoke(«argumentumok»)); k(«argumentumok»); k.invoke(«argumentumok»); metódussal párhuzamosan fut majd «visszatérési típus» eredmény = k.endinvoke(«objektum»); A fenti ún. aszinkron tervezési mintát (Begin.../End...) a képviselőkön kívül számos.net osztály is megvalósítja Fájl- és hálózatkezelés, távoli objektumok, webszolgáltatások, üzenetsorok
9 Példa aszinkron metódushívásra 0 0 using System; using System.Threading; class Program delegate int TestDelegate(string parameter); static void Main(string[] args) Console.WriteLine("A fő elindult"); TestDelegate d = Method; //.NET. esetén: TestDelegate d = new TestDelegate(Method); IAsyncResult asyncresult = d.begininvoke("szervusz, világ!", null, null); Console.WriteLine("A fő kezdeményezte a metódushívást és párhuzamosan tovább fut"); int result = d.endinvoke(asyncresult); Console.WriteLine("A metódus lefutott, visszatérési értéke: 0", result); static int Method(string argument) Console.WriteLine("\tA metódus párhuzamosan fut, kapott paramétere: 0", argument); return ; Szinkronizáció A párhuzamos programozás alapproblémája: bármely két utasítás végrehajtása között előfordulhat, hogy más (ak) kapnak lehetőséget az előző által is kezelt közös adatok kezelésére Egyprocesszoros rendszereknél az operációs rendszer ütemezője (a ak közötti váltás) ad erre lehetőséget, többprocesszoros rendszereknél pedig a valódi (fizikai) párhuzamosság miatt még gyakrabban merül fel a probléma. Ennek elkerülését szolgálják elsősorban a különbözőszinkronizációs megoldások (másik, ezzel összefüggő céljuk az időzítések összehangolása). A szinkronizációolyan, párhuzamos ak (vagy folyamatok) együttműködését megvalósítómechanizmus, amely minden körülmények között biztosítja a ak (vagy folyamatok) által végzett műveletek szemantikai helyességét A párhuzamosan futóak kommunikációjához szinte biztosan szükség van közös erőforrások (memória, portok, I/O eszközök, fájlok) használatára. Ha ezek állapotát egy módosítja, de közben más ak is hozzájuk férnek, akkor az utóbbi ak könnyen hibás vagy félkész adatokhoz juthatnak. Példa egyszerű C# kód összetettségére A sötétebb színűvonalak olyan lehetséges megszakítási pontokat jelölnek, amelyek szinkronizációs problémákat okozhatnak
10 Szinkronizáció kölcsönös kizárással Kritikus szakasz ( critical section ) A programokon belül megjelölt kritikus kódrészletek soros végrehajtását biztosítja több párhuzamos esetén is..net osztályok: System.Threading.Monitor(és a C# lock utasítása), System.Threading.Mutex, System.Threading.ReaderWriterLock Szemafor ( semaphore ) A kritikus szakasz általánosítása (többpéldányos erőforrások esetén egyszerre több belépését is lehetővé teszi)..net osztály: System.Threading.Semaphore (.NET.0) Atomi végrehajtás ( interlocked execution ) Egyes egyszerű műveletek oszthatatlan végrehajtását biztosítja (igen gyors)..net osztály: System.Threading.Interlocked Csővezeték ( pipe ) Olvashatóés írhatófifo puffer, amely szükség szerint várakoztatja az igénylőket (az ún. termelő-fogyasztó probléma megoldására készült). Szinkronizáció bevárással (randevú) Esemény ( event ) Két kódrészlet soros végrehajtását biztosítja úgy, hogy a B kódrészletet végrehajtó megvárja, amíg az A kódrészletet végrehajtó végez feladatával, illetve lehetőséget ad alkalmankénti vagy rendszeres jelzésre is..net osztályok: System.Threading.Thread, System.Threading.AutoResetEvent, System.Threading.ManualResetEvent Időzítő( timer ) Relatív vagy abszolút időhöz való igazodást tesz lehetővé..net osztályok: System.Windows.Forms.Timer, System.Timers.Timer, System.Threading.Timer Időzítők jellemzői Windows.Forms.Timer Pontosság ~0 ms Futtatás saját on Beállítható első aktiválás Vizuális komponens + Platformfüggetlen Timers.Timer ~00 ns (!) + Threading.Timer ~ ms Példa szinkronizációra (a lock utasítás) 0 0 using System; using System.Threading; class Program private static int counter = 0; private static object lockobject = new Object(); static void Main(string[] args) Thread t = new Thread(ThreadMethod); t.start(); Thread t = new Thread(ThreadMethod); t.start(); private static void ThreadMethod() lock (lockobject) counter++; Thread.Sleep(00); Console.WriteLine("A számláló állása: " + counter); A lock utasítás nélkül a metódus sorosan (egy on futtatva) helyesen működik, párhuzamosan (több on) azonban nem Figyelem: SOHAne írjunk le az alábbiakra hasonlítókódot: lock (this) vagy lock (typeof(program)) 0 0
11 A szinkronizáció két alapvető nehézsége Versenyhelyzet ( race condition ) Párhuzamos futtatás esetén a közösen használt erőforrásokhoz történő hozzáférés szabályozatlansága veszélyezteti a program helyes működését. Az előző példa a lock utasítás nélkül jól illusztrálja a versenyhelyzet fogalmát. Holtpont ( deadlock ) Akkor léphet fel holtpont, ha több több erőforráshoz kíván hozzáférni, miközben egyes erőforrásokat lefoglalva tartanak (tehát már beléptek egy erőforráshoz tartozókritikus szakaszba, ott viszont várakozniuk kell, hogy hozzájuthassanak egy másik szükséges erőforráshoz). Példa: lock (a) // feldolgozás lock (b) // feldolgozás. lock (b) // feldolgozás lock (a) // feldolgozás. Feladat () Készítsünk többúkonzolos alkalmazást, amely egy időigényes számítási műveletet lal párhuzamosan végeztet el! A műveletet most egy közösen használt számlálófolyamatos növelése jelentse, és egy nak kb. - másodpercig tartson a művelet elvégzése! Amennyiben szükséges, gondoskodjon a ak szinkronizációjáról is! A program valamilyen megoldással biztosítsa a ak által kiírt adatok vizuális elkülönítését! Ötletek: A Stopwatch osztály metódusai segítségével egyszerűen mérhetőaz eltelt (relatív) idő Először egy egyszerűmegvalósítással döntsük el, szükség van-e szinkronizációra, majd ha úgy ítéljük meg, hogy igen, akkor használjuk a lock utasítást vagy a Monitor osztály statikus Enter(), illetve és Exit() metódusát Szinkronizáció esetén a jobb teljesítmény érdekében igyekezzünk a lehető legrövidebbre venni a kritikus szakaszt Irodalomjegyzék (alapismeretek) C. Nagel, B. Evjen, J. Glynn, M. Skinner, K. Watson, A. Jones: Professional C# 00 Kiadó: Wiley Publishing, Inc., 00 ISBN: Web: Nyelv: angol Terjedelem: 0 oldal Folyamatok kezelése:.,. o. Szálkezelés:. o. C. Nagel, B. Evjen, J. Glynn, K. Watson, M. Skinner: Professional C# 00 Kiadó: Wiley Publishing, Inc., 00 ISBN: Web: Nyelv: angol Terjedelem: oldal Folyamatok kezelése:.,. o. Szálkezelés:. o. Microsoft Corp., Visual Studio Developer Center Szálkezelés a.net keretrendszerben:
12 Irodalomjegyzék (magasszintű ismeretek) Albert I., Balássy Gy., Charaf H., Erdélyi T., Horváth Á., Levendovszky T., Péteri Sz., Rajacsics T.: A.NET Framework és programozása Kiadó: Szak Kiadó, 00 ISBN: --- Web: Nyelv: magyar Terjedelem: oldal Párhuzamos programozás: 0. o. Folyamatok kezelése: 0. o. Szálkezelés és szinkronizáció:. o. J. Richter: CLR via C#, Second Edition Kiadó: Microsoft Press, 00 ISBN: Web: Nyelv: angol Terjedelem: oldal Szálkezelés és szinkronizáció:. o.
Párhuzamos programozás: folyamatok
SzPE (C#) 2007 2008, II. félév BMF NIK Párhuzamos programozás: folyamatok A párhuzamos programozás alapjai A végrehajtás szétválasztása: elszigetelés és párhuzamosítás Párhuzamosság és ütemezés az operációs
RészletesebbenPárhuzamos programozás: folyamatok
SzPE (C#) 2007 2008, II. félév BMF NIK Párhuzamos programozás: folyamatok A párhuzamos programozás alapjai A végrehajtás szétválasztása: elszigetelés és párhuzamosítás Párhuzamosság és ütemezés az operációs
RészletesebbenMiklós Árpád, BMF NIK, 2007
Haladó programozás (C#) 2007 2008, I. félév BMF NIK Párhuzamos programozás: folyamatok és szálak A párhuzamos programozás alapjai A végrehajtás szétválasztása: elszigetelés és párhuzamosítás Párhuzamosság
RészletesebbenPárhuzamos programozás.net környezetben
Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamos programozás.net környezetben A párhuzamos programozás alapjai A végrehajtás szétválasztása:
RészletesebbenC# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21
C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)
RészletesebbenProcesszusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
Részletesebben.NET alkalmazások telepítése
Haladóprogramozás (C#) 2007 2008, I. félév BMF NIK.NET alkalmazások telepítése A.NET alkalmazások telepítési lehetőségei Xcopy, Web, MSI, ClickOnce Telepítési megoldások összehasonlítása Windows Installer
RészletesebbenVé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread
Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális
RészletesebbenProcesszusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
RészletesebbenVizuális és eseményvezérelt programozás , II. félév BMF NIK
Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény
RészletesebbenConcurrency in Swing
Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon
RészletesebbenVizuális, eseményvezérelt programozás XI.
Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik Ismeretük szükséges,
RészletesebbenKölcsönös kizárás, atomicitás, szemafor.
Kölcsönös kizárás, atomicitás, szemafor kertesz.gabor@nik.uni-obuda.hu Lock lock (object o) struktúra C#-ban Kölcsönös kizárás megvalósítása object o: szinkronizációs objektum Bármely közös változó lehet,
RészletesebbenOperációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
RészletesebbenEseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
RészletesebbenVizuális és eseményvezérelt programozás , II. félév BMF NIK
Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK MDI szövegszerkesztő Az SDI és az MDI Szülő- és gyermekablakok Menürendszer MDI alkalmazáshoz A gyermekablakok elrendezése RichTextBox
RészletesebbenTask-alapú párhuzamosítás C# környezetben
Task-alapú párhuzamosítás C# környezetben OE-NIK 1 Task Aszinkron elvégzett feladat A háttérben egy Thread vagy egy ThreadPool egy eleme van: magasabb absztrakciós szinten dolgozunk ThreadPool Gyakorlatilag
RészletesebbenObjektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
RészletesebbenFolyamat- és szálkezelés Microsoft
Folyamat- és szálkezelés Microsoft Windows 2000/XP/2003/Vista Definíciók és folyamatmodell Folyamatok és szálak kezelése Ütemezési kérdések Többprocesszoros és többmagos rendszerek miklos.arpad@nik.bmf.hu
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenOperációs rendszerek Folyamatok 1.1
Operációs rendszerek p. Operációs rendszerek Folyamatok 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK A rendszermag Rendszermag
RészletesebbenVizuális, eseményvezérelt programozás X. V 1.0
Vizuális, eseményvezérelt programozás X. V 1.0 ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
RészletesebbenFolyamat- és szálkezelés Microsoft Windows 2000/XP/2003/Vista
Folyamat- és szálkezelés Microsoft Windows 2000/XP/2003/Vista Definíciók és folyamatmodell Folyamatok és szálak kezelése Ütemezési kérdések Többprocesszoros és többmagos rendszerek miklos.arpad@nik.bmf.hu
RészletesebbenFolyamat- és szálkezelés Microsoft Windows 2000/XP/2003/Vista
Folyamat- és szálkezelés Microsoft Windows 2000/XP/2003/Vista Definíciók és folyamatmodell Folyamatok és szálak kezelése Ütemezési kérdések Többprocesszoros és többmagos rendszerek miklos.arpad@nik.bmf.hu
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.
RészletesebbenOsztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
RészletesebbenHaladóprogramozás (C#) 2007 2008, I. félév BMF NIK
Haladóprogramozás (C#) 00 00, I. félév BMF NIK Nemzetközi és többnyelvű alkalmazások fejlesztése Nemzetközi alkalmazások készítésének szempontjai Globalizáció és lokalizáció Nyelvi és kulturális jellemzők
RészletesebbenObjektumorientált Programozás VI.
Objektumorientált Programozás Metódusok Paraméterek átadása Programozási tételek Feladatok VI. ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő
RészletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
RészletesebbenProgramozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,
Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
RészletesebbenProgramozási nyelvek és módszerek Java Thread-ek
Programozási nyelvek és módszerek Java Thread-ek Laki Sándor lakis@inf.elte.hu 2006. május 3. 0-0 Szálak (Threads) Ahhoz, hogy egy mai rendszer m ködhessen több 10-100 folyamatnak kell futnia. A folyamatok
RészletesebbenJohanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
Részletesebbenhiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget
Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló
RészletesebbenSzenzorhálózatok programfejlesztési kérdései. Orosz György
Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30. Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenSzoftvertervezés és -fejlesztés I.
Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.
RészletesebbenKonkurens TCP Szerver
A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló
RészletesebbenOperációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:
Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra
RészletesebbenEseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 5. előadás Windows Forms alkalmazások párhuzamosítása Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
RészletesebbenMár megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
Részletesebben3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai
Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes
Részletesebben9. MPI
9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan
RészletesebbenProgramozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,
Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII, 2016 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a
RészletesebbenOPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -
OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc - koczka.ferenc@ektf.hu KÖVETELMÉNYEK GYAKORLATI JEGY: Két zárthelyi dolgozat eredményes megírása. Forrás: http://wiki.koczka.hu ELMÉLETI VIZSGA Az előadások
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy
RészletesebbenAz UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
RészletesebbenOOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos
OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük
RészletesebbenISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
RészletesebbenObjektumorientált Programozás III.
Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő
Részletesebben(kernel3d vizualizáció: kernel245_graph.mpg)
(kernel3d vizualizáció: kernel245_graph.mpg) http://www.pabr.org/kernel3d/kernel3d.html http://blog.mit.bme.hu/meszaros/node/163 1 (ml4 unix mérés boot demo) 2 UNIX: folyamatok kezelése kiegészítő fóliák
RészletesebbenJava Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
RészletesebbenOPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS
OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS A PROCESSZ A PROCESSZ Program: a végrehajtandó utasítások sorozata Processz: a végrehajtás alatt levő program ÁLLAPOTOK LÉTREHOZÁS ALATT Belépés Kilépés TERMINÁLT
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
RészletesebbenUniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna
Processzusok 1 Uniprogramozás Program A futás várakozás futás várakozás Idő A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna 2 Multiprogramozás Program A futás vár futás
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)
RészletesebbenGrafikus felhasználói felület 3.
1.oldal Grafikus felhasználói felület 3. Képek kezelése - PictureBox - létrehozás, rajzolás - mentés, betöltés Tegyünk fel egy PictureBoxot Ehhez hozzá tudunk rendelni egy img propertyn egy képet, de mi
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java
Részletesebben.NET (Dot-NET) #1 (Bevezetés)
.NET (Dot-NET) #1 (Bevezetés) v0.2a 2004.02.05. 23:49:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan 1 E jegyzet másolata
RészletesebbenInterfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
RészletesebbenKét csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).
Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,
RészletesebbenProgramozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 1. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Követelmények Gyakorlatok látogatása kötelező! (maximum 2 igazolatlan hiányzás) 2 db kisdolgozat
RészletesebbenPodoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
RészletesebbenObjektum Orientált Programozás IV.
Objektum Orientált Programozás IV. Műveletek karaktersorozatokkal Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.
RészletesebbenUNIX: folyamatok kommunikációja
UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 A kommunikáció
RészletesebbenImage Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
Részletesebben1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
RészletesebbenSzámítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Részletesebben... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenTartalomjegyzék. Előszó... 10
Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.
RészletesebbenObjektumorientált Programozás VI.
Objektumorientált Programozás VI. Tömb emlékeztető Egyszerű programozási tételek Összetett programozási tételek V 1.0 ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók
RészletesebbenSQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract
RészletesebbenObjektum Orientált Programozás VII.
Objektum Orientált Programozás VII. Összetett programozási tételek Programozási tételek összeépítése Feladatok ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk
RészletesebbenObjektumorientált Programozás IV.
Objektumorientált Programozás IV. Műveletek karaktersorozatokkal Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.
RészletesebbenIman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
RészletesebbenA képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!
Space Shuttle 40 Pont A Space Shuttle (magyarul űrsikló", hivatalos angol nevén: Space Transportation System, STS) az Amerikai Egyesült Államok ember szállítására is alkalmas űrprogramja volt. Feladatai
RészletesebbenPárhuzamosság a modern operációs rendszerekben
Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamosság a modern operációs rendszerekben Bevezetés Folyamatok nyilvántartása Folyamatok életciklusa
RészletesebbenOsztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
RészletesebbenOsztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
RészletesebbenBevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar
Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Bevezetés Motiváció Soros és párhuzamos végrehajtás, soros és párhuzamos programozás Miért? Alapfogalmak
RészletesebbenOOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
RészletesebbenSzoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
RészletesebbenHelyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
RészletesebbenThermo1 Graph. Felhasználói segédlet
Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.
RészletesebbenJava I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem
RészletesebbenDigitális technika VIMIAA01 9. hét Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
RészletesebbenBME MOGI Gépészeti informatika 13.
BME MOGI Gépészeti informatika 13. 1. feladat Készítsen alkalmazást, mely elvégzi a következő feladatokat! a. Állítson elő adott intervallumba eső, adott számú véletlen számot, és írja ki a számokat egy
RészletesebbenDigitális technika VIMIAA01 9. hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
RészletesebbenBevezetés a párhuzamos programozási koncepciókba
Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu Programozási modellek
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenWebes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 12. fejezet Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának
RészletesebbenElőszó... 13. 1. A Windows alkalmazásfejlesztés rövid története... 15. A Windows életútja... 15 A Windows 8 paradigmaváltása... 16
Előszó... 13 1. A Windows alkalmazásfejlesztés rövid története... 15 A Windows életútja... 15 A Windows 8 paradigmaváltása... 16 A Microsoft megteszi az első lépéseket a fogyasztók felé... 17 A Windows
RészletesebbenBME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
RészletesebbenBroadcast Service Widget
OE-NIK 2012. április 22. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Broadcast Service Widget Broadcast Mi is ez? Aszinkron, üzenetszórásos értesítés Azok akik felregisztráltak rá értesülnek
RészletesebbenSzoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs
Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus
Részletesebben