Folyamatszálak. Folyamatszálak. Folyamat. Folyamatszál. Szálak felépítése. Folyamatszálak általános jellemzői

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Folyamatszálak. Folyamatszálak. Folyamat. Folyamatszál. Szálak felépítése. Folyamatszálak általános jellemzői"

Átírás

1 Folyamatszálak Folyamatszálak A több szál fogalma először az időszeletes rendszereknél (time sharing systems) jelent meg, ahol egyszerre több személy is bejelentkezhetett egy központi számítógépre. Fontos volt a processzor idejének igazságos megosztása (kiosztása) a felhasználók közt. Így jött létre a folyamat és a folyamatszál. Folyamat Egy folyamat (process), munka (job) vagy feladat (task) olyan számítás (műveletek meghatározott sorrendben történő szekvenciális végrehajtása), amelyet konkurensen, párhuzamosan hajthatunk végre más számításokkal. A folyamat a processzor aktivitásának absztrahálása, vagyis egy program futó példánya (egy végrehajtás alatt álló program a végrehajtás megkezdődött, de még nem fejeződött be). A folyamatokat és a párhuzamos végrehajtást leginkább úgy tudjuk szemléltetni, hogy minden egyes folyamathoz tartozik egy logikai processzor és egy logikai memória. A memória tárolja a programkódot, a konstansokat és a változókat, a programot a processzor hajtja végre. A programkódban szereplő utasítások és a végrehajtó processzor utasításkészlete megfelelnek egymásnak. Az operációs rendszer feladata, hogy a fizikai eszközökön (fizikai processzor, fizikai memória) egymástól elkülönítetten, védetten létrehozza és működtesse a folyamatoknak megfelelő logikai processzorokat és memóriákat ezeket megfeleltesse a fizikai processzornak, fizikai memóriának, mintegy kiossza a fizikai processzort a logikai processzoroknak (a folyamatok versengenek a CPU-ért). Folyamatszál A folyamathoz kötődő további általános fogalom a szál (thread) fogalma. A szál egy folyamaton belüli végrehajtási egység, amely egy környezetből és saját utasítássorozatból áll. A folyamatszálakat a folyamaton belül lehet párhuzamosan végrehajtani. A szálakat akkor fejlesztették ki, amikor nyilvánvalóvá vált, hogy nem az időveszteségesen végrehajtható alkalmazásokra van szükség (pl. felhasználóra várni, hogy beavatkozzon), hanem olyan alkalmazásokra, amelyek lehetőleg egyszerre több művelethalmazt is végrehajtanak egyidejűleg, párhuzamosan (pl. háttérben futó helyesírás ellenőrzés, vagy érkező hálózati üzenetek feldolgozása), de ezek a műveletek ne különálló folyamatokba legyenek szervezve, hanem egy folyamaton belül jelenjenek meg. A különálló folyamatok létrehozása és az egymással való kommunikáció megvalósítása nagy többletmunkát jelentett ezen alkalmazások esetén. Szálak felépítése A szálaknak saját logikai processzorúk van (a CPU-ért ugyanúgy versenyeznek, mint a folyamatok), azonban memóriáik nincsenek védetten elkülönítve, közös logikai memóriát használnak, csak a kódon és változókon osztoznak. A folyamat adatzónáját és környezetét minden szál közösen használja. Az egyetlen memória terület, amelyet egy szál elfoglal, az a hozzárendelt verem. Minden folyamatszál saját környezettel rendelkezik. A fentiek miatt az operációs rendszer lényegesen gyorsabban tud végrehajtani egy átkapcsolást a szálak között, mint a folyamatok között. Ez a szálak alkalmazásának gyakorlati jelentősége. Folyamatszálak általános jellemzői A folyamatszálakat párhuzamosan futó végrehajtási egységekből álló programok írására használjuk. A folyamatszálak utasítás sorozatokat hajtanak végre, amelyek egybezártnak tekinthetők. A folyamatszál végrehajtását bármikor meg lehet szakítani, így az átadja a vezérlést egy másik szálnak. A folyamatszálakat való műveleteket rendszerhívások (Windows NT, Sun Solaris operációs rendszerek esetében) vagy a programozási könyvtárak (C, C++) segítik.

