ऑपरेटिंग सिस्टीममध्ये पूर्वपरवानगी आणि नॉन-प्रीपेडिव्ह शेड्यूलिंग दरम्यान फरक

Anonim

प्रोसेसर शेड्युलिंग (किंवा CPU अनुसूचचत करणे <) निर्धारित करते की कोणत्या प्रक्रिया एसपीयूवरून निर्धारित केल्या जातात, आणि शेड्युलिंग मॉडेल्सवर आधारित, जसे की Preemptive आणि नॉन -प्राप्ति आकारणी ( सहकारी शेड्युलिंग < म्हणूनही ओळखले जाते.) <99-9> जुने पद्धती अगदी सोयीस्कर मोडमध्ये कार्य करू शकत होते परंतु वाढत सर्व कार्यप्रक्रिया विनंतीसाठी जलद प्रतिसाद देणारी, उत्तरदायी, लवचिक प्रणाली, तसेच वर्च्युअलाइजेशनची आवश्यकता आहे. शेड्युलिंग युनिटांना

कार्य < म्हणून संबोधले जाते आणि ते शेड्युलरची नोकरी आहे चालविण्यासाठी आणि जेव्हा आवश्यक असेल तेव्हा या कार्ये व्यवस्थापित करण्यासाठी; शेड्यूलर कार्य निवारण करण्यासाठी आणि निवडण्यासाठी CPU ला नियुक्त करते, एकमताने वापरलेल्या शेड्युलिंग मॉडेलमध्ये आयएनजी

शेड्युलरला कोणती कार्ये प्राधान्य आहेत हे कसे कळते? अकाउंट व्हेरिएबल, डायनॅमिक प्रोसेसिंग विनंत्या आणि बहुतेक सर्व CPU चक्रे बनवून शेड्युलरला सुयोग्य व कार्यक्षम निवड प्रक्रिया चालवावी लागते. प्रक्रिया करताना दोन राज्यांमध्ये कार्य करता येते:

एक

CPU बस्ट < जेथे CPU कार्य करण्यास प्रक्रिया चालविण्यास गणना करतो (CPU फट साठी कालावधी कार्य पासून कार्यानुसार बदलतो, आणि कार्यक्रम कार्यक्रम).

एक < इनपुट / आऊटपुट (I / O) बस्ट < डेटा प्राप्त होण्याची किंवा सिस्टमवरून पाठवण्याची वाट पाहत आहे.

  1. जेव्हा सीपीयू निष्फळ असतो, तेव्हा शेड्यूलर तयार केलेली क्यू < वाचतो आणि चालवण्यासाठी पुढील कार्य निवडतो. मग, हे डिस्पॅचर
  2. आहे जे निवडलेल्या कार्य नियंत्रणांना CPU चे नियंत्रण देते, म्हणून हे जलद असणे आवश्यक आहे! डिस्पॅचर्सने हातात घेतलेली कोणतीही वेळ डिस्पॅच लॅटन्सी म्हणून ओळखली जाते.

तयार केलेली क्यू < परिभाषित करण्यासाठी विविध संरचना आणि सानुकूल पॅरामिटर्स आहेत, तसेच शेड्युलिंग प्रक्रियेची जटिलता व्यवस्थापित करण्यासाठी वापरली जाऊ शकतील अशा अनेक पद्धती आहेत. सर्वसाधारणपणे, CPU वापर, थ्रुपुट इत्यादिचे अधिकतम आणि अधिक. शेड्युलरला खालीलपैकी एका चरणात निर्णय घ्यावा लागतो: जेव्हा कार्य चालवणे < पासून बदलते, एक प्रतीक्षणी राज्य (उदाहरणार्थ, I / O विनंती दरम्यान प्रतीक्षा करत आहे). जेव्हा कार्य

चालते < ते सज्ज < (उदाहरणार्थ एखाद्या व्यत्ययास प्रतिसाद देणे) मध्ये बदलते. जेव्हा कार्य

प्रतीक्षेत < ते

