Priority Scheduling – Non-Preemptive क्या है

Priority Scheduling – Non-Preemptive क्या है?

Priority Scheduling – Non-Preemptive एक प्रकार का CPU Scheduling Algorithm है, जिसका उपयोग ऑपरेटिंग सिस्टम में विभिन्न प्रक्रियाओं (Processes) के CPU समय का प्रबंधन करने के लिए किया जाता है। इस Scheduling तकनीक में प्रत्येक प्रक्रिया को एक प्रायोरिटी (Priority) दी जाती है, और CPU हमेशा सबसे उच्च प्राथमिकता वाली प्रक्रिया को असाइन किया जाता है।

Non-Preemptive का मतलब है कि एक बार जब CPU किसी प्रक्रिया को दे दिया जाता है, तो वह प्रक्रिया पूरा होने तक CPU को छोड़ती नहीं है, चाहे कोई उच्च प्राथमिकता वाली प्रक्रिया कतार में क्यों न हो।

Priority Scheduling के मुख्य तत्व

  1. प्रक्रिया की प्राथमिकता (Process Priority)
    • प्रत्येक प्रक्रिया को एक मान (Number) दिया जाता है।
    • कम नंबर = उच्च प्राथमिकता या ज्यादा नंबर = उच्च प्राथमिकता, यह सिस्टम के design पर निर्भर करता है।
  2. CPU Allocation
    • CPU हमेशा उच्च प्राथमिकता वाली प्रक्रिया को पहले असाइन करता है।
    • यदि दो प्रक्रियाओं की प्राथमिकता समान है, तो आमतौर पर First-Come-First-Serve (FCFS) नियम लागू होता है।
  3. Non-Preemptive व्यवहार
    • एक बार CPU किसी प्रक्रिया को दे दिया गया, तो वह प्रक्रिया पूरा होने तक CPU पर रहती है
    • नई आने वाली उच्च प्राथमिकता प्रक्रिया का CPU पर कोई असर नहीं होता।

प्रक्रिया की प्राथमिकता (Process Priority) क्या है?

प्रक्रिया की प्राथमिकता (Process Priority) CPU Scheduling का एक महत्वपूर्ण सिद्धांत है, जिसमें प्रत्येक प्रक्रिया (Process) को एक प्राथमिकता स्तर (Priority Level) दिया जाता है। यह प्राथमिकता तय करती है कि CPU किस प्रक्रिया को पहले निष्पादित (Execute) करेगा।

ऑपरेटिंग सिस्टम हमेशा उच्च प्राथमिकता वाली प्रक्रिया को पहले CPU देता है, ताकि महत्वपूर्ण कार्य जल्दी पूरे हो सकें।

हाइलाइट: Process Priority सिस्टम को यह तय करने में मदद करती है कि कौन सा कार्य अधिक महत्वपूर्ण है।

CPU Scheduling में Process Priority की भूमिका

CPU Scheduling का मुख्य उद्देश्य है:

  • CPU का अधिकतम उपयोग
  • Waiting Time कम करना
  • System Responsiveness बढ़ाना
  • महत्वपूर्ण कार्यों को प्राथमिकता देना

इन सभी उद्देश्यों को पूरा करने के लिए Process Priority का उपयोग किया जाता है।

प्रक्रिया की प्राथमिकता क्यों आवश्यक है?

प्रक्रिया की प्राथमिकता कई कारणों से आवश्यक है:

  • महत्वपूर्ण सिस्टम कार्य पहले पूरे हों
  • Real-time operations में देरी न हो
  • User experience बेहतर हो
  • संसाधनों का संतुलित उपयोग हो
  • Multi-tasking सिस्टम में नियंत्रण बना रहे

उदाहरण:
Banking System में Transaction Process को Background Music Player से अधिक प्राथमिकता दी जाती है।

Process Priority के प्रकार

1. Static Priority (स्थिर प्राथमिकता)

  • प्राथमिकता पहले से तय होती है
  • Execution के दौरान नहीं बदलती
  • सरल लेकिन Starvation संभव

