A létrehozásának szükségességét munkafolyamatok - studopediya

Bármilyen futtatható kódját, valamint a vezető kód fut keretében egy patak. Még nem tárgyalt a módszereket, amelyek a vezető is létrehozhatunk saját patak, így azt feltételezzük, hogy az áramlás, amelyben a vezető kódvégrehajtáskor tartozik egy adott alkalmazás. Ez azt jelenti, hogy az alkalmazás létrehoz egy szálat, hogy végre a kódot, nem a kódot a járművezetők. Ha a vezető kódot állít elő egy hosszú folyamat, vagy a járművezető egy szinkronizációs mechanizmus azzal az elvárással, a kibocsátás néhány forrás, alkalmazás kódját, amelyre a teljesítménynövekedés és a szálak, nem teljesül. Ha ez az áramlás az egyetlen a pályázati eljárás, az alkalmazás „lefagy” program.

Ha a helyzet következett be, a kontroll funkciók egy felső szintű vezető, „csak” a „lógott” alkalmazási program közvetlen kölcsönhatásba lép a driver. Ebben az esetben az alkalmazás tisztában van ezzel a lehetőséggel, és lehet, hogy a művelet interakció a vezető (olvasás, írás, küld vezérlési kódok) egy külön téma. Ebben az esetben a gépjárművezető nem kell aggódnia az alkalmazást. Ez a helyzet azonban meglehetősen ritka. Nagyon gyakran, a vezető kód fut keretében véletlenszerű áramlását, azaz tetszőleges áramlását a rendszerben. Ez az üzenet nem tud semmit a mi vezető és a fenti helyzet elfogadhatatlan. Ebben az esetben a vezető létre kell hoznunk saját patak rendelkezésre arra, hogy a hosszú távú kezelés és várakozási erőforrás felszabadítás.

Egy másik lehetséges helyzetet, amely előírja a kötelező létrehozását flow - amikor a járművezetőnek meg kell végre műveleteket IRQL szinten = DISPATCH_LEVEL).

[12.2] Rendszer munkafolyamatok (Rendszer szálat WorkItems)

Alatt NT rendszer indítása teremt több szálat a System folyamat. Ezek az áramok használata csak az a munka elvégzésére által kért egyéb szálak. Az ilyen áramlások a leghasznosabbak az esetekben, ahol az áramlás emelkedett IRQL elvégzéséhez szükséges munkát IRQL PASSIVE_LEVEL szinten.

Elvileg lehet létrehozni egy új téma, de létrehoz egy új szál ütemező és a tervezés több erőforrást igényel, mint egy meglévő patak. A legtöbb operációs rendszer szabványos alkatrészek, például a fájlrendszer felhasznált összetevők igényeinek teljes rendszer munkafolyamatokat.

Vannak olyan helyzetek, amelyekben a rendszer munkafolyamatok elfogadhatatlan, tekintettel a szervezetük. Egy ilyen helyzet, hogy szükség van a hosszú távú (több száz mikroszekundum) feldolgozása a falon vagy a hosszú várakozás a kiadás egy forrás vagy esemény. Ezekben az esetekben a vezetőnek meg kell létrehozni a saját téma.

Háromféle rendszer munkafolyamatok: Késleltetett (késleltetett), Critical (kritikus) és hiperkritíkus (szuperkritikus). Minden típusú szálak létrehozott IRQL PASSIVE_LEVEL szinten. Minden típusú áramlási más lesz:

· A szálak száma típusú

· Alap ütemezési prioritás flow típusú

· Minden működő elemek

A száma minden egyes típusú folyamok kapacitásától függ, és az operációs rendszer típusát. Az 1. táblázat mutatja a számot az áramlások, és ütemezési prioritás az alap OS Win2K Professional és Server.

Táblázat 1.Number rendszer szálat

Típus munkafolyamat

Meg kell jegyezni, hogy a használata egyetlen típusú áramlási hiperkritíkus nem dokumentálták. OS használja ezt a szálat, hogy végre a funkció - a tisztítást, amely megszabadítja folyik, amikor befejeződött.

A beállítás a művelet tagja pedig jelzi a flow típusú, amely a működtető tag.

Dolgozni egy rendszert szálat, van 2 db funkciók - a funkciók az Ex előtagot. és funkciók előtaggal Io. Funkciók Ex előtag használt OS NT 4.0 és korábbi verziói, és WIN2K elavultnak tekinthető.

Mindenesetre, az első vezető kell inicializálni a működtető tag útján ExInitializeWorkItem () vagy IoAllocateWorkItem (), helyezzük a munka elem a sorban keresztül ExQueueWorkItem () vagy IoQueueWorkItem (), illetve a start funkció meghatározott működési tagja, ezt a funkciót kell hagyják források dolgozó elem keresztül ExFreePool () vagy IoFreeWorkItem ().

Kapcsolódó cikkek