2 Folyamatszálak állapotai Borland Delphiben egy szál lehet: Aktív vagy továbbindított (resumed) Felfüggesztett (suspended) Folyamatszálak állapotai C/C++, Java programozási nyelvekben négy lehetséges állapota van egy szálnak: Aktív (fut a szál): a folyamat erőforrásait ellenőrzés alatt tarthatja. Más szál nem lehet aktív ugyanabban az időben, hacsak nincs több rendelkezésünkre álló processzor. Egy szál három okból állhat le: A szál átadja a vezérlést egy másik szálnak. A száltól az ütemező erőszakosan veszi el a vezérlést. Az életciklusa végére ér (meghal). Futtatható: ha futtatásra készen áll. Az ilyen állapotban levő szál nem vár I/O-ra, hanem csak arra, hogy az operációs rendszer futásra ütemezze. Nem futtatható: a szál nem kész a végrehajtásra. Ez akkor következhet be, ha: Blokkolva van: valamilyen erőforrástól információt vár (pl. CPU, I/O, billentyűzet, szinkronizációs objektum). Ha megkapja a várt információt, akkor futtatható állapotba kerül. Alszik: a szálunk leáll a végrehajtással, hogy a többi szálak is esélyt kapjanak a futásra. Ez nagyon fontos segítőkész szálak (cooperative threads) esetében, azért hogy biztosítsák más szálaknak is a futásra való esélyt. Halott: Egy szálat akkor tekintünk halottnak, ha megszűnik létezni a fent említett állapotok egyikében. Egy szál meghalhat, ha eléri kódjának végét, vagy ha megöli egy eljáráshívás az őt tartalmazó folyamatból vagy egy másik szálból a folyamaton belül. Prioritás A prioritás a szál fontosságára vonatkozik a többi futtatható állapotban levő szállal szemben. Amikor több szál is futásra kész állapotban van, akkor a szálütemezőnek döntenie kell, hogy melyik szálat futassa. Az ütemező a legnagyobb prioritású szálat választja. Ha éppen fut egy szál, akkor egy magasabb prioritású szál az aktív szál felfüggesztését vonja maga után, így megengedheti magának, hogy addig fusson amíg át nem akarja engedni a vezérlést egy másik szálnak, vagy egy magasabb prioritású szál meg nem szakítja futását. A szálak nem módosítják a programunk szemantikáját, csak a műveletek időzítését változtatják meg. Így összefüggő problémák megoldására elegáns módszert nyújtanak. Mikor használjunk szálakat? Lassú feldolgozásnál: ha egy alkalmazás hosszasan számol, számít, nem tud üzeneteket fogadni, tehát nem tudja az eredmény kiírását sem frissíteni. Háttérben folyó feldolgozás: egyes feladatok nem időkritikusak, de folyamatosan kell végrehajtódjanak (pl. a nyomtatás végrehajtása egy szövegszerkesztőben tipikusan másik szál feladata, hisz ez időt vesz igénybe, és a felhasználó szeretné munkáját folytatni a nyomtatás elindítása után, nem feltétlenül várja ki annak befejezését.). I/O műveletek: az I/O műveleteknek előreláthatatlan késése lehet (pl. állományok másolása a háttérben). Kiszolgálás: Kliens-szerver architektúrák esetében a szerver minden egyes kliensre létrehoz egy folyamatszálat és párhuzamosan szolgálja ki őket. Szálak használatának előnyei A többprocesszoros rendszerek kihasználása: egy egyszerű egyszálas alkalmazás nem tud kihasználni két vagy több processzort. Több processzoros gépek esetén az operációs rendszer feladata az, hogy a processzorokat rejtetten ossza ki, anélkül, hogy a programozó, felhasználó tudná, hogy most pont melyik processzorban fut a kód. Így a szálak használatában (programozáskor) sem kell különbséget tenni az egy- és a többprocesszoros gépek között. Hatékony időmegosztás: szálakkal és folyamat-prioritásokkal biztosíthatjuk, hogy mindenki igazságos CPU időkiosztásban részesüljön. Hatékony erőforrás-kihasználás: a rendszerben a processzoron kívül lehetnek más erőforrások is, amelyeket hatékonyan meg lehet osztani a folyamatszálak között (pl. egy folyamat nem használja ki az adott erőforrást lehetőleg minden erőforrás minden pillanatban maximálisan ki kell legyen használva). A feladat-végrehajtás gyorsítása: ha egy feladatot párhuzamosan végrehajtható részfeladatokra tudunk bontani, és ezeket párhuzamosan végre tudjuk hajtani (pl. valódi párhuzamossággal), akkor jelentős gyorsítást érhetünk el. Többféle feladat egyidejű végrehajtása: A számítógépet egyidejűleg többféle célra tudjuk felhasználni (pl. számítás közben levélírás, képnézés).

3 Alkalmazás Az alkalmazásban a főszál nem fut állandóan. Lehetnek hosszú időintervallumok, amikor nem kap üzenetet, nem végez számítást. Az alkalmazás által lefoglalt memória és más erőforrások megvannak, az ablak is a képernyőn van, de a kódból nem hajtódik végre egyetlen részlet sem. Az alkalmazást elindítottuk, és a fő szál fut. Amikor az alkalmazás ablaka létrejött nincs semmilyen más dolga, csak üzenetekre vár. Ha nincs új üzenet amit fel kell dolgozni, akkor az operációs rendszer felfüggeszti a szálat. Amikor a felhasználó a menüből kiválasztotta a parancsot, az operációs rendszer újra aktívvá teszi a szálat, megjelenik az adatbeolvasó dialógusdoboz. A főszál most újra aktív. Ez a felfüggesztés-továbbindítás többször is megismétlődik, amíg ki nem lépünk az alkalmazásból. A főszál nem használja ki hatékonyan az erőforrásokat, sok a szünet, az az időintervallum, amikor az alkalmazás nem csinál semmit. Műveletek folyamatszálakkal Folyamatszál elindítása Folyamatszál felfüggesztése Folyamatszál újraindítása Folyamatszálak közötti kommunikáció, szinkronizálás Folyamatszál megsemmisítése Folyamatszálak elindítása Folyamatszálak elindítására a különböző programozási nyelvek függvényeket biztosítanak, az objektumorientált nyelvekben a folyamatszálakat osztályok valósítják meg, az elindítást pedig a konstruktor. Gyakran bizonyos beállításokat szeretnénk eszközölni a szálon, mielőtt elindítanánk. Létrehozáskor megadhatjuk, hogy a szál, létrehozása után aktív legyen vagy felfüggesztett. Ezeket a beállításokat a függvények vagy a konstruktor paramétereivel érhetjük el. Ha felfüggesztett állapotban hozzuk létre a szálat, akkor a főszál adatokat állíthat be, biztosítva, hogy amikor a szálat elindítjuk, fogja látni a módosításokat, az adatok frissítve lesznek. Folyamatszál felfüggesztése Folyamatszálak megszüntetésére a programozási környezet függvényeket biztosít. Felfüggesztés után a folyamatszál nem lesz aktív. Minden általa lefoglalt erőforrás megmarad, de a szál már nem dolgozik.

4 Folyamatszál újraindítása Folyamatszálak újraindítására a programozási környezet függvényeket biztosít. Egy felfüggesztett szálat újra lehet indítani (aktívvá tenni). Ekkor újrakezdi működését, dolgozni kezd. Folyamatszálak közötti kommunikáció, szinkronizálás A folyamatszálak egymáshoz való viszonyukat, a köztük lévő kommunikációt tekintve lehetnek: függetlenek versengők együttműködők. A független folyamatszálak egymás működését nem folyásolják be. Végrehajtásuk teljes mértékben aszinkron, nem függnek egymástól, egymással párhuzamosan is végrehajtódhatnak. A versengő folyamatszálak nem ismerik egymást, de közös erőforrásokon kell osztozniuk. A korrekt és biztonságos erőforrás-kezelés szinkronizálást igényel (pl. ha egy szál nyomtatni akar, és a nyomtató foglalt, egy másik szál nyomtat, akkor a második meg kell hogy várja, amíg az első szál, amely lefoglalta a nyomtatót, befejezi a nyomtatást). Az együttműködő folyamatszálak ismerik egymást, együtt dolgoznak egy feladat megoldásán, információt cserélnek kommunikálnak egymással. A kooperatív viselkedést a programozó határozta meg, a feladatot tervszerűen bontottuk egymással kommunikáló folyamatszálakra. Az együttműködést, a kommunikációt adat- vagy információcsere útján tudják megvalósítani a szálak. A cserélt információ esetenként egyetlen bitnyi is lehet (flag), máskor akár több megabájt is lehet. A szálak közötti információcserének két alapvető módja alakult ki: közös memórián keresztül, illetve üzenetküldéssel / fogadással. Közös memória Közös memórián keresztül történő adatcsere esetén az együttműködő szálak mindegyike a saját címtartományában lát egy közös memóriát (globális rész az alkalmazás címtartományában). Ezt a közös memóriát egyidejűleg több szál is írhatja, illetve olvashatja, a PRAM (Pipelined Random Access Memory) modell szerint. Közös memória Az olvas és ír műveletek egyidejű végrehajtására a következő szabályok vonatkoznak: olvasás-olvasás ütközésekor mindkét olvasás ugyanazt az eredményt adja, és ez megegyezik a memória tartalmával; olvasás-írás ütközésekor a memória tartalma felülíródik a beírt adattal, az olvasás eredménye a memória régi, vagy az új tartalma lesz, annak függvényeben, hogy melyik történt hamarabb, az írás vagy az olvasás; írás-írás ütközésekor valamelyik művelet hatása érvényesül, az utoljára beírt érték felülírja a memória tartalmát.

