(kernel3d vizualizáció: kernel245_graph.mpg)

Hasonló dokumentumok
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 kezelése a UNIX-ban

Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek Folyamatok 1.1

Operációs Rendszerek II.

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

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

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

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

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

Matematikai és Informatikai Intézet. 4. Folyamatok

Folyamatok. 6. előadás

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

UNIX: folyamatok kommunikációja

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

Operációs rendszerek. Bemutatkozás

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

UNIX: fájlrendszerek

Operációs rendszerek

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

Informatikai rendszerek alapjai (Informatika I.)

Operációs Rendszerek II.

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

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

Ütemezés (Scheduling),

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

Balogh Ádám Lőrentey Károly

Ütemezés (Scheduling),

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

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ű.

Utolsó módosítás:

Előadás_#03. Előadás_03-1 -

Tartalom. Operációs rendszerek Bevezetés CPU ütemezés. Középtávú ütemezés. Hosszútávú ütemezés

Operációs rendszerek 1.

A mai program OPERÁCIÓS RENDSZEREK. A probléma. Fogalmak. Mit várunk el? Tágítjuk a problémát: ütemezési szintek

Operációs rendszerek II. jegyzet

Operációs rendszerek. nem hivatalos jegyzet

UNIX fájlrendszerek alapismeretei

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

Operációs rendszerek

Elosztott rendszerek

Windows ütemezési példa

Utolsó módosítás:

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

UNIX ütemezése. Operációs rendszerek MINB240 UNIX, Windows NT ütemezése Holtpontkezelés. Algoritmus követelményei. UNIX ütemezés jellemzése

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

Folyamatok kezelése. Az operációs rendszerek egyik legfontosabb feladata a folyamatok kezelése.

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

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

UNIX bevezető. kiegészítő fóliák az előadáshoz. Mészáros Tamás

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

Mobil operációs rendszerek. Készítette: Kisantal Tibor

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

Operációs rendszerek MINB240

OPERÁCIÓS RENDSZEREK. A mai program. Fogalmak. Ütemezés és a Context Switch

Operációs rendszerek. A Windows NT

Operációs rendszerek MINB240

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

Podoski Péter és Zabb László

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

Concurrency in Swing

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

UNIX folyamatok kommunikációja

Folyamatok követése. Tartalom. 1. Folyamatok

Operációs rendszerek MINB240

Operációs rendszerek. 1. Bevezetö. Operációs rendszer: nincs jó definíció

Konkurens TCP Szerver

Operációs rendszerek III.

Operációs rendszerek MINB240 UNIX, Windows NT ütemezése Holtpontkezelés. UNIX ütemezése. Algoritmus követelményei. 4.

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

Alkalmazások típusai Szoftverismeretek

Operációs rendszerek

Informatika szigorlat 21-es tétel: Operációs rendszerek. Operációs rendszerek feladatai

alkalmazásfejlesztő környezete

OPERÁCIÓS RENDSZEREK II GYAKORLAT

UNIX / Linux rendszeradminisztráció

Operációs Rendszerek II.

Operációs Rendszerek II. 4. előadás

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.

Utolsó módosítás:

Clang Static Analyzer belülről

UNIX operációs rendszer bemutatása. A UNIX története, fejlesztésének céljai.

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Rőczei Gábor Szeged, Networkshop

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

14. Tétel. A kezelt hardvererőforrásoknak része többek között a memória, a processzor, a merevlemez és a perifériális eszközök használata.

Az informatika alapjai. 10. elıadás. Operációs rendszer

Számítógépes alapismeretek

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Számítógépes alapismeretek

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek. UNIX fájlrendszer

Valós idejű funkcionalitás Windows-ban

Bevezetés az informatikába

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

UNIX fájlrendszerek alapismeretei

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

8. Memória management

Átírás:

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

