Folyamatok linux

A téma sok cikk, hanem az interneten egy kicsit tisztán gyakorlati cikkeket. Arról, hogy milyen a kérdéses gyakorlat, megtudhatja, ha elolvassa ezt a cikket. Azonban csak egy gyakorlat, nem tehetünk - hirtelen még nem olvasta mindezt szürke tömeg elmélet, amely megtalálható az interneten.

A leírásban „folyamat” először a fejlesztés Multix operációs rendszer és számos meghatározásokat, amelyeket a szövegkörnyezettől függően. Folyamat - jelentése:
  1. szakaszában a program végrehajtásának
  2. „Object”, amely számára a CPU időt
  3. aszinkron művelet
Állapotának leírására a folyamat által használt több modell. A legegyszerűbb modell - a modell a három állam. A modell a következőkből áll:
  1. teljesítmény státusz
  2. várjon állam
  3. készenléti állapot

Execution - egy aktív állapotban van, ahol a folyamat az összes szükséges erőforrásokat. Ebben az állapotban, a folyamat közvetlenül a processzor által végrehajtott.

Várakozás - passzív állapotban, ahol a folyamat le van tiltva, akkor nem lehet végrehajtani, mert arra számít, néhány esemény, mint például az adatbevitel vagy engedje el a kívánt eszközt is.

Kész - ez is egy passzív állapot, a folyamat is blokkolva van, de a várakozásokkal ellentétben az állam, akkor nem lesz blokkolva belső okok miatt (várakozás után adatbevitel - ez egy belső, „magán” folyamat probléma - akkor valójában nem várja az adatbevitel és a szabadon végrehajtott - nem ez nem zavarja), és a külső, túl a folyamat miatt. Amikor a folyamat mehet be a készenléti állapotot? Tegyük fel, hogy a folyamat előtt végzett adatbevitel. Egészen addig a pillanatig ő volt a futó állapotban, majd beköltözött tétlen állapotban - meg kell várnia, amíg belépünk a kívánt információkat az eljárás. Ezután a folyamat volt, hogy bemegy egy állam teljesítése, mint az összes kell neki már beírt adatok, de ott volt, mivel nem ő az egyetlen olyan folyamat a rendszerben, miközben ő volt a készenléti állapotban, a „hely a nap” foglalt - Processzor teljesít egy másik folyamat. Akkor a folyamat nincs más választása, mint menni a Ready állam: várjon rá semmit, és ő is végzett nem.

A folyamat folytatásának csak a futó készenléti állapotot. A futó állapotban lehet csak egy folyamat egy processzor. Ha n-feldolgozó gép, akkor képesek egyidejűleg teljesítenek az N folyamatokat.

Az állam a folyamat végrehajtásának mehet akár tétlen vagy készenléti állapotot. Miért van szükség a folyamat lehet tétlen állapotban, már tudjuk - ő csak kell egy kis extra adatok vagy ez vár néhány forrás, például egy eszközt vagy fájlt. A készenléti állapot a folyamat mehet végbe, ha abban az időben annak végrehajtását, a kvantum végrehajtási idő „bal”. Más szóval, az operációs rendszer egy speciális program - ütemező, amely biztosítja, hogy minden folyamat végzik a megszabott időben. Például, van három folyamatokat. Egyikük a futó állapotban. A másik két - a készenléti állapotot. Az ütemező figyeli a végrehajtási időt az első eljárás, ha az „időt”, az ütemező helyezi a folyamat 1 készenléti állapotban van, és a folyamat 2 - működés közben. Aztán, amikor az idő fenntartott a folyamat végrehajtása 2, véget ér, a folyamat 2 üzemkész állapotban van, és a folyamat 3 - a futó állapotban.

modell három állami diagram az 1. ábrán látható.

Egy összetettebb modellt - a modell, amely öt államban. Ebben a modellben két további feltételei: a szülés folyamán, és a halál folyamatát. A születési folyamat - ez a passzív állapot, amikor nincs a folyamat, de készen áll a megjelenése a szerkezet a folyamatot. Az aforizma: „Nem elég, hogy talál egy jó helyet, akkor is tét ki”, hogy ez a születés csak történik „zastolblenie” ez a hely. halál folyamata - a folyamat önmagában nem, de megtörténhet, hogy a „hely”, azaz a szerkezet marad a futó programok listáját. Az ilyen folyamatokat nevezik zobmi és róluk lesz szó ebben a cikkben.

öt modell állapotát diagram látható, a 2. ábrán.

A következő műveletek hajthatók végre a folyamatok:
  1. Létrehozása folyamat - átmenet a születéstől a kész állapotot
  2. Megsemmisítése a folyamat - egy átmenet végrehajtásának állapotáról a halál az állam
  3. Helyreállítási folyamat - az átmenet a készenléti állapotot a végrehajtás állapot
  4. Megváltoztatása a kiemelt egy folyamat - az átmenet végrehajtásához riasztási
  5. Blokkolása a folyamat - az átmenet a készenléti végrehajtásának állapotát az állam
  6. A felébredés folyamat - az átmenet a készenléti állapotban, hogy a kész állapotot
  7. Kezdve a folyamat (vagy a választott) - az átmenetet a készenléti állapotot a végrehajtás állapot
