IEFBR14 - IEFBR14

IEFBR14 bir IBM ana bilgisayar yardımcı program. Hepsinde çalışıyor IBM ana bilgisayar türetilen ortamlar OS / 360, dahil olmak üzere z / OS. Döndüren bir yer tutucudur çıkış durumu sıfır, benzer doğru komut vermek UNIX benzeri sistemleri.[1]

Amaç

Tahsis (Başlatma olarak da adlandırılır)

OS / 360 ve türetilmiş ana bilgisayar sistemlerinde, çoğu program dosyaları asla belirtmez (genellikle veri kümeleri ) doğrudan, ancak bunun yerine bunları dolaylı olarak İş Kontrol Dili (JCL) programları çağıran ifadeler. Bu veri tanımı (veya "DD") ifadeler bir" eğilim "(DISP = ...) dosyanın nasıl yönetileceğini gösteren parametre - ister yeni bir dosya oluşturulacak, ister eski bir dosya yeniden kullanılacak; ve dosyanın tamamlandıktan sonra silinmesi mi yoksa saklanması mı gerektiği; vb.

IEFBR14 oluşturuldu çünkü DD deyimleri dosyaları kolayca oluşturabilir veya silebilir, İş Yönetimi sisteminin belirli bir özelliği nedeniyle çalıştırılacak bir program olmadan bunu yapamazlar, bu da Başlatıcı'nın bir programı gerçekten yürütmesini gerektirir, bu program etkin bir şekilde bir program olsa bile boş ifade.[2] JCL'de kullanılan programın aslında dosyaları oluşturmalarına veya silmelerine neden olması için kullanması gerekmez - DD DISP = ... şartname tüm işi yapar. Bu nedenle, bu rolü doldurmak için çok basit bir hiçbir şey yapmama programı gerekliydi.

IEFBR14 böylece JCL kullanılarak bir veri seti oluşturmak veya silmek için kullanılabilir.

Serbest bırakma (Fesih olarak da adlandırılır)

IEFBR14'ü çalıştırmanın ikinci bir nedeni, belki de o işin JCL'sindeki bir hata veya işin hatalı sonuçlanması nedeniyle önceki bir işten takılı bırakılmış aygıtların (genellikle bantlar veya diskler) bağlantısını kesmekti. Her iki durumda da, sistem operatörlerinin sık sık cihazları sökmesi ve başlatılan bir görev olması gerekir. DEALLOC - genellikle bu amaç için sağlanmıştır.

Komutu girmeniz yeterli

S DEALLOC

sistem konsolunda, yalnızca bir taneden oluşan başlatılan görevi çalıştırırdı. adım. Bununla birlikte, İş Yönetiminin tasarımı nedeniyle, başlatma komutunun başarısız olması için DEALLOC, sistemin prosedür kitaplığı SYS1.PROCLIB'de gerçekten mevcut olmalıdır.

Ayrıca, tüm bu tür başlatılan görevler zorunlu İşletim sisteminin İş Yönetimi bileşenindeki "Başlatılan Görev Kontrolü" (STC) modülü yalnızca tek adımlı işleri kabul ettiğinden ve istisnasız tüm çok adımlı işlerde başarısız olduğundan tek bir iş adımı olabilir.

// STEP01 EXEC PGM = IEFBR14

Ayrıştırma ve doğrulama

En azından z / OS'de, başka bir programı yürütmek için dallanma, çağıran programın bu noktada sözdizimi hataları için değerlendirilmesine neden olur.[1]

Adlandırma

"IEF" bir konvansiyondan türemiştir. ana bilgisayar bilgisayarlar IBM tarafından sağlanan programların işleve veya oluşturucuya göre gruplandırıldığını ve her grubun üç harfli bir önek paylaştığını. OS / 360'ta, ilk harf hemen hemen her zaman "I" idi ve İş Yönetimi grubu (IEFBR14 dahil) tarafından üretilen programların tümü "IEF" önekini kullanıyordu. Diğer yaygın önekler arasında veri kümesi yardımcı programları için "IEB", sistem yardımcı programları için "IEH" ve program bağlantısı ve yükleme için "IEW" yer alır.[3] Diğer ana bileşenler (ve hala da öyledir) "IEA" (İşletim Sistemi Sorumlusu) ve "IEC" (Giriş / Çıkış Süpervizörü ).

Aşağıda açıklandığı gibi, sadece işletim sistemine dönmek için programın temel işlevi "BR 14" idi. Bir program adının bu kısmı genellikle anımsatıcıydı - örneğin, IEBUPDTE, kaynak kod dosyalarına güncellemeleri (UPDTE) uygulayan veri kümesi yardımcı programıdır (IEB) ve IEHINITT, manyetik bant etiketlerini (INIT) başlatan (INIT) sistem yardımcı programıdır (IEH). T).

Aşağıdaki "Kullanım" bölümünde daha ayrıntılı açıklandığı gibi, "BR14" adı, IBM assembler dili talimatından gelir "Bçiftlik (adrese) Register 14", kongre tarafından" bir altyordam ". OS / 360'ın ilk kullanıcılarının çoğu IBM Assembler Language'a aşinaydı ve bunu hemen fark ederdi.

Kullanım

Misal JCL olabilir :