Áttekintés Alapismeretek Mi a folyamat? Hogy indul? Hol látszik? Viszonya a kernellel? Kontextusok és végrehajtási módok Folyamatok alapadatok állapotok és állapotátmenetek életciklus: létrehozás, futás (ütemezés), leállítás Rendszerhívások új folyamat létrehozása új programkód betöltése Klasszikus és modern UNIX ütemezők tulajdonságai prioritás, ütemezési szintek és működés, preemptivitás modularitás, real-time, interaktív és multimédia folyamatok igényei többprocesszoros rendszerek sajátosságai 4

UNIX folyamatok felhasználói ismeretek Mi az a folyamat? Feladataink megoldására programokat írunk Egy program futás alatt álló példánya a folyamat (def.) Hogyan indulnak a folyamatok? Rendszerinduláskor (rendszerfolyamatok, szolgáltatások) Felhasználó által Hogyan kezeljük a folyamatokat? Listázás (folyamat neve, azonosítója, futtatója, erőforrás adatok,...) ps -ef, ps axu, ps -u <felhasználó>,... top és grafikus társai Vezérlés jelzésekkel: kill <SIGNAL> <PID> leállítás, felfüggesztés egyebek: prioritás állítás: renice 5

UNIX folyamatok kernel alapismeretek Folyamatok elkülönítése a kerneltől Végrehajtási mód: különbség a kernel és a folyamat programkódja között Kontextus: kernel és folyamat adatok közötti különbség Végrehajtási (futási) módok: Kernel ( privilegizált, védett ) mód Felhasználói ( szabad ) mód Végrehajtási környezetek: Kernel (rendszer) kontextus A kernel saját feladatainak ellátásához szükséges Folyamat kontextus (virtuális memória-kezelés!) Folyamat adatok (programszöveg, adatok, verem, stb.) u-terület : adminisztratív adatok a folyamat címterében processz leíró: adminisztratív adatok a kernel címterében 6

A folyamatok és a kernel (emlékeztető) Rendszerkönyvtárak Rendszerhívás interfész Folyamatkezelés ütemezés, memória-kezelés, kommunikáció Hardver réteg (processzor, memória, erőforrások) 7

Folyamatok futtatása: végrehajtási mód és kontextus felhasználói mód kernel mód alkalmazás rendszerhívás folyamat kontextus kernel kontextus (üres) megszakítások, rendszer feladatok 8

Folyamatok adatai Saját adatok programkód, verem, allokált memória, stb. Adminisztratív adatok PID (Process ID): egyedi, a folyamatot azonosító szám PPID: szülő folyamat azonosítója A folyamat állapota fut, alszik, stb. (l. következő fólia) ütemezési információk (prioritás, CPU használat, nice érték) Hitelesítők UID, GID: a kapcsolódó felhasználó adatai Memória-kezelési adatok címleképezési térkép Kommunikációs adatok fájlleírók, jelzés információk Statisztikák erőforrás használat (számlázáshoz) 9

Folyamatok futtatása: állapotátmeneti gráf Felhasználói módban fut Kiinduló Zombi Kernel módban fut Futásra kész Alszik Felfüggesztve futásra kész Felfüggesztve alszik 10

Folyamatok életciklusa (állapotátmenetek) Létrehozás fork(): új folyamat létrehozása (copy-on-write technika) exec(): új programkód betöltése egy folyamat címterébe Futtatás (ütemezés) futó és futásra kész állapotok közötti átmenetek vezérlése Futás megállítása várakozás eseményre (önként) felfüggesztés (felhasználó) leállás (önként vagy a kernel) Leállás exit() rendszerhívással zombi állapot szülő értesítése gyerekek adoptálása 11