5 Közös memória Az egyidejű műveletek nem interferálhatnak, nem lehet közöttük zavaró kölcsönhatás, harmadik érték sem olvasáskor, sem íráskor nem alakulhat ki. Az írás és olvasás műveletek a PRAM modell szintjén atomiak, tovább nem oszthatók. A pipelined elnevezés azt tükrözi, hogy a memóriához egy sorosítást végző csővezetéken jutnak el a parancsok. Kommunikáció üzenetekkel A szálak nem használnak közös memóriát. Rendelkezésünkre áll két művelet: a Küld (Send)és a Fogad (Receive). A Küld(<adat>, <szál>) művelet végrehajtásakor a műveletet végrehajtó szál elküldi a megadott adatot a megadott folyamatszálnak, a Fogad(<adat>, <szál>) művelet pedig a megadott száltól érkező adatot tárolja. Folyamatszálak szinkronizálása Miért kell szinkronizálni? Kérdésünkre egyszerű választ ad a következő példa: Két személy, X és Y ugyanarra a bankszámlára kiállított bankkártyával rendelkeznek (kx, ky). Mindketten egyszerre lépnek oda egy-egy bankautomatához (t0 időpont) és fel szeretnének venni egyenként 100 -t. A bankszámlán 200 van. Folyamatszálak szinkronizálása Ez egy lehetséges forgatókönyv, a kommunikáció sebessége a bank és a bankautomata közötti összeköttetés sebességétől függ, a műveletek sorrendje meghatározott, de a két szálon egymáshoz viszonyítva semmi sem biztosítja az egymásutániságot vagy precedenciát, a két szál között semmiféle kommunikáció nincs. Az ilyen problémákat race condition-nak, versengési feltételnek nevezzük: két vagy több szál egyszerre ugyanazért az erőforrásért verseng. Atomiság A szálak együttműködésének megértéséhez szükséges megértenünk az atomiság (elemiség) problémáját. Egy művelet vagy művelet sorozat atomi (elemi), ha tovább nem bontható más tevékenységekre. Ha egy szál elemi utasítást hajt végre, akkor az azt jelenti, hogy a többi szál nem kezdte el annak végrehajtását vagy már befejezte azt. Nem állhat fenn olyan eset, hogy egy szál egy másikat egy adott utasítás végrehajtásán érjen. Ha semmilyen szinkronizációt nem alkalmazunk a szálak közt, akkor szinte egy műveletet sem mondhatunk atominak.

6 Egyszerű példa az A globális változó értékét növeljük meg két különböző szálban (inc(a), inc(a) utasítást kell kiadni minden egyes szálban, az elvárt eredmény az, hogy az A értéke 2-vel nőjön). Ez az egyszerű utasítás assembly szinten három különböző utasításra bomlik le: Olvasd A-t a memóriából egy processzor-regiszterbe. Adj hozzá 1-et a processzor-regiszter értékéhez. Írd a regiszter értékét vissza a memóriába. Egyszerű példa Ha csak egyetlen processzorunk van, akkor egyszerre csak egy szál dolgozik, de az operációs rendszer ütemezője másodpercenként kb. 18-szor vált köztük. Az ütemező bármelyik pillanatban leállíthatja egyik szál futását és másikat indíthat el (az ütemezés preemptív). Az operációs rendszer nem vár a szál engedélyére, hogy mikor függesztheti fel azt és indíthat el helyette egy másikat. Így a váltás bármely két processzor-utasítás között megtörténhet. Képzeljük el, hogy két szál ugyanazt a kódrészletet (az A változó értékének növelését) hajtja végre egy egy processzoros gépen (a szálak legyenek X és Y). Szerencsés esetben program jól működik, az ütemezési műveletek elkerülhetik a kritikus szakaszt és a várt eredményt kapjuk: A értékét megnöveltük 2-vel (legyen A eredeti értéke 1). Az X szál által végrehajtott utasítások Olvasd A értékét a memóriából egy processzor-regiszterbe (1) Adj hozzá 1-et a regiszter értékéhez Írd a regiszter értékét vissza a memóriába (2) Az Y szál által végrehajtott utasítások Olvasd A értékét a memóriából egy processzor-regiszterbe Adj hozzá 1-et a regiszter értékéhez Írd a regiszter értékét vissza a memóriába (3) X Szál által végrehajtott utasítások Olvasd A értékét a memóriából egy processzor-regiszterbe (1) Adj hozzá 1-et a regiszter értékéhez (2) Írd a regiszter értékét vissza a memóriába (2) Y Szál által végrehajtott utasítások Olvasd A értékét a memóriából egy processzor-regiszterbe (1) Adj hozzá 1-et a regiszter értékéhez (2) Írd a regiszter értékét vissza a memóriába (2) Egyszerű példa Láthatjuk, tehát, hogy szinkronizálás vagy konkurencia szabályozás (concurrency control) nélkül súlyos problémák léphetnek fel elsősorban a következő műveletek esetében: megosztott erőforráshoz való hozzáféréskor nem VCL szálból a VCL nem szálbiztonságos részeinek elérése (szinkronizálás a grafikus felülettel, ablakkal) különálló szálból grafikus művelet végrehajtásánál VCL A VCL sem rendelkezik védelemmel a szinkronizációskonfliktusok ellen. Ez azt jelenti, hogy a szálváltás akkor is megtörténhet, amikor egy vagy több szál VCL kódot hajt végre. Egy szálváltás a nem megfelelő pillanatban megsértheti nem csak az adatot, hanem a kapcsolatokat is a komponensek között. Például a VCL-szál egy dialógusablakot nyit meg vagy egy lemezre írást kezd el, és felfüggesztődik, közben egy másik szál megváltoztat valamilyen megosztott adatot. A fő VCL-szál továbbindításkor észreveszi, hogy az adat megváltozott a dialógusablak felbukkanásának vagy a lemezre írás eredményeként. Rosszul értelmezi a helyzetet, rossz pontról folytatja a műveleteket.

