Кіріспе

IBM жүйелік компьютерінде қолданылатын скрипт тілдері

Жұмыс басқару тілі (JCL) – IBM жүйелік компьютерінің операциялық жүйелерінде жүйеге топтық жұмысты қалай орындау немесе ішкі жүйені қалай іске қосу туралы нұсқау беру үшін қолданылатын скрипт тілдерінің атауы. JCL-дің мақсаты – қай бағдарламаларды орындау керектігін, кіріс немесе шығыс үшін қай файлдарды немесе құрылғыларды пайдалану керектігін және кейде қандай жағдайда қадамды өткізіп жіберу керектігін көрсету. JCL параметрлері жұмыстың пайдаланған ресурстарын қадағалау үшін, сондай-ақ жұмыстың қай машинада орындалуы керектігі туралы есептік ақпаратты да қамтамасыз ете алады. IBM-нің екі түрлі Жұмыс басқару тілі бар: бірі DOS/360-тан басталатын операциялық жүйелік тармаққа арналған, ал соңғы мүшесі z/VSE; екіншісі OS/360-тан z/OS-ке дейінгі тармаққа арналған, соңғысы қазір JES кеңейтімдерін және Жұмыс кіргізу басқару тілін (JECL) қамтиды. Олардың кейбір негізгі синтаксистік ережелері мен бірнеше негізгі ұғымдары бар, бірақ басқа жағынан олар өте ерекшеленеді. VM операциялық жүйесінде JCL жоқ; CP және CMS компоненттерінің әрқайсысының өз командалық тілдері бар.

Терминология

JCL-мен бірге қолданылатын кейбір сөздер немесе сөз тіркестері IBM-нің орталық компьютерлік технологиясына тән. Деректер жиынтығы: "деректер жиынтығы" – бұл файл; ол уақытша немесе тұрақты болуы мүмкін және дискіде, таспалық сақтау құрылғысында немесе басқа құрылғыда орналасады. Мүше: бөлінген деректер жиынтығының (PDS) "мүшесі" – PDS ішіндегі жеке деректер жиынтығы. Мүшеге PDS атауын, мүше атауын жақшада көрсетіп қол жеткізуге болады. Мысалы, SYS1.MACLIB жүйелік макросы GETMAIN SYS1.MACLIB(GETMAIN) деп аталады. Бөлінген деректер жиынтығы: "Бөлінген деректер жиынтығы" немесе PDS – мүшелердің немесе мұрағаттың жиынтығы. Бөлінген деректер жиынтығы көбінесе мәтіндік деректерді сақтау үшін қолданылады, мысалы, бастапқы кодты, құрастырушы макростарын (SYS1.MACLIB), жүйелік конфигурацияны (SYS1.PARMLIB), қайта пайдаланылатын JCL процедураларын (SYS1.PROCLIB) және т.б. Осылайша, олар архивтік файлдармен (ZIP, TAR және т.б.) және басқа операциялық жүйелердегі каталогтармен ортақ белгілерге ие. Олар екілік кодты (жүк модульдері немесе бағдарлама объектілері) сақтау үшін де қолданылады; осы жағдайда, олар Unix негізделген жүйелердегі ar негізделген статикалық кітапханаларға ұқсас. Мұндай құрылымдардың көпшілігі сияқты, бір рет сақталған мүшені жаңартуға болмайды; мүшені жойып, орнына жаңасын қою керек, мысалы IEBUPDTE құралын пайдаланып. Пайдаланушы немесе бағдарламалаушы көзқарасынан олар көбінесе өзгермейді (кейбір ескі мүмкіндіктерді алып тастаудан басқа), бірақ олардың ішкі іске асырылуы өте ерекше. USS: Unix жүйелік қызметтері, MVS базалық басқару бағдарламасының бір бөлігі ретінде жұмыс істейтін және Unix файлдарын, скрипттерін, тапсырмаларын және бағдарламаларын виртуализациясыз толық POSIX стандартына сәйкес Unix ортасында мейнфрейде орындауға мүмкіндік беретін толық Unix ортасы.

Мотивация