तयार केले < (उदाहरणार्थ I / O विनंती पूर्ण होते) बदलते

  1. जेव्हा कार्ये < जर स्टेज 1 किंवा 4 चे सीपीयू पूर्ण उपयोग सुनिश्चित झाले तर नवीन कार्य टाळले पाहिजे, आणि दोन्ही टप्प्यात 2 आणि 3 मध्ये, कार्य चालूच राहू शकते किंवा नवीन आहे निवडलेले कार्य कशा प्रकारे प्रक्रिया होते हे समजून घेतल्यानंतर, दोन इंटरफेक्ट्सचे व्यवहार करणार्या दोन शेड्युलिंग मॉडेल पाहू. दोन्ही कार्ये, कार्य अवस्था, रांगा आणि प्राधान्यक्रम (स्थिर किंवा गतिशील) यासारखीच वैशिष्ट्ये आहेत: नॉन-प्रीपेडिव्ह शेड्युलिंग < जेव्हा कार्य सुरु होईपर्यंत (स्वेच्छेने) थांबते किंवा शेवट होते विंडोज® मध्ये विंडोज 3 पर्यंत नॉन-प्रीपेडिव्ह शेड्युलिंग होते. त्यानंतर ते विंडोज 95 पासून प्रीपेडिव्हवर बदलले.
  2. प्रीपेव्हिव्ह स्केडिलिंग आहे जेथे एक कार्य जबरदस्तीने CPU खंडित करून निलंबित केले जाऊ शकते कार्य CPU पर्यंत नियंत्रीत होईपर्यंत चालते. नॉन-प्रीपेडिव्ह शेड्युलिंग पूर्ण न करणार्या सिस्टममध्ये कार्य पूर्ण होईपर्यंत चालवले जाईल. अनुसूचक नंतर सर्व कामे 'स्टेटस तपासतो आणि
  3. Ready स्थितीसह पुढील सर्वोच्च प्राधान्यक्रमित कार्ये निर्धारित करतो. नॉन-प्रीपेडिव्ह शेड्युलिंगसह, एकदा का कार्य CPU कडे त्याचे कार्य आहे, ते कमी केले जाऊ शकत नाही, जरी लहान कार्ये पूर्ण होण्यास जास्त काळासाठी प्रतीक्षा करावी लागली तरीही. सर्व कार्यांमधील शेड्युलिंग मॅनेजमेंट हे "निष्पक्ष" आहे आणि उच्च प्राथमिकता कार्ये कतारच्या खाली अधिक प्रतीक्षा करण्याच्या कामी करू शकत नाहीत म्हणून प्रतिसाद वेळा दर्शवितात. शेड्युलर सुनिश्चित करतो की प्रत्येक कार्याला त्याचा 'सीपीयूचा हिस्सा मिळेल, कोणत्याही कामात काही विलंब टाळता येईल. सीपीयूला देण्यात आलेल्या 'वेळेची रक्कम' हे आवश्यक नसते, कारण हे कार्य पूर्ण होण्यास किती काळ अवलंबून आहे यावर अवलंबून असते.
  4. प्रीपेडिव्ह स्केबिलिंग ही शेड्युलिंग मॉडेल कार्ये व्यत्यय आणू शकते - नॉन-प्रीपेडिव्ह शेड्युलिंगच्या विपरीत जे "रन-टू-पूर्ण" दृष्टिकोण आहे.

इंटरप्टस्, ज्यास बाह्य कॉलमधून सुरू करता येऊ शकतील, ते आणखी उच्च प्राधान्य काम व्यवस्थापित करण्यासाठी कार्यरत कार्य थांबवण्यासाठी अनुसूचीकांना सुचवेल - म्हणूनच सीपीयूचे नियंत्रण पूर्वश्रेणीत केले जाऊ शकते.

एक < तयार < राज्यातील सर्वोच्च प्राधान्यक्रम कार्यास अंमलात आणला जातो, ज्यामुळे रिअल-टाइम इव्हेंट्सवर जलद प्रतिसाद मिळतो.

प्रीपेडिव्ह स्केडिलिंगसह काही अडचणींमध्ये व्यत्यय वापरताना स्त्रोतवर ओव्हरहेड्स वाढणे समाविष्ट आहे आणि दोन कार्य डेटा सामायिक करणे सह समस्या उद्भवू शकतात, जसे की एक सामायिक डेटा स्ट्रक्चर्स अद्ययावत करताना व्यत्यय आणला जाऊ शकतो, आणि डेटा एकाग्रतावर नकारात्मक परिणाम होऊ शकतो.

  • दुसरीकडे, एक गंभीर समस्या असू शकते दुसर्या व्यवस्थापित करण्यासाठी कार्य विराम सक्षम असणे व्यावहारिक आहे. सारांश मध्ये
  • विविध धोरणातील बर्याच फरक आणि अवलंबन जसे की एक "राउंड रॉबिन पॉलिसी [i]"

वापरताना, प्रत्येक कार्य (समान प्राथमिकता सह) एकदा चालवते आणि नंतर पुढच्या सायकलसाठी, रांगेच्या शेवटी ठेवलेले.

इतर पॉलिसींमध्ये

प्रथम-प्रथम-आऊट, सर्वात कमी-नोकरी-प्रथम

कमीत कमी-नोकरी-पुढील

सर्वात कमी वेळ

, इ. < ऐतिहासिक डेटाचे विश्लेषण, नवीन कार्ये मिळविण्याच्या दर, CPU आणि I / O स्फोट इत्यादीसारख्या पैलुंची माहिती प्रदान करू शकतात. त्यामुळे संभाव्यता वितरण कार्ये 'प्रतीक्षा वेळाची वैशिष्ट्ये गणना करू शकतात, शेड्युलिंग मॉडेल्सची व्याख्या करण्यासाठी संबंधित डेटा असलेले प्रशासक <