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

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements


Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
1 Számítógépek felépítése 9. előadás I/O rendszerek.
Erőállóképesség mérése Találjanak teszteket az irodalomban
Humánkineziológia szak
Mellár János 5. óra Március 12. v
Operációs Rendszerek II. 5. előadás március 05.
MFG-Pro váll-ir. rendszer bemutatása
Számítógépek felépítése sínrendszer, megszakítás
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Operációs rendszerek 1. Takács Béla
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Ütemezési algoritmusok (FCFS, SJF, RR)
Szoftevrismeret Operációs rendszerek.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Elektronikai Áramkörök Tervezése és Megvalósítása
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Az operációs rendszerek
Folyamatok ütemezése a UNIX-ban
Védőgázas hegesztések
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
Utasítás végrehajtás lépései
A folyamat kontextus, processz menedzsment, processz állapotok
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
Felkészítő tanár: Széki Tibor tanár úr
TÉTELEK Info_tech_2012. Simon Béláné. 1. TÉTEL 1.a. A digitális számítógép és a logikai áramkör kapcsolata (6.4.1.) 1.b. Az ÉS logikai áramkörnek adja.
Egy harmadik generációs gép (az IBM 360) felépítése
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
1 Operációs rendszerek Az NT folyamatok kezelése.
1 Operációs rendszerek Az ütemezés megvalósítása.
1 Folyamatok modellezése az operációs rendszerekben Operációs rendszerek.
1 Operációs rendszerek A Windows NT memóriakezelése.
1 Operációs rendszerek Signal kezelés. 2 SIGNAL kezelés Egyszerű folyamatok közötti kommunikációs (IPC – Inter Process Communication) megoldás. A signal.
1 Operációs rendszerek A UNIX védelmi rendszere. 2 Illetéktelen hozzáférés megakadályozása: az egyes felhasználók adataihoz, az operációs rendszer adataihoz,
Operációs rendszerek gyakorlat 3. Gyakorlat Vakulya Gergely.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Programrendszer 2. Erőforrás – erőforrás elosztás 3. Indítja és ütemezi a programokat 4. kommunikáció 2 Takács Béla.
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Operációs Rendszerek 2. Második előadás. Közlemény Jövő héten az óra elején külsős előadás kooperatív képzéssel kapcsolatban Kb. 10 perc Ha lehet, minél.
szakmérnök hallgatók számára
A Unix operációs rendszer Előadást tarja: Lázár András.
Operációs rendszer.
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
Az operációs rendszer Az operációs rendszer a számítógépet működtető szoftver, amely a számítógép indulásakor azonnal betöltődik a számítógép memóriájába:
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Objektum orientált programozás
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Óravázlat Készítette: Kucsera Mihály és Toldi Miklós
Óravázlat Készítette: Kucsera Mihály 2011.
Óravázlat Készítette: Kucsera Mihály és Toldi Miklós
IT ALAPFOGALMAK HARDVER.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Bevezetés az operációs rendszerek világába
Írja fel a tizes számrendszerbeli
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
2. Operációs rendszerek.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
Operációs rendszerek Az operációs rendszerek működésének alapfogalmai.
Párhuzamos programozás
IT ALAPFOGALMAK OPERÁCIÓS RENDSZEREK.
A Számítógépek hardver elemei
Számítógépek felépítése 9. előadás I/O rendszerek
Előadás másolata:

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

2 Folyamatok a UNIX-ban  A folyamat: multiprogramozott operációs rendszer alapfogalma - absztrakt fogalom.  A gyakorlati kép: egy program végrehajtása és a végrehajtási környezet biztosítása.  A folyamat virtuálisan egyedül fut a rendelkezésre álló hardveren.  Hardver erőforrások elérése:  az operációs rendszeren keresztül.  Műveletek:  erőforrás igénylés, várakozás.  Operációs rendszer feladata:  összehangolja az egyes folyamatok perifériás műveleteit,  elosztja a rendelkezésre álló hardver erőforrásokat.