7 Szinkronizálás A közös erőforrások használata, valamint a szálak közötti közös memória használatának biztonsága és helyessége érdekében a folyamatok aszinkron, teljesen szabad futását korlátozni kell. Ezeket a korlátozásokat nevezzük szinkronizációnak (szinkronizálásnak). Szinkronizálás Szinkronizálást megvalósíthatunk a következő szinkronizációs primitívekkel: Csatorna Mutex Feltételes változó Kritikus szakasz (kritikus zóna) Szemafor Monitor Csatorna A folyamatok közötti kommunikáció úgynevezett randevúk segítségével is megvalósítható. A randevúk lényege, hogy az a folyamat, amely elsőnek érkezik, mindaddig fel lesz függesztve (vár), míg a társa oda nem ér. Amikor a randevú teljes, akkor végrehajtódik mind a két folyamat. A folyamatok közötti kommunikáció csatornák segítségével valósulhat meg. A csatornákat Hoare vezette be 1985-ben. A lényegük az, hogy üzenetet küldhetünk, vagy üzenet fogadhatunk egy csatornán: ch!e az e értéket elküldjük a ch csatornán ch?v a v értéket vesszük a ch csatornáról Mutex A mutex (mutual exclusion) változó tulajdonképpen egy bináris szemafor, két lehetséges állapota van: lezárt (0) egy szál tulajdona Soha sem lehet egyszerre több szálnak a tulajdona. Ha egy szál egy lezárt mutexet szeretne megkapni, akkor várnia kell, amíg azt a foglaló szál felszabadítja. nyitott (1) egyetlen szálnak sem a tulajdona Egy mutex változón a következő műveleteket végezhetjük: Inicializálás (statikus vagy dinamikus) lezárás (hozzáférés igénylése a védett erőforráshoz = mutex igénylése) nyitás (felszabadítja az erőforrást) megsemmisítése a mutex változónak Feltételes változó A feltételes változók szinkronizációs és kommunikációs objektumok egy feltétel teljesülésére várakozó szál és egy feltételt teljesítő szál között. A feltételes változóhoz hozzá van rendelve egy: predikátum a feltétele aminek teljesülnie kell mutex változó a mutex változó biztosítja, hogy a feltétel ellenőrzése és a várakozás, vagy a feltétel ellenőrzése és teljesülésének jelzése atomi műveletként legyen végrehajtva. Egy feltételes változón a következő műveleteket végezhetjük: Inicializálás (statikus vagy dinamikus) Várakozás (WAIT) a szál várakozik amíg kívülről jelzik a feltétel teljesülését Jelzés (NOTYFY) az aktuális szál jelez az összes szálnak, amelyek várják a feltétel beteljesedését Megsemmisítés Kritikus szakasz Ha egy szál belép egy kritikus szakaszban, akkor lefoglal egy erőforrást és más szál nem férhet hozzá az adott erőforráshoz, ameddig a szál ki nem lép a kritikus szakaszból. Egy jól definiált kritikus szakasz a következő tulajdonságokkal rendelkezik: Egy adott időpontban egyetlen szál található a kritikus szakaszban, bármely más szál, amely hozzá akar férni a kritikus erőforráshoz, várakozik, míg az eredeti szál ki nem lép a kritikus szakaszból. A szálak relatív sebességei nem ismertek. Bármely szál leállítása csak a kritikus szakaszon kívül történhet. Egyetlen szál sem fog végtelen időt várni a kritikus szakaszban. A kritikus szakasz legegyszerűbb megvalósítása egy bináris szemafor segítségével történik.

8 Szemafor A folyamatok szinkronizálására speciális nyelvi elemeket kell bevezetni. A legelőször bevezetett nyelvi elem a szemafor volt, amelyet Dijkstra mutatott be 1968-ban a kölcsönös kizárás problémájának megoldására. Ez az eszköz a nevét a vasúti jelzőberendezésről kapta, logikai hasonlósága miatt. A szemafor általánosan egy pozitív egész értékeket vehet fel. Speciális a bináris szemafor, amelynek értéke csak 0 és 1 lehet. A lehetséges műveletek neve wait és signal. A műveletek hatása a következő: wait(s): ha s > 0, akkor s := s 1, különben blokkolja ezt a folyamatot s-en; signal(s): ha van blokkolt folyamat s-en, akkor indít közülük egyet, különben s := s + 1. Lényeges, hogy ezek a műveletek oszthatatlanok, azaz végrehajtásuk közben nem történhet folyamatváltás. Ugyancsak lényeges a szemafor inicializálása is, mert itt határozzuk meg, hogy egyszerre hányan férhetnek hozzá az erőforráshoz. Monitor A monitorokat Hoare vezette be 1974-ben. A monitor objektum egy több szál által használt eljárás nem párhuzamos végrehajtását teszi lehetővé. A monitor tulajdonképpen ötvözi az objektum orientált programozást a szinkronizációs metódusokkal. Egy monitor objektum részei: osztott adat ezeket az adatokat feldolgozó eljárások monitort inicializáló metódusok Mindegyik eljárás halmazt egy monitor kontrolál. A többszálas alkalmazás futásakor a monitor egyetlen szálnak engedélyezi egy adott időpontban az eljárás végrehajtását. Ha egy szál éppen egy monitor által kontrolált eljárást akar futtatni, akkor az lefoglalja a monitort. Ha a monitor már foglalt, akkor várakozik, amíg a monitort lefoglaló szál befejezi a adott eljárás végrehajtását és felszabadítja a monitort. Folyamatszál megsemmisítése A szálak, mint bármely más objektum, memória és erőforrás lefoglalást igényelnek. Így a befejezés után a szálakat meg kell semmisíteni, fel kell őket szabadítani. Erre két lehetőségünk van: Hagyjuk magát a szálat, hogy felszabadítsa önmagát. Ez akkor hasznos, ha: a szál az eredményeket még a befejeződése előtt visszaadja a főszálnak a szál befejeződéskor nem tartalmaz semmilyen hasznos információt, amelyre a főszálnak szüksége lenne. A szál befejeződése után a főszál kiolvassa a szükséges információkat és ő maga szabadítja fel a szálat. Folyamatszál megsemmisítése Ha hagyjuk, hogy a szál önmagát szabadítsa fel, kellemetlen következményekre is számíthatunk. Az egyik az, ha megpróbálunk az alkalmazásból kilépni, miközben a szál még aktív és dolgozik. Ekkor az alkalmazást befejezzük anélkül, hogy figyelemmel lennénk a szál állapotára. A másik: az alkalmazásból akkor akarunk kilépni, amikor a szálunk fel van függesztve. Ekkor az operációs rendszer erőszakosan fejezi be a szál futását. Nem helyes programozási stílus, ha erőszakosan semmisítjük meg a szálat, nem vagyunk tekintettel arra, hogy az épp mit csinált (pl. lehet, hogy éppen egy állományba ír. Ha a felhasználó ilyenkor kilép az alkalmazásból, akkor a fájl sérült lesz). Helyesebb, elegánsabb, ha mindig a főszál szabadítja fel az általa létrehozott szálakat. Étkező filozófusok

