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



Hasonló dokumentumok
Operációs rendszerek MINB240

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

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

Operációs rendszerek Folyamatok 1.1

Matematikai és Informatikai Intézet. 4. Folyamatok

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

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Operá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. Az NT folyamatok kezelése

Az operációs rendszer szerkezete, szolgáltatásai

Operációs rendszerek MINB240

Konkurens TCP Szerver

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

(kernel3d vizualizáció: kernel245_graph.mpg)

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

Windows ütemezési példa

Operációs Rendszerek II.

Bevezetés az informatikába

Számítógépes alapismeretek

Ütemezés (Scheduling),

Az interrupt Benesóczky Zoltán 2004

Operációs rendszerek III.

Operációs rendszerek. A Windows NT

Operációs rendszerek. Bemutatkozás

Előadás_#02. Előadás_02-1 -

Dr. Illés Zoltán

Ütemezés (Scheduling),

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

Operációs Rendszerek II.

OPERÁCIÓS RENDSZEREK. Elmélet

Balogh Ádám Lőrentey Károly

Operációs rendszerek. Folyamatok ütemezése

Folyamatok. 6. előadás

Operációs rendszerek

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

Utolsó módosítás:

Utolsó módosítás:

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Digitális rendszerek. Utasításarchitektúra szintje

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Vé 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

Programok, statikus linkelés

Operációs rendszerek MINB240

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Operációs rendszerek

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

Operációs rendszerek MINB240

Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve őszi félév első zhval bezárólag.

Rekurzió. Dr. Iványi Péter

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

Melyek a Windows Server 2008 R2 tiszta telepítésének (Clean Install) legfontosabb lépései?

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

Alkalmazások típusai Szoftverismeretek

Operációs rendszerek

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

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

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Architektúra, megszakítási rendszerek

Operációs rendszerek. 4. gyakorlat: Szignálok küldése, kezelése

Concurrency in Swing

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

Programozás alapjai Bevezetés

Operációs rendszerek. Az NT memóriakezelése

Operációs rendszerek (I 1204)

Ellenőrzőpont támogatás PVM alkalmazások számára a magyar ClusterGriden

Számítógép architektúra

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Operációs rendszerek 1.

Informatikai rendszerek alapjai (Informatika I.)

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

Programozási nyelvek és módszerek Java Thread-ek

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Operációs rendszerek

OPERÁCIÓS RENDSZEREK. A mai program. A CPU által végrehajtott instrukciófolyam. A folyamat kontextus, processz menedzsment, processz állapotok

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

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

8. Memória management

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

CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén

Hálózati operációs rendszerek II.

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

SC Kérdés. SC Kérdés. SC Kérdés

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

Operációs rendszerek

BaBér bérügyviteli rendszer telepítési segédlete év

Párhuzamosság a modern operációs rendszerekben

I. Bevezetés. I. Általános telepítési szempontok. Telepítési leírás. Mérlegjegy nyilvántartó. Szerzö és a segítség.

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

TERC V.I.P. hardverkulcs regisztráció

Active Directory kiegészítő kiszolgálók telepítése és konfigurálása Windows Server 2003 R2 alatt

Élöllat nyilvántartó program

Előadás_#11. Előadás_11-1 -

A Számítógépek hardver elemei

Átírás:

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 vár Program B vár futás vár futás vár Kombinált futás futás vár futás Idő futás vár Amíg egy programnak várakoznia kell az I/Ovégrehajtására egy másik program futhat 3

Multiprogramozás Program A futás vár futás vár Program B vár futás vár futás vár Program C vár futás vár futás vár Kombinált futás futás futás vár futás futás futás vár Idő 4

Időosztás Multiprogramozás használata, hogy egyszerre több akár interaktív programot is kezelni lehessen Processzor ideje megosztott több felhasználó között 5

Processzus Végrehajtás alatt álló program Utasításszámláló Regiszterek Változók aktuális értéke (környezet) Egy olyan entitás, amit hozzá lehet rendelni és végre lehet hajtani egy processzoron Nyomonkövethető (task, job) 6

Processzusok Egy utasításszámláló Négy utasításszámláló A B C A B C D D Elvileg minden processzusnak saját virtuális CPU-ja van. Valóságban egy CPU kapcsolgat a processzusok között. (Multiprogramozás) 7

Processzusok Processzusok D C B A Idő Minden processzus végrehajtódik, de egyszerre csak egy processzus aktív, fut!!! 8

Processzusok, nyomonkövetés 9

Nyomonkövetés 10

Nyomonkövetés Szürke részek micsodák? Processzus kezelő, indító (Dispatcher) 11

Két-állapotú processzus Processzus két állapotban lehet: Futó Nem futó elindít (dispatch) belépés nem fut fut kilépés leállít, várakoztat (pause) 12