3 Felhasználói folyamatok  Folyamatonkénti 1 szülő és 1 vagy több gyerek (fork).  Az ősszülő az init, a rendszer indulásakor jön létre.  Az árva folyamatokat az init örökli.  Könnyűsúlyú folyamatoknál csak részleges környezetváltás van (stack terület)!

4 Folyamatok állapot-átmeneti diagramja

5 Swapped Ready to run Preempted zombi állapot Ready to run Created User Running Asleep in memory Asleep and Swapped SW in/out EXIT rsz hívás RETURN Swap Out Wake Up Scheduler OUT IT, rsz hívás Wake Up sleep fork Scheduler IN SIGNAL ELLENŐRZÉS Kernel Running IT, IT return stop Folyamatok állapot-átmeneti diagramja…

6 … azaz:

7 Folyamatok állapot-átmeneti diagramja II. Új folyamat keletkezése:  fork() rendszerhívás:  gyermek folyamatnak:  fork() visszatérési értéke: 0,  szülő folyamatnak:  fork() visszatérési értéke: gyerek PID-je.  Ősfolyamat: init (PID=0).  Scheduler (ütemező, PID=1).

8 Folyamat indulása int result=fork(); if(result==0)/*visszatérési érték vizsgálata*/ { printf("GYERMEK VAGYOK"); exec("gyermek_kód",...); /*a gyermek végrehajtása*/ } else { if(result<0) { printf("HIBA"); } else { printf(" Anya proc:gyermekem PID-je:%d",result ); /*ha a visszatérési érték >0, kiírja */ }

9 Folyamatok állapotai I.  Created (létrehozott) állapot.  Ready to run (futásra kész) állapot.  Kernel running.  User running.  Asleep in memory (memóriában alvó):  sleep rendszerhívás,  wake up átmenet.

10 Folyamatok állapotai II.  Swapped out:  swapped out and asleep,  swapped out and ready to run. Preemptív ütemezés:  kernel running  ready to run,  preemptív (erőszakosan megszakított, kiszorított) állapot. Futás befejezése: zombie állapot.

11 Folyamatok és a rendszer kapcsolata

12 Folyamatok és a rendszer kapcsolata perifériák Kernel P1P2P3 rendszerhívások perifériák interface-e D1D2D3D4D5 P4P5P6 felhasználói folyamatok rendszer folyamatok

13 Interface-ek OPR interface-ek: Programozói interface (rendszerhívások): –folyamat  OPR. Periféria interface: –OPR  I/O eszközök (perifériák).

14 Folyamatok párhuzamos végrehajtása  Egy fizikai processzor.  Virtuális párhuzamos végrehajtás.  CPU ütemezés: gyors váltás, futó folyamatok számára szinte észrevétlen.  UNIX: időszeletes (time slice vagy quantum), prioritásos, preemptív (kiszorításos).

15 Folyamatok környezete  Követelmény:  folyamatok megszakítása, illetve újraindítása.  Folyamatok környezete: a folyamat és az őt végrehajtó gép állapota (illetve annak leírása). Így például:  programszámláló (program counter),  regiszterek,  Memory Management Unit,  használt erőforrások.

16 A folyamatok környezetének adatelemei a UNIX-ban

17 A folyamatok környezetének adatelemei Minden adat, ami szükséges a folyamat újraindításához. Kettő vezérlési adatstruktúrában tárolódik:  proc (processz) struktúra a rendszer memóriájában:  a kernel az összes folyamat proc struktúrájához hozzáfér,  tárolás: hash tábla,  u area (user area, felhasználói terület): a processz memóriájában, de csak (!) kernel módban módosítható:  a kernel csak a futó folyamat u area-jához fér hozzá közvetlenül,  indirekt módon a többit is eléri, de jóval lassabban.

18 Dinamikus adatszerkezetek Láncolt lista. Hash tábla. A kulcs, ami alapján keressük az elemeket

19 Folyamat környezet leíró adatok Proc1 Proc2 Proc3. PCB  Mutató a Proc. Table bejegyzésre  UID, GUID  Handler információ  … Processz-táblázat (bővíthető) Proc2-höz tartozó u area Kernel Stack File Descriptor Table Region Table

20 A proc struktúra elemei I.  Processz azonosító (PID).  User area-ra mutató referencia.  Processz állapota:  pl.: kernel vagy user módban fut, várakozó vagy futásra kész (állapot diagram).  Ütemezési információk:  pl.: p_cpu, p_usrpri.  Ütemezésnél használt egyéb mutatók:  pl.: milyen prioritási kategóriában van.

21 A proc struktúra elemei II.  Signalok kezelésére vonatkozó információ:  ignored-blocked-posted-handled.  MMU információ:  milyen MMU regisztereket kell frissíteni a folyamat futtatásakor.  A processzek különböző listáihoz (aktív, zombie, szabad) tartozó link-ek.  Jelzőbitek.

22 A proc struktúra elemei III.  A PID alapján a hash táblában történő tároláshoz szükséges mutatók.  A processzek hierarchiájában elfoglalt helyre vonatkozó információ:  pl.: processz szülője, processz gyermekei.

23 A user area elemei I. Egyszerű adatelemek:  PCB (hardver környezet, regiszterek).  Mutató a folyamat proc struktúrájára.  Jogosítványok (valós {signal} és hatásos {file} UID, GID).  Signal handler (kezelő) rutinok címei.  CPU használati statisztika (ütemezéshez).  Környezeti változók (pl.: aktuális könyvtár, kontroll terminál, keresési út).

24 A user area elemei II. Összetett adatelemek:  A folyamathoz tartozó memória (a felhasználói címtartomány) elérésére szolgáló táblázat (címtranszformációs tábla, per-process Region Table).  File-leírók táblázata (per process File Descriptor Table).  Kernel módban használt veremtár (per process Kernel Stack).

25 Összetett adatelemek  Kernel Stack:  verem tár,  kernel (privilégizált) módban futáskor,  (pl.: rendszerhívások, IT).  Region Table:  MMU címtranszformációs táblázat.  File Descriptor Table:  a folyamat által megnyitott file-ok eléréséhez szükséges információ tárolása.

26 A hardver környezet (PCB)  CPU regiszterei.  Utasításszámláló (PC).  Stack pointer (SP).  Processzor-állapotleíró bit-ek (process status word), pl. carry (átvitel) bit.  Memóriakezelő egység regiszterei (Memory Management Units, MMU).  Lebegőpontos egység (Floating Point Units) regiszterei.

27 Folyamatok memóriája a UNIX-ban

28 Folyamatok memóriája  Egyszerre több folyamat a fizikai memóriában.  Fogalmak:  logikai memóriakép,  fizikai memóriakép,  virtuális memóriakezelés/tárcsere.  Az OPR feladata:  memória cím–memória tartalom összerendelés,  memória tartalom fizikai memóriába mozgatása.

29 Memória használat Program kód: –statikus, –dinamikus (DLL). Adatterületek: –inicializált (DATA), –nem inicializált (BSS), –heap (dinamikus adatok). Veremtár: –dinamikusan növelhető terület. TEXT DATA STACK OR

30 Logikai-fizikai címtranszformáció

31 Logikai-fizikai címtranszformáció TEXT1 DATA1 STACK1 TEXT2 STACK1 TEXT1 STACK2 DATA1 DATA2 TEXT2 DATA2 STACK2

32 UNIX memória kezelés Logikai – fizikai címtranszformáció: –folyamat leíró adatokban: Region Table, Memory Management Unit.

33 A UNIX OPR feladatainak a megvalósítása

34 Az OPR feladatai A UNIX, mint operációs rendszer a feladatait a következő négy formában látja el: Kernel: –rendszerhívások (system call), –kivétel kezelés (exception), –hardver megszakítások (hardware interrupt), –call-out függvények. Önálló folyamat: –daemon folyamatok.

35 Rendszerhívások  UNIX programozói interface-e. (API: Application Programming Interface.)  Az OPR szolgáltatásainak elérése:  erőforrás foglalás,  rendszerinformációk gyűjtése, elszámolás biztosítása,  védelmi és biztonsági mechanizmusok biztosítása.  Privilegizált futási mód.  Rendszer és folyamat erőforrásainak használata.

36 Kivétel (exception)  Pl.: a nullával történő osztás, memóriaterületről történő kicímzés.  Utasítás végrehajtással szinkron események.  A kivételek kezelése kernel feladat.  HW eszköz(ök) által generált megszakítás(ok).

37 Hardver megszakítások (hardware interrupt)  Perifériák (I/O egység) állapotának megváltozása.  IT kezelés kernel feladat (csak rendszer erőforrásokkal!).  Aszinkron módon fellépő eseményekre a rendszer reagálni tudjon:  interrupt rutin lefuttatása,  nincs környezetváltás (context switch).

38 Az interrupt rutin által végzett tipikus műveletek 1. Végrehajtási mód váltása: user  kernel. 2. Elmenti az aktuális processzor környezetet. 3. IT kiváltó esemény azonosítása. 4. IT kiszolgáló rutin meghatározása. 5. IT rutin hívása. 6. Környezet visszaállítása. 7. Végrehajtási mód váltás: kernel  user.

39 Óra-interrupt Az ütemező hardver-támogatása: – az óra-interrupt: a hardver óra adott időközönként megszakítást okoz. Gyakorisága: a tikk (óra-tikk, CPU-tikk): –10 ms (rendszerfüggő).

40 Az óramegszakítás-kezelő fő feladatai I.  A hardver óra újraindítása, amennyiben ez szükséges.  Az aktuálisan futó folyamat:  CPU használati statisztikájának frissítése,  a prioritás újraszámítása,  az időszelet lejártának kezelése.  SIGXCPU signal küldése az aktuális folyamatnak, amennyiben az túllépte az idő- kvótáját.

41 Az óramegszakítás-kezelő fő feladatai II.  A rendszer óráinak frissítése (napi óra).  A call-out függvények ellenőrzése.  Bizonyos rendszerfolyamatok kezelése (swapper, pagedaemon).  Riasztások (alarm) kezelése.

42 Daemon folyamatok Önálló folyamatokként megvalósított OPR funkciók. Nem privilegizált módban futnak. Rendszerhívásokon keresztül érik el a kernel szolgáltatásait.

43 Folyamatok futási környezete I. Folyamatok logikai memóriaképe:  az operációs rendszer által használt memória,  a folyamat által használt memória. Memória védelme:  a rendszer környezet (system context) és  a felhasználói környezet (user context) megkülönböztetése Java VM (hordozható!), PC emulátorok.

44 Folyamatok futási környezete II. Rendszer futási környezet:  az operációs rendszer memóriaterületei,  a kernel erőforrásai,  a kernel stack. Felhasználói futási környezet:  az alkalmazás adatterületei,  user stack.

45 Folyamatok futási környezete III. A processzor különböző utasítás végrehajtási módjai:  A felhasználói (nem privilegizált) mód (user mode):  néhány speciális utasítás végrehajtása és a memória adott részének elérése tiltott.  A privilegizált, kernel mód (kernel mode).

46 Folyamatok futási környezete IV.

47 Környezetek érvényessége

48 Folyamatok kezelése Összefoglalás

49 A fork rendszerhívás kiadása a szülő által. Területfoglalás a háttértáron. PID generálás a gyerekfolyamatnak. Proc struktúra foglalás és inicializálás. Címleképezési táblák allokálása. U area frissítése, - új címleképezési táblák. Osztottan használt kódtartomány kezelése. A szülő verem- és adattartományainak duplikálása. Osztottan használt erőforrások kezelése. HW környezet inicializálása, a szülőtől másolva. A folyamat ütemezési sorba helyezése. A gyereknek 0-t, a szülőnek a gyerek PID-t adja vissza, mint visszatérési értéket. Létrehozás

50 Az exit rendszerhívás kiadása a gyerek által. Signal-ok kikapcsolása. Nyitott állományok lezárása. Erőforrások felszabadítása. Statisztika napló kitöltése. Erőforrás használati statisztikák és a kilépési kód elmentése a proc struktúrába. Zombi listára kerülés. Árvák ”átadása” az init-nek. A címtér felszabadítása. SIGCHLD signal küldése a szülőnek. A szülő felébresztése amennyiben alszik. A swtch() rendszerhívással az átütemezés kezdeményezése. Befejezés