Létrehozása folyamatok - studopediya

Hozzon létre egy folyamat - elsősorban azt jelenti, hogy hozzon létre egy kart a folyamatban, a minő-stve amelyek egy vagy több információs struktúrák, amely tartalmazza az összes információt a folyamat, a szükséges operációs rendszer kezelni azt.







Három fontos esemény létrehozásához vezető folyamatok:

- Indítsa el a rendszert.

- Munkavégzés a folyamat a rendszer hívást létre egy folyamat.

- felhasználói kérés létrehozásának folyamata.

Minden esetben, a jelenlegi aktív folyamat küld egy rendszer hívás, hogy új eljárást.

Az operációs rendszer, hogy minden egyes folyamat van rendelve egy folyamat azonosító (PID - Process IDentifier)

Amikor létrehoz egy folyamatábra automatikusan elindul (ez az úgynevezett fő). Fékezéskor a fő áramlási és a folyamat automatikusan leáll. Mivel ez a folyamat nem áramlik céltalanul veszi forrásokat, a rendszer automatikusan törli a feleslegessé vált eljárás. Az elsődleges folyamat jön létre a rendszer indításakor, ugyanúgy létre az elsődleges folyamat, és ez megteremti áramlását.

Az alkalmazás is létre egy folyamat a fő stream, hogy erre a célra CreateProcess () függvény. A prototípusa a winbase.h fájl inspirálja horror fény az első találkozó vele:

BOOL CreateProcess (LPCSTR lpApplicationName,

Az első érv - lpApplicationName - nevét adja meg a futtatható fájl jön létre a folyamatot. Ha a fájl neve kiterjesztés nélkül adott, akkor várható, hogy bontsa ki a * .exe, amely csatlakozik a fájl nevét. Ha a fájlnév végén egy pont (.), Akkor a * .exe nem csatlakozhat. Keresés a fájl végrehajtható program a Windows a következő sorrendben.

1. A könyvtár, ahová letöltötte az alkalmazást.

2. Az aktuális könyvtárban.

3. A Windows rendszer könyvtárába.

4. A Windows könyvtárban, amely visszaadja GetWindowDirectory () függvényt.

5. A felsorolt ​​könyvtárak a PATH környezeti változó, amely meghatározza a sorrendben keresési bennük.







A második érv - lpCommandLine határozza továbbítja az aktát parancssorban. Ha lpApplicationName NULL, akkor a sáv-st (első tér előtt) lpCommandLine elem nevét tartják végrehajtható.

A harmadik és negyedik érv - lpProcessAttributes, lpThreadAttributes - meghatározza a biztonsági jellemzőket pro-folyamat és az áramlás volt. Windows 9x ezek az értékek NULL.

Az ötödik mező - bInheritHandles - állítja engedély / tiltás öröklés fogantyúk hívó folyamat, ha TRUE. Ezzel az új eljárással örökli minden örökölhető fogantyú nyílik a hívó folyamat. Mi örökölte a fogantyút, hogy ugyanazokat az értékeket és a kiváltságok, mint az eredeti diskriptorov.

A hatodik mezőt - dwCreationFlag - kombinációja bit zászlók, hogy ellenőrizzék a teremtés folyamata és a kinevezését prioritás számára. Ez az opció lehetővé teszi, hogy a prioritási osztálytól a folyamat az objektum mellett a mód annak végrehajtását. Két csoport a zászlók:

- zászlók a teremtés folyamata;

- Zászlók prioritási szintjének beállítása.

Hetedik érv - lpEnvironment - egy mutatót a beállítás környezet, az új eljárás. Ez a lista a hozzárendelés kifejezések formájában változó = érték. lezáró null karaktert. Általában ez NULL. Ez azt jelenti, hogy a generált folyamat örökli a környezeti változókat a szülő folyamat. Ha ez az érv nem NULL, akkor tartalmaznia kell egy mutatót a memória blokk tartalmaz-e zhaschy környezeti változók, amit használni fog generált adó folyamatot.

A nyolcadik érv funkció - lpCurrentDirectory - egy mutatót tartalmazó karakterlánc aktuális meghajtó és könyvtár a létrehozott folyamat. Ha ez az érv NULL, a generált folyamat örökli az aktuális meghajtó és könyvtár a szülő folyamat. Egyébként ez az érv kell mutatnia egy string, amely meghatározza a teljes elérési utat a telepítés az aktuális könyvtárban, beleértve a meghajtóra és.

A kilencedik érv - lpStartupInfo - egy mutató a szerkezet típusa STARTUPINFO, amely leírja, hogyan kell megjeleníteni az alkalmazás főablakát.

CreateProcess () függvény argumentum tizedik - lpProcessInformation - jelezve a szerkezet típusa PROCESS_INFORMATION, amelyben információ van rögzítve a gyermek folyamat létrehozása után. Ez a szerkezet van leírva, amely egy fogantyút létrehozott folyamatábra fogantyú, egyedi azonosítók, és a folyamatábra.

Meg kell összpontosítani az utolsó két területen. Az a tény, hogy a Win32, ha az azonosító megjelent, újra használni. Tegyük fel például, hogy a folyamat rendelt azonosító 0x00001111. Miután a folyamat azonosítója felszabadul, és néhány új eljárást újra kell rendelni ugyanazt az azonosítót 0x00001111. Ezt figyelembe kell venni, amikor az írás programokat.