Blok ovládání jednotky - Unit Control Block

v Sálové počítače IBM operační systémy z OS / 360 a jeho nástupci linka, a Blok ovládání jednotky (UCB) je struktura paměti nebo řídicí blok, který popisuje jakýkoli singl vstup výstup periferní zařízení (jednotka), nebo vystavení (alias), do operačního systému. Určitá data v rámci UCB také dávají pokyny Vedoucí vstupu / výstupu (IOS) k dalšímu fyzickému ovládání zařízení používat kromě normálního zpracování IOS i určité uzavřené podprogramy.

Některé další operační systémy mají podobné struktury.

Přehled

V době počáteční načtení programu (IPL) proudu[A] MVS systémy, Nucleus Initialization Program (NIP) čte potřebné informace ze souboru I / O Definition File (IODF) a používá je k sestavení UCB. UCB jsou uloženy v systémové paměti, v Rozšířená oblast systémové fronty (ESQA). Po dokončení IPL jsou UCB vlastněny podporou vstupu / výstupu. Některé z informací uložených na UCB jsou: typ zařízení (disk, páska, tiskárna, terminál atd.), Adresa zařízení (například 1002), identifikátor subkanálu a číslo zařízení, ID cesty kanálu (CHPID), které definuje cestu k zařízení, u některých zařízení sériové číslo svazku (VOLSER) a velké množství dalších informací, včetně dat správy úloh OS.

Zatímco se obsah UCB změnil s vývojem MVS, koncept se nezměnil. Je to reprezentace pro příkazový procesor kanálu externího zařízení. Uvnitř každého UCB je reprezentace informačního subkanálového bloku, který se používá v instrukci SSCH assembleru (vložený do IRB, pro vstup nebo vložený do ORB, pro výstup),[1] spustit řetězec příkazů kanálu, známých jako CCW. CCW jsou zařazeny do fronty na UCB s makro rozhraním STARTIO,[2] ačkoli tento odkaz NEPROVÁDÍ makro STARTIO, protože tato instrukce makra NENÍ IBM -podporované rozhraní, bez ohledu na skutečnost, že toto rozhraní zůstalo stejné po dobu nejméně posledních tří desetiletí. The STARTIO Rozhraní buď zahájí operaci okamžitě, pokud bude fronta kanálů prázdná, nebo zařadí frontu požadavku na frontu kanálů na odložené provedení. Takové odložené provedení bude zahájeno okamžitě, když je požadavek v čele fronty a zařízení bude k dispozici, i když je v daném okamžiku pod kontrolou jiný program. Takový je základní design Vedoucí vstupu / výstupu (IOS).

UCB se vyvinul jako kotva pro uchovávání informací a stavů o zařízení. UCB má v současné době pět oblastí používaných pro externí rozhraní: Device Class Extension, UCB Common Extension, UCB Prefix Stub, UCB Common Segment and the UCB Device Dependent Segment.[3] Ostatní oblasti jsou pouze pro interní použití. Tyto informace lze číst a použít k určení informací o zařízení.

V nejranějších implementacích tohoto OS byly UCB (základy a rozšíření) sestaveny během SYSGEN a byly umístěny do prvních 64 kB systémové oblasti, protože vyhledávací tabulka zařízení I / O sestávala z 16bitového typu Q ( tj. přemístitelné) adresy. Následná vylepšení umožnila rozšíření nad 64kB (65 536 bajtů) řádek, čímž se ušetřilo místo pro další nadace UCB pod 64kB řádkem a také se tím zachovala architektura vyhledávací tabulky UCB (převod CUu na nadaci UCB adresa).

Zpracování paralelních I / O operací

