वह प्रोग्राम जो एक्जिक्यूशन की प्रक्रिया में होता है, प्रोसेस कहलाता है। सामान्यतया, एक प्रोसेस में कई प्रोसेश समाहित रहती हैं, जिनमें अल्पकालिक डाटा (जैसे मेध पेरामिटर, रिटर्न एड्रेस और लोकल एड्रेस) तथा एक डाटा सेक्शन (भाग) होते हैं । इस डाटा सेक्शन में ग्लोबल वेरीयेबल संग्रहीत रहते हैं। एक प्रोग्राम का एक निष्क्रिय अस्तित्व होता है, जिसमें डिस्क पर संग्रहीत फाईल को सामन्त्रों रहती है, परंतु प्रोसेस का एक सक्रिय अस्तित्व भी है, जो विशिष्ट प्रोग्राम को चलाने के लिये आदेश देता है । कुछl शेड्यूलिंग पॉलिसियों की सहायता से एक सिंगल प्रोसेसर को कई प्रोसेसेस् के लिये उपयोग किया जा सकता है। प्रोसेसर द्वारा इन पॉलिसियों का प्रयोग एक प्रोसेस को लागू करने और दूसरी को हटाने के लिये किया जाता है।
प्रोसेस के स्तर (स्टेट):
जैसे ही कोई प्रोग्राम सक्रिय होता है, यह अपनी स्थिति बदल लेता है। प्रोसेस की पूरी प्रक्रिया के दौरान, वह विशेष प्रोसेस की जानकारी देने वाली कुछ विशेषताओं के अनुसार कई स्तरों में विभाजित की जा सकती है। इसका तात्पर्य यह है कि जब कोई प्रोसेस एक्जिक्यूट (चलना) होना प्रारंभ करती है. तो यह एक स्थिति से दूसरी में होते हुए पूरी होती है। किसी भी प्रोसेस के निम्नलिखित स्तर हो सकते हैं –
1. न्यू प्रोसेस– सबसे पहले न्यू प्रोसेस का निर्माण होता है।
2. रनिंग (चलना) – इसमें दिये गए निर्देशों का पालन CPU होता है। जब किसी प्रोसेस पर CPU और दूसरे रिसोर्सेस द्वारा नियंत्रण किया जाता है, तब वह चलना प्रारंभ करती है।
3. वेटिंग (इंतजार) – प्रोसेस कुछ क्रियाओं के पूरा होने का इंतजार करती है (जैसे I/O की पूर्णता या एक दिये गए सिग्नल पर कार्य करना) । इसका कारण यह है कि प्रोसेस को CPU के अतिरिक्त कुछ अन्य रिसोर्सेस की आवश्यकता होती है।
4. रेडी (तैयार) – रेडी (तैयार) स्तर के लिये निम्न चरणों पूरा करने की आवश्यकता होती है -(a) एक प्रोसेस अपने को एक्जिक्यूशन के लिये प्रोसेसर प्रदान किये जाने का इंतजार करती है। (b) पहले से पंक्तिबद्ध प्रोसेस, रन होने के लिये ऑपरेटिंग सिस्टम द्वारा CPU टाईम का वितरण किये जाने का इंतज करती है । (c) प्रोग्राम एक तैयार प्रोसेस को, कंट्रोल पास कर, एक्जिक्यूशन के लिये चुनता है। इस प्रोग्राम को शेड्यूलर कहा जाता है तथा यह ऑपरेटिंग सिस्टम का भाग होता है।
5. टर्मिनेटेड – प्रोसेस पूरी हो चुकी है।
प्रोसेस के इन विभिन्न स्तरों के नाम विभिन्न ऑपरेटिंग सिस्टम्स में अलग-अलग हो सकते हैं। तथापि, उनके द्वारा निर्दिष्ट विभिन्न स्तर सभी सिस्टम्स में पाये जाते हैं। कुछ ऑपरेटिंग सिस्टम्स अधिक विस्तार के साथ प्रोसेस स्तरों का वर्णन करते हैं। दिये गए समय में एक प्रोसेसर पर एक से अधिक प्रोसेस नहीं चलाई जा सकती है। हाँ, कई प्रोसेस रेडीऔर वेटिंग के स्तरों पर हो सकती है।
प्रोसेस कंट्रोल (नियंत्रक) ब्लॉक:
ऑपरेटिंग सिस्टम में प्रत्येक प्रोसेस, एक प्रोसेस कंट्रोल ब्लॉक द्वारा पूरी की जाती है। प्रोसेस कंट्रोल ब्लॉक (PCB) को टास्क कंट्रोल ब्लॉक भी कहा जाता है। जब एक प्रोसेस का निर्माण किया जाता है, तब ऑपरेटिंग सिस्टम उसके अनुरूप एक PCB का भी निर्माण करता है और जब यह प्रोसेस टर्मिनेट होती है तब इसका PCB समूह के रूप में फ्री -PCB मेमोरी लोकेशन रिलिज करता है, जहाँ से नए PCBs का निर्माण किया जाता है। इसमें एक विशिष्ट प्रोसेस से संबंधित जानकारी केअतिरिक्त निम्नलिखित अन्य जानकारियां भी निहित होती हैं:
1. प्रोसेस नम्बर – प्रत्येक प्रोसेस को इसके प्रोसेस नम्बर जिसे ID कहा जाता है, से पहचाना जाता है ।
2. प्रायोरिटी – प्रत्येक प्रोसेस की एक विशेष प्रायोरिटी होती है, जिसके अनुसार वह एक्जिक्यूट होती है ।
3. प्रोसस स्तर प्रोग्राम का स्तर न्यू, रेडी, रनिंग, वेटिंग, हाल्टेड (विश्राम) हो सकता है ।
4. प्रोग्राम काउंटर – काउंटर उस अगले आदेश के एड्रेस को इंगित करता है, जो इस प्रोसेस के लिये दिया जा रहा हो।
5. CPU रजिस्टरस् – कम्प्यूटर आर्किटेक्चर के आधार पर इन रजिस्टरों के नम्बर और प्रकार भिन्न होते हैं। इनमें एक्युमूलेटर, इंडेक्स रजिस्टर, स्टेक पॉइंटर और सामान्य उद्देश्य के रजिस्टर के साथ-साथ किसी भी कंडिशन-कोड की जानकारी होती है। प्रोसेस के निरंतर अंत तक सही चलने के लिए आवश्यक है कि प्रोग्राम काउंटर के साथ साथ इस स्टेट जानकारी को भी कोई बाधा आने पर सुरक्षित किया जाए ।
6. CPU शेड्यूलिंग की जानकारी – इसके अन्तर्गत प्रोग्राम की प्रमुखता, शेड्यूलिंग पंक्तियों के लिये पॉइंटर और शेड्यूलिंग निर्धारण संबंधी अन्य जानकारियाँ होती हैं।
7. मेमोरी प्रबन्ध से संबंधित जानकारी – ऑपरेटिंग सिस्टम द्वारा प्रयुक्त मेमोरी सिस्टम के आधार पर, इसमें बेस और लिमिट रजिस्टर की वेल्यू, पेज़ टेबल या सेग्मेंट टेबल की जानकारी हो सकती है।
8. अकाउंटिंग से संबंधित जानकारी – इसके अन्तर्गत CPU की मात्रा, उपयोग किया गया रीयल टाइम समय सीमाएँ, अकाउंट नम्बर, जॉब या प्रोसेस नम्बर और इनसे संबंधित जानकारियाँ होती हैं ।
9. I/O के स्तर संबंधित जानकारी – इसके अन्तर्गत प्रोसेस को प्रदान किये गए I/O डिवाइस की सूची, ओपन फाइलों की सूची और इनसे संबंधित जानकारियाँ होती हैं ।
PCB किसी भी जानकारी के भण्डार (संग्रहक) के रूप में कार्य करता है और यह जानकारी एक प्रोसेस से दूसरे प्रोसेस में अलग-अलग भी हो सकती है।
प्रोसेस शेड्यूलिंग:
मल्टिप्रोग्रामिंग का मूल उद्देश्य पूरे समय कुछ प्रोसेसेस के चलते रहने के साथ ही CPU की कार्यक्षमता का अधिकाधिक उपयोग करना भी होता है। टाइम-शेयरिंग का मुख्य उद्देश्य CPU का उपयोग विभिन्न प्रोसेसेस में इतनी तीव्रता के साथ करना होता है कि यूजर प्रत्येक चलते हुए प्रोग्राम पर कार्य कर सके । एक यूनीप्रोसेसर सिस्टम में एक बार में एक ही प्रोसेस चल सकती है। यदि कुछ और प्रोसेसेस आती हैं, तब शेष प्रोसेसेस CPU को CPU के फ्री होने तक तथा पुनः शेड्यूल होने तक इंतजार करना पड़ेगा। शेड्यूलिंग उस क्रियाकलाप को कहते हैं, जिसके द्वारा यह निर्धारित होता है कि CPU द्वारा अगली किस कमांड पर कार्य किया जाना है ।
प्रोसेसों को दिये जाने वाले फिजिकल प्रोसेसर की सहायता से प्रोसेस अपना कार्य पूरा करती हैं। फिजिकल प्रोसेसर को असाईन किया जाना एक जटिल समस्या है, जिसको ऑपरेटिंग सिस्टम द्वारा हल किया जाता है। प्रोसेसर कब और किस प्रोसेस के लिये निर्धारित किया जाए, इस समस्या को प्रोसेसर शेड्यूलिंग कहा जाता है ।