9 A párhuzamos paradigma talán legnépszerűbb feladata az étkező filozófusok (dining philosophers), amelyet Edsger Wybe Dijkstra ( ) javasolt 1971-ben a holtpont helyzetek és a párhuzamos szinkronizálás szemléltetésére. Egy tibeti kolostorban öt filozófus él. Minden idejüket egy asztal körül töltik. Mindegyikük előtt egy tányér, amelyből soha nem fogy ki a rizs. A tányér mellett jobb és bal oldalon is egyegy étkezőpálcika található. A filozófusok gondolkodnak, majd amikor megéheznek felveszik a tányérjuk mellett lévő két pálcikát, esznek, majd visszateszik a pálcikákat és ismét gondolkodni kezdenek. Evés közben mivel mindkét pálcika foglalt a filozófus szomszédai nem ehetnek. Amikor egy filozófus befejezte az étkezést, leteszi a pálcikákat, így ezek elérhetővé válnak a szomszédai számára. Holtpont A nagy kérdés pedig az, hogy mit kell csináljanak a filozófusok, hogy ne vesszenek össze a pálcikákon. Ha mindegyikük felveszi például a jobb pálcikát és nem teszi le, mindegyik várakozni fog a szomszédjára és éhen halnak. A holtpont (deadlock) akkor következhet be, amikor két (vagy több) folyamat egyidejűleg verseng erőforrásokért, és egymást kölcsönösen blokkolják. A két vagy több folyamat közül egyik sem tud továbblépni, mert mindkettőnek éppen arra az erőforrásra lenne szüksége, amit a másik lefoglalt. Köszönöm a figyelmet!