UCB byly zavedeny v 60. letech s OS / 360. Potom bylo zařízení adresované UCB typicky pohybující se hlava pevný disk nebo a pásková jednotka, bez interního mezipaměti. Bez něj bylo zařízení obvykle sálovým počítačem výrazně překonáno kanálový procesor. Nebyl tedy žádný důvod provádět více operací vstupu / výstupu najednou, protože by bylo nemožné, aby zařízení fyzicky zvládlo. V roce 1968 IBM představila pevné disky 2305-1 a 2305-2, které měly 8 expozice (alias adresy) na disk a podpora OS / 360 poskytla UCB na expozici, aby bylo možné povolit více souběžných programů kanálu. Podobně pozdější systémy odvozené od OS / 360 vyžadovaly další UCB pro každý přidělený virtuální svazek v a Systém velkokapacitního úložiště 3850 (MSS) a pro každou expozici na 3880-11, 3880-13 a jejich nástupcích.

Manažer pracovní zátěže a UCB

Když byl původně implementován, operační systém neměl žádný skutečný způsob, jak zjistit, zda čekající I / O byl více či méně důležitý než jakýkoli jiný čekající I / O. Byly zpracovány I / O do zařízení první dovnitř, první ven. Správce pracovního vytížení (WLM) byl představen v MVS / ESA 5.1. OS / 390 přidána „chytrá“ fronta I / O. Umožnilo operačnímu systému pomocí informací poskytnutých WLM programátorem systémů určit, které čekající I / O jsou více či méně důležité než jiné čekající I / O. WLM by pak v jistém smyslu posunul čekající I / O ve frontě dále nahoru nebo dolů, takže když už zařízení nebylo zaneprázdněno, nejdůležitější čekající I / O by zařízení dostalo jako další. WLM vylepšil I / O reakci na zařízení pro důležitější zpracovávanou práci. Stále však existoval limit jednoho I / O na jeden UCB / zařízení v jednom okamžiku.

Objemy paralelního přístupu (PAV)

Protože najednou bylo možné spustit pouze jednu sadu příkazů kanálu nebo I / O. To bylo v pořádku v šedesátých letech, kdy byly CPU pomalé a I / O bylo možné zpracovávat jen tak rychle, jak to CPU dokázaly zpracovat. Jak systémy vyzrály a rychlost CPU výrazně předčila vstupní kapacitu I / O, stal se vážným problémem přístup k zařízení, které bylo serializováno na úrovni UCB.

Objem paralelního přístupu (PAV) umožňují UCB klonovat se, aby umožnily současný provoz více I / O. S příslušnou podporou hardwaru DASD poskytuje PAV podporu více než jednoho I / O jednoho zařízení najednou. Udržovat zpětná kompatibilita, operace jsou stále serializovány pod úrovní UCB. Ale PAV umožňuje definici dalších UCB ke stejnému logickému zařízení, z nichž každý používá další alias adresa. Například zařízení DASD na adrese základna adresa 1000, může mít aliasové adresy 1001, 1002 a 1003. Každá z těchto aliasových adres by měla svůj vlastní UCB. Protože nyní existují čtyři UCB k jednomu zařízení, jsou možné čtyři souběžné I / O. Zápisy ve stejné míře, oblast disku přiřazená k jedné souvislé oblasti souboru, jsou stále serializovány, ale k jiným čtením a zápisům dochází současně. První verze diskového řadiče PAV přiřadí PAV UCB. Ve druhé verzi zpracování PAV čas od času Work Load Manager (WLM) přiřadí PAV novým UCB. Ve třetí verzi zpracování PAV, u řady řadičů DS8000, každý I / O používá jakýkoli dostupný PAV s UCB, který potřebuje.

Čistým účinkem PAV je snížení časové složky IOSQ doby odezvy disku, často na nulu. Od roku 2007, jediným omezením PAV je počet aliasových adres, 255 na základní adresu a celkový počet zařízení na logickou řídicí jednotku, 256 počítací základny plus aliasy.

Statické versus dynamické PAV

