Szállítószalagok és sorban üzenetek (programcsatornák)

Szállítószalag (futó cső- programváltó (kapcsolat), vagy ahogy néha hívják, transzporter) egy eszköz, amelynek segítségével képes mintegy cserélt adatok folyamatok között. A működési elve a szállítószalag alapul fur-zárására I / O, mellyel dolgozni vUNIX fájlokat, hogy a feladata adatoknak, viselkedik, mintha ez adatot ír egy fájlt, míg a feladatot, amelyre szánják Infor- mációk, olvassa el a fájlt. írni és olvasni műveletek nem végzik el a rekordokat, ahogy az a normál fájlok, és egy patak bájt, mint szokás volt UNIX-alapú rendszerekhez. Így a funkciók ozítés, elégedett a csatorna és az olvasás is, ugyanazok, mint amikor dolgozik fájlokat. Tény, hogy a csatorna egy adatfolyam közötti két-gyűrűt (vagy több) folyamatok. Ez egyszerűsíti a programozás és kiküszöböli a pro-programozók használatát minden új mechanizmusokat. Tulajdonképpen szállítószalagok nincsenek kilapozódott és egy puffer memória, amely működik printsipuFIFO, azaz az alapján a szokásos sorban. Azonban nem szabad összekeverni a üzenet várakozási szállítószalagok; Utolsó valósítják meg másképpen és eltérő képességekkel.

Az 1 szállítószalag egy bizonyos méretet, amely nem haladja meg a 64 KB, és működteti ciklikusan. Emlékezz végrehajtási sorban tömbök, ha az IME-pointerek elején és a végén a sorban, amely ciklikusan mozog a tömb. Van egy bizonyos tömb és két mutató, az egyik mutató az első elemre (az úgynevezett hagyományos, fej), és a második - az utóbbi (call egotail).

A kezdeti pillanatban mindkét mutató értéke nulla. Ezenkívül az első eleme a rendőr üres sorban okozza, hogy a mutató értéke 1 headitailprinimayut (az első elem jelenik meg a tömb). Az ezt követően egy új elem értékét megváltoztatja a második mutató mert rámutat a hely az utolsó elem a sorban. Olvasás (eltávolítás) az elem (olvasni és törölni mindig az első eleme a set-sósav viszont) szükségessé teszi, hogy módosítsa az értéket ukazatelyahead. Ennek eredményeként írási műveletek (összeadás) és az olvasás (eltávolítás) az a tömb elemeinek modellezése az összes elem, mutató kerül át az elejétől a végéig a tömbben. Amikor elérte az index értéke a tömb index értéke az utolsó elemének indexe ismét válik (amennyiben ez még nem történt tömb túlcsordulás, vagyis az elemek száma a sorban nem lesz nagyobb, mint az elemek száma a tömbben). Azt lehet mondani, hogy úgy tűnik, hogy zárható a ringben tömb rendezése körmozgás ukazateleyheaditail, hogy a pálya első és utolsó eleme a sorban. Ska zannoe ábrán látható. 6.5. Ez, és működteti a gázvezeték.

Szállítószalagok és sorban üzenetek (programcsatornák)

Ábra. 6.5. sorban a tömb

Ahogy leírta az információs struktúra csatorna azonosító, méret és két mutató. Szállító jelentenek a rendszer erőforrásait. A kezdéshez a szállítószalag, a folyamat először rendelni azt az operációs rendszert, és kap a rendelkezésére áll. Az eljárások know-id fikator szállítószalag képes kommunikálni rajta.

Most tekintsük az alapvető rendszert kell dolgozni velük. Példaként érkező hívásokat fogadni APIOS / 2 (a következő fejezetben fogjuk kihasználni őket-emsya). A hagyományos hívások dolgozni csatorna (szállítószalagok) jelennek meg a szakasz, amely leírja rendszerek architektúrája (lásd a fickó. 8). Tehát:

 funkció létrehozása csővezeték:

DosCreatePipe (ReadHand1e, WriteHandle, PipeSize);

ahol ReadHandle- leíró olvasni a szállítószalag, WriteHandle- leíró rögzítésére egy szállítószalag, PipeSize- mérete szállítószalag.

 olvasási funkciót a csővezeték:

DosRead (ReadHandle, (PVOID) Inform, sizeof (Inform), BytesRead formát);

 rögzítési funkció a csővezeték:

DosWrite (WriteHand1e, (PVOID) Inform, s1zeof (Inform), BytesWrite);

ahol WriteHandle - kezelni az írás a csővezetékbe, BytesWrite- bájtok számát írva.

Olvassa el a vezeték képes feldolgozni egyetlen, aki ismeri az azonosító a megfelelő szállítószalag. Amikor dolgozik a szállítószalag adatokat közvetlenül esett bele. Ismét megjegyezzük, hogy korlátai miatt a mérete konveye Mr. programozók szembesülnek korlátozásokat a méret a továbbított négy rez neki üzeneteket.