C# 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. 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észletesebben

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (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

Uniprogramozá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

Uniprogramozá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észletesebben

Szálak szinkronizálása (Ro- Sincronizarea threadurilor)

Szálak szinkronizálása (Ro- Sincronizarea threadurilor) Szálak szinkronizálása (Ro- Sincronizarea threadurilor) A gyakorlat célja: Megismerkedni a szálak szinkronizációs metódusaival és alkalmazásuk a Windows környezetben. Elméleti bevezető: Szálak szinkronizálása:

Részletesebben

Operációs rendszerek Folyamatok 1.1

Operá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észletesebben

Operációs rendszerek. 3. előadás Ütemezés

Operációs rendszerek. 3. előadás Ütemezés Operációs rendszerek 3. előadás Ütemezés 1 Szemaforok Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1; Up:

Részletesebben

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

Operációs rendszerek MINB240

Operációs rendszerek MINB240 Processzusok, szálak Operációs rendszerek MINB240 2. előadás Szálak, IPC Egy processzus Saját címtartomány Egyetlen vezérlési szál Hasznos lehet több kvázi párhuzamos vezérlési szál használata egy címtartományban

Részletesebben

Tartalomjegyzék. Előszó... 10

Tartalomjegyzé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észletesebben

Párhuzamos programozási platformok

Párhuzamos programozási platformok Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási

Részletesebben

Konkurens TCP Szerver

Konkurens 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észletesebben

Folyamatok. 6. előadás

Folyamatok. 6. előadás Folyamatok 6. előadás Folyamatok Folyamat kezelése, ütemezése folyamattábla új folyamat létrehozása átkpcsolás folyamatok elválasztása egymástól átlátszó Szál szálkezelő rendszer szálak védése egymástól

Részletesebben

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés. 2.1. Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés. 2.1. Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése Operációs rendszerek 2. Folyamatok Simon Gyula 2. Folyamatok Bevezetés Folyamatkezelés multiprogramozott rendszerben Környezet váltás Folyamatleírók, I/O leírók Szálak Megszakítások Felhasznált irodalom:

Részletesebben

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt segédlet A Szilipet programok az adatok tárolásához Firebird adatbázis szervert használnak. Hálózatos

Részletesebben

AZ OPERÁCIÓS RENDSZER MINT ABSZTRAKT, VIRTUÁLIS GÉP

AZ OPERÁCIÓS RENDSZER MINT ABSZTRAKT, VIRTUÁLIS GÉP 2. AZ OPERÁCIÓS RENDSZER MINT ABSZTRAKT, VIRTUÁLIS GÉP Mint az előző fejezetben megállapítottuk, az operációs rendszer egyik fő feladata, hogy egy kényelmesen kezelhető virtuális gépet jelenítsen meg a

Részletesebben

Operációs rendszerek

Operációs rendszerek Operációs rendszerek 2. EA Regiszter: A regiszterek a számítógépek központi feldolgozó egységeinek (CPU-inak), illetve mikroprocesszorainak gyorsan írható-olvasható, ideiglenes tartalmú, és általában egyszerre

Részletesebben

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Mi az IMDG? Nem memóriában futó relációs adatbázis NoSQL hagyományos relációs adatbázis Más fajta adat tárolás Az összes adat RAM-ban van, osztott

Részletesebben

Matematikai és Informatikai Intézet. 4. Folyamatok

Matematikai és Informatikai Intézet. 4. Folyamatok 4. Folyamatok A folyamat (processzus) fogalma Folyamat ütemezés (scheduling) Folyamatokon végzett "mûveletek" Folyamatok együttmûködése, kooperációja Szálak (thread) Folyamatok közötti kommunikáció 49

Részletesebben

Iman 3.0 szoftverdokumentáció

Iman 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észletesebben

Operációs rendszerek MINB240

Operációs rendszerek MINB240 Szemaforok Operációs rendszerek MINB24 3. előadás Ütemezés Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1;

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Operációs rendszerek be és kivitelkezelése, holtpont fogalma, kialakulásának feltételei, holtpontkezelési stratégiák, bankár algoritmus.

Operációs rendszerek be és kivitelkezelése, holtpont fogalma, kialakulásának feltételei, holtpontkezelési stratégiák, bankár algoritmus. Operációs rendszerek be és kivitelkezelése, holtpont fogalma, kialakulásának feltételei, holtpontkezelési stratégiák, bankár algoritmus. Input/Output I/O Hardware I/O eszközök (kommunikációs portok szerint

Részletesebben

Podoski Péter és Zabb László

Podoski 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észletesebben

Nyíregyházi Főiskola Matematika és Informatika Intézete. Holtpont (Deadlock) Alapfogalmak, példák, ábrázolás. Biztonságos és nem biztonságos állapot

Nyíregyházi Főiskola Matematika és Informatika Intézete. Holtpont (Deadlock) Alapfogalmak, példák, ábrázolás. Biztonságos és nem biztonságos állapot 1 Holtpont (Deadlock) Alapfogalmak, példák, ábrázolás Kialakulási feltételek Biztonságos és nem biztonságos állapot Holtpont kezelési stratégiák Problémák 2 Alapfogalmak A deadlock (holtpont) az az állapot,

Részletesebben

Rendszám felismerő rendszer általános működési leírás

Rendszám felismerő rendszer általános működési leírás Rendszám felismerő rendszer általános működési leírás Creativ Bartex Solution Kft. 2009. A rendszer funkciója A rendszer fő funkciója elsősorban parkolóházak gépkocsiforgalmának, ki és beléptetésének kényelmesebbé

Részletesebben

Számítógép felépítése

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

Operációs rendszerek. Holtpont

Operációs rendszerek. Holtpont Operációs rendszerek Holtpont Holtpont (deadlock) fogalma A folyamatok egy csoportja olyan eseményre vár, amelyet egy másik, ugyancsak várakozó folyamat tud előidézni. Esemény: tipikusan erőforrás felszabadulása.

Részletesebben

Bepillantás a gépházba

Bepillantás a gépházba Bepillantás a gépházba Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív memória: A számítógép bekapcsolt

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Szé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észletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

A Novitax ügyviteli programrendszer első telepítése

A Novitax ügyviteli programrendszer első telepítése Telepítő fájl letöltése honlapunkról A Novitax ügyviteli programrendszer első telepítése A honlapunkon (www.novitax.hu) található telepítő fájlt (novitax2007-setup.exe) le kell tölteni a számítógép egy

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások

Részletesebben

3Sz-s Kft. Tisztelt Felhasználó!

3Sz-s Kft. Tisztelt Felhasználó! 3Sz-s Kft. 1158 Budapest, Jánoshida utca 15. Tel: (06-1) 416-1835 / Fax: (06-1) 419-9914 E-mail: zk@3szs. hu / Web: http://www. 3szs. hu Tisztelt Felhasználó! Köszönjük, hogy telepíti az AUTODATA 2007

Részletesebben

Operációs Rendszerek II.

Operációs Rendszerek II. Operációs Rendszerek II. Második előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Visszatekintés Visszatekintés Operációs rendszer a számítógép hardver elemei és az

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK

Részletesebben

Internet programozása. 1. előadás

Internet programozása. 1. előadás Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes

Részletesebben

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák) 1. tétel A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei Ismertesse a kommunikáció általános modelljét! Mutassa be egy példán a kommunikációs

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Digitális írástudás 2012. március 13. TÁMOP-5.3.1-C-09/2-2010-0068 Trambulin

Digitális írástudás 2012. március 13. TÁMOP-5.3.1-C-09/2-2010-0068 Trambulin Digitális írástudás 2012. március 13. TÁMOP-5.3.1-C-09/2-2010-0068 Trambulin Cél: A képzés célja, hogy a projekt résztvevői tudják kezelni a számítógépet és perifériáit, ismerjék a szoftvereket. Képessé

Részletesebben

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

A számítógépek felépítése. A számítógép felépítése

A számítógépek felépítése. A számítógép felépítése A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:

Részletesebben

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

találhatók. A memória-szervezési modell mondja meg azt, hogy miként Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési

Részletesebben

Operációs rendszerek. Az X Window rendszer

Operációs rendszerek. Az X Window rendszer Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).

Részletesebben

iseries Client Access Express - Mielőtt elkezdi

iseries Client Access Express - Mielőtt elkezdi iseries Client Access Express - Mielőtt elkezdi iseries Client Access Express - Mielőtt elkezdi ii iseries: Client Access Express - Mielőtt elkezdi Tartalom Rész 1. Client Access Express - Mielőtt elkezdi.................

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

A dokumentáció felépítése

A dokumentáció felépítése A dokumentáció felépítése Készítette: Keszthelyi Zsolt, 2010. szeptember A szoftver dokumentációját az itt megadott szakaszok szerint kell elkészíteni. A szoftvert az Egységesített Eljárás (Unified Process)

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Multiprocesszoros rendszerek Horváth Gábor 2015. május 19. Budapest docens BME Híradástechnikai Tanszék ghorvath@hit.bme.hu Párhuzamosság formái A párhuzamosság milyen formáit ismerjük? Bit szintű párhuzamosság

Részletesebben

VII. Appletek, grafika

VII. Appletek, grafika VII. Appletek, grafika 1. Bevezetés A tantárgy elején említettük, hogy a Java alkalmazásokat két nagy csoportba sorolhatjuk. Ezek: alkalmazások (applications) alkalmazáskák (applets) Az eddig megírt programjaink

Részletesebben

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában Virtualizáció Virtualizáció fogalma: Virtualizáció egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában A virtualizáció

Részletesebben

Mappák megosztása a GroupWise-ban

Mappák megosztása a GroupWise-ban - 1 - Fő me nü Mappák megosztása a GroupWise-ban Amennyiben a feladataink végzése szükségessé teszi, lehetővé tehetjük, hogy a GroupWise rendszerben tárolt személyes mappáinkat, az ott található tételeket

Részletesebben

Operációs rendszerek MINB240

Operációs rendszerek MINB240 Operációs rendszerek MINB240 Ismétlés. előadás Processzusok 2 Alapvető hardware komponensek CPU Diszk Diszk kezelő Diszk Memória kezelő (Controller) Memória Nyomtató Nyomtató kezelő Rendszer busz 3 Alapvető