Nem futó processzusok belépés Sor (queue) elindít Processzor kilépés leállít (pause) 13

Processzusok Ütemező (dispatcher, scheduler) Operációs rendszer legalsó szintje Processzus indítás, megállítás, megszakításkezelés Processzusok Ütemező 14

Processzus létrehozása Egyszerű rendszer: kezdetben minden processzust létrehozunk Általános célú rendszer: Működés közben kell létrehozni Négy esemény hatására jöhet létre processzus: A rendszer inicializálása A processzust létrehozó rendszerhívás létrehozása A felhasználó egy processzus létrehozását kéri Kötegelt feladat (batch job) kezdeményezése 15

Processzus létrehozása, gyakorlatban Felhasználó bejelentkezik Szolgáltatás használata, pl. nyomtatás Program elindít egy másikat 16

Processzus létrehozása Rendszer induláskor több processzus keletkezik Előtérben fut Felhasználókkal tartják a kapcsolatot Hátterben fut Nincs felhasználóhoz kötve Sajátos feladatuk van démonok (daemon) 17

Processzus létrehozása, MINIX Processzus létrehozása fork rendszerhívással Elkészíti a processzus tökéletes másolatát Ugyanaz a memóriakép, környezeti változók A gyermek processzus végrehajt egy execve rendszerhívást. Ezzel megváltoztatja a memóriaképet A szülő és gyermek külön címtartománnyal rendelkezik, de osztozhatnak bizonyos erőforrásokon 18

Processzus hierarchia Szülő létrehoz egy gyerek processzust A gyerek processzus is létrehozhat további processzusokat Hierarchia jön létre Unix: processzus csoportok Windows alatt nincs hierarchia Minden processzus egyenlő 19

Processzus befejezése Szabályos kilépés (önkéntes) Kilépés hiba miatt (önkéntes) Kilépés végzetes hiba miatt (önkéntelen) Egy másik processzus megsemmisíti (önkéntelen) 20

Processzus befejezése, gyakorlatban Időkorlát lejárt Nincs több memória Matematikai hiba Zérussal osztás Érvénytelen utasítás Operációs rendszer leállítja (holtpont elkerülés) Szülő leállítja 21

Futó Processzus állapotok Végrehajtás alatt áll, CPU-t használja Blokkolt Logikailag nem lehet folytatni, mert rendszerint bemenetre vár Futásra kész Elvileg készen áll, futásra képes 22

Processzus állapotok futó 1 2 3 blokkolt futásra kész 4 1. A processzus eseményre várva blokkolt 2. Az ütemező másik processzust szemelt ki 3. Az ütemező ezt a processzust szemelte ki 4. Az esemény bekövetkezett 23

Processzus állapotok belépés futásra kész sor elindít Processzor kilépés timeout (idő lejárt) esemény bekövetkezett blokkolt sor eseményre vár 24

Unix processzus állapotok 25

Unix processzus állapotok User running: Felhasználói módban fut Kernel running: Kernel módban fut Ready to run in memory: Futásra kész, az ütemező bármikor kiválasztahtja Asleep in memory: Nem lehet futtatni amíg egy esemény be nem következik (blokkolt állapot) Ready to run, swapped: Futásra kész, de még a memóriába kell helyezni Sleeping, swapped: Nem lehet futtatni amíg egy esemény be nem következik (blokkolt állapot). Lemezre kimásolta a rendszer Preempted: Processzus kernel módból felhasználói módba tér vissza, de a kernel egy másik processzust választ ki Created: A processzus létrejött, de még nem képes futni Zombie: A processzus többé nem létezik, de még hátrahagy információt a szülő processzusnak. 26

Processzus állapotok Minden processzus aktuális állapotáról információt kell tárolni Utasításszámláló Veremmutató Lefoglalt memória Megnyitott fájlok állapota Elszámolási és ütemezési információ Egyéb Az operációs rendszer táblázatban tárolja az információt 27

Memória Eszközök Fájlok Processzusok Táblázatok Memória táblázat I/O táblázat Fájl táblázat Processzus kép Processzus 1. Elsődleges processzus tábla Processzus 1. Processzus 2. Processzus 3.... Processzus n. Processzus n. 28

Processzus táblázat Egy bejegyzés: processzus vezérlő blokk (Process Control Block, PCB) Processzus azonosító Processzus állapot információ Processzus kontrol információ 29

Processzus azonosító Process identifier, proc ID Numerikus érték (szám) Tartalmazza Ennek a processzusnak az azonosítója A létrehozó processzus azonosítója (parent id) Felhasználó azonosító 30

Processzus állapot információ Regiszterek Utasításszámláló Állapot regiszter Verem mutató Általános regiszterek 31

