जॉब कंट्रोल लैंग्वेज: Difference between revisions
(Created page with "{{short description|Scripting languages used on IBM mainframe}} {{About|IBM mainframe job control language|open systems|job control (Unix)|general term|job control (computin...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{short description|Scripting languages used on IBM mainframe}} | {{short description|Scripting languages used on IBM mainframe}} | ||
{{About| | {{About|आईबीएम मेनफ्रेम कार्य नियंत्रण भाषा|मुक्त प्रणालियाँ|कार्य नियंत्रण (यूनिक्स)|सामान्य नियम|job control (computing){{!}}job control}} | ||
कार्य नियंत्रण भाषा (जेसीएल) [[आईबीएम मेनफ्रेम]] संचालन प्रणाली पर उपयोग की जाने वाली लिपिबद्धन भाषाओं का एक नाम है, जो प्रणाली को [[ प्रचय संसाधन ]] चलाने या उप-प्रणाली प्रारंभ करने के तरीके के विषय में निर्देश देती है।<ref>"Every job submitted for execution ... must include JCL statements" -- ibm.com</ref> जेसीएल का उद्देश्य यह बताना है कि कौन से प्रोग्राम को किस फाइल या उपकरण का उपयोग करके चलाना है<ref>and many more [[#Complexity|complex details]], such as whether the file is to be retained or deleted, the maximum of disk space to which it can grow, the name of a tape to be pre-mounted</ref> इनपुट या आउटपुट के लिए, और कभी-कभी यह भी इंगित करने के लिए कि किन परिस्थितियों में एक कदम छोड़ना है। जेसीएल में मापदण्ड किसी कार्य द्वारा उपयोग किए जाने वाले संसाधनों के साथ-साथ कार्य को किस यंत्र पर चलाना चाहिए, इस पर नज़र रखने के लिए लेखांकन जानकारी भी प्रदान कर सकते हैं। | |||
आईबीएम | आईबीएम कार्य नियंत्रण की दो अलग-अलग भाषाएँ हैं: | ||
* | * संचालन प्रणाली वंश के लिए एक जो Dओएस/360 से प्रारंभ होता है और जिसका नवीनतम सदस्य z/VSE है; और | ||
* | * ओएस/360 से z/ओएस तक की वंशावली के लिए दूसरा, बाद वाला अब कार्य प्रवेश उप-प्रणाली 2/3 एक्सटेंशन, #कार्य प्रवेश नियंत्रण भाषा|कार्य प्रवेश नियंत्रण भाषा (JECL) सहित। | ||
वे कुछ बुनियादी वाक्यविन्यास नियम और कुछ बुनियादी अवधारणाएँ साझा करते हैं, | वे कुछ बुनियादी वाक्यविन्यास नियम और कुछ बुनियादी अवधारणाएँ साझा करते हैं, परन्तु अन्यथा बहुत भिन्न होते हैं।<ref>Ashley and Fernandez, ''Job Control Language'', p. 1.</ref> [[वीएम (ऑपरेटिंग सिस्टम)|वीएम (संचालन प्रणाली)]] में जेसीएल नहीं है; CP/CMS घटकों में से प्रत्येक में संकेत भाषाएँ होती हैं। | ||
==शब्दावली== | ==शब्दावली== | ||
जेसीएल के संयोजन में उपयोग किए जाने वाले कुछ शब्द या वाक्यांश आईबीएम मेनफ्रेम प्रौद्योगिकी के लिए विशिष्ट हैं। | जेसीएल के संयोजन में उपयोग किए जाने वाले कुछ शब्द या वाक्यांश आईबीएम मेनफ्रेम प्रौद्योगिकी के लिए विशिष्ट हैं। | ||
* डेटासेट: डेटासेट एक फ़ाइल है; यह अस्थायी या स्थायी हो सकता है, और डिस्क ड्राइव, टेप स्टोरेज या अन्य | * डेटासेट: डेटासेट एक फ़ाइल है; यह अस्थायी या स्थायी हो सकता है, और डिस्क ड्राइव, टेप स्टोरेज या अन्य उपकरण पर स्थित हो सकता है।<ref>Ashley and Fernandez, ''Job Control Language'', p. 5.</ref><ref>McQuillen, ''System/360–370 Assembler Language'', pp. 385–386.</ref> | ||
* सदस्य: एक विभाजित डेटासेट (पीडीएस) का सदस्य एक पीडीएस के भीतर एक व्यक्तिगत डेटासेट है। कोष्ठक में सदस्य नाम के साथ पीडीएस का नाम निर्दिष्ट करके किसी सदस्य तक पहुंचा जा सकता है। उदाहरण के लिए, SYS1.MACLIB में | * सदस्य: एक विभाजित डेटासेट (पीडीएस) का सदस्य एक पीडीएस के भीतर एक व्यक्तिगत डेटासेट है। कोष्ठक में सदस्य नाम के साथ पीडीएस का नाम निर्दिष्ट करके किसी सदस्य तक पहुंचा जा सकता है। उदाहरण के लिए, SYS1.MACLIB में प्रणाली मैक्रो GETMAIN को SYS1.MACLIB(GETMAIN) के रूप में संदर्भित किया जा सकता है।<ref name="mcq-pds">McQuillen, ''System/360–370 Assembler Language'', pp. 288–289, 400.</ref> * विभाजित डेटासेट: एक विभाजित डेटासेट या पीडीएस सदस्यों का संग्रह, या संग्रह है। विभाजित डेटासेट का उपयोग सामान्यतः स्रोत कोड, असेंबलर मैक्रोज़ (SYS1.MACLIB), प्रणाली कॉन्फ़िगरेशन (SYS1.PARMLIB), पुन: प्रयोज्य जेसीएल प्रक्रियाओं (SYS1.PROCLIB) आदि जैसे टेक्स्ट डेटा को संग्रहीत करने के लिए किया जाता है। फ़ाइलें (ज़िप, टीएआर, आदि) संग्रहित करें और अन्य संचालन प्रणाली में निर्देशिकाओं के साथ। इनका उपयोग द्वि आधारी कूट (लोड मॉड्यूल या प्रोग्राम ऑब्जेक्ट) को संग्रहीत करने के लिए भी किया जाता है; उस रूप में, वे मोटे तौर पर यूनिक्स-आधारित प्रणालियों में [[एआर (यूनिक्स)]]|एआर-आधारित स्थिर पुस्तकालयों के समान हैं। ऐसी अधिकांश संरचनाओं की तरह, एक बार संग्रहीत सदस्य को अद्यतन नहीं किया जा सकता है; सदस्य को हटाया जाना चाहिए और प्रतिस्थापित किया जाना चाहिए, जैसे कि [[IEBUPDTE]] उपयोगिता के साथ।<ref name="mcq-pds"/>1989 में एमवीएस डीएफपी 3.2 के जारी होने के बाद से, पीडीएसई (विभाजित डेटा सेट विस्तारित) पीडीएस के एक उन्नत संस्करण के रूप में अस्तित्व में है;<ref>{{Cite web |last=Lewis |first=Cecilia |date=August 8, 2011 |title=हमने हाल ही में पीडीएसई के साथ आपके लिए क्या किया है|url=https://share.confex.com/share/117/webprogram/Handout/Session9939/SHARE%209939%20PDSE%20v1.pdf |access-date=2023-03-03 |website=SHARE in Orlando }}</ref> उपयोगकर्ता या एप्लिकेशन क्रमादेशक के दृष्टिकोण से, वे काफी हद तक अपरिवर्तित हैं (कुछ अस्पष्ट विरासत सुविधाओं को हटाने के अलावा), परन्तु उनका आंतरिक कार्यान्वयन बहुत अलग है। | ||
* यूएसएस: यूनिक्स | * यूएसएस: यूनिक्स प्रणाली सेवाएं, एमवीएस के हिस्से के रूप में चलने वाला एक यूनिक्स उप-प्रणाली, और यूनिक्स फ़ाइलों, स्क्रिप्ट, कार्यों और प्रोग्रामों को यूनिक्स वातावरण में मेनफ्रेम पर चलाने की अनुमति देता है। | ||
== प्रेरणा == | == प्रेरणा == | ||
मूल रूप से, मेनफ्रेम | मूल रूप से, मेनफ्रेम प्रणाली बैच संसाधन की ओर उन्मुख थे। कई बैच नौकरियों के लिए सेटअप की आवश्यकता होती है, [[मुख्य भंडारण]] के लिए विशिष्ट आवश्यकताओं के साथ, और [[चुंबकीय टेप]], निजी डिस्क वॉल्यूम और विशेष रूपों के साथ प्रिंटर जैसे समर्पित उपकरणों की आवश्यकता होती है।<ref>McQuillen, ''System/360–370 Assembler Language'', pp. 22–24.</ref> जेसीएल को यह सुनिश्चित करने के साधन के रूप में विकसित किया गया था कि नौकरी प्रारंभ होने से पहले सभी आवश्यक संसाधन उपलब्ध हैं। उदाहरण के लिए, कई प्रणालियाँ, जैसे कि [[लिनक्स]], [[कमांड लाइन इंटरफेस|संकेत लाइन इंटरफेस]] पर निर्दिष्ट आवश्यक डेटासेट की पहचान की अनुमति देती हैं, और इसलिए [[ शैल (कंप्यूटिंग) ]] द्वारा प्रतिस्थापन के अधीन होती हैं, या रन-टाइम पर प्रोग्राम द्वारा उत्पन्न होती हैं। इन प्रणालियों पर [[ऑपरेटिंग सिस्टम|संचालन प्रणाली]] [[ कार्य अनुसूचक ]] को कार्य की आवश्यकताओं के बारे में बहुत कम या कोई जानकारी नहीं होती है। इसके विपरीत, जेसीएल सभी आवश्यक डेटासेट और उपकरणों को स्पष्ट रूप से निर्दिष्ट करता है। शेड्यूलर कार्य को चलाने के लिए जारी करने से पहले संसाधनों को पूर्व-आवंटित कर सकता है। यह [[गतिरोध]] से बचने में सहायता करता है, जहां कार्य A संसाधन R1 रखता है और संसाधन R2 का अनुरोध करता है, जबकि समवर्ती रूप से चलने वाला कार्य B संसाधन R2 रखता है और R1 का अनुरोध करता है। ऐसे स्थितियों में [[कंप्यूटर ऑपरेटर|परिकलक ऑपरेटर]] के लिए एकमात्र समाधान यह है कि वह किसी एक कार्य को समाप्त कर दे, जिसे फिर से प्रारंभ करने की आवश्यकता होती है। कार्य नियंत्रण के साथ, यदि कार्य A को चलाने के लिए निर्धारित किया गया है, तो कार्य B तब तक प्रारंभ नहीं किया जाएगा जब तक कार्य A पूर्ण नहीं कर लेता या आवश्यक संसाधन जारी नहीं कर देता। | ||
==डॉस और ओएस जेसीएल के लिए सामान्य विशेषताएं== | ==डॉस और ओएस जेसीएल के लिए सामान्य विशेषताएं== | ||
=== नौकरियाँ, चरण और प्रक्रियाएँ === | === नौकरियाँ, चरण और प्रक्रियाएँ === | ||
डीओएस और ओएस दोनों के लिए कार्य की इकाई [[ नौकरी धारा ]] है। किसी कार्य में एक या कई चरण होते हैं, जिनमें से प्रत्येक एक विशिष्ट प्रोग्राम चलाने का अनुरोध होता है। उदाहरण के लिए, [[ संबंध का डेटाबेस ]] के दिनों से पहले, प्रबंधन के लिए एक मुद्रित रिपोर्ट तैयार करने के कार्य में निम्नलिखित चरण सम्मिलित हो सकते हैं: उचित रिकॉर्ड का चयन करने और उन्हें एक अस्थायी फ़ाइल में कॉपी करने के लिए एक उपयोगकर्ता-लिखित प्रोग्राम; सामान्यतः सामान्य प्रयोजन उपयोगिता का उपयोग करके, अस्थायी फ़ाइल को आवश्यक क्रम में क्रमबद्ध करना; जानकारी को इस तरह से प्रस्तुत करने के लिए एक उपयोगकर्ता-लिखित कार्यक्रम जो अंतिम उपयोगकर्ताओं के लिए पढ़ना आसान हो और इसमें उप-योग जैसी अन्य उपयोगी जानकारी भी सम्मिलित हो; और मॉनिटर या टर्मिनल पर प्रदर्शन के लिए अंतिम-उपयोगकर्ता जानकारी के चयनित पृष्ठों को प्रारूपित करने के लिए एक उपयोगकर्ता-लिखित प्रोग्राम। | |||
डॉस और ओएस जेसीएल दोनों में पहला कार्ड | डॉस और ओएस जेसीएल दोनों में पहला कार्ड कार्य कार्ड होना चाहिए, जो:<ref>McQuillen, ''System/360–370 Assembler Language'', pp. 380–382.</ref> *कार्य की पहचान करता है. | ||
* | * सामान्यतः परिकलक सेवा विभाग को उपयुक्त उपयोगकर्ता विभाग को बिल देने में सक्षम बनाने के लिए जानकारी प्रदान करता है। | ||
* परिभाषित करता है कि संपूर्ण कार्य को कैसे चलाया जाना है, उदा. कतार में अन्य नौकरियों के सापेक्ष इसकी प्राथमिकता। | * परिभाषित करता है कि संपूर्ण कार्य को कैसे चलाया जाना है, उदा. कतार में अन्य नौकरियों के सापेक्ष इसकी प्राथमिकता। | ||
प्रक्रियाएं ( | प्रक्रियाएं (सामान्यतः प्रोसेस कहलाती हैं) किसी कार्य में डाले गए चरणों या चरणों के समूहों के लिए पूर्व-लिखित जेसीएल हैं। दोनों जेसीएल ऐसी प्रक्रियाओं की अनुमति देते हैं। प्रोक्स का उपयोग उन चरणों को दोहराने के लिए किया जाता है जिनका उपयोग एक ही कार्य में या कई अलग-अलग कार्यों में कई बार किया जाता है। वे क्रमादेशक का समय बचाते हैं और त्रुटियों के जोखिम को कम करते हैं। एक प्रक्रिया को चलाने के लिए बस जेसीएल फ़ाइल में एक कार्ड सम्मिलित होता है जो एक निर्दिष्ट फ़ाइल से प्रक्रिया की प्रतिलिपि बनाता है, और इसे कार्यस्ट्रीम में सम्मिलित करता है। साथ ही, प्रोसेस में प्रत्येक उपयोग के लिए प्रक्रिया को अनुकूलित करने के लिए मापदण्ड सम्मिलित हो सकते हैं। | ||
===मूल वाक्यविन्यास=== | ===मूल वाक्यविन्यास=== | ||
डीओएस और ओएस जेसीएल दोनों में अधिकतम प्रयोग करने योग्य लाइन की लंबाई 80 अक्षर है, क्योंकि जब Dओएस/360 और ओएस/360 का पहली बार उपयोग किया गया था तो परिकलक प्रणाली में नया इनपुट प्रदान करने की मुख्य विधि 80-कॉलम वाले [[छिद्रित कार्ड]] थे।<ref>Stern and Stern, ''Structured COBOL Programming'', pp. 528–529.</ref> बाद में लंबी रिकॉर्ड लंबाई वाली डिस्क या टेप फ़ाइलों के माध्यम से कार्य सबमिट करना संभव हो गया, परन्तु संचालन प्रणाली के कार्य सबमिशन घटकों ने कैरेक्टर 80 के बाद सब कुछ नजरअंदाज कर दिया। | |||
कड़ाई से कहें तो दोनों | कड़ाई से कहें तो दोनों संचालन प्रणाली परिवार प्रति पंक्ति केवल 71 वर्णों का उपयोग करते हैं। अक्षर 73-80 आम तौर पर कार्ड अनुक्रम संख्याएं होती हैं जिन्हें प्रणाली कार्य समाप्ति रिपोर्ट पर मुद्रित करता है और संचालन प्रणाली द्वारा रिपोर्ट की गई किसी भी त्रुटि के स्थान की पहचान करने के लिए उपयोगी होता है। कैरेक्टर 72 को सामान्यतः खाली छोड़ दिया जाता है, परन्तु इसमें एक गैर-खाली कैरेक्टर हो सकता है जो यह दर्शाता है कि जेसीएल स्टेटमेंट अगले कार्ड पर जारी है। | ||
UNIX | UNIX प्रणाली सर्विसेज फ़ाइल नामों को छोड़कर, सभी संकेत, मापदण्ड नाम और मान बड़े अक्षरों में होने चाहिए। | ||
इन-स्ट्रीम इनपुट (नीचे देखें) को छोड़कर सभी लाइनें एक स्लैश से | इन-स्ट्रीम इनपुट (नीचे देखें) को छोड़कर सभी लाइनें एक स्लैश से प्रारंभ होनी चाहिए<code>/</code>, और संचालन प्रणाली द्वारा संसाधित की जाने वाली सभी लाइनें दो स्लैश से प्रारंभ होनी चाहिए <code>//</code> - हमेशा पहले कॉलम से प्रारंभ करें। हालाँकि, दो अपवाद हैं: सीमांकक कथन और टिप्पणी कथन। एक सीमांकक कथन एक स्लैश और एक तारांकन चिह्न से प्रारंभ होता है (<code>/*</code>), और ओएस जेसीएल में एक टिप्पणी विवरण स्लैश और तारांकन की एक जोड़ी के साथ प्रारंभ होता है (<code>//*</code>) या डॉस जेसीएल में एक तारांकन चिह्न। | ||
कई जेसीएल कथन 71 अक्षरों के भीतर फिट होने के लिए बहुत लंबे हैं, | कई जेसीएल कथन 71 अक्षरों के भीतर फिट होने के लिए बहुत लंबे हैं, परन्तु इन्हें अनिश्चित संख्या में निरंतरता कार्डों तक बढ़ाया जा सकता है: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! ओएस जेसीएल !! डीओएस जेसीएल | ||
|- | |- | ||
| | | अंतिम को छोड़कर सभी वास्तविक जेसीएल कार्डों को उस बिंदु पर समाप्त करना जहां सिंटैक्स के लिए अल्पविराम (<code>,</code>) की आवश्यकता होती है। || अंतिम को छोड़कर सभी वास्तविक जेसीएल कार्डों को उस बिंदु पर समाप्त करना जहां सिंटैक्स के लिए कॉलम 72 में अल्पविराम (<code>,</code>) और एक गैर-रिक्त वर्ण की आवश्यकता होती है | ||
|- | |- | ||
| | | प्रत्येक निरंतरता कार्ड को कॉलम 1 में <code>//</code> और फिर कम से कम 1 स्थान से प्रारंभ करें || प्रत्येक निरंतरता कार्ड को रिक्त स्थान से शुरू करें और कॉलम 15 में जारी रखें | ||
|} | |} | ||
सबसे सामान्य प्रकार के कार्ड की संरचना इस प्रकार है:<ref>Stern and Stern, ''Structured COBOL Programming'', pp. 529, 531.</ref> | सबसे सामान्य प्रकार के कार्ड की संरचना इस प्रकार है:<ref>Stern and Stern, ''Structured COBOL Programming'', pp. 529, 531.</ref> | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! ओएस जेसीएल !! डीओएस जेसीएल | ||
|- | |- | ||
| | | | ||
Line 66: | Line 66: | ||
*Name of resource | *Name of resource | ||
*Space(s) | *Space(s) | ||
*Parameters, which vary depending on the statement type, separated by commas and with no space between them. | *Parameters, which vary depending on the statement type, separated by commas and with no space between them. Pओएसitional parameters, followed by keyword parameters. | ||
|} | |} | ||
===इन-स्ट्रीम इनपुट=== | ===इन-स्ट्रीम इनपुट=== | ||
डॉस और ओएस जेसीएल दोनों इन-स्ट्रीम इनपुट की अनुमति देते हैं, यानी ऐसे कार्ड जिन्हें | डॉस और ओएस जेसीएल दोनों इन-स्ट्रीम इनपुट की अनुमति देते हैं, यानी ऐसे कार्ड जिन्हें संचालन प्रणाली के बजाय एप्लिकेशन प्रोग्राम द्वारा संसाधित किया जाना है। जो डेटा लंबे समय तक रखा जाना है, उसे आम तौर पर डिस्क पर संग्रहीत किया जाएगा, परन्तु [[ इंटरएक्टिव ]] टर्मिनलों का उपयोग आम होने से पहले ऐसी डिस्क फ़ाइलों को बनाने और संपादित करने का एकमात्र तरीका कार्ड पर नए डेटा की आपूर्ति करना था। | ||
Dओएस और ओएस जेसीएल में इन-स्ट्रीम इनपुट की शुरुआत का संकेत देने के अलग-अलग तरीके हैं, परन्तु दोनों इन-स्ट्रीम इनपुट को समाप्त करते हैं <code>/*</code> अंतिम इन-स्ट्रीम डेटा कार्ड के बाद कार्ड के कॉलम 1 पर। इससे संचालन प्रणाली कार्ड में जेसीएल की संसाधन फिर से प्रारंभ कर देता है <code>/*</code> कार्ड।<ref>Stern and Stern, ''Structured COBOL Programming'', pp. 529, 537.</ref> | |||
*ओएस जेसीएल: डीडी स्टेटमेंट का उपयोग इन-स्ट्रीम डेटा, साथ ही डेटा सेट का वर्णन करने के लिए किया जा सकता है। इन-स्ट्रीम डेटा से संबंधित डीडी स्टेटमेंट में डीडी पहचानकर्ता के बाद एक तारांकन चिह्न (*) होता है, उदाहरण के लिए। <code>//SYSIN DD *</code>. जेसीएल स्टेटमेंट को डीडी डेटा स्टेटमेंट का उपयोग करके इन-स्ट्रीम डेटा के हिस्से के रूप में | *ओएस जेसीएल: डीडी स्टेटमेंट का उपयोग इन-स्ट्रीम डेटा, साथ ही डेटा सेट का वर्णन करने के लिए किया जा सकता है। इन-स्ट्रीम डेटा से संबंधित डीडी स्टेटमेंट में डीडी पहचानकर्ता के बाद एक तारांकन चिह्न (*) होता है, उदाहरण के लिए। <code>//SYSIN DD *</code>. जेसीएल स्टेटमेंट को डीडी डेटा स्टेटमेंट का उपयोग करके इन-स्ट्रीम डेटा के हिस्से के रूप में सम्मिलित किया जा सकता है। | ||
:डीएलएम नामक एक ऑपरेंड एक सीमांकक निर्दिष्ट करने की अनुमति देता है (डिफ़ॉल्ट /* है)। एक वैकल्पिक सीमांकक निर्दिष्ट करने से जेसीएल को डेटा के रूप में पढ़ा जा सकता है, उदाहरण के लिए लाइब्रेरी सदस्य को प्रक्रियाओं की प्रतिलिपि बनाना या ''आंतरिक पाठक'' को नौकरी सबमिट करना। | :डीएलएम नामक एक ऑपरेंड एक सीमांकक निर्दिष्ट करने की अनुमति देता है (डिफ़ॉल्ट /* है)। एक वैकल्पिक सीमांकक निर्दिष्ट करने से जेसीएल को डेटा के रूप में पढ़ा जा सकता है, उदाहरण के लिए लाइब्रेरी सदस्य को प्रक्रियाओं की प्रतिलिपि बनाना या ''आंतरिक पाठक'' को नौकरी सबमिट करना। | ||
:*एक उदाहरण,<ref>modeled on https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.hasc300/has2z1_Submitting_to_the_internal_reader_from_jobs_or_tasks.htm, using knowledge dating back to when Green Cards came from IBM, and Manix worked for a company owning an IBM card sorter</ref> जो आंतरिक रीडर ('INTRDR') को एक कार्य सबमिट करता है और फिर दो फ़ाइलें हटा देता है वह है: | :*एक उदाहरण,<ref>modeled on https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.hasc300/has2z1_Submitting_to_the_internal_reader_from_jobs_or_tasks.htm, using knowledge dating back to when Green Cards came from IBM, and Manix worked for a company owning an IBM card sorter</ref> जो आंतरिक रीडर ('INTRDR') को एक कार्य सबमिट करता है और फिर दो फ़ाइलें हटा देता है वह है: | ||
Line 83: | Line 83: | ||
//सिसिन डीडी डमी | //सिसिन डीडी डमी | ||
//SYSUT1 DD डेटा,DLM=ZZ | //SYSUT1 DD डेटा,DLM=ZZ | ||
//Runlatr | //Runlatr कार्य ACCT,MANIX,क्लास=A.TYPRUN=होल्ड | ||
//* ^ बाद में चलाने के लिए एक नौकरी | //* ^ बाद में चलाने के लिए एक नौकरी | ||
//CPUHOG EXEC PGM=PICALC1K | //CPUHOG EXEC PGM=PICALC1K | ||
Line 94: | Line 94: | ||
</वाक्यविन्यास हाइलाइट> | </वाक्यविन्यास हाइलाइट> | ||
::# PICALC1K नामक प्रोग्राम (TYPRUN=HOLD) मैन्युअल रूप से जारी होने की प्रतीक्षा करेगा | ::# PICALC1K नामक प्रोग्राम (TYPRUN=HOLD) मैन्युअल रूप से जारी होने की प्रतीक्षा करेगा | ||
::# IEFBR14 नामक प्रोग्राम अभी चलेगा और | ::# IEFBR14 नामक प्रोग्राम अभी चलेगा और पूर्ण होने पर, दो मौजूदा फ़ाइलें, PICALC.4DGTS और PICALC.5DGTS हटा दी जाएंगी। | ||
*डॉस जेसीएल: प्रोग्राम के लिए EXEC कार्ड के बाद बस इन-स्ट्रीम डेटा दर्ज करें। | *डॉस जेसीएल: प्रोग्राम के लिए EXEC कार्ड के बाद बस इन-स्ट्रीम डेटा दर्ज करें। | ||
==={{anchor}}जटिलता=== | ==={{anchor}}जटिलता=== | ||
ओएस जेसीएल की अधिकांश जटिलता, विशेष रूप से, [[डेटा सेट (आईबीएम मेनफ्रेम)]] जानकारी निर्दिष्ट करने के लिए बड़ी संख्या में विकल्पों से उत्पन्न होती है। जबकि [[यूनिक्स]] जैसे | ओएस जेसीएल की अधिकांश जटिलता, विशेष रूप से, [[डेटा सेट (आईबीएम मेनफ्रेम)]] जानकारी निर्दिष्ट करने के लिए बड़ी संख्या में विकल्पों से उत्पन्न होती है। जबकि [[यूनिक्स]] जैसे संचालन प्रणाली पर फ़ाइलों को बाइट्स की क्रमबद्ध धाराओं में सारगर्भित किया जाता है, जिसमें संरचित डेटा को पढ़ने और लिखने का कार्य विशेष रूप से उपयोगकर्ता-स्तरीय कार्यक्रमों (जो अंततः, ऐसी धाराओं को निगलना और उत्सर्जित करना) और डेटा के व्यावहारिक विवरण से संबंधित होता है। उपयोगकर्ता प्रोग्रामों की जानकारी के बिना संचालन प्रणाली द्वारा बड़े पैमाने पर भंडारण और पहुंच को नियंत्रित किया जाता है; ओएस/360 और उसके उत्तराधिकारियों पर डेटासेट उनके फ़ाइल प्रकार और आकार, रिकॉर्ड प्रकार और लंबाई, ब्लॉक आकार, [[चुंबकीय टेप डेटा भंडारण]] घनत्व जैसी उपकरण-विशिष्ट जानकारी और लेबल जानकारी को उजागर करते हैं। हालाँकि कई विकल्पों के लिए प्रणाली डिफ़ॉल्ट हैं, फिर भी क्रमादेशक द्वारा जेसीएल और प्रोग्राम में कोडित जानकारी के संयोजन के माध्यम से बहुत कुछ निर्दिष्ट किया जाना बाकी है। प्रोग्राम में जितनी अधिक जानकारी कोडित की जाएगी, वह उतना ही कम लचीला होगा, क्योंकि प्रोग्राम की जानकारी जेसीएल में किसी भी चीज़ को ओवरराइड कर देती है; इस प्रकार, अधिकांश जानकारी सामान्यतः जेसीएल के माध्यम से प्रदान की जाती है। | ||
उदाहरण के लिए, यूनिक्स | उदाहरण के लिए, यूनिक्स संचालन प्रणाली पर [[फ़ाइल प्रतिलिपि बनाना]] करने के लिए, उपयोगकर्ता एक संकेत दर्ज करेगा जैसे: | ||
सीपी पुरानी फ़ाइल नई फ़ाइल | सीपी पुरानी फ़ाइल नई फ़ाइल | ||
जेसीएल का उपयोग करते हुए निम्नलिखित उदाहरण का उपयोग ओएस/360 पर फ़ाइल की प्रतिलिपि बनाने के लिए किया जा सकता है: | |||
<सिंटैक्सहाइलाइट लैंग= जेसीएल हाइलाइट= 3 > | <सिंटैक्सहाइलाइट लैंग= जेसीएल हाइलाइट= 3 > | ||
//IS198CPY | //IS198CPY कार्य (IS198T30500), 'कॉपी कार्य', क्लास=L, MSGCLASS=X | ||
//COPY01 EXEC PGM=IEBGENER | //COPY01 EXEC PGM=IEBGENER | ||
//सिप्रिंट डीडी सिसौट=* | //सिप्रिंट डीडी सिसौट=* | ||
Line 118: | Line 118: | ||
जेसीएल की जटिलता के लिए दूसरी व्याख्या [[आईबीएम पीसी]] या यूनिक्स जैसे वातावरण में नौकरी चलाने की अपेक्षाओं से भिन्न है। | जेसीएल की जटिलता के लिए दूसरी व्याख्या [[आईबीएम पीसी]] या यूनिक्स जैसे वातावरण में नौकरी चलाने की अपेक्षाओं से भिन्न है। | ||
*लो-एंड | *लो-एंड प्रणाली/360 सीपीयू 1980 के दशक के मध्य के पीसी की तुलना में कम शक्तिशाली और अधिक महंगे थे जिनके लिए MS-Dओएस डिज़ाइन किया गया था। ओएस/360 न्यूनतम 32 KB मेमोरी साइज वाले प्रणाली के लिए था और Dओएस/360 न्यूनतम 16 KB वाले प्रणाली के लिए था। एक IBM 2030|360/30 CPU—जब प्रणाली/360 की घोषणा 1964 में की गई थी तब निम्न-स्तरीय सीपीयू-प्रति सेकंड 1.8K से 34.5K निर्देशों को संसाधित करता था।<ref>{{Cite web|url=http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP2030.html|title=IBM Archives: System/360 Model 30|date=2003-01-23|website=www-03.ibm.com|language=en-US|access-date=2016-04-25}}</ref> 1981 में पहले IBM PC में 16 KB या 64 KB मेमोरी थी और यह प्रति सेकंड लगभग 330K निर्देशों को प्रोसेस करता था।<ref name="vintageComputerIBMPC">{{Cite web |url=http://www.vintage-computer.com/ibm_pc.shtml |title=आईबीएम पीसी|access-date=2007-10-21 |archive-date=2006-07-05 |archive-url=https://web.archive.org/web/20060705211337/http://www.vintage-computer.com/ibm_pc.shtml |url-status=dead }}</ref><ref name="iathVirginiaEduPCs">[http://www3.iath.virginia.edu/elab/hfl0108.html IBM-compatible computers] History of PCs {{webarchive |url=https://web.archive.org/web/20070814010809/http://www3.iath.virginia.edu/elab/hfl0108.html |date=August 14, 2007 }}</ref> परिणामस्वरूप, जेसीएल को परिकलक के लिए प्रोसेस करना आसान होना था, और क्रमादेशक द्वारा उपयोग में आसानी बहुत कम प्राथमिकता थी। इस युग में क्रमादेशक परिकलक की तुलना में बहुत सस्ते थे। | ||
* | *जेसीएल को बैच संसाधन के लिए डिज़ाइन किया गया था। इस प्रकार, इसे संचालन प्रणाली को सब कुछ बताना होगा, जिसमें एक चरण के परिणाम के आधार पर क्या करना है। उदाहरण के लिए, <code>DISP=(NEW,CATLG,DELETE)</code> इसका मतलब है कि यदि प्रोग्राम सफलतापूर्वक चलता है, तो एक नई फ़ाइल बनाएं और उसे सूचीबद्ध करें; अन्यथा नई फ़ाइल हटाएँ. पीसी पर चलने वाले प्रोग्राम अक्सर समस्याओं से निपटने के बाद सफाई के लिए उपयोगकर्ता पर निर्भर करते हैं। | ||
* | *प्रणाली/360 यंत्रों को एक संगठन में सभी उपयोगकर्ताओं द्वारा साझा करने के लिए डिज़ाइन किया गया था। इतना <code>JOB</code> कार्ड संचालन प्रणाली को बताता है कि उपयोगकर्ता के खाते को कैसे बिल देना है (<code>IS198T30500</code>), भंडारण और अन्य संसाधनों की कितनी पूर्वनिर्धारित मात्रा आवंटित की जा सकती है (<code>CLASS=L</code>), और कई अन्य चीज़ें। <code>{{nowrap|1=//SYSPRINT DD SYSOUT=*}}</code> परिकलक को प्रोग्राम की रिपोर्ट को डिफ़ॉल्ट [[प्रिंटर (कंप्यूटिंग)]] पर प्रिंट करने के लिए कहता है जो साधारण कागज के साथ लोड होता है, न कि किसी अन्य प्रिंटर पर जो खाली चेक के साथ लोड किया जा सकता है। <code>DISP=SHR</code> संचालन प्रणाली को बताता है कि अन्य प्रोग्राम पढ़ सकते हैं <code>OLDFILE </code>[[ बहु क्रमादेशन ]] | ||
Dओएस/360 और ओएस/360 संचालन प्रणाली के बाद के संस्करण मूल जेसीएल की अधिकांश विशेषताओं को बरकरार रखते हैं - हालाँकि ग्राहकों को अपनी सभी जेसीएल फ़ाइलों को फिर से लिखने के लिए मजबूर करने से बचने के लिए कुछ सरलीकरण किया गया है।{{Citation needed|date=October 2012}} कई उपयोगकर्ता जेसीएल स्टेटमेंट के किसी भी सेट को एक प्रक्रिया के रूप में सहेजते हैं जिसका उपयोग एक या दो से अधिक होने की संभावना है।<ref>{{cite book |last1=Brown |first1=Gary DeWard |title=ज़ोस जेसीएल|date=2002 |publisher=John Wiley & Sons |isbn=0471-236357 |page=248 |edition=fifth |url=https://books.google.com/books?id=K8kMJa8arlIC&pg=PA248}}</ref> | |||
ओएस जेसीएल का सिंटैक्स | ओएस जेसीएल का सिंटैक्स प्रणाली/360 असेंबली भाषा में [[ मैक्रो अनुदेश ]] के सिंटैक्स के समान है, और इसलिए क्रमादेशक उस समय परिचित रहे होंगे जब कई प्रोग्राम असेंबली भाषा में कोडित किए गए थे। | ||
==डॉस जेसीएल== | ==डॉस जेसीएल== | ||
===स्थितीय | ===स्थितीय मापदण्ड=== | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
//TLBL TAPEFIL,'COPYTAPE.JOB',,,,2 | //TLBL TAPEFIL,'COPYTAPE.JOB',,,,2 | ||
Line 134: | Line 134: | ||
//EXTENT SYS005,VOL01,1,0,800,1600 | //EXTENT SYS005,VOL01,1,0,800,1600 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
डॉस जेसीएल | डॉस जेसीएल मापदण्ड स्थितीय हैं, जिससे उन्हें पढ़ना और लिखना कठिन हो जाता है, परन्तु प्रणाली के लिए पार्स करना आसान हो जाता है। | ||
* | * क्रमादेशक को यह याद रखना चाहिए कि प्रत्येक प्रकार के स्टेटमेंट में कौन सा आइटम किस स्थिति में जाता है। | ||
* यदि कुछ वैकल्पिक | * यदि कुछ वैकल्पिक मापदण्ड छोड़ दिए गए हैं परन्तु बाद में सम्मिलित किए गए हैं, तो छोड़े गए मापदण्ड को बिना किसी रिक्त स्थान के अल्पविराम द्वारा दर्शाया जाना चाहिए, जैसा कि ऊपर टीएलबीएल कथन में है। | ||
डॉस जेसीएल कुछ हद तक ओएस जेसीएल की तुलना में कम मापदंडों के साथ अधिक कथनों का उपयोग करके स्थितीय मापदंडों की कठिनाइयों को कम करता है। उदाहरण में ASSGN, DLBL और EXTENT स्टेटमेंट एक ही काम करते हैं (यह निर्दिष्ट करते हुए कि एक नई डिस्क फ़ाइल को कहाँ संग्रहीत किया जाना चाहिए) <code>DD</code> ओएस जेसीएल में बयान। | डॉस जेसीएल कुछ हद तक ओएस जेसीएल की तुलना में कम मापदंडों के साथ अधिक कथनों का उपयोग करके स्थितीय मापदंडों की कठिनाइयों को कम करता है। उदाहरण में ASSGN, DLBL और EXTENT स्टेटमेंट एक ही काम करते हैं (यह निर्दिष्ट करते हुए कि एक नई डिस्क फ़ाइल को कहाँ संग्रहीत किया जाना चाहिए) <code>DD</code> ओएस जेसीएल में बयान। | ||
=== | ===उपकरण निर्भरता=== | ||
मूल | मूल Dओएस/360 और Dओएस/VS के अधिकांश संस्करणों में उपकरण का मॉडल नंबर निर्दिष्ट करना पड़ता था, जिसका उपयोग प्रत्येक डिस्क या टेप फ़ाइल के लिए किया जाना था - यहां तक कि मौजूदा फ़ाइलों के लिए और अस्थायी फ़ाइलों के लिए भी, जिन्हें हटा दिया जाएगा। कार्य का अंत. इसका मतलब यह था कि, यदि कोई ग्राहक अधिक आधुनिक उपकरणों में अपग्रेड करता है, तो कई जेसीएल फाइलों को बदलना होगा। | ||
बाद में | बाद में Dओएस/360 परिवार के सदस्यों ने उन स्थितियों की संख्या कम कर दी जिनमें उपकरण मॉडल नंबर की आवश्यकता होती थी। | ||
===मैन्युअल फ़ाइल आवंटन=== | ===मैन्युअल फ़ाइल आवंटन=== | ||
Dओएस/360 को मूल रूप से क्रमादेशक को [[डायरेक्ट-एक्सेस स्टोरेज डिवाइस|डायरेक्ट-एक्सेस स्टोरेज उपकरण]] पर सभी फ़ाइलों का स्थान और आकार निर्दिष्ट करने की आवश्यकता थी। <code>EXTENT</code> ई> कार्ड उस वॉल्यूम को निर्दिष्ट करता है जिस पर सीमा स्थित है, आरंभिक निरपेक्ष ट्रैक और ट्रैक की संख्या। z/VSE के लिए एक फ़ाइल में विभिन्न वॉल्यूम पर 256 विस्तार तक हो सकते हैं। | |||
==ओएस जेसीएल== | ==ओएस जेसीएल== | ||
ओएस जेसीएल में तीन मूल कथन प्रकार होते हैं:<ref>Ashley and Fernandez, ''Job Control Language'', pp. 8, 23. There are also two additional statements, PROC and PEND, used to test JCL procedures.</ref> | |||
* <code>JOB</code> विवरण, जो कार्य की शुरुआत की पहचान करता है, और संपूर्ण कार्य के बारे में जानकारी, जैसे बिलिंग, रन प्राथमिकता, और समय और स्थान सीमा। | * <code>JOB</code> विवरण, जो कार्य की शुरुआत की पहचान करता है, और संपूर्ण कार्य के बारे में जानकारी, जैसे बिलिंग, रन प्राथमिकता, और समय और स्थान सीमा। | ||
* <code>EXEC</code> कथन, जो कार्यक्रम या प्रक्रिया की पहचान करता है<ref>A pre-stored set of "EXEC PGM=" and "DD" JCL commands which could be parameterized</ref> कार्य के इस चरण में निष्पादित होने के लिए,<br> और चरण के बारे में जानकारी, जिसमें किसी चरण को चलाने या छोड़ने की शर्तें भी | * <code>EXEC</code> कथन, जो कार्यक्रम या प्रक्रिया की पहचान करता है<ref>A pre-stored set of "EXEC PGM=" and "DD" JCL commands which could be parameterized</ref> कार्य के इस चरण में निष्पादित होने के लिए,<br> और चरण के बारे में जानकारी, जिसमें किसी चरण को चलाने या छोड़ने की शर्तें भी सम्मिलित हैं। | ||
* <code>DD</code> (डेटा परिभाषा) कथन, जो एक चरण में उपयोग की जाने वाली डेटा फ़ाइल की पहचान करते हैं, और उस फ़ाइल के बारे में विस्तृत जानकारी देते हैं। <code>DD</code> चरण के भीतर कथन किसी भी क्रम में हो सकते हैं। | * <code>DD</code> (डेटा परिभाषा) कथन, जो एक चरण में उपयोग की जाने वाली डेटा फ़ाइल की पहचान करते हैं, और उस फ़ाइल के बारे में विस्तृत जानकारी देते हैं। <code>DD</code> चरण के भीतर कथन किसी भी क्रम में हो सकते हैं। | ||
शुरुआत से ही, | शुरुआत से ही, ओएस परिवार के लिए जेसीएल (z/ओएस तक और इसमें सम्मिलित) अधिक लचीला और उपयोग में आसान था। | ||
निम्नलिखित उदाहरण सिंटैक्स की पुरानी शैली का उपयोग करते हैं जो 1964 में | निम्नलिखित उदाहरण सिंटैक्स की पुरानी शैली का उपयोग करते हैं जो 1964 में प्रणाली/360 के लॉन्च से ही प्रदान की गई थी। पुरानी सिंटैक्स अभी भी उन नौकरियों में काफी आम है जो केवल मामूली बदलावों के साथ दशकों से चल रही हैं। | ||
===जेसीएल कथनों को कोड करने के नियम=== | ===जेसीएल कथनों को कोड करने के नियम=== | ||
प्रत्येक | प्रत्येक जेसीएल कथन को पाँच क्षेत्रों में विभाजित किया गया है:<ref>Ashley and Fernandez, ''Job Control Language'', pp. 12–16.</ref> | ||
पहचानकर्ता-फ़ील्ड नाम-फ़ील्ड ऑपरेशन-फ़ील्ड | पहचानकर्ता-फ़ील्ड नाम-फ़ील्ड ऑपरेशन-फ़ील्ड मापदण्ड-फ़ील्ड टिप्पणियाँ-फ़ील्ड | ||
^ ^ ^ ^ | ^ ^ ^ ^ | ||
कोई जगह नहीं, कोई जगह नहीं, कोई जगह नहीं | कोई जगह नहीं, कोई जगह नहीं, कोई जगह नहीं | ||
Line 167: | Line 167: | ||
<var>पहचानकर्ता-फ़ील्ड</var> को <var>नाम-फ़ील्ड</var> के साथ जोड़ा जाना चाहिए, यानी उनके बीच कोई रिक्त स्थान नहीं होना चाहिए। | <var>पहचानकर्ता-फ़ील्ड</var> को <var>नाम-फ़ील्ड</var> के साथ जोड़ा जाना चाहिए, यानी उनके बीच कोई रिक्त स्थान नहीं होना चाहिए। | ||
* <var>पहचानकर्ता-फ़ील्ड</var> (<code>//</code>): पहचानकर्ता फ़ील्ड | * <var>पहचानकर्ता-फ़ील्ड</var> (<code>//</code>): पहचानकर्ता फ़ील्ड प्रणाली को इंगित करता है कि एक स्टेटमेंट डेटा के बजाय एक जेसीएल स्टेटमेंट है। पहचानकर्ता फ़ील्ड में निम्नलिखित सम्मिलित हैं: | ||
** डिलीमीटर स्टेटमेंट को छोड़कर, सभी जेसीएल स्टेटमेंट्स के कॉलम 1 और 2 में | ** डिलीमीटर स्टेटमेंट को छोड़कर, सभी जेसीएल स्टेटमेंट्स के कॉलम 1 और 2 में सम्मिलित हैं <code>//</code> | ||
** सीमांकक विवरण के कॉलम 1 और 2 में | ** सीमांकक विवरण के कॉलम 1 और 2 में सम्मिलित हैं <code>/*</code> | ||
** जेसीएल टिप्पणी विवरण के कॉलम 1, 2, और 3 में | ** जेसीएल टिप्पणी विवरण के कॉलम 1, 2, और 3 में सम्मिलित हैं <code>//*</code> | ||
* <var>नाम-फ़ील्ड</var>: नाम फ़ील्ड एक विशेष कथन की पहचान करता है ताकि अन्य कथन और | * <var>नाम-फ़ील्ड</var>: नाम फ़ील्ड एक विशेष कथन की पहचान करता है ताकि अन्य कथन और प्रणाली इसे संदर्भित कर सकें। जेसीएल कथनों के लिए, इसे इस प्रकार कोडित किया जाना चाहिए: | ||
** नाम कॉलम 3 से | ** नाम कॉलम 3 से प्रारंभ होना चाहिए। | ||
** नाम 1 से 8 अक्षरांकीय या राष्ट्रीय है (<code>$</code>, <code>#</code>, <code>@</code>) पात्र। | ** नाम 1 से 8 अक्षरांकीय या राष्ट्रीय है (<code>$</code>, <code>#</code>, <code>@</code>) पात्र। | ||
** पहला अक्षर वर्णानुक्रमिक होना चाहिए। | ** पहला अक्षर वर्णानुक्रमिक होना चाहिए। | ||
** नाम के बाद कम से कम एक रिक्त स्थान अवश्य होना चाहिए। | ** नाम के बाद कम से कम एक रिक्त स्थान अवश्य होना चाहिए। | ||
* <var>ऑपरेशन-फ़ील्ड</var>: ऑपरेशन फ़ील्ड स्टेटमेंट के प्रकार को निर्दिष्ट करता है, या, | * <var>ऑपरेशन-फ़ील्ड</var>: ऑपरेशन फ़ील्ड स्टेटमेंट के प्रकार को निर्दिष्ट करता है, या, संकेत स्टेटमेंट के लिए, संकेत को निर्दिष्ट करता है। <var>ऑपरेशन-फ़ील्ड</var> को इस प्रकार कोडित किया जाना चाहिए: | ||
** ऑपरेशन फ़ील्ड में कथन के लिए सिंटैक्स बॉक्स में वर्ण | ** ऑपरेशन फ़ील्ड में कथन के लिए सिंटैक्स बॉक्स में वर्ण सम्मिलित होते हैं। | ||
** ऑपरेशन नाम फ़ील्ड का अनुसरण करता है। | ** ऑपरेशन नाम फ़ील्ड का अनुसरण करता है। | ||
** ऑपरेशन से पहले और बाद में कम से कम एक रिक्त होना चाहिए। | ** ऑपरेशन से पहले और बाद में कम से कम एक रिक्त होना चाहिए। | ||
** ऑपरेशन में से एक होगा <code>JOB</code>, <code>EXEC</code> और <code>DD</code>. | ** ऑपरेशन में से एक होगा <code>JOB</code>, <code>EXEC</code> और <code>DD</code>. | ||
* <var> | * <var>मापदण्ड-फ़ील्ड</var>: मापदण्ड फ़ील्ड, जिसे कभी-कभी ऑपरेंड फ़ील्ड भी कहा जाता है, में अल्पविराम द्वारा अलग किए गए मापदण्ड होते हैं। मापदण्ड फ़ील्ड को इस प्रकार कोडित किया जाना चाहिए: | ||
** | ** मापदण्ड फ़ील्ड ऑपरेशन फ़ील्ड का अनुसरण करता है। | ||
** | ** मापदण्ड फ़ील्ड के पहले कम से कम एक रिक्त स्थान होना चाहिए। | ||
** | ** मापदण्ड फ़ील्ड में मापदण्ड होते हैं जो कीवर्ड होते हैं जिनका उपयोग प्रोग्राम या डेटासेट नाम जैसी जानकारी प्रदान करने के लिए स्टेटमेंट में किया जाता है। | ||
* <var>टिप्पणियाँ-फ़ील्ड</var>: इसमें [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] | * <var>टिप्पणियाँ-फ़ील्ड</var>: इसमें [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)|टिप्पणी (परिकलक प्रोग्रामिंग)]] सम्मिलित है। <var>टिप्पणियाँ-फ़ील्ड</var> को निम्नानुसार कोडित किया जाना चाहिए: | ||
** टिप्पणी फ़ील्ड | ** टिप्पणी फ़ील्ड मापदण्ड फ़ील्ड का अनुसरण करती है। | ||
** टिप्पणी फ़ील्ड के पहले कम से कम एक रिक्त स्थान अवश्य होना चाहिए। | ** टिप्पणी फ़ील्ड के पहले कम से कम एक रिक्त स्थान अवश्य होना चाहिए। | ||
===कीवर्ड | ===कीवर्ड मापदण्ड=== | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
//NEWFILE DD DSN=MYFILE01,UNIT=DISK,SPACE=(TRK,80,10), | //NEWFILE DD DSN=MYFILE01,UNIT=DISK,SPACE=(TRK,80,10), | ||
Line 195: | Line 195: | ||
// DISP=(NEW,CATLG,DELETE) | // DISP=(NEW,CATLG,DELETE) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ओएस जेसीएल स्टेटमेंट के सभी प्रमुख | ओएस जेसीएल स्टेटमेंट के सभी प्रमुख मापदण्ड कीवर्ड द्वारा पहचाने जाते हैं और इन्हें किसी भी क्रम में प्रस्तुत किया जा सकता है। इनमें से कुछ में दो या दो से अधिक उप-मापदण्ड होते हैं, जैसे <code>SPACE</code> (एक नई फ़ाइल को कितना डिस्क स्थान आवंटित करना है) और <code>DCB</code> (फ़ाइल के लेआउट का विस्तृत विवरण) उपरोक्त उदाहरण में। उप-मापदण्ड कभी-कभी स्थितीय होते हैं, जैसे कि <code>SPACE</code>, परन्तु सबसे जटिल मापदण्ड, जैसे <code>DCB</code>, कीवर्ड उप-मापदण्ड हैं। | ||
स्थितीय | स्थितीय मापदण्ड को कीवर्ड मापदण्ड से पहले होना चाहिए। कीवर्ड मापदण्ड हमेशा बराबर चिह्न का उपयोग करके किसी कीवर्ड को मान निर्दिष्ट करते हैं (<code>=</code>).<ref>Ashley and Fernandez, ''Job Control Language'', pp. 13–15.</ref> | ||
===डेटा एक्सेस (डीडी स्टेटमेंट)=== <code>DD</code> e> स्टेटमेंट का उपयोग डेटा को संदर्भित करने के लिए किया जाता है। यह कथन किसी प्रोग्राम के डेटासेट के आंतरिक विवरण को बाहरी उपकरणों पर डेटा से जोड़ता है: डिस्क, टेप, कार्ड, प्रिंटर इत्यादि। डीडी | ===डेटा एक्सेस (डीडी स्टेटमेंट)=== <code>DD</code> e> | ||
स्टेटमेंट का उपयोग डेटा को संदर्भित करने के लिए किया जाता है। यह कथन किसी प्रोग्राम के डेटासेट के आंतरिक विवरण को बाहरी उपकरणों पर डेटा से जोड़ता है: डिस्क, टेप, कार्ड, प्रिंटर इत्यादि। डीडी उपकरण प्रकार (उदाहरण के लिए '181', '2400-5',') जैसी जानकारी प्रदान कर सकता है। टेप'), टेप या डिस्क के लिए एक [[वॉल्यूम (कंप्यूटिंग)]] संख्या, और डेटा फ़ाइल का विवरण, जिसे कहा जाता है <code>DCB</code> प्रोग्राम में [[डेटा नियंत्रण ब्लॉक]] (डीसीबी) के बाद उपमापदण्ड का उपयोग फ़ाइल की पहचान करने के लिए किया जाता है। | |||
फ़ाइल का वर्णन करने वाली जानकारी तीन स्रोतों से आ सकती है: डीडी कार्ड की जानकारी, टेप या डिस्क पर संग्रहीत मौजूदा फ़ाइल के लिए डेटासेट लेबल जानकारी, और प्रोग्राम में कोडित डीसीबी मैक्रो। जब फ़ाइल खोली जाती है तो यह डेटा मर्ज हो जाता है, जिसमें डीडी जानकारी को लेबल जानकारी पर प्राथमिकता दी जाती है, और डीसीबी जानकारी को दोनों पर प्राथमिकता दी जाती है। अद्यतन विवरण फिर डेटासेट लेबल पर वापस लिखा जाता है। यदि गलत डीसीबी जानकारी प्रदान की जाती है तो इससे अनपेक्षित परिणाम हो सकते हैं।<ref>{{cite book|last1=IBM Corporation|title=OS/VS MVS Data Management Services Guide|date=August 1978|url=http://www.prycroft6.com.au/misc/download/GC26-3875-0_MVS_DataMgmtSrvcsGde_Aug78OCR.pdf|access-date=Oct 17, 2014|ref=DataMgmt}}</ref> | फ़ाइल का वर्णन करने वाली जानकारी तीन स्रोतों से आ सकती है: डीडी कार्ड की जानकारी, टेप या डिस्क पर संग्रहीत मौजूदा फ़ाइल के लिए डेटासेट लेबल जानकारी, और प्रोग्राम में कोडित डीसीबी मैक्रो। जब फ़ाइल खोली जाती है तो यह डेटा मर्ज हो जाता है, जिसमें डीडी जानकारी को लेबल जानकारी पर प्राथमिकता दी जाती है, और डीसीबी जानकारी को दोनों पर प्राथमिकता दी जाती है। अद्यतन विवरण फिर डेटासेट लेबल पर वापस लिखा जाता है। यदि गलत डीसीबी जानकारी प्रदान की जाती है तो इससे अनपेक्षित परिणाम हो सकते हैं।<ref>{{cite book|last1=IBM Corporation|title=OS/VS MVS Data Management Services Guide|date=August 1978|url=http://www.prycroft6.com.au/misc/download/GC26-3875-0_MVS_DataMgmtSrvcsGde_Aug78OCR.pdf|access-date=Oct 17, 2014|ref=DataMgmt}}</ref> | ||
ऊपर सूचीबद्ध मापदंडों और विभिन्न एक्सेस विधियों और उपकरणों के लिए विशिष्ट जानकारी के कारण डीडी स्टेटमेंट सबसे जटिल जेसीएल स्टेटमेंट है। एक आईबीएम संदर्भ में डीडी स्टेटमेंट का मैनुअल विवरण 130 से अधिक पृष्ठों का है - जो कि JOB और EXEC स्टेटमेंट के संयुक्त विवरण से दोगुने से भी अधिक है।<ref>{{cite book |last1=IBM Corporation |title=IBM System/360 Operating System: Job Control Language Reference |date=June 1971 |url=http://www.bitsavers.org/pdf/ibm/360/os/R20.1_Mar71/GC28-6704-1_OS_JCL_Reference_Rel_20.1_Jun71.pdf |access-date=June 25, 2019}}</ref> | ऊपर सूचीबद्ध मापदंडों और विभिन्न एक्सेस विधियों और उपकरणों के लिए विशिष्ट जानकारी के कारण डीडी स्टेटमेंट सबसे जटिल जेसीएल स्टेटमेंट है। एक आईबीएम संदर्भ में डीडी स्टेटमेंट का मैनुअल विवरण 130 से अधिक पृष्ठों का है - जो कि JOB और EXEC स्टेटमेंट के संयुक्त विवरण से दोगुने से भी अधिक है।<ref>{{cite book |last1=IBM Corporation |title=IBM System/360 Operating System: Job Control Language Reference |date=June 1971 |url=http://www.bitsavers.org/pdf/ibm/360/os/R20.1_Mar71/GC28-6704-1_OS_JCL_Reference_Rel_20.1_Jun71.pdf |access-date=June 25, 2019}}</ref> | ||
डीडी स्टेटमेंट इनलाइन डेटा को | डीडी स्टेटमेंट इनलाइन डेटा को कार्य स्ट्रीम में इंजेक्ट करने की अनुमति देता है। यह IDCAMS, SORT इत्यादि जैसी उपयोगिताओं को नियंत्रण जानकारी प्रदान करने के साथ-साथ कार्यक्रमों को इनपुट डेटा प्रदान करने के लिए उपयोगी है। | ||
===उपकरण स्वतंत्रता=== | |||
शुरुआत से ही, संचालन प्रणाली के ओएस परिवार के लिए जेसीएल ने उच्च स्तर की उपकरण स्वतंत्रता की पेशकश की। यहां तक कि नई फाइलों के लिए भी जिन्हें काम खत्म होने के बाद रखा जाना था, कोई भी उपकरण प्रकार को सामान्य शब्दों में निर्दिष्ट कर सकता है, उदाहरण के लिए, <code>UNIT=DISK</code>, <code>UNIT=TAPE</code>, या <code>UNIT=SYSSQ</code> (टेप या डिस्क). बेशक, अगर यह मायने रखता है तो कोई मॉडल नंबर या यहां तक कि एक विशिष्ट उपकरण पता भी निर्दिष्ट कर सकता है।<ref>McQuillen, ''System/360–370 Assembler Language'', pp. 297, 406–407.</ref> | |||
Line 215: | Line 218: | ||
====PROC और PEND==== | ====PROC और PEND==== | ||
के साथ प्रक्रिया को समाप्त करके प्रक्रियाओं को | के साथ प्रक्रिया को समाप्त करके प्रक्रियाओं को कार्य स्ट्रीम में भी सम्मिलित किया जा सकता है <code>// PEND</code> कथन, फिर इसे नाम से पुकारना वैसा ही था जैसे कि यह एक प्रक्रिया पुस्तकालय में हो। | ||
उदाहरण के लिए: | उदाहरण के लिए: | ||
Line 228: | Line 231: | ||
</वाक्यविन्यास हाइलाइट> | </वाक्यविन्यास हाइलाइट> | ||
=== | ===मापदण्डीकृत प्रक्रियाएं=== | ||
ओएस जेसीएल प्रक्रियाओं को | ओएस जेसीएल प्रक्रियाओं को प्रारंभ से ही मानकीकृत किया गया था, जिससे वे [[मैक्रो असेंबलर]] या यहां तक कि सरल [[सबरूटीन]] की तरह बन गए और इस प्रकार विभिन्न स्थितियों में उनके [[कोड का पुन: उपयोग]] बढ़ गया।<ref>Ashley and Fernandez, ''Job Control Language'', pp. 129–131.</ref> | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
//MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000 | //MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000 | ||
Line 237: | Line 240: | ||
.... | .... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
इस उदाहरण में, एम्परसेंड से | इस उदाहरण में, एम्परसेंड से प्रारंभ होने वाले सभी मान<code>&</code>वे मापदण्ड हैं जो तब निर्दिष्ट किए जाएंगे जब कोई नौकरी अनुरोध करती है कि प्रक्रिया का उपयोग किया जाए। PROC कथन, प्रक्रिया को एक नाम देने के अलावा, क्रमादेशक को प्रत्येक मापदण्ड के लिए डिफ़ॉल्ट मान निर्दिष्ट करने की अनुमति देता है। इसलिए कोई इस उदाहरण में एक प्रक्रिया का उपयोग करके कई अलग-अलग आकार और लेआउट की नई फ़ाइलें बना सकता है। उदाहरण के लिए: | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
//JOB01 JOB .......... | //JOB01 JOB .......... | ||
Line 272: | Line 275: | ||
//INPUT01 DD DSN=*.STEP01.MYPR01.NEWFILE | //INPUT01 DD DSN=*.STEP01.MYPR01.NEWFILE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
कहाँ <code>DSN=*.STEP01.MYPR01.NEWFILE</code> का अर्थ है पहचानी गई फ़ाइल का उपयोग करें <code>NEWFILE</code> चरण में <code>MYPR01</code> चरण-दर-चरण उपयोग की जाने वाली प्रक्रिया का <code>STEP01</code> इस नौकरी का. प्रक्रिया के नाम के बजाय उस चरण के नाम का उपयोग करना, जिसे प्रक्रिया कहा जाता है, एक | कहाँ <code>DSN=*.STEP01.MYPR01.NEWFILE</code> का अर्थ है पहचानी गई फ़ाइल का उपयोग करें <code>NEWFILE</code> चरण में <code>MYPR01</code> चरण-दर-चरण उपयोग की जाने वाली प्रक्रिया का <code>STEP01</code> इस नौकरी का. प्रक्रिया के नाम के बजाय उस चरण के नाम का उपयोग करना, जिसे प्रक्रिया कहा जाता है, एक क्रमादेशक को एक ही कार्य में एक ही प्रक्रिया को कई बार उपयोग करने की अनुमति देता है, बिना किसी भ्रम के कि रेफरबैक में प्रक्रिया का कौन सा उदाहरण उपयोग किया जाता है। | ||
===टिप्पणियाँ=== | ===टिप्पणियाँ=== | ||
जेसीएल फ़ाइलें लंबी और जटिल हो सकती हैं, और भाषा को पढ़ना आसान नहीं है। ओएस जेसीएल | जेसीएल फ़ाइलें लंबी और जटिल हो सकती हैं, और भाषा को पढ़ना आसान नहीं है। ओएस जेसीएल क्रमादेशक्स को दो प्रकार की व्याख्यात्मक टिप्पणी सम्मिलित करने की अनुमति देता है: | ||
*जेसीएल कथन के समान ही। उन्हें एक निरंतरता चरित्र (पारंपरिक रूप से) रखकर बढ़ाया जा सकता है<code>X</code>) कॉलम 72 में, उसके बाद<code>// </code>अगली पंक्ति के कॉलम 1-3 में। | *जेसीएल कथन के समान ही। उन्हें एक निरंतरता चरित्र (पारंपरिक रूप से) रखकर बढ़ाया जा सकता है<code>X</code>) कॉलम 72 में, उसके बाद<code>// </code>अगली पंक्ति के कॉलम 1-3 में। | ||
*जिन पंक्तियों में केवल टिप्पणी होती है, उनका उपयोग अक्सर स्थानीय विवरणों के बजाय जेसीएल की समग्र संरचना के बारे में प्रमुख बिंदुओं को समझाने के लिए किया जाता है। केवल-टिप्पणी पंक्तियों का उपयोग लंबी, जटिल जेसीएल फ़ाइलों को अनुभागों में विभाजित करने के लिए भी किया जाता है। | *जिन पंक्तियों में केवल टिप्पणी होती है, उनका उपयोग अक्सर स्थानीय विवरणों के बजाय जेसीएल की समग्र संरचना के बारे में प्रमुख बिंदुओं को समझाने के लिए किया जाता है। केवल-टिप्पणी पंक्तियों का उपयोग लंबी, जटिल जेसीएल फ़ाइलों को अनुभागों में विभाजित करने के लिए भी किया जाता है। | ||
Line 290: | Line 293: | ||
===इनपुट फ़ाइलों को जोड़ना=== | ===इनपुट फ़ाइलों को जोड़ना=== | ||
ओएस जेसीएल | ओएस जेसीएल क्रमादेशक को इनपुट फ़ाइलों को संयोजित (श्रृंखला) करने की अनुमति देता है ताकि वे प्रोग्राम में एक फ़ाइल के रूप में दिखाई दें, उदाहरण के लिए | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
Line 299: | Line 302: | ||
दूसरे और तीसरे कथन का नाम फ़ील्ड में कोई मूल्य नहीं है, इसलिए ओएस उन्हें संयोजन के रूप में मानता है। फ़ाइलें समान मूल प्रकार (लगभग हमेशा अनुक्रमिक) की होनी चाहिए, और उनकी रिकॉर्ड लंबाई समान होनी चाहिए, हालांकि ब्लॉक की लंबाई समान नहीं होनी चाहिए। | दूसरे और तीसरे कथन का नाम फ़ील्ड में कोई मूल्य नहीं है, इसलिए ओएस उन्हें संयोजन के रूप में मानता है। फ़ाइलें समान मूल प्रकार (लगभग हमेशा अनुक्रमिक) की होनी चाहिए, और उनकी रिकॉर्ड लंबाई समान होनी चाहिए, हालांकि ब्लॉक की लंबाई समान नहीं होनी चाहिए। | ||
ओएस के शुरुआती संस्करणों में (निश्चित रूप से ओएस/360 R21.8 से पहले) ब्लॉक की लंबाई घटते क्रम में होनी चाहिए, या उपयोगकर्ता को प्रत्येक इंस्टेंस का निरीक्षण करना होगा और नामांकित DD स्टेटमेंट में पाई गई अधिकतम ब्लॉक लंबाई को जोड़ना होगा, उदाहरण के लिए , | |||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
Line 308: | Line 311: | ||
ओएस के बाद के संस्करणों में (निश्चित रूप से उपयुक्त चयन योग्य इकाइयों के साथ ओएस/एमवीएस आर3.7 के बाद) ओएस स्वयं, आवंटन के दौरान, प्रत्येक उदाहरण का एक संयोजन में निरीक्षण करेगा और जो अधिकतम ब्लॉक लंबाई पाई गई थी उसे प्रतिस्थापित कर देगा। | ओएस के बाद के संस्करणों में (निश्चित रूप से उपयुक्त चयन योग्य इकाइयों के साथ ओएस/एमवीएस आर3.7 के बाद) ओएस स्वयं, आवंटन के दौरान, प्रत्येक उदाहरण का एक संयोजन में निरीक्षण करेगा और जो अधिकतम ब्लॉक लंबाई पाई गई थी उसे प्रतिस्थापित कर देगा। | ||
एक सामान्य फ़ॉलबैक केवल | एक सामान्य फ़ॉलबैक केवल उपकरण पर अधिकतम संभव ब्लॉक लंबाई निर्धारित करना था, और उसे नामित डीडी स्टेटमेंट पर निर्दिष्ट करना था, उदाहरण के लिए, | ||
<syntaxhighlight lang="jcl"> | <syntaxhighlight lang="jcl"> | ||
Line 364: | Line 367: | ||
युक्त चरणों को पढ़कर ध्यान दें <code>COND</code> कथनों को पीछे की ओर मोड़ने से कोई भी उन्हें आसानी से समझ सकता है। यह [[स्थानान्तरण (तर्क)]]तर्क) का एक उदाहरण है। | युक्त चरणों को पढ़कर ध्यान दें <code>COND</code> कथनों को पीछे की ओर मोड़ने से कोई भी उन्हें आसानी से समझ सकता है। यह [[स्थानान्तरण (तर्क)]]तर्क) का एक उदाहरण है। | ||
हालाँकि, बाद में IBM ने | हालाँकि, बाद में IBM ने जेसीएल में IF कंडीशन पेश की, जिससे क्रमादेशक्स के लिए कोडिंग को बनाए रखते हुए कुछ हद तक आसान बना दिया गया <code>COND</code> मापदण्ड (मौजूदा जेसीएल में परिवर्तन करने से बचने के लिए {{code|COND parm}} प्रयोग किया जाता है)। <code>COND</code> ई> मापदण्ड पर भी निर्दिष्ट किया जा सकता है <code>JOB</code> कथन। यदि ऐसा है तो प्रणाली किसी कार्य के प्रत्येक चरण के लिए समान रिटर्न कोड परीक्षण करता है। यदि कार्य स्टेटमेंट रिटर्न कोड परीक्षण संतुष्ट हो जाता है, तो नौकरी समाप्त हो जाती है।<ref>{{cite web|last1=IBM Corporation|title=JOB और EXEC कथनों पर COND मापदंडों का संबंध|url=https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.ieab500/iea3b5_Relationship_of_the_COND_parameters_on_JOB_and_EXEC_statements.htm|website=IBM Knowledge Center|access-date=Feb 21, 2018}}</ref> | ||
===उपयोगिताएँ=== | ===उपयोगिताएँ=== | ||
नौकरियां डेटा के प्रसंस्करण में सहायता के लिए कई [[आईबीएम मेनफ्रेम उपयोगिता कार्यक्रम]]ों का उपयोग करती हैं। बैच | नौकरियां डेटा के प्रसंस्करण में सहायता के लिए कई [[आईबीएम मेनफ्रेम उपयोगिता कार्यक्रम]]ों का उपयोग करती हैं। बैच संसाधन में उपयोगिताएँ सबसे उपयोगी होती हैं। उपयोगिताओं को तीन सेटों में बांटा जा सकता है: | ||
* डेटा सेट उपयोगिताएँ - डेटा सेट बनाएं, प्रिंट करें, कॉपी करें, स्थानांतरित करें और हटाएं। | * डेटा सेट उपयोगिताएँ - डेटा सेट बनाएं, प्रिंट करें, कॉपी करें, स्थानांतरित करें और हटाएं। | ||
* | * प्रणाली यूटिलिटीज़ - कैटलॉग और अन्य प्रणाली जानकारी को बनाए रखें और प्रबंधित करें। | ||
* एक्सेस मेथड सेवाएँ - [[ वर्चुअल स्टोरेज एक्सेस विधि ]] (वीएसएएम) और गैर-वीएसएएम डेटा सेट को प्रोसेस करें। | * एक्सेस मेथड सेवाएँ - [[ वर्चुअल स्टोरेज एक्सेस विधि ]] (वीएसएएम) और गैर-वीएसएएम डेटा सेट को प्रोसेस करें। | ||
Line 378: | Line 381: | ||
|quote=JCL in particular is notoriously user hostile and has been called "the worst programming language ever designed" by Fred Brooks ... (http://dtsc.dfw.ibm.com/MVSDS/'HTTPD2.APPS.ZOSCLASS.PDF(ZCLA...). | |quote=JCL in particular is notoriously user hostile and has been called "the worst programming language ever designed" by Fred Brooks ... (http://dtsc.dfw.ibm.com/MVSDS/'HTTPD2.APPS.ZOSCLASS.PDF(ZCLA...). | ||
|date=April 6, 2020 |access-date=May 7, 2020 | |date=April 6, 2020 |access-date=May 7, 2020 | ||
|title=Newly unemployed New Yorkers are being frustrated by 1970s-era technology(nytimes.com)}}</ref> जैसा कि जेसीएल पर एक निर्देशात्मक पुस्तक में पूछा गया है, जब | |title=Newly unemployed New Yorkers are being frustrated by 1970s-era technology(nytimes.com)}}</ref> जैसा कि जेसीएल पर एक निर्देशात्मक पुस्तक में पूछा गया है, जब कार्य नियंत्रण भाषा की बात आती है तो परिष्कृत क्रमादेशक भी झिझकते क्यों हैं?<ref name="jcl-self"/> पुस्तक में कहा गया है कि कई क्रमादेशक या तो वास्तव में यह समझे बिना कि उन्होंने क्या किया, नियंत्रण कार्ड की नकल की, या प्रचलित अफवाहों पर विश्वास किया कि जेसीएल भयानक था, और केवल 'डाई-हार्ड' परिकलक-प्रकारों ने ही इसे समझा और जेसीएल के बयानों का पता लगाने का काम सौंपा। किसी और को।<ref name="jcl-self">Ashley and Fernandez, ''Job Control Language'', pp. vii–viii, back cover.</ref> ऐसा रवैया प्रोग्रामिंग भाषा की पाठ्यपुस्तकों में पाया जा सकता है, जो भाषा पर ध्यान केंद्रित करना पसंद करते हैं न कि इसमें प्रोग्राम कैसे चलाए जाते हैं। जैसा कि एक [[फोरट्रान IV]] पाठ्यपुस्तक ने [[WATFOR]] कंपाइलर से संभावित त्रुटि संदेशों को सूचीबद्ध करते समय कहा था: क्या आप इतने मूर्ख हैं कि अपने स्वयं के 'डीडी' प्रणाली नियंत्रण कार्ड लिखने का प्रयास कर रहे हैं? तुरंत बंद करो और रुको; सहायता के लिए दौड़ें, चलें नहीं।<ref>{{cite book | title=Introduction to FORTRAN IV Programming: Using the WATFOR/WATFIV Compilers | first=John M. | last=Blatt | publisher=Goodyear Publishing Company | location=Pacific Palisades, California | date=1971 | page=276 | isbn=0-87620-440-X}}</ref> | ||
फिर भी, जेसीएल में गई कुछ पुस्तकों में इस बात पर विस्तार से जोर दिया गया है कि एक बार जब इसे कम से कम कुछ हद तक कुशल डिग्री तक सीख लिया जाता है, तो व्यक्ति को इंस्टॉलेशन-वाइड डिफ़ॉल्ट से मुक्ति मिल जाती है और आईबीएम | फिर भी, जेसीएल में गई कुछ पुस्तकों में इस बात पर विस्तार से जोर दिया गया है कि एक बार जब इसे कम से कम कुछ हद तक कुशल डिग्री तक सीख लिया जाता है, तो व्यक्ति को इंस्टॉलेशन-वाइड डिफ़ॉल्ट से मुक्ति मिल जाती है और आईबीएम प्रणाली आपके कार्यभार को कैसे संसाधित करता है, इस पर बेहतर नियंत्रण मिलता है।<ref name="jcl-self"/><ref name="asm-jcl"/> एक अन्य पुस्तक ने जटिलता पर टिप्पणी की परन्तु कहा, हिम्मत रखो। [पिछले अध्याय] से आपको जो जेसीएल क्षमता प्राप्त होगी वह वह सब है जिसकी अधिकांश क्रमादेशक को कभी आवश्यकता होगी।<ref name="asm-jcl">McQuillen, ''System/360–370 Assembler Language'', pp. 406–407.</ref> | ||
==कार्य प्रवेश नियंत्रण भाषा== | ==कार्य प्रवेश नियंत्रण भाषा== | ||
आईबीएम मेनफ्रेम | आईबीएम मेनफ्रेम प्रणाली पर कार्य प्रवेश नियंत्रण भाषा या जेईसीएल संकेत लैंग्वेज कंट्रोल स्टेटमेंट का सेट है जो [[ अटेरन ]] उप-प्रणाली के लिए जानकारी प्रदान करता है - जेड/ओएस पर कार्य प्रवेश उप-प्रणाली 2/3 या आईबीएम पावर (सॉफ्टवेयर) | वीएसई (संचालन) के लिए वीएसई/पावर प्रणाली)|जेड/वीएसई। जेईसीएल स्टेटमेंट निर्दिष्ट कर सकते हैं कि किस नेटवर्क परिकलक पर कार्य स्ट्रीम चलाना है, कब कार्य चलाना है और परिणामी आउटपुट कहां भेजना है।<ref name=Brown>{{cite book|last=Brown|first=Gary DeWard|title=ज़ोस जेसीएल|year=2002|publisher=John Wiley & Sons|isbn=9780471426738|url=https://books.google.com/books?id=K8kMJa8arlIC&dq=jecl+definition&pg=PA3|access-date=2014-05-05}}</ref> | ||
जेईसीएल [[ कार्य नियंत्रण भाषा ]] (जेसीएल) से अलग है, जो | जेईसीएल [[ कार्य नियंत्रण भाषा ]] (जेसीएल) से अलग है, जो संचालन प्रणाली को निर्देश देता है कि कार्य कैसे चलाया जाए। | ||
तीनों परिवेशों के लिए जेईसीएल के अलग-अलग संस्करण हैं। | तीनों परिवेशों के लिए जेईसीएल के अलग-अलग संस्करण हैं। | ||
===ओएस/360=== | ===ओएस/360=== | ||
ओएस/360 रिमोट कार्य प्रवेश (प्रोग्राम नंबर 360S-RC-536) के लिए कार्य प्रवेश नियंत्रण भाषा के शुरुआती संस्करण में पहचानकर्ता का उपयोग किया गया था<code>..</code>इनपुट रिकॉर्ड के कॉलम 1-2 में और एक एकल नियंत्रण कथन सम्मिलित है: <code>JED</code> (नौकरी प्रवेश परिभाषा)। वर्कस्टेशन संकेत जैसे <code>LOGON</code>, <code>LOGOFF</code>, और <code>STATUS</code> से भी शुरुआत हुई<code>..</code> .<ref>{{cite book|last=IBM Corporation|title=IBM System/360 Operating System Remote Job Entry|year=1968|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/rje/C30-2006-1_Remote_Job_Entry_May68.pdf|access-date=2014-05-05}}</ref> | |||
====प्री-जेईएस जेईसीएल==== | ====प्री-जेईएस जेईसीएल==== | ||
हालाँकि यह शब्द अभी तक विकसित नहीं हुआ था, [[ह्यूस्टन स्वचालित स्पूलिंग प्राथमिकता]] में | हालाँकि यह शब्द अभी तक विकसित नहीं हुआ था, [[ह्यूस्टन स्वचालित स्पूलिंग प्राथमिकता]] में कार्य प्रवेश उप-प्रणाली 2/3 के जेईसीएल के समान कार्यक्षमता थी, जिसमें सम्मिलित है <code>/*</code> वाक्य - विन्यास। | ||
===जेड/ओएस=== | ===जेड/ओएस=== | ||
JES2 के लिए जेईसीएल स्टेटमेंट्स से | JES2 के लिए जेईसीएल स्टेटमेंट्स से प्रारंभ होते हैं <code>/*</code>, JES3 के लिए वे शुरुआत करते हैं <code>//*</code>, रिमोट को छोड़कर<code>/*SIGNON</code>और<code>/*SIGNOFF</code>आदेश. दोनों प्रणालियों के लिए संकेत पूरी तरह से अलग हैं। | ||
====जेईएस2 जेईसीएल==== | ====जेईएस2 जेईसीएल==== | ||
निम्नलिखित JES2 जेईसीएल कथनों का उपयोग z/ | निम्नलिखित JES2 जेईसीएल कथनों का उपयोग z/ओएस 1.2.0 में किया जाता है।<ref>{{cite web|last=IBM Corporation|title=Job Entry Subsystem 2 (JES2) Control Statements|url=http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/iea2b510/1.1.2?SHELF=EZ2ZO103&DT=20010626133938&CASE=|work=z/OS V1R2.0 MVS JCL|access-date=February 25, 2013|archive-date=October 18, 2015|archive-url=https://web.archive.org/web/20151018201305/http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/iea2b510/1.1.2?SHELF=EZ2ZO103&DT=20010626133938&CASE=|url-status=dead}}</ref> | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 434: | Line 437: | ||
====जेईएस3 जेईसीएल==== | ====जेईएस3 जेईसीएल==== | ||
निम्नलिखित JES3 जेईसीएल कथनों का उपयोग z/ | निम्नलिखित JES3 जेईसीएल कथनों का उपयोग z/ओएस 1.2.0 में किया जाता है<ref>{{cite web|last=IBM Corporation|title=Job Entry Subsystem 3 (JES3) Control Statements|url=http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/iea2b510/1.1.2?SHELF=EZ2ZO103&DT=20010626133938&CASE=|work=z/OS V1R2.0 MVS JCL|access-date=February 25, 2013|archive-date=October 18, 2015|archive-url=https://web.archive.org/web/20151018201305/http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/iea2b510/1.1.2?SHELF=EZ2ZO103&DT=20010626133938&CASE=|url-status=dead}}</ref> | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 471: | Line 474: | ||
===z/VSE=== | ===z/VSE=== | ||
वीएसई के लिए जेईसीएल स्टेटमेंट 'से | वीएसई के लिए जेईसीएल स्टेटमेंट 'से प्रारंभ होते हैं<code>* $$</code>' (एकल स्थान पर ध्यान दें)। कार्य प्रवेश नियंत्रण भाषा जेसीएल नौकरियों की शुरुआत और अंत पंक्तियों को परिभाषित करती है। यह [[वीएसई (ऑपरेटिंग सिस्टम)|वीएसई (संचालन प्रणाली)]]/[[आईबीएम पावर (सॉफ्टवेयर)]] को सलाह देता है कि यह काम कैसे संभाला जाता है। जेईसीएल विवरण नौकरी का नाम (वीएसई/पावर द्वारा प्रयुक्त), वह वर्ग जिसमें नौकरी संसाधित की जाती है, और नौकरी का स्वभाव (यानी) को परिभाषित करते हैं। <code>D</code>, <code>L</code>, <code>K</code>, <code>H</code>). | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 489: | Line 492: | ||
| <code>* $$ PUN</code> || Specifies characteristics of spooled punch files || <code>* $$ PUN DISP=T,TADDR=280</code> | | <code>* $$ PUN</code> || Specifies characteristics of spooled punch files || <code>* $$ PUN DISP=T,TADDR=280</code> | ||
|- | |- | ||
| <code>* $$ SLI</code> || Inserts data ("book") from source statement library into the input stream|| <code>* $$ SLI A. | | <code>* $$ SLI</code> || Inserts data ("book") from source statement library into the input stream|| <code>* $$ SLI A.जेसीएल1</code> | ||
|- | |- | ||
| <code>* $$ DATA</code> || Inserts data from the card reader into a book retrieved from the source statement library|| <code>* $$ DATA INPUT1</code> | | <code>* $$ DATA</code> || Inserts data from the card reader into a book retrieved from the source statement library|| <code>* $$ DATA INPUT1</code> | ||
Line 503: | Line 506: | ||
==अन्य | ==अन्य प्रणाली== | ||
{{For|Other (non-IBM) Job Control Languages|Job control (computing)}} | {{For|Other (non-IBM) Job Control Languages|Job control (computing)}} | ||
अन्य मेनफ्रेम बैच | अन्य मेनफ्रेम बैच संसाधन प्रणाली में किसी न किसी प्रकार की कार्य नियंत्रण भाषा होती थी, चाहे उसे ऐसा कहा जाए या नहीं; उनका सिंटैक्स आईबीएम संस्करणों से पूरी तरह से अलग था, परन्तु वे आम तौर पर समान क्षमताएं प्रदान करते थे। [[इंटरैक्टिव कंप्यूटिंग]] प्रणाली | ||
संकेत भाषाएँ सम्मिलित करें - संकेत फ़ाइलें (जैसे PCDओएस .bat फ़ाइलें) को गैर-इंटरैक्टिव रूप से चलाया जा सकता है, परन्तु ये सामान्यतः जेसीएल की तरह अप्राप्य नौकरियों को चलाने के लिए उतना मजबूत वातावरण प्रदान नहीं करते हैं। कुछ परिकलक प्रणाली पर कार्य नियंत्रण भाषा और इंटरैक्टिव संकेत भाषा भिन्न हो सकती है। उदाहरण के लिए, z/ओएस प्रणाली पर [[समय साझा करने का विकल्प]] बैच कार्य के लिए जेसीएल के साथ-साथ संकेत भाषाओं के रूप में [[CLIST]] या [[Rexx]] का उपयोग करता है। अन्य प्रणालियों पर ये समान हो सकते हैं। | |||
== यह भी देखें == | == यह भी देखें == | ||
Line 535: | Line 538: | ||
श्रेणी:स्क्रिप्टिंग भाषाएँ | श्रेणी:स्क्रिप्टिंग भाषाएँ | ||
श्रेणी:कार्य शेड्यूलिंग | श्रेणी:कार्य शेड्यूलिंग | ||
श्रेणी:आईबीएम मेनफ्रेम | श्रेणी:आईबीएम मेनफ्रेम संचालन प्रणाली | ||
[[Category: Machine Translated Page]] | [[Category: Machine Translated Page]] | ||
[[Category:Created On 22/06/2023]] | [[Category:Created On 22/06/2023]] |
Revision as of 23:03, 4 July 2023
कार्य नियंत्रण भाषा (जेसीएल) आईबीएम मेनफ्रेम संचालन प्रणाली पर उपयोग की जाने वाली लिपिबद्धन भाषाओं का एक नाम है, जो प्रणाली को प्रचय संसाधन चलाने या उप-प्रणाली प्रारंभ करने के तरीके के विषय में निर्देश देती है।[1] जेसीएल का उद्देश्य यह बताना है कि कौन से प्रोग्राम को किस फाइल या उपकरण का उपयोग करके चलाना है[2] इनपुट या आउटपुट के लिए, और कभी-कभी यह भी इंगित करने के लिए कि किन परिस्थितियों में एक कदम छोड़ना है। जेसीएल में मापदण्ड किसी कार्य द्वारा उपयोग किए जाने वाले संसाधनों के साथ-साथ कार्य को किस यंत्र पर चलाना चाहिए, इस पर नज़र रखने के लिए लेखांकन जानकारी भी प्रदान कर सकते हैं।
आईबीएम कार्य नियंत्रण की दो अलग-अलग भाषाएँ हैं:
- संचालन प्रणाली वंश के लिए एक जो Dओएस/360 से प्रारंभ होता है और जिसका नवीनतम सदस्य z/VSE है; और
- ओएस/360 से z/ओएस तक की वंशावली के लिए दूसरा, बाद वाला अब कार्य प्रवेश उप-प्रणाली 2/3 एक्सटेंशन, #कार्य प्रवेश नियंत्रण भाषा|कार्य प्रवेश नियंत्रण भाषा (JECL) सहित।
वे कुछ बुनियादी वाक्यविन्यास नियम और कुछ बुनियादी अवधारणाएँ साझा करते हैं, परन्तु अन्यथा बहुत भिन्न होते हैं।[3] वीएम (संचालन प्रणाली) में जेसीएल नहीं है; CP/CMS घटकों में से प्रत्येक में संकेत भाषाएँ होती हैं।
शब्दावली
जेसीएल के संयोजन में उपयोग किए जाने वाले कुछ शब्द या वाक्यांश आईबीएम मेनफ्रेम प्रौद्योगिकी के लिए विशिष्ट हैं।
- डेटासेट: डेटासेट एक फ़ाइल है; यह अस्थायी या स्थायी हो सकता है, और डिस्क ड्राइव, टेप स्टोरेज या अन्य उपकरण पर स्थित हो सकता है।[4][5]
- सदस्य: एक विभाजित डेटासेट (पीडीएस) का सदस्य एक पीडीएस के भीतर एक व्यक्तिगत डेटासेट है। कोष्ठक में सदस्य नाम के साथ पीडीएस का नाम निर्दिष्ट करके किसी सदस्य तक पहुंचा जा सकता है। उदाहरण के लिए, SYS1.MACLIB में प्रणाली मैक्रो GETMAIN को SYS1.MACLIB(GETMAIN) के रूप में संदर्भित किया जा सकता है।[6] * विभाजित डेटासेट: एक विभाजित डेटासेट या पीडीएस सदस्यों का संग्रह, या संग्रह है। विभाजित डेटासेट का उपयोग सामान्यतः स्रोत कोड, असेंबलर मैक्रोज़ (SYS1.MACLIB), प्रणाली कॉन्फ़िगरेशन (SYS1.PARMLIB), पुन: प्रयोज्य जेसीएल प्रक्रियाओं (SYS1.PROCLIB) आदि जैसे टेक्स्ट डेटा को संग्रहीत करने के लिए किया जाता है। फ़ाइलें (ज़िप, टीएआर, आदि) संग्रहित करें और अन्य संचालन प्रणाली में निर्देशिकाओं के साथ। इनका उपयोग द्वि आधारी कूट (लोड मॉड्यूल या प्रोग्राम ऑब्जेक्ट) को संग्रहीत करने के लिए भी किया जाता है; उस रूप में, वे मोटे तौर पर यूनिक्स-आधारित प्रणालियों में एआर (यूनिक्स)|एआर-आधारित स्थिर पुस्तकालयों के समान हैं। ऐसी अधिकांश संरचनाओं की तरह, एक बार संग्रहीत सदस्य को अद्यतन नहीं किया जा सकता है; सदस्य को हटाया जाना चाहिए और प्रतिस्थापित किया जाना चाहिए, जैसे कि IEBUPDTE उपयोगिता के साथ।[6]1989 में एमवीएस डीएफपी 3.2 के जारी होने के बाद से, पीडीएसई (विभाजित डेटा सेट विस्तारित) पीडीएस के एक उन्नत संस्करण के रूप में अस्तित्व में है;[7] उपयोगकर्ता या एप्लिकेशन क्रमादेशक के दृष्टिकोण से, वे काफी हद तक अपरिवर्तित हैं (कुछ अस्पष्ट विरासत सुविधाओं को हटाने के अलावा), परन्तु उनका आंतरिक कार्यान्वयन बहुत अलग है।
- यूएसएस: यूनिक्स प्रणाली सेवाएं, एमवीएस के हिस्से के रूप में चलने वाला एक यूनिक्स उप-प्रणाली, और यूनिक्स फ़ाइलों, स्क्रिप्ट, कार्यों और प्रोग्रामों को यूनिक्स वातावरण में मेनफ्रेम पर चलाने की अनुमति देता है।
प्रेरणा
मूल रूप से, मेनफ्रेम प्रणाली बैच संसाधन की ओर उन्मुख थे। कई बैच नौकरियों के लिए सेटअप की आवश्यकता होती है, मुख्य भंडारण के लिए विशिष्ट आवश्यकताओं के साथ, और चुंबकीय टेप, निजी डिस्क वॉल्यूम और विशेष रूपों के साथ प्रिंटर जैसे समर्पित उपकरणों की आवश्यकता होती है।[8] जेसीएल को यह सुनिश्चित करने के साधन के रूप में विकसित किया गया था कि नौकरी प्रारंभ होने से पहले सभी आवश्यक संसाधन उपलब्ध हैं। उदाहरण के लिए, कई प्रणालियाँ, जैसे कि लिनक्स, संकेत लाइन इंटरफेस पर निर्दिष्ट आवश्यक डेटासेट की पहचान की अनुमति देती हैं, और इसलिए शैल (कंप्यूटिंग) द्वारा प्रतिस्थापन के अधीन होती हैं, या रन-टाइम पर प्रोग्राम द्वारा उत्पन्न होती हैं। इन प्रणालियों पर संचालन प्रणाली कार्य अनुसूचक को कार्य की आवश्यकताओं के बारे में बहुत कम या कोई जानकारी नहीं होती है। इसके विपरीत, जेसीएल सभी आवश्यक डेटासेट और उपकरणों को स्पष्ट रूप से निर्दिष्ट करता है। शेड्यूलर कार्य को चलाने के लिए जारी करने से पहले संसाधनों को पूर्व-आवंटित कर सकता है। यह गतिरोध से बचने में सहायता करता है, जहां कार्य A संसाधन R1 रखता है और संसाधन R2 का अनुरोध करता है, जबकि समवर्ती रूप से चलने वाला कार्य B संसाधन R2 रखता है और R1 का अनुरोध करता है। ऐसे स्थितियों में परिकलक ऑपरेटर के लिए एकमात्र समाधान यह है कि वह किसी एक कार्य को समाप्त कर दे, जिसे फिर से प्रारंभ करने की आवश्यकता होती है। कार्य नियंत्रण के साथ, यदि कार्य A को चलाने के लिए निर्धारित किया गया है, तो कार्य B तब तक प्रारंभ नहीं किया जाएगा जब तक कार्य A पूर्ण नहीं कर लेता या आवश्यक संसाधन जारी नहीं कर देता।
डॉस और ओएस जेसीएल के लिए सामान्य विशेषताएं
नौकरियाँ, चरण और प्रक्रियाएँ
डीओएस और ओएस दोनों के लिए कार्य की इकाई नौकरी धारा है। किसी कार्य में एक या कई चरण होते हैं, जिनमें से प्रत्येक एक विशिष्ट प्रोग्राम चलाने का अनुरोध होता है। उदाहरण के लिए, संबंध का डेटाबेस के दिनों से पहले, प्रबंधन के लिए एक मुद्रित रिपोर्ट तैयार करने के कार्य में निम्नलिखित चरण सम्मिलित हो सकते हैं: उचित रिकॉर्ड का चयन करने और उन्हें एक अस्थायी फ़ाइल में कॉपी करने के लिए एक उपयोगकर्ता-लिखित प्रोग्राम; सामान्यतः सामान्य प्रयोजन उपयोगिता का उपयोग करके, अस्थायी फ़ाइल को आवश्यक क्रम में क्रमबद्ध करना; जानकारी को इस तरह से प्रस्तुत करने के लिए एक उपयोगकर्ता-लिखित कार्यक्रम जो अंतिम उपयोगकर्ताओं के लिए पढ़ना आसान हो और इसमें उप-योग जैसी अन्य उपयोगी जानकारी भी सम्मिलित हो; और मॉनिटर या टर्मिनल पर प्रदर्शन के लिए अंतिम-उपयोगकर्ता जानकारी के चयनित पृष्ठों को प्रारूपित करने के लिए एक उपयोगकर्ता-लिखित प्रोग्राम।
डॉस और ओएस जेसीएल दोनों में पहला कार्ड कार्य कार्ड होना चाहिए, जो:[9] *कार्य की पहचान करता है.
- सामान्यतः परिकलक सेवा विभाग को उपयुक्त उपयोगकर्ता विभाग को बिल देने में सक्षम बनाने के लिए जानकारी प्रदान करता है।
- परिभाषित करता है कि संपूर्ण कार्य को कैसे चलाया जाना है, उदा. कतार में अन्य नौकरियों के सापेक्ष इसकी प्राथमिकता।
प्रक्रियाएं (सामान्यतः प्रोसेस कहलाती हैं) किसी कार्य में डाले गए चरणों या चरणों के समूहों के लिए पूर्व-लिखित जेसीएल हैं। दोनों जेसीएल ऐसी प्रक्रियाओं की अनुमति देते हैं। प्रोक्स का उपयोग उन चरणों को दोहराने के लिए किया जाता है जिनका उपयोग एक ही कार्य में या कई अलग-अलग कार्यों में कई बार किया जाता है। वे क्रमादेशक का समय बचाते हैं और त्रुटियों के जोखिम को कम करते हैं। एक प्रक्रिया को चलाने के लिए बस जेसीएल फ़ाइल में एक कार्ड सम्मिलित होता है जो एक निर्दिष्ट फ़ाइल से प्रक्रिया की प्रतिलिपि बनाता है, और इसे कार्यस्ट्रीम में सम्मिलित करता है। साथ ही, प्रोसेस में प्रत्येक उपयोग के लिए प्रक्रिया को अनुकूलित करने के लिए मापदण्ड सम्मिलित हो सकते हैं।
मूल वाक्यविन्यास
डीओएस और ओएस जेसीएल दोनों में अधिकतम प्रयोग करने योग्य लाइन की लंबाई 80 अक्षर है, क्योंकि जब Dओएस/360 और ओएस/360 का पहली बार उपयोग किया गया था तो परिकलक प्रणाली में नया इनपुट प्रदान करने की मुख्य विधि 80-कॉलम वाले छिद्रित कार्ड थे।[10] बाद में लंबी रिकॉर्ड लंबाई वाली डिस्क या टेप फ़ाइलों के माध्यम से कार्य सबमिट करना संभव हो गया, परन्तु संचालन प्रणाली के कार्य सबमिशन घटकों ने कैरेक्टर 80 के बाद सब कुछ नजरअंदाज कर दिया।
कड़ाई से कहें तो दोनों संचालन प्रणाली परिवार प्रति पंक्ति केवल 71 वर्णों का उपयोग करते हैं। अक्षर 73-80 आम तौर पर कार्ड अनुक्रम संख्याएं होती हैं जिन्हें प्रणाली कार्य समाप्ति रिपोर्ट पर मुद्रित करता है और संचालन प्रणाली द्वारा रिपोर्ट की गई किसी भी त्रुटि के स्थान की पहचान करने के लिए उपयोगी होता है। कैरेक्टर 72 को सामान्यतः खाली छोड़ दिया जाता है, परन्तु इसमें एक गैर-खाली कैरेक्टर हो सकता है जो यह दर्शाता है कि जेसीएल स्टेटमेंट अगले कार्ड पर जारी है।
UNIX प्रणाली सर्विसेज फ़ाइल नामों को छोड़कर, सभी संकेत, मापदण्ड नाम और मान बड़े अक्षरों में होने चाहिए।
इन-स्ट्रीम इनपुट (नीचे देखें) को छोड़कर सभी लाइनें एक स्लैश से प्रारंभ होनी चाहिए/
, और संचालन प्रणाली द्वारा संसाधित की जाने वाली सभी लाइनें दो स्लैश से प्रारंभ होनी चाहिए //
- हमेशा पहले कॉलम से प्रारंभ करें। हालाँकि, दो अपवाद हैं: सीमांकक कथन और टिप्पणी कथन। एक सीमांकक कथन एक स्लैश और एक तारांकन चिह्न से प्रारंभ होता है (/*
), और ओएस जेसीएल में एक टिप्पणी विवरण स्लैश और तारांकन की एक जोड़ी के साथ प्रारंभ होता है (//*
) या डॉस जेसीएल में एक तारांकन चिह्न।
कई जेसीएल कथन 71 अक्षरों के भीतर फिट होने के लिए बहुत लंबे हैं, परन्तु इन्हें अनिश्चित संख्या में निरंतरता कार्डों तक बढ़ाया जा सकता है:
ओएस जेसीएल | डीओएस जेसीएल |
---|---|
अंतिम को छोड़कर सभी वास्तविक जेसीएल कार्डों को उस बिंदु पर समाप्त करना जहां सिंटैक्स के लिए अल्पविराम (, ) की आवश्यकता होती है। |
अंतिम को छोड़कर सभी वास्तविक जेसीएल कार्डों को उस बिंदु पर समाप्त करना जहां सिंटैक्स के लिए कॉलम 72 में अल्पविराम (, ) और एक गैर-रिक्त वर्ण की आवश्यकता होती है
|
प्रत्येक निरंतरता कार्ड को कॉलम 1 में // और फिर कम से कम 1 स्थान से प्रारंभ करें |
प्रत्येक निरंतरता कार्ड को रिक्त स्थान से शुरू करें और कॉलम 15 में जारी रखें |
सबसे सामान्य प्रकार के कार्ड की संरचना इस प्रकार है:[11]
ओएस जेसीएल | डीओएस जेसीएल |
---|---|
|
|
इन-स्ट्रीम इनपुट
डॉस और ओएस जेसीएल दोनों इन-स्ट्रीम इनपुट की अनुमति देते हैं, यानी ऐसे कार्ड जिन्हें संचालन प्रणाली के बजाय एप्लिकेशन प्रोग्राम द्वारा संसाधित किया जाना है। जो डेटा लंबे समय तक रखा जाना है, उसे आम तौर पर डिस्क पर संग्रहीत किया जाएगा, परन्तु इंटरएक्टिव टर्मिनलों का उपयोग आम होने से पहले ऐसी डिस्क फ़ाइलों को बनाने और संपादित करने का एकमात्र तरीका कार्ड पर नए डेटा की आपूर्ति करना था।
Dओएस और ओएस जेसीएल में इन-स्ट्रीम इनपुट की शुरुआत का संकेत देने के अलग-अलग तरीके हैं, परन्तु दोनों इन-स्ट्रीम इनपुट को समाप्त करते हैं /*
अंतिम इन-स्ट्रीम डेटा कार्ड के बाद कार्ड के कॉलम 1 पर। इससे संचालन प्रणाली कार्ड में जेसीएल की संसाधन फिर से प्रारंभ कर देता है /*
कार्ड।[12]
- ओएस जेसीएल: डीडी स्टेटमेंट का उपयोग इन-स्ट्रीम डेटा, साथ ही डेटा सेट का वर्णन करने के लिए किया जा सकता है। इन-स्ट्रीम डेटा से संबंधित डीडी स्टेटमेंट में डीडी पहचानकर्ता के बाद एक तारांकन चिह्न (*) होता है, उदाहरण के लिए।
//SYSIN DD *
. जेसीएल स्टेटमेंट को डीडी डेटा स्टेटमेंट का उपयोग करके इन-स्ट्रीम डेटा के हिस्से के रूप में सम्मिलित किया जा सकता है।
- डीएलएम नामक एक ऑपरेंड एक सीमांकक निर्दिष्ट करने की अनुमति देता है (डिफ़ॉल्ट /* है)। एक वैकल्पिक सीमांकक निर्दिष्ट करने से जेसीएल को डेटा के रूप में पढ़ा जा सकता है, उदाहरण के लिए लाइब्रेरी सदस्य को प्रक्रियाओं की प्रतिलिपि बनाना या आंतरिक पाठक को नौकरी सबमिट करना।
- एक उदाहरण,[13] जो आंतरिक रीडर ('INTRDR') को एक कार्य सबमिट करता है और फिर दो फ़ाइलें हटा देता है वह है:
<सिंटैक्सहाइलाइट लैंग= जेसीएल हाइलाइट= 8,12,13 > //SUBM EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=Z //SYSUT2 DD SYSOUT=(ए,INTRDR) //सिसिन डीडी डमी //SYSUT1 DD डेटा,DLM=ZZ //Runlatr कार्य ACCT,MANIX,क्लास=A.TYPRUN=होल्ड //* ^ बाद में चलाने के लिए एक नौकरी //CPUHOG EXEC PGM=PICALC1K //आउटपुट DD DSN=PICALC.1000DGTS,स्पेस=(TRK,1),DISP=(,KEEP) ZZ //* ^ जैसा कि DLM=ZZ द्वारा निर्दिष्ट है //Dropoldr EXEC PGM=IEFBR14 //DELETE4 DD DSN=PICALC.4DGTS,DISP=(पुराना,हटाएं) //DELETE5 DD DSN=PICALC.5DGTS,DISP=(पुराना,हटाएं) </वाक्यविन्यास हाइलाइट>
- PICALC1K नामक प्रोग्राम (TYPRUN=HOLD) मैन्युअल रूप से जारी होने की प्रतीक्षा करेगा
- IEFBR14 नामक प्रोग्राम अभी चलेगा और पूर्ण होने पर, दो मौजूदा फ़ाइलें, PICALC.4DGTS और PICALC.5DGTS हटा दी जाएंगी।
- डॉस जेसीएल: प्रोग्राम के लिए EXEC कार्ड के बाद बस इन-स्ट्रीम डेटा दर्ज करें।
जटिलता
ओएस जेसीएल की अधिकांश जटिलता, विशेष रूप से, डेटा सेट (आईबीएम मेनफ्रेम) जानकारी निर्दिष्ट करने के लिए बड़ी संख्या में विकल्पों से उत्पन्न होती है। जबकि यूनिक्स जैसे संचालन प्रणाली पर फ़ाइलों को बाइट्स की क्रमबद्ध धाराओं में सारगर्भित किया जाता है, जिसमें संरचित डेटा को पढ़ने और लिखने का कार्य विशेष रूप से उपयोगकर्ता-स्तरीय कार्यक्रमों (जो अंततः, ऐसी धाराओं को निगलना और उत्सर्जित करना) और डेटा के व्यावहारिक विवरण से संबंधित होता है। उपयोगकर्ता प्रोग्रामों की जानकारी के बिना संचालन प्रणाली द्वारा बड़े पैमाने पर भंडारण और पहुंच को नियंत्रित किया जाता है; ओएस/360 और उसके उत्तराधिकारियों पर डेटासेट उनके फ़ाइल प्रकार और आकार, रिकॉर्ड प्रकार और लंबाई, ब्लॉक आकार, चुंबकीय टेप डेटा भंडारण घनत्व जैसी उपकरण-विशिष्ट जानकारी और लेबल जानकारी को उजागर करते हैं। हालाँकि कई विकल्पों के लिए प्रणाली डिफ़ॉल्ट हैं, फिर भी क्रमादेशक द्वारा जेसीएल और प्रोग्राम में कोडित जानकारी के संयोजन के माध्यम से बहुत कुछ निर्दिष्ट किया जाना बाकी है। प्रोग्राम में जितनी अधिक जानकारी कोडित की जाएगी, वह उतना ही कम लचीला होगा, क्योंकि प्रोग्राम की जानकारी जेसीएल में किसी भी चीज़ को ओवरराइड कर देती है; इस प्रकार, अधिकांश जानकारी सामान्यतः जेसीएल के माध्यम से प्रदान की जाती है।
उदाहरण के लिए, यूनिक्स संचालन प्रणाली पर फ़ाइल प्रतिलिपि बनाना करने के लिए, उपयोगकर्ता एक संकेत दर्ज करेगा जैसे:
सीपी पुरानी फ़ाइल नई फ़ाइल
जेसीएल का उपयोग करते हुए निम्नलिखित उदाहरण का उपयोग ओएस/360 पर फ़ाइल की प्रतिलिपि बनाने के लिए किया जा सकता है: <सिंटैक्सहाइलाइट लैंग= जेसीएल हाइलाइट= 3 > //IS198CPY कार्य (IS198T30500), 'कॉपी कार्य', क्लास=L, MSGCLASS=X //COPY01 EXEC PGM=IEBGENER //सिप्रिंट डीडी सिसौट=* //SYSUT1 DD DSN=OLDFILE,DISP=SHR //SYSUT2 DD DSN=न्यूफ़ाइल, // DISP=(नया,CATLG,हटाएं), // स्पेस=(CYL,(40,5),RLSE), // DCB=(LRECL=115,BLKSIZE=1150) //सिसिन डीडी डमी </वाक्यविन्यास हाइलाइट>
जेसीएल की जटिलता के लिए दूसरी व्याख्या आईबीएम पीसी या यूनिक्स जैसे वातावरण में नौकरी चलाने की अपेक्षाओं से भिन्न है।
- लो-एंड प्रणाली/360 सीपीयू 1980 के दशक के मध्य के पीसी की तुलना में कम शक्तिशाली और अधिक महंगे थे जिनके लिए MS-Dओएस डिज़ाइन किया गया था। ओएस/360 न्यूनतम 32 KB मेमोरी साइज वाले प्रणाली के लिए था और Dओएस/360 न्यूनतम 16 KB वाले प्रणाली के लिए था। एक IBM 2030|360/30 CPU—जब प्रणाली/360 की घोषणा 1964 में की गई थी तब निम्न-स्तरीय सीपीयू-प्रति सेकंड 1.8K से 34.5K निर्देशों को संसाधित करता था।[14] 1981 में पहले IBM PC में 16 KB या 64 KB मेमोरी थी और यह प्रति सेकंड लगभग 330K निर्देशों को प्रोसेस करता था।[15][16] परिणामस्वरूप, जेसीएल को परिकलक के लिए प्रोसेस करना आसान होना था, और क्रमादेशक द्वारा उपयोग में आसानी बहुत कम प्राथमिकता थी। इस युग में क्रमादेशक परिकलक की तुलना में बहुत सस्ते थे।
- जेसीएल को बैच संसाधन के लिए डिज़ाइन किया गया था। इस प्रकार, इसे संचालन प्रणाली को सब कुछ बताना होगा, जिसमें एक चरण के परिणाम के आधार पर क्या करना है। उदाहरण के लिए,
DISP=(NEW,CATLG,DELETE)
इसका मतलब है कि यदि प्रोग्राम सफलतापूर्वक चलता है, तो एक नई फ़ाइल बनाएं और उसे सूचीबद्ध करें; अन्यथा नई फ़ाइल हटाएँ. पीसी पर चलने वाले प्रोग्राम अक्सर समस्याओं से निपटने के बाद सफाई के लिए उपयोगकर्ता पर निर्भर करते हैं। - प्रणाली/360 यंत्रों को एक संगठन में सभी उपयोगकर्ताओं द्वारा साझा करने के लिए डिज़ाइन किया गया था। इतना
JOB
कार्ड संचालन प्रणाली को बताता है कि उपयोगकर्ता के खाते को कैसे बिल देना है (IS198T30500
), भंडारण और अन्य संसाधनों की कितनी पूर्वनिर्धारित मात्रा आवंटित की जा सकती है (CLASS=L
), और कई अन्य चीज़ें।//SYSPRINT DD SYSOUT=*
परिकलक को प्रोग्राम की रिपोर्ट को डिफ़ॉल्ट प्रिंटर (कंप्यूटिंग) पर प्रिंट करने के लिए कहता है जो साधारण कागज के साथ लोड होता है, न कि किसी अन्य प्रिंटर पर जो खाली चेक के साथ लोड किया जा सकता है।DISP=SHR
संचालन प्रणाली को बताता है कि अन्य प्रोग्राम पढ़ सकते हैंOLDFILE
बहु क्रमादेशन
Dओएस/360 और ओएस/360 संचालन प्रणाली के बाद के संस्करण मूल जेसीएल की अधिकांश विशेषताओं को बरकरार रखते हैं - हालाँकि ग्राहकों को अपनी सभी जेसीएल फ़ाइलों को फिर से लिखने के लिए मजबूर करने से बचने के लिए कुछ सरलीकरण किया गया है।[citation needed] कई उपयोगकर्ता जेसीएल स्टेटमेंट के किसी भी सेट को एक प्रक्रिया के रूप में सहेजते हैं जिसका उपयोग एक या दो से अधिक होने की संभावना है।[17] ओएस जेसीएल का सिंटैक्स प्रणाली/360 असेंबली भाषा में मैक्रो अनुदेश के सिंटैक्स के समान है, और इसलिए क्रमादेशक उस समय परिचित रहे होंगे जब कई प्रोग्राम असेंबली भाषा में कोडित किए गए थे।
डॉस जेसीएल
स्थितीय मापदण्ड
//TLBL TAPEFIL,'COPYTAPE.JOB',,,,2
//ASSGN SYS005,200
//DLBL DISKFIL,'COPYTAPE.JOB',0,SD
//EXTENT SYS005,VOL01,1,0,800,1600
डॉस जेसीएल मापदण्ड स्थितीय हैं, जिससे उन्हें पढ़ना और लिखना कठिन हो जाता है, परन्तु प्रणाली के लिए पार्स करना आसान हो जाता है।
- क्रमादेशक को यह याद रखना चाहिए कि प्रत्येक प्रकार के स्टेटमेंट में कौन सा आइटम किस स्थिति में जाता है।
- यदि कुछ वैकल्पिक मापदण्ड छोड़ दिए गए हैं परन्तु बाद में सम्मिलित किए गए हैं, तो छोड़े गए मापदण्ड को बिना किसी रिक्त स्थान के अल्पविराम द्वारा दर्शाया जाना चाहिए, जैसा कि ऊपर टीएलबीएल कथन में है।
डॉस जेसीएल कुछ हद तक ओएस जेसीएल की तुलना में कम मापदंडों के साथ अधिक कथनों का उपयोग करके स्थितीय मापदंडों की कठिनाइयों को कम करता है। उदाहरण में ASSGN, DLBL और EXTENT स्टेटमेंट एक ही काम करते हैं (यह निर्दिष्ट करते हुए कि एक नई डिस्क फ़ाइल को कहाँ संग्रहीत किया जाना चाहिए) DD
ओएस जेसीएल में बयान।
उपकरण निर्भरता
मूल Dओएस/360 और Dओएस/VS के अधिकांश संस्करणों में उपकरण का मॉडल नंबर निर्दिष्ट करना पड़ता था, जिसका उपयोग प्रत्येक डिस्क या टेप फ़ाइल के लिए किया जाना था - यहां तक कि मौजूदा फ़ाइलों के लिए और अस्थायी फ़ाइलों के लिए भी, जिन्हें हटा दिया जाएगा। कार्य का अंत. इसका मतलब यह था कि, यदि कोई ग्राहक अधिक आधुनिक उपकरणों में अपग्रेड करता है, तो कई जेसीएल फाइलों को बदलना होगा।
बाद में Dओएस/360 परिवार के सदस्यों ने उन स्थितियों की संख्या कम कर दी जिनमें उपकरण मॉडल नंबर की आवश्यकता होती थी।
मैन्युअल फ़ाइल आवंटन
Dओएस/360 को मूल रूप से क्रमादेशक को डायरेक्ट-एक्सेस स्टोरेज उपकरण पर सभी फ़ाइलों का स्थान और आकार निर्दिष्ट करने की आवश्यकता थी। EXTENT
ई> कार्ड उस वॉल्यूम को निर्दिष्ट करता है जिस पर सीमा स्थित है, आरंभिक निरपेक्ष ट्रैक और ट्रैक की संख्या। z/VSE के लिए एक फ़ाइल में विभिन्न वॉल्यूम पर 256 विस्तार तक हो सकते हैं।
ओएस जेसीएल
ओएस जेसीएल में तीन मूल कथन प्रकार होते हैं:[18]
JOB
विवरण, जो कार्य की शुरुआत की पहचान करता है, और संपूर्ण कार्य के बारे में जानकारी, जैसे बिलिंग, रन प्राथमिकता, और समय और स्थान सीमा।EXEC
कथन, जो कार्यक्रम या प्रक्रिया की पहचान करता है[19] कार्य के इस चरण में निष्पादित होने के लिए,
और चरण के बारे में जानकारी, जिसमें किसी चरण को चलाने या छोड़ने की शर्तें भी सम्मिलित हैं।DD
(डेटा परिभाषा) कथन, जो एक चरण में उपयोग की जाने वाली डेटा फ़ाइल की पहचान करते हैं, और उस फ़ाइल के बारे में विस्तृत जानकारी देते हैं।DD
चरण के भीतर कथन किसी भी क्रम में हो सकते हैं।
शुरुआत से ही, ओएस परिवार के लिए जेसीएल (z/ओएस तक और इसमें सम्मिलित) अधिक लचीला और उपयोग में आसान था।
निम्नलिखित उदाहरण सिंटैक्स की पुरानी शैली का उपयोग करते हैं जो 1964 में प्रणाली/360 के लॉन्च से ही प्रदान की गई थी। पुरानी सिंटैक्स अभी भी उन नौकरियों में काफी आम है जो केवल मामूली बदलावों के साथ दशकों से चल रही हैं।
जेसीएल कथनों को कोड करने के नियम
प्रत्येक जेसीएल कथन को पाँच क्षेत्रों में विभाजित किया गया है:[20] पहचानकर्ता-फ़ील्ड नाम-फ़ील्ड ऑपरेशन-फ़ील्ड मापदण्ड-फ़ील्ड टिप्पणियाँ-फ़ील्ड
^ ^ ^ ^ कोई जगह नहीं, कोई जगह नहीं, कोई जगह नहीं
पहचानकर्ता-फ़ील्ड को नाम-फ़ील्ड के साथ जोड़ा जाना चाहिए, यानी उनके बीच कोई रिक्त स्थान नहीं होना चाहिए।
- पहचानकर्ता-फ़ील्ड (
//
): पहचानकर्ता फ़ील्ड प्रणाली को इंगित करता है कि एक स्टेटमेंट डेटा के बजाय एक जेसीएल स्टेटमेंट है। पहचानकर्ता फ़ील्ड में निम्नलिखित सम्मिलित हैं:- डिलीमीटर स्टेटमेंट को छोड़कर, सभी जेसीएल स्टेटमेंट्स के कॉलम 1 और 2 में सम्मिलित हैं
//
- सीमांकक विवरण के कॉलम 1 और 2 में सम्मिलित हैं
/*
- जेसीएल टिप्पणी विवरण के कॉलम 1, 2, और 3 में सम्मिलित हैं
//*
- डिलीमीटर स्टेटमेंट को छोड़कर, सभी जेसीएल स्टेटमेंट्स के कॉलम 1 और 2 में सम्मिलित हैं
- नाम-फ़ील्ड: नाम फ़ील्ड एक विशेष कथन की पहचान करता है ताकि अन्य कथन और प्रणाली इसे संदर्भित कर सकें। जेसीएल कथनों के लिए, इसे इस प्रकार कोडित किया जाना चाहिए:
- नाम कॉलम 3 से प्रारंभ होना चाहिए।
- नाम 1 से 8 अक्षरांकीय या राष्ट्रीय है (
$
,#
,@
) पात्र। - पहला अक्षर वर्णानुक्रमिक होना चाहिए।
- नाम के बाद कम से कम एक रिक्त स्थान अवश्य होना चाहिए।
- ऑपरेशन-फ़ील्ड: ऑपरेशन फ़ील्ड स्टेटमेंट के प्रकार को निर्दिष्ट करता है, या, संकेत स्टेटमेंट के लिए, संकेत को निर्दिष्ट करता है। ऑपरेशन-फ़ील्ड को इस प्रकार कोडित किया जाना चाहिए:
- ऑपरेशन फ़ील्ड में कथन के लिए सिंटैक्स बॉक्स में वर्ण सम्मिलित होते हैं।
- ऑपरेशन नाम फ़ील्ड का अनुसरण करता है।
- ऑपरेशन से पहले और बाद में कम से कम एक रिक्त होना चाहिए।
- ऑपरेशन में से एक होगा
JOB
,EXEC
औरDD
.
- मापदण्ड-फ़ील्ड: मापदण्ड फ़ील्ड, जिसे कभी-कभी ऑपरेंड फ़ील्ड भी कहा जाता है, में अल्पविराम द्वारा अलग किए गए मापदण्ड होते हैं। मापदण्ड फ़ील्ड को इस प्रकार कोडित किया जाना चाहिए:
- मापदण्ड फ़ील्ड ऑपरेशन फ़ील्ड का अनुसरण करता है।
- मापदण्ड फ़ील्ड के पहले कम से कम एक रिक्त स्थान होना चाहिए।
- मापदण्ड फ़ील्ड में मापदण्ड होते हैं जो कीवर्ड होते हैं जिनका उपयोग प्रोग्राम या डेटासेट नाम जैसी जानकारी प्रदान करने के लिए स्टेटमेंट में किया जाता है।
- टिप्पणियाँ-फ़ील्ड: इसमें टिप्पणी (परिकलक प्रोग्रामिंग) सम्मिलित है। टिप्पणियाँ-फ़ील्ड को निम्नानुसार कोडित किया जाना चाहिए:
- टिप्पणी फ़ील्ड मापदण्ड फ़ील्ड का अनुसरण करती है।
- टिप्पणी फ़ील्ड के पहले कम से कम एक रिक्त स्थान अवश्य होना चाहिए।
कीवर्ड मापदण्ड
//NEWFILE DD DSN=MYFILE01,UNIT=DISK,SPACE=(TRK,80,10),
// DCB=(LRECL=100,BLKSIZE=1000),
// DISP=(NEW,CATLG,DELETE)
ओएस जेसीएल स्टेटमेंट के सभी प्रमुख मापदण्ड कीवर्ड द्वारा पहचाने जाते हैं और इन्हें किसी भी क्रम में प्रस्तुत किया जा सकता है। इनमें से कुछ में दो या दो से अधिक उप-मापदण्ड होते हैं, जैसे SPACE
(एक नई फ़ाइल को कितना डिस्क स्थान आवंटित करना है) और DCB
(फ़ाइल के लेआउट का विस्तृत विवरण) उपरोक्त उदाहरण में। उप-मापदण्ड कभी-कभी स्थितीय होते हैं, जैसे कि SPACE
, परन्तु सबसे जटिल मापदण्ड, जैसे DCB
, कीवर्ड उप-मापदण्ड हैं।
स्थितीय मापदण्ड को कीवर्ड मापदण्ड से पहले होना चाहिए। कीवर्ड मापदण्ड हमेशा बराबर चिह्न का उपयोग करके किसी कीवर्ड को मान निर्दिष्ट करते हैं (=
).[21]
===डेटा एक्सेस (डीडी स्टेटमेंट)=== DD
e>
स्टेटमेंट का उपयोग डेटा को संदर्भित करने के लिए किया जाता है। यह कथन किसी प्रोग्राम के डेटासेट के आंतरिक विवरण को बाहरी उपकरणों पर डेटा से जोड़ता है: डिस्क, टेप, कार्ड, प्रिंटर इत्यादि। डीडी उपकरण प्रकार (उदाहरण के लिए '181', '2400-5',') जैसी जानकारी प्रदान कर सकता है। टेप'), टेप या डिस्क के लिए एक वॉल्यूम (कंप्यूटिंग) संख्या, और डेटा फ़ाइल का विवरण, जिसे कहा जाता है DCB
प्रोग्राम में डेटा नियंत्रण ब्लॉक (डीसीबी) के बाद उपमापदण्ड का उपयोग फ़ाइल की पहचान करने के लिए किया जाता है।
फ़ाइल का वर्णन करने वाली जानकारी तीन स्रोतों से आ सकती है: डीडी कार्ड की जानकारी, टेप या डिस्क पर संग्रहीत मौजूदा फ़ाइल के लिए डेटासेट लेबल जानकारी, और प्रोग्राम में कोडित डीसीबी मैक्रो। जब फ़ाइल खोली जाती है तो यह डेटा मर्ज हो जाता है, जिसमें डीडी जानकारी को लेबल जानकारी पर प्राथमिकता दी जाती है, और डीसीबी जानकारी को दोनों पर प्राथमिकता दी जाती है। अद्यतन विवरण फिर डेटासेट लेबल पर वापस लिखा जाता है। यदि गलत डीसीबी जानकारी प्रदान की जाती है तो इससे अनपेक्षित परिणाम हो सकते हैं।[22] ऊपर सूचीबद्ध मापदंडों और विभिन्न एक्सेस विधियों और उपकरणों के लिए विशिष्ट जानकारी के कारण डीडी स्टेटमेंट सबसे जटिल जेसीएल स्टेटमेंट है। एक आईबीएम संदर्भ में डीडी स्टेटमेंट का मैनुअल विवरण 130 से अधिक पृष्ठों का है - जो कि JOB और EXEC स्टेटमेंट के संयुक्त विवरण से दोगुने से भी अधिक है।[23] डीडी स्टेटमेंट इनलाइन डेटा को कार्य स्ट्रीम में इंजेक्ट करने की अनुमति देता है। यह IDCAMS, SORT इत्यादि जैसी उपयोगिताओं को नियंत्रण जानकारी प्रदान करने के साथ-साथ कार्यक्रमों को इनपुट डेटा प्रदान करने के लिए उपयोगी है।
उपकरण स्वतंत्रता
शुरुआत से ही, संचालन प्रणाली के ओएस परिवार के लिए जेसीएल ने उच्च स्तर की उपकरण स्वतंत्रता की पेशकश की। यहां तक कि नई फाइलों के लिए भी जिन्हें काम खत्म होने के बाद रखा जाना था, कोई भी उपकरण प्रकार को सामान्य शब्दों में निर्दिष्ट कर सकता है, उदाहरण के लिए, UNIT=DISK
, UNIT=TAPE
, या UNIT=SYSSQ
(टेप या डिस्क). बेशक, अगर यह मायने रखता है तो कोई मॉडल नंबर या यहां तक कि एक विशिष्ट उपकरण पता भी निर्दिष्ट कर सकता है।[24]
प्रक्रियाएँ
प्रक्रियाएं एक या अधिक EXEC PGM= और DD कथनों को समूहीकृत करने और फिर उन्हें EXEC PROC=procname -या- बस EXEC procname के साथ लागू करने की अनुमति देती हैं। [25] प्रोसीजर लाइब्रेरी नामक सुविधा पूर्व-भंडारण प्रक्रियाओं की अनुमति देती है।
PROC और PEND
के साथ प्रक्रिया को समाप्त करके प्रक्रियाओं को कार्य स्ट्रीम में भी सम्मिलित किया जा सकता है // PEND
कथन, फिर इसे नाम से पुकारना वैसा ही था जैसे कि यह एक प्रक्रिया पुस्तकालय में हो।
उदाहरण के लिए: <सिंटैक्सहाइलाइट लैंग= जेसीएल हाइलाइट= 1,6 > //संप्रिंट प्रोसी //प्रिंट EXEC PGM=IEBGENER //SYSUT1 DD DSN=CEO.FILES.DAYEND.RPT24A,DISP=SHR //SYSUT2 DD SYSOUT=A //सिसिन डीडी डमी // पेंड // कार्यकारी सारांश </वाक्यविन्यास हाइलाइट>
मापदण्डीकृत प्रक्रियाएं
ओएस जेसीएल प्रक्रियाओं को प्रारंभ से ही मानकीकृत किया गया था, जिससे वे मैक्रो असेंबलर या यहां तक कि सरल सबरूटीन की तरह बन गए और इस प्रकार विभिन्न स्थितियों में उनके कोड का पुन: उपयोग बढ़ गया।[26]
//MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000
.....
//NEWFILE DD DSN=&FNAME,UNIT=DISK,SPACE=(&SPTYPE,&SPINIT,&SPEXT),
// DCB=(LRECL=&LR,BLKSIZE=&BLK),DISP=(NEW,CATLG,DELETE)
....
इस उदाहरण में, एम्परसेंड से प्रारंभ होने वाले सभी मान&
वे मापदण्ड हैं जो तब निर्दिष्ट किए जाएंगे जब कोई नौकरी अनुरोध करती है कि प्रक्रिया का उपयोग किया जाए। PROC कथन, प्रक्रिया को एक नाम देने के अलावा, क्रमादेशक को प्रत्येक मापदण्ड के लिए डिफ़ॉल्ट मान निर्दिष्ट करने की अनुमति देता है। इसलिए कोई इस उदाहरण में एक प्रक्रिया का उपयोग करके कई अलग-अलग आकार और लेआउट की नई फ़ाइलें बना सकता है। उदाहरण के लिए:
//JOB01 JOB ..........
//STEP01 EXEC MYPROC FNAME=JOESFILE,SPTYPE=CYL,SPINIT=10,SPEXT=2,LR=100,BLK=2000
or
//JOB02 JOB ..........
//STEP01 EXEC MYPROC FNAME=SUESFILE,SPTYPE=TRK,SPINIT=500,SPEXT=100,LR=100,BLK=5000
संदर्भ
बहु-चरणीय नौकरियों में, बाद के चरण में किसी फ़ाइल को पूर्ण रूप से निर्दिष्ट करने के बजाय रेफरबैक का उपयोग किया जा सकता है, जिसे पहले चरण में पहले ही निर्दिष्ट किया जा चुका है। उदाहरण के लिए:
//MYPROC ................
//MYPR01 EXEC PGM=..........
//NEWFILE DD DSN=&MYFILE,UNIT=DISK,SPACE=(TRK,50,10),
// DCB=(LRECL=100,BLKSIZE=1000),DISP=(NEW,CATLG,DELETE)
....
//MYPR02 EXEC PGM=..........
//INPUT01 DD DSN=*.MYPR01.NEWFILE
यहाँ, MYPR02
के रूप में पहचानी गई फ़ाइल का उपयोग करता है NEWFILE
चरण में MYPR01
(DSN
मतलब डेटासेट नाम और फ़ाइल का नाम निर्दिष्ट करता है; एक डीएसएन 44 अक्षरों से अधिक नहीं हो सकता[27]).
ऐसी नौकरियों में जिनमें नौकरी-विशिष्ट जेसीएल और प्रक्रिया कॉल का मिश्रण होता है, नौकरी-विशिष्ट चरण उस फ़ाइल को वापस संदर्भित कर सकता है जो प्रक्रिया में पूरी तरह से निर्दिष्ट थी, उदाहरण के लिए:
//MYJOB JOB ..........
//STEP01 EXEC MYPROC Using a procedure
//STEP02 EXEC PGM=......... Step which is specific to this job
//INPUT01 DD DSN=*.STEP01.MYPR01.NEWFILE
कहाँ DSN=*.STEP01.MYPR01.NEWFILE
का अर्थ है पहचानी गई फ़ाइल का उपयोग करें NEWFILE
चरण में MYPR01
चरण-दर-चरण उपयोग की जाने वाली प्रक्रिया का STEP01
इस नौकरी का. प्रक्रिया के नाम के बजाय उस चरण के नाम का उपयोग करना, जिसे प्रक्रिया कहा जाता है, एक क्रमादेशक को एक ही कार्य में एक ही प्रक्रिया को कई बार उपयोग करने की अनुमति देता है, बिना किसी भ्रम के कि रेफरबैक में प्रक्रिया का कौन सा उदाहरण उपयोग किया जाता है।
टिप्पणियाँ
जेसीएल फ़ाइलें लंबी और जटिल हो सकती हैं, और भाषा को पढ़ना आसान नहीं है। ओएस जेसीएल क्रमादेशक्स को दो प्रकार की व्याख्यात्मक टिप्पणी सम्मिलित करने की अनुमति देता है:
- जेसीएल कथन के समान ही। उन्हें एक निरंतरता चरित्र (पारंपरिक रूप से) रखकर बढ़ाया जा सकता है
X
) कॉलम 72 में, उसके बाद//
अगली पंक्ति के कॉलम 1-3 में। - जिन पंक्तियों में केवल टिप्पणी होती है, उनका उपयोग अक्सर स्थानीय विवरणों के बजाय जेसीएल की समग्र संरचना के बारे में प्रमुख बिंदुओं को समझाने के लिए किया जाता है। केवल-टिप्पणी पंक्तियों का उपयोग लंबी, जटिल जेसीएल फ़ाइलों को अनुभागों में विभाजित करने के लिए भी किया जाता है।
//MYJOB JOB ..........
//* Lines containing only comments.
//******** Often used to divide JCL listing into sections ********
//STEP01 EXEC MYPROC Comment 2 on same line as statement
//STEP02 EXEC PGM=......... Comment 3 has been extended and X
// overflows into another line.
//INPUT01 DD DSN=STEP01.MYPR01.NEWFILE
इनपुट फ़ाइलों को जोड़ना
ओएस जेसीएल क्रमादेशक को इनपुट फ़ाइलों को संयोजित (श्रृंखला) करने की अनुमति देता है ताकि वे प्रोग्राम में एक फ़ाइल के रूप में दिखाई दें, उदाहरण के लिए
//INPUT01 DD DSN=MYFILE01,DISP=SHR
// DD DSN=JOESFILE,DISP=SHR
// DD DSN=SUESFILE,DISP=SHR
दूसरे और तीसरे कथन का नाम फ़ील्ड में कोई मूल्य नहीं है, इसलिए ओएस उन्हें संयोजन के रूप में मानता है। फ़ाइलें समान मूल प्रकार (लगभग हमेशा अनुक्रमिक) की होनी चाहिए, और उनकी रिकॉर्ड लंबाई समान होनी चाहिए, हालांकि ब्लॉक की लंबाई समान नहीं होनी चाहिए।
ओएस के शुरुआती संस्करणों में (निश्चित रूप से ओएस/360 R21.8 से पहले) ब्लॉक की लंबाई घटते क्रम में होनी चाहिए, या उपयोगकर्ता को प्रत्येक इंस्टेंस का निरीक्षण करना होगा और नामांकित DD स्टेटमेंट में पाई गई अधिकतम ब्लॉक लंबाई को जोड़ना होगा, उदाहरण के लिए ,
//INPUT01 DD DSN=MYFILE01,DISP=SHR,BLKSIZE=800
// DD DSN=JOESFILE,DISP=SHR (BLKSIZE assumed to be equal to or less than 800)
// DD DSN=SUESFILE,DISP=SHR (BLKSIZE assumed to be equal to or less than 800)
ओएस के बाद के संस्करणों में (निश्चित रूप से उपयुक्त चयन योग्य इकाइयों के साथ ओएस/एमवीएस आर3.7 के बाद) ओएस स्वयं, आवंटन के दौरान, प्रत्येक उदाहरण का एक संयोजन में निरीक्षण करेगा और जो अधिकतम ब्लॉक लंबाई पाई गई थी उसे प्रतिस्थापित कर देगा।
एक सामान्य फ़ॉलबैक केवल उपकरण पर अधिकतम संभव ब्लॉक लंबाई निर्धारित करना था, और उसे नामित डीडी स्टेटमेंट पर निर्दिष्ट करना था, उदाहरण के लिए,
//INPUT01 DD DSN=MYFILE01,DISP=SHR,BLKSIZE=8000
// DD DSN=JOESFILE,DISP=SHR (BLKSIZE assumed to be equal to or less than 8000)
// DD DSN=SUESFILE,DISP=SHR (BLKSIZE assumed to be equal to or less than 8000)
इस फ़ॉलबैक का उद्देश्य यह सुनिश्चित करना था कि एक्सेस विधि एक इनपुट बफ़र सेट आवंटित करेगी जो किसी भी और सभी निर्दिष्ट डेटासेट को समायोजित करने के लिए पर्याप्त बड़ा था।
सशर्त प्रसंस्करण
ओएस उम्मीद करता है कि प्रोग्राम एक रिटर्न कोड सेट करें जो निर्दिष्ट करता है कि प्रोग्राम ने सोचा था कि यह कितना सफल था। सबसे आम पारंपरिक मूल्य हैं:[28]: p.87
- 0 = सामान्य - सब ठीक है
- 4 = चेतावनी - छोटी त्रुटियाँ या समस्याएँ
- 8 = त्रुटि - महत्वपूर्ण त्रुटियाँ या समस्याएँ
- 12 = गंभीर त्रुटि - प्रमुख त्रुटियाँ या समस्याएँ, परिणाम (जैसे फ़ाइलें या उत्पादित रिपोर्ट) पर भरोसा नहीं किया जाना चाहिए।
- 16 = टर्मिनल त्रुटि - बहुत गंभीर समस्याएँ, परिणामों का उपयोग न करें!
ओएस जेसीएल रिटर्न कोड को संदर्भित करता है COND
(स्थिति कोड), और इसका उपयोग यह तय करने के लिए कर सकता है कि बाद के चरणों को चलाना है या नहीं। हालाँकि, अधिकांश आधुनिक प्रोग्रामिंग भाषाओं के विपरीत, ओएस जेसीएल में सशर्त चरणों को निष्पादित नहीं किया जाता है यदि निर्दिष्ट स्थिति सत्य है - इस प्रकार स्मरक को जन्म देता है, यदि यह सत्य है, तो [बिना कोड चलाए] आगे बढ़ें। मामले को और अधिक जटिल बनाने के लिए, शर्त को केवल उस चरण के बाद ही निर्दिष्ट किया जा सकता है जिसका वह संदर्भ देता है। उदाहरण के लिए:
//MYJOB JOB ...........
//STEP01 EXEC PGM=PROG01
....
//STEP02 EXEC PGM=PROG02,COND=(4,GT,STEP01)
....
//STEP03 EXEC PGM=PROG03,COND=(8,LE)
....
//STEP04 EXEC PGM=PROG04,COND=(ONLY,STEP01)
....
//STEP05 EXEC PGM=PROG05,COND=(EVEN,STEP03)
....
साधन:
- दौड़ना
STEP01
, और इसका रिटर्न कोड एकत्र करें। - भागो मत
STEP02
यदि संख्या 4 से बड़ी हैSTEP01
का रिटर्न कोड. - भागो मत
STEP03
यदि संख्या 8 किसी पिछले रिटर्न कोड से कम या उसके बराबर है। - दौड़ना
STEP04
केवलSTEP01
असामान्य रूप से समाप्त हो गया. - दौड़ना
STEP05
, भले हीSTEP03
असामान्य रूप से समाप्त हो गया.
इसका अनुवाद निम्नलिखित छद्मकोड में होता है:
STEP01 चलाएँ यदि STEP01 का रिटर्न कोड 4 से अधिक या उसके बराबर है STEP02 चलाएँ अगर अंत यदि कोई पिछला रिटर्न कोड 8 से कम है STEP03 चलाएँ अगर अंत यदि STEP01 असामान्य रूप से समाप्त हो गया तो STEP04 चलाएँ अगर अंत यदि STEP03 असामान्य रूप से समाप्त हो गया तो STEP05 चलाएँ अन्य STEP05 चलाएँ अगर अंत
युक्त चरणों को पढ़कर ध्यान दें COND
कथनों को पीछे की ओर मोड़ने से कोई भी उन्हें आसानी से समझ सकता है। यह स्थानान्तरण (तर्क)तर्क) का एक उदाहरण है।
हालाँकि, बाद में IBM ने जेसीएल में IF कंडीशन पेश की, जिससे क्रमादेशक्स के लिए कोडिंग को बनाए रखते हुए कुछ हद तक आसान बना दिया गया COND
मापदण्ड (मौजूदा जेसीएल में परिवर्तन करने से बचने के लिए COND parm
प्रयोग किया जाता है)। COND
ई> मापदण्ड पर भी निर्दिष्ट किया जा सकता है JOB
कथन। यदि ऐसा है तो प्रणाली किसी कार्य के प्रत्येक चरण के लिए समान रिटर्न कोड परीक्षण करता है। यदि कार्य स्टेटमेंट रिटर्न कोड परीक्षण संतुष्ट हो जाता है, तो नौकरी समाप्त हो जाती है।[29]
उपयोगिताएँ
नौकरियां डेटा के प्रसंस्करण में सहायता के लिए कई आईबीएम मेनफ्रेम उपयोगिता कार्यक्रमों का उपयोग करती हैं। बैच संसाधन में उपयोगिताएँ सबसे उपयोगी होती हैं। उपयोगिताओं को तीन सेटों में बांटा जा सकता है:
- डेटा सेट उपयोगिताएँ - डेटा सेट बनाएं, प्रिंट करें, कॉपी करें, स्थानांतरित करें और हटाएं।
- प्रणाली यूटिलिटीज़ - कैटलॉग और अन्य प्रणाली जानकारी को बनाए रखें और प्रबंधित करें।
- एक्सेस मेथड सेवाएँ - वर्चुअल स्टोरेज एक्सेस विधि (वीएसएएम) और गैर-वीएसएएम डेटा सेट को प्रोसेस करें।
उपयोग की कठिनाई
ओएस जेसीएल निर्विवाद रूप से जटिल है[30]और इसे उपयोक्ता शत्रुतापूर्ण बताया गया है।[31][32] जैसा कि जेसीएल पर एक निर्देशात्मक पुस्तक में पूछा गया है, जब कार्य नियंत्रण भाषा की बात आती है तो परिष्कृत क्रमादेशक भी झिझकते क्यों हैं?[33] पुस्तक में कहा गया है कि कई क्रमादेशक या तो वास्तव में यह समझे बिना कि उन्होंने क्या किया, नियंत्रण कार्ड की नकल की, या प्रचलित अफवाहों पर विश्वास किया कि जेसीएल भयानक था, और केवल 'डाई-हार्ड' परिकलक-प्रकारों ने ही इसे समझा और जेसीएल के बयानों का पता लगाने का काम सौंपा। किसी और को।[33] ऐसा रवैया प्रोग्रामिंग भाषा की पाठ्यपुस्तकों में पाया जा सकता है, जो भाषा पर ध्यान केंद्रित करना पसंद करते हैं न कि इसमें प्रोग्राम कैसे चलाए जाते हैं। जैसा कि एक फोरट्रान IV पाठ्यपुस्तक ने WATFOR कंपाइलर से संभावित त्रुटि संदेशों को सूचीबद्ध करते समय कहा था: क्या आप इतने मूर्ख हैं कि अपने स्वयं के 'डीडी' प्रणाली नियंत्रण कार्ड लिखने का प्रयास कर रहे हैं? तुरंत बंद करो और रुको; सहायता के लिए दौड़ें, चलें नहीं।[34] फिर भी, जेसीएल में गई कुछ पुस्तकों में इस बात पर विस्तार से जोर दिया गया है कि एक बार जब इसे कम से कम कुछ हद तक कुशल डिग्री तक सीख लिया जाता है, तो व्यक्ति को इंस्टॉलेशन-वाइड डिफ़ॉल्ट से मुक्ति मिल जाती है और आईबीएम प्रणाली आपके कार्यभार को कैसे संसाधित करता है, इस पर बेहतर नियंत्रण मिलता है।[33][30] एक अन्य पुस्तक ने जटिलता पर टिप्पणी की परन्तु कहा, हिम्मत रखो। [पिछले अध्याय] से आपको जो जेसीएल क्षमता प्राप्त होगी वह वह सब है जिसकी अधिकांश क्रमादेशक को कभी आवश्यकता होगी।[30]
कार्य प्रवेश नियंत्रण भाषा
आईबीएम मेनफ्रेम प्रणाली पर कार्य प्रवेश नियंत्रण भाषा या जेईसीएल संकेत लैंग्वेज कंट्रोल स्टेटमेंट का सेट है जो अटेरन उप-प्रणाली के लिए जानकारी प्रदान करता है - जेड/ओएस पर कार्य प्रवेश उप-प्रणाली 2/3 या आईबीएम पावर (सॉफ्टवेयर) | वीएसई (संचालन) के लिए वीएसई/पावर प्रणाली)|जेड/वीएसई। जेईसीएल स्टेटमेंट निर्दिष्ट कर सकते हैं कि किस नेटवर्क परिकलक पर कार्य स्ट्रीम चलाना है, कब कार्य चलाना है और परिणामी आउटपुट कहां भेजना है।[28] जेईसीएल कार्य नियंत्रण भाषा (जेसीएल) से अलग है, जो संचालन प्रणाली को निर्देश देता है कि कार्य कैसे चलाया जाए।
तीनों परिवेशों के लिए जेईसीएल के अलग-अलग संस्करण हैं।
ओएस/360
ओएस/360 रिमोट कार्य प्रवेश (प्रोग्राम नंबर 360S-RC-536) के लिए कार्य प्रवेश नियंत्रण भाषा के शुरुआती संस्करण में पहचानकर्ता का उपयोग किया गया था..
इनपुट रिकॉर्ड के कॉलम 1-2 में और एक एकल नियंत्रण कथन सम्मिलित है: JED
(नौकरी प्रवेश परिभाषा)। वर्कस्टेशन संकेत जैसे LOGON
, LOGOFF
, और STATUS
से भी शुरुआत हुई..
.[35]
प्री-जेईएस जेईसीएल
हालाँकि यह शब्द अभी तक विकसित नहीं हुआ था, ह्यूस्टन स्वचालित स्पूलिंग प्राथमिकता में कार्य प्रवेश उप-प्रणाली 2/3 के जेईसीएल के समान कार्यक्षमता थी, जिसमें सम्मिलित है /*
वाक्य - विन्यास।
जेड/ओएस
JES2 के लिए जेईसीएल स्टेटमेंट्स से प्रारंभ होते हैं /*
, JES3 के लिए वे शुरुआत करते हैं //*
, रिमोट को छोड़कर/*SIGNON
और/*SIGNOFF
आदेश. दोनों प्रणालियों के लिए संकेत पूरी तरह से अलग हैं।
जेईएस2 जेईसीएल
निम्नलिखित JES2 जेईसीएल कथनों का उपयोग z/ओएस 1.2.0 में किया जाता है।[36]
JECL statement | Function | Example |
---|---|---|
/*$command |
Enters an operator (console) command | /*$S PRINTER3 [37]
|
/*JOBPARM |
Specifies values for job-related parameters | /*JOBPARM TIME=10
|
/*MESSAGE |
Sends a message to the operator console | /*MESSAGE CALL JOE AT HOME IF JOB ABENDS
|
/*NETACCT |
Specifies account number for network job | /*NETACCT 12345
|
/*NOTIFY |
Specifies destination for notification messages | /*NOTIFY SAM
|
/*OUTPUT |
Specifies SYSOUT dataset options | /*OUTPUT FORMS=BILL
|
/*PRIORITY |
Sets job selection priority | /*PRIORITY 15
|
/*ROUTE |
Specifies output destination or execution node | /*ROUTE PRT RMT5
|
/*SETUP |
Requests volume mounting or other offline operation | /*SETUP TAPE01,TAPE02
|
/*SIGNOFF |
Ends remote session | /*SIGNOFF
|
/*SIGNON |
Begins remote session | /*SIGNON REMOTE5 password
|
/*XEQ |
Specifies execution node | /*XEQ DENVER
|
/*XMIT |
Indicates job or dataset to be transmitted to another network node | /*XMIT NYC
|
जेईएस3 जेईसीएल
निम्नलिखित JES3 जेईसीएल कथनों का उपयोग z/ओएस 1.2.0 में किया जाता है[38]
JECL statement | Function | Example |
---|---|---|
//**command |
Enters a JES3 operator (console) command | |
//*DATASET |
Marks the beginning of an in-stream dataset | |
//*ENDDATASET |
Marks the end of an in-stream dataset | |
//*ENDPROCESS |
Marks the end of a series of //*PROCESS statements |
|
//*FORMAT |
Specifies SYSOUT dataset options |
|
//*MAIN |
Specifies values for job-related parameters | |
//*NET |
Identifies relationships among jobs using JES3 dependent job control | |
//*NETACCT |
Specifies account number for network job | |
//*OPERATOR |
Sends a message to the operator console | |
//*PAUSE |
Stops the input reader | |
//*PROCESS |
Identifies a non-standard job | |
//*ROUTE |
Specifies the execution node for the job | |
/*SIGNOFF |
Ends remote session | /*SIGNOFF
|
/*SIGNON |
Begins remote session |
z/VSE
वीएसई के लिए जेईसीएल स्टेटमेंट 'से प्रारंभ होते हैं* $$
' (एकल स्थान पर ध्यान दें)। कार्य प्रवेश नियंत्रण भाषा जेसीएल नौकरियों की शुरुआत और अंत पंक्तियों को परिभाषित करती है। यह वीएसई (संचालन प्रणाली)/आईबीएम पावर (सॉफ्टवेयर) को सलाह देता है कि यह काम कैसे संभाला जाता है। जेईसीएल विवरण नौकरी का नाम (वीएसई/पावर द्वारा प्रयुक्त), वह वर्ग जिसमें नौकरी संसाधित की जाती है, और नौकरी का स्वभाव (यानी) को परिभाषित करते हैं। D
, L
, K
, H
).
JECL statement[39] | Function | Example |
---|---|---|
* $$ CTL |
Establishes a default input class | * $$ CTL CLASS=A
|
* $$ JOB |
Specifies attributes of a job | * $$ JOB JNM=PYRL,PRI=9
|
* $$ EOJ |
Marks the end of a job | * $$ EOJ
|
* $$ RDR |
Inserts a file from a 3540 diskette into the input stream | * $$ RDR SYS005,'fname',2
|
* $$ PRT |
Specifies characteristics of spooled print files "LST' is a synonym for "PRT" |
* $$ PRT FNO=STD,COPY=2
|
* $$ PUN |
Specifies characteristics of spooled punch files | * $$ PUN DISP=T,TADDR=280
|
* $$ SLI |
Inserts data ("book") from source statement library into the input stream | * $$ SLI A.जेसीएल1
|
* $$ DATA |
Inserts data from the card reader into a book retrieved from the source statement library | * $$ DATA INPUT1
|
उदाहरण:
* $$ JOB JNM=NAME,DISP=K,CLASS=2
[some JCL statements here]
* $$ EOJ
अन्य प्रणाली
अन्य मेनफ्रेम बैच संसाधन प्रणाली में किसी न किसी प्रकार की कार्य नियंत्रण भाषा होती थी, चाहे उसे ऐसा कहा जाए या नहीं; उनका सिंटैक्स आईबीएम संस्करणों से पूरी तरह से अलग था, परन्तु वे आम तौर पर समान क्षमताएं प्रदान करते थे। इंटरैक्टिव कंप्यूटिंग प्रणाली संकेत भाषाएँ सम्मिलित करें - संकेत फ़ाइलें (जैसे PCDओएस .bat फ़ाइलें) को गैर-इंटरैक्टिव रूप से चलाया जा सकता है, परन्तु ये सामान्यतः जेसीएल की तरह अप्राप्य नौकरियों को चलाने के लिए उतना मजबूत वातावरण प्रदान नहीं करते हैं। कुछ परिकलक प्रणाली पर कार्य नियंत्रण भाषा और इंटरैक्टिव संकेत भाषा भिन्न हो सकती है। उदाहरण के लिए, z/ओएस प्रणाली पर समय साझा करने का विकल्प बैच कार्य के लिए जेसीएल के साथ-साथ संकेत भाषाओं के रूप में CLIST या Rexx का उपयोग करता है। अन्य प्रणालियों पर ये समान हो सकते हैं।
यह भी देखें
- डीडी (यूनिक्स), यूनिक्स कार्यक्रम से प्रेरित
DD
- आईबीएम मेनफ्रेम उपयोगिता कार्यक्रम
- प्रचय संसाधन
- डेटा सेट (आईबीएम मेनफ्रेम)#जेनरेशन डेटा ग्रुप
संदर्भ
- ↑ "Every job submitted for execution ... must include JCL statements" -- ibm.com
- ↑ and many more complex details, such as whether the file is to be retained or deleted, the maximum of disk space to which it can grow, the name of a tape to be pre-mounted
- ↑ Ashley and Fernandez, Job Control Language, p. 1.
- ↑ Ashley and Fernandez, Job Control Language, p. 5.
- ↑ McQuillen, System/360–370 Assembler Language, pp. 385–386.
- ↑ 6.0 6.1 McQuillen, System/360–370 Assembler Language, pp. 288–289, 400.
- ↑ Lewis, Cecilia (August 8, 2011). "हमने हाल ही में पीडीएसई के साथ आपके लिए क्या किया है" (PDF). SHARE in Orlando. Retrieved 2023-03-03.
- ↑ McQuillen, System/360–370 Assembler Language, pp. 22–24.
- ↑ McQuillen, System/360–370 Assembler Language, pp. 380–382.
- ↑ Stern and Stern, Structured COBOL Programming, pp. 528–529.
- ↑ Stern and Stern, Structured COBOL Programming, pp. 529, 531.
- ↑ Stern and Stern, Structured COBOL Programming, pp. 529, 537.
- ↑ modeled on https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.hasc300/has2z1_Submitting_to_the_internal_reader_from_jobs_or_tasks.htm, using knowledge dating back to when Green Cards came from IBM, and Manix worked for a company owning an IBM card sorter
- ↑ "IBM Archives: System/360 Model 30". www-03.ibm.com (in English). 2003-01-23. Retrieved 2016-04-25.
- ↑ "आईबीएम पीसी". Archived from the original on 2006-07-05. Retrieved 2007-10-21.
- ↑ IBM-compatible computers History of PCs Archived August 14, 2007, at the Wayback Machine
- ↑ Brown, Gary DeWard (2002). ज़ोस जेसीएल (fifth ed.). John Wiley & Sons. p. 248. ISBN 0471-236357.
- ↑ Ashley and Fernandez, Job Control Language, pp. 8, 23. There are also two additional statements, PROC and PEND, used to test JCL procedures.
- ↑ A pre-stored set of "EXEC PGM=" and "DD" JCL commands which could be parameterized
- ↑ Ashley and Fernandez, Job Control Language, pp. 12–16.
- ↑ Ashley and Fernandez, Job Control Language, pp. 13–15.
- ↑ IBM Corporation (August 1978). OS/VS MVS Data Management Services Guide (PDF). Retrieved Oct 17, 2014.
- ↑ IBM Corporation (June 1971). IBM System/360 Operating System: Job Control Language Reference (PDF). Retrieved June 25, 2019.
- ↑ McQuillen, System/360–370 Assembler Language, pp. 297, 406–407.
- ↑ the default for the EXEC statement is PROC=
- ↑ Ashley and Fernandez, Job Control Language, pp. 129–131.
- ↑ "Data set names". IBM. 27 March 2014.
Data set names must not exceed 44 characters, including all name segments and periods.
- ↑ 28.0 28.1 Brown, Gary DeWard (2002). ज़ोस जेसीएल. John Wiley & Sons. ISBN 9780471426738. Retrieved 2014-05-05.
- ↑ IBM Corporation. "JOB और EXEC कथनों पर COND मापदंडों का संबंध". IBM Knowledge Center. Retrieved Feb 21, 2018.
- ↑ 30.0 30.1 30.2 McQuillen, System/360–370 Assembler Language, pp. 406–407.
- ↑ Charley, Alfred (1993). NetView: IBM's Network Management Product. New York: Van Nostrand Reinhold. p. 93. ISBN 0-442-01407-4.
- ↑ Mathew W. Blode (April 6, 2020). "Newly unemployed New Yorkers are being frustrated by 1970s-era technology(nytimes.com)". Retrieved May 7, 2020.
JCL in particular is notoriously user hostile and has been called "the worst programming language ever designed" by Fred Brooks ... (http://dtsc.dfw.ibm.com/MVSDS/'HTTPD2.APPS.ZOSCLASS.PDF(ZCLA...).
{{cite web}}
: External link in
(help)|quote=
- ↑ 33.0 33.1 33.2 Ashley and Fernandez, Job Control Language, pp. vii–viii, back cover.
- ↑ Blatt, John M. (1971). Introduction to FORTRAN IV Programming: Using the WATFOR/WATFIV Compilers. Pacific Palisades, California: Goodyear Publishing Company. p. 276. ISBN 0-87620-440-X.
- ↑ IBM Corporation (1968). IBM System/360 Operating System Remote Job Entry (PDF). Retrieved 2014-05-05.
- ↑ IBM Corporation. "Job Entry Subsystem 2 (JES2) Control Statements". z/OS V1R2.0 MVS JCL. Archived from the original on October 18, 2015. Retrieved February 25, 2013.
- ↑ other examples can be viewed at Houston Automatic Spooling Priority#Operator Commands
- ↑ IBM Corporation. "Job Entry Subsystem 3 (JES3) Control Statements". z/OS V1R2.0 MVS JCL. Archived from the original on October 18, 2015. Retrieved February 25, 2013.
- ↑ IBM Corporation (1974). DOS/VS POWER/VS Installation and Operations (PDF).
स्रोत
- "z/OS V1R6.0 MVS JCL उपयोगकर्ता मार्गदर्शिका" (PDF) (5th ed.). IBM. September 2004. Archived from the original (PDF) on 2013-08-19. Retrieved 2006-10-12.
- "z/OS V1R7.0 MVS JCL संदर्भ" (PDF) (11th ed.). IBM. April 2006. Archived from the original (PDF) on 2013-08-19. Retrieved 2006-10-12.
- Johnston, Jerry (1 April 2005). "वीएसई: पिछले 40 वर्षों पर एक नजर". z/Journal. Thomas Communications. Archived from the original on 4 March 2009.
- "कंप्यूटर क्रॉनिकल्स: 1972 - 1981". ThinkQuest. Oracle Corporation. 1998. Archived from the original on 21 June 2009.
- DeWard Brown, Gary (7 June 2002). ज़ोस जेसीएल (5th ed.). Wiley. ISBN 978-0-471-23635-1.
- "जेसीएल वक्तव्य फ़ील्ड". z/OS V1R11.0 MVS JCL Reference z/OS V1R10.0-V1R11.0. IBM. 2010.
- IBM Corporation (March 2007). नए मेनफ्रेम का परिचय: z/VSE मूल बातें (PDF). ISBN 978-0-73-848624-6. Retrieved 2017-12-06.
- Ashley, Ruth; Fernandez, Judi N. (1978). कार्य नियंत्रण भाषा: एक स्व-शिक्षण मार्गदर्शिका. New York: John Wiley & Sons. ISBN 0-471-03205-0.
- McQuillen, Kevin (1975). सिस्टम/360-370 असेंबलर भाषा (ओएस). Fresno, California: Mike Murach & Associates. LCCN 74-29645.
- Stern, Nancy; Stern, Robert A. (1980). संरचित COBOL प्रोग्रामिंग (3rd ed.). New York: John Wiley & Sons. ISBN 0-471-04913-1.
श्रेणी:स्क्रिप्टिंग भाषाएँ श्रेणी:कार्य शेड्यूलिंग श्रेणी:आईबीएम मेनफ्रेम संचालन प्रणाली