//IEFBR14İŞACCT,'VERİ KÜMESİNİ SİL',MSGCLASS=J,SINIF=Bir//STEP0001EXECPGM=IEFBR14//DELDD    DD DSN=xxxxx.yyyyy.zzzzz,//DISP=(MOD,SİL,SİL),BİRİM=DASD

Bölümlendirilmiş Veri Kümesi oluşturmak için:

//TZZZ84RİŞBİLDİR=&SYSUID,MSGCLASS=X//ADIM01EXECPGM=IEFBR14//DD1       DD DSN=TKOL084.DEMO,DISP=(YENİ,CATLG,SİL),//DCB=(RECFM=FB,LRECL=80,MAVİ BOYUT=80,DSORG=PO),//UZAY=(TRK,(1,1,1),RLSE),//BİRİM=SYSDA

Uygulama

IEFBR14 başlangıçta tek bir talimattan oluşuyordu: "Şube Kayıt Olma" 14. Kayıt için kullanılan anımsatıcı IBM Montajcı BR idi ve dolayısıyla adı: IEF BR 14. BR 14 aynı şekilde BCR 15,14'e eşdeğerdir (Her Zaman Dallanma [maske = 15 = her zaman] genel amaçlı kayıt 14'te bulunan adrese). BR, BCR 15 için sözde bir talimattır. Sistem birleştiricisi, kanonik System / 360 talimatlarının mantıksal eşdeğerleri olarak bu tür sözde talimatların birçok durumunu kabul eder. Kanonik örneği BR 14 dır-dir BCR 15,14.

OS / 360 ve onun soyundan gelenler için bağlantı kuralı, bir programın, tamamlandığında kontrolün geri döneceği adresi içeren kayıt 14 ve çağrılan programın belleğe yüklendiği adresi içeren kayıt 15 ile çağrılmasını gerektirir; tamamlandığında, program 15 siciline bir dönüş kodu yükler ve ardından kayıt 14'te bulunan adrese dallanır. Ancak, başlangıçta IEFBR14 değil IEFBR14 başlangıçta kukla bir kontrol bölümü olarak kullanıldığından, çalıştırılabilir bir modül olarak değil, arayana geri dönen bir bölüm olduğundan, bu özellikler göz önünde bulundurularak kodlanmıştır.

Programın orijinal sürümü, kayıt 15'i hiç değiştirmedi, çünkü orijinal uygulaması, şu sıralar boyunca oluşturulan belirli yük modüllerinde bir yer tutucuydu. Sysgen (sistem üretimi), çalıştırılabilir bir program olarak değil. IEFBR14 her zaman kanonik işlevin işlevsel eşdeğeri tarafından çağrıldığından 14,15 BALR talimat, kayıt 15'teki dönüş kodu her zaman sıfırdan farklıydı. Daha sonra, dönüş kodunu temizlemek için ikinci bir talimat eklenecek, böylece belirli bir durumla, yani sıfırla çıkacaktı. Başlangıçta, programcılar İş Kontrol Dilinin tüm özelliklerini zaten kullanmıyorlardı, bu nedenle belirsiz bir dönüş kodu sorun değildi. Bununla birlikte, daha sonra programcılar gerçekten bu özellikleri kullanıyorlardı, bu nedenle belirli bir statü zorunlu hale geldi. IEFBR14'te yapılan bu değişiklik, orijinal kullanımını bir yer tutucu olarak hiçbir şekilde etkilememiştir.

Değiştirilen programın makine kodu:

        SR R15, R15, sicil 15'e sıfır tamamlama kodunu, kayıt 14'teki adrese (aslında İletişim Vektör Tablosundaki bir SVC 3 talimatıdır) BR R14 şubesine koyar.

Netlik için BR'yi ortadan kaldıran eşdeğer makine kodu şudur:

        SR R15, R15, kayıt 15 SVC 3 sorunu EXIT'e sıfır tamamlama kodunu koydu SVC iş adımını sonlandırmak için

OS / 360 Başlatıcı başlangıçta ATTACH makro talimatını (SVC 42) kullanarak iş adımı görevini "eklediği" ve bu ATTACH makrosunun etkisini "çözdüğü" için (bu bir Tip 2 SVC talimatıdır) mükemmel bir anlam ifade eder. zorunlu tamamlayıcı bir talimat, yani bir EXIT makrosu (zorunlu olarak Tip 1 SVC komutu, SVC 3) olabilir.

Ayrıca bakınız

  • / bin / true - UNIX eşdeğeri "hiçbir şey yapma" programı

Referanslar

Trombetta, Michael ve Finkelstein Sue Carolyn (1985). "OS JCL ve yardımcı programlar". Addison Wesley. sayfa 152.

  1. ^ a b "IBM Bilgi Merkezi". www.ibm.com. IBM Corporation. Alındı 2016-12-26.
  2. ^ Schmidt, Sebastian (2004-04-24). "Özetle Doğru Ek: IEFBR14". www.miketaylor.org.uk. Mike Taylor. Alındı 2016-12-27.
  3. ^ Bagwell, David (2005-08-09). "Özetle Doğru Ek: IEFBR14: Açıklama". www.miketaylor.org.uk. Mike Taylor. Alındı 2016-12-27.