Existují dva typy aliasů PAV, statické a dynamické. Statická aliasová adresa je definována jak v hardwaru DASD, tak v systému z / OS, aby odkazovala na konkrétní jednu základní adresu. Dynamický znamená, že počet aliasových adres přiřazených konkrétní základní adrese kolísá podle potřeby. Správa těchto dynamických aliasů je ponechána na WLM, běžící v cílovém režimu (což je vždy případ podporovaných úrovní) z / OS ). Ve většině systémů, které implementují PAV, je obvykle kombinace obou typů PAV. Jeden, možná dva, statické aliasy jsou definovány pro každou základní UCB a je definována spousta dynamických aliasů pro správu WLM, jak uzná za vhodné.

Protože WLM hlídá aktivitu I / O v systému, určuje WLM, zda je zpožděno vysoce důležité pracovní vytížení kvůli vysokému soupeření o konkrétní zařízení s povoleným PAV. Konkrétně pro diskové zařízení musí být základna a alias UCB nedostatečné k vyloučení času fronty IOS. Pokud existuje velké spory a odhady WLM by to pomohlo pracovní zátěži snáze dosáhnout svých cílů, pokusí se přesunout aliasy z jiné základní adresy do tohoto zařízení.

Dalším problémem může být, že určité výkonnostní cíle nejsou splněny, jak je uvedeno ve třídách služeb WLM. WLM poté vyhledá alias UCB, které zpracovávají práci pro méně důležité úkoly (třída služeb), a pokud je to vhodné, WLM znovu přidruží aliasy k základním adresám spojeným s důležitější prací.

HyperPAV

Akce WLM při přesunu aliasů z jednoho diskového zařízení na jiné zabere několik sekund, než se projeví. V mnoha situacích to není dost rychlé. HyperPAV jsou mnohem citlivější, protože získávají UCB ze skupiny po dobu trvání jediná operace I / O, než jej vrátíte do bazénu. Čeká se, až WLM zareaguje.

Dále, protože s HyperPAV je UCB získáván pouze po dobu trvání jediného I / O, je zapotřebí menší počet UCB pro obsluhu stejné pracovní zátěže ve srovnání s Dynamic PAV. Pro velké z / OS obrázky UCB mohou být vzácným zdrojem. HyperPAV tedy mohou v tomto ohledu poskytnout určitou úlevu.

Jiné operační systémy

Podobný koncept v Unixový systems je jádro devinfo struktura řešená kombinací hlavního a vedlejšího čísla prostřednictvím a uzel zařízení.

Digitální VMS operační systém používá pro podobné účely identicky pojmenovanou strukturu UCB. Pro každé I / O zařízení je vytvořen UCB. Data v UCB zahrnují číslo jednotky zařízení (část názvu zařízení) a listhead, na který lze čekat na čekající I / O požadavky. UCB může mít příponu definovanou ovladačem zařízení, ve které může ovladač uchovávat data definovaná ovladačem, která jsou vytvořena pro každé zařízení.[4]

The objekt zařízení v I / O subsystému Windows NT rodinný operační systém je další velmi podobná struktura.

Poznámky

  1. ^ Ve starších systémech byly UCB součástí Nucleus a byly sestaveny během SYSGEN proces.

Reference

  1. ^ „Princip fungování z / Architecture“. PubLibZ.Boulder.IBM.com. IBM. 04.05.2004. p. 14.3.9. Citováno 2017-01-03.
  2. ^ „MVS Programming: Authorized Assembler Services Reference“ (PDF). PubLibZ.Boulder.IBM.com (12. vydání). IBM. Září 2009. Citováno 2017-01-03.
  3. ^ „Z / OS Release 11 MVS Data Areas“ (PDF). PubLibZ.Boulder.IBM.com. IBM. 2009. Citováno 2017-01-04.
  4. ^ Goldenberg, Ruth; Saravanan, Sara (1994). Interní a datové struktury OpenVMS AXP. Digitální tisk. p. 753. ISBN  978-1555581206. Výkonný pracovník vytvoří řídicí blok jednotky (UCB) pro každé I / O zařízení připojené k systému.