Részletesebben

Operációs rendszerek

Operációs rendszerek Operációs rendszerek? Szükségünk van operációs rendszerre? NEM, mert mi az alkalmazással szeretnénk játszani dolgozni, azért használjuk a számítógépet. IGEN, mert nélküle a számitógépünk csak egy halom

Részletesebben

Szerelőműhely nyilvántartás Rendszerterv

Szerelőműhely nyilvántartás Rendszerterv Szerelőműhely nyilvántartás Rendszerterv Készítette: Ballagi Pordány Dániel Árpád EHA: BAQSAAI.ELTE E-mail: dballagi@yahoo.com 1. oldal Tartalomjegyzék A szoftver...3 Funkciók:...3 Projekt költségei, időbeosztása...4

Részletesebben

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal. 1. Virtuális gép létrehozása (VMWARE Player) A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal. Megadjuk, hogy a

Részletesebben

Előadás_#06. Előadás_06-1 -

Előadás_#06. Előadás_06-1 - Előadás_#06. 1. Holtpont, Éheztetés [OR_04_Holtpont_zs.ppt az 1-48. diáig / nem minden diát érintve] A holtpont részletes tárgyalása előtt nagyon fontos leszögezni a következőt: Az éheztetés folyamat szintű

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

15.4.2b Laborgyakorlat: Mappa és nyomtató megosztása, a megosztási jogok beállítása

15.4.2b Laborgyakorlat: Mappa és nyomtató megosztása, a megosztási jogok beállítása 15.4.2b Laborgyakorlat: Mappa és nyomtató megosztása, a megosztási jogok beállítása Bevezetés Nyomtasd ki a feladatlapot és oldd meg a feladatokat! Ezen a laborgyakorlaton egy mappát fogunk létrehozni

Részletesebben

Az operációs rendszer fogalma

Az operációs rendszer fogalma Készítette: Gráf Tímea 2013. október 10. 1 Az operációs rendszer fogalma Az operációs rendszer olyan programrendszer, amely a számítógépekben a programok végrehajtását vezérli. 2 Az operációs rendszer

Részletesebben

Ez a telepítési dokumentum segítséget nyújt abban, hogy szabályosan telepítse az Áfa átállító szoftvert Szerviz 7 programhoz.

Ez a telepítési dokumentum segítséget nyújt abban, hogy szabályosan telepítse az Áfa átállító szoftvert Szerviz 7 programhoz. 3Sz-s Kft. 1158 Budapest, Jánoshida utca 15. Tel: (06-1) 416-1835 / Fax: (06-1) 419-9914 e-mail: zk@3szs.hu / web: www.3szs.hu Tisztelt Felhasználó! Ez a telepítési dokumentum segítséget nyújt abban, hogy

Részletesebben

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön

Részletesebben

Mértékegységek a számítástechnikában

Mértékegységek a számítástechnikában Mértékegységek a számítástechnikában BIT legkisebb adattárolási egység Értékei lehetnek: 0,1. Bájt= 8 BIT a számítógép számára egységesen kezelhető legkisebb egység. (Bit,) Bájt, KiloBájt, MegaBájt, GigaBájt,

Részletesebben

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES Számítógép = Univerzális gép! Csupán egy gép a sok közül, amelyik pontosan azt csinálja, amit mondunk neki. Hardver A számítógép

Részletesebben

Tartalom. Operációs rendszerek. Precedencia. 3.2 Szinkronizáció. 3.1 Folyamatokból álló rendszerek. Együttműködő folyamatok használatának indokai

Tartalom. Operációs rendszerek. Precedencia. 3.2 Szinkronizáció. 3.1 Folyamatokból álló rendszerek. Együttműködő folyamatok használatának indokai Tartalom Operációs rendszerek 3. Folyamatok kommunikációja Simon Gyula Bevezetés Szinkronizáció A kritikus szakasz megvalósítási módozatai Információcsere ok között Felhasznált irodalom: Kóczy-Kondorosi

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05+ Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2010 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak Hálózatok Alapismeretek A hálózatok célja, építőelemei, alapfogalmak A hálózatok célja A korai időkben terminálokat akartak használni a szabad gépidők lekötésére, erre jó lehetőség volt a megbízható és

Részletesebben

Ütemezés (Scheduling),

Ütemezés (Scheduling), 1 Ütemezés (Scheduling), Alapfogalmak Ütemezési feltételek (kritériumok) Ütemezési algoritmusok Több-processzoros eset Algoritmus kiértékelése 2 Alapfogalmak A multiprogramozás célja: a CPU foglaltság

Részletesebben

Bankkártya elfogadás a kereskedelmi POS terminálokon

Bankkártya elfogadás a kereskedelmi POS terminálokon Bankkártya elfogadás a kereskedelmi POS terminálokon Költségcsökkentés egy integrált megoldással 2004. február 18. Analóg-Digitál Kft. 1 Banki POS terminál elemei Kliens gép processzor, memória, kijelző,

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

KIRA. KIRA rendszer. Telepítési útmutató v1

KIRA. KIRA rendszer. Telepítési útmutató v1 KIRA rendszer Telepítési útmutató v1 1. Bevezetés A dokumentáció, illetve a dokumentáció mellékleteként megtalálható állományok segítségével készíthető fel a kliens oldali számítógép a KIRA rendszer működtetésére.

Részletesebben

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott jáva programok automatikus tesztelése Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott alkalmazások Automatikus tesztelés Tesztelés heurisztikus zaj keltés Tesztelés genetikus

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Feladatok (task) kezelése multiprogramozott operációs rendszerekben Operációs rendszerek (vimia219) Feladatok (task) kezelése multiprogramozott operációs rendszerekben dr. Kovácsházy Tamás 3. anyagrész 1. Ütemezéssel kapcsolatos példa 2. Összetett prioritásos és többprocesszoros

Részletesebben

Pest Megyei Kamara 2006. január 20. Bagi Zoltán

Pest Megyei Kamara 2006. január 20. Bagi Zoltán Pest Megyei Kamara 2006. január 20. Bagi Zoltán Mitől korszerű egy rendszer? Funkcionalitás, program szolgáltatásai Integráltság (más partnerekkel való adatkapcsolat) Kommunikáció = távolságtól független

Részletesebben

2.1. A szinkronizációs elemek