Бастапқыда, негізгі компьютерлер пакеттік өңдеуге бағытталған. Көптеген пакеттік тапсырмалар орнатуды қажет етеді, негізгі жад үшін арнайы талаптар, сондай-ақ магниттік ленталар, жеке дискілер және арнайы формалармен жабдықталған принтерлер сияқты арнайы құрылғыларды талап етеді. JCL тапсырма орындалуға жіберілмес бұрын барлық қажетті ресурстардың қолжетімді екеніне көз жеткізу үшін әзірленді. Мысалы, Linux сияқты көптеген жүйелер командалық жол арқылы қажетті деректер жиынтығын анықтауға мүмкіндік береді, осылайша олар қабықша арқылы алмастырылуы немесе бағдарлама орындалу кезінде жасалуы мүмкін. Мұндай жүйелерде операциялық жүйенің тапсырма жоспарлаушысы тапсырманың талаптары туралы көбінесе білмейді. Керісінше, JCL барлық қажетті деректер жиынтығы мен құрылғыларды нақты көрсетеді. Жоспарлаушы тапсырманы орындауға жібермес бұрын ресурстарды алдын ала бөле алады. Бұл "тұйыққа тірелу" жағдайын болдырмауға көмектеседі, онда А тапсырмасы R1 ресурсын ұстап тұрып, R2 ресурсын сұрайды, ал бір уақытта B тапсырмасы R2 ресурсын ұстап тұрып, R1 ресурсын сұрайды. Мұндай жағдайларда жалғыз шешім – компьютер операторының тапсырмалардың бірін тоқтатуы, одан кейін оны қайта іске қосу. Тапсырманы басқару арқылы, егер А тапсырмасы орындалуға жоспарланған болса, B тапсырмасы А тапсырмасы аяқталғанша немесе қажетті ресурстарды босатқанша іске қосылмайды.

Құрылғыға тәуелділік

DOS/360 түпнұсқасында және DOS/VS-тің көптеген нұсқаларында әрбір дискілік немесе таспалық файл үшін қолданылатын құрылғының модель нөмірін көрсету қажет болды – тіпті бұрыннан бар файлдар үшін де, жұмыстың соңында жойылатын уақытша файлдар үшін де. Бұл, егер клиент жабдықты жаңартатын болса, көптеген JCL файлдарын өзгерту қажеттігін білдірді. Кейінірек DOS/360 отбасының мүшелері құрылғы модельдерінің нөмірін талап ететін жағдайлардың санын азайтты.

Файлдарды қолмен бөлу

DOS/360 бастапқыда бағдарламашыдан DASD-дегі барлық файлдардың орнын және көлемін көрсетуді талап еткен. EXTENT картасы томды, онда ауқым орналасқан, бастапқы абсолютті жол нөмірін және жолдар санын көрсетеді. z/VSE үшін файл әртүрлі томдарда 256-ға дейін ауқымға ие болуы мүмкін.

Деректерге қол жеткізу (DD-дерек)

DD мәлімдемесі деректерге сілтеме жасау үшін қолданылады. Бұл мәлімдеме бағдарламаның дерек жиынының ішкі сипаттамасын дискілер, таспалар, перфокарталар, принтерлер және т.б. сияқты сыртқы құрылғылардағы деректермен байланыстырады. DD құрылғы түрін (мысалы, '181','2400 5','TAPE'), таспалар немесе дискілер үшін томдық сериялық нөмірін, сондай-ақ файлды анықтау үшін қолданылатын бағдарламадағы Data Control Block (DCB) деректері бойынша DCB қосалқы параметрі деп аталатын дерек файлының сипаттамасын ұсына алады. Файлды сипаттайтын ақпарат үш көзден алынуы мүмкін: DD картасынан алынған ақпарат, таспада немесе дискіде сақталған қолданыстағы файлдың дерек жиынтығының белгісінен алынған ақпарат және бағдарламада кодталған DCB макросы. Файл ашылғанда бұл деректер біріктіріледі, DD ақпараты белгідегі ақпараттан басымдық алады, ал DCB ақпараты екеуінен де басымдық алады. Жаңартылған сипаттама кейін дерек жиынтығының белгісіне жазылады. Дұрыс емес DCB ақпараты берілген жағдайда, бұл күтпеген салдарға әкелуі мүмкін. Жоғарыда аталған параметрлер мен әртүрлі қол жеткізу әдістері мен құрылғылары үшін арнайы ақпараттардың болуына байланысты DD мәлімдемесі ең күрделі JCL мәлімдемесі болып табылады. IBM анықтамалық нұсқаулығының бірінде DD мәлімдемесінің сипаттамасы 130 беттен асады – бұл JOB және EXEC мәлімдемелерінен екі есе көп. DD мәлімдемесі жұмыс ағынына тікелей деректерді енгізуге мүмкіндік береді. Бұл IDCAMS, SORT сияқты қосымша бағдарламаларға басқару ақпаратын беру үшін, сондай-ақ бағдарламаларға кіріс деректерін ұсыну үшін пайдалы.