Ahhoz, hogy hozzon létre egy operációs rendszer folyamat, meg kell:
  1. Rendeljen a neve a folyamat
  2. Add információt a folyamat a folyamat listán
  3. Határozzuk meg az elsőbbséget egy folyamat
  4. Ahhoz, hogy egy folyamatirányító blokk
  5. Ahhoz, hogy a folyamat azt a szükséges források

Process hierarchiát hoz létre, mint egy fa. A legtöbb „fő” őse, hogy van, a folyamat a állt a tetején a fa, az a folyamat, init (PID = 1).

Véleményem a fenti elmélet ahhoz, hogy menjen a gyakorlat - azaz a „érzi” az összes folyamat állapota. Persze, még nem tekinthető a fork () rendszer kéri, exec (), exit (), kill () és még sokan mások, de az interneten elég információ róla. Különösen, mi a helyzet ezekkel a kihívásokkal akkor olvassa el a segítség Linux paranccsal férfi villát. Azonban van írva minden a szeretett angol, úgyhogy az átadási (ha szükség van rá) mindig van, hogy kérjen segítséget a WWW.

Figyelemmel kíséri a folyamatot fogjuk használni a felső programot.

Teljes visszavonása a program, azt érthetően vágni. Tekintsük a sorrendben a teljes program kimenete. Az első sor a program megmondja a pontos időt, miközben a rendszer (58 perc), a regisztrált (bejelentkezési) felhasználó (4 felhasználó), az átlagos teljes rendszer terhelése (load average).

Megjegyzés. Összesen átlagos terhelése a rendszer az úgynevezett átlagos száma folyamatok végrehajtás állapot (R), illetve készenléti állapotban a (D). A teljes átlagos terhelés mértük minden 1, 5 és 15 perc alatt.

A második vonal kimenet top programok számolt be, hogy a folyamat listán 52 folyamat 51 közülük alvó (készenléti vagy készenléti), 1 végezzük (én csak 1 processzor) 0 0 zombi folyamatok és leállítási folyamatokat.

A harmadik, negyedik és ötödik sorban tájékoztatást nyújt a CPU, memória használat, és a lapozófájl. Nekünk ezt az információt nem nagyon érdekli, így közvetlenül a folyamat asztalra.

az eljárás különféle információkat a táblázatban. Mi most érdekel oszlop PID (process ID), USER (felhasználó fut a folyamat), STAT (folyamatban állapot) és a Command (parancs, hogy bevezetésre került, hogy elindítsa a folyamatot).

STAT oszlopban tartalmazza a következő értékeket:
    R - a folyamat fut, vagy indításra kész (készenléti állapot)
  • D - a folyamat „féktelen álom” - vár lemez I / O
  • T - eljárást megállítottuk (állítják), vagy vezethető hibakereső
  • S - a folyamat készenléti állapotban (alvó)
  • Z - folyamat-zobmi
  • LT - folyamat negatív értékkel szép
  • N - ez a folyamat pozitív szép érték (szép csapat, megbeszéljük később)

Futtathatóvá teszi a fájlt chmod + x ./process és futtatni ./process. Most megy a másik konzolra (ALT + Fn) és adja meg a ps parancs -a | grep folyamatot. Látni fogja a következő ps kimenetét:

Ez a következtetés az, hogy a folyamat rendelt folyamat azonosítója 4035. Most adja fel -p parancs 4035

Megjegyzés az Állapot oszlopban a folyamatot. Ez tartalmaz egy R-érték, ami azt jelenti, hogy a jelenleg végrehajtott művelet szám 4035.

Most felfüggeszteni a folyamatot - az állami T. lépés a konzol, amely elindította ./process és nyomjuk meg a Ctrl + Z Ekkor megjelenik egy üzenet leállítva.

Most próbálja „csend” a folyamatot. Ehhez először meg kell „kill” neki: megölni 4035. Ezután adjuk hozzá a while ciklus a script sorban ./process alvás 10m, ami azt jelenti, hogy a fog aludni 10 percig. Ezután ismét futtassa a ps parancs -a | grep folyamat, hogy megtanulják a PID a folyamatot, majd - csapat top -p PID. Látni fogja az Állapot oszlopban az S betű, ami azt jelenti, hogy az eljárás a tétlen vagy kész - egyszerűen szólva „alszik”.

Ahhoz, hogy ezt a programot összeállítani, szükségünk van egy gcc fordító:

Azoknak, akik nem telepítették a fordító, a lefordított program itt érhető el.

Ha a program összeállításának futtatni: ./zombie. A program megjeleníti a következő információkat:

Ne feledje, az utolsó számot, és gyorsan váltani egy másik konzolra. Ezután adja meg a top parancs -p 1148

Látjuk, hogy a folyamat listán megjelent zombik 1 (STAT = Z), akik élnek akár 10 másodperc alatt.

Megvizsgáltuk az összes lehetséges állapotát a folyamat. Ez csak azt kell megvizsgálni a parancsot, hogy növelje a kiemelt egy folyamat - Jó csapat. Emelje fel a prioritás a csapat csak a root felhasználó beírja a megfelelő csökkentési együtthatót. Ahhoz, hogy nagyobb prioritást kell adni egy negatív tényező, például szép -5 folyamat

Kapcsolódó cikkek