A fork() és az exec() rendszerhívások A fork() eltérő értékkel tér vissza a szülő és a gyerek esetében Az exec() sikeres végrehajtás esetén nem tér vissza Kódminta if ((res = fork()) == 0) { // gyerek exec(...); // ha visszatér, exec hiba történt } else if ( res < 0 ) { // fork hiba történt } // res = CHILD_PID (>0), szülő kódja fut tovább fork() variációk (címtér használat, szálak többszörözése) clone() (osztott címtér), vfork() (exec), fork1() (egy szál) exec() variációk (elérés, argumentumok, környezet) execl(), execv(), execle(), execve(), execvp(),... 12

A folyamatok családfája Folyamatot csak egy másik folyamat tud létrehozni minden folyamatnak van szülője és lehetnek gyerekei a szülő változhat (így a gyerekek listája is) A fork() megadja a szülőnek a gyerek azonosítóját (PID) Az ős folyamat (init, idle, swapper) minden folyamat őse a rendszer leállásáig fut örökli az árva folyamatokat figyeli bizonyos rendszerfolyamatok meglétét (futását) A család fontos a szülő értesítést kap a gyerek folyamat leállásáról (nyugtáznia kell) 13

UNIX folyamatok ütemezése (tradicionális UNIX) (Korábbi előadásokon példával együtt szerepelt, itt csak ismételjük) Főbb tulajdonságok prioritásos preemptív időosztásos A prioritás számításának összetevői korábbi cpu használat futásra kész folyamatok száma (p_cpu öregítésével ) nice érték (nice és renice parancsok) Algoritmus több szinten, több időléptékben zajlik óraütésenként a prioritási sorok ellenőrzése 10 ütésenként round-robin körforgó ütemezés egy soron belül 100 lépésenként a prioritások újraszámítása 14

Modern UNIX ütemezők szempontjai Új ütemezési osztályok speciális alkalmazási igények: multimédia, beágyazott, stb. fair share : az erőforrások tervezhető elosztása a kernelek is egyre több saját folyamatot (szálat) futtatnak batch, real-time, kernel és interaktív folyamatok keveréke fut egy időben Moduláris ütemező rendszer sokféle osztály egyféle keretrendszer egyszerűbb a speciális ütemezési megoldások megvalósítása bővíthető Az ütemező erőforrásigénye (teljesítménye) az ütemezés egyre összetettebb feladat nem lenne jó az ütemezésre pazarolni a processzoridőt az ütemezési algoritmus komplexitása lineáris, de inkább O(1) legyen Szálak kezelése (folyamatokat vagy szálakat ütemezünk?) szálak számának növekedésével nő az ütemező terhelése (Java VM) a szálak kerültek előtérbe ennek megfelelő ütemező kell 15

Modern UNIX ütemezők szempontjai (folyt.) Kernel megszakíthatóság a tradicionális UNIX kernel nem preemptív (szűk keresztmetszet) a többprocesszoros (többmagos) ütemezéshez elengedhetetlen többprocesszoros, többmagos ütemezés és terheléselosztás régóta tipikus a 4-8-16 processzoros rendszer (szervereken) folyamatok (csoportok) processzorokhoz (csoportokhoz) kötése garantált processzor erőforrások egyes folyamatok (csoportok) számára Lokalitás, processzor halmazok, hardver sajátosságok multithreading, multi-core, multi-cpu nem mindegy, milyen a hardver processzorok cache memória viszonyok figyelembe vétele pl. próbáljuk ismét ugyanarra a processzorra ütemezni a folyamatot Elosztott ütemezés egy ütemezési sor? több? processzoronként? magonként? 16

Örökölt prioritások (Solaris) folyamat 3 tart erőforrás A kér folyamat 2 erőforrás B tart kér folyamat 1 Prioritások: P1 > P2 > P3 Módosítás: Pö3 = Pö2 = P1 17

Összefoglalás Folyamatokkal kapcsolatos alapismeretek metaadataik (u-terület, processz leíró), PID felhasználói kezelésük: ps, kill, nice kernel kezelésük: kétféle futási mód, életciklus, ütemezés Folyamatok életciklusa létrehozás: klasszikusan a fork() rendszerhívással állapotok (speciális: kétféle futó állapot, felfüggesztett állapotok) vezérlés alapvetően jelzésekkelű Folyamatok családfája a fork() fát épít, az ős folyamat az init Ütemezés klasszikus: prioritásos, időosztásos, preemptív modern: moduláris, több ütemezési osztály, többprocesszoros 18