Құрылғы тәуелсіздігі

Бастапқыда операциялық жүйелер отбасы үшін JCL құрылғыға тәуелділіктің жоғары деңгейін ұсынды. Жұмыстың аяқталуынан кейін сақталуы тиіс жаңа файлдар үшін де құрылғы түрін жалпылама түрде көрсетуге болады, мысалы, UNIT=DISK, UNIT=TAPE немесе UNIT=SYSSQ (таспа немесе диск). Әрине, қажет болған жағдайда модель нөмірін немесе тіпті нақты құрылғы адресін көрсетуге болады.

Шартты өңдеу

ОЖ бағдарламалардың өзінің жұмысының нәтижесін көрсететін қайтарым кодын орнатуын күтеді. Ең көп қолданылатын стандарттық мәндер:

Коммуналдық қызметтер

Жұмыстар деректерді өңдеуге көмектесу үшін IBM-нің бірқатар қосымша бағдарламаларын пайдаланады. Қосымша бағдарламалар пакеттік өңдеуде ең тиімді. Бұл қосымша бағдарламаларды үш топқа бөлуге болады:
Деректер жиынтығының қосымша бағдарламалары Деректер жиынтығын жасау, басып шығару, көшіру, жылжыту және жою. Жүйелік қосымша бағдарламалар Каталогтарды және басқа да жүйелік ақпаратты күту және басқару. Access Method Services Process Virtual Storage Access Method (VSAM) және VSAM емес деректер жиынтықтарын өңдеу.

Пайдалану қиындықтары

OS JCL күрделі екені сөзсіз. JCL туралы бір оқулықта: "Неліктен тіпті тәжірибелі бағдарламашылар жұмыс бақылау тіліне келгенде ойланады?" деп сұралады. Мұндай көзқарас бағдарламалау тілдерінің оқулықтарында да кездеседі, олар бағдарламаның қалай іске қосылатынына емес, тілдің өзіне көбірек назар аударуды қалайды. WATFOR компиляторынан болатын қате туралы хабарламаларды тізімдеген бір Fortran IV оқулығында былай делінген: "Өзіңіздің 'DD' жүйелік басқару карталарыңызды жасауға тырысып, ақымақтық жасадыңыз ба? Мұны дереу тоқтатыңыз, жүгіріп көмекке жүгініңіз!" Дегенмен, JCL-ді егжей-тегжейлі қарастырған кейбір кітаптар оны белгілі бір деңгейде меңгергеннен кейін, жүйелік әдепкі параметрлерден құтылуға және IBM жүйесі сіздің жұмыс жүктемесін қалай өңдейтінін жақсырақ бақылауға мүмкіндік беретінін атап көрсетті.

Жұмысқа кіруді бақылау тілі

IBM мейнфрейм жүйелерінде Job Entry Control Language немесе JECL – бұл spooling қосалқы жүйесіне (JES2 немесе JES3) z/OS немесе VSE/POWER for z/VSE үшін ақпарат беретін командалық тілдің басқару операторлары жиынтығы. JECL операторлары жұмысты қай желілік компьютерде орындау, қашан орындау және нәтижесін қай жерге жіберу керектігін көрсете алады. JECL жұмыс басқару тілінен (JCL) өзгеше, ол операциялық жүйеге жұмысты қалай орындау керектігін түсіндіреді. Үш орта үшін JECL-дің әртүрлі нұсқалары бар.

OS/360

OS/360 қашықтан жұмыс кіруі үшін жұмыс кіруді басқару тілінің алғашқы нұсқасы (программа нөмірі 360S RC 536) кіріс жазбасының 1–2 бағандарында идентификаторды пайдаланды және бір басқару операторынан тұрды: JED (жұмыс кіруді анықтау). LOGON, LOGOFF және STATUS сияқты «жұмыс станциясының командалары» да сол идентификатормен басталды.

JECL-ге дейінгі JES

Термин әлі қалыптаспағанмен, HASP-тің JES-тің JECL-і сияқты мүмкіндіктері болды, соның ішінде /* синтаксисі де бар еді.

z/OS

JES2 үшін JECL операторлары /* символымен басталады, ал JES3 үшін олар //* символымен басталады, қашықтан берілетін /*SIGNON және /*SIGNOFF командаларын қоспағанда. Екі жүйеге арналған командалар толыққанды түрде өзгеше.