2.1. A szinkronizációs elemek 2.1. A szinkronizációs elemek A taskok működésük összehangolására, egymás futásának kölcsönös kizárására a monitor által biztosított un. szinkronizációs elemeket használhatják. Két ilyen elem van: a flag

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image 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észletesebben

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh Szoftver Tervezési Dokumentáció Nguyen Thai Binh April 2010 1. fejezet Feladat Szimulációs feladat. Célja, hogy reprezentáljunk egy több komponensből álló alkalmazást, amely a megadott témakörnek megfelel,

Részletesebben

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció H - 1161 Budapest Rákóczi út 76. Tel./Fax.: +36-1-4010159 http://www.pageos.hu toni@pageos.hu DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció A program használható a TOPOBASE

Részletesebben

Feladatok (task) együttműködése

Feladatok (task) együttműködése Operációs rendszerek (vimia219) Feladatok (task) együttműködése dr. Kovácsházy Tamás 5. anyagrész, Kölcsönös kizárás, szinkronizáció, kommunikáció Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika

Részletesebben

UML Feladatok. UML Feladatok

UML Feladatok. UML Feladatok UML Feladatok 2008.01.08 4. Feladat Az alábbi ábrán három UML2 modell elemet megjelöltünk. Adja meg elemenként, hogy az melyik UML2 meta-modell elem példánya! 2008.01.15 4. Feladat Jelölje meg, hogy a

Részletesebben

Működési vázlat: Egyéb feltétel. Opcionális rendszerelem. Központi kijelző. Ügyfél terminál érintő monitorral. Ügyfél. Ügyfél Hivatali PC.

Működési vázlat: Egyéb feltétel. Opcionális rendszerelem. Központi kijelző. Ügyfél terminál érintő monitorral. Ügyfél. Ügyfél Hivatali PC. Működési vázlat: Központi kijelző Kijelző Kijelző Hivatali PC Ügyfél Hivatali PC Ügyfél Ügyfél terminál érintő monitorral LAN vagy WiFi Ügyfél Hivatali PC Hivatali PC Sorszám nyomtató Ügyfél Kijelző Ügyfél

Részletesebben

PRN-5T KEZELÉSI ÚTMUTATÓ PRN-5T. !!! A berendezés jellemzői: PORTOS motorok vezérlési rendszere. Technikai adatok:

PRN-5T KEZELÉSI ÚTMUTATÓ PRN-5T. !!! A berendezés jellemzői: PORTOS motorok vezérlési rendszere. Technikai adatok: Portos Hungary Kft 2220 Vecsés Dózsa György u. 86. Tel.: +36-29/550-280 Mobil.:+36-20/376-1776 +36-20/457-0266 E-mail: portos@portos.hu www.portos.hu urthermore, R PORTOS motorok vezérlési rendszere KEZELÉSI

Részletesebben

Irányítástechnika 1. 9. Elıadás. PLC-k programozása

Irányítástechnika 1. 9. Elıadás. PLC-k programozása Irányítástechnika 1 9. Elıadás PLC-k programozása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler Ildikó: PLC programozás az IEC 1131-3 szabvány

Részletesebben

Bevezetés. Dr. Iványi Péter

Bevezetés. Dr. Iványi Péter Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.

Részletesebben

Java-s Nyomtatványkitöltő Program Súgó

Java-s Nyomtatványkitöltő Program Súgó Java-s Nyomtatványkitöltő Program Súgó Hálózatos telepítés Windows és Linux operációs rendszereken A program nem használja a Registry-t. A program három könyvtárstruktúrát használ, melyek a következők:

Részletesebben

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok. 5. gyakorlat Számítógépes Hálózatok 5. gyakorlat Feladat 0 Számolja ki a CRC kontrollösszeget az 11011011001101000111 üzenetre, ha a generátor polinom x 4 +x 3 +x+1! Mi lesz a 4 bites kontrollösszeg? A fenti üzenet

Részletesebben

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás 1 Főbb jellemzők Hagyományosan 3 elemből (queue, printer, print server) álló rendszer Egyirányú kommunikáció a nyomtató és a munkaállomás

Részletesebben

Számítógépes alapismeretek 1.

Számítógépes alapismeretek 1. Számítógépes alapismeretek 1. 1/7 Kitöltő adatai: 1. Név: 2. Osztály: 3. E-mail címe: 2/7 Kérdések: 1. Mi az IKT (Információs és Kommunikációs Technológia)? Olyan eszközök, technológiák, amik az információ

Részletesebben

Tudásszint mérés feladatlap

Tudásszint mérés feladatlap Tudásszint mérés feladatlap 9. évfolyam Útmutató: Semmilyen segédeszköz nem használható! A feladatlap kitöltésére 40 perc áll rendelkezésedre! Gondold át válaszaidat! Név:... Dátum:... Iskola:... Osztály:...

Részletesebben

A telepítési útmutató tartalma

A telepítési útmutató tartalma 1 A telepítési útmutató tartalma 3 Kompatibilitás és rendszerkövetelmények A telepítési folyamat röviden 4 A telepítés indítása 5 Adatbáziskezelő beállítása / telepítése 8 Telepítési módozatok 11 Az ENSO

Részletesebben

6. Közös változóval rendelkező párhuzamos program, Közös változó,

6. Közös változóval rendelkező párhuzamos program, Közös változó, 6. Közös változóval rendelkező párhuzamos program, Közös változó, Reynold kritérium. Atomi művelet, atomi utasítás. szintaxis, szemantika, tulajdonságok. Szinkronizációs párhuzamos program, szintaxis,

Részletesebben

Geotechnika II. (NGB-SE005-2) Geo5 használat

Geotechnika II. (NGB-SE005-2) Geo5 használat Geotechnika II. (NGB-SE005-2) Geo5 használat A Geo5 szoftvert (1. házi feladathoz opcióként, 2. házi feladathoz kötelezően) online felületen keresztül, távoli asztal kapcsolattal lehet használni. Az ehhez

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - RENDSZERTERVEZÉS 1 1 of 67 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK IV. RENDSZERARCHITEKTÚRÁK

Részletesebben

Már megismert fogalmak áttekintése

Má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észletesebben

Hálózati kapcsolathoz Windowst használó ügyfeleknek

Hálózati kapcsolathoz Windowst használó ügyfeleknek Hálózati kapcsolathoz Windowst használó ügyfeleknek Ha különböző operációs rendszert, vagy architektúrát használ szerverhez vagy klienshez, előfordulhat, hogy a kapcsolat nem működik megfelelően a kézikönyv

Részletesebben