Qqberci Creative Commons License 2005.03.29 0 0 14

Nem. A REGIONAL tipusú file-oknál tulajdonképp egy szektor-emuláció történik és a rekord helyét léegalább sáv-pontosságig (Reg(3)) illetve teljes rekord-pontosságig (reg(1) és reg(2)) számítással határozza meg a rendszer. A Reg(3) sávon belül már ugyanúgy keres, mint az indexelt file.

 

A ISAM kulcs bárhol lehet a rekordban(KEYLOC paraméter), mert felíráskor a rekord adatmezejéből kiemelődik a (felhasználói program által nem hozzáférhető) kulcsmezőbe (a C-K-D) struktúrából a felhasználói program közvetlenül csak a "D", "Data" mezőt éri el).

 

ISAM-ban nem lehet dupla kulcs (ellentétben a VSAM-KSDS-sel) és a file feltöltése a kulcsok szigorúan monoton növekvő sorrendjében történik. Feltöltéskor a sávokon (TRKOFL) illetve a cilinderenek (CYLOFL) lehet hagyni szabad helyeket a direkt update módon beszúrt rekordoknak. Amíg ez a heyl el nem fogy, a file működése nem lassul észrevehetően. Egyébként célszerű a file-t (ha direkt update megengedett rá) időnként reorganizálni. Ez egy szekvenciális outputot és egy újra betöltést jelent és ilyenkor az update-re fenntartandó területek újra felszabadulnak.

 

A hardverrel igen sok mindent "meg lehet beszélni", mert a file-kezeléshez közvetlenül kapcsolódó csatornaprogramok mellett a lemezvezérlőt is lehet "idomítani" a SetFileMask parancsban átadott extenthatár-információval.

 

A file-kezelésnek egyébként két szintje van: a logikai (LIOCS), amikor a rendszer készen adja a szükséges csatornaprogramokat, a felhasználói programnak csak a file logikai struktúráját leíró DTF vagy DBC táblát kell tartalmaznia, és a fizikai (PIOCS), amikor a felhasználó maga állítja össze a teljes csatornaprogramot és egy CCB-vel csupán azt közli, hogy mely berendezésre akarja azt futtatni és hogy hol lesz a csatornaprogram kezdőcíme.

 

Hogy mennyire hatékony ez a kettős utasításkészlet (ALU + csatorna), az abból látszik, hogy például egy szalagfile listázása sornyomtatóra üres, oprendszer nélküli gépbe pultról "begombolva" mindössze 72 byte-ot foglal le (+ az adatterület, ahova a szalagrekordot olvassa). Ugyanez lemezre egy kicsit bonyolultabb, elvisz 120 byte-ot...

 

Ha egy be-IPL-ezett gépen "tisztességesen" használunk file-okat, akkor a file kezelése (hacsak magunk nem írtunk elő fizikai szintű kezelést - ami azért néha a mazochizmus határás súrolja) nem része a felhasználói programnak. LIOCS használatakor a DTF fordításakor generálódó modulnév hozza be linkeléskor a megfelelő csatornaprogramot és CCB-t tartalmazó kezelőmodult. Ha valamilyen tranzakciókezelő rendszert (CICS, IMS, TUBES) használunk, akkor a programba még ennyi sem kell, minden erőforráskezeléssel kapcsolatos feladatot elvesz a programtól a tranzakciókezelő ("rendszer a rendszerben"). Így egy átlagos bonyolultságú tranzakciós program lefordítva, belinkelve néhány kByte szokott lenni. Ráadásul ezek reentrant programok, tehát önmagukkal párhuzamosan több független adathalmazzal is futhatnak anélkül, hogy magát a programkópiát többszörözni kellene.

Előzmény: NevemTeve (13)