What Is Software Terminology [सॉफ्टवेयर शब्दावली क्या है]
बग (Bug ) — किसी प्रोग्राम में आने वाली एरर (त्रुटि) को बग कहा जाता है। डिबग (Debug ) — किसी प्रोग्राम में आने वाली त्रुटि को हटाना डिबग या डिबगिंग कहलाता है।
डिबगर (Debugger) – इसके माध्यम से डिबगिंग प्रोसेस किया जाता है, अर्थात् किसी प्रोग्राम में आने वाली त्रुटियों की जाँच कर उसे हटाता है। बग का तात्पर्य प्रोग्राम में आने वाली त्रुटि से है। किसी प्रोग्राम में आने वाली त्रुटि को हटाने के लिए जो सॉफ्टवेयर प्रयुक्त होता है उसे डिबगर कहा जाता है।
पैच (Patch) — किसी सॉफ्टवेयर में आने वाली त्रुटियों को हटाने के लिए सॉफ्टवेयर के द्वारा जो ऑब्जेक्ट कोड दिया जाता है उसे पैच कहा जाता है।
डिस्क एन्क्रीप्शन (Disk Encryption ) – अनाधिकृत यूजर से डाटा को बचाने के लिए डिस्क के डाटा को अनरिडेबल फॉर्मेट में बदला जाता है जिसे डिस्क एन्क्रीप्शन कहा जाता है।
प्रोग्राम डॉक्यूमेंटेशन (Program Documentation ) – इसके अंतर्गत प्रोग्राम से सम्बन्धित विस्तृत जानकारी होती है अर्थात् इसमें यह बताया जाता है कि प्रोग्राम का किस प्रकार प्रयोग करना है, एवं प्रोग्राम का किस प्रकार रखरखाव करना है।
फैच एक्जिक्यूट चक्र (Fetch Execution Cycle ) — इसमें डाटा पर कार्य करने तथा डाटा का उपयोग करने तक का स्टेप होता है।
फैच (Fetch )—–प्रोसेसर रैम से डाटा पढ़कर अपने आंतरिक मेमोरी में स्टोर करता है।
डिकोडर (Decoder ) — डिकोडर एक ऐसा लॉजिकल परिपथ है जो इनपुट में दिए गए प्रत्येक संकेतो की पहचान कर अन्य संकेतो में परिवर्तन करता है।
एक्जिक्यूट (Execute ) — इसके अंतर्गत डाटा पर प्राप्त निर्देशों के अनुसार प्रोसेस कर परिणाम को प्रदर्शित किया जाता है।
ऑपरेटिंग सिस्टम में प्रोसेस मैनेजमेन्ट (प्रक्रिया प्रबंधन) [Process Management in Operating System]
Process (प्रोसेस) – जब किसी प्रोग्राम का एक्जिक्यूशन किया जाता है, तो यह एक्जिक्यूशन (execution) की प्रक्रिया ही Process कहलाती है अर्थात् किसी प्रोग्राम की execution state ही प्रोसेस कहलाती है। जब किसी प्रोग्राम के निर्देश (Instruction) रन (Run) हो रहे होते है तो प्रोग्राम की यह execution state ही प्रोसेस कहलाती है। एक प्रोग्राम passive entity होता है, जबकि एक प्रोसेस active entity होती है। एक प्रोसेस जिसे एक्जिक्यूट किया जा रहा है, प्रोसेस उसका एक इन्स्टेन्स (instance) होती है।
प्रोसेस प्रबंधन (Process Management)--जब कोई प्रोसेस एक्जिक्यूट होती है तो इस प्रोसेस को पूरा होने के लिएविभिन्न Computer Resources की आवश्यकता होती है। जब कम्प्यूटर सिस्टम में एक बार में एक से ज्यादा Process का एक्जिक्यूशन (execution) किया जाता है। तथा उन सभी प्रोसेस के लिए एक ही Resource की आवश्यकता होती है तो ऑपरेटिंग सिस्टम इन सभी प्रोसेसेस और रिसोर्सेज में Coordination बिठाता है, ताकि कोई भी प्रोसेस एक्जिक्यूट हो सके एवं Resources अधिकतम Utilization हो सके यही प्रोसेस मैनेजमेंट है।
जब कोई प्रोग्राम किसी निर्धारित टास्क / जॉब को पूरा करता है तो इस दौरान उसे कम्प्यूटर सिस्टम के विभिन्न रिर्सोस जैसे इनपुट / आउटपुट, मैमोरी में स्टोर डाटा, हार्डवेयर डिवाइस आदि की आवश्यकता होती है, जब किसी मल्टीप्रोसेसिंग (Multiprocessing) सिस्टम जिसमें दो या दो से अधिक प्रोग्राम एक समय पर रन हो रहे है एवं ये प्रोग्राम समान रिसोर्स (same resource) का उपयोग करना चाहते है तो ऐसी स्थिति में प्रोसेस मैनेजमेंट यह निर्धारित करता है कि प्रोग्राम बाधित (interrupted) भी ना हो एवं Resources का utilization भी सही से हो जाए।
प्रोसेस कोड (Process code): किसी प्रोसेस में निर्देशों का set जिसे एक्जिक्यूट किया जाता है, प्रोसेस कोड कहलाता है। प्रोसेस कम्पोनेन्ट (Process Component) : प्रत्येक प्रोसेस में ऐसा डाटा associated होता है, जिसे execute किए जाना है, इस डाटा के एक्जिक्यूशन के लिए आवश्यक रिर्सोसेज को प्रोसेस कम्पोनेन्ट कहा जाता है।
स्टेक (Stack): किसी भी प्रोसेस में स्टेक (stack) अस्थायी डाटा-local variable, function parameter, return address आदि शामिल होते हैं। टेक्स्ट (Text): इसमें प्रोसेसर के content एवं प्रोग्राम काउन्टर की
Value द्वारा व्यक्त की गई Current activity शामिल होती है। हीप (Heap): किसी भी प्रक्रिया (Process) को उसके run time के दौरान allocate की गई मेमोरी।डाटा (Data) इस सेक्शन में ग्लोबल एवं स्टेटिक वेरिएबल (Global & Static Variable) शामिल होते हैं।
प्रोसेस मैनेजमेंट के स्टेट (States Process Management) किसी भी प्रोसेस का Execution (क्रियान्वयन) अनेक States पर होता है, जब प्रोसेस एक्जिक्यूट हो रही होती है तो वह एक स्टेट से दूसरी स्टेट में जाती रहती है अर्थात् States को Change करती रहती है। ये स्टेटस निम्न प्रकार की होती है—
1. न्यू ( New ) – जब किसी प्रोसेस / प्रोग्राम को ऑपरेटिंग सिस्टम के द्वारा एक्जिक्यूशन (Execution) के लिए Main Memory में लोड किया जाता है तो प्रोसेस डायग्राम की यह स्टेट New कहलाती है।
2. रेडी (Ready) — रेडी प्रोसेस की वो स्टेट है जब कोई प्रोसेस Execution के लिए तैयार है और assign होने के लिए CPU का Wait करती है अर्थात् इस स्टेट में होने पर प्रोसेस को सीपीयू आवंटित (CPU allocate) किया जा सकता है।
3. रनिंग ( Running) – जो प्रोसेस ready state में होती है, उनमें से किसी एक Process को ऑपरेटिंग सिस्टम द्वारा चुन लिया जाता है। Operating system के द्वारा select किए जाने के बाद Process Running स्टेट में आ जाती है। इस state में Process के instruction रन होना शुरू हो जाते हैं। नोट-किसी प्रोसेस को select करने के लिए ऑपरेटिंग सिस्टम एल्गोरिथम का प्रयोग करता है।
4. ब्लॉक या वेट (Block या Wait) – जब कोई प्रोसेस running state में होती है और उसके behaviour में change होता है तो Process को Block state में डाला जा सकता है।
5. टर्मिनेशन (Termination or Completion)—यह state तब आती है जब किसी प्रोसेस का एक्जिक्यूशन पूरा हो जाता है अर्थात् जब किसी प्रोसेस का एक्जिक्यूशन पूरा हो जाता है। तो वो प्रोसेस Termination state में आ जाती है। नोट- जब कोई प्रोसेस टर्मिनेट (Terminate) होती है तो उसका पूरा content ऑपरेटिंग सिस्टम द्वारा Delete कर दिया जाता है।
6.सस्पेंड रेडी (Suspend Ready ) – जब किसी Low priority वाली Process को Secondary मेमोरी से Main Memory में मुव किया जाता है एवं Main memory पहले से ही high priority वाली प्रोसेसेस से भरी रहती है तब रिसोर्सेज की कमी के कारण Operating system low priority वाली प्रोसेस को वापस Secondary memory में भेज देता है। यह अवस्था suspend ready state है। Main memory होने के बाद low priority वाली Process को पुनः Main Memory में डाल दिया जाता है। खाली ये ऐसी स्टेट होती है जब Main Memory में ऐसी Block process होती है जो किसी Resource का Wait कर रही होती है, उस प्रोसेस को Secondary मेमोरी में Move कर दिया जाता है ताकि Main Memory में अन्य प्रोसेस के लिए खाली जगह उपलब्ध हो जाएँ।
प्रोसेस पर ऑपरेशन (Operation on Process) जगह उपलब्ध
1. क्रिएशन (Creation) : जब कोई प्रोसेस create होती है तो इसे ready queue (main memory) में Move का दिया जाता है और प्रोसेस एक्जिक्यूशन के लिए तैयार होती है।
2. एक्जिक्यूशन (Execution) : ऑपरेटिंग सिस्टम जब किसी प्रोसेस को select कर लेता है तो इसके बाद CPU में इस प्रोसेस का एक्जिक्यूशन किया जाता है। 3. डिलिशन (Deletion) : जब कोई प्रोसेस Complete हो जाती हैतो ऑपरेटिंग सिस्टम इस प्रोसेस के content को delete करके process को Terminate कर देता है। किसी भी प्रोसेस को track रखने हेतु O.S. निम्नलिखित सूचनाएँ रखता है—
Process State (प्रोसेस स्टेट)—यह किसी भी प्रोसेस की वर्तमान स्टेट (Current State) को बताता है, प्रोसेस की स्टेट न्यू, रेडी, रनिंग, वैटिंग, एक्जिट आदि हो सकती है। Pointer (पाइंटर) — पाइन्टर में Run की जाने वाली Next Process की PCB के एड्रेस को रखा जाता है।
Process ID (प्रोसेस ID) — प्रत्येक प्रोसेस को पहचानने हेतु उस प्रोसेस के प्रोसेस नम्बर का प्रयोग किया जाता है, यह प्रोसेस नम्बर ही प्रोसेस ID होता है। इसे PID (Process Identification Number) कहते है। नोट- प्रोसेस ID प्रत्येक प्रोसेस की Unique Identification होती है।
प्रायोरिटी (Priority ) प्रत्येक प्रोसेस को एक्जिक्यूट होने resources access करने को allow/disallow करने के लिए एक प्रायिकता (priority) निर्धारित होती है— नोट—प्रोसेस उसकी priority के अनुसार ही Execute होगा।
प्रोसेस कन्ट्रोल ब्लॉक (PCB) Process Control Block PCB (Process Control Block) एक ऐसा डाटा स्ट्रक्चर (Data Structure) होता है जो किसी भी प्रोसेस को ट्रेक (track) करने के लिए सभी Information को Maintain रखता है। यह सभी Process के लिए ऑपरेटिंग सिस्टम के द्वारा मैन्टेन किया जाता है। प्रोसेस कन्ट्रोल ब्लॉक (PCB) को Identify करने के लिए Integer Process ID का प्रयोग किया जाता है।
एक Process Control Block में एक विशिष्ट प्रोसेस से संबंधित इन्फॉर्मेशन के कई भाग समाहित होते है। जब एक प्रोसेस (Process) का निर्माण किया जाता है तो ऑपरेटिंग सिस्टम एक संबंधित PCB का निर्माण करता है एवं जब यह समाप्त होता है तो PCB को इसकी फ्री मेमोरी लोकेशन के क्षेत्र से मुक्त कर दिया जाता है।
प्रोग्राम काउण्टर (Program Counter ) — प्रोग्राम काउण्टर किसी एक्जिक्यूट होने वाली प्रोसेस के अगले इंस्ट्रक्शन (Next Instruction) के एड्रेस को Point करता है।
सीपीयू रजिस्टर्स (CPU registers)—किसी भी प्रोसेस क Running state में execution के लिए store करने हेतु CPU registers प्रयुक्त होते है। CPU Register संख्या एव प्रकार में भिन्न-भिन्न हो सकते है जो कम्प्यूटर के आर्किटेक्चर पर निर्भर करता है।
सीपीयू शेडयूलिंग इन्फॉर्मेशन (CPU Scheduling Information)—किसी भी प्रोसेस को शेडयूल (Schedule) करने के लिए जो आवश्यक Informations होती है वो इसमें स्टोर होती है। इस इन्फॉर्मेशन में प्रोसेस प्रायोरिटी, क्यूज की शेडयूलिंग के लिए पॉइन्टर्स आदि शामिल है।
मैमोरी मैनेजमेंट इन्फॉर्मेशन (Memory Management Information)— इसमें ऑपरेटिंग सिस्टम के द्वारा उपयोग किए गए मेमोरी सिस्टम आधारित सूचनाएँ जैसे Page Table Memory limits, Segment Table, Base register values आदि मौजूद रहती है।
अकाउटिंग इन्फॉर्मेशन (Accounting Information)- इसमें किसी प्रोसेस के एक्जिक्यूशन के लिए CPU द्वारा Use होने वाले वास्तविक समय की मात्रा, एकाउंट नम्बर, प्रोसेस नम्बर, अमाउंट, लिमिटस एवं एक्जिक्यूशन ID से संबंधित सूचनाएँ होती है।
I/O स्टेटस इन्फॉर्मेशन (I/O States Information)— इस प्रकार की Information के अन्तर्गत किसी भी प्रोसेस को आवंटित (allocate) की गई I/O डिवाइसेस की सूची, ओपन फाइल्स की सूची आदि को सम्मिलित किया गया है।
विभिन्न प्रकार की प्रोसेसस को मैनेज करने हेतु प्रयुक्त प्रोसेस मैनेजमेंट के लक्ष्य को प्राप्त करने हेतु O.S. निम्नानुसार कार्य करता है—
1. प्रोसेस की सूचना को स्टोर करना (Storing Information about Process)—ऑपरेटिंग सिस्टम प्रत्येक प्रोसेस की महत्वपूर्ण जानकारी/सूचनाओं के समूह को PCB (Process Control Block) के माध्यम से स्टोर रखता है अर्थात् जब ऑपरेटिंग सिस्टम किसी नई प्रोसेस को create करता है तो उस प्रोसेस से संबंधित जानकारियाँ जैसे—प्रोसेस का आकार, मैमोरी ब्लॉक्स और इनपुट-आउटपुट की आवश्यकता आदि को स्टोर कर लेता है।
2. प्रोसेस शेडयूलिंग (Process schedulding )—प्रोसेस शेडयूलिंग के द्वारा आपरेटिंग सिस्टम (Operating system) यह decide करता है कि किसी निश्चित समय पर किस प्रोग्राम को execute किया जाना है। प्रोसेस शेडयूलिंग के अन्तर्गत ऑपरेटिंग सिस्टम किसी चल रही Process/Program के Execution को रोककर किसी दूसरी Process के execution की शुरुआत कर देता है।