2. Dynamic Priority (गतिशील प्राथमिकता)

  • प्राथमिकता समय के साथ बदलती है
  • Waiting Time के आधार पर बढ़ सकती है
  • Starvation कम करती है
  • अधिक जटिल लेकिन संतुलित

Process Priority कैसे निर्धारित की जाती है?

ऑपरेटिंग सिस्टम कई कारकों के आधार पर प्राथमिकता तय करता है:

  • Process का प्रकार (System vs User)
  • Time-critical कार्य
  • Memory आवश्यकता
  • CPU Usage
  • Waiting Time
  • Aging Technique

    Aging Technique: लंबे समय से प्रतीक्षा कर रही प्रक्रिया की प्राथमिकता बढ़ाना।

Process Priority का उदाहरण

मान लीजिए 4 प्रक्रियाएँ हैं:

ProcessBurst TimePriority
P153
P221
P374
P432

Execution क्रम:

  1. P2 (Priority 1)
  2. P4 (Priority 2)
  3. P1 (Priority 3)
  4. P3 (Priority 4)

Gantt Chart:

| P2 | P4 | P1 | P3 | 0    2    5    10   17

Process Priority के लाभ

  • महत्वपूर्ण कार्य जल्दी पूरे होते हैं
  • System Efficiency बढ़ती है
  • CPU Utilization बेहतर होता है
  • User Responsiveness बढ़ती है
  • Real-time सिस्टम में उपयोगी

Process Priority की समस्याएँ

  • Starvation: Low priority प्रक्रिया को CPU नहीं मिलना
  • Complexity बढ़ना (Dynamic Priority में)
  • Scheduling overhead
  • Predictability कम होना

Process Priority और Starvation

जब High Priority Processes लगातार आती रहती हैं, तो Low Priority Processes लंबे समय तक CPU नहीं पा पातीं।

इस समस्या का समाधान:

  • Aging Technique
  • Dynamic Priority
  • Fair Scheduling

वास्तविक जीवन में Process Priority का उपयोग

  • Operating Systems (Windows, Linux, macOS)
  • Banking Servers
  • Hospital Systems
  • Air Traffic Control
  • Industrial Automation
  • Real-time Embedded Systems

Process Priority बनाम FIFO Scheduling

FeatureProcess PriorityFIFO
आधारमहत्वआगमन समय
Flexibilityअधिककम
Efficiencyउच्चमध्यम
Starvationसंभवनहीं

Priority Scheduling – Non-Preemptive का उदाहरण

मान लीजिए, हमारे पास चार प्रक्रिया हैं:

ProcessBurst TimePriority
P1103
P211
P324
P412

Step 1: सबसे उच्च प्राथमिकता वाली प्रक्रिया P2 (Priority 1) को CPU मिलेगा।
Step 2: P2 खत्म होने के बाद CPU P4 (Priority 2) को मिलेगा।
Step 3: फिर CPU P1 (Priority 3) को देगा।
Step 4: अंत में CPU P3 (Priority 4) को देगा।

Gantt Chart:

| P2 | P4 | P1        | P3 | 0    1    2          12   14

Priority Scheduling – Non-Preemptive के लाभ

  • सरल और लागू करने में आसान।
  • उच्च प्राथमिकता वाली प्रक्रिया को पहले CPU मिलता है।
  • CPU utilization बढ़ाने में मदद करता है।
  • छोटे और त्वरित कार्य जल्दी पूरे हो जाते हैं।

Priority Scheduling – Non-Preemptive के नुकसान

  • Starvation की समस्या:
    • यदि उच्च प्राथमिकता वाली प्रक्रियाएँ लगातार आती रहें, तो निम्न प्राथमिकता वाली प्रक्रियाएँ कभी CPU नहीं पा सकतीं
  • Deadlock की संभावना अधिक होती है यदि सही प्रबंधन न किया जाए।
  • Non-Preemptive होने के कारण लो प्रायोरिटी प्रक्रिया का इंतजार लंबा हो सकता है