Processzus kontrol információ Ütemezési információ Processzus állapota futó, blokkolt, futásra vár Prioritás Aktuális Maximális Hátralévő ütemezett idő Felhasznált CPU idő 32

Megszakítás Egyszerre futó processzusok illuziója Multitasking Egy CPU Több I/O eszköz Egy I/Oeszközosztályhoz megszakításleíró tábla Tábla bejegyzései megszakításvektor Megszakításvektor: megszakítást kiszolgálóeljárás címe Időzítő, óra is egy eszköz! 33

Egy processzus fut Hardware Multitasking Egy megszakítás következik be, hardware eszköz jelez Megszakításokat letíltja A megszakítás hardware az aktuális veremben tárolja: Utasításszámláló Programállapot szó Egy vagy több regiszter A megszakításvektorban megadott címre ugrik 34

Megszakítás kiszolgáló Multitasking Processzus száma és a mutató globális marad (gyorsabban elérhető) Csak assembly tudja megtenni Összes regisztert elmenti az aktuális processzus PCB-be A megszakítás által tárolt változók kikerülnek a veremből és egy ideiglenes vermet állít be (processzus kezelő használja) C program Végrehajtja a megszakítást kiváltó műveletet, pl. beolvas az eszközről 35

Multitasking Ütemező eldönti melyik processzus fusson legközelebb A megaszkításra váró processzus pl. futásra várakozóvá válik, kiválasztható Prioritást is figyelembe kell venni Ütemezési sorok frissítése A C program visszatér 36

Multitasking Az assembly kód elindítja az új (vagy ugyanazt a) processzust Regiszterek helyreállítása Verem beállítása 37

Óra megszakítás Mikor vált processzust? Maximálisan felhasználható idő lejárt I/O megszakítás Csapda (trap) Matematikai hiba 38

Processzus, vezérlési szál (thread) Rendelkezik utasításszámlálóval, amelyik nyilvántartja, hogy melyik utasítás végrehajtása következik Regiszterei tárolják a munkaváltozókat Verem a végrehajtás eseményeit tárolja 39

Egy processzus Processzusok, szálak 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 Mintha különálló processzus lenne Szál (thread) vagy könnyű súlyú processzus 40

Szál modell (a) 3 processzus, mindegyik egy szállal (b) 1 processzus, 3 szállal 41

Szál modell Nem csak processzus, hanem szál táblázat is van Processzus elemei Címtartomány Globális változók Megnyitott fájlok Gyermekprocesszusok Függőben lévő ébresztők Szignálok és szignálkezelők Elszámolási információk Szál elemei Utasításszámláló Regiszterek Verem Állapot 42

Miért használunk szálakat? Hasonlóak a processzusokhoz, de... Kevesebb idő kell a létrehozáshoz a lezáráshoz a szálak közötti váltáshoz A szálak egy memóriaterületen belül vannak így könnyen kommunikálhatnak a kernel hívása nélkül 43

Szövegszerkesztő 44

Többszálas Web böngésző Sok weblap tartalmaz több kis képet A böngészőnek minden képért külön kapcsolatot kell kiépítenie a lapot tároló számítógéppel A kapcsolatok felépítése és bontása sok idő A böngésző több szál használatával több képet kérhet le egyszerre 45

Kép kérés processzussal Idő Kép kérés Kép kérés Processzus 1 server server Futás Várakozás 46

Kép kérés szállal Idő Kép kérés server Szál A (Processzus 1) Szál B (Processzus 1) Kép kérés server Futás Várakozás Várakozás, amí szál B végez 47

Többszálas Web szerver 48

Felhasználói szintű szálak A kernel semmit nem tud a szálakról Csak a processzusokat látja Szál kezelés egy könyvtárban van implementálva 49

Felhasználói szintű szálak, előnyök Szálak közötti kapcsolás gyorsabb Nincs szükség kernel csapdára, rendszerhívásra Bármelyik operációs rendszer alatt implementálható Nagy számú szál hozható létre alkalmazásonként 50

Felhasználói szintű szálak, hátrányok A szálnak önként kell feladnia a futását Nincs óra megszakítás a szálhoz Együttműködő többszálas programozás Nem használja ki ha több CPU van a gépben Ha egy szál blokkolt, akkor az egész processzus blokkolt, hiszen a kernel semmit nem tud a szálakról 51

Kernel szintű szálak 52

Előnyök Parallel működés Kernel szintű szálak Blokkolt I/Oés számítás átlapolható Ki tud használni több processzort Hátrányok Szál létrehozás és lezárás esetén szükség van a kernelbe lépésre (rendszerhívásra) Drágább mint a felhasználói szintű 53

Hibrid szálak 54