Priority Scheduling – Non-Preemptive का उपयोग

  • Operating System में Process Management के लिए।
  • Real-Time Systems में जहाँ प्राथमिकता महत्वपूर्ण होती है।
  • Batch Processing Systems में प्रक्रिया के समय और महत्व के आधार पर Scheduling के लिए।

CPU Allocation क्या है?

CPU Allocation वह प्रक्रिया है जिसके माध्यम से ऑपरेटिंग सिस्टम यह तय करता है कि CPU किस प्रक्रिया (Process) को और कब दिया जाएगा।

किसी भी मल्टीटास्किंग सिस्टम में कई प्रक्रियाएँ एक साथ CPU की मांग करती हैं। CPU Allocation का काम है इन प्रक्रियाओं के बीच संतुलित और कुशल वितरण करना।

हाइलाइट: CPU Allocation तय करता है कि कौन सी प्रक्रिया CPU का उपयोग करेगी और कितनी देर तक करेगी।

CPU Allocation क्यों आवश्यक है?

CPU Allocation के बिना सिस्टम में अव्यवस्था हो जाएगी। इसकी आवश्यकता इसलिए है:

  • CPU का अधिकतम उपयोग
  • Waiting Time कम करना
  • System Performance बढ़ाना
  • Fairness बनाए रखना
  • Multitasking को संभव बनाना
  • महत्वपूर्ण कार्यों को प्राथमिकता देना

CPU Allocation कैसे काम करता है?

CPU Allocation मुख्य रूप से CPU Scheduler द्वारा नियंत्रित होता है।

प्रक्रिया:

  1. सभी प्रक्रियाएँ Ready Queue में रहती हैं
  2. Scheduler अगली प्रक्रिया चुनता है
  3. CPU चुनी गई प्रक्रिया को दिया जाता है
  4. प्रक्रिया Execution के बाद CPU छोड़ती है
  5. अगली प्रक्रिया को CPU मिलता है

CPU Allocation और CPU Scheduling का संबंध

CPU Allocation, CPU Scheduling का एक महत्वपूर्ण हिस्सा है।

  • CPU Scheduling = निर्णय लेना
  • CPU Allocation = CPU देना

    Scheduling तय करता है कौन, Allocation तय करता है कब और कैसे

CPU Allocation के प्रकार

1. Preemptive CPU Allocation

  • CPU प्रक्रिया से वापस लिया जा सकता है
  • नई High Priority प्रक्रिया को दिया जा सकता है
  • Real-time सिस्टम में उपयोगी

उदाहरण: Round Robin, Priority Scheduling (Preemptive)

2. Non-Preemptive CPU Allocation

  • प्रक्रिया CPU छोड़ती नहीं जब तक पूरी न हो
  • सरल लेकिन कम flexible

उदाहरण: FCFS, Non-Preemptive Priority

CPU Allocation का उदाहरण

मान लीजिए 3 प्रक्रियाएँ हैं:

ProcessBurst Time
P15
P23
P32

Execution क्रम (FCFS Allocation):

| P1 | P2 | P3 | 0    5    8    10

CPU Allocation क्रम Arrival के अनुसार हुआ।

CPU Allocation के लक्ष्य

एक अच्छा CPU Allocation सिस्टम:

  • CPU Idle Time कम करे
  • Throughput बढ़ाए
  • Response Time कम करे
  • Fairness बनाए रखे
  • Starvation रोके

CPU Allocation के लाभ

  • बेहतर System Performance
  • Multi-user Support
  • Efficient Resource Management
  • Smooth Multitasking
  • Real-time Execution Support

CPU Allocation की समस्याएँ

  • Starvation
  • Deadlock की संभावना
  • Context Switching Overhead
  • Priority Conflict
  • Scheduling Complexity

वास्तविक जीवन में CPU Allocation

CPU Allocation का उपयोग:

  • Windows / Linux / macOS
  • Mobile Operating Systems
  • Banking Servers
  • Cloud Computing
  • Embedded Systems
  • AI Processing Systems

CPU Allocation बनाम Memory Allocation

FeatureCPU AllocationMemory Allocation
संसाधनProcessor TimeRAM
उद्देश्यExecution ControlStorage Control
प्रबंधनSchedulerMemory Manager

Non-Preemptive व्यवहार क्या है?

Non-Preemptive व्यवहार CPU Scheduling की वह तकनीक है जिसमें एक बार CPU किसी प्रक्रिया (Process) को दे दिया जाता है, तो वह प्रक्रिया पूरा होने तक CPU को नहीं छोड़ती।

इसका मतलब है कि ऑपरेटिंग सिस्टम बीच में CPU वापस नहीं ले सकता, चाहे कोई अधिक महत्वपूर्ण प्रक्रिया कतार में आ जाए।

हाइलाइट: Non-Preemptive सिस्टम में चल रही प्रक्रिया को रोका नहीं जा सकता।

Non-Preemptive व्यवहार का मूल सिद्धांत

Non-Preemptive Scheduling का आधार बहुत सरल है:

  • एक प्रक्रिया CPU प्राप्त करती है
  • वह पूरा होने तक चलती है
  • उसके बाद ही अगली प्रक्रिया को CPU मिलता है

इससे Execution Order स्थिर और Predictable रहता है।

Non-Preemptive व्यवहार क्यों महत्वपूर्ण है?

  • Context Switching कम होता है
  • System Stability बढ़ती है
  • Implementation आसान है
  • CPU Overhead कम होता है
  • Predictable Execution मिलता है

यह विशेष रूप से Batch Processing Systems में उपयोगी है।

Non-Preemptive Scheduling कैसे काम करता है?

  1. सभी प्रक्रियाएँ Ready Queue में रहती हैं
  2. Scheduler अगली प्रक्रिया चुनता है
  3. प्रक्रिया CPU प्राप्त करती है
  4. प्रक्रिया पूरा होने तक CPU नहीं छोड़ेगी
  5. फिर अगली प्रक्रिया को CPU मिलेगा

Non-Preemptive व्यवहार का उदाहरण

मान लीजिए 3 प्रक्रियाएँ हैं:

ProcessBurst Time
P15
P23
P32

Execution क्रम:

| P1 | P2 | P3 | 0    5    8    10

यहाँ P1 पूरा चलने के बाद ही P2 शुरू हुआ।

Non-Preemptive Scheduling के प्रकार

  • FCFS (First Come First Serve)
  • Non-Preemptive Priority Scheduling
  • Shortest Job First (Non-Preemptive)

इन सभी में प्रक्रिया को बीच में रोका नहीं जाता।

Non-Preemptive व्यवहार के लाभ

  • Implementation आसान
  • Context Switching कम
  • CPU Overhead कम
  • Stable Execution
  • Debugging आसान

Non-Preemptive व्यवहार की समस्याएँ

  • Long Waiting Time
  • Low Priority Processes का Delay
  • System Responsiveness कम
  • Real-time सिस्टम के लिए उपयुक्त नहीं
  • Starvation की संभावना

Non-Preemptive बनाम Preemptive व्यवहार

FeatureNon-PreemptivePreemptive
CPU वापस लेनासंभव नहींसंभव
Flexibilityकमअधिक
Responsivenessकमअधिक
Complexityकमअधिक
Overheadकमअधिक

Non-Preemptive व्यवहार का उपयोग

  • Batch Processing Systems
  • Simple Embedded Systems
  • Offline Processing
  • Legacy Operating Systems
  • Educational Systems

निष्कर्ष

Priority Scheduling – Non-Preemptive एक महत्वपूर्ण CPU Scheduling तकनीक है, जो प्रक्रियाओं को उनके महत्व या प्राथमिकता के आधार पर क्रमबद्ध करता है। यह सरल और प्रभावी है, लेकिन Starvation और Low Priority Process Delay जैसी समस्याएँ हो सकती हैं।

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *