हेलो जी कैसे हो सारे दिस इज लव बबर तो आज हम स्टार्ट करने वाले हैं ओएस मैराथन एक 15 से 16 घंटे की वीडियो आप यहां पर देख पा रहे हैं यहां पर ओएस हमने पढ़ाई है बिल्कुल डेप्थ से स्टार्टिंग से उठाकर एकदम एडवांस लेवल तक लेके गए हैं हमने बात की है कि ऑपरेटिंग सिस्टम होता क्या है कैसे एक ऑपरेटिंग सिस्टम बूट करता है प्रोसेसेस क्या होते हैं 32 बिट वर्सेस 64 बिट क्या होता है शेड्यूलिंग कैसे काम करती है थ्रेशिंग क्या होता है कन करंट प्रोसेसस क्या होते हैं थ्रेड्स क्या होते हैं सिंक्रोनाइजेशन कैसे करते हैं डेड लॉक कैसे होता है कैसे आप उसको बचा सकते हैं अवॉइडेंस कैसे होगी हैंडलिंग कैसे होगी ऐसे सारे के सारे टॉपिक्स जो कि आपके प्लेसमेंट इंटरव्यू के अंदर बहुत ज्यादा पूछे जाते हैं उन सभी टॉपिक्स को इन डेप्थ कवर किया गया है और सिर्फ थ्योरी नहीं है साथ में हमने जो भी प्रैक्टिकल किया जा सकता था कंप्यूटर के अंदर आपके डिवाइस के अंदर वो भी करके दिखाया है तो अगर आप टारगेट कर रहे हैं कि यार ओस पढ़ लूं प्लेसमेंट क्रैक कर लूं तो प्लेसमेंट क्रैक करने के लिए आपके ओएस की मैराथन वन शॉर्ट वीडियो ये बन चुकी है फटाफट से स्टार्ट करें और कंप्लीट होने के बाद कमेंट सेक्शन में लिख के जाना कि भैया कंप्लीट कर दी है अभी कमेंट कर दो कि स्टार्ट कर दिए तो शुरू करते हैं [संगीत] हेलो जी कैसे हो सारे दिस इज लक्ष आज हम शुरू करने जा रहे हैं हमारी ओएस सीरीज का लेक्चर नंबर वन चीज एकदम सिंपल होने वाली है एकदम हम बेसिक से शुरू करेंगे ओस होता क्या है क्यों जरूरी है किस लिए ओस इस दुनिया में एजिस्ट करता है ठीक है तो सबसे पहले हम शुरू करते हैं वट वाले पार्ट से ओस होता क्या है भैया बट मैं कहता हूं थोड़ा सा रुकते हैं हम वट प थोड़ी देर में आएंगे पहले हम वा वाले पार्ट को जान ले ना हो तो क्या होगा क्यों जरूरी है ओस इस वाले पार्ट को पहले डिस्कस करते हैं तो यार सबने जीपीयू चाहिए हमें और डिस्क चाहिए तो इसको मैं बोल सकता हूं एक छोटा सा कंप्यूटर एक मिनिमलिस्टिक कंप्यूटर जिसमें यह चार कंपोनेंट तो होंगे ही भैया ठीक है तो अब आप गए आपको टिकटक यूज करनी थी आपने टिकटक प ऑन करी ऑन करते ही अब क्या होगा ओस जैसी कोई चीज नहीं है अभी इस दुनिया में यह दिमाग में रखें अब नहीं है तो क्या होगा टिकटक जैसे ही लच होगा पज खेलते हैं चलो ठीक है अब पबज का आपका मन हुआ आपने टिकटक को बोला टिकटक तू थोड़ी देर शांत बैठ मेरे को पब्जी खेलना है बट क्योंकि आपके रिसोर्सेस सारे हैक कर रखे हैं टिकटक ने पबजी ऑन भी नहीं हो पाएगी पबजी ऑन होने से पहले ही व हैंग स्टेट पर चली जाएगी व ऑन नहीं हो सकती तो अब आप ध्यान से सोचो यहां पर रिसोर्सेस तो आपके पास है और एडिक्ट रिसोर्सेस है कि दोनों प्स हो पाए बट आप पबज खेल नहीं पाओगे इस टाइम तो अब यह चीज मैं कैसे करू तो हमें चाहिए कि टिकटक को सारे रिसोर्सेस ना देके हम कुछ कुछ रिसोर्सेस दे दे कुछ कुछ परसेंटेज उन रिसोर्सेस का हम प्रोवाइड करते तो अब हम क्या करते हैं इसके बीच में डाल देते हैं ओस की लेयर ओस आ गया यहां पर अब ओस क्या करेगा ओस क्या करेगा कि भाई टिकटॉक ये गुंडा पंती छोड़ो और 5 पर लेलो सीपीयू ठीक है 10 पर ले लो मेमोरी और बाकी कुछ 12 पर जीपीयू दे देते हैं इसको एंड सो न ठीक अब क्योंकि सारे रिसोर्सेस इसको नहीं दिए गए हैं तो पबजी भी अब मेमरी में आ सकता है अब आएगा पबजी पबजी जी पबजी आएगा पबजी को बोला पबजी थोड़ी सी हैवी प है तो इसको थ जदा देते % इसको दे दिया सीपीयू 50 पर इसको दे द मेमोरी और 60 पर इसको दे दिया हमने जीपीयू ठीक है तो अब आप देख पा रहे हो कि अब यहां पर कुछ रिसोर्स मैनेजमेंट जैसा कुछ कुछ हो रहा है राइट कि सारे रिसोर्सेस एक ही को नहीं दिए जा रहे हैं हमने पबज को भी कुछ रिसोर्सेस दिए टिकटक को भी कुछ रिसोर्सेस दिए तो इसको हम क्या बोलते हैं रिसोर्स मैनेजमेंट बढ़िया सी टर्म आ गई है हमारे दिमाग में रिसोर्स मैनेजमेंट तो भया ओएस का हमने अभी अभी जस्ट पहला काम भी देखा रिसोर्स मैनेजमेंट तो अभी आपने देखा ओस नहीं था तो कैसे हैकिंग चल रही थी हाईजैक हाईजैक हो रही थी चीजें और अब रिसोर्स मैनेज होकर यूज हो रहे हैं तो ओस का पहला काम हमारा यह हो गया रिसोर्स मैनेजमेंट आपने देखा कैसे होता है अब आप थोड़ा थोड़ा देख रहे होंगे जो अभी हमने यहां पर ओस को ऐड किया था य आपने ओस को ऐड किया अब इसको थोड़ा टेक्निकली हम थोड़ा अच्छे वर्ड्स में बोले तो ओस ना यहां पर एक इंटरफेस की तरह काम कर रहा है किसकी तरह काम कर रहा है इंटरफेस इंटरफेस अब यह नई चीज बोल दी अब इंटरफेस क्या होता है भैया अब इसको देसी एग्जांपल समझते इंटरफेस होता क्या है देखो आप सब बैंक जाते हो ठीक है सब बैंक जाते हैं ये आप हो आप जाते हो बैंक आपको चाहिए अपने 00 जो आपके बैंक में पड़े हैं आपको कैश निकलवाना है आप जाते हो अंकल के पास ये आपका बैंक है ये आपके अंकल है खडूस से एसबीआई की बात हो रही है यहां पे ठीक है अब आप गए बैंक में आपने बैंक में जाके बोला अंकल मुझे ना मेरे 10000 चाहिए अंकल क्या बोलते हैं ये लो स्लिप स्लिप भर दो उसमें डिटेल्स डाल दो अपना अकाउंट नंबर वगैरह और आपको मैं दे दूंगा अब आप खुद नहीं जा रहे हो बैंक के जो उनका बोल सकते खजाना है जहां पर कैश रखा हुआ है वहां खुद नहीं जा रहे हो आप अंकल के थ्रू जा रहे हो तो यहां पर अगर मैं देखूं तो यह आपका खजाना था आपके यहां पर पैसे पड़े थे अंकल जाते हैं और पैसे लेकर आते हैं फिर आपको देते हैं तो अंकल यहां पर क्या कर रहे हैं एक इंटरफेस की तरह काम कर रहे हैं बीच में ठीक है आप खुद नहीं जा रहे हो अंकल जा रहे हैं अंकल हो गए इंटरफेस अब अगर मैं इसको थोड़ा ऐसे समझू एनालॉजी बिठाऊ जो अभी हम डिस्कस कर रहे थे ओएस वाले केस में तो जो आप हो जो आप हो वो हो यूजर पप टिकटॉक ठीक है और जो बैंक है बैंक में जो अंकल बैठे हैं अंकल जो बैठे हैं वह है इंटरफेस जो कि है यहां पर ओस ठीक है और अंदर जो खजाना पड़ा था पैसों का वो हो गया आपके रिसोर्सेस सीपीयू जीपीयू एटस राइट तो ये हो गया हमने समझ लिया इंटरफेस होता क्या है तो ओस यहां पर एज ए इंटरफेस एक्ट कर रहा है आपके रिसोर्सेस आपकी यूजर आपके बीच में ओस एक इंटरफेस है ठीक है तो हमने समझ लिया कि ओस एक इंटरफेस की तरह एक्ट करता है अब हम एक और चीज समझते हैं कि ओस ना हो तो क्या होगा इसकी एक और प्रॉब्लम को समझते हैं अब आप सोचो कि आप सब कोडिंग करते हो अपनी एप्स लिखते हो तो आप क्या करते हो अगर c+ प् की मैं बात करूं c+ प की अगर मैं बात करूं आप मेमोरी एलोकेशन के लिए क्या यूज करते हो आप यूज करते हो मेलक या न्यू सी में मेलक दोनों में सपोर्टेड है तो मेलक आप यूज करते हो तो आपने क्या आपको चाहिए होता है मुझे 10 बाइट दे दो तो आप सिंपल मेलक को बोलते हो 10 बाइट लाकर मुझे दे दे ठीक है आपको नहीं पता कि ओस किस तरीके से यह मेमोरी के अंदर जा रहा है कौन से सेक्टर से फ्री मेमरी निकाल के दे रहा है यह आपको इस चीज की कोई जानकारी भी नहीं है ना आपको इस चीज से मतलब है आपको अपने प के लॉजिक से मतलब है ठीक है तो अगर ओस यहां पर नहीं होता अगर ओस नहीं होता वापस से कोड भी उसको खुद लिखना पड़ेगा बाकी और रिसोर्सेस के मैनेजमेंट का कोड भी उसको खुद ही लिखना पड़ेगा मेमोरी मैनेजमेंट का हम एग्जांपल ले रहे हैं थोड़ा इजी पड़ेगा तो अब टिकटक वाले ने मान लो लिख दिया डेवलपर ने भाई रन तो पबज भी करना है हमें तो पबज का डेवलपर भी क्या करेगा वो खुद भी मेमोरी मैनेजमेंट का कोड लिखेगा अब देखो ध्यान से देखो अब हो क्या रहा है यहां पर कि सेम कोड अब किसी कंप्यूटर के अंदर मेमोरी मैनेजमेंट का सेम कोड होगा कि कहां पे रिसोर्सेस है कहां नहीं है वो सेम कोड यूज होगा सेम कोड ठीक है तो आप देख पा रहे हो कि एप्स हो गई बल्की हो गई है अब कितना मतलब सब खिचड़ी हो गई है और अगर थोड़ा सा और टेक्निकल टर्म में बात करें तो यहां पर ड्राई प्रिंसिपल होता है एक उसका वायलेशन हो रहा है ठीक है अब हम देखते हैं भैया ये ड्राई क्या बोल दिया आपने कोई नहीं बताएगा आपको ा लेक्चर में ट्राई होता है डू नॉट रिपीट योरसेल्फ ठीक है बहुत ही सिंपल सा है अगर इस एग्जांपल ले तो हम जब आप कोडिंग करते हो तो आपको मान लो एक फंक्शन है एक प्राइम नंबर निकालने का फंक्शन है ठीक है प्राइम नंबर निकालने का फंक्शन आपको कोड में बहुत जगह पर प्लेस करना है तो आप क्या करते हो आप सिंपल उठा के एक फंक्शन लिख देते हो ठीक है और उस फंक्शन को कॉल कराते रहते हो जहां-जहां आपको नीड है इस चीज की राइट तो ये होता है आपका डू नॉट रिपीट योरसेल्फ प्रिंसिपल अब यहां पर क्या हो रहा था यहां पर हो रहा था कि मेमोरी मैनेजमेंट और बाकी रिसोर्सेस के मैनेजमेंट का कोड खुद ही खुद ही लिखना पड़ रहा था एप्लीकेशन डेवलपर को तो यहां पर सेम कोड रिपीट कर रहे हैं हम जिसकी जरूरत नहीं है ध्यान से सोचे तो हम तो ड्राइव प्रिंसिपल का लेशन हो रहा है इसको रोकने के लिए अब देखो वापस से ओस जब पिक्चर में आएगा तो इसको कितने बढ़िया तरीके से इसको यहां से अवॉइड करेगा देखो अब हम क्या करेंगे जो ये रिसोर्स मैनेजमेंट का कोड है स्पेलिंग गल तोरी है कोई बात नहीं समझो आप रिसोर्स मैनेजमेंट का जो कोड है वो आपको क्या करना है वो ओस कहेगा कि मैं अपने अंदर लिख लेता हूं ओस के कोड बेस के अंदर होगा सारे रिसोर्स मैनेजमेंट कोड बीइंग इट मेमोरी मैनेजमेंट शेड्यूलिंग प्रोसेस मैनेजमेंट जो भी सब उसी में बड़ा होगा अब इससे देखो काम कितना इजी हो आप एप्लीकेशन डेवलपर हो आपको मान लो कुछ अपनी एप्लीकेशन लिखनी है वेदर की ऐप लिखनी है तो आप वेदर की ऐ कैसे वर्क करेगी उस बारे में सोचोगे बस आप यह सब इन सब चक्कर में नहीं पड़ोगे कि मैं कैसे रिसोर्स को मैनेज करूं यह सब चक्कर आपके लिए है ही नहीं तो अब ये देखो कैसे ओस ने किसी भी ऐप को बल्की होने से बचाया तो ये देख लेते हैं अब ये ओस का सेकंड अपना वर्क भी हुआ कि वो बल्की होने से बचाता है ठीक है बल्की एप्स नहीं होंगी अब तो ओस ना हो तो मेमोरी मैनेजमेंट का इशू आता है रिसोर्स मैनेजमेंट का इशू आता है बल्की हो जाती है तो इस तरीके से कुछ होता है तो यह दो काम तो हमने समझ लिया एक और बहुत ही इंपॉर्टेंट काम है जो ओस करता है तो ओस ना हो तो एक और इंपॉर्टेंट काम है जो अभी हम मेरे दिमाग में आ रहा है जो हम डिस्कस करना चाहिए आस वह है आपका आइसोलेशन एंड प्रोटेक्शन प्रोवाइड करना कैसे अब एक और एग्जांपल लेते हैं कि यह थी आपकी मेमोरी ठीक है अब इस मेमरी में आपके पास ऐसे ब्लॉक्स है मान लो य आपके ब्लॉक्स हो गए अब इन ब्लॉक्स में अब मैं देखता हूं कि जैसे आपने जैसे हम एग्जांपल ले रहे थे प्रीवियस व एग्जांपल था हमारे टिकटक मेमोरी में है ठीक है और आपके पबजबी मेमोरी में जब आपने ऑन किया तो क्या हुआ टिकटक ने कुछ मेमोरी ले ली पबज ने उठा के कुछ मेमोरी ले ली अब ध्यान से देखो अभी आपको इनकी मेमोरी अलग-अलग नजर आ रही है बट जरूरी ऐसा नहीं है ऐसा अब ओस जब नहीं है तो कोई आइसोलेशन नहीं है अलग-अलग एप्स नहीं है आइसोलेशन का यहां पर क्या मतलब है कि दोनों की मेमोरी लॉजिकली दूर दूर होनी चाहिए टिकटक को नहीं पता होना चाहिए कि पबजी जैसी कोई प भी मेमोरी के अंदर है तो अगर ओस यहां पर नहीं है तो क्या होगा टिकटक क्या करेगी हो सकता है वो जाकर कुछ राइट कर दे pubg-gift.com पर हेल्थ है ठीक है और अब ये क्या करेगा टिकटक उस जहां पर 100% लिखा है उसम लोकेशन पर निकाल के उसने ओवरराइट कर दिया % से अब आपकी तो थोड़ी देर पहले 100% थी अब आपका कोड का मॉड्यूल क्या करेगा देखेगा इसकी तो 0 पर हेल्थ है तो उसको मार दो तो यू विल बी डेड अब इससे क्या हुआ कितनी खतरनाक चीज है आपको छोटा सा एग्जांपल से समझ आया अब ओस अगर इसमें पिक्चर में आ जाए फिर से ओस क्या करेगा ओस बोलेगा भैया वो लॉजिकली स्टोर करेगा कि मैंने टिकटक को कहां से कहां तक की मेमोरी दी है यह मान लो आपकी मेमोरी है तो बोलेगा कि मैंने टिकटक को जीरो से मान लो इस लोकेशन तक की मेमोरी दी है तो मैं पबजी को इस लोकेशन से इस लोकेशन तक की मेमोरी देता हूं बस अब ओस यहां पर पूरा पूरा ध्यान रखेगा इस चीज का टिकटक को यह पता भी ना चले कि पबज जैसी प रन हो रही है वहां प दोनों की मेमोरी भी सेपरेट रहेगी दोनों के मतलब दोनों की एसिस्टेंट सेपरेट रहेगी तो इस तरीके से जो ओएस है वो मेमोरी प्रोटेक्शन और आइसोलेशन प्रोवाइड करेगा किसी भी दो एप्स को या मल्टीपल एप्स को तो अगर हम थोड़ा सा नोट्स पर नजर डाल ले नोट्स हमने आपके लिए बनाए हैं बहुत मेहनत से तो अगर नोट्स प नजर डाले तो सबसे पहले हमने जाना व्ट इफ देयर इज नो ओएस तो इसमें हमने देखा कि रिसोर्स एक्सप्लोइटेशन कर दे कि भाई कोई भी है गुंडा बन जाएगी दूसरा कि जो हार्डवेयर इंटरेक्शन का कोड है मेमोरी मैनेजमेंट वगैरह वो सब आपको खुद लिख ना पड़ेगा में तो इससे क्या होगा कॉम्प्लेक्शन भी नहीं रहेगी तो अब इसको थोड़ा सा डिफरेंट तरीके से सोचे कि अब हम बोल सकते हैं कि ओस के फंक्शन क्याक है तो फंक्शन ऑफ द ओस आर ठीक है पहला फंक्शन आपने देखा रिसोर्स मैनेजमेंट का फंक्शन काफी इंपोर्टेंट फंक्शन है आर्बिट्रेशन भी बोल सकते उसको फैंसी वर्ड यूज करना है तो इंटरव्य के सामने दूसरा कि यह दो एंटिटी जो हमारे पास है कंप्यूटर हार्डवेयर और यूजर है इसके बीच में इंटरफेस की तरह एक्ट करता है यह दूसरा हो गया पॉइंट हमारा ठीक है तीसरा जो अभी आपने बल्की प वाला एग्जांपल था हमारे पास उसमें ओस ने सारा हार्डवेयर इंटरेक्शन का कोड खुद ही अपने कोड बेस में लिखा हुआ था इससे क्या हुआ अब वह आपको टेंशन फ्री कर रहा है आपसे छुपा रहा है वो कोड कैसे लिखा आपको इस चीज की टेंशन ही नहीं लेनी आपको सीधा मेलक कॉल करनी है आपको मेमोरी मिल जाएगी बस कैसे हो रही है क्यों हो रही है वह आपको टेंशन लेने की जरूरत ही नहीं है इससे क्या हो रहा है वह आपको एक अंडरलाइन कॉम्प्लेक्टेड साइड में यानी कि अपना कंप्यूटर हार्डवेयर वाली साइड जो कॉम्प्लेक्टेड कर रहे हो बिलकुल आपको उसकी टेंशन नहीं लेनी तो दिस इज़ ए फंक्शन ऑफ़ ओस कि जिसमें इट हाइड्स द अंडरलाइन कॉम्प्लेक्शन ऑफ़ हार्डवेयर जिसको हम एब्स्ट्रैक्टर हैं अगेन ए फैंसी वर्ड चौथा सबसे इंपॉर्टेंट काम फैसिलिटेट्स एग्जीक्यूशन ऑफ़ एप्लीकेशन प्रोग्राम फर प्रोवाइड आइसोलेशन एंड प्रोटेक्शन जस्ट हमने डिस्कस किया और एक और चीज जो अभी ड नोट्स हमने लिखी है कि एक्सेस टू द कंप्यूटर हार्डवेयर अब हम बोल सकते हैं कि जो कंप्यूटर हार्डवेयर का एक्सेस है व यूजर प के पास है ही नहीं वह सिर्फ सिर्फ और सिर्फ ओस के पास है कंप्यूटर हार्डवेयर एक्सेस अगर किसी को कंप्यूटर हार्डवेयर से इंटरेक्ट करना है तो ओएस भैया के पास जाओगे वह आपको गाइड करेंगे कैसे आप करना आपको करना है ठीक है तो दिस इज एक्सेस टू द कंप्यूटर हार्डवेयर तो अब हमने ओस ना हो तो जान लिया उसका रेवेंस जान लिया आपने देख लिया मतलब कितना इंपोर्टेंट इंपोर्टेंट काम करता है अब एक और चीज पर ध्यान देते हैं जो हमने सबसे पहले बोला था व्ट इज एन ओस ऑपरेटिंग सिस्टम होता क्या है एक फॉर्मल डेफिनेशन जो इन्हीं सबसे मिलकर बनी है व है एन ऑपरेटिंग सिस्टम इ पीस ऑफ सॉफ्टवेयर एक सॉफ्टवेयर है व खुद एक सॉफ्टवेयर है आप बनाते हो वो तो है ही सॉफ्टवेर य खुद भी एक सॉफ्टवेर ही है पीस ऑफ सॉफ्टवेयर ट मैनेस ल द रिसोर्सेस ऑफ कंप्यूटर सिस्टम अब रिसोर्सेस किसी भी हो सकते हैं हार्डवेयर भी सॉफ्टवेर भी वो दोनों रिसोर्सेस को मैनेज करता है एंड प्रोवाइड एन एनवायरमेंट इन विच यूजर कैन एग्जीक्यूट हिज और हर प्रोग्राम इन एन कन्वेनिएंट एंड एफिट बनर अब वो एक ऐसा एनवायरमेंट डेवलपर को प्रोवाइड कर रहा है व एक यूजर को प्रोवाइड कर रहा है कि वह अपने प्रोग्राम्स को कन्वेनिएंट और एफिशिएंटली रन कर सकता है उसको इधर उधर की टेंशन लेने की कोई जरूरत नहीं है कि कैसे मेमोरी लोकेट होगी या क्या होगा मल्टीपल प्स को आराम से रन कर सकता है ठीक है कोई हाईजैकिंग नहीं हो रही है यहां पे अ इसको करता कैसे है ये दो इंपॉर्टेंट चीजों के नाम ले लेते हैं बाय हाइडिल कॉम्प्लेक्टेड वेयर एंड एक्टिंग एज ए रिसोर्स मैनेजर रिसोर्स मैनेजर की तरह एक्ट करता है और अंडरलाइन कॉम्प्लेक्शन ठीक है य आप याद कर लेना इंटरव्यू पूछे आप बोल देना इसको ठीक है तो यह हमारा फर्स्ट लेक्चर था ओएस का जिसमें हमने जान लिया काफी अच्छी अच्छी चीजें पढ़ी हमने एकदम बेसिक से जानी आई होप आपको सब समझ आया होगा कमेंट सेक्शन में जरूर बताना कि कैसी थी वीडियो पहली आगे क्या-क्या इंप्रूवमेंट्स कर सकते हैं हम इसमें सब बताना सब कमेंट्स हम पढ़ेंगे ठीक है तो चलिए मिलते हैं नेक्स्ट लेक्चर में ओके बाय हेलो जी कैसे हो सारे दिस इज लक्ष्य वेलकम टू द चैनल कोड हेल्प तो आज हम डिस्कस करेंगे हमारे ओएस सीरीज का लेक्चर नंबर टू कुछ बहुत ही इंटरेस्टिंग चीजें डिस्कस करने वाले हैं जिसमें कि पहली चीज है टाइप्स ऑफ ओएस सो टाइप्स ऑफ ओएस कितने टाइप के ओएस है भैया इस दुनिया में ठीक है और वो ओएस के टाइप बने किस तरीके से हैं अब टाइप्स ऑफ ओस डायरेक्टली उस पर जमप करने से पहले मैं चाहूंगा आप गोल्स जानो कुछ कि यह जो ओस के टाइप बने हैं य क्या दिमाग में रख के बने हैं तो अगर मैं बोलू गोल्स क्या है किसी भी ऑपरेटिंग सिस्टम के तो पहला गोल तो भैया होता है मैक्सिमम सीपीयू यूटिलाइजेशन अब यह क्या होता है अब आप सोचो एक जो ऑपरेटिंग सिस्टम है उसका काम क्या है उसका एक काम है कि बहुत सारी जो आपकी प्रोसेसेस है आपकी जो आप रन करना चाहते हो बहुत सारी जॉब्स जो हैं आप चाहते हो कि वह सीपीयू रन करें और मान लो आपके पास एक सीपीयू है और क्या बहुत सारे प्रोसेसेस भी है ठीक है अब कोई ऐसा टाइम तो आप नहीं चाहोगे ना कि आपके प्रोसेसेस तो पड़ी है बस सीपीयू काम नहीं कर रहा कुछ ठीक है तो इसका मतलब हम नहीं चाहते कि हमारा जो सीपीयू है कि हमारा जो सीपीयू है यह कभी भी आइडल बैठे हम नहीं चाहते ये ठीक है तो अब इसका एक एग्जांपल ले लेते हैं मान लो आपके पास कुछ प्रोसेसेस है प p1 p2 p3 ठीक है अब यह जो प्रोसेसेस है आपकी मान लो पहले सीपीयू p1 प काम करने लगा अब जब p1 प ये सीपीयू काम कर रहा है तो अब थोड़ी देर के लिए मान लो p1 कुछ आईओ करने चला गया p1 क्या करा p1 यहां से कुछ आओ करने चला गया बेसिकली मैं कह आपने कोई प्रोसेस कॉपी पेस्ट की डाली थी तो कॉपी पेस्ट करने लग गया वो अब जब तक वो कॉपी पेस्ट कर रहा है हम नहीं चाहते कि सीपीयू खाली बैठा रहे अब सीपीयू जो है बहुत महंगा आता है और आपकी इलेक्ट्रिसिटी भी कंज्यूम कर रहा है राइट तो हम चाहते नहीं है कि वो एकदम शांत बैठा रहे आइडल एकदम कुछ ना करे तो उस पॉइंट ऑफ टाइम के लिए हम क्या करेंगे आयो जब तक वो आ कर रहा है हम चाहेंगे कि कि भाई तू पीट को एग्जीक्यूट कर ले जब तक है ना थोड़ क्या पता आयो में एक दो मिनट लग जाए तो उस टाइम तक त प2 को एग्जीक्यूट कर ले तो यह होता है मैक्सिमम सीपीयू यूटिलाइजेशन ठीक है अब यह तो हमारा हो गया पहला गोल कि हम चाहते नहीं है वो आइडल बैठे ठीक है भैया अब दूसरा गोल क्या है अब दूसरा गोल है हमारा कि हम प्रोसेस स्टार्वेशन नहीं चाहते अब प्रोसेस स्टार्वेशन क्या होता है अब आप ये सोचो जैसे अभी हमने एग्जांपल दिया था कि एक सीपीयू है आपका ठीक है ये सीपीयू है आपका और आपके बहुत सारी प्रोसेस हैं b1 p2 p3 अब p1 जॉब इसने मान लो सीपीयू ने पहले पिक करी अब सीपीय p1 को एग्जीक्यूट कर रहा है ओस ने p1 बोल दिया कि भाई तू p1 एग्जीक्यूट कर अब p1 जॉब मान लो बहुत ही बड़ी जॉब है मतलब बहुत ही अब मान लो कोई आपने ऐसा प्रोग्राम गलती से लिख दिया जिसमें कि वाइल वन लिख के लूप छोड़ दिया है ठीक है अब इनफाइकिल नहीं चाहिए तो p1 जो है हम नहीं चाहेंगे कि p1 की वजह से क्योंकि p1 ऐसे खराब प्रोग्राम है या फिर बहुत ज्यादा टाइम लगाता है इस सिर्फ इसी वजह से हम नहीं चाहेंगे कि p2 और p3 कोभी मौका ही ना मिले अब देखो कितनी खतरनाक चीज है कि किसी बंदे ने मान लो कोई प्रोग्राम लिख दिया बस वाइल वन करके छोड़ दिया ठीक है और पीट पी3 जो बाकी जॉब्स है या बाकी प्स बोल सकता हूं मैं उनको कभी आपको मौका ही नहीं मिल रहा कितनी ही गलत बात है यह ठीक है तो इसको बोलते हैं प्रोसेस स्टार्वेशन नहीं होना चाहिए ठीक है यह हमारा हो गया दूसरा गोल अब तीसरा गोल है हमारा हाई प्रायरिटी जॉब्स एग्जीक्यूशन अब इसका क्या मतलब हाई प्रा जॉब एग्जीक्यूशन का मतलब है अब मान लो आपके पास बहुत सारी जॉब है सेम एग्जांपल है सीपीय आपके पास p1 प2 पी3 ऐसे बहुत सारी जॉब है अभी मान लो मान लेते हैं कि सीपीयू में मतलब आपके ओएस के पूरे इकोसिस्टम में ये तीन ही जॉब्स है अब यह तीनों जॉब तो बारी-बारी एग्जीक्यूट हो रही है कभी ये एग्जीक्यूट हो रही है कभी ये एग्जीक्यूट हो रही है कभी ये एग्जीक्यूट हो रही है अब सोचो अब मैं चाहता हूं कि ये नॉर्मल नॉर्मल जॉब्स थी मान लो नॉर्मल नर्मल जॉब्स है ठीक है अब एकदम से कोई हाई प्रायोरिटी जॉब आ जाए आप हाई प्रायोरिटी जब कैसी हो सकती है जैसे मान लो एंटीवायरस को स्कैन करना है जल्दी से ठीक है तो एंटीवायरस क्योंकि वायरस ना आ जाए इसलिए एंटीवायरस कुछ इस तरीके से प्रोग्राम होता है कि कोई भी आपने रिमूवेबल डिस्क डाली जैसे ही डाली आप जो भी काम कर रहा हो जल्दी से एक हाई प्रायोरिटी टास्क आएगी कि भाई जल्दी से इसको स्कैन कर दो ठीक है तो हम चाहते हैं कि हाई प्रायोरिटी टास्क भी एग्जीक्यूट हो पाए तो ये सपोर्ट भी एक ऑपरेटिंग सिस्टम में होना चाहिए ठीक है तो कोई p4 जॉब आई तो हम चाहते हैं कि सारी जॉब्स हटा के ये p4 रन होने लग जाए ठीक है तो ये हाय प्रायोरिटी जॉब एग्जीक्यूशन भी होना चाहिए तो यह तो हमारे हो गए गोल्स ठीक है अब गोल्स तो आपको क्लियर हो गए होप क्लियर हो गए होंगे ठीक है अब हम चलते हैं हमारे मेन जो टॉ टाइप्स ऑफ ओस अब हम आ ग टाइप्स ऑफ ओस प अब टाइप्स ऑफ ओस में सबसे पहला ओएस है सिंगल प्रोसेस ओस सिंगल प्रोसेस ओस अभी देखो सबसे सिंपल ओस है नाम से ही पता चल रहा होगा कि सिंगल प्रोसेस ओस मतलब इसमें एक बारी में एक ही जॉब एग्जीक्यूट हो सकती है मल्टीपल जॉब्स की कहानी मतलब खत्म ही है यहां मतलब अब ये सबसे बाबा आदम के जमाने का ओएस हुआ करता सबसे पहले इसी टाइप के ओएस आए थे जिसमें कि अब एग्जांपल दूं तो आपको कि यह सीपीयू है आपका ठीक है अब मान लो पव प2 पी3 बहुत सारी जॉब है अब एक बारी में एक ही जॉब एसक्यू होगी यह पीव जॉब है आपके पास सबसे पहले ये एग्जीक्यूट होगी अब अब जब p1 खत्म हो जाएगी p1 की एग्जीक्यूशन खत्म हो जाएगी तब प2 जाएगी एग्जीक्यूट होगी सेकंड नंबर पे ठीक है देखो कितना मजाक सा लग रहा है मतलब एक जॉब आएगी पहले एक एग्जीक्यूट होगी फिर दूसरी आएगी दूसरी एग्जीक्यूट होगी अब इसमें अगर मैं थोड़ा सा दिमाग लगाऊं और जो मैंने आपसे अभी गोल्स डिस्कस कर रहे थे गोल्स देखूं तो क्या यहां पे मैक्सिमम सीपी यूटिलाइजेशन हो रही है सोचो थोड़ा आंसर है नहीं हो रही है कैसे नहीं हो रही है यह देखो अब मैक्सिमम सीपी यूटिलाइजेशन में म था कि मतलब जब भी कोई जॉब अगर थोड़ा वेट ट में चली गई है कुछ और करने लग गई है तो दूसरी जॉब्स आए और अपना सीपीयू एग्जीक्यूट दूसरी जॉब्स को करने लग जाए बेसिकली तो अब मान लो फॉर एग्जांपल प2 ने क्या किया प2 आओ करने चली गई सॉरी पव आओ करने चली गई पव आओ करने चली गई तो क्या पीट को मौका मिलेगा इस ओएस में पीट को मौका नहीं मिलेगा तो मैक्सिमम सीपी यूटिलाइजेशन वाला पॉइंट तो यहां पे खत्म ही है कि मतलब मैक्सिमम सीपी यूटिलाइजेशन नहीं हो पा रही ठीक है अब दूसरा हमारा था कि क्या प्रोसेस स्टार्वेशन होगी क्या प्रोसेस स्टार्वेशन होगी बिल्कुल होगी कैसे अब पव एग्जीक्यूट हो रही है ठीक है पव एग्जीक्यूट हो रही है अब पव एक बहुत ही बड़ी जॉब है वही वाइल वन वाला एग्जांपल ठीक है पव एक बहुत ही बड़ी जॉब है ठीक है टाइम टेकिंग बोल सकता हूं मैं इसको टाइम कॉम्प्लेक्टेड हो गए साल हो गए p1 एग्जीक्यूट होती ही रहेगी p2 को कभी मौका नहीं मिलेगा ना p3 का तो भूल ही जाओ ठीक है तो प्रोसेस स्टार्वेशन वाली प्रॉब्लम है यहां पर ठीक है तीसरी प्रॉब्लम क्या थी हाई प्रायोरिटी जॉब अब देखो एक ही जॉब एग्जीक्यूट हो रही है तो क्या दूसरी है चौथी जॉब जो हाई प्रायरिटी कोई एंटीवायरस वाला एग्जांपल था क्या हाई प्रायरिटी जॉब यहां एग्जीक्यूट हो पाएगी आंसर इज नो नहीं हो पाएगी रीजन बीइंग रीजन एकदम स्पष्ट ही है एकदम हाय प्रायरिटी जॉब कोई भी आएगी p1 एग्जीक्यूट हो रही है वो होती रहेगी हाय प्रायरिटी जॉब कभी मौका नहीं मिलेगा ठीक है तो ये हमारा बेसिक सा ओएस हो गया सिंगल प्रोसेस ओएस ठीक है अब एक एग्जांपल देख लेते हैं यार सिंगल प्रोसेस ओएस इसका एग्जांपल देखूं तो मैं एमएस डोज सबसे पहले वाला ये इसका एग्जांपल है सिंगल प्रोसेस ओएस था यार अब सोच रहे होगे कि ये ऐसा ओस बना ही क्यों यार सब कुछ डेवलपमेंट इंक्रीमेंटली होती है तो सबसे पहले जो प्रोसेसर ही बना होगा वो ऐसा बना होगा एक बारी में एक ही को एक ही प्रोसेस को झेल पाए तो जैसा एक एक चीज होती है यार कि ना जो अपना कंप्यूटर की दुनिया है ना इसमें क्या होता है कि जैसा हार्डवेयर बनता रहता है ना मतलब जो फिजिकल हार्डवेयर फिजिकल डिवाइस ना जैसा हार्डवेयर बनता है उसी तरीके से सॉफ्टवेयर रिक्वायरमेंट बनती है उल्टा नहीं होता कभी कि एक सॉफ्टवेयर बना दिया आपने जो सो एंड सो कुछ गजब मैजिक कर सकता है तो ऐसा कुछ हार्डवेयर बना दो अब सोच के देखो सॉफ्टवेयर तो खुद भी फिर भी बंदा बना सकता है सॉफ्टवेयर एक मतलब कंप्यूटर पर बनाई हुई चीज है पर हार्डवेयर जो है वो एक्चुअली बनता है तो जैसा हार्डवेयर उस टाइम बना होगा एक ऐसा हार्डवेयर बना होगा जो एक ही प्रोसेस को कर पाता होगा वैसे ही सॉफ्टवेयर बन गया ठीक है अब दूसरा आता है हमारा दूसरे पर चलते हैं हम दूसरे ओस प वो होता है हमारा बैच बैच प्रोसेसिंग ओस अ बैच प्रोसेसिंग ओस क्या होता है य बैच प्रोसेसिंग ओस कुछ इस तरीके से है कि एक एग्जांपल से ही समझ लेते हैं सीधा कि बहुत सारे यूजर है ठीक है बहुत सारे हर यूजर कोई एक एक जॉब सबमिट करने वाला है ठीक है तो अब पहले समझते हैं कि जॉब जो य यूजर में लिखा हुआ है यहां पर ये जो जॉब यूजर है इसमें जॉब य सबमिट कैसे करता है उस जमाने में ना यार एक पंच कार्ड नाम की चीज होती थी पंच कार्ड पंच कार्ड क्या होता था जैसे आज की डेट में एटीएम होता है ना एटीएम एटीएम या आपका क्रेडिट कार्ड डेबिट कार्ड तो उसमें कुछ मैग्नेटिक स्ट्रिप लगी होती है तो उसके अंदर डिजिटल इंफॉर्मेशन होती है तो डिजिटल इंफॉर्मेशन मतलब जब वो कार्ड में होती है कार्ड में डिटल नहीं होती वो जैसे ही आप उसको स्कैनर से स्कैन करते हो तो एक डिजिटल इंफॉर्मेशन में ट्रांसफॉर्म हो जाती है ठीक है तो ऐसा ही कुछ होता था उस टाइम अब मैग्नेटिक स्ट्रप तो नहीं होती थी कुछ इस तरीके से होता था कि आप जैसे ऐसे कुछ सर्कल सर्कल सर्कल सर्कल बहुत सारे होते थे ऐसे ऐसे सर्कल बना देते हम अब इंफॉर्मेशन कुछ ऐसे ऐसे भरी होती थी कुछ सर्कल भरे हैं कुछ नहीं भरे हैं कुछ सर्कल भरे हैं कुछ नहीं भरे हैं ऐसे इस तरीके से इंफॉर्मेशन होती थी बाइनरी इंफॉर्मेशन बोल सकता हूं मैं इसको ठीक है अब यह कुछ फिजिकल पेपर में होती थी कार्ड प होती थीय कार्ड प अभ कार्ड को हम स्कैन कर देते थे स्कैनर से ठीक है और वो डिजिटल इंफॉर्मेशन में कन्वर्ट हो जाती थी तो ये पंच कार्ड का कांसेप्ट होता था तो पंच कार्ड क्यों बताया पंच कार्ड इसलिए बताया क्योंकि ये जो बैच प्रोसेसिंग ओएस होते थे इसमें यूजर जो होता था एक पंच कार्ड की फॉर्म में अपनी जॉब को लेके आता था ठीक है अब वो जॉब लेके आया यूजर वन अब जब यूजर वन जॉब लेके आया यूजर टू जॉब लेके आया ऐसी एंथ यूजर जॉब लि आ है अब जो बहुत सारी जॉब हो गई आपके अब एन जॉब्स हो गई ठीक है अब ये जो एन जॉब हो गई एक ऑपरेटर होता था एक ऑपरेटर एक सॉफ्टवेयर ही होता था बोल सकता हूं मैं एक तो हर यूजर जो जॉब सबमिट कर रहा है ऑपरेटर क्या कर रहा है ऑपरेटर का काम कुछ नहीं है ऑपरेटर हर जॉब को ऊपर ऊपर से देख रहा है बस ऊपर ऊपर से मतलब वह जॉब के अंदर जाके तो देख नहीं सकता कि कौन सी जॉब को कितना टाइम लगेगा ऐसे एस्टिमेशन वो नहीं लगा पाएगा बस ऊपर देखता था कि किस जॉब को कितनी क्या रिक्वायरमेंट है रिक्वायरमेंट के हिसाब से एक मतलब रूट फोर्स तरीके से उसको शॉर्ट कर देता था जॉब को ठीक है तो ऑपरेटर का काम क्या हो गया सॉर्ट करना जॉब्स को अब जॉब्स तो बहुत सारी सॉर्ट कर दी सॉर्ट करने के बाद उनको बैचेज में डिवाइड कर दिया ठीक है आपको समझ आ रहा है बैच प्रोसेसिंग ओएस मतलब बैच जो प्रोसेसेस होंगी वो बैचे में आएंगी तो अब इस बैच को उठाया जैसे मैं यहां पर हमने दो बैचे बना रखे हैं बैच वन बैच टू अब ये कुछ सिमिलर सिमिलर सी जॉब्स है ठीक है तो बैच वन में हमने जॉब वन जॉब फोर डाल दी ऐसे फटू और सेन बैच टू में डाल दी अब जो ये ईच बैच होगा ना ईच बैच सीक्वेंशियल सबमिट होगा सीक्वेंशियल जाएगा सीपीयू के पास कि टू वर्क कर इसपे टू वर्क कर और हर बैच पे जो सीपीयू होगा ना वो सीक्वेंशियल ही काम करेगा यानी कि सिंगल प्रोसेस की तरह ही काम करेगा सीपी य सिंगल ही है तो क्या होगा अब सबसे पहले क्या होगा कि बैच वन पिक किया मैंने ठीक है बैच वन पूरा बैच ओस के पास जाएगा ओएस बोलेगा इसको शेड्यूल कर दो सीपीयू को तो अब सीपीयू को ओएस कैसे देगा सीपीयू को ओस देगा पहले जॉब वन देगा फिर जॉब फोर देगा ठीक है तो इस तरीके से बैच वन एग्जीक्यूट हो जाएगा सिमिलरली फ बैच वन जैसे ही कंप्लीट होगा बैच टू एग्जीक्यूट होगा तो अब देखो कि मतलब ज्यादा फर्क नहीं आया यहां पे यहां पर भी क्या है बस हमने बचेस में डिवाइड कर दिया बचेस में डिवाइड करने के बाद हमने अब इसको एक बचेस भाई सबमिट करे जा रहे हैं हम ऐसा कुछ हमने ऑप्टिमाइजेशन लगाने की कोशिश की अब मैं थोड़ा सा वापस से उन्हीं तीन हमारे गोल्स प आता हूं मैक्सिमम सीपी यूटिलाइजेशन प्रोसेस स्टार्वेशन और हाई प्रायोरिटी एग्जीक्यूशन हो पाएगा कि नहीं तो क्या यहां पे मैक्सिमम सीपी यूटिलाइजेशन हो पा रही है नहीं हो पा रही है कैसे अब जो ईच बैच है वो ईच बैच तो सीक्वेंशियल ही काम करेगा यहां भी सिंगल प्रोसेस ओस की तरह ही अब मान लो बैच वन गया बैच वन जो हमारा गया बैच वन बैच वन में जेव और j4 दो जॉब्स थी अब मान लो जेव ने बहुत टाइम लगा दिया आओ में तो j4 अभी बैठी वेट ही करेगी तो यहां पर मैक्सिमम सीपी यूटिलाइजेशन नहीं है ठीक है सिमिलरली दूसरा पॉइंट हमारा था कि प्रोसेस स्टार्वेशन वही अगर जेवन जो बैच वन के अंदर जेव ने बहुत टाइम लगा दिया बैच वन के अंदर जेव ने बहुत टाइम लगा दिया तो j4 वेट करती रहेगी तो प्रोसेस स्टार्वेशन हो ही जाएगी अपने आप और दूसरा यहां प बैच स्टार्वेशन भी हो जाएगी अब मान लो बैच वन को बहुत टाइम लग गया एग्जीक्यूट करने को बैच वन बहुत देर से एग्जीक्यूशन प लगा हुआ है तो बैच फोर स्टार्वेशन में आ जाएगा उसको मौका नहीं मिल पाएगा ठीक है तीसरा पॉइंट जो हमारा था हाय प्रायोरिटी जॉब अब मान लो कोई हाई प्रायोरिटी जॉब भाई बट य पर तो है कि भाई एक बैच जब तक कंप्लीट नहीं होगा तो दूसरा बैच एग्जीक्यूट ही नहीं हो सकता वो अलाउड ही नहीं है तो यहां भी ये तीन जो हमारे गोलय कुछ खास फुलफिल होते नहीं है ठीक है यह तो हमारा हो गया दूसरा टाइप जो था बैच प्रोसेस ओस अब हम आते हैं हमारे तीसरे टाइप प अब यह जो आगे टाइप्स है बहुत इंपोर्टेंट होने वाले इन इंटरव्यू क्वेश्चन भी बनते हैं ठीक है तो सबसे पहला है मल्टी प्रोग्रामिंग ओस प्रोग्रामिंग ओस अब यहां पर वो गोल्स है ना थोड़े-थोड़े मतलब मैं बोल सकता हूं मतलब पिक्चर में आने लगेंगे कि हां फुलफिल हो रहे हैं वो थोड़े थोड़े गोल्स यहां से और मल्टी प्रोग्रामिंग अब यहां से हम इस का टाइप पढ़ेंगे इसको थोड़ा ध्यान से सुनना क्योंकि यह इंटरव्यू में पूछे जाते हैं मल्टी प्रोग्रामिंग ओस क्या होता है भैया ठीक है अब मल्टी प्रोग्रामिंग में क्या होता है कि सीपीयू जो होता है ना हमारा वो तो होता है सिंगल ही सिंगल सीपीयू जैसे और बाकी दो टाइप जो हमने पढ़े उसम सिंगल सीपीय भी था इसमें क्या है हम बहुत सारे जॉब्स को रखते हैं हमारे क्यू के अंदर एक हमारी टर्म होती है रेडी क्यू ठीक है अब रेडी क्यू के अंदर मैं बहुत सारी जॉब लगता हूं j1 j2 j3 j4 मतलब रेडी क्यू का मतलब क्या है एसी क्यू एसी क्यू तो सबको पता ही है ऐसी लाइन बेसिकली ऐसी एक टा स्ट्रक्चर है इसके अंदर बहुत सारे जो रेडी टू बी एग्जीक्यूटेड है मतलब बस उनको मौका चाहिए कि सीपीय उठा ले जी हमें ठीक है तो रेडी टू एग्जीक्यूटेड जॉब जो है वो रेडी क्यू में पड़ी होती है तो यहां पर क्या होता है मल्टी प्रोग्रामिंग के अंदर हम क्या करते हैं बहुत सारी प्रोसेसेस को प्रोसेस करते हैं और ऐसा मतलब कह सकता हूं मैं ऐसा वर्चुअल एनवायरमेंट बनाते हैं कि जब भी कोई जब भी कोई प्रोसेस मान लो आओ में चली जाए या कुछ वेट स्टेट में चली जाए तो दूसरी प्रोसेस जो है तभी स्केड्यूल हो जाए और सीपी उसे पिक कर ले उसको एक्यूट करने लग जाए मतलब एक एग्जांपल ले लेते हैं ये आपका एक सीपीयू है ठीक है रेडी क्यू में आपके पास जो ऊपर बहुत j1 ज2 j3 जॉब पड़ी हुई है अब क्या होगा अब मान लो जेव एग्जीक्यूशन के लिए पहले जाती है क्योंकि ये सिंगल सीपीयू है तो एक बारी में एक ही जॉब एग्जीक्यूट होगी j1 जाएगी जव एग्जीक्यूट हो रही है हो रही है अब जव पे क्या कमांड आई कि उसको कुछ कॉपी करना था यूएसबी से ठीक है बाहर जाके कुछ आपने प्रिंट ड्राइव की कोई कमांड दी थी कि भाई वहां से कुछ कॉपी डाटा करना है तो अब यह कॉपी करने गया तो वो आओ करने चला गया राइट आयो बोलेंगे इसको आई करने क्या वो यूएसबी से तो जब तक आयो चल रहा है सीपीयू कुछ काम नहीं कर रहा है क्योंकि काम शुरू होगा आओ के बाद तो जब तक आयो चल रहा है सीपीयू आइडल ना रहे सीपीयू आइडल ना रहे मैं क्या करूंगा कि भाई तू जब तक j2 को क्यों नहीं एग्जीक्यूट कर लेता है ना तो j1 क्या करेगा वो वेट स्टेट में चला जाएगा कि भाई आओ कंप्लीट हो j2 जो है वो अपना उसपे एग्जीक्यूशन चालू हो जाएगी ठीक है तो ये होता है मल्टी प्रोग्रामिंग ओस अब हमने सीख लिया मल्टी प्रोग्रामिंग ओएस क्या होता है अब इसमें एक बड़ा ही प्यारा सा कांसेप्ट आता है जिसको हम बोलते हैं कांटेक्ट स्विचिंग बड़ा ही इंपॉर्टेंट टॉपिक है ये कंटेस्ट स्विचिंग के बाद में डिटेल में हम प्रोसेस मैनेजमेंट में पढ़ेंगे बट अभी थोड़ा सा ब्रीफ कर देते हैं थोड़ा सा छोटा सा एग्जांपल लो अब जैसे कि हमने बोला इसमें बहुत सारी प्रोसेसेस होंगी मेमोरी के अंदर अब जब बहुत सारी प्रोसेसेस होंगी और जब भी कोई आयो में जाएगी या वेट स्टेट में जाएगी तो हम दूसरी स प्रोसेस को बोल देंगे तो एग्जीक्यूट हो तो ये जो सीपीय एक ही है तो इसमें जो कांसेप्ट यूज होता है ना इसमें जो कांसेप्ट यूज होता है इसको मैं बोलता हूं कांटेक्ट स्विचिंग कांटेक्ट स्विचिंग का मतलब आप छोटा एग्जांपल लो थोड़ा टेक्निकल जाने से पहले एक मैं रियल लाइफ से एग्जांपल लेता हूं मान लो आप जब बोर्ड के एग्जाम की तैयारी कर रहे किसी भी एग्जाम की तैयारी कर रहे होते हो तो आपके पास फिजिक्स है अब अभी फिजिक्स पढ़ रहे हो तो फिजिक्स में क्या करोगे आप आपके बहुत सारे टेबल पर फिजिक्स की बुक खुली होंगी आपके नोट्स खुले होंगे टीचर के नोट दोस्त के दिए हुए नोट नोट्स होंगे आपके खुद के नोट्स होंगे जो आपने ढंग से नहीं बना रखे होंगे बहुत सारे नोट्स होंगे आपके पास तो आप सब कुछ फिजिक्स का मटेरियल खुला हुआ है आप उससे पढ़ रहे हो बढ़िया से ठीक है अब आपने सोचा था कि 11:00 बजे से ना 11:00 बजे से मैं फिजिक्स नहीं मैं केमिस्ट्री पढ़ूंगा अब आप क्या करोगे टेबल से सारी फिजिक्स की बुक उठाओगे और जहां-जहां पे आप पढ़ रहे थे क्योंकि बाद में फिजिक्स भी कंटिन्यू करनी है पढ़ना ठीक है तो आप क्या करोगे बीच में बुक मार्क्सस लगाओगे अपना पेन डाल दोगे और बंद कर दोगे सारी बुक्स बुक्स बंद करने के बाद साइड में रख दोगे और सारी केमिस्ट्री की बुक्स खोलोगे जहां तक आपने पढ़ रखा था वहां से आपने बुकमार्क लगा ही रखा होगा केमिस्ट्री की बुक्स में तो आप उनको खोलोगे और केमिस्ट्री पढ़ना शुरू कर दोगे अब आप देखो यहां पे क्या हो रहा है कि आपने क्या किया आपने अभी का जो आपका स्टेट था जो भी आप फिजिक्स की बुक्स का स्टेट था फिजिक्स के मटेरियल का स्टेट था उसको आपने वहीं के वहीं बंद किया और सेव कर दिया कहीं पे ठीक है और जो केमिस्ट्री का आपका मटेरियल था उसको आपने रिस्टोर करा ठीक है तो अब इसकी एनालॉजी बिठाते हैं हम आपके पास से दो प्रोसेस थी p1 और p2 इसके बीच में कांटेक्ट स्विचिंग कराते हैं तो जो सीपीयू था ठीक है उस वो पहले p1 पे काम कर रहा था अब p1 पे काम कर रहा था p1 जब आओ के लिए जाएगी और p2 को एग्जीक्यूशन में लाना होगा इसी प्रोसेस को हम बोलते हैं कंटक्ट स्विचिंग इसमें बहुत ही प्यारे-प्यारे काम होते हैं जैसे जब भी p1 अपनी वेट स्टेट में जाएगी तो क्या होगा p1 का जो अभी का कांटेक्ट होगा अभी का अभी वो किस पोजीशन प एग्जीक्यूट हो रहा था कौन से एड्रेस पे था ठीक है क्या उसका बेसिकली जो कॉलिंग कॉल स्टैक था स्टैक पे क्या-क्या इंफॉर्मेशन थी वो सब हम पीसीबी में स्टोर कर लेंगे पीसीबी ठीक है अब एक और चीज बोल दी मैंने पीसीबी इसको बोलते हैं हम प्रोसेस कंट्रोल ब्लॉक ये एक डेटा स्ट्रक्चर है छोटा सा ये डेटा स्ट्रक्चर में क्या होता है कि बेसिकली प्रोसेस से रिलेटेड इंफॉर्मेशन स्टोर होती है तो हम क्या करते हैं जब भी पव को पव को इसका स्टेट सेव इसका स्टेट को सेव करना पड़ेगा तो हम इसको सीपीयू से हटाएंगे यह सीपीयू इसको एग्जीक्यूट करना छोड़ेगा ठीक है और एग्जीक्यूट करना छोड़ने के बाद इसका जो करंट ठीक है पीसीबी से जो प2 की इंफॉर्मेशन है वो सारी सीपीयू ले लेगा और जो प2 का जो करंट कांटेक्ट था करंट स्टेट थी वो रिस्टोर हो जाएगी उसका स्टैक रिस्टोर हो जाएगा और प2 पर वर्क करना चालू हो जाएगा तो जो इस प्रोसेस को जो सेव एंड रिस्टोर की प्रोसेस को हम बोलते हैं कंटेक्सचर्स से हमने समझा अभी आपके फिजिक्स केमिस्ट्री वाले एग्जांपल से तो यह होता है कांटेक्ट स्विचिंग ठीक है तो अब ये बताई क्यों जब यहां पर कांटेक्ट स्विचिंग हो रही होती है प्रोग्रामिंग में सॉरी मल्टी प्रोग्रामिंग में जो मल्टीपल जॉब चल रही होती है उसमें कटेक्स स्विचिंग का कांसेप्ट यूज होता है इसलिए आपको बताया गया अब तीसरा जो हमारा टाइप है तीसरा नहीं चौथा टाइप चौथा टाइप वो आपका है मल्टी टास्किंग ओस अ जो मल्टीटास्किंग ओस है ना यार जो मल्टी प्रोग्रामिंग मल्टीटास्किंग य सिमिलर से ही है मैं बोल सकता हूं मल्टी टास्किंग जो है ना मल्टी प्रोग्रामिंग का ड वर्जन है मतलब उसका लॉजिकल एक्सटेंशन है छो एनहैंसमेंट कर दी हमने तो बेसिकली यहां भी सीपीयू तो सिंगल ही होता है और कंटेस्ट स्विचिंग भी यूज होती है सीपीयू भी है कंटक्ट स्विचिंग भी यूज हो रही है तो क्या फर्क है एक बड़ा ही मेजर और बड़ा ही बेसिकली बोल सकता हूं मैं डिसाइडिंग फैक्टर है जो इसको बेटर बनाता है मल्टी प्रोग्रामिंग व से वो है टाइम शेयरिंग होती है भैया इसमें ठीक है टाइम शेयरिंग अभी टाइम शेयरिंग क्या है जो मल्टी प्रोग्रामिंग ओएस था उसमें क्या हो रहा था उसमें जब भी कोई प्रोसेस वेट स्टेट में जा रही थी कोई आयो करने जा रही थी तब कंटक्ट स्विचिंग हो रही थी यानी दूसरी जॉब आ रही थी पर यहां पर ऐसा नहीं होगा हो सकता है कोई जोब मान लो आयो के लिए नहीं गई आयो के लिए जब नहीं गई तो बहुत टाइम से वो एग्जीक्यूट ही करे जा रही है करे जा रही है करे जा रही है ठीक है आयो के लिए गई नहीं तो तो एक ही जॉब को बहुत टाइम मिले जा रहा है और दूसरी जॉब उसको स्टार्वेशन हो सकती है दूसरी जॉब को तो इस चीज को हम ओवरकम करने के लिए हमने थोड़ा सा लॉजिक एक्सटेंशन डाला कि क्यों ना हम ऐसा करें कि इसको आईओ के लिए वेट नहीं करते कि आईओ जब होएगा तभी कंटेस्ट स्विच करो हम क्या करते हैं छोटा सा टाइम क्वांटम ले लेते हैं ठीक है टाइम क्वांटम ले लेते हैं मान लो मैं बोल देता हूं थोड़ा सा कि मान लो 100 मिली सेकंड्स अगर कोई जॉब 100 मिली सेकंड्स उसको मिल जाएंगे तो वो उसकी मैं बोल सकता हूं एक क्वांटम ऑफ एग्जीक्यूशन उसका हो गया है अब दूसरी जॉब को मौका दो मतलब ये एक एग्जांपल लो ये सीपीयू है आपका ये p1 है ये p2 है ये p3 है अब देखो मल्टी प्रोग्रामिंग की तरह अगर मान लो कोई आईओ के लिए गई तो तो वो वेट में जाएगी और दूसरे को मौका मिलेगा ही बट अगर मान लेते हैं कि किसी को आईओ नहीं मि आईओ के लिए किसी की कॉल नहीं आई कोई आईओ करने जा ही नहीं रहा है तो क्या होगा p1 p1 जो है वो 100 एमएस के लिए एग्जीक्यूट होगा ठीक है जैसे ही 100 एमएस होंगे तो p1 के एग्जीक्यूशन को हम उसी टाइम रोक देंगे और p2 को मौका मिलेगा 100 एमएस के लिए इसका मतलब यहां पर हम कांटेक्ट स्विचिंग यानी कि उसके हार्डवेयर इंटरप्ट होके आई की कॉल का वेट नहीं कर रहे हैं हम क्या कर रहे हैं थोड़ा सा टाइम उसको देंगे थोड़ा सा उसको थोड़ा सा उसको थोड़ा सा उसको तो मैं बोल सकता हूं ब्रॉडर टर्म में कि टाइम शेयरिंग हो रही है इनमें सब में ठीक है टाइम शेयरिंग चल रही है अब टाइम शेयरिंग से क्या होगा आप देखो कि ये यहां पे रिस्पांसिस जो है ना एप्स की या फिर प्रोसेसेस की वो बढ़ जाएगी क्योंकि हर प्रोसेस थोड़ा-थोड़ा थोड़ा-थोड़ा टाइम एग्जीक्यूट हो रही होगी थोड़ा थोड़ा थोड़ा एग्जीक्यूशन हो रही होगी अब जो मैं सोचूं कि वो जो तीन गोल्स की हम बात कर रहे थे तीन गोल्स की हम बात कर रहे थे इसमें सबसे ज्यादा सीपीयू यूटिलाइजेशन हो रही है ठीक है कैसे ऐसे कि यहां पर कोई भी कभी भी सीपीयू जो आइडल रहेगा नहीं ठीक है कोई ना कोई जॉब मिल जाएगी क्योंकि 100 एमएस के लिए वो चलेगी 100 एमएस के लिए p1 नहीं तो p2 को मिलेगा फिरर p2 जैसे ही हो जाएगी p3 को मिलेगा तो ऐसे करते करते सीप लाइजेशन यहां पे ज्यादा है सीपीयू यूटिलाइजेशन भी यहां पे ज्यादा है और अगर मैं देखूं यहां प्रोसेस स्टार्वेशन भी कम है कैसे कि मान लो प जो है पव बहुत हैवी जॉब थी मान लो हैवी जॉब हो कोई फर्क नहीं पड़ता पट को भी इक्वल मौका मिलेगा क्योंकि 100 एमस जैसे ही टाइम क्वांटम खत्म होगा पट को टाइम मिल जाएगा पटू को सीपीय का टाइम मिल जाएगा तो इसका मतलब यहां पर जो आपका स्टार्वेशन वाली प्रॉब्लम है वह भी नहीं है ठीक है तीसरा जो कोई हाय प्रायोरिटी जॉब आई अब हाय प्र ज तो कांटेक्ट स्विचिंग वाला मेथड तो यहां भी लागू होगा कांटेक्ट स्विचिंग तो यहां भी अनेबल है ठीक है अब कंटक्ट स्विचिंग यहां पर है इसका मतलब जैसे ही कोई हाइ बटी जॉब आएगी मान लो p4 एक एंटीवायरस की जॉब है एंटी वायरस की जॉब है जैसे ही यह आई तो प2 को मौका मिल जाएगा कांटेक्ट स्विचिंग कर देंगे हम इसमें एक सॉफ्टवेयर इंटरप्ट मारेंगे और बोलेंगे इसको कि भाई एक हाटी काम आया है एंटीवायरस है इसको स्कैन करना है एक यूएसबी ड्राइव को तो भाई p4 को मौका दो तभी के तभी इसको मुका हट जाएगा और p4 को मुका तभी के तभी मिल जाएगा तो हाई प्र एग्जीक्यूशन यहां प बस तो अभी तक हमने देखा मल्टीटास्किंग जो है मल्टीटास्किंग ओ जो व सबसे बढ़िया है ठीक है जो आजकल के ओस है जो आप यूज करते हो मल्टीटास्किंग ओस होते हैं ठीक है आपको आप बहुत सारी प्स को रन कर रहे होते ब सब में रिस्पांसिस लगती है आपको कोई हैंग नहीं करती बढ़िया चल रही होती है क्योंकि उसमें टाइम शेयरिंग चल रही है ठीक है अब एक और ओस का टाइप है जो इससे भी थोड़ा सा बेटर है थोड़ा नहीं बहुत बेटर है बहुत बेटर एक बढ़िया टर्म्स में बेटर है व आपको समझाते हैं फिफ्थ टाइप फिफ्थ टाइप है आपका मल्टी प्रोसेसिंग ओस अब मल्टी प्रोसेसिंग ओस क्या है आपने मल्टी टास्किंग पढ़ा मल्टी प्रोग्रामिंग पड़ा मल्टी प्रोसेसिंग क्या है इसमें भी देखो यार कांटेक्ट स्विचिंग वाला कंटेस्ट स्विचिंग वाला तरीका ठीक है टाइम शेयरिंग वाला तरीका यह सब अप्लाई होता है कांटेक्ट स्विचिंग भी यहां है टाइम शेयरिंग भी यहां है बस एक बढ़िया चीज और रही है कि यहां पर सीपीयू जो है है ना वो ग्रेटर दन वन होते हैं यानी कि यहां मल्टीपल सीपीयूज भी हैं ठीक है अब तक हम सिंगल सीपीयू में सारा काम कर रहे थे सिंगल सीपीयू को शेड्यूल करने की कोशिश कर रहे थे कि उसको आइडल ना बिठाए यहां पे मल्टीपल सीपीयूज भी है यानी कि यहां पर और भी ज्यादा सीपीयू यूटिलाइजेशन हो सकती है और ज्यादा एप्स को साइमल नियस रन कर सकते हैं ठीक है यहां पे स्टार्वेशन की प्रॉब्लम और भी ज्यादा कम होगी ठीक है वो हाय प्रेटी कोई जॉब आई तो सीपीयू वन अगर मान लो बिजी है तो सीपीयू टू कर देगा उसको ठीक है तो इस तरीके से देख रहे हो आप हम धीरे-धीरे ना इंप्रूवमेंट करते जा रहे हैं अभी तक सिंगल सीपीयू प थे अब हम सीपीयू के नंबर ऑफ सीपीयू भी बढ़ा दिए हमने और जो आजकल के सीपीयू होते हैं उसमें जैसे आप बोलते हो ना कि एक सीपीयू है आपका और उसमें चार कोर है ठीक है चार कोर है आठ कोर है उसका मतलब आठ लॉजिकल प्रोसेसर्स है यानी कि आठ अलग-अलग सीपीयू बोल सकता हूं उसको ठीक है तो ये हो गया मल्टी प्रोसेसिंग ओस ठीक है अब इसको थोड़ा सा अगर मैं डबल क्लिक करके आपको बताऊं तो यह सीपीयू वन है मान लो यह सीपीय टू है ठीक है ये आपकी बहुत सारी प्रोसेस है p2 p3 p4 ऐसे अब यहां पर भी यही होगा सबसे पहले इसको थोड़ा टाइम मिलेगा कुछ टाइम क्वांटम का फिर जैसे ही इसका टाइम खत्म होगा तो प2 को टाइम मिलेगा ठीक है मीन वाइल यहां पर सीपीय वन में सब काम चल रहा है तो p3 सीपीय टू के पास चला जाएगा ये सीपीयू फ के पास चला जाएगा अब ये कौन सी जॉब एक्चुअली सीपीयू को पिक करनी है ना वो ओएस ही बताता है वो आती है आपकी प्रोसेस शेड्यूलिंग एल्गोरिथम्स में वो हम आगे पढ़ेंगे इसके बारे में ठीक है तो इस तरीके से कुछ होता है अब इसमें एक ही बहुत ही बढ़िया सा जो मैं बोल सकता हूं बढ़िया एक इंप्रूवमेंट जो है वो है अगर मान लो सीपीयू एक सिंगल सीपीयू वाले जो को एसस के एग्जांपल हमने देखे उसमें मान लो सीपीयू वन ही फेल हो गया किसी वजह से कोई हार्डवेयर की दिक्कत आ गई उसमें फेल हो गया वो अब क्या होगा उस फेलियर में पूरा सीपीयू मतलब जो आपका पूरा सिस्टम है वही उड़ जाएगा बट यहां ऐसा नहीं होगा अगर मान लो सीपीय व मैं बोल देता हूं सीपीय व खराब हो गया सीपीय व अगर खराब हो गया तो सीपीय टू तो चल रहा है भाई सीपीय टू तो काम कर ही सकता है तो यह इसमें एक बोल सकता हूं इंक्रीजड रिलायबिलिटी है है ना मतलब रिलाई कर सकता है यूजर इस पर कि मतलब कोई बात नहीं सीपीय वन खराब हो गया कोई बात नहीं सीपीय टू काम कर देगा थ्री काम कर देगा है ना तो यह कुछ आपके टाइप्स ऑफ ओस हो गए ठीक है इसके अलावा अब जो ये थे ना ये सारे सिंगल सीपीयू मल्टीपल सी हो अब कुछ थोड़े डिफरेंट टाइप के ओस भी होते हैं जिसको मैं बोलता हूं सबसे पहले सिक्सथ टाइप बोलू जो मैं अब हम चलते हैं हमारे छठे टाइप ऑफ ऑपरेटिंग सिस्टम में जिसका नाम है डिस्ट्रीब्यूटर ओस अ डिस्ट्रीब्यूटर ओस का है अब ये डिस्ट्रीब्यूटर ओस जो है वो उसका मतलब क्या है इसको बोल सकता हूं लूजली कपल्ड ऑपरेटिंग सिस्टम भी बोल सकते हैं हम इसको लूजली कपल्ड इसका मतलब देखो थोड़ा हम इस तरीके समझते हैं कि आपके पास एक ओस है ठीक है और बहुत सारे सीपीयूज है सीपीयू है मेमोरी है अब मैं इतने सारे सीपीयू मेमरी क्यों बना रहा हूं तो बेसिकली एक ही ऑपरेटिंग सिस्टम है और बहुत अभी तक क्या था अभी तक हम बोल रहे थे एक ऑपरेटिंग सिस्टम है एक सीपीयू है एक मेमोरी है ठीक है या मल्टीपल दो सीपीयू है एक मेमोरी है वो एक ही बॉक्स में कनेक्टेड है एक ही आपका सिस्टम है जो आपने देखा है बट यहां पर क्या है आपके पास नेटवर्क से कनेक्ट हो ग नेटवर्क से कनेक्टेड बहुत सारे सीपीय और मेमोरी है मतलब मैं बोल सकता हूं जो घर पर आपका सीपीयू का डब्बा होता है ना ऐसे बहुत सारे आपके घर पर रखा है एक मेरे घर पर रखा है एक बबर भैया के घर पर रखा है ऐसे बहुत सारे सीपीयू है वो आपस में इंटर कनेक्टेड है ओवर द इंटरनेट और ओवर द लन ठीक है अब ये नेटवर्क से कनेक्टेड है अब क्या क्या होगा अब देखो आपके पास बहुत सारे जॉब है p1 p2 p3 अब मान लो मुझे एग्जीक्यूट करानी है तो ये वाला ओस क्या करेगा कि हो सकता है इस वाले को भेज दे p1 इसको भेज दे p2 इसको भेज दे p3 इसको भेज दे p4 ठीक है तो अलग-अलग सिस्टम्स है आपके पास और अलग-अलग सिस्टम को आप अलग-अलग जॉब्स भेज सकते हो ठीक है और इसमें फायदा क्या है आप अलग-अलग कन्फेशन के भी बेसिकली रख सकते ये वाला सीपी हो सकता है य यह वाला सीपीयू जो हो सकता है वो थोड़ा लो एंड हो ठीक है यह वाला हाई एंड हो इसके अंदर ग्राफिक कार्ड हो जीपीयू हो इसके अंदर ना हो ठीक है ऐसे सिस्टम को हम बोलते हैं डिस्ट्रीब्यूटर ओएस ठीक है तो इसके मतलब यहां पे लूजली कपल्ड ऑटोनोमस इंटरकनेक्टेड कंप्यूटर्स होते हैं लूजली कपल्ड ऑटोनोमस इंटरकनेक्टेड कंप्यूटर्स बहुत सारे कंप्यूटर्स ठीक है ऐसे ही आपस में वर्क कर रहे होते हैं जो जॉब यूजर ऑ इस में मल्टीपल यू यूजर भी हो सकते हैं ठीक है इसमें मल्टीपल u1 य2 करके बहुत सारे यूजर्स भी हो सकते हैं ठीक है यव अब क्योंकि आपके पास बहुत सारे रिसोर्सेस हैं डिस्ट्रीब्यूटर सिस्टम में बहुत सारे रिसोर्सेस होते हैं अब बहुत सारे रिसोर्सेस है तो अपने बहुत सारे जॉब्स भी एग्जीक्यूट कर सकते हैं बहुत सारे यूजर भी हो सकते हैं ठीक है तो ये इस टाइप के ओएस को हम डिस्ट्रीब्यूटर ओएस बोलते हैं इसका एक एग्जांपल दूं तो अगर आप नेट प जाके आप जैसे कई बार आप मान लो मशीन लर्निंग का आप या फिर कोडिंग का ही आपको छोटा सा कोड कर रहे हो ली कोड प जाके आप कोड कर रहे हो कोड करने के बाद जहां पर आप विंडो में जो कोड एडिटर में आप लिखते हो व फ सबमिट का बटन दबाते हो और वो सबमिट होता है व किसी लिनक्स मशीन पर जाके एग्जीक्यूट होता है कोड आपका और चेक होता है तो वो कोई एक सिस्टम नहीं होता वो बहुत सारे सिस्टम होते हैं जोन सा फ्री होता है ना उसको मिल जाता है कि भाई तू जज है तू तू जज करके बताय इसके कितने मार्क्स आए ठीक है तो इस तरीके से बहुत सारे कंप्यूटर है और वो ओवर द इंटरनेट कनेक्टेड है और वो ऐसे काम कर रहे हैं तो ऐसे कंप्यूटर ऐसे हार्डवेयर स्ट्रक्चर को ऐसे सिस्टम को स माने के लिए जो ऑपरेटिंग सिस्टम यूज होता है उसको हम डिस्ट्रीब्यूटर ओस बोलते हैं ठीक है यह छठा टाइप हुआ अब ये सेवंथ टाइप जो ओस का है उसको हम बोलते हैं आरटीओएस रियल टाइम ऑपरेटिंग सिस्टम अब रियल टाइम रियल टाइम का मतलब क्या है अब सबसे पहले सुनो कि आरटीओएस की जरूरत कहां पर पड़ती है आरटीओ की ऐसे जगह पर जरूरत पड़ती है जहां पर ना मतलब थोड़ा सा भी एरर का चांस ना हो मतलब हम चाहते हैं कि बहुत ही डेसीमल पॉइंट पे बहुत ही डेसीमल पॉइंट पे भी आपकी जो एक्यूरेसी है ना वो बहुत हाई होनी चाहिए ठीक है ऐसे में मतलब हम चाहते हैं कोई एरर ना हो अब ऐसे सिस्टम कहां हो सकते हैं मान लो कोई ऐसा आपका जो फ्लाइट कंट्रोल सिस्टम है ठीक है जो एटीसी बोलते हैं ना उसको ए ट्रैफिक कंट्रोल सिस्टम जो उनका सिस्टम होता है वो इतना ज्यादा बेसिकली अ मैं बोलूं तो जो वहां पर जो लोग होते हैं उनको ऐसा हार्डवेयर होता है उनके पास जो कि रियल टाइम में बहुत अच्छी कंप्यूटेशन कर सकता है तो ऐसे उनको संभालने के लिए हम आरटीओएस का यूज करते हैं क्यों क्योंकि अब फ्लाइट उड़ रही है बहुत सारी अब जो एटीसी होता है उसके पास बहुत ज्यादा क्रुशल ड्यूटी होती है कि वो लोगों की जान उसपे बेसिकली डिपेंडेंट होती है तो ऐसे एरर फ्री बेसिकली हमें कंप्यूटेशन करनी है एरर के चांस सबसे ज्यादा कम है और रियल टाइम काम करना है रियल टाइम मतलब एग्जीक्यूशन एकदम फास्ट होनी चाहिए मतलब आपने उसको उसके सीपीयू को जॉब दी ठीक है जॉब दी और जॉब मतलब विदन सेकंड्स एक्यूट हो जाए इतना फास्ट होना चाहिए एरर फ्री तरीके से हो जाए तो ऐसे जो इस एनवायरमेंट में काम करने वाले ओएस होते हैं इस डिमांड को जो फुलफिल करते हैं ओस उसको हम बोलते हैं आरटीओएस ठीक है अब आरटीओएस जो है वो एग्जांपल में बोल सकता हूं कहां क पर यूज होते हैं बेसिकली जो हमने एटीसी बोला एटीसी में यूज होंगे इंडस्ट्रियल एप्लीकेशंस इसमें यूज होते हैं इंडस्ट्री एप्लीकेशन जैसे न्यूक्लियर प्लांट है आपका न्यूक्लियर प्लांट में जो सिस्टम यूज हो रहा है इतना हैवी एरर फ्री होना चाहिए वोह एकदम हाई डिमांडिंग कंप्यूटेशन हाई होनी चाहिए वहां पर जल्दी जल्दी आपको क्विकली काम करना है विदन एक सर्टेन डेडलाइन काम करना है ऐसी जगह पर जो ओएस होता है वो आरटीओएस यूज होता है अब मैं बोलूं तो इंटरव्यू पॉइंट ऑफ व्यू से आपको नाम सारे पता होने चाहिए ठीक है बट सबसे ज्यादा जो इंपोर्टेंट है टाइप्स जो सबसे ज्यादा इंपॉर्टेंट है व यह पहले चार इंपॉर्टेंट है पहले चार सबसे ज्यादा इंपॉर्टेंट है जिसमें कि सिंगल प्रोसेस बैच और आपका मल्टी प्रोग्रामिंग मल्टी टास्किंग और मल्टी प्रोसेसिंग ये आपके सबसे ज्यादा इंपॉर्टेंट आपके बोल सकता हूं मैं पॉइंट ऑफ व्यू से है ठीक है अब इनके अगर मैं एग्जांपल्स बोलू सिंगल का तो आपको एग्जांपल दिया था सिंगल प्रोसेस का सिंगल प्रोसेस का हमारा ए एस डॉज था ठीक है उसके अलावा ए मैं एग्जांपल सोचूं उसके अलावा अगर एग्जांपल बोलूं तो आपका जो बैच है बैच प्रोसेसिंग बैच प्रोसेसिंग का एग्जांपल एक बताता हूं आपको आपको एटलस ये क्या ऑपरेटिंग सिस्टम था जो कि बैच प्रोसेसिंग ऑपरेटिंग सिस्टम था इस फंडामेंटल पे काम करता था एकएक एग्जांपल यार सबका याद कर लेना ठीक है और आपका होमवर्क भी है कि बाकी भी देखना एक बार सर्च करना इस पे कि और कितने टाइप के एग्जांपल्स है इसके कनकन से एग्जांपल थे ऐसी मल्टी प्रोग्रामिंग जो हमने तीसरा पढ़ा था उसका एग्जांपल टी एच ई करके एक ऑपरेटिंग सिस्टम होता था यह है इसका एग्जांपल तीसरा अगर मैं बोलू मल्टी टास्किंग मल्टीटास्किंग में बोलू तो मैं एक सीटीएसएस करके ऑपरेटिंग सिस्टम था चौथा मल्टी प्रोसेसिंग मल्टी प्रोसेसिंग जो है वो आपका विंडोज सबकी प्यारी विंडोज ठीक है फिफ्थ और सिक्सथ डिस्ट्रीब्यूटर और आरटीओएस इसके क्या एग्जांपल थे यह आपका होमवर्क है ठीक है इसके एग्जांपल आप कमेंट सेक्शन में बताओगे ठीक है तो यह था हमारा टाइप्स ऑफ ऑपरेटिंग सिस्टम का हमारा लेक्चर जिसमें आई होप आपको सब समझ आया होगा ऑपरेटिंग सिस्टम क्यों जरूरी है उसके गोल्स क्या है किस तरीके से ये टाइम बाय टाइम इंक्रीमेंटली इंक्रीज होते गए इनकी कॉम्प्लेक्टेड करते गए तो ये था हमारा लेक्चर नंबर टू आई होप आपको सब समझ आया होगा आप अपना होमवर्क करना ना भूले होमवर्क आपको ये करना है कमेंट सेक्शन में आपको लिख के जाना है कि क्या इसके एग्जांपल्स हैं ठीक है मिलते हैं नेक्स्ट लेक्चर पे तब तक के लिए गुड बाय सब कु सराइज कर देते हैं आपके लिए नोट्स बनाए हैं बहुत ही क्यूरेटेड और एकदम क्रिस्प एंड क्लियर तो सबसे पहले हमने डिस्कस किया था ओएस गोल्स के बारे में तो वह हमने यहां लिख दिए हैं मैक्सिमम सीपी यूटिलाइजेशन जो देखा हमने लेस प्रोसेस स्टार्वेशन और हाई प्रायोरिटी जॉब ठीक है यह तीन गोल आपको दिमाग में रखने हैं क्योंकि इन्हीं गोल को दिमाग में रख के आपका ओस के टाइप्स बने हुए हैं सबसे पहला हमारा ओस था यह कुछ ओएस के एग्जांपल्स हमने डाले हैं यहां पे ठीक है टाइप्स ऑफ़ ओएस एक बढ़िया सा डायग्राम बना के दे दिया आपके दिमाग में छप जाएगा यह उसके बाद हमने सिंगल प्रोसेस ओस इसके अंदर एक ही प्रोसेस एग्जीक्यूट होती है एक बारी में बैच प्रोसेसिंग ओस य इसकी कहानी थोड़ी लंबी है वो यही कि आप सबसे पहले पंच कार्ड में बनाओगे पंच कार्ड में जॉब यूजर सबमिट करेगा उसके बाद ऑपरेटर्स उसे सॉर्ट करेगा धीरे-धीरे इस तरीके से चीजें चलेंगी क्या-क्या इसमें चैलेंस है वो भी इसमें डाले गए हैं प्रायोरिटी सेट नहीं कर सकते आप स्टार्वेशन हो जाएगी सीपीयू आइडल बैठ जाएगा आयो जब करेगा ठीक है उसके बाद हमारा आता है ये सबसे ये तीन सबसे इंपॉर्टेंट है इनको दिमाग में रखना आपने मल्टी प्रोग्रामिंग मल्टीटास्किंग म मल्टी प्रोसेसिंग इंटरव्यू डायरेक्ट पूछ लेगा आपसे इन तीनों के बारे में बताओ और वहां बैठ के कंफ्यूजन बड़ी हो जाती है इन चीजों में तो आप इसको एकदम दिमाग में क्रिस्प एंड क्लियर रख लेना सिंगल प्रोसेस होता है सिंगल प्रोसेसर होता है मल्टी प्रोग्रामिंग में मल्टीटास्किंग में मल्टी प्रोसेसिंग में एक से ज्यादा प्रोसेसर होते हैं आजकल कौन से यूज होते हैं वो मल्टी प्रोसेसिंग है ठीक है कांटेक्ट स्विचिंग यूज होती है इसमें टाइम शेयरिंग यूज होती है इसके अंदर एक से ज्यादा सीपीयू होते हैं तो पुट बढ़ जाती है ठीक है डिस्ट्रीब्यूटर ओस हमने डिस्कस किया एक से ज्यादा सीपीयू मेमोरी जीपीयू यानी कि आपके बॉक्सेस पूरा सीपीयू बोल सकता हूं बहुत सारे कंप्यूटर्स ही होते हैं बहुत सारे कंप्यूटर्स की नोड्स होती हैं जो कि लूजली कनेक्टेड होती हैं ठीक है इंडिपेंडेंट नेटवर्क से कनेक्टेड ठीक एक ओस डिस्ट्रीब्यूटर ओएस इन दूर दूर बैठे हुए कंप्यूटर्स को संभालता है आरटीओएस के बारे में हमने डिस्कस किया यह एरर फ्री होते हैं विदन टाइम लिमिट्स इनको जल्दी से काम करना करना होता है इसके कुछ एग्जांपल्स यहां लिखे हैं तो यह थे हमारे लेक्चर टू के नोट्स आई होप आपको सब पसंद आया होगा कमेंट्स में लिख के जाना कि कैसी लगी वीडियो और आगे की वीडियो में कैसे और इंप्रूव कर सकते हैं तो चलिए हेलो जी कैसे हो सारे दिस इज लक्ष वेलकम टू द चैनल कोड हेल्प तो हम आ चुके हैं हमारे ओएस सीरीज के लेक्चर नंबर थ्री पर और आज हम डिस्कस करने वाले हैं एक इंटरव्यू क्वेश्चन जो कि है व्हाट इज मल्टी प्रोग्रामिंग मल्टी प्रोसेसिंग मल्टीटास्किंग मल्टीथ्रेडिंग इसके बीच में डिफरेंस बता दो इसके बारे में बता दो इसके बीच में डिफरेंस बता दो ये आपसे इंटरव्य पूछेगा जरूर तो इसके बारे में डिस्कस करते हैं अब पिछली वीडियो में ही हमने डिस्कस किया है व्हाट इज मल्टी प्रोसेसिंग मल्टी प्रोग्रामिंग डिफरेंट टाइप ऑफ ओस के बारे में हमने डिस्कस किया है ठीक है अब इसके एक बार डिफरेंसेस प ओवरव्यू डाल लेते हैं ठीक है बट इसमें जितनी चीज हमने पढ़ी पिछले लेक्चर में उसमें एक चीज जो हमने नहीं पढ़ी जो कि अभी मैंने बोली वो है मल्टी थ्रेडिंग क्या होता है मल्टी थ्रेडिंग अब मल्टी थ्रेडिंग के कांसेप्ट को समझने से पहले एक बार मैं यह जान लूं कि थ्रेड क्या होता है ठीक है और अब इस थ्रेड को जानने से पहले इसको डबल क्लिक करने से पहले मैं जानना चाहूंगा कि प्रोसेस क्या होता है ठीक है प्रोसेस क्या होता है प्रोसेस जानेंगे तो हमें थ्रेड समझ आएगा तो अगर मैं एक छोटा सा एग्जांपल लूं जो आप कोड लिखते हो सी प्लस प्लस में जैसे कि इसे आपने प्राइम नंबर निकालने का कोड लिखा अभ कोड कैसा होता है आप लिखते हो कोड टेक्स्ट फाइल में एक टेक्स्ट फाइल के अंदर आप एक कोड लिखते हो ठीक है इसका एक्सटेंशन डॉट सीपीपी होता है टेक्स्ट फाइल नहीं होती भैया डॉट सीपीपी होती है तो होता मतलब वो टेक्स्ट है राइट एक टेक्स्ट होता है वो कुछ यून कोड स्टैंडर्ड में आप ए बी सीडी ही लिख रहे होते हो ठीक है कुछ करेक्टर्स का कलेक्शन ही होता है अब आपका कंपाइलर क्या करता है आपका कंपाइलर इस सीपीपी कोड को कंपाइल करता है ठीक है उस कंपाइलेशन के बाद एक एग्जीक्यूटेबल बनती है ठीक है एग्जीक्यूटेबल बनती है अब एग्जीक्यूटेबल जो होती है जिसको मैं जैसे डॉट एक्ससी फाइल बोलता हूं विंडोज के अंदर ठीक है य एग्जीक्यूटेबल जो होती है यह इसको अगर आप एक टेक्स्ट एडिट में खोलोगे तो आप उसको कोड देख नहीं पाओगे यह कंपाइल्ड कोड होगा ठीक है एक बाइट कोड होगा ये एकदम बिट्स बाइट्स की इंफॉर्मेशन होगी इसके अंदर डायरेक्टली इसको सिर्फ ओएस ही रीड कर सकता है तो जो आपका एग्जीक्यूटेबल कोड होगा यह प्लेटफॉर्म डिपेंडेंट भी होता है ठीक है मैक में अलग एग्जीक्यूटेबल होती है विंडोज में अलग होती है करते हो ठीक है अब आप अंदर जाके देखोगे तो p करके फाइल होती है वो ओपन होती है जब वो ओपन होती है तो आपको फिर बड़ा सा जीआई दिखता है और आप उसमें ड्र करके कुछ कुछ कुछ कुछ बेकार सी ड्राइंग करते हो तो यह आपका एक प्रोग्राम हो गया ठीक है तो आपने एक्सी पर क्लिक किया और एक बड़ी सी विंडो खुली ठीक है टास्क मैनेजर में जाके देखोगे तो आपको एक प्रोसेस नजर आएगी जिसका नाम होगा एमएस पेंट ठीक है तो मैं क्या बोल सकता हूं कि कोई भी जो एक्सी फाइल होती है जब आप उसको डबल क्लिक करते हो ठीक है तो किस में कन्वर्ट हो जाती है एक प्रोसेस में तो प्रोसेस क्या होता है प्रोसेस होता है प्रोग्राम अंडर एग्जीक्यूशन मतलब कि एक प्रोग्राम है जो आपने कोड करके लिखा है उसको कंपाइल करा है ठीक है उसको जब आप एग्जीक्यूशन में ले आते हो एग्जीक्यूशन में ले आने का मतलब क्या हुआ कि आप उसको जब मेमोरी में ले आते हो ठीक है अभी मान लो मैं बोलूं कि आपका प्रोग्राम यह डिस्क थी डिस्क के अंदर डिस्क के अंदर इस लोकेशन पे आपका प्रोग्राम पड़ा था ठीक है प्रोग्राम क्या है प्रोग्राम वही जो मैंने बताया अभी कंपाइल्ड कोड जो आपका पढ़ा है आपका डिस्क में अंदर प्रोग्राम पड़ा हुआ है बट आप अभी जो कोई भी प्रोग्राम अगर पड़ा हुआ है वो तब तक वो सीपीयू उस पर काम नहीं कर सकता जब तक वह एक्चुअल मेमोरी में नहीं आ जाता मेमोरी का क्या मतलब है य रम में नहीं आ जाता ठीक है तो यह आपकी यहां पर एक्चुअल रम पड़ी है ठीक है तो जब भी आपका जैसे मैंने बताया कि सीपीयू तभी काम कर सकता है जब प्रोग्राम आपका रम में आ जाए तो आप डबल क्लिक जब करते हो तो यह आपका प्रोग्राम उठके रम के अंदर आ जाता है ठीक है यह प्रोग्राम यहां पर रम में आ गया और इसको हम बोलते हैं प्रोसेस ठीक है अब यह तो हमने सीख लिया प्रोसेस प्रोसेस के बारे में आगे डिटेल में हम प्रोसेस मैनेजमेंट में पढ़ेंगे कि प्रोसेस कैसे बनती है एक्चुअली क्या क्या काम करता है प्रोसेस को बनाते हुए यह सब हम बाद में डिस्कस करेंगे बट अभी आपने जाना कि प्रोसेस होता क्या है ओवरव्यू आपको मिल गया क्लियर है अब हम आ जाते हैं थ्रेड क्या होता है थ्रेड को मैं लाइट वेट प्रोसेस भी बोलता हूं ठीक है लाइट वेट प्रोसेस इससे कुछ समझ आ रहा होगा थोड़ा थोड़ा कि ऐसी प्रोसेस जो थोड़ा सा कम काम करती हो वेट उसका कम हो इसका मतलब क्या है एगजैक्टली ये हम अभी जानेंगे तो यार एक छोटा सा ना एग्जांपल लेता हूं मैं एक एग्जांपल लेता हूं प्रोसेस होता है आपने जो कोड लिखा है पूरा बड़ा ठीक है उसके अंदर बहुत सारे फंक्शंस है ठीक है हर फंक्शन कुछ अपना काम करता है पूरा बहुत बड़ा प्रोग्राम है वो एक पूरा सॉफ्टवेयर है ठीक है उसके अंदर एक छोटा सा काम मतलब हर सॉफ्टवेयर एक सॉफ्टवेयर जो होता है वो छोटे-छोटे स्टेप से बना होता है मतलब जब भी आप कुछ काम दोगे इसमें छोटे-छोटे काम काम होंगे सबसे पहले वो बेसिकली इनपुट लेता होगा फिर हो सकता है नेटवर्क से कुछ डाटा लेता हो डिस्क से कुछ उठाता हो फिर कुछ प्रोसेसिंग करता हो कुछ वो प्रोसेसिंग का आपने लॉजिक लिखा हुआ है वो लॉजिक फिर कुछ कुछ करेगा फिर आईओ से कुछ लेगा ऐसे करके बहुत सारे काम करके तब एक सॉफ्टवेयर पूरा काम कर रहा होता है ठीक है तो एक थ्रेड उसके अंदर हो गई एक छोटा सा सबसे माइन्यूट काम सबसे छोटा काम जो कि इंडिपेंडेंटली एग्जीक्यूट हो सके ठीक है इंडि पेंडेंट एग्जीक्यूट हो सके स्पेलिंग गलत हो गई है रो ना बने कमेंट में लिख के ठीक है इंडिपेंडेंटली एग्जीक्यूट करें अब इंडिपेंडेंटली एी क्यूट करने का क्या एग्जांपल है एक छोटा सा एग्जांपल लेता हूं मैं कि आपके पास एक सॉफ्टवेयर है ठीक है एक प है आपकी वह क्या करती है वह आपकी पप यूजर से कोई डिटेल लेती है ठीक है और उस डिटेल को आपको शो करती है डिस्प्ले पे ठीक है कुछ कुछ प्रोसेसिंग करके और जब आप यूजर की डिटेल उसको ऐप को देते हो ना तो क्या करती है आपकी प्रोफाइल प जाके क्लाउड प जाके स्टोर भी कर लेती है ठीक है क्लाउड प जाके स्टोर भी कर ले जैसे नॉर्मली क्लाउड पे स्टोर्ड है तो आप क्या करोगे आप जब यूजर इनपुट दे रहे हो और यूजर इनपुट देने के बाद कुछ कुछ उसमें काम हो रहा है वो डिस्प्ले प शो हो रहा है आपको तो मीनवाइल उसने जाके क्लाउड प व आपके जो डाटा आप डाल रहे थे वो लिख दिया क्लाउड प जाके लिख दिया तो अब जो यह काम हो रहा है क्लाउड प जाके लिखने का ठीक है इसको मैं बोल देता हूं कि एक थ्रेड के द्वारा करा लेता हूं मैं एक थ्रेड के द्वारा अभी थ्रेड क्या है एक प्रोसेस के अंदर ही ना एक सब प्रोसेस है एक छोटी प्रोसेस है ठीक है वो क्या कर रही है वो एक मेन काम तो चल ही रहा है यूजर से इनपुट लेना उसको प्रोसेस करके डिस्प्ले पर शो कर देना बट जो यह एक काम है कि क्लाउड पर जाकर भी उस डाटा को लिखना है यह सिंक्रोनस काम है ये मतलब यह होता रहे पीछे मुझे फर्क नहीं पड़ता मतलब यूजर को जानने की जरूरत नहीं हैय कुछ काम हो रहा है पीछे ठीक है तो उस प्रोसेस से डायरेक्ट ना करा के उस प्रोसेस को हम दो मतलब एक प्रोसेस जो है आपकी उसको मैं दो पार्ट में तोड़ दिया एक मेन प्रोसेस जो चल रही है और ऊपर से एक जो सब टास्क है उसका जो सब टास्क क्या था क्लाउड प लिखने का तो आपने क्या करा एक प्रोसेस बनाई एक सबटास्क बनाया एक छोटा सा काम था यह इंडिपेंडेंट काम था इंडिपेंडेंट काम का क्या मतलब है यहां पे कि इसकी डिपेंडेंसी आपके मेन यूजर के काम से नहीं है सिंपल जाके उसके क्लाउड प जाके उसको सेव करना था तो यह जो आपका जो एक इंडिपेंडेंट काम हो रहा है यह आपने एक थ्रेड से करवा लिया तो थ्रेड बस एक फैंसी नाम है एक प्रोसेस के अंदर जो एक इंडिपेंडेंट एक काम करवाने का एक तरीका है बस उसको आप थ्रेड बोल रहे हो इसका एक और एग्जांपल से समझते हैं एक बहुत बढ़िया एग्जांपल आ रहा है दिमाग में कि थ्रेड क्या और यूज केस हो सकता है अब मान लो आपके पास एक एग्जांपल है आप एक जेपीजी टू पीएनजी कन्वर्टर बना रहे हो तो आपके पास जेपीजी टू पीएनजी कन्वर्टर आप लिखना चाह रहे हो ठीक है तो जेपीजी कन्वर्टर क्या है इमेजेस के एक फॉर्मेट है तो फॉर्मेट में कन्वर्ट करना चाह रहे हो जेपीजी टू पीएनजी तो अब लेट्स से कि आपके पास जो आपने लॉजिक लिखा है ना इसका यह आपका लॉजिक है इसका ठीक है यह आपका लॉजिक है जो क्या करता है इन में लेता है एक 100 क्रॉस 100 की इमेज पिक्सेल के टमस में बोल रहा हूं और आउटपुट करता है 100 क्रॉस 100 की एक पिक्सेल की एक इमेज जो कि पीएनजी फॉर्मेट में होगी और यहां पर जेपीजी फॉर्मेट में होगी ठीक है अब मान लो अब आपके पास इनपुट में जो आपके पास डाटा आया इनपुट में जो इमेज फाइल है वो आपके पास मान लो 100 क्रॉस 200 की है या इसकी विड्थ 100 है और हाइट 200 है अब आपका जो लॉजिक है वो तो 100 क्रॉस 100 ही लेगा और आउटपुट 100 कस 100 ही करेगा ठीक है तो यह आपकी एक लिमिटेशन हो गई कि आप 100 क्रस 100 ही एक बारी में ले पाओगे 100 हाइट की ही ले पाओगे एक बारी में ठीक है तो अब मैं चाहता हूं इस काम को कराना इस काम को कराने का मेरे पास दो तरीके हैं पहला तरीका क्या है मैं सीक्वेंशियल काम करा लू सीक्वेंशियल का मतलब क्या है सीक्वेंशियल का मतलब है यह आपके पास इमेज है ठीक है आपने इस दो पार्ट्स में ब्रेक किया और यह आपका लॉजिक था जिसको लॉजिक बोल रहा हूं आपका जो आपने बेसिकली प्रोग्राम लिखा है जो आपका प्रोग्राम होगा व मान लो य इसका पार्ट ए है यह पार्ट बी है प्रोग्राम क्या करेगा प्रोग्राम करेगा कि ए पार्ट को पहले लेगा ठीक है और इसकी आउटपुट करेगा एवन मान लो फिर बी पार्ट को लेगा तो उसकी आउटपुट करेगा b1 फिर आप a1 और b1 को कंकट करोगे ठीक है मतलब जोड़ दोगे आपस में तो a1 b1 पहले आपने a को लिया फिर b को लिया a वाले पार्ट को 100 क्रस 100 को आपने पहले पहली आइट मेशन में इसको करा दूसरे इटरेशन में इसको करा फिर उसके बाद आपने इनको जोड़ दिया ठीक है ये आपका प्रोसेस होगी तो अब इसमें देखो ये सीक्वेंशियल काम हो रहा है पहले a होगा फिर b होगा फिर आप a होगा तो पहले आपको a मिलेगा आप जब तक उसको सेव करके रखोगे फिर b मिलेगा आप b को सेव करोगे फर दोनों को कंकट करोगे ठीक है तो ये आपका एक तरीका हो गया आप इसमें सीक्वेंशियल काम हो रहा है बट आपका जो ये लॉजिक है ना जो आप 100 को 100 इमेज को लेके इमेज के जेपीजी फॉर्मेट को लेके पीएनजी में जो कन्वर्ट करता है यह लॉजिक आपका एक इंडिपेंडेंट एग्जीक्यूशन है एक सिंगल सीक्वेंस स्ट्रीम है क्या कैसे इसकी कहीं और डिपेंडेंसी नहीं है ये सिंपली क्या करता है एक डाटा को लेता है ठीक है 100 100 100 क 100 को आउटपुट कर देता है पीएनजी में करके तो मैं क्या चाहता हूं मैं चाहता हूं कि यह एक सीक्वेंशियल ना करूं मैं इसको सीक्वेंशियल ना कर करूं मैं चाहता हूं ये असंक्रामक मैं क्या करूंगा ये जो मेरी प्रोसेस है ठीक है ये जो प्रोसेस होगी इसको मैं दो पार्ट में डिवाइड करूंगा दो पार्ट में डिवाइड करूंगा इस पार्ट को मैं क्या बोलूंगा इसको मान लो मैं व बोल देता हूं इसको ट बोल देता हूं यानी पहली थ्रेड दूसरी थ्रेड अब थड जो है ना आपके एक लाइटवेट प्रोसेस ही है ठीक है एक प्रोसेस का पार्ट ही है यह मान लो तोव टीट प्रोसेस मैंने ले ली ठीक है टीट प्रोसेस नहीं टीट लाइट वेट प्रोसेस जिसको मैं थड बोल रहा हूं थड मैंने ले ली अब मैं इसको क्या करूंगा अब मैं क्या करूंगा जो मेरा ए पार्ट था और यह बी पार्ट था मैं अपने कोड में क्या लिखूंगा कि भाई ये जो ए पार्ट है इसकी इसको t1 थ्रेड को दे दे ये t2 थ्रेड को दे दे t1 भी उसी लॉजिक का यूज करेगा जो कन्वर्ट करेगा उसको इमेज को t2 भी उसी लॉजिक का यूज करेगा जो कि कन्वर्ट करेगा इमेज को या फिर मुझे a1 दे देगा यह b1 दे देगा मतलब अब क्या हो रहा है यहां पे अब कुछ नहीं हो रहा आपने क्या करा एक प्रोसेस को ब्रेक किया t1 t2 दो थ्रेड्स में दो थ्रेड्स में ब्रेक कर क्योंकि वो दोनों एक इंडिपेंडेंट एग्जीक्यूशन था दोनों को एक दूसरे की जरूरत नहीं थी ठीक है कोई मल आपस में कोई डिपेंडेंसी नहीं थी तो t1 ने उठाया a को और काम करके इधर दे दिया t2 ने उठाया बी को और काम करके इधर दे दिया आपस में इनकी कोई कम्युनिकेशन नहीं थी ठीक है और यह आपको ऐसे इंडिपेंडेंटली एग्जीक्यूट होके मिल गया अब यह देखो अब यहां पर टाइम कितना लगना था मान लो एक 100 100 को करने में मान लो 10 सेकंड्स लगने थे तो इस पर जब सीक्वेंशियल जा रहा था तो 10 प् 10 20 सेकंड्स में काम होता अब यहां पर कितने टाइम में 10 प् 10 नहीं होगा यहां पे यहां पर दोनों ही 10 सेकंड में हो जाएंगे पैरेलली एग्जीक्यूट हो जाएगा इसका मतलब आपने मल्टी थ्रेडिंग करके अपने कोड को फास्ट कर लिया ठीक है समझ आ रहा है कुछ फास्ट कर लिया आपने अपना अब फास्ट करने से क्या हो गया आपका जल्दी से काम हो गया अब मैं बोलूंगा कि मल्टी थ्रेडिंग जो है ना हर सीपी में हो नहीं पाएगा जो अभी हम पिछले लेक्चर में हमने पढ़ा कि जो मल्टी प्रोग्रामिंग और मल्टीटास्किंग इस टाइप के जो सिस्टम थे उसके अंदर सीपीयू होता था एक ठीक है एक ही सीपीयू के अंदर हम काम कर रहे थे तो अब आप सोच के देखो कि क्या ये एक ही सीपीयू के अंदर हो सकता है क्या ये एक ही सीपीयू के अंदर हो सकता है नहीं हो सकता बिल्कुल भी नहीं हो सकता क्योंकि अब क्योंकि ये तो पैरेलली एग्जीक्यूट होने थे तो एक सीपीयू आईडियली एक सीपीयू इसे उठाएगा दूसरा सीपीयू इसे उठाएगा हमें पता है कि हम एक सीपीयू तो एक प्रोसेस को एग्जीक्यूट करता था बट यह एक प्रोसेस का प्रोसेस ही है एक टाइप से लाइट वेट प्रोसेस है तो यहां हम एक सीपीयू को यह देते t1 t1 थ्रेड एक सीपीय के द्वारा एग्जीक्यूट हो रही होती सीपीय व t2 थ्रेड सीपीयू टू के द्वारा एग्जीक्यूट होएगी इस तरीके से काम चलेगा यहां पे बट जहां पे सिंगल सीपीयू होगा जहां पर सिंगल सीपीयू होगा वहां प मल्टी थ्रेडिंग जो होगी वहां मल्टी थ्रेडिंग में कोई हमें गेन नहीं मिलेगा मल्टी थ्रेडिंग कर तो लोगे आप मल्टीथ्रेडिंग कोड तो आप लिख दोगे बट क्योंकि दूसरा सीपीय अवेलेबल ही नहीं है तो काम सीक्वेंशियल ही होगा ठीक है तो ये यहां पे ये किस सिस्टम में मतलब हमें ज्यादा बेनिफिट देगा इस सिस्टम में जहां पर मल्टी प्रोसेस एनवायरमेंट होगा मल्टी प्रोसेसिंग एनवायरमेंट का मतलब ग्रेटर दन इक्वल टू वन सीपीयू यानी कि ज्यादा सीपीयू होंगे तो आजकल के जो आपके सिस्टम होते हैं मल्टी प्रोसेसिंग ही होते हैं सीपीयू ज्यादा होते हैं उसमें ठीक है तो मल्टी थ्रेडिंग का वहां बेनिफिट मिल सकता है आपको तो यही था कुछ मल्टी थ्रेडिंग का थोड़ा आपको समझाने की कोशिश की मैंने मल्टी थ्रेडिंग क्या होता है ठीक है तो ये हो गया आपका मल्टी थ्रेडिंग अब मल्टी थ्रेडिंग में अब हम देखें तो एक चीज होती है कि मल्टीथ्रेडिंग तो हमने समझ लिया अब मैं ऊपर ऊपर से बोलू तो आपके पास प्रोसेस है एक एक ही प्रोसेस है इसको आपने मल्टीपल पार्ट्स में मतलब आपने क्या करा एक प्रोसेस होता है इसके अंदर मान लो एक काम था टास्क ए यह था मान लो टास्क बी यह था टास्क सी अब इंडिपेंडेंटली मान लो काम करते ये टास्क तो आपने इनको तीन थ्रेड्स में डिवाइड कर दिया t1 2 t3 ठीक है तो अगर आप सोचो कि एक प्रोसेस जो होती है ठीक है उसका मतलब एक चाइल्ड टाइप हुआ जो थ्रेड्स होती है तो अगर मैं बोलूं कि एक प्रोसेस अगर जो मेमरी ब्लॉक या फिर मेमरी या रिसोर्सेस जो यूज कर रहे होंगे वही यह थ्रेड्स भी यूज कर रहे होंगे इसका क्या मतलब है कि मान लो एक प्रोसेस को आपने जो आपकी पूरी मेमरी थी उसका इतना पार्ट दिया हुआ था ठीक है इतना पार्ट दिया हुआ था तो इतने ही पार्ट टीव t23 काम कर रहे होंगे इसी पार्ट में ठीक है और कोई और प्रोसेस होगी उसको मान लो ओस ने इतना पार्ट दिया हुआ था हमने पढ़ा था कि ओ आइसोलेशन प्रोवाइड करता है तो दो प्रोसेस के बीच में आइसोलेशन होगी तो थड के बीच में आइसोलेशन नहीं होंगी दो थ तो उसी प्रोसेस का ही पार्ट है उसके बीच में आइसोलेशन का क्या मतलब है ठीक है हो सकता है एक थड दूसरे थड के कुछ काम को यूज भी कर रही हो बाद में ठीक है तो जो आइसोलेशन मेमरी प्रोटेक्शन का जो काम हमने पढ़ा था ओ का वो य पर अप्लाई नहीं कर क्योंकि जो थ्रेड्स है वो प्रोसेस का ही पार्ट है ये आपने मल्टी थ्रेडिंग के बारे में बढ़िया से पढ़ लिया तो यही आपका मल्टी थ्रेडिंग है इसके बारे में आगे हम डिटेल में प्रोसेस मैनेजमेंट वाले पार्ट में पढ़ेंगे बट अभी हम आ जाते हैं इंटरव्यूअर के बड़े फेवरेट क्वेश्चन में जो क्वेश्चन है मल्टी टास्किंग और मल्टी थ्रेडिंग के बारे में डिफरेंस बता दो ठीक है अब इंटर को पता है इन दोनों कांसेप्ट में ना बड़े लोग बच्चों को बड़ी कंफ्यूजन होती है है तो वो सबसे पहले क्वेश्चन आपसे पूछेगा कि भाई इनके बीच का डिफरेंस बताओ एक बार क्या होता है ठीक है अब मैं बोलूं कि इनके बीच के डिफरेंस में सबसे पहला पॉइंट क्या आएगा सबसे पहला पॉइंट यह है कि मल्टीटास्किंग जो एक मैं बोलूं एक कांसेप्ट है ना वो दो प्रोसेसेस मल्टीपल प्रोसेसेस के बीच में बहुत सारी प्र जैसे हमने पढ़ा था लास्ट लेक्चर में बहुत सारी प्रोसेस हैं प्रोसेस क्या कर रही है प्रोसेस आपस में टाइम शेयरिंग कर रही है कांटेक्ट स्विचिंग कर रही है एक सीपीयू के अराउंड राइट तो मल्टीटास्किंग कुछ इस तरीके से काम करता है कि उसके अंदर मोर देन वन प्रोसेसेस का कांसेप्ट हैय है ना मतलब एक सीपीयू है आपके पास एक से ज्यादा प्रोसेसेस है उनको आप शेड्यूल कर रहे हो ठीक है टाइम शेयरिंग करके कांटेक्ट स्विचिंग करके अब य मल्टी थ्रेडिंग में क्या है यहां पे मोर देन वन थ्रेड्स का कांसेप्ट है मोर देन वन थ्रेड्स का मतलब एक ही प्रोसेस है उसकी बहुत सारी थ्रेड्स है एक ही प्रोसेस के बहुत सारे थ्रेड्स है आप उनको शेड्यूल कर रहे हो अब मैं बोलूं कि जो एक जिसके अंदर मल्टीपल सीपीयूज होते हैं तो मल्टीपल सीपीयूज के अंदर क्या होता है चलो मल्टीपल सीपीयू की बात ना करें अगर एक ही सीपीयू माने और बहुत सारी प्रोसेस माने तो यहां पे हम बोल रहे थे कि कांटेक्ट स्विचिंग होगी टाइम शेयरिंग होगी अगर मान लो कोई ऐसा सिस्टम है जिसमें क्या ल गेन तो नहीं मिलेगा जिसके अंदर बहुत सारी थ्रेड्स है बट एक ही सीपीयू है वहां भी ऐसा ही कुछ होगा एक ही प्रोसेस की बहुत सारी थ्रेड्स आपस में कांटेक्ट स्विचिंग कर रही होंगी समझ रहे हो बहुत सारी थ्रेड्स हैं कभी पहली थ्रेड का करेगी फिर दूसरी थ्रेड काम करेगी तीसरी थ्रेड करगी और एक ही प्रोसेस की थ्रेड है हालांकि इसमें कोई गेन नहीं मिलेगा गेन मल्टी थ्रेडिंग में तभी मिलता है जब एक से ज्यादा आपके सीपीयूज हो ठीक है सीपीयू बोल सकता हूं कोर्स बोल सकता हूं कोर्स भी लॉजिकल सीपीयूज ही होते हैं एक से ज्यादा सीपीयू हो तब भी फायदा है ठीक है तो ये कांसेप्ट ही दोनों अलग-अलग है मल्टीटास्किंग प्रोसेसेस के बीच में ये थ्रेड्स के बीच में दूसरा अगर मैं आऊ दूसरा पॉइंट इसमें हमारा है कि आपकी जो मल्टीटास्किंग होती है क्योंकि विदन प्रोसेसेस होती है दो एक से ज्यादा प्रोसेसेस के बीच में होती है तो यहां पर आइसोलेशन एंड मेमोरी प्रोटेक्शन का कांसेप्ट होता है ठीक है यहां पर ऐसा कोई कांसेप्ट नहीं होता नो आइसोलेशन एंड मेमोरी प्रोटेक्शन इसका क्या मतलब हुआ एक बार मैं फिर से रिपीट कर देता हूं आइसोलेशन नहीं है जो एक प्रोसेस होती थी एक प्रोसेस एक सेपरेट एंटिटी की तरह चलती थी मेमोरी के अंदर कि अलग मेमोरी ब्लॉक होता था ओस इसको इंश्योर करता था कि अलग मेमोरी ब्लॉक हो दूसरी प्रोसेस का अलग मेमोरी ब्लॉक हो इंडिपेंडेंटली मेमोरी उसकी एलोकेटेड हो और वो काम करे बट एक मल्टी थ्रेडिंग के अंदर क्योंकि थ्रेड एक प्रोसेस का ही पार्ट है क्योंकि थ्रेड एक प्रोसेस का ही पार्ट है वो ऐसा कुछ भी नहीं होगा एक ही थ्रेड जो मोर दन वन थ्रेड्स हैं वो एक ही मेमोरी के ब्लॉक को यूज कर रही होंगी क्योंकि जो ओएस ने एक प्रोसेस को जो मेमोरी एलोकेट किया होगा जितना मेमोरी का एरिया एलोकेट किया होगा थ्रेड उसी में काम करेंगी इसका अगर मैं एक छोटा बढ़िया सा डायग्राम बनाऊं तो यह आपकी मान लो मेमोरी है तो प्रोसेसेस जो होंगी वह इस तरीके से अलग-अलग उनकी एलोकेशन होगी यह p1 प्रोसेस को मिला हुआ यह प2 प्रोसेस को मिला हुआ है और अगर मैं यहां पर p1 प ही देखूं तो जो t1 t2 थ्रेड्स है वो t2 वाले एरिया में ही काम कर रही होंगी ठीक है वो इसी एरिया में काम कर रही होंगी तो ये हो गया कि कोई आइसोलेशन नहीं है कोई मेमोरी प्रोटेक्शन नहीं है मेमरी क्योंकि मेमोरी का एरिया भी सेम कर रहे होंगे तो रिसोर्सेस भी सेम यूज कर रहे होंगे कोई अदर रिसोर्सेस अगर इनको एलोकेटेड है एक प्रोसेस को रिसोर्सेस क्योंकि एलोकेट करता है वो रिसोर्सेस भी मल्टी थ्रेडिंग में थ्रेड्स आपस में शेयर कर रही होंगी क्योंकि थ्रेड्स प्रोसेस का ही पार्ट है ठीक है तीसरा पार्ट है कि इसके अंदर जो आपका मल्टीटास्किंग होता है इसके अंदर प्रोसेसेस जो होती है वो स्केड्यूल होती है ठीक है और इसके अंदर क्या होता है थ्रेड स्केड्यूल होती है इसका क्या मतलब है कि मल्टीटास्किंग के अंदर जो सीपीयूज को जो है प्रोसेस शेड्यूल होंगे एक प्रोसेस जाएगी कि सीपीय वन ू ये पव प्रोसेस कर सीपीयू टू टू प2 प्रोसेस कर यहां पे थ्रेड्स प्रोसेस होंगी एक विदन जो प्रोसेस है उसके जो मल्टीपल थ्रेड्स बना रखी है हमने t1 t2 t1 t2 प्रोसेस जो थ्रेड्स होंगी वो स्केड्यूल होगी t1 थ्रेड टू सीपीय व के पास चले जा t2 थ्रेड टू सीपीय टू के पास चले जा तो इस तरीके से यह डिफरेंसेस होते हैं कुछ मल्टी थ्रेडिंग के और मल्टी टास्किंग के ठीक है आई होप आपको यह थोड़ी अंडरस्टैंडिंग बनी होगी इसकी कि थ्रेड्स क्या होती हैं प्रोसेस क्या होती है मल्टी थ्रेडिंग मल्टीटास्किंग में फर्क क्या होता है इंटरव्यू इस पर थोड़ा और एडऑन करके आपसे पूछ सकता है कि मल्टी प्रोग्रामिंग क्या होता है मल्टी प्रोग्रामिंग और मल्टीटास्किंग में क्या फर्क होता है मल्टी प्रोग्रामिंग आपने अच्छे से पढ़ा लास्ट लेक्चर में ठीक है आप उसमें डिफरेंसेस बता सकते हैं मल्टी प्रोग्रामिंग नहीं तो वो पूछ सकता है कि मल्टी प्रोसेसिंग क्या होता है मल्टी टास्किंग क्या होता है इस तरीके से आपसे एड ऑन एड ऑन करके आपसे इन चीजों प पूछ सकता है सबसे आपको इन सब की क्लेरिटी है कि नहीं तो इसी के साथ इस लेक्चर को यहीं पे खत्म करते हैं हम तो चलिए र नोट्स पे नजर डाल लेते हैं आपके लिए बहुत ही प्यारे नोट्स हमने फिर से बना दिए लेक्चर नंबर थ्री के इसमें मल्टीटास्किंग मल्टी थ्रेडिंग का हमने मेनली डिस्कशन किया है इसमें जो सबसे पहले हमने सीखा प्रोग्राम क्या होता है प्रोग्राम एग्जीक्यूटेबल फाइल होती है सर्टेन इंस्ट्रक्शंस होती हैं उसमें जो कि किसी स्पेसिफिक जॉब को एग्जीक्यूट करते हैं और यह कहां पर लिखा होता है बेसिकली यह कहां पर स्टोर्ड होता है बेसिकली यह डिस्क में स्टोर होता है यह डिस्क में स्टोर होता है जब आप इस परे डबल क्लिक करते हो तब यह प्रोसेस बनता है और उसको हम एक प्रोसेस कहते हैं तो इसी इसी प्रकार प्रोसेस की डेफिनेशन भी हमने लिख दिया है प्रोग्राम अंडर एग्जीक्यूशन यह रम के अंदर रिसाइट करता है रम को हम प्राइमरी मेमरी भी बोलते हैं अब आते हैं थ्रेड पे थ्रेड के लिए भी हमने काफी सारे बेसिकली पॉइंट्स आपके लिए लिख दिए हैं जिनको आप डायरेक्टली यूज कर सकते हो अपने इंटरव्यूज में सिंगल सीक्वेंस स्ट्रीम विद इन ए प्रोसेस एंड इंडिपेंडेंट पाथ ऑफ एग्जीक्यूशन जैसा कि हमने डिस्कस किया लाइट वेट प्रोसेस भी बोल देते हैं इसको ठीक है और ये क्यों यूज होता है इसका सबसे बड़ा काम सबसे मेजर बेनिफिट यही है कि हम पैरेललिज्म अचीव करना चाहते हैं एक प्रोसेस के अंदर ठीक है और इसके एग्जांपल्स कुछ ले लेते हैं मल्टीपल टैब्स इन ए ब्राउजर इसका एग्जांपल को थोड़ा मैं एक्सप्लेन करने की कोशिश करूं तो जब आप एक लिया अब फिर क्लिक करते हो टैब पे न्यू टैब खुल जाता है तो न्यू टैब भी पिछले टैब जैसा ही होता है फिर आप उस परे google.com या कुछ एक और एग्जांपल जो कि बहुत ही बढ़िया एग्जांपल है जो समझने में भी काफी इजी है वो है टेक्स्ट एडिटर का इसको मैं बताना चाहूं तो जब आप टेक्स्ट एडिटर खोलते हो कोई भी ठीक है नोटपैड या फिर कोई एडवांस टेक्स्ट एडिटर की बात करूं तो मान लो वर्ड ही है जब वर्ड पर टाइप करने की कोशिश करते हो टाइप करते करते करते करते टाइप तो आपके जो लेटर्स हैं जो आप कीबोर्ड पे कीज प्रेस कर रहे हो उससे वो इनपुट तो ले ही रहा है साथ ही साथ में आप देखोगे कि वोह बेसिकली स्पेलिंग चेक्स टाइप चेक्स फॉर्मेटिंग यह सब कर रहा होता है तो ऐसा अब ये सारी ना अलग-अलग टास्क्स हैं सब टास्क हैं यह राइटिंग की जो पूरी प्रोसेस है इसकी सब टास्क्स हैं ठीक है तो आप देखोगे ये सारी ना डिफरेंट डिफरेंट थ्रेड को दी गई होती है ठीक है जैसे आप जो एक्चुअल टाइपिंग कर रहे हो वो एक थ्रेड कर रही होगी स्पेलिंग चेकिंग एक थ्रेड कर रही होगी फॉर्मेटिंग एक थ्रेड कर रही होगी और जो बैकग्राउंड में ऑटो सेव चल रहा होता है वो भी एक थ्रेड के थ्रू ही होता है वो बैकग्राउंड में चलता रहता है कॉन्करेंटली तो मैं बोलूं यह सारे डिफरेंट एक ही प्रोसेस के कुछ सब टास्क हैं जो कि अलग-अलग लग थ्रेड के द्वारा करे जा रहे हैं ठीक है तो यह हमें समझ आ गया बढ़िया से कि एक बढ़िया सा टेक्स्ट एडिटर का एग्जांपल अब अगर मैं इसका थोड़ा सा बोलना चाहूं कि अगर मान लो मल्टी थ्रेडिंग यहां पे नहीं होता ये एक ही प्रोसेस से करा रहे होते तो पता है कैसा दिखता तो ऐसा होता आप सबसे पहले आप मान लो कुछ लिखते अपना नाम लिखते माय नेम इज लक्ष्य ऐसे लिखते तो एक बारी में क्योंकि प्रोसेस है एक ही प्रोसेस है कोई मल्टी थ्रेडिंग नहीं है तो माय नेम इज लक्ष लिखा जा रहा है जो बाकी के टास्क है स्पेलिंग चेक फॉर्मेटिंग यह सब चल ही नहीं रही है फिर आप जैसे ही माय नेम इ लेक्चर लिख दोगे उसके बाद आप जल्दी-जल्दी वही वाली प्रोसेस जो है सीक्वेंशियल इन काम को कर रही होगी कैसे पहले उसने टाइप करवाया पहला टास्क फिर दूसरा टास्क उसने स्पेलिंग चेक करी तीसरा टास्क उसने फॉर्मेटिंग करी चौथा टास्क उसने सेव किया तो अब ये सारे काम अगर एक ही प्रोसेस सीक्वेंशियल कर रही होगी तो क्या होगा जब तक ये चारों काम नहीं हो जाते आप दूसरी बार टाइपिंग पर वापस से आ नहीं सकते राइट तो देख लि कितना बढ़िया एग्जांपल दिया आपको मल्टी थ्रेडिंग क्यों जरूरी है इसके लिए अब जो हमने इस बेसिकली वीडियो में मेन पढ़ा वो था हमारा मल्टीटास्किंग और मल्टी थ्रेडिंग तो इसको भी कुछ समरा इज किया गया है कि मल्टीटास्किंग होता है एक टास्क को स्विच करते रना सटस ली प्रो सीपीय पे ठीक है टास्क यहां पे प्रोसेस है ठीक है और मल्टी थ्रेडिंग क्या होता है कि एक टास्क को सब टास्क में डिवाइड कर दिया गया है एक प्रोसेस को कुछ लाइट वेट प्रोसेसेस में डिवाइड कर दिया गया है वो जो लाइटवेट प्रोसेसेस जो काम करेंगी वो एक इंडिपेंडेंट एग्जीक्यूशन होगा एक वर्क फ्लो का ठीक है तो इस कांसेप्ट को मल्टी थ्रेडिंग बोल रहे हैं दूसरा जो कांसेप्ट यहां पर यूज हो रहा है वो हो रहा है कि एक से ज्यादा प्रोसेस हैं वो कांटेक्ट स्विच हो रही है ठीक है एक से ज्यादा प्रोसेस कंटक्ट स्विच हो रही है यहां पे क्या हो रहा है कि एक से ज्यादा थ्रेड्स कांटेक्ट स्विच हो रही है ठीक है तो यहां पर प्रोसेसेस मल्टीटास्किंग प्रोसेसेस हो रही हैं यहां पर मल्टी थ्रेडिंग में थ्रेड्स हो रही हैं और यहां पर मल्टीटास्किंग में जैसा हमने पढ़ा था कि नंबर ऑफ सीपीयू वन होते हैं ठीक है सिमिलरली यहां पर मल्टी थ्रेडिंग में नंबर ऑफ सीपीयू वन भी हो सकते हैं उससे ज्यादा भी हो सकते हैं अब यहां पर एक क्वेश्चन बनता है आपसे कोई पूछे कि मल्टी थ्रेडिंग में कितने नंबर सीपीयू चाहिए यह क्वेश्चन बन सकता है तो आप इसका जवाब क्या दोगे इसका जवाब होगा कि जितनी थ्रेड्स मेरा हार्डवेयर सपोर्ट कर सकता है मैं उतनी थ्रेडिंग उतनी मल्टी थ्रेडिंग अपने कोड में करूंगा इसका मतलब हार्डवेयर मान लो आपके पास है और हार्डवेयर के अंदर जो सीपीयू है सीपीयू के अंदर जो कोर्स है वो कोर्स मान लो एक एक ही है बस यानी कि एक सीपीयू है एक टास्क एक बार में एग्जीक्यूट कर सकता है वो ठीक है उसपे हम कांटेक्ट स्विचिंग कर सकते हैं वो अलाउड है तो इसमें क्या होगा आप मल्टी थ्रेडिंग का कोड लिख तो दोगे आपने अपना कोड लिखा उसको दो थ्रेड्स में डिवाइड कर रहा हुआ है उनके टास्क को तो दो थ्रेड में आपने डिवाइड तो कर दिया लॉजिकली आपने कोड ऐसा लिख दिया बट क्या ये एक्चुअली आपको गेन दे पाएगा जैसे हमने डिस्कस किया सीपीयूज नंबर ऑफ सीपीयू ज्यादा होने चाहिए इस केस में क्योंकि एक थ्रेड एक सीपीयू एक थ्रेड को उठाएगा और काम करेगा और दूसरा सीपीयू दूसरे थ्रेड को उठाएगा और काम करेगा तभी एक्चुअल गेम मिलेगा अगर यहीं पे थ्रेड इस थ्रेड्स के बीच में कांटेक्ट स्विचिंग होने लग गई तो हमें कोई गेन नहीं मिलेगा इसका मतलब अगर एक ही सीपीयू हुआ ठीक है और टू थ्रेड्स हुई तो वो आपस में ही कंटक्ट स्विच करती रह जाएंगे तो हमें मल्टी थ्रेडिंग का कोई गेन नहीं मिलेगा ठीक है कोड चल जाएगा आपका एग्जीक्यूट हो जाएगा बट जो एक्चुअल जो पर्पस था वो फुलफिल नहीं हो पाएगा ठीक है तो मैं बोल सकता हूं कि जो हार्डवेयर की कैपेबिलिटी है हार्डवेयर के अंदर मान लो चार कोर्स हैं चार कोर का मतलब चार सीपीयूज है लॉजिकल प्रोसेसर्स हैं तो मैं फोर थ्रेड्स में डिवाइड कर सकता हूं अपने प्रोग्राम को मतलब ये अलाउड है ये मैं एक अच्छा बेसिकली कोडिंग प्रैक्टिस बोलूंगा कि मैं जितने कोर्स जितने कोर्स हैं मेरे उतने ही मैं थ्रेड्स में डिवाइड कर रहा हूं ठीक है तो ये हमें समझ आ गया है कि बेसिकली मल्टी थ्रेडिंग का मतलब यह नहीं है कि आप उठा के बहुत सारी थ्रेडिंग कर दो एक और क्वेश्चन बन सकता है इसमें अब अब मैं किसी को बोलूं कि मल्टी थ्रेडिंग अगर इतना ही बढ़िया कांसेप्ट है इतना ही बढ़िया कांसेप्ट है तो मैं क्यों ना एक प्रोसेस को 1 लाख 2 लाख 3 लाख थ्रेड्स में डिवाइड कर दूं इसका भी आंसर सेम ही होगा 1 लाख 2 लाख 3 लाख में आप डिवाइड तो कर दोगे कोड एग्जीक्यूट तो कर देगा बट क्या उतने कोर्स है आपके पास अभी मैं देखूं जो हमारे पास अभी लेटेस्ट मैकबुक आया था मैकबुक एयर उसके अंदर भी आठ कोर्स है बस राइट तो मैं बोल सकता हूं कि बेसिकली नंबर ऑफ कोर्स जितने होंगे उस हिसाब से हमें थ्रेड्स को बेसिकली अपने कोड को डिजाइन करना चाहिए उतने थ्रेड शूट करने चाहिए हमें ठीक है तो यह हो गया एक डिफरेंस और एक और है कि आइसोलेशन एंड मेमोरी प्रोटेक्शन जो होता है यह कांसेप्ट जो है वो मल्टीटास्किंग में होता है क्योंकि यहां दो प्रोसेस हो रही होती है अलग-अलग ठीक है मल्टी थ्रेडिंग में ऐसा कोई कांसेप्ट नहीं होता मल्टी थ्रेडिंग में तो एक ही प्रोसेस के पार्ट हैं तो वह आपस में उसी प्रोसेस के रिसोर्सेस भी यूज कर रहे होंगे यहां पे प्रॉपर्ली मेंशन कर दिया गया है ठीक है शेयर द सेम मेमोरी एंड रिसोर्स एलोकेटेड टू ए प्रोसेस तो यह तो हमने डिस्कस कर लिया मल्टीटास्किंग मल्टी थ्रेडिंग में ठीक है अब मैं एक क्वेश्चन पे आता हूं जो आपसे पूछा जा सकता है कि जैसे कांटेक्ट स् होती है बेसिकली शेड्यूलिंग होती है प्रोसेस की एक जॉब एक सीपी पर डिफरेंट जॉब स्केड्यूल होती है पहले पव चलेगी फिर प2 चलेगी इस टाइप से ऐसे थ्रेड्स की शेड्यूलिंग कैसे होती है तो थ्रेड्स भी इसी तरीके से स्केड्यूल होती है ओस की शेड्यूलिंग करता है डिपेंडिंग अपॉन द प्रायोरिटी ठीक है प्रायोरिटी तो जब मैं एक प्रोसेस शूट करता हूं यह प्रोसेस है ठीक है पव बोल देता हूं मैं इसको पव प्रोसेस हमारी इसकी मैंने t1 t2 थ्रेड बनाई अब मैं बोलता हूं जब भी मैं थ्रेड्स को बेसिकली स्पॉन कर रहा होता हूं थ्रेड्स को स्पॉन टर्म यूज़ होती है थ्रेड स्पॉन जब मैं थ्रेड को स्पॉन कर रहा होता हूं तो मैं हमेशा प्रायोरिटी देता हूं कि t1 की हायर प्रायोरिटी है या t2 की हायर प्रायोरिटी है मैं भी बोल सकता हूं दोनों की सेम प्रायोरिटी है तो फिर डिफॉल्ट बेसिकली जो भी लिखा होगा उस तरीके से काम होगा तो अगर t1 की हायर प्रायोरिटी है तो बेसिकली t1 को ज्यादा मौका मिलेगा ठीक है मतलब कि आपके पास अ बेसिकली उस p1 प्रोसेस से रिलेटेड सीपीयू का कुछ टाइम एलोकेटेड है कि भाई सीपीयू थोड़ी-थोड़ी देर में p1 को एग्जीक्यूट करने आता है ठीक है अब p1 के अंदर भी दो थ्रेड्स हैं t1 एंड t2 अब t1 एंड t2 में सबसे ज्यादा टाइम किसको मिलेगा जिसकी प्रोसेस जिसकी बेसिकली अ प्रायोरिटी सबसे ज्यादा होगी तो t1 की प्रायोरिटी सबसे ज्यादा है तो उसको सबसे ज्यादा टाइम मिलेगा तो डिपेंडिंग अपॉन द प्रायोरिटी ये चीज मतलब थ्रेड्स जो है वो शेड्यूल होती है एक प्रोसेस की तो मैंने यहां प्रॉपर्ली लिख दिया है कि इवन थ्रू द थ्रेड्स आर एग्जीक्यूटिंग विद इन द रन टाइम ऑल थ्रेड्स आर साइंड प्रोसेसर टाइम स्लाइसेज बाय द ऑपरेटिंग सिस्टम करता कौन है ऑपरेटिंग सिस्टम ही करता है ठीक है फादर गॉड फादर गॉड फादर तो यहां पे यही है अब एक और क्वेश्चन बन सकता है कि डिफरेंस क्या है थ्रेड्स की कांटेक्ट स्विचिंग में और प्रोसेस की कांटेक्ट स्विचिंग में क्या डिफरेंस है तो थ्रेड्स की कांटेक्ट स्विचिंग प्रोसेस की कांटेक्ट स्विचिंग यह एंटायस है कंसेप्ट कैसे जो थ्रेड्स की कांटेक्ट स्विचिंग होती है बेसिकली देखो कांटेक्ट स्विचिंग हमने पढ़ा क्या होता है हमें करंट स्टेट को सेव करना है और जो दूसरी थ्रेड या प्रोसेस है उसके स्टेट को रिस्टोर करना है राइट सेम काम होता है यहां पर ठीक है बेसिकली सेम प्रोसेस की थ्रेड्स को स्विच कर रहे होते हैं उनके बीच में कांटेक्ट स्विचिंग चल रही होती है यहां पर प्रोसेस कांटेक्ट स्विचिंग के अंदर दो प्रोसेसेस हो रही होती है कंटेक स्विच ठीक है यह तो हमें पता ही है बेसिक सा है ठीक है दूसरा क्या है जो थ्रेड होती है क्योंकि थ्रेड एक प्रोसेस का ही पार्ट है तो जब उसकी कंटक्ट स्विचिंग होगी क्या मेमोरी स्पेस स्विच होगा मेमरी स्पेस मतलब जिस मेमोरी में जिस रम के एरिया में वो पर्टिकुलर प्रोसेस काम कर रही थी जिन एड्रेसस प वो पर्टिकुलर प्रोसेस काम कर रही थी क्या वो चेंज होगा हमने अभी वीडियो में देखा था कि जब दो थ्रेड्स होती हैं एक प्रोसेस की वह एक ही मेमोरी एरिया को यूज कर रही होती है तो यहां पर स्विचिंग ऑफ एडर स्पेस नहीं होगा बाकी सब होगा प्रोग्राम काउंटर रजिस्टर और स्टैक इंक्लूड जो ये सब होंगे बट मेमोरी स्पेस नहीं होगा ठीक है इसके अंदर ओबवियसली होगा प्रोसेस के अंदर क्योंकि आ सोलेन और मेमोरी प्रोटेक्शन की वजह से दो अलग-अलग प्रोसेस जो होती है उनको अलग-अलग मेमोरी ब्लॉक्स दिए जाते हैं ओएस के द्वारा अब देखो क्योंकि इसके अंदर क्योंकि थ्रेड कांटेक्ट स्विचिंग के अंदर मेमोरी एड्रेस स्पेस स्विच नहीं हो रहा है तो इस केस में तो कांटेक्ट स्विचिंग है वो फास्ट होगी एक काम जो सबसे बड़ा काम था मेमोरी मेमोरी का कांटेक्ट स्विच करना मेमोरी वाला काम जो है यह काफी हैवी टास्क था इसी को मैंने रिमूव कर दिया तो क्या मैं बोल सकता हूं कि फास्ट स्विचिंग होगी हां होगी इसमें कंपैरेटिव स्लो इसमें इसमें कंपैरेटिव स्लो स्विचिंग होगी ठीक है चौथा पॉइंट है कि अब एक चीज होती है कैश कैश क्या होती है भैया कैश के बारे में ना बेसिकली लेबोरेटरी बाद में पढ़ेंगे बट अभी मैं थोड़ा सा आपको हिंट दे देता हूं कैसे होता है क्या क्योंकि यहां पर डिफरेंसेस पूरे करने थे कैश होता है कि अब मान लो मैं एक छोटा सा एग्जांपल लेता हूं कि सीपीयू किसी मेमोरी एरिया में काम कर रहा है ठीक है सीपीयू किसी मेमोरी एरिया में काम कर रहा है यह मेमोरी है आपकी ठीक है अब सीपीयू जो है मान लो मैं बोल देता हूं मेरा प्रोग्राम कुछ इस तरीके से लिखा है कि सीपीयू ना कुछ पर्टिकुलर कोड को कुछ पर्टिकुलर कोड को बार-बार रेफर करता है कुछ पर्टिकुलर एरिया को मान लो एक है टेबल है है टेबल को बारबार रेफर कर रहा है मान लो पूरे कोड में है टेबल टेबल रेफर हो रहा है तो मैं क्या करूंगा मैं नहीं करूंगा बेसिकली ओस क्या करेगा उस हैश टेबल को ना है टेबल को उठा के एक कैश में डाल देगा कैशे एक अलग से स्टोरेज होती है जैसे मेमोरी होती है हमारी ऐसी एक अलग से स्टोरेज होती है फिजिकल स्टोरेज होती है उसको उठा के मैं कैशे में डाल दूंगा तो क्या होगा इससे ना मेरा काम बहुत आसान हो जाएगा कैसे काम आसान हो जाएगा कि कैश क्योंकि मेमोरी से भी फास्ट होती है जो कैशे होती है कैशे की स्पेस जो होती है वो बेसिकली फास्टर होती है रम से भी तो मेरा जो एक्सेस है ना वो तेज हो जाएगा यानी कि हैच टेबल में बहुत जल्दी-जल्दी एक्सेस करने लग जाऊंगा तो इससे मेरी प्रोसेस जो है ओवरऑल फास्ट हो जाएगी तो ये मैंने क्यों बताया वो इसलिए कि जब थ्रेड स्विच हो रही होती है अब नहीं नहीं यह मैंने क्यों बताया इसको डिस्कस करने से पहले मैं यह बोल सकता हूं कि कैश जो है वो एक प्रोसेस की जो कैशे का एरिया होता है वो एक ही होता है यानी कि कोई दूसरी प्रोसेस आएगी तो मुझे पहले पहले से जो आइटम पड़ा था कैश के अंदर उसको डिलीट करना पड़ेगा क्योंकि वो जो पर्टिकुलर प्रोग्राम से रिलेटेड कैश पड़ी थी वहां वो है टेबल उस प्रोग्राम में काम करता था दूसरा प्रोग्राम हो सकता है ए टेबल यूज ही ना करता हो ठीक है तो मैं बोल सकता हूं कि कांटेक्ट स्विचिंग जब थ्रेड में होती है जब थ्रेड में होती है तो सीपीयू कैश स्टेट जो है वो प्रिजर्व रहती है इसका मतलब क्योंकि वह सेम प्रोसेस है क्योंकि वो सेम प्रोसेस है तो मैं कैशे को फ्लश नहीं करूंगा अभी क्योंकि हो सकता है दूसरी थ्रेड उसको यूज करे क्योंकि मेमोरी एरिया तो सेम है एक ही प्रोसेस का ही तो पार्ट है तो और प्रोसेस कांटेक्ट स्विचिंग में क्या होता है सीपीयू के कैश स्टेट को हम फ्लश कर देते हैं रीजन आपको बता ही दिया है क्यों फ्लश कर देते हैं क्योंकि हो सकता है वो पर्टिकुलर एरिया मेमरी का वो है स्टेबल वो प्रोसेस यूज ना करें नहीं कर र होगी क्योंकि दूसरी प्रोसेस को थोड़ी ना पता है पहली प्रोसेस में क्या लिखा था ठीक है तो यह कुछ डिफरेंसेस हो गए अब यार हो सकता है कि थ्रेड वाला जो पार्ट है वह अभी आपको थोड़ा कन्फ्यूजिंग लग रहा हो क्योंकि मुझे जब मैं भी पढ़ रहा था सबसे पहले जब मैंने कॉलेज टाइम पर पढ़ा था तो बहुत ज्यादा प्रॉब्लम होती थी थ्रेड्स को समझने के लिए तो मैं आपको कहूंगा कि आप थोड़ा सा और वेट करो आप समझने की पूरी कोशिश करो मैंने पूरी कोशिश करी आपको बढ़िया से बताया जाए ब थोड़ा सा और वेट करो क्योंकि जब हम प्रोसेस मैनेजमेंट पढ़ेंगे तो थ्रेड्स को फिर फिर से हम एक बार रेफर करेंगे और जब दूसरी बार चीज रेफर होती है ना तो और अच्छे से समझ आती है तो बढ़िया है तो इसलिए मैंने सोचा कि पहले थोड़ा सा आपको हल्का सा इनट्यूशन दे देते हैं उसके बाद जब एक्चुअली पढ़ेंगे तो आपको और भी मजा आएगा और अच्छे से समझ आएगा और ये जो थ्रेड वाला कांसेप्ट है ये बहुत ही ज्यादा इंपॉर्टेंट है इंटरव्यू पर्सपेक्टिव से तो ये थी हमारी वीडियो लेक्चर नंबर थ्री पूरी कोशिश करी गई आपको इनके बीच में डिफरेंसेस बताने की और कुछ एक्स्ट्रा चीजें बताने की और इंटरव्यू पर्सपेक्टिव देने की ठीक है तो इस वीडियो में इतना ही मिलते हैं नेक्स्ट वीडियो में धन्यवाद हेलो जी कैसे हो सारे दिस इज लक्ष वेलकम टू चैनल कोड हेल्प सो आज हम पहुंच चुके हैं हमारे ओएस के लेक्चर नंबर फोर में पिछले लेक्चर में हमने पढ़ा कि मल्टीटास्किंग और मल्टी थ्रेडिंग में क्या डिफरेंस है उससे पहले हमने टाइप्स ऑफ ओएस के बारे में पढ़ा था अब हम थोड़ा डिटेल में जाते हैं ओस के उसके कंपोनेंट्स के बारे में पढ़ेंगे ठीक है तो आज हम डिस्कस करने वाले हैं कंपोनेंट्स ऑफ ओस कि ओस जो है वो किस चीज से बना होता है ठीक है अगर मैं ओस को थोड़ा ब्रेक करूं तो ओस के दो कंपोनेंट होते हैं इसके पहला कंपोनेंट का नाम है यूजर स्पेस ठीक है दूसरे कंपोनेंट का नाम है कर्नल कर्नल ठीक है तो जो यूजर स्पेस होता है नाम से ही थोड़ा लग रहा है कि यहां पर बेसिकली यूजर एप्स जो होती है वो एग्जीक्यूट होती है तो जैसे कि हमने पढ़ा था कि ओस के जो वर्क है उसमें पहला वर्क ये भी था कि ओस जो है वो हार्डवेयर से इंटरेक्ट करता है दूसरा ये था कि जो डेवलपर को या यूजर को एक कन्वेनिएंट एक एटमॉस्फियर या एनवायरमेंट प्रोवाइड करता है कि वहां पर वो अपनी एप्स को रन कर सके ठीक है तो ये जो दो वर्क थे अब वो लॉजिकली यहां पर ऐसे डिवाइड होंगे कि जो कन्वेनिएंट एप्स जिस एरिया में रन होती हैं वो एरिया होता है आपका यूजर स्पेस ठीक है वो एरिया होता है यूजर स्पेस दूसरा जो कर्नल होता है कर्नल कर्नल के पास एक्सेस होता है आपका किसका एक्सेस होता है आपका अंडरलाइन हार्डवेयर का अंडरलाइन हार्डवेयर का तो एक्चुअली जो हार्डवेयर का एक्सेस है व आपका कर्नल के पास है और एप्स कहां पर रन होंगी वो यूजर स्पेस में रन होगी तो मैं बोल सकता हूं जो ओस के कंपोनेंट है वो मोटा-मोटा दो चीज में डिवाइड होते हैं यूजर स्पेस और कर्नल स्पेस में ठीक है अब हम देखते हैं यूजर स्पेस पे थोड़ा सा डबल क्लिक कर लेते हैं कि यूजर स्पेस एक्चुअली क्या है तो यूजर स्पेस क्या है इसके पास ना हार्डवेयर का एक्सेस नहीं होता ठीक है तो इसके पास हार्डवेयर का एक्सेस नहीं होता हार्डवेयर का एक्सेस नहीं होता तो क्या करता है यह यह बस एक कन्वेनिएंट एनवायरमेंट प्रोवाइड करता है यूजर एप्स को ठीक है फॉर एग्जांपल अब मैं एक छोटा सा एग्जांपल लेता हूं अब आप जब विंडोज अपना ऑपरेटिंग सिस्टम है आपका विंडोज विंडोज को ऑन करते हो ठीक है ऑन करने के बाद आपके पास आपको क्या दिखता है आपको एक जो डेस्कटॉप जिसको आप बोलते हो डेस्कटॉप दिखता है उसमें यहां पर स्टार्ट होता है और कुछ आइकन दिख रहे होते हैं अब इ आइकन जो आपको सामने दिख रहा है जो आपके सामने दिख रहा है इसको हम बोलते हैं यूजर स्पेस और इसका दूसरा नाम यहां पर जो आपको दिख रहा होता है उसको हम जीय आई भी बोलते हैं जीय आ तो हमारे जो विंडोज और मैक में जो आपका यूजर स्पेस होता है उस वो जीआई बोल सकते हैं उसको और दूसरा बोल सकते हैं सीएल आई तो जो यूजर स्पेस आप कैसे यूजर स्पेस से इंटरेक्ट करोगे या जिसको हम एक्चुअली यूजर स्पेस बोलते हैं मॉडर्न आपके ऑपरेटिंग सिस्टम्स में वो आपका है जीय आई और सीएल आई जीआई क्या होता है जीआई क्या होता है भैया जीआई होता है ग्राफिकल यूजर इंटरफेस ठीक है जो अभी इसमें हमने बात करी ये आपकी था ग्राफिकल यूजर इंटरफेस जिससे आप नॉर्मली काम करते ही हो आप अपना माउस होता है आपके पास आप उधर से क्लिक करते हो क्लिक करके कोई ऐप एग्जीक्यूट करते हो एग्जीक्यूट करते हो जहां भी आप इंटरेक्ट कर रहे हो यूजर डायरेक्टली जीआई से इंटरेक्ट कर रहा होता है ठीक है तो वो एरिया हो आपका जीय आई दूसरा होता है आपने कभी आपने वट चलाई हो या है और लेने के बाद उनको एग्जीक्यूट करता है और सो एंड सो हमारा काम होता है तो जो जीआई से जो काम हो सकता है वो हम कमांड लाइन से भी कर सकते हैं इसका एक एग्जांपल ले तो अगर आपको कोई न्यू फोल्डर बनाना है तो आप विंडोज में जाके अपना राइट क्लिक करके न्यू फोल्डर पर क्लिक कर सकते हो राइट उससे क्या होगा नया फोल्डर बन जाएगा सिमिलरली सील आई पे भी आप एक कमांड बना चला सकते हो और न्यू फोल्डर क्रिएट कर सकते हो फॉर एग्जांपल सीआई पे अगर आप जाओ फोल्डर बन जाएगा जीआई के अंदर भी न्यू फोल्डर का आपको बटन मिल जाएगा अब मैं बोलूं कि जो जीआई के अंदर न्यू फोल्डर का बटन है ना वो इंटरनली एमके डीआई कमांड को ही चला रहा होता है ठीक है अब एमके डीआर कमांड क्या होती है वो बेसिकली इंटरनली सिस्टम कॉल्स को कॉल करती है जो कि अगर मैं बोलूं कि जो एमके डीआई आर है ठीक है वह इंटरनल सिस्टम कॉल्स को कॉल करता है कॉल करने के बाद स्टोरेज स्टोरेज मैनेजमेंट के अंदर जो फाइल मैनेजमेंट का काम है फाइल मैनेजमेंट को बोलता है कि भाई मुझे एक डायरेक्टरी बनाकर दे दो ठीक है तो ये वर्क जो होता है उसको सील आई के थ्रू भी कर सकते हैं जीआई के थ्रू भी कर सकते हैं तो बेसिकली जहां पर एटली आपका यूजर इंटरेक्ट करता है उसको हम यूजर स्पेस कहते हैं और जो यूजर स्पेस होता है इसका दूसरा काम क्या होता है यूजर स्पेस ही कर्नल से इंटरेक्ट करता है इंटरेक्ट विद कर्नल तो मैं ये कहूं कि अभी तक हमने पढ़ा था कि ओस का काम होता है हार्डवेयर से डायरेक्ट इंटरेक्ट करना ठीक है तो यूजर जिस एरिया में काम कर रहा है उसको भी कोई एक्सेस नहीं है हार्डवेयर से वो जाके अभी भी लद वो ओस के अंदर काम कर रहा है बट हार्डवेयर का डायरेक्ट एक्सेस उसको भी नहीं है जो यूजर स्पेस का एरिया जिसमें यूजर काम करता है वो भी कर्नल के थ्रू जाएगा हार्डवेयर को एक्सेस करने देख रहे हो मतलब कितना लेयर्ड बना रखा है हमने चीजों को ठीक है तो यूजर स्पेस का एक तीसरा काम होता है आपका वो कर्नल से इंटरेक्ट करता है अब भैया क्या होता है बहुत देर से कर्नल कर्नल बोल रहे हो आप य कर्नल क्या है अब हम पढ़ते हैं कर्नल कर्नल होता है हार्ट ऑफ ओएस यह भैया सबसे इंपॉर्टेंट सबसे इंपॉर्टेंट काम है इसका यह डायरेक्टली यह डायरेक्टली जो है आपका हार्डवेयर से इंटरेक्ट करता है ठीक है इंटरेक्ट विद हार्डवेयर यह डायरेक्टली हार्डवेयर से इंटरेक्ट करता है यूजर स्पेसस को बोलता है कोई कमांड देता है उस कमांड के बेसिस पे कर्नल उस कमांड को देखता है और उस कमांड को पढ़ने के बाद कर्नल उस हिसाब से आपको हार्डवेयर से वो पर्टिकुलर काम करवाता है तो इस तरीके से चीजें यहां पे चलती हैं यूजर स्पेस का डायरेक्ट एक्सेस नहीं है पर कर्नल का डायरेक्ट एक्सेस है तो कर्नल को डायरेक्टली यूजर स्पेस को कर्नल से रिक्वेस्ट करना पड़ेगा कि भाई ऐसा ऐसा हार्डवेयर से मुझे काम कराना है तो आप प्लीज करवा दो ठीक है तो ये होता है ये आप क्या हो गया कर्नल स्पेस और यूजर स्पेस तो अब मैं थोड़ा डायग्राम्स के टर्म्स में बात करूं तो कुछ डायग्राम बनाने कोशिश करूं मैं तो यह होगा आपका यूजर स्पेस यह होगा आपका कर्नल और यहां पर कहीं होगा आपका हार्डवेयर ठीक है तो यह यूजर स्पेस और कर्नल मिलके तो आपका बनाएगा ऑपरेटिंग सिस्टम और कर्नल जो है कन इंक्ट करेगा हार्डवेयर से और यूजर स्वेस इंटरेक्ट करेगा कर्नल से तो भैया इस तरीके से थोड़ा सा आपका आर्किटेक्चर होता है इन जो दो कंपोनेंट हमने बोले कि पहला यूजर स्पेस और कर्नल स्पेस यह मेन कंपोनेंट होते हैं ओस के ओस इन दोनों से मिलके बना होता है ठीक है य इतना क्लियर हो गया चलिए आगे बढ़ते हैं थोड़ा अब इसका एक छोटा सा एग्जांपल हम ले लेते हैं एक एग्जांपल ले लेते हैं अगर मैं छोटी सी स्क्रिप्ट बनाऊ हेलो वर्ल्ड की डट एस ड एस एक शेल स्क्रिप्ट का एक एक्सटेंशन है बेसिक एक्सटेंशन है तो इसमें मैं कुछ नहीं कुछ हेलो वर्ल्ड इको हेलो वर्ड लिख देता हूं ठीक है हेलो वर्ल्ड प्रिंट होगा इसमें तो जब आप कमांड लाइन पर जाओगे टर्मिनल पर जाओगे और इसको एग्जीक्यूट करोगे डॉट स्ल हेलो वर्ल्ड तो क्या होगा सिंपली आप क्लिक करोगे क्लिक करने के बाद कुछ कुछ प्रोसेसिंग होगी और हेलो वर्ल्ड प्रिंट हो जाएगा तो जिस एरिया में जिस एरिया में सील आई में जिसको मैं बोल रहा हूं शल प जाके आप इसको रन करते हो उसको हम बोलते हैं यूजर स्पेस अब यूजर स्पेस कंप्यूटेशन के लिए क्योंकि जब भी हेलो वर्ल्ड प्रिंट हुआ होगा तो कुछ ना कुछ कंप्यूटेशन तो हुई होगी कंप्यूटेशन के लिए जाता है कर्नल के पास बोलता है कि भाई ऐसा ऐसा कुछ प्रिंट करना चाह रहा है यूजर तो प्रिंट करना चाह रहा है तो कुछ कंप्यूटेशन करनी है थोड़ी सी आप कर दो तो यह कर्नल जो है वो सीपीय से रिक्वेस्ट करेगा कुछ कंप्यूटेशन साइकिल्स की सीपीयू कंप्यूटेशन कर देगा और आपको कमांड लाइन पर जो आउटपुट की तरह हेलो वर्ल्ड लिखाई दे जाएगा तो ये कुछ एग्जांपल है इस तरीके से इंटरेक्ट करके काम चलता है छोटा सा एग्जांपल देने की कोशिश की मैंने आपको तो इतना पार्ट हमें क्लियर हो गया बढ़िया से ठीक है इतना पार्ट क्लियर है कमेंट में लिखो क्लियर है ठीक है थोड़ा आगे चलते हैं अब हम डिस्कस करते हैं फंक्शंस ऑफ कर्नल क्या है ठीक है अभी हमने जो देखा कि यूजर स्पेस और कनल स्पेस में जो अब तक हमने पढ़ा था ओ आपको थोड़ा सा हिंट लग रहा होगा कि सबसे इंपॉर्टेंट तो यार जो एटली बढ़िया काम कर रहा है जो एक्चुअली ओस टाइप का काम कर रहा है वो क्या है वो तो कर्नल ही है तो कर्नल का थोड़ा डबल क्लिक करते हैं कर्नल के बारे में सीखते हैं कि भाई कर्नल क्या है सॉरी कर्नल क्या है तो मैंने आपको बता ही दिया है फंक्शन ऑफ कर्नल फंक्शन क्या है भैया इसके फंक्शंस क्या है कर्नल के तो यार बेसिक फंक्शन जो है कर्नल के वो कुछ इस तरीके से हैं जैसे सबसे पहले मैं बोल देता हूं प्रोसेस मैनेजमेंट यही करता है प्रोसेस मैनेजमेंट यही करता है ठीक है अभी आप सीख लो इसकी जो थ्योरी है थोड़ी बहुत थोड़ी बहुत थ्योरी आपको आपके नोट्स में मिल जाएंगे ठीक है नोट्स हम नीचे प्रोवाइड करेंगे आपको डिस्क्रिप्शन में देख लेना बहुत बढ़िया नोट्स बना रखे हैं आपके मैंने खद बनाए हैं अपने हाथों से अपने हाथों से टाइप करके तो प्रोसेस मैनेजमेंट इसका पहला काम हुआ प्रोसेस मैनेजमेंट बहुत तीन चार वीडियो सुन रहे प्रोसेस मैनेजमेंट पढ़ेंगे इसको बढ़िया से ना पर मैं थोड़ा सा ब्रीफ कर देता हूं प्रोसेस मैनेजमेंट क्याक आता है प्रोसेस मैनेजमेंट में आता है आपका प्रोसेस क्रिएशन टर्मिनेशन यह सब आता है प्रोसेस को क्रिएट करना टर्मिनेट करना यह सब प्रोसेस मैनेजमेंट का एक पार्ट है ठीक है दूसरा प्रोसेस को शेड्यूल करना और थ्रेड्स को ड्यूल करना ठीक है प्रोसेसेस एंड थ्रेड्स को स्केड्यूल करना यह एक काम हो गया मतलब जो प्रोसेसेस आपके बहुत सारी पड़ी हुई है उसको कैसे कैसे स्केड्यूल करना है यूजर ने तो प्रोसेस बना दी यूजर का काम था व प्रोसेस बहुत सारी प्रोसेस डबल क्लिक डबल क्लिक करके एग्जीक्यूट कर दी अब उनको कैसे कैसे एग्जीक्यूट करवाना है एक्चुअली सीपीयू से जो हमने पढ़ा था मैक्सिमम यूटिलाइजेशन के साथ हाई प्रायरिटी जॉब भी आप पाए और प्रोसेस की स्टार्वेशन भी ना हो तो वो काम किसका है कर्नल का कर्नल के किस पार्ट का किस डिपार्टमेंट का ये काम है वो डिपार्टमेंट का नाम है प्रोसेस मैनेजमेंट ठीक है और जो कांटेक्ट स्विचिंग जैसा आपने कुछ पढ़ा था ना हमने कंटक्ट स्विचिंग कंटक्ट स्विचिंग टाइम शेयरिंग इस टाइप का काम भी कर्नल ही करता है कर्नल का य यही वाला डिपार्टमेंट करता है ठीक है और दूसरा प्रोसेस को सिंक्रोनाइज करना ठीक है प्रोसेस सिंक्रोनाइज करवाना ठीक है और प्रोसेस के बीच में कम्युनिकेशन करवाना प्रोसेस के बीच में कम्युनिकेशन का मतलब है प्रोसेस कम्युनिकेशन प्रोसेस कम्युनिकेशन य होता है कि मतलब दो प्रोसेस ना आपस में कम्युनिकेट कई बार उनको जरूरत पड़ती है कि मैं कम्युनिकेट करना उनको आपस में अभी जैसे हमने पढ़ा था जो दो प्रोसेस होती है कोई भी दो प्रोसेस होती है पव प2 वो आइसोलेटेड होती है आइसोलेटेड होती है मेमरी प्रोटेक्शन भी होती है उनमें यानी उन दोनों वो दोनों एकदम इंडिपेंडेंटली एग्जीक्यूट कर रही होती है है ना तो अब इंडिपेंडेंट एग्जीक्यूशन में कई बार कई बार वो इंस्टेंस मैं आपको बताऊंगा अभी आगे इसी वीडियो में कई बार हमें जरूरत पड़ती है कि दोनों को दोनों को आपस में कम्युनिकेट करना है दोनों को आपस में कुछ इंफॉर्मेशन शेयर करनी है जानना है कि हां यह भी एक्जिस्टेंस में थी मेमोरी में ठीक है इस पोजीशन में इस पॉइंट ये मैकेनिज्म भी कर्नल करवाता है ठीक है तो यह आपका कुछ एक काम हो गया कि प्रोसेस मैनेजमेंट जो है वो कर्नल ही करता है अब एक और बढ़िया काम जो कर्नल प्रोवाइड करता है वो है मेमोरी मैनेजमेंट बहुत जरूरी है बहुत बहुत बहुत जरूरी है मेमोरी मैनेजमेंट मेमोरी मैनेजमेंट क्या आता है यार आपके पास रम पड़ी है ठीक है रम एक 2 जीब की रम है उसके अंदर कैसे मेमोरी को एलोकेट करना है ठीक है एलोकेट करना है डी एलोकेट करना है ठीक है फ्री स्पेस की मैनेजमेंट कैसे करनी है फ्री स्पेस का मैनेजमेंट होता है यार देखो आप जब भी मेमोरी एलोकेट करते हो ठीक है अब आपने बहुत सारी मेमोरी एलोकेट कर ली कुछ प्रोसेसेस बीच-बीच में एग्जिट कर जाती है एग्जिट करने के बाद क्या होता है एग्जिट करने के बाद वो मेमोरी एरिया खाली होता जाता है अब ओस को पता होना चाहिए ठीक है पता होना चाहिए कि कौन-कौन सा एरिया जो खाली हो चुका है ठीक है वो काम कौन करता है वो काम कौन करता है वो काम भी कर्नल ही करता है कर्नल का मेमोरी मैनेजमेंट डिपार्टमेंट करता है मैनेज करके रखता है पूरा उसको देख के रखता है कौन-कौन सी फ्री स्पेस है और क्यों मैनेज करना पड़ेगा अब उसके बाद आपने अगर कोई नई जॉब एग्जीक्यूट कराई तो उसके लिए भी स्पेस चाहिए ना भाई तो इस तरीके से काम करता है वो ट्रैक रखता है बेसिकली फ्री स्पेस का ठीक है ये दो काम हुए आपके मेमोरी मैनेजमेंट आपने पढ़ा अभी और प्रोसेस मैनेजमेंट इन सबके बारे में डिटेल में ना हम डबल क्लिक करके सबको पढ़ेंगे ठीक है आगे इसमें कैसे कैसे क्वेश्चन बन सकते हैं बट ये मोटा-मोटा है कि भाई कर्नल के क्या-क्या काम है ये आपसे पूछ सकते हैं इंटरव्यू में क्वेश्चन तो इनको आपको ब्रीफ करना पड़ेगा ठीक है दूसरा एक और काम होता है फाइल मैनेजमेंट फाइल मैनेजमेंट ठीक है स्टोरेज मैनेजमेंट का एक काम है फाइल मैनेजमेंट इसमें क्या है फाइल मैनेजमेंट में क्या है आपको फाइल को क्रिएट करना डिलीट करना इस टाइप के काम यही करता है कर्नल ही करता है क्रिएट डिलीट फाइल्स डायरेक्टरीज की मैनेजमेंट ठीक है डायरेक्टरी की मैनेजमेंट डायरेक्टरी की मैनेजमेंट क्या होती है अब आप देखो जो एक फाइल होती है ना फाइल मैनेजर मैं बोलूं कि जो फाइल मैनेजमेंट है वो किस तरीके से वर्क करती है कि हमारे एक डिस्क के अंदर ऑपरेटिंग सिस्टम एक राक कल स्ट्रक्चर बनाता है ट्री जैसा स्ट्रक्चर बनाता है आपने पढ़ा ना बाइनरी ट्री एनरे ट्री तो इस तरीके स्ट्रक्चर बनाता है छोटा सा बोलू कि नक्स में किस तरह स्ट्रक्चर बना होता है आपकी रूट डायरेक्टरी होती है रूट मतलब डिस्क का जीरो पोजीशन ठीक है रूट डायरेक्टरी होती है उससे फिर आपकी सब डायरेक्टरी निकली होती है आपने अपने नाम से मान लो लक्ष्य नाम से एक फोल्डर है ठीक है इधर मान लो आपका रमेश नाम से फोल्डर है ऐसी अब लक्ष्य के अंदर हो सकता है और ओस नाम से एक फोल्डर हो इसके और एक और फोल्डर हो सकता है ए बी सीडी हो सकता है के अंदर य एक लक्ष्य डटी एक्सटी करके फाइल भी पड़ी हो सिमिलरली ऐसे सो ऑन तो इस तरीके से एक डायरेक्टरी स्ट्रक्चर पूरा ट्री की तरह स्ट्रक्चर आपका वो मेंटेन करता है अब बबर भैया आपको कुछ टाइम में ट्री भी पढ़ाएंगे तो उसकी इंप्लीमेंटेशन जो एक्चुअल रियल लाइफ इंप्लीमेंटेशन है वो देख लो यहां पे जो ट्री हम पढ़ते हैं वो आपको पता नहीं चलता होगा ट्री पढ़ते क्यों है हम ठीक है उसकी इंप्लीमेंटेशन यहां है देखो डायरेक्टरी स्ट्रक्चर मेंटेन करना अब ये इसलिए इजी होता है ट्री की तरह मेंटेन करना कि भाई आपको अगर कोई फाइल सर्च करनी है सर्च करनी है तो आप इसमें जाओ फिर इसमें जाकर सर्च कर लोगे इसमें जाकर सर्च कर लोगे इसमें जाक सर्च कर लोगे इस बेसिकली चीज मैने जबल रहती है ठीक है तो इस तरीके से कुछ आप अभी ट्री की इंप्लीमेंटेशन भी देख ली हमने और कैसे बेसिकली फाइल मैनेजमेंट डायरेक्टरी मैनेजमेंट जो होता है हमारा वो कैसे स्टोर करता है रा स्ट्रक्चर में फाइल्स को डायरेक्टरी को व हमने अभी देखा फाइल मैनेजमेंट भी इसका एक काम था उसके अलावा एक और काम जो मेरे दिमाग में आ रहा है व है आयो मैनेजमेंट अब यार आई मैनेजमेंट बड़ा इंपोर्टेंट काम है ठीक है बड़ा इंपोर्टेंट काम कैसे है ये कैसे है ये अब आपके पास ऑपरेटिंग सिस्टम होता है आप लैपटॉप या पीसी यूज कर रहे हो आप क्या चाहते हो आप ये तो नहीं चाहते कि डिस्क रम और आपका सीपीयू के साथ ही काम करता हू कई बार आपका मन करता है ऐसा करता हूं इसमें गेम कंट्रोलर ऐड कर लेता हूं अपना गेम खेलने है ना मुझे कंट्रोलर के साथ खेलना है या फिर कई बार मन करता है कि एक यूएसबी से आप दोस्त से मूवी लेके आए हो तो यूएसबी बोट डाल लू ठीक है तो इस टाइप की चीजें जो है वो कनली सपोर्ट करता है ही हार्डवेयर लेवल पर जाके इन सब चीजों को मैनेज कर रहा होता है कि आपने पेन ड्राइव जोड़ी उसको पता लगता है पेन ड्राइव जोड़ी आपको नोटिफाई करता है पेन ड्राइव जुड़ गई है फिर आपको पेनड्राइव एक्सेस करने का मेथड भी प्रोवाइड करता है माय कंप्यूटर में जाके तो यह सारा काम आईओ मैनेजमेंट का काम कौन कर रहा होता है वो कर रहा होता है आपका कर्नल ही ऑपरेटिंग सिस्टम का कर्नल पार्ट काम कर रहा होता है बेसिकली क्या कर रहा है वो मैनेज कर रहा है कंट्रोल कर रहा है सारे आई ऑपरेशंस को ठीक है मैनेजमेंट एंड कंट्रोल ंग ऑफ ऑल आयो डिवाइसेसपोर्ट प्रोवाइड कैसे करेगा कि कर्नल रीड करके उसको हार्डवेयर से रीड करने के बाद यूजर स्पेस में इंफॉर्मेशन भेजेगा यह देखो यहां पर एक डिवाइस ऐड हुआ है इसको आप यहां पर जाके एक्सेस कर सकते हो जीआई के थ्रू एक्सेस करना यह इनेबल करेगा आपको यूजर स्पेस आपका ठीक है तो ये आपका कुछ आयो मैनेजमेंट की कुछ चीजें हो गई और आयो मैनेजमेंट का एक तीन सबसे इंपोर्टेंट काम जो आई मैनेजमेंट के होते हैं वो एक काम होते है आपका एक तो स्पूलिंग स्पूलिंग यही देखता है ठीक है और आपका बफरिंग बफरिंग भी यही देखता है और एक और पार्ट हो गया आपका कैशिंग कैशिंग स्पूलिंग बफरिंग कैशिंग इस टाइप के काम भी यही करता है ये हम नेक्स्ट वीडियो में नेक्स्ट वीडियो में अलग से डिस्कस करेंगे एगजैक्टली डबल क्लिक करके एटली ये होता क्या है ठीक है तो यह चार काम यह चार काम आपके हो गए एक फंक्शन ऑफ कर्नल ठीक है अब फंक्शन ऑफ कर्नल तो हमें समझ आ गया कि भाई चार काम है प्रोसेस मैनेजमेंट इसका काम है मेमोरी मैनेजमेंट इसका काम है आयो मैनेजमेंट इसका काम है फाइल मैनेजमेंट इसका काम है अब हम देखते हैं यार एक कितने टाइप्स के कर्नल होते हैं ठीक है अलग-अलग टाइप्स के कर्नल है अवेलेबल हमारे पास ठीक है तो अगर हम टाइप्स के पास जाए टाइप्स ऑफ कर्नल के बारे में डिस्कस कर जाए तो बेसिकली या तीन टाइप के होते हैं तीन टाइप के होते हैं जिसमें की पहला टाइप है मोनोलिथिक कर्नल मोनोलिथिक कर्नल अय मोनोलिथिक कर्नल क्या है मोनोलिथिक का मतलब होता है कि सारे फंक्शन जो होते है ना करनल के वो एक ही जगह पर होते है यानी कि सारे जितने चार फंक्शन हमने पढ़े वो चारों के चारों फंक्शन कर्नल ही करेगा सब कुछ कर्नल के अंदर सेंट्रलाइज पड़ा है सब कुछ कर्नल ही करेगा ठीक है इस टाइप के कर्नल को बोलते हैं मोनोलिथिक कर्नल अगर मैं थोड़ा डायग्राम के हिसाब से डायग्राम के हिसाब से आपको इसको समझाना चाहूं तो इसमें मैं बोल सकता हूं कि आपके पास जो यह यह हार्डवेयर बना देते हैं यह आपका यूजर स्पेस होता है यह कर्नल होता है यह हार्डवेयर होता है जो चारों के चारों काम थे प्रोसेस मैनेजमेंट फाइल मैनेजमेंट मेमोरी मैनेजमेंट और आयो मैनेजमेंट यह चारों के चारों काम कर्नल के अंदर ही प्रेजेंट होते हैं इसको हम बोलते हैं मोनोलिथिक कर्नल ठीक है सबसे ओल्डेस्ट कर्नल का टाइप है यह सबसे पहले इसी टाइप के कनल आते थे ठीक है अब ओस के जो चारों के चारों काम भी बोलते हैं हम यह जो चारों के चारों काम है यह सब इसी के अंदर पड़े हुए पूरा मिलक हमारा ओस बनेगा इसको मोनोलिथिक कर्नल बोल रहे हैं अब इसकी क्या क्या स्पेशलिटी होती है इसके बारे में खास क्या है इसकी सबसे एडवांटेज मैं बोलू तो क्योंकि चारों के चारों प्रोसेस चारों के चारों काम जो है वो कर्नल के अंदर ही प्रेजेंट है या चारों मॉड्यूल कर्नल के अंदर प्रेजेंट है तो चारों मॉड्यूल जो आपस में जो बातें करते हैं ना जो कम्युनिकेशन चलती है इनकी आपस में वो बहुत ही एफिशिएंट होती है फास्ट होती है ठीक है वो कैसे एक छोटा सा एग्जांपल ल एक चीज होती है हमारी की यूजर मोड कर्नल मोड ठीक है यूजर मोड अब कर्नल मोड ये नई चीज बोल दे भया आपने यूजर मोड और कर्नल मोड ये बेसिकली क्या होता है कि जब भी हमारा काम हो रहा होता है ना ये यूजर मोड कनल मोड दो अलग-अलग बेसिकली ओस के अंदर की दो अलग-अलग दुनिया है ठीक है कर्नल मोड जो है वो आपको हार्डवेयर एक्सेस उसके पास बहुत ज्यादा है ठीक है एकदम डायरेक्ट हार्डवेयर एक्सेस है यूजर मोड थोड़ा हटके है वो यूजर से इंटरेक्ट करता है तो इसको थोड़ा सा ना ओस सेपरेट रखता है तो जब भी सीपीयू कंप्यूटेशन तो सीपीयू ही करेगा जब भी सीपीयू यूजर मोड में होता है तो वो सिर्फ यूजर मोड का काम कर रहा होता है जब वो कर्नल मोड में जाता आता है उसे कर्नल मोड का काम करता है और इसको हम जो यूजर मोड और कर्नल मोड के बीच में स्विच है वो हम सॉफ्टवेयर इंटरप्ट के थ्रू करते हैं अब सॉफ्टवेयर इंटरप्ट क्या होता है सॉफ्टवेयर इंटरप्ट क्या होता है बढ़िया टर्म निकली सॉफ्टवेयर इंटरप्ट बेसिकली इंटरप्ट क्या होता है ना कि जब भी आप ओएस के अंदर काम कर रहे हो ठीक है कुछ काम चल रहा है आपको असंक्रामक अभी इसको हटा ये कर ठीक है जैसे मैं बोलूं कि अगर आप बैठ के पढ़ रहे हो एकदम से पापा आते हैं पापा आके बोलते हैं आपको सुन सुन सुन ये सारा काम छोड़ उठके अभी ये करने चला जा ठीक है तो एक इंटरप्ट है बीच में आपको इंटरप्शन मिली है ठीक है तो इसी टाइप के इंटरप्ट्स यूज होते हैं आपके ओएस के अंदर जिसमें हार्डवेयर इंटरप्ट भी होता है हार्डवेयर इंटरप्ट कुछ इस तरीके से होगा अब मान लो एकदम से आपका सीपीयू खराब हो गया सीपीयू नहीं रम एकदम से चली गई तो रम एक जो आपका रैम होगा एक इंटरप्ट सेंड करेगा इंटरप्ट वो इंटरप्ट क्या करेगा वो इंटरप्ट जाके एकदम से पूरे ओस को बता बता देगा कि ये रम जो है ये खराब हो गई है या फिर इसका ये पार्ट करप्ट हो गया है तो इस तरीके से अब थोड़ा एग्जीक्यूशन को रोकना पड़ेगा इस टाइप का कुछ कुछ होगा तो इसको बोलते हैं हम इंटरप्ट्स इंटरप्ट्स हो गया बीच में प्रोसेस को बीच में एकदम से उसको नोटिफाई करना ठीक है इस टाइप के काम को बोलते हैं इंटरप्ट तो सॉफ्टवेयर इंटरप्ट क्या होता है सॉफ्टवेयर इंटरप्ट होता है इंटरप्ट जनरेट बाय सम सॉफ्टवेयर मींस ठीक है ये हार्डवेयर के द्वारा नहीं बनाया गया ये ओस खुद ही एक इंटरप्ट जनरेट कर रहा है तो यूजर मोड और कर्नल मोड के बीच में ना हम स्विच करते रहते हैं बेसिकली स्विचिंग चलती है कि कभी यूजर मोड में काम चल रहा है कभी कर्नल मोड में काम कर रहा है अब इसका एक एग्जांपल दूं अगर मैं यूजर मोड कर्नल मोड का तो मैं बोल सकता हूं जब आप सील आई में कमांड लिख रहे हो एम के डी आई आर ठीक है एक डायरेक्टरी की कमांड होती है एक डायरेक्टरी न्यू फोल्डर बनता है इससे तो जब आप कमांड लिख रहे हो तो आप यूजर मोड में हो एम के डी आई आर आपने लिखा आप यूजर मोड में हो अभी ठीक है आप जैसे ही उसमें एंटर प्रेस करोगे एंटर प्रेस करने के बाद क्या होगा ठीक है एंटर प्रेस करने के बाद क्या होगा एंटर प्रेस करने के बाद अब ये एमकेडी आईआर को डिकोड करेगा डिकोड करने के बाद देखेगा एक न्यू फोल्डर बनाना है अब न्यू फोल्डर बनाना का काम किसका है वह काम है आपका फाइल मैनेजमेंट डिपार्टमेंट का फाइल मैनेजमेंट के पास जाएगा फाइल मैनेजमेंट के पास जाने के लिए अब वो कर्नल मोड में स्विच हो जाएगा के एम कर्नल मोड में स्विच हो जाएगा और कर्नल मोड के फाइल मैनेजमेंट वाले पार्ट को फाइल मैनेजमेंट वाले बेसिकली डिपार्टमेंट को व जाएगा और बोलेगा कि भाई एक डायरेक्ट्रीएंट्री थोड़ा सा कि यूजर मोड और कनल मोड के स्विच कैसे होता है जैसे ही डायरेक्टरी बन जाएगी तो इसका एक फीडबैक जाएगा कि हां डायरेक्टरी बन चुकी है मेकिंग ऑफ डायरेक्टरी हैज बीन सक्सेसफुल तो ये बताने के लिए वो रिटर्न करेगा और फिर वापस वो बेसिकली कर्नल मोड में स्विच हो जाएगा तो आपने देखा कैसे हम पहले यूजर मोड में थे यूजर मोड से कर्नल मोड में स्विच हुए फिर कर्नल ने कुछ अपना काम किया फिर कर्नल मोड में काम होने के बाद वापस हम यूजर मोड में स्विच हो गए तो इस स्विचिंग को बोलते हैं हम यूजर मोड एंड कर्नल मोड स्विचिंग ये बेसिक होता रहता है आप जैसे कुछ कमांड देते हो कनल को जो चीज करनी होती है तो आप कनल मोड में स्विच हो जाते हो कर्नल कुछ उसको कंप्लीट कर देता है तो यूजर मोड में स्विच हो जाते हो तो बेसिकली इस तरीके से यूजर कनल मोड का स्विच चलता रहता है होता किस तरीके से ये सॉफ्टवेयर इंटरप्ट के थ्रू होता है ठीक है कोई आपसे पूछे यूजर मोड कनर मोड तो होता है ये बेसिकली नोटिफाई कैसे होता है ये नोटिफाई होता है आप सॉफ्टवेयर इंटरप्टस के थ्रू ओके तो अब मोनोलिथिक कलन का हमने एक बेसिकली सबसे बड़ा जो एडवांटेज था वोय देखा कि क्योंकि सब कुछ यहीं पर पड़ा हुआ है तो आपस में बात करने का ओवरहेड नहीं है कोई है ना सब एक ही स्पेस में पड़ा हुआ है तो आपस में फास्ट कम्युनिकेशन हो सकता है ठीक है तो इसका एक एडवांटेज जो मैं बोलूं एडवांटेज जो मैं बोलूं वो पहला यही है कि फास्ट कम्युनिकेशन ठीक है फास्ट कम्युनिकेशन है बिटवीन बेसिकली बोल सकता हूं डिफरेंट कंपोनेंट्स ऑ कर्नल ठीक है फास्ट कम्युनिकेशन है अब फास्ट कम्युनिकेशन तो है ठीक है अब चीजें यहां पे थोड़ी सी सेंट्रलाइज्ड है सब कुछ एक ही उसमें पड़ा हुआ इसका एक मतलब बहुत बड़ा नुकसान भी ये है कि कर्नल बल्की होगा कर्नल जो है बल्की होगा बहुत सारा कोड कर्नल के अंदर ही पड़ा होगा ठीक है ये किका बेसिकली मैं डिसएडवांटेज बोल सकता हूं ठीक है एक डिसएडवांटेज हो सकती है कि ये लेस रिलायबल है रिलायबिलिटी बहुत मैटर करती है होगा इसमें रिलायबिलिटी कैसे कम है अगर मान लो मैं मान लेता हूं जो आपका बेसिकली मेमोरी मैनेजमेंट जो है वो कंपोनेंट फट गया किसी वजह से अब वो फट गया तो सारा कर्नल ही फट जाएगा क्योंकि सारा हाईली कपल्ड है आपस में जुड़ा हुआ बेसिकली सब एक ही जगह तो इस चक्कर में अगर एक भी कंपोनेंट गया तो बाकी सारे कंपोनेंट भी उड़ जाएंगे कर्नल उड़ जाएगा तो बेसिकली लेस रिलायबल बोल सकता हूं इसको ठीक है तो य लेस रिलायबल भी है अब इसका एक एग्जांपल जो है इसका एग्जांपल जो है एग्जांपल जो है व है एक लिनक्स नक्स सब जानते हैं हम यूनिक्स बस इसी का एग्जांपल है एम एस ड ये तीनों एग्जांपल आपके मोनोलिथिक कर्नल के है तो मोनोलिथिक कर्नल तो जी हमें समझ आ गया ठीक है अब अगले पार्ट पर चलते हैं दूसरा पार्ट है माइक्रो कर्नल माइक्रो कर्नल अभी माइक्रो कर्नल क्या होता है इसके अंदर से मेजर फंक्शनालिस हार्डवे इंटरेक्शन जहां पर सबसे ज्यादा होती है उ मेजर बेसिकली मेजर कंपोनेंट या मेजर फंक्शंस को ही हम कर्नल के अंदर रखते हैं बाकी सारे फंक्शन आपके यूजर स्पेस में ही इंप्लीमेंट कर देते हैं ठीक है यूजर स्पेस में इंप्लीमेंट कर देते हैं इसका अगर मैं डायग्राम बनाने की कोशिश करूं तो कुछ इस तरीके से होगा यह जो आपका यूजर स्पेस है और ये कर्नल स्पेस है ठीक है यूजर स्पेस कर्नल स्पेस के अंदर हमारे पास जो सबसे कोर फंक्शनालिस को मेमोरी मैनेजमेंट बेसिकली रम मैनेजमेंट और प्रोसेस मैनेजमेंट ये दोनों मैं इसमें डाल देता हूं मेमोरी मैनेजमेंट से क्या बेंज होगा ये रम से रिलेटेड है ये रिलेटेड है सीपीयू से तो ये जो कोर फंक्शनैलिटी है ना हमने इसको ही कर्नल में डाल दिया बस और बाकी जो फंक्शन आपकी दो फंक्शनैलिटी बची हुई थी फाइल मैनेजमेंट की और आ मैनेजमेंट की वो मैंने इसमें रख दी ठीक है तो मेमोरी मैनेजमेंट और प्रोसेस मैनेजमेंट मैंने केएस में रख दिया और यूएस के अंदर मैंने क्या रखा फाइल मैनेजमेंट और आई मैनेजमेंट ठीक है तो इस तरीके से मैंने कुछ बायफर केशन कर दी अब इससे मुझे क्या फायदा हुआ अब यहां पर जो दो ड्रॉबैक थी सबसे पहले की एक तो बल्क हो रहा था अब मैं बोल सकता हूं कि जो एडवांटेज के अंदर जो होगा वो कर्नर जो होगा वो लेस बल्की होगा ठीक है लेस बल्की होगा स्मॉल इन साइज बोल सकता हूं और मोर रिलायबल भी होगा क्या मैं बोल सकता हूं मोर रिलायबल भी होगा कैसे मोर रिलायबल होगा मोर रिलायबल इस तरीके से होगा देखो अब अगर मैं मैंने चांसेस थोड़े कम कर दिए ना चीज फटने के चीज फटने के चांसेस थोड़े कम कर दिए मैंने कैसे कि आपका फाइल मैनेजमेंट और आई मैनेजमेंट मैंने उठा के यहां डाल दिया अगर फाइल मैनेजमेंट और आ मैनेजमेंट में कोई क्रैश आ है किसी वजह से कोई करप्शन आता है तो कर्नल चलता रहेगा कर्नल चलता रहेगा क्योंकि मेन फंक्शन मैंने यहां डाली हुई है बाकी कुछ यहां प तो मैंने अपना रिस्क थोड़ा सा कम कर दिया ना रिस्क कम हो गया तो थोड़ा मैं बोल सकता हूं चीज रिलायबल हो गई है ठीक है रिलायबल ज्यादा होगा तो स्टेबल भी ज्यादा होगा रिलायबल ज्यादा होगा तो स्टेबल ज्यादा होगा ना चीज फटें कम तो स्टेबल भी ज्यादा रहेंगी ठीक है और बट इसकी प्रॉब्लम यह है कि इसकी परफॉर्मेंस में इंपैक्ट आएगा अगर मैं डिसएडवांटेज की बात करूं तो जो परफॉर्मेंस है वो लेस होगी भाई अब परस कैसे कम होगी परफॉर्मेंस इस तरीके से कम होगी क क्योंकि अब देखो अभी हमने पढ़ा था यूजर मोड और कर्नल मोड में चीज स्विच करती रहती है अब एक छोटा सा एग्जांपल लो कि अब मान लो कोई प्रोसेस चल रही है प्रोसेस चल रही है और प्रोसेस शुरू होती है हमारी यूजर मोड में यूजर मोड में प्रोसेस शुरू हुई यूजर मोड में जब प्रोसेस शुरू हुई तो प्रोसेस सबसे पहले क्या करेगी प्रोसेस मैनेजमेंट के पास जाएगी उसको एलोकेट करना है हमें उसको बाकी सारे रिसोर्सेस प्रोवाइड करने हैं ठीक है फिर उसको मेमोरी मैनेजमेंट के पास भेजेंगे उसको मेमोरी भी चाहिए तो इस केस में वो सबसे पहले कहां पे थी सबसे पहले प्रोसेस जो थी वो यूजर स्पेस में थी ठीक है फिर वो कर्नल स्पेस में स्विच हो गई अब कर्नल स्पेस से अब मान लो प्रोसेस चल रही है प्रोसेस चल रही है उसको आईओ करने को आया कि भाई मुझे यूएसबी से कुछ रीड करना है तो आईओ के लिए अब वापस से वो कर्नल मोड से यूजर मोड में स्विच होएगी आईओ करने के लिए अब मान लो आईओ हो गया आपका उसने य यूजर मोड में स्विच हो गया अब एकदम से प्रोसेस को क्या करना पड़ा आओ की जगह वो वापस से मेमोरी से एलोकेशन डी एलोकेशन करना होता उसको तो वापस वो मेमोरी मैनेजमेंट प स्विच हो गया तो फिर से बेसिकली वो यूजर से वापस से कर्नल स्पेस में आ जाएगा अब वापस से कर्नल स्पेस में आने के बाद अब बोल देता हूं मैं कि कर्नल स्पेस में उसको मेमोरी मिल गई मेमोरी मिलने के बाद बोला कि उसके अंदर प्रोसेस के अंदर कमांड थी कि उसको कहीं पर जाके फाइल राइट करनी थी फाइल राइट करने के लिए वो किसके पास जाएगा व फाइल मैनेजमेंट के पास जाएगा फाइल मैनेजमेंट प जाएगा जो मेमोरी से फिर वापस से वो यूजर्स मोड में स्विच हो जाएगा फिर से वो यूजर मोड में स्विच हो गया अब आप ध्यान से देखो क्या हो रहा है मैं यूजर मोड में हूं फ कनल मोड में हूं फिर यूजर मोड में हूं फिर कनल मोड में फिर यूजर मोड अब यहां प ओवरहेड आ रहा है बारबार बारबार आपको स्विच करना पड़ रहा है आपको यूजर मोड में रहते हो कनल मोड में यूजर मोड में करन अब इस चक्कर में जो ओवरहेड है स्विचिंग का ओवरहेड है ये बड़ा बेसिकली बल्की होता है टाइम लेता है ये दोनों सेपरेटेड स्पेसेस है यूजर मोड और कर्नल मोड ठीक है कर्नल मोड और यूजर मोड में स्विच में टाइम लगता है आपको बेसिकली इसमें भी एक टाइप की कांटेक्ट स्विचिंग करनी पड़ती है तो इस चक्कर में आपने ओवरहेड को इंक्रीज कर दिया ओवरहेड क्या होता है बेसिकली बार-बार आपको स्विच करना पड़ रहा है कॉस्ट होती है हर स्विचिंग की कॉस्ट होती है कॉस्ट को इंक्रीज करे जा रहे हो तो अगर ऐसा सिनेरियो बनता है तो मैं बोल सकता हूं ना परफॉर्मेंस तो कमा आएगी ना भैया तो कर्नल बेसिकली माइक्रो कर्नल के अंदर क्या हुआ आपकी परफॉर्मेंस जो है वो स्लो हो गई ओवरहेड आ गया ठीक है ओवरहेड आ गया यूजर मोड और कर्नल मोड के बीच में अब इस चक्कर में क्या हुआ कि भाई देखो अभी स्टार्टिंग में लग रहा था किई लेस बल्की है मोर रिलायबल है स्टेबल भी है बट इन सब के टर्म में आप चाहते हो कि बल्की कम हो रिलायबल ज्यादा हो बट आप क्या चाहोगे कि परफॉर्मेंस भी कम हो नहीं चाहोगे ना परफॉर्मेंस कम हो बिल्कुल भी नहीं चाहोगे तो इस केस में अब ये दिक्कत हुई कि यहां तक तो सब ठीक था माइक्रो कर्नल हमने पढ़ लिया है अब हमें समझ नहीं आ रहा है माइक्रो कर्नल अच्छा है या मोनोलिथिक कर्नल अच्छा है हमें बिल्कुल समझ नहीं आ रहा है तो इसका एक नेक्स्ट पार्ट भी होता है बट उस नेक्स्ट पार्ट प पहुंचने से पहले इसका एक एग्जांपल देख लेते हैं किस टाइप के एग्जांपल है बेसिकली इसका एक एग्जांपल होता है आपका ए4 लिनक्स नक् का एक टाइप है इस ए4 नक् इसका एक एग्जांपल है सिन ओस सिन ओस मेरे ख्याल से बहुतों को पता होगा किसीने दिमाग में आ रहा है मेरे इंटरव्यू क्वेश्चन इंटरव्यू क्वेश्चन जो यूजर मोड और कर्नल मोड में दो प्रोसेसेस चल रही होती है यूजर मोड में अलग से प्रोसेस चल रही है फाइल मैनेजमेंट और आपका कर्नल मोड के अंदर मेमोरी मैनेजमेंट चल रहा है तो इनके बीच में आपका प्रोसेस बेसिकली कम्युनिकेशन कैसे होता है ठीक है तो एक क्वेश्चन बनता है कि यूजर मोड एंड कर्नल मोड के बीच में कम्युनिकेशन कैसे होता है हमारे लो कम्युनिकेट करना पड़े फाइल मैनेजमेंट की जो प्रोसेस है उसको कम्युनिकेट करना है आपकी मेमोरी मैनेजमेंट की प्रोसेस से तो वो कैसे कम्युनिकेशन एस्टेब्लिश करेगा बीच में इसका एक मेथड होता है जो ओएस ही प्रोवाइड करता है ओस का प्रोसेस मैनेजमेंट वाला पार्ट प्रोवाइड करता है उसको मैं बोलता हूं आईपीसी इंटर प्रोसेस कम्युनिकेशन ठीक है अभी इंटर प्रोसेस कम्युनिकेशन क्या होता है इंटर प्रोसेस कम्युनिकेशन होता है अब देखो अभी तक हमने पढ़ा कि जो दो प्रोसेस होती है ना दो प्रोसेस आपस में इंडिपेंडेंटली आइसोलेशन के साथ आइसोलेशन के साथ हमारी एग्जीक्यूट हो रही होती है तो दोनों के रिसोर्सेस अलग है मेमरी स्पेस अलग है तो दोनों के लिए वो मेमोरी में एजिस्ट नहीं करती दोनों इंडिपेंडेंटली एग्जीक्यूट कर रही है बट कुछ टाइम जैसे अभी मैंने बोला कि यूजर मोड और कनल की जो प्रोसेसेस है आपस में उनको कई बार कम्युनिकेट करना पड़ता है तो कम्युनिकेशन कैसे होगी उसका एक मेथड है आईपीसी के द्वारा व कम्युनिकेशन होग आईपीसी के द्वारा आईपीसी क्या है इंटर प्रोसेस कम्युनिकेशन इसमें क्या होता है दो प्रो अब मैं एग्जांपल लेता हूं मान लो य पव प्रोसेस है यह पट प्रोसेस है यह मान लो यूजर मोड में चल रही है और यह मान लो कर्नल के अंदर कर्नल मोड में चल रही है य आपस में इंटरेक्ट करना चाह रही है तो इसका इंटरेक्ट का एक मेथड होता है सबसे पहला मेथड होता है शेड मेमोरी शेयर्ड मेमोरी शेड मेमोरी क्या मेथड है शेयर्ड मेमोरी में क्या है कि एक बढ़िया सा मैं इसका मेथड सोच सकता हूं कि मैं क्या करता हूं एक बीच में एक मेमोरी रख लेता हूं मेमोरी का ब्लॉक ठीक है अब मैं क्या करूंगा कि p1 को मान लो p2 से कुछ कम्युनिकेट करना है p1 को p1 को मान लो कोई रिजल्ट है वो कम्युनिकेट करके डाटा लिखना चाह रहा है यहां पे ठीक है तो वो कम्युनिकेट करके डाटा p1 ने मेमोरी स्पेस पे लिख दिया यहां पे मान लो इसने लिख दिया 1 2 3 1 23 चाहिए था p2 को 1 23 लिख दिया अब p1 पहले लिख देगा p1 सक्सेस करेगा p1 लिखने के बाद p2 क्या करेगा आएगा p2 रीड करेगा इसको कि 1 2 3 उसे मिल गया p2 रीड कर लेगा तो ऐसे एक शेयर्ड मेमोरी के थ्रू बोल सकता हूं ना मैं कि एक शेयर्ड मेमोरी के थ्रू मैंने दोनों के बीच में मैसेज को पास कर दिया जो बात करना चाह रहे थे उस कम्युनिकेशन को मैंने एस्टेब्लिश कर दिया तो यह हो गया पहला आपका शेयर्ड मेमोरी का मेथड दूसरा मेथड जो होता है आपका वो होता है मैसेज पासिंग अब मैसेज पासिंग क्या होता है मैसेज पासिंग होता है कि मैं क्या करता हूं ओस जो है आपको एक मेथड कुछ मेथड प्रोवाइड करता है कुछ कॉल्स प्रोवाइड करता है फंक्शन प्रोवाइड करता है कि आप दो प्रोसेसेस के बीच में उन कॉल्स को हम सिस्टम कॉल्स बोलते हैं सिस्टम कॉल्स के बारे में आगे डिटेल में हम पढ़ेंगे अभी तो आप दो प्रोसेस के बीच में अगर आपको बात करनी है तो उसका एक मेथड है कि आप मैसेज पासिंग कर सकते हो मैसेज पासिंग क्या होता है डायरेक्टली ना हम क्या करते हैं एक लॉजिकल पाइप एस्टेब्लिश करते हैं इन दोनों के बीच में ठीक है असली कोई लोहे की पाइप नहीं होती है ठीक है नॉर्मल एक बेसिकली एक चैनल एक चैनल बना दिया हमने बात करने का जरिया बना दिया और उस पाइप के थ्रू हम इनको कम्युनिकेट कराते हैं यहां से कम्युनिकेशन एस्टेब्लिश होती है कम्युनिकेशन एस्टेब्लिश करने के कुछ प्रोटोकॉल्स होते हैं कुछ कॉल्स होती हैं ठीक है वो यूज होती है सीधा ही कुछ ऐसे ही नहीं कि कोई भी आपस में कम्युनिकेट कर लेगा एक प्रोटोकॉल एक पॉलिसी के थ्रू ये करते हैं ठीक है और कुछ सिस्टम कॉल्स का यूज करते हैं इस तरीके से मैसेज पासिंग के थ्रू भी हम दो प्रोसेसस के बीच में बात कर सकते हैं तो आपसे कोई पूछेगा कि अगर कोई प्रोसेस यूजर स्पेस में रन कर रही है और कोई प्रोसेस कर्नल स्पेस में रन कर रही है बेसिकली दोनों के बीच में कम्युनिकेशन एस्टेब्लिश कैसे होगा तो कम्युनिकेशन एस्टेब्लिश करने का मेथड का आंसर आप बताओगे कि इंटर प्रोसेस कम्युनिकेशन के थ होगा इंटर प्रोसेस कम्युनिकेशन दो तरीके से हो सकती है आप शेयर्ड मेमोरी के थ्रू कर सकते हो और मैसेज पासिंग के थ्रू कर सकते हो दोनों ही आपके जो ये मेथड है सपोर्टेड होते हैं अलग-अलग सिनेरियो में दोनों मेथड यूज होते हैं ठीक है तो ये तो आपका एक हो गया अब हम कंटिन्यू करते हैं अभी हमने दो कनल के टाइप पढ़े थे मोनोलिथिक और माइक्रो कनल हम डिसाइड नहीं कर पा रहे थे दोनों में से बढ़िया कौन सा है तीसरा कनल अब यार जब भी ऐसा होता है ना कि दो एक्सट्रीम चीजें है हमारे पास दो एक्सट्रीम केसेस हैं किसी में कुछ क्वालिटीज हैं और किसी में कुछ क्वालिटीज है किसी में कुछ क्वालिटीज हैं इसकी एडवांटेज जो है वो इसके अंदर नहीं है और इसकी एडवांटेज इसके अंदर नहीं है इस टाइप का कुछ सिनेरियो बन रहा था राइट अभी मोनोलिथिक और माइक्रो के अंदर तो इसको हम सॉल्व करने का ना सबसे आसान तरीका होता है दोनों को ना मिला दो सबसे आसान तरीका है दोनों को मिला दो उसकी अच्छाई ले लो इसकी भी अच्छाई ले लो थोड़ी-थोड़ी बुराई भी आई जाएंगी ब छोटी-छोटी अाई ले लो अच्छाई लेने के बाद इनको जो मर्ज कर दो और एक हाइब्रिड सिस्टम बना दो तीसरा टाइप है आपका हाइब्रिड कर्नल अभी हाइब्रिड कर्नल क्या होता है हाइब्रिड कर्नल होता है इसमें दोनों दोनों वर्ल्ड के एडवांटेज है इसमें माइक्रो कर्नल की एडवांटेज है मोनोलिथिक की एडवांटेज है ठीक है किस तरीके से एकम कंबाइंड अप्रोच कंबाइंड अप्रोच लेंगे व कंबाइन अप्रोच किस तरीके से होगी कि हाइब्रिड के अंदर हम हम क्या करेंगे यूजर स्पेस के अंदर यूजर स्पेस के अंदर हम आपका एक तो फाइल मैनेजमेंट हां तो यूजर स्पेस के अंदर हम फाइल मैनेजमेंट वाला कंपोनेंट रख देते हैं बस ठीक है और बाकी सारा कनल के अंदर डाल देते ठीक है बाकी सारा हम कर्नल के अंदर डाल देंगे बाकी सारा में क्या क्या बचा प्रोसेस प्रोसेस मैनेजमेंट आपका और मेमोरी मैनेजमेंट और आयो मैनेजमेंट तो अभी तक हमने प्रोसेस और मेमोरी मैनेजमेंट ही कर्नल के अंदर डाला था माइक्रो के अंदर अपने मैनेजमेंट उठा के यहां पर डाल दिया ठीक है और फाइल मैनेजमेंट जैसी ही ऊपर रखी हुई है ठीक है अब इस चीज को हम क्या बोलते हैं एक कंबाइंड अप्रोच ले ली मैंने ठीक है अब एक कंबाइंड अप्रोच हो गई ये आपका यूजर स्पेस है ये आपका कर्नल स्पेस है अब इससे क्या फायदा मिला मुझे कि अब कोई एक ही पार्ट वहां पे है फाइल मैनेजमेंट के अंदर ठीक है एक ही पार्ट फाइल मेजरमेंट के अंदर है तो जो यूजर मोड कनल मोड के बीच में जो स्विचिंग करके ओवरहेड आ रहा था वो थोड़ा सा कम हो जाएगा बोल सकता हूं मैं थोड़ा सा कम हो जाएगा ठीक है और इससे क्या हुआ स्पीड भी इंक्रीज होही जाएगी ठीक है मतलब हमने गुड्स ऑफ दोनों वर्ल्ड रख लिए थोड़ी-थोड़ी इंप्रूवमेंट करके एक हाइब्रिड अप्रोच बनाने की कोशिश करी थोड़ा डिजाइन को अच्छा कर दिया ठीक है और इससे थोड़ी सी स्टेबिलिटी भी इंक्रीज हो जाएगी ठीक है अब थोड़े से लूप होल्स तो हर जगह होते हैं आप बोल सकते हो कि अगर मान लो आयो मैनेजमेंट फट गया तब तो कर्नल फट ही जाएगा तो वो तो यार कंप्यूटर प हैंग होता ही है फटता तो है ही तो हमने थोड़ा ट्राई किया कि थोड़ा सा दोनों वर्ल्ड्स के एडवांटेज को हम ले पाएं और एक हाइब्रिड अप्रोच बना पाए ठीक है और इस तरीके से ऐसे ही चलते हैं और एक लेस ओवरहेड भी यहां पर थोड़े कम हो जाएंगे थोड़े एग्जांपल देख लेते हैं इसमें एग्जांपल आपका होगा मै ओ ठीक है और आपका विंडोज विंडोज एंटी विंडोज एटी बोलते 7 प्लस को ना सबको विंडोज एटी ही बोलते हैं ठीक है तो आप देखो कि दोनों हम सबसे जो आपको मोनोलिथिक कर्नल था उसकी एडवांटेज और माइक्रो कन के एडवांटेज दोनों को उठा के हमने यहां डाल दिया और आजकल जो हम ये मैक और विंडोज सबसे ज्यादा यूज करते हैं ये जो ड़ी हैं हमारे जो मार्केट लीडर्स हैं ये यही अप्रोच का यूज कर रहे हैं ठीक है और दो और कर्नल होते हैं हमारे दो और कर्नल होते हैं नैनो एंड एक्सो कर्नल नैनो एंड एक्सो कर्नल के बारे में ये कुछ ज्यादा इंपॉर्टेंट नहीं है इंटरव्यू पॉइंट ऑफ व्यू से बट आप इसके बारे में फिर भी आप मैं आपको सजेस्ट करूंगा आप इसको जाके आपका होमवर्क है ठीक है आप इसको जाके थोड़ा सा डिटेल में पढ़ने की कोशिश करो थोड़ा अंडरस्टैंडिंग ले लेने की कोशिश करो आपको नहीं समझ आएगा तो वीडियो बना देंगे इस पे भी ठीक है तो आज के लिए इतना ही मेरे ख्याल से अगले उसमें हम थोड़ा सा और इसमें डिटेल में घुस सिस्टम कॉल्स के बारे में पढ़ेंगे ठीक है कि किस तरीके से यूजर स्पेस कर्नल स्पेस से इंटरेक्ट करता है इसके बारे में हम नेक्स्ट वीडियो में पढ़ने वाले हैं ठीक है तो आज के लिए इतना ही इस वीडियो के लिए इतना ही कैसी लगी आपको यह वीडियो आप कमेंट सेक्शन में बताना जरूर ठीक है तो चलो नोट्स पे नजर डाल लेते हैं लेक्चर फोर के नोट्स आपके बना दिए हमने जिसमें कि सबसे पहले हमने क्या पढ़ा था हमने पढ़ा था यूजर स्पेस यूजर स्पेस के बाद हमने पढ़ा कर्नल यूजर स्पेस में क्या-क्या आता है सीएल आई जीआई यूजर स्पेस में आपके एप्लीकेशंस रन होती हैं यूजर यूजर स्पेस में ही काम कर रहा होता है कर्नल होता है कर्नल जो होता है व हर्ट होता है ठीक है वेरी फर्स्ट पार्ट ऑफ ओस टू लोड ऑन स्टार्ट अप ये नई चीज लिखी है हमने इसका मतलब यह है कि जब भी हम ओस को स्टार्ट करते हैं सबसे पहले स्टार्ट जो ओस का सबसे पहला पॉइंट सबसे पहला ओस का कंपोनेंट जो ऑन होता है वो आपका कर्नल ही होता है ठीक है उसके बाद हमने देखा शेल क्या होता है एक सीआई का एक बेसिकली इंप्लीमेंटेशन है सीआई की जिसको हम कमांड लाइन इंटरप्रेटर भी कहते हैं ट सिस्टम यहां पे कमांड रिसीव करता है यूजर से ठीक है फिर हमने पढ़ा कि फंक्शंस क्या है कर्नल के बड़ा इंपोर्टेंट टॉपिक है फंक्शंस कर्नल के क्या-क्या होते हैं इसमें सबसे पहले प्रोसेस मैनेजमेंट है प्रोसेस मैनेजमेंट में शेड्यूलिंग प्रोसेस को बेसिकली क्रिएट करना डिलीट करना उसको शेड्यूल करना सिंक्रोनाइज करना ठीक है ये सारे फंक्शंस आपके लिख दिए हैं उसके बाद हमारा है मेमोरी मैनेजमेंट बड़ा इंपोर्टेंट टास्क है ये भी यही करता है एलोकेशन डी एलोकेशन एटस एक्सेट्रा फाइल मैनेजमेंट फाइल मैनेजमेंट के बारे में भी हमने यहां पे लिख दिया है बढ़िया से आप पढ़ सकते हैं आईओ मैनेजमेंट लिख दिया है मैनेज करता है कंट्रोल करता है आ डिवाइसेसपोर्ट है हमारी एक पार्ट बफरिंग होती है ठीक है कैशिंग होती है स्पूलिंग होती है स्पूलिंग क्या होता है स्पूलिंग दो डिफरेंट जॉब्स के बीच में हम क्या करते हैं डाटा को पहले से ही किसी एरिया में स्पूल करके रख लेते हैं स्पूल करके रख लेते हैं मतलब उसको सेव करके रख लेते हैं बहुत सारा इसका एक एग्जांपल बताऊं तो जैसे प्रिंट स्पूलिंग जब आप प्रिंटर को कमांड देते हो आपने मान लो 10 पीडीएफ की कमांड दी है 10 पीडीएफ को प्रिंट की कमांड दे दी है तो प्रिंटर क्या करता है अपने किसी बेसिकली एरिया में किसी स्टोरेज में उसको स्पूल करके रख देता है उन सारे 10 के 10 जॉब्स को क्योंकि स्कूल क्यों करता है क्योंकि प्रिंटर आपने जल्दी-जल्दी तो 10 जॉब्स को प्रोवाइड कर दी पर प्रिंटर जो है प्रिंटर की स्पीड तो स्लो है प्रिंटर तो धीरे-धीरे छाप रहा है तो इसीलिए हम स्पूलिंग कांसेप्ट का यूज करते हैं बफरिंग क्या होता है बफरिंग विद इन ए जॉब होती है किसी एक प्रोसेस के अंदर हम जब बेसिकली डेटा को थोड़ी देर में हमें उसे डेटा को यूज करना है तो उसके लिए हम पहले से ही उस डेटा को बफर करके रख लेते हैं इसका सबसे ब एग्जांपल youtube0 टॉपिक है पता होना चाहिए आपको टाइप्स ऑफ कर्नल कितने टाइप के हैं और उनके एग्जांपल क्या-क्या है इंप्लीमेंटेशन मार्केट में जो अवेलेबल है मोनोलिथिक कर्नल ठीक है आप पढ़ सकते हैं यहां पे जो रेड में लिखा है ये इसके डिसएडवांटेजेस हैं ठीक है हाई परफॉर्मेंस मिल जाती है हमें यहां पे कम्युनिकेशन फास्ट होता है बट बल्की होता है एग्जांपल इसका मोनोलिथिक है उसके बाद हमारा माइक्रो कर्नल आता है दूसरा टाइप माइक्रो कर्नल भी हमने बात कर ली इसके अंदर कुछ मेजर फंक्शनैलिटी ही कर्नल के अंदर रखी जाती है बाकी सब हम यूजर स्पेस में डाल देते हैं साइज स्मॉल होता है रिलायबल होता है स्टेबल होता है बस बट परफॉर्मेंस लो होती है ठीक है ओवरहेड होता है यूज़र मोड कर्नल मोड में जाने का इसका एग्जांपल हमारा l4 क्या है ये बेस्ट ऑफ बोथ वर्ल्ड्स यानी कि आपका बेसिकली माइक्रो कर्नल और दूसरा आपका मोनोलिथिक इन दोनों का एडवांटेज इसमें डालने की कोशिश करी गई है जिसमें कि स्पीड और डिजाइन तो मोनोलिथिक कर्नल का यूज कर रहे हैं हम और स्टेबिलिटी और मडलर हमने माइक्रो कर्नल की यूज किया इसका एग्जांपल जो आजकल के ओस मार्केट लीडर जो आप यूज करते हो मैक ओ एंड वि एटी 7 एंड 10 ठीक है ये सब हमारा हाइब्रिड कर्नल पे बना हुआ है ठीक है उसके बाद ये दो कर्नल आते हैं इसको आपको होमवर्क में दिया था ठीक है इसको पढ़ना बढ़िया से और कमेंट सेक्शन में बताना क्या क्या होता है ठीक है फिर हमने पढ़ा कि बेसिकली कम्युनिकेशन कैसे होती है यूजर मोड और कर्नर मोड में दो प्रोसेसेस के बीच में जो कि एक फाइल मैनेजमेंट की प्रोसेस बेसिकली कंपोनेंट है उसमें कुछ प्रोसेसेस होंगी और इधर मान लो मेमोरी मैनेजमेंट का कंपोनेंट उसमें कुछ प्रोसेसेस हो रही होंगी तो इसके बीच में कैसे कम्युनिकेशन होता है वो आईपीसी के थ्रू होता है ठीक है टू इंडिपेंडेंटली एग्जीक्यूटिंग प्रोसेस के बीच में कम्युनिकेशन करने का तरीका है ये इसके दो तरीके होते हैं इसको करने के शेयर्ड मेमोरी एंड मैसेज पासिंग तो ये था हमारा लेक्चर नंबर फोर मिलते हैं किसी नेक्स्ट लेक्चर में तब तक के लिए गुड बाय हेलो जी कैसे हो सारे दिस इज लक्षा वेलकम टू आवर ओएस प्लेसमेंट सीरीज आज हम आ गए हैं हमारे लेक्चर नंबर फाइव पे और हम आज डिस्कस करने वाले हैं बहुत ही इंपॉर्टेंट टॉपिक सिस्टम कॉल्स सिस्टम कॉल्स इतना इंपॉर्टेंट टॉपिक है ना कि आपको ये टेक्नोलॉजी तो पता होनी ही चाहिए साथ ही साथ इसके बारे में जो भी एक इन डेप्थ इंफॉर्मेशन है वो आपको पता होनी चाहिए तो सिस्टम कॉल्स पे हम डबल क्लिक करने से पहले डिस्कस करते हैं कुछ यार अब तक हमने क्या पढ़ा था हमने दो चीज लास्ट ही वीडियो में हमने जो कंपोनेंट ऑ में दो चीजें पड़ी सबसे पहले था हमारा यूजर स्पेस दूसरा था हमारा कर्नल स्पेस इसके बीच में हमारे पास एक डिस्टिंक्शन होती है बीच में डिवीजन होता है और यह डिवीजन क्यों होता है क्योंकि हमारे पास ये दो अलग-अलग सेपरेट स्पेसेस है हमें इसमें स्विच करना हो तो हम बेसिकली यूजर मोड टू कर्नल मोड स्विचिंग करते हैं राइट ये हमने डिस्कस किया था तो अब मैं बोलूं कि यार यूजर मोड में तो एप्लीकेशन चल रही है ठीक है बट एक्चुअली जो ओरिजिनल काम है ना जो बहुत ही कोर वाला काम है वो तो कर्नल ही कर रहा है कर्नल के पास ही जो प्रिविलेज एक्सेस है हार्डवेयर का यूजर स्पेस के पास तो है ही नहीं यूजर स्पेस में अगर कोई प tiktokfanshack.xyz मैं एक बेसिकली मैकेनिज्म प्रोवाइड करता हूं यूजर स्पेस को यूजर स्पेस में यूजर स्पेस में क्या यूजर स्पेस में जो एप्स रन हो रही है से कर्नल स्पेस से बात करनी है कर्नल स्पेस से बात क्यों करनी है क्योंकि मुझे हार्डवेयर से बात करनी है हार्डवेयर से मेमोरी लेनी है सीपीयू की साइकिल्स रिक्वेस्ट करनी है हार्डवेयर से तो यह सब काम किसी यूजर ऐप को करनी है तो उसे कर्नल के पास जाना पड़ेगा और कर्नल और यूजर स्पेस क्योंकि दो अलग-अलग चीजें हैं इसके बीच में कम्युनिकेशन के लिए एक मैकेनिज्म प्रोवाइड करता है वो है सिस्टम कॉल्स तो सिस्टम कॉल्स इज द ओनली वे जिससे हम यूजर मोड और कर्नल मोड में स्विच भी कर सकते हैं ठीक है तो मतलब मैं कहूं कि अगर कुछ भी मुझे करवाना है से एक एग्जांपल ले लेते हैं एग्जांपल है हमारा अगर मुझे मान लो मेलक करवाना है मैलक करवाना है टिकटक मेमोरी में आने से पहले उसे कुछ पर्टिकुलर स्पेस चाहिए होगा तो जब मेलक करने जाएगा तो वो बेसिकली जब यूजर मोड से कर्नल मोड में स्विच होगा तो वो स्विच कौन पॉसिबल करेगा वो सिस्टम कॉल्स पॉसिबल करेंगे तो सिस्टम कॉल इज द ओनली वे जिससे हम यूजर मोड से कर्नल मोड में स्विच हो सकते हैं और कर्नल का एक्सेस पा सकते हैं तो यह हमें मोटा-मोटा समझ आ गया बेसिकली सिस्टम गोल्स होता क्या है तो अगर मैं एक एग्जांपल लू इसका छोटा सा वो एक एग्जांपल है मान लो आपने क्या किया आपको क्या चाहिए आपका एम क्या है आपका एम है आपको क्या करना है एक डायरेक्टरी क्रिएट करनी है ठीक है एक न्यू फोल्डर बनाना है ठीक है अब मान लो आप दोस्त से लेके आए थे बहुत सारी मूवीज और मूवीज आपको कॉपी करनी है और कॉपी करने के लिए आपको एक फोल्डर चाहिए मूवीज नाम का ठीक है अभी जो फोल्डर चाहिए आपको यह फोल्डर आप कैसे बनाओगे आप बोलोगे भैया सिंपल है कुछ नहीं करना आपको जाना है माय कं कंप्यूटर पर क्लिक करना है माय कंप्यूटर पर क्लिक करने के बाद राइट क्लिक करना है जहां भी आप बनाना चाहते हैं अपने बेसिकली फोल्डर को तो वहां पर राइट क्लिक करने के बाद मूवीज टाइप कर दोगे आपका न्यू फोल्डर बन जाएगा वाह बहुत बढ़िया आपने एकदम सही बोला बहुत ही आसान काम है बट यह आसान किसने बनाया है ये जीय आई ने आसान बनाया है जीआई ने आसान बनाया है इतना आसान है नहीं इतना इतना इजी जो आपको दिख रहा है ये इतना इजी है नहीं ओस की वजह से आपको ये बहुत ज्यादा मतलब इजी लग रहा है क्योंकि वो कॉम्प्लेक्शन है नहीं कैसे आप जो जीवाई में जाके न्यू फोल्डर के बटन को न्यू फोल्डर के बटन को क्लिक करते हो बटन को क्लिक करते हो या फिर मैं दूसरा तरीका बोलूं तो आप मतलब कोई थोड़ा सा शाना बंदा है तो वोवा यूज नहीं कर रहा बोल रहा है मैं तो सील आ यूज करूंगा मैं जाऊंगा कमांड प्रोमट खोलूंगा कमांड प्रोमट खोलने के बाद एमके डीआई आर कमांड या फिर टर्मिनल खोल के एमके डीआई आर कमांड चला दूंगा एमके डीआई आर कमांड ठीक है तो दोनों ही तरीके एक ही काम को कर रहे हैं बट यह जीआई वाला मेथड जो है वह स्टैंडर्ड यूजर्स के लिए है और यह मेथड थोड़ा सा आपके जैसे जो शने यूजर है उनके लिए है ठीक है तो आपने न्यू फोल्डर बना दिया बट ये न्यू फोल्डर जितनी आसानी से आपको लग रहा है उतनी आसानी से बना नहीं है कैसे क्योंकि जीआई जो बटन यूज कर रहा है न्यू फोल्डर का वह इंटरनली एमके डीआई आर कोही कॉल कर रहा है और एमके डीआई आर क्या कर रहा है यह मैं बताता हूं आपको देखो आपके पास क्या था आपके पास एक यूजर स्पेस था एक कनल स्पेस था और यहां पर हार्डवेयर था ठीक है यूजर स्पेस हो गया कर्नल स्पेस हो गया और हार्डवेयर हो गया इसके बीच में हमारे पास एक लेयर होती है ठीक है ये दोनों सेपरेट स्पेसेस है अब ये देखो काम कैसे होगा आपने जब भी मूवीज के फोल्डर पे न्यू फोल्डर वाले बटन पर क्लिक किया मूवीज फोल्डर बनाने के लिए या फिर एमके डीआर स्पेस मूवीज चलाया तो क्या हुआ आपने जैसे ही न्यू फोल्डर के बटन को क्लिक किया या फिर एमकेडी आई स्पेस मूवीज वाली कमांड को चलाया यूजर स्पेस क्या करे यूजर पे जाएगा यहां पर एक इंटरफेस के पास इस इंटरफेस का नाम क्या है इस इंटरफेस का नाम क्या है इस इंटरफेस का नाम है एससीआई सिस्टम कॉल इंटरफेस ठीक है यह सिस्टम कॉल इंटरफेस के पास जाएगा और जाके क्या करेगा वो बोलेगा कि एमके डीआई आर के करेस्पॉन्डिंग्ली मेंटेशन है जो भी इंप्लीमेंटेशन है कर्नल पे उस परे मेरे को ले जाओ तो बेसिकली एससीआई क्या हुआ एक एंट्री पॉइंट हुआ कर्नल स्पेस का ठीक है तो आपके आपकी इस कमांड ने क्या किया वो गया एससीआई के पास एससीआई के पास बोला कि मुझे फाइंड कर दो एमके डीआई आर के करेस्पॉन्डिंग्ली मेंटेशन होगी वहां पे कर्नल स्पेस के अंदर कर्नल स्पेस के अंदर यहां पर एक इंप्लीमेंटेशन पड़ी होगी ये इंप्लीमेंटेशन यहां होगी ठीक है आपका एससीआई क्या करेगा एससीआई बोलेगा कि इस इंप्लीमेंटेशन को फाइंड करो इस इंप्लीमेंटेशन को फाइंड करो फाइंड करने के बाद कर्नल स्पेस इस इंप्लीमेंटेशन को रन कर दे ठीक है कर्नल स्पेस इस इंप्लीमेंटेशन को रन करेगा और रन करने पे होगा क्या रन करने पे आपने जिस भी फोल्डर पे आप गए होंगे आपने जिस भी फोल्डर पेने बेसिकली या जिस भी पोजीशन पे आपने एमडीआर कमांड चलाई होगी वो क्या करेगा वहां जाएगा उसका जो ट्री होगा उसपे एक नोड ऐड करेगा जिसका नाम होगा मूवीज ठीक है और नोड ऐड करके मान लो आप रूट प ही चला रहे हो ये कमांड तो रूट पे ही चला रहे हो आप ये कमांड तो मूवीज फोल्डर ऐड हो जाएगा और आपको बेसिकली मूवीज नाम की नोट दिखेगी और जीवाई में आपको क्या दिखेगा मूवीज नाम का फोल्डर दिखेगा तो ये इस तरीके से कुछ [संगीत] कॉम्प्लेक्टेड आईईआर की वो किसम लिखी है सी में तो क्या मैं बोल सकता हूं जितने भी सिस्टम कॉल्स है सिस्टम कॉल जितने भी है वो सी में इंप्लीमेंटेड होते हैं ठीक है एक्चुअली एक मतलब जिस टाइप के आप सी यूज करते हो उससे और भी ज्यादा लो लेवल कुछ सी होती है जिसमें कि वो डायरेक्ट हार्डवेयर से एक्सेस कर सकता है हार्डवेयर से बेसिकली काम कर सकता है इस टाइप की सी लैंग्वेज में लिखा होता है तो सिस्टम कॉल्स आर बेसिकली इंप्लीमेंटेड इन सी लैंग्वेज ठीक है बट आप क्या आप क्या जो देख रहे हो एमके डीआई वो बस एक इस ऊपर का इंप्लीमेंटेशन है अंदर हो सकता है मल्टीपल प्रोसेसेस रन हो रही हो मल्टीपल कोड एग्जीक्यूट हो रहा हो टू डू सो ठीक है तो जो आपको दिख रहा है सिस्टम कॉल्स वह क्या है वह सिंपली एक इंटरफेस है टू दैट सी इंप्लीमेंटेशन ठीक है तो यह हो गया आपका छोटा सा आपका इंट्रोडक्शन हुआ आपका सिस्टम कॉल्स का तो यह क्यों जरूरी है क्योंकि मुझे मेरे पास और कोई तरीका ही नहीं है यूज़र स्पेस से कनल स्पेस प जाने का क्योंकि यह दो सेपरेट एरियाज है ठीक है कर्नल स्पेस से आपको कोई काम करवाना है कर्नल स्पेस के पास ही हार्डवेयर का एक्सेस है आपको हार्डवेयर पर कोई काम कराना है तो आपको सिस्टम कॉल्स का यूज करना पड़ेगा बेसिकली आपकी यूजर प को सिस्टम कॉल का यूज करना पड़ेगा उस काम को करने के लिए तो यह आपका हो गया सिस्टम कॉल्स के बारे में छोटा सा इंट्रोडक्शन अगर मैं एक और एग्जांपल लू एक छोटा सा एग्जांपल लेता हूं मैं कि अगर मान लो आपने कोई प्रोसेस एग्जीक्यूट करी ठीक है आपने क्या करा कोई प्रोसेस एग्जीक्यूट करी प्रोसेस मान लो आपका हेलो वर्ल्ड आपने कंपाइल करके रखी हुई थी डॉट्स आपने उसको रन किया रन करने के बाद सबसे पहला काम क्या होगा आपने उसे रन किया रन करने के बाद बेसिकली वो एक सिस्टम कॉल ढूंढेगा सिस्टम कॉल ढूंढेगा एग्जीक्यूशन की ठीक है वो एग्जीक्यूशन सिस्टम कॉल ढूंढेगा जो कि आपका एससीआई देगा आपका सिस्टम कॉल इंटरफेस ठीक है वो क्या करेगा वो कर्नल मोड में स्विच करेगा काम को ठीक है कर्नल मोड में हम चले जाएंगे कर्नल मोड स्विच हो जाएगा कर्नल मोड में हम फिर एक प्रोसेस मैनेजमेंट के पास जाएंगे प्रोसेस मैनेजमेंट के पास जाएंगे वो क्या करेगा वो प्रोसेस को क्रिएट करेगा ठीक है प्रोसेस को क्रिएट करेगा प्रोसेस को क्रिएट करने में बहुत सारी चीजें होंगी क्या-क्या प्रोसेस को क्रिएट करने के लिए उस पर्टिकुलर प्रोसेस के लिए आप मेमोरी के अंदर बेसिकली रम के अंदर कुछ मेमोरी एलोकेट करोगे अगर वो प्रोसेस और कुछ भी काम कर रही होगी जिस तरीके मान लो किसी हार्डवेयर को एक्सेस कर रही है किसी और आईओ डिवाइस को एक्सेस कर रही है तो उस टाइप के काम भी बेसिकली ये सारे कर्नल कर्नल के द्वारा किए जाएंगे ठीक है तो इस तरीके से जब ये सारे काम हो जाएंगे एक प्रोसेस क्रिएट हो जाएगी फाइनली जैसे ही प्रोसेस क्रिएट हो जाएगी प्रोसेस क्रिएट होने के बाद वापस से हम कर्नल मोड से यूजर मोड में स्विच हो जाएंगे यह क्यों होंगे क्योंकि क्योंकि कर्नल मोड का काम यहां प खत्म हो गया ठीक है कर्नल मोड का काम खत्म हो गया अब ये सारी इंफॉर्मेशन की हां जी प्रोसेस क्रिएट हो चुकी है सारे यूजर्स पेस को देनी है तो उसके लिए यूजर स्पेस को ये प्रोसेस की इंफॉर्मेशन दे दी जाएगी और आपको टास्क मैनेजर में या फिर आपके एक्टिविटी सेंटर में आपको दिख जाएगा कि ये पर्टिकुलर प्रोसेस रन हो रही है या आपको जीआई प प्रोसेस अग प्रोसेस में जीआई है जीय आई आपको दिखेगी ठीक है तो ये इस तरीके से फ्लो चल ता है तो बेसिकली हम स्विच कर रहे हैं क कैसे यूजर मोड यूजर मोड में आपने ड एक्सी प क्लिक किया था यूजर मोड से आप कनल मोड प गए कनल मोड में कैसे गए थ्रू सिस्टम कॉल सिस्टम कॉल क्या है इंटरफेस है सिस्टम कॉल के बाद जैसे ही आपने कनल मोड के अंदर हो कनल मोड सारा रेलीवेंट वर्क करेगा प्रोसेस को क्रिएट करने का फिर वापस से प्रोसेस जब क्रिएट होके आप इंफॉर्मेशन दोगे यूजर मोड को बेसिकली यूजर स्पेस को फिर हम वापस से यूजर मोड में स्विच हो जाएंगे इसका मतलब और फाइनली आपकी प्रोसेस आपको दिख जाएगी तो इस तरीके से फ्लो चलता रहता है आप बहुत सारी बेसिकली आप चलाते रहते हो तो अंदर ही अंदर ये सारा काम यूजर मोड कनल मोड स्विच होता रहता है और अब मैं बोलू कि जैसे ये यूजर मोड कनल मोड स्विच होता कैसे है ये जो यूजर मोड टू कर्नल मोड स्विच होता कैसे है व कैसे होता है जब भी आप बेसिकली एग्जीक्यूट करते हो प्रोसेस को मान लो प्रोसेस को करने के बाद हम एक सॉफ्टवेयर इंटरप्ट कॉल करते हैं सॉफ्टवेयर इंटरप्ट कॉल करते हैं सॉफ्टवेर इंटरप्ट क्या करता है सॉफ्टवेर इंटरप्ट आपको बताया था लास्ट ू लास्ट वीडियो में मैंने शायद कि सॉफ्टवेर इंटरप्ट होता क्या है कुछ नहीं आप एक काम कर रहे हो बस सीपीयू को बोला रुक एक सेकंड दो मिनट के लिए इस काम को रोक और जल्दी से ये इंपोर्टेंट काम आया इसको कर ले ठीक है तो सॉफ्टवेर इंटरप्ट का यूज करके हम यूजर मोड से कर्नल मोड में स्विच करते हैं या कर्नल मोड से यूजर मोड में स्विच करते हैं ठीक है तो इस तरीके से चीजें चलती हैं हमारी और ये हमारे एग्जांपल्स हो गए सिस्टम कॉल्स के दो एग्जांपल दिए आपको उसके अलावा यार हम डिस्कस कर सकते हैं कैटेगरी ऑफ सिस्टम कॉज ठीक है ये हमारे दो एग्जांपल हो गए अब एक ब नोट्स में नजर डाल लेते हैं नोट्स में नजर डाले तो इसकी एक बढ़िया सी डेफिनेशन लिखी गई है ठीक है बट डेफिनेशन के पास जाने से पहले अगर बोलू कि आपसे इंटरव्यूअर क्वेश्चन पूछे हाउ डू एप्स इंटरेक्ट विद कर्नल तो आपका क्या आंसर होगा सीधा सीधा आंसर होगा आपका सिस्टम कॉल सिस्टम कॉल देने के बाद ही वो खुश हो जाएगा और आपसे उसके बारे में आगे पूछेगा कोई एग्जांपल देने के लिए बोलेगा एग्जांपल में हमने लिख दिया कि एम केडी आई आ एल के एस करके मान लो आपने फोल्डर बनाया तो इस तरीके से फोल्डर बन जाएगा आपका सारी डिस्कशन अभी जस्ट हमने की है सिमिलरली प्रोसेस क्रिएट कर रहे हैं हम यूजर मोड कर्नल मोड स्विच हो रहे हैं ठीक है यूजर मोड टू कर्नल मोड स्पेस टू कर्नल स्पेस कैसे हम बेसिकली स्विच करेंगे वो सॉफ्टवेयर इंटरप्ट के थ्रू सिस्टम को सी में इंप्लीमेंटेड होती है अब इसकी एक डेफिनेशन देख लेते हैं प्यारी स अगर कोई बोल दे कि उसको डिफाइन कर दो इंग्लिश में कैसे करोगे ए सिस्टम कॉल इज ए मैकेनिज्म यूजिंग व्हिच ए यूजर प्रोग्राम कैन रिक्वेस्ट ए सर्विस फ्रॉम द कर्नल फॉर व्हिच इट डज नॉट हैव द परमिशन टू परफॉर्म ठीक है यूजर मोड के पास बहुत लिमिटेड एक्सेस है तो जो जो काम वो नहीं कर सकता उस काम को करने के लिए हम कनल मोड पे स्विच होते हैं स्विच होने के लिए जो मैकेनिज्म है वो क्या यूज़ होता है वो होता है सिस्टम कॉल अब इसका एक बढ़िया सा डायग्राम देख लेते हैं डायग्राम में कुछ एक और एक्स्ट्रा इंफॉर्मेशन आपको मिलेगी वो क्या है कि आपका यूजर पप है ठीक है राइट यूजर पप है अभी हमने देखा यूजर पप मान लो आप यूजर पप से क्या करना चाहते हो यूजर एप से आप मान लो सिस्टम कॉल कोई कॉल कर रहे हो तो किस तरीके से जाएगी तो अगर मैं नॉर्मल बात करूं कि एक नॉर्मल नक् सिस्टम में तो न सिस्टम में लिपस होती है ये c प् प् इंप्लीमेंटेड लाइब्रेरी है सी सॉरी सी इंप्लीमेंटेड लाइब्रेरी है सी प् प् नहीं सी तो ये बेसिकली यूज होती है एससीआई को कॉल करने के लिए एससीआई सिस्टम कॉल इंटरफेस सिस्टम कॉल इंटरफेस को कॉल करने के लिए तो आप पहले लिप सी को कॉल करते हो या अभी आप यूजर मोड में ही हो जैसे ही फिर एक सॉफ्टवेयर इंटरप्ट कॉल होता है सॉफ्टवेर इंटरप्ट कॉल क्या करता है सॉफ्टवेर इंटरप्ट बोलता है कि अब चलो हमें मूव करना है यूजर मोड टू कर्नल मोड तो कर्नल मोड में मूव करने के लिए हम फिर एससीआई को कॉल करते हैं एससीआई देखता है कि भाई एम के डीआई आर जो लिखा है हमारा इसके कॉरस्पॉडिंग जो इंप्लीमेंटेशन है इंप्लीमेंटेशन है जो कि सी में लिखी होगी वो कहां पे है वो इंप्लीमेंटेशन कर्नल प मैप होएगी फिर कर्नल उस पर्टिकुलर इंप्लीमेंटेशन को जो इंप्लीमेंटेशन है उसको रन करेगा उस पर्टिकुलर इंप्लीमेंटेशन को रन करने के बाद हार्डवेयर पे वह काम हो जाएगा हार्डवेयर यहां पे डिस्क है मान लो तो डिस्क के अंदर वह पर्टिकुलर फोल्डर बन जाएगा एक डायरेक्टरी क्रिएट हो जाएगी तो इस तरीके से फिर हम एक पर्टिकुलर हमें जो मूवीज वाला एग्जांपल था मूवीज वाला फोल्डर बन जाएगा और फिर हम रिट्रेस कर जाएंगे वापस से और हमें यूज़र मोड में इंफॉर्मेशन मिल जाएगी कि मूवीज फोल्डर बन चुका है तो यह हमारा एक एग्जांपल हुआ एक डायग्राम के द्वारा यह आप डायग्राम इंटरव्य को बना के दिखा सकते हो जल्दी से समझाने के लिए अब हम नेक्स्ट चलते हैं टाइप्स ऑफ सिस्टम कॉल्स तो टाइप्स ऑफ सिस्टम कॉल्स अगर मैं बोलूं तो हमारे पास टोटल नंबर ऑफ टाइप्स है हमारे पास पांच तो पांच टाइप के हमारे सिस्टम कॉल होते हैं सबसे पहले प्रोसेस कंट्रोल या प्रोसेस मैनेजमेंट भी बोल सकता हूं मैं इसको फिर फाइल मैनेजमेंट डिवाइस मैनेजमेंट इंफॉर्मेशन मेंटेनेंस और कम्युनिकेशन मैनेजमेंट इसका ब्रीफ मैं आपको कर देता हूं प्रोसेस मैनेजमेंट सिस्टम कॉल्स दैट आर रिलेटेड टू क्रिएटिंग द प्रोसेस डिलीट द प्रोसेस वेटिंग फॉर ए प्रोसेस ठीक है टर्मिनेट करना उसके लिए बेसिकली मेमोरी एलोकेट करना लोकेट करना ठीक है इस टाइप के काम होते हैं प्रोसेस के एटिबल सेट करना ठीक है उसके एट्रिमेद करना ठीक है इस टाइप की चीजें प्रोसेस कंट्रोल सिस्टम कॉल्स में होती है ठीक दूसरी कैटेगरी क्या है फाइल मैनेजमेंट फाइल मैनेजमेंट अभी हमने जो एग्जांपल लिया था फाइल को क्रिएट करना डिलीट करना फाइल को ओपन करना क्लोज करना रीड करना राइट करना रिपोजिशन करना है रिपोजिशन क्या होता है कि जब भी आप फाइल मान लो रीड कर रहे हो रीड करते हुए आपको आप जीरो पोजीशन से रीड नहीं करना चाहते आप रीड करना चाहते हो मान लो 20th पोजीशन से 20th करैक्टर से ठीक है तो उस चीज के लिए रिपोजिशन यूज होता है गेट एंड सेट एट्रबीक है जैसे बेसिकली एग्जांपल लू तो सिक्योरिटी सिक्योरिटी किसी फाइल को आप देखोगे तो उसके अंदर परमिशन होती है कि इसकी इस पर्टिकुलर फाइल की परमिशन मान लो कोई फाइल है मान लो फाइल है एल केड t एक्डी इसकी परमिशन मैं मान लो बोलू कि सिर्फ एल के यूजर को है लक्ष्य यूजर को है मान लो लक्ष्य यूजर को तो कोई और यूजर है मान लो कोई राम यूजर है तो राम यूजर को इसकी नहीं होगी एक्सेस ठीक है तो इस इस टाइप के एटिबल सेट करने के लिए कि कोई और यूजर इसको मॉडिफाई डिलीट क्रिएट ना कर पाए तो फाइल मैनेजमेंट की कुछ इस टाइप की सिस्टम कॉल्स भी होती है इसके एग्जांपल भी हम अभी डिस्कस करेंगे उसके अलावा अपने पास एक डिवाइस मैनेजमेंट डिवाइस मैनेजमेंट में क्या है हमारा डिवाइस को रीड करना राइट करना उसके एट्रबीक करना उसको अटैच डिटैच करना इस टाइप के काम होते हैं हमारे डिवाइस मैनेजमेंट सिस्टम कॉल्स में इंफॉर्मेशन मेंटेनेंस में क्या होता है इंफॉर्मेशन मेंटेनेंस कुछ भी नहीं है ये नॉर्मली डिफरेंट प्रोसेसेस की इंफॉर्मेशन हो गई डिवाइस की इंफॉर्मेशन हो गई टाइम जो जो सेट होता है आपका ठीक है टाइम डेट एंड टाइम और सिस्टम का कुछ डाटा होते हैं उनको सेट करने के लिए बेसिकली इंफॉर्मेशन मैनेजमेंट मॉड्यूल या फिर इंफॉर्मेशन मैनेजमेंट सिस्टम कॉल इसीलिए यूज होता है उसके बाद अपना है कम्युनिकेशन मैनेजमेंट तो कम्युनिकेशन मैनेजमेंट जो है ना ये रिलेटेड होता है हमने अभी लास्ट टू लास्ट वीडियो में पढ़ा था आईपीसी इंटर प्रोसेस कम्युनिकेशन के बारे में तो इंटर प्रोसेस कम्युनिकेशन क्या था इंटर प्रोसेस कम्युनिकेशन का मतलब था कि भाई दो अलग-अलग प्रोसेसेस है सेपरेट स्पेसेस में चल रही है उनको आपस में कट करना है तो उस बेसिकली का मैकेनिज्म है इंटर प्रोसेस कम्युनिकेशन ठीक है तो उस इंटर प्रोसेस कम्युनिकेशन को करने के लिए कम्युनिकेशन मैनेजमेंट यूज होता है जैसे एक एग्जांपल बताया था मान लो प्रोसेस ए है प्रोसेस बी है इसके बीच कम्युनिकेशन करने के लिए एक पाइप चाहिए होती है तो पाइप को बनाना उसकी मेंटेनेंस करना ठीक है उसको क्रिएशन डिलीट ये सारे काम कम्युनिकेशन मैनेजमेंट में होते हैं ठीक है और रिमोट डिवाइसेज हुई है ठीक है इस टाइप की चीजें कम्युनिकेशन मैनेजमेंट में आते हैं अब मैं इसके कुछ एग्जांपल्स लूं तो हम मैंने ट्राई कि है कि विंडोज के और यक्स के दोनों के एग्जांपल्स मैं ले सकूं तो इसमें क्या है हमारे पास प्रोसेस कंट्रोल के अंदर क्रिएट प्रोसेस फर्क यूज होता है एग्जिट प्रोसेस के लिए एग्जिट यूज होता है वेट फॉर सिंगल ऑब्जेक्ट वेट तो तीन सिस्टम कॉल्स कैसे काम करती है फर्क क्या करता है फॉर क्या करता है फॉर कुछ नहीं करता वो क्रिएट करता है किसी भी प्रोसेस को ठीक है अब मैं एक एक चीज बताऊं ना आपको कि जब भी कोई सिस्टम चलता है ना जैसे आपका कंप्यूटर ऑन हुआ कंप्यूटर ऑन होने के बाद सबसे पहले ना एक एक रूट प्रोसेस होती है उसको जीरो प्रोसेस बोल देता हूं इसके बाद जितनी भी प्रोसेसेस बनती है ना वो सारी ना उसकी चाइल्ड होती है एक टाइप से ठीक है सारी उसकी चाइल्ड होती है तो फर्क क्या करती है किसी भी एक प्रोसेस का चाइल्ड बनाती है ठीक है तो अगर मैं बोलूं कि आप मान लो टर्मिनल आपने ऑन किया टर्मिनल ऑन किया टर्मिनल ऑन करने के बाद आप उस टर्मिनल के अंदर मान लो आप कोई प्रोसेस बना रहे हो बेसिकली कोई एग्जीक्यूटेबल है एक् उसे रन कर रहे हो टर्मिनल के अंदर तो मैं टर्मिनल को बोल सकता हूं कि ये इसकी पेरेंट प्रोसेस थी ठीक है और जो टर्मिनल से जो आपने एक्सी रन करी है वो आपकी चाइल्ड प्रोसेस हुई तो फर्क ना हमेशा चाइल्ड प्रोसेस बनाता है तो कंप्यूटर के अंदर ना कोई भी न्यू प्रोसेस नहीं बनती सारी चाइल्ड ही होती है एक दूसरे की ठीक है तो फर्क का काम हमारा ये हो गया ठीक है एग्जिट का मतलब उस प्रोसेस को एग्जिट कराना जब एग्जिट कॉल करते हैं हम प्रो प्रोसेस के लिए ठीक है एग्जिट क्या करेगा मेमोरी डी एलोकेट करेगा एंड सो एंड सो बेसिकली उसके टा टास्क टेबल में जाके लिख देगा ये प्रोसेस एग्जिट हो चुकी है ठीक है फिर आता है आपका फाइल मैनेजमेंट के कुछ एग्जांपल्स है आपका ओपन रीड क्लोज सीच मोड अन मास्क सीए ऑन सीच मोड क्या करता है बेसिकली मोड सेट करता है फाइल का फाइल का मोड मतलब जो अभी हमने बात करी कि फाइल रीडेबल है राइ टेबल है रीड ओनली रीड कर सकते हैं रीड राइट भी कर सकते हैं इस टाइप की चीजें और सी ऑन क्या करता है सीए ऑन क्या करता है नॉर्मली चेंज ओनरशिप सीए का मतलब चेंज ओड ए का मतलब ओनरशिप ओनरशिप चेंज करना यानी कि वो जो मैंने एग्जांपल दिया था कि ये फाइल जो पर्टिकुलर है यह सिर्फ लक्ष्य नाम का यूजर है वही एक्सेस कर सकता है और कोई एक्सेस नहीं कर सकता उसके अलावा डिवाइस मैनेजमेंट की कुछ है आप रीड राइट होती है इसमें आईओटीएल होती है कंसोल मोड सेट करने के लिए उसके अलावा इंफॉर्मेशन मैनेजमेंट के अंदर गेट पी आईडी अलार्म स्लीप और इसके अंदर डेट भी होती है कमांड अगर आप नॉर्मली टर्मिनल प जाके अपने डेट लिखोगे ना तो डेट एंड टाइम शो करेगा तो यह सिस्टम कॉल भी इंफॉर्मेशन मैनेजमेंट के अंदर ही आती है उसके बाद कम्युनिकेशन में हमने बात करी पाइप पाइप मैंने बताया आपको प्रोसेस ए है प्रोसेस बी है इसके बीच में पाइप सेटअप करने के लिए पाइप कमांड यूज होती है सीएचएम गेट जो आपको बताया था कि आईपीसी के अंदर दो तरीके होते हैं एक शेयर्ड मेमोरी वाला तरीका और दूसरा होता है मैसेज पासिंग जो मैसेज पासिंग वाला तरीका है वो पाइप के थ्रू होता है और जो शेयर्ड मेमोरी वाला तरीका है वो एसएचएम गेट के थ्रू होता है एसएचएम गेट क्या करता है वो कुछ नहीं करता वो पर्टिकुलर जो शेयर्ड मेमोरी जिसके थ्रू जो प्रोसेस ए प्रोसेस बी एक शेयर्ड मेमोरी के थ्रू जो कम्युनिकेशन कर रही थी उस शेयर मेमोरी को गेट करने के लिए ये वाली पर्टिकुलर कमांड यूज होती है ठीक है इसके अलावा एक एम एप वाली कमांड है ये क्या करती है आपको यह मैप और अन मैप करती है डिवाइस को मेमोरी प ठीक है वर्चुअल मेमोरी पर भी मैप करती है इसके बारे में ना हम आगे पढ़ेंगे आप ज्यादा कंफ्यूज मत हो कि एक्चुअली आपको जानना ही जानना है कि सारी जो सिस्टम कॉल्स है वो करती क्या है आपको एक होमवर्क देना चाहूंगा वो होमवर्क यह है आपको कि जितनी भी सिस्टम कॉल इस पेज पर लिखी हुई है आप जाकर उसके बारे में सर्च करोगे तो आज का होमवर्क क्या है ऑल सिस्टम कॉल्स जितनी भी यहां पर लिखी हुई है उसके बारे में आप इंटरनेट पर सर्च करोगे ठीक है इंटरनेट पर सर्च करोगे देख ज्यादा जानने की जरूरत नहीं है जो जो मैंने डायरेक्टली डिस्कस करी है वो आपको ज्यादा पता होनी चाहिए सिंपली ठीक है उसके अलावा जो ये जितनी भी सिस्टम कॉलस उसके बारे में थोड़ा थोड़ा थोड़ थोड़ा पढ़ लेना ठीक है ये आपको थोड़ा थोड़ा आपको इनट्यूशन हो जाएगी कौन सी सिस्टम कॉल क्या करती है ऐसे कोई डायरेक्टली नहीं बोलेगा कि सारे सिस्टम कॉल्स का नाम बताओ एक दो का नाम आपको पता होना चाहिए ठीक है मेन है कि वर्किंग क्या है सिस्टम कॉल होता क्या है वो ज्यादा पता होना चाहिए आपको अब हम कोशिश करते हैं आपको छोटा सा एग्जांपल देते हैं प्रोसेस मैनेजमेंट के अंदर सिस्टम कॉल का ठीक है तो चलो या स्क्रीन पर चलते हैं एग्जांपल देखते हैं व एग्जांपल होगा मेरा प्रोसेस कंट्रोल सिस्टम कॉल्स का मैं एग्जांपल देना चाहूंगा उसमें हम फाइल मैनेजमेंट का भी कुछ यूज करेंगे तो अगर मैं एक टर्मिनल खोलू टर्मिनल खोलने के बाद मैं अभी किस डायरेक्टरी में हूं यह देख लेता हूं ओके मैं डायरेक्टरी में जाता हूं डेस्कटॉप प आ जाते हैं हम डेस्कटॉप प आते हैं डेस्कटॉप प हम विम करते हैं विम करने के बाद मैं एक स्क्रिप्ट बनाता हूं हेलोड एस करके ठीक है अब मैं क्या कर रहा हूं टेंपररी डॉक्यूमेंट बना रहा हूं अब जब मैं उसको एडिट करूंगा एडिट करूंगा एडिट करके मैं लिख देता हूं एक ब स्क्रिप्ट बना रहे हैं हमें तो यह सब लिखना पड़ेगा जस्ट ू नो कि ये एक प स्क्रिप्ट है उसके बाद मैं वाइल लिखता हूं ल लिखने के बाद मैं ट्रू लिख देता हूं ठीक है ू लिखने के बाद मैं डू करूंगा कुछ नहीं करूंगा मैं बैठ के हेलो वर्ड हेलो प्रिंट करता रहता हूं हेलो कोड हेल्प प्रिंट करते हैं ठीक है अब उसके बाद मैं स्लीप कर देता हूं न सेकंड के लिए और मैं डन कर देता हूं ठीक है अब देखो अब तक क्या करा है मैंने एक टेंपररी डॉक्यूमेंट बनाया है ये डॉक्यूमेंट कहां बन रहा होगा मेमोरी में बन रहा होगा उसके बाद अब मैं क्योंकि डेस्कटॉप के अंदर था ठीक है अब देखो ये डिवाइस बेसिकली फाइल मैनेजमेंट का काम आएगा यहां पे अब फाइल मैनेजमेंट का काम कैसे आएगा मैं डेस्कटॉप पे हूं अब मैं इसको सेव करने जा रहा हूं तो वो क्या करेगा वो पर्टिकुलर एरिया पे जाएगा यानी डेस्कटॉप वाले फोल्डर पे जाएगा पूरी जो एरर की बनती है मेरी ट्रिक स्ट्रक्चर है उसमें जाके इस फाइल को क्रिएट करके सेव कर देगा अब सेव कैसे करेंगे हम इसको मान लो कॉलन द ब्लूट सेव अब आप देखो यहां पे एक फाइल आ गई ठीक है तो यहां पर क्या हुआ होगा यहां पर अभी हमने जस्ट क्रिएट करी है फाइल कुई सिस्टम कॉल का यूज करके ठीक है तो कौन सी सिस्टम कॉल यूज हुई होगी यहां पर यहां पर सबसे पहले हमने फाइल डिस्क्रिप्टर बनाया होगा तो ओपन यूज हुई होगी ठीक है फिर उसको हमने टाइप करा फिर उसके बाद राइट वाली कमांड यूज हो गई होगी जब हमने पूरा फाइल को एडिट कर दिया और राइट करने के लिए गए हम तो पर्टिकुलर में जाके फाइल उसने क्रिएट करी होगी तो ये राइट कमांड यूज हुई होगी तो राइट के करेस्पॉन्डिंग्ली मेंटेशन यूज हुई होगी तो राइट सिस्टम कॉल यूज हुई है ब अब मैंने एक फाइल बना दी है अब मैं इसको रन करूंगा ठीक है अब मैं इसको रन करूंगा बैश हेलो ड अब क्या होगा बताओ सोचो सोचो अब प्रोसेस मैनेजमेंट वाली सिस्टम कॉल्स का काम आएगा यहां पर क्या होगा यह पर्टिकुलर टर्मिनल है इस पर्टिकुलर टर्मिनल का चाइल्ड बनेगा यानी कि हम फर्क सिस्टम कॉल का यूज करेंगे और एक प्रोसेस बना देंगे उस प्रोसेस का नाम होगा हेलो हेलो ड एच देखो ये एंटर करा एक प्रोसेस बन चुकी है अब ठीक है अब इस प्रोसेस बन चुकी है भैया आप झूठ बोल रहे हो प्रोसेस तो कुछ नहीं बनी है मैं आपको एक एग्जांपल देता हूं एग्जांपल नहीं आपको प्रूफ देते ये देखो प्रोसेस बनी है कैसे पीएस एक कमांड होते है पीएस माइन ए ये देखो आपको क्या दिख रही है यहां पर प्रोसेस बन गई है एक ठीक है अ ये प्रोसेस बन गई है इसकी पी आईडी भी मिल गई है मुझे ठीक है जब मैंने पीएस - ए कमांड चलाई होगी जब मैंने पीएस - ए कमांड चलाई होगी तो ये पूरे जो टेबल बनने के लिए इंफॉर्मेशन मैनेजमेंट सिस्टम कॉल का यूज हुआ होगा और उसने पर्टिकुलर गेट पी आईडी करके पी आईडी लाके दी होगी जो यहां यहां पे लिखी हुई है ठीक है तो देख रहे कैसे सिंक्रोनाइज सारा काम हो रहा है सबसे पहले हमने फाइल मैनेजमेंट सिस्टम कॉल्स का काम लिया फिर उसके बाद हमने प्रोसेस मैनेजमेंट सिस्टम कॉल का काम लिया फिर उसके बाद हमने इंफॉर्मेशन मैनेजमेंट सिस्टम कॉल का काम लिया ठीक है तो अब मैं अगर देखूं अगर एक एक और चीज बताऊं जो मैंने बताया था आपको कि फॉर का कमांड जो होती है किसी भी पेरेंट का चाइल्ड बनाती है ठीक है तो पए - ए करूंगा तो आप देखो आपको यहां पर इसको थोड़ा सा बड़ा कर लेते हैं ये जो पर्टिकुलर कमांड है इसके करेस्पॉन्डिंग्ली पी आईडी इसकी प्रोसेस आईडी है एक पीपी आईडी दिख रही होगी पीपी आईडी क्या है पेरेंट की पी आईडी पेरेंट ये है य पर टर्मिनल हमारा ठीक है तोय चल रही है हमारी अब चलते चलते हम क्या कर रहे बोर हो गए य चलने दो कुछ खास तो कर नहीं रही अब हम इसको किल करना चाहते हैं किल करने के लिए आप दोबारा से पीएस माइन से देखो तो इस फाइल इसकी पी आईडी मुझे दिख रही है तो मैं किल कमांड का यूज कर लेता हूं किल किल किल माइनस ना माइनस ना इसलिए होता है कि मैं अबली किल करना चाहता हूं फोर्सफुली किल करना चाहता हूं ठीक है किल माइनस ना 19 354 ठीक है ये इसकी पी आईडी इसको मैं एंटर करूंगा तो दूसरे टर्मिनल में ये किल हो गई है ठीक है तो किल कमांड भी एक जो किल है वो भी एक सिस्टम कॉल है सिस्टम कॉल ये क्या हुआ होगा किल जैसे ही आपने क्लिक किया वो गई होगी यूजर मोड से कर्नल मोड प ये कमांड कर्नल मोड में जाके उसने देखा कि पर्टिकुलर पी आईडी रन हो रही है उसको जाके किल कर दिया सीपीयू को बोल दिया शट अप इसको छोड़ दो इस पे काम नहीं करना प्रोसेस को मेमरी से उड़ा दिया ठीक है तो इस तरीके से चीजें काम करती है आपको छोटा सा एग्जांपल दिया कैसे किल कम वर्क कर दि है आपको होमवर्क देता हूं मैं एक एक और होमवर्क देता हूं उसमें क्या करो आप अभी जितनी भी कमांड्स लिखी हुई है ना इसको इसके बारे में जो नेट से तो पढ़ोगे उसके अलावा टर्मिनल प भी ना आप ऐसे पढ़ सकते हो अगर मैं मैन करूं मैन कमांड यूज करके किल का यूज करूं तो अब देखो इसके बारे में इंफॉर्मेशन आ गई है ये बोल रहा है किल क्या करता है टर्मिनेट और सिग्नल प्रोसेस एक प्रोसेस को सिग्नल करते हैं डिफरेंट टाइप के एटिबल है माइनस एल माइव ये डिफरेंट टाइप के इंटरप्ट्स है ठीक है टू इंटरप्ट थ्री क्विट करना है नाइन से किल होता है अब अबोर्ड होता है ठीक है अलार्म क्लॉक ब्ला ब्ला ये सारी चीजें ना आप बैठ के पढ़ो एक बार थोड़ा सा टाइम दो इसको ठीक है इतना खास जरूरी तो नहीं है बट आप देखोगे थोड़ा सा दिमाग लगाओगे तो आप चीजें फैमिलियर हो जाएंगी आसान लगने लग जाएंगी ठीक है तो यह थी हमारी वीडियो सिस्टम कॉल्स पर ठीक है आई होप आपको समझ आया होगा आपका होमवर्क आपको समझ आ गया आपको दो होमवर्क दिए गए हैं जिसमें की जितने भी नोट्स के अंदर सिस्टम कॉल्स लिखी हुई है उनके बारे में आप एक बार नेट पर सर्च करोगे ठीक है नेट पर सर्च करोगे इसके बारे में पढ़ोगे उसके बाद नेट प सर्च करने के बाद आप एक बार इन कमांड को चला के भी देख लेना अगर आपका मन हो तो उसके अलावा आप टर्मिनल प भी मेन कमांड का यूज करके इसका यूज कर सकते हो तो ठीक है डन करते हैं इस वीडियो को देखने के लिए धन्यवाद थैंक यू सो मच हेलो जी कैसे हो सारे दिस इज लक्ष्य तो हम पहुंच चुके हैं हमारे ओएस के लेक्चर नंबर सिक्स पर और आज हम एक बहुत ही इंटरेस्टिंग टॉपिक डिस्कस करने वाले हैं इतना इंटरेस्टिंग कि जब मैं अपने कॉलेज में था तो मुझे उस पर कुछ खास क्लेरिटी थी नहीं और बट क्वेश्चन जरूर था दिमाग में कि होता क्या है वो क्या चीज है वो है जब आप अपने कंप्यूटर को ऑन करते हो सिस्टम को ऑन करते हो स्विच पावर सप्लाई का स्विच से लेकर जो आपका ओएस सामने दिखता है जीय आई आपको दिखता है उसके बीच में क्या-क्या होता है तो शॉर्ट में बोलूं तो व्हाट हैपेंस व्हेन यू टर्न ऑन योर कंप्यूटर इसके बारे में हम डिस्कस करने वाले हैं तो ये एक बहुत इंपोर्टेंट वीडियो होने वाली है इसमें प्रैक्टिकली आपको पता चलेगा कि कैसे जब आप ऑन करते हो सिस्टम और जो आपको स्क्रीन पर दिख रहा होता है जो जीआई लोड हो जाती है या विंडोज बोलू या मैक बोलू या बोलू जो लोड हो जाता है और आप उस परे काम करते हो तो इसके बीच में जो कॉम्प्लेक्टेड चिपा आई है आप ऑन करते हो ऑन करते ही सब कुछ ऑन हो जाता है छोटी सी बार आती है 2 मिनट के अंदर ऑन 2 मिनट भी नहीं कुछ सेकंड्स में ऑन हो जाता है ठीक है बट फास्ट होने के बावजूद बहुत सारी चीजें हैं जो आज भी होती हैं और वो होती रहेंगी वो चीजें क्या है उसके बारे में डिस्कस करेंगे बट एक्चुअली डिस्कशन शुरू करने से पहले एक बार हम शाउट आउट दे देते हैं हमारे स्पांसर को ताकि आपका फ्लो ना बिगड़े कंटिन्यू करते हैं तो व्हाट हैपेंस व्हेन यू टर्न ऑन योर कंप्यूटर में हम इसको जानेंगे पांच स्टेप्स में ठीक है फाइव स्टेप्स में हम इस प्रोसेस को जानेंगे ठीक है जिसमें कि सबसे पहला स्टेप क्या होगा जिसमें कि सबसे पहला स्टेप क्या होगा स्टेप नंबर वन होगा पावर ऑन करना पावर ऑन करना ठीक है पावर ऑन करने का स्टेप अब इसको एक्सप्लेन करने की जरूरत नहीं है आप गए आपने जो अपना प्लग दबा रखा है उसको ऑन किया और सिस्टम को सिस्टम का जो बेसिकली पावर का बटन है उसको ऑन किया तो ऑन करने के बाद क्या होगा सबसे पहले आपका स्विच ऑन करने के बाद जो सप्लाई है इलेक्ट्रिसिटी है वो जाएगी आपके पास आपके पावर सप्लाई पे कंप्यूटर का ये कंपोनेंट है जो सारे हार्डवेयर को सभी हार्डवेयर्स को पावर सप्लाई प्रोवाइड करता है कभी आपने अगर मैं बोलूं अब तो सब लोग लैपटॉप यूज करते हैं मोस्टली अगर आप सिस्टम आपने देखा होगा सिस्टम को कभी खोला होगा तो जहां पर एक वायर लगती है ना जो डायरेक्टली फिर स्विच में लगती है तो वायर क्या करती है वो एक कंपोनेंट में जुड़ती है और वो कंपोनेंट से बहुत बहुत सारी तारें निकल रही होती है वो बहुत सारी तारें फिर कुछ मदर बोर्ड में जा रही होंगी कुछ हार्ड डिस्क प जा रही होगी कुछ जीपीयू में जा रही होगी ऐसे ऐसे करके बहुत सारी वायर जा रही होती है तो उसको मैं पावर सप्लाई बोल रहा हूं तो सबसे पहले क्या होगा पावर सप्लाई के पास इलेक्ट्रिसिटी जाएगी पहला स्टेप बहुत ही सिंपल तो इससे क्या होगा आपका मदरबोर्ड ठीक है उसके अलावा बाकी के कंपोनेंट्स जिसमें कि हमारा हार्ड डिस्क आया हार्ड डिस्क या फिर कोई और आपके स्टोरेज डिवाइसेज किए हुए हैं एक्सटर्नल कम्युनिकेशन के लिए या व्ट एवर व्ट एवर वो उन सब पे पावर सप्लाई जाएगी सबसे पहला स्टेप हमारा हो गया बहुत ही सिंपल स्टेप है ये ठीक है अब आ जाते हैं हम दूसरे स्टेप पे स्टेप नंबर टू स्टेप नंबर टू क्या होगा अब जब पावर सप्लाई आ चुकी है तो सीपीयू के बाद भी सप्लाई आ चुकी है ठीक है अब मैं बोलूं कि एक्चुअली जो काम करता है ना सबसे पहला कंपोनेंट जो वर्किंग है जो सबसे ज्यादा रिस्पांसिबल है इस पूरे काम को करने के लिए पूरी बूट प्रोसेस को करने के लिए टर्निंग ऑन द कंप्यूटर इज कॉल्ड द बूट प्रोसेस ठीक है उसको करने के लिए सबसे ज्यादा इंपोर्टेंट जो खिलाड़ी है यहां पे या सबसे ज्यादा इंपोर्टेंट कंपोनेंट है वो क्या है हमारा सीपीयू तो सीपीयू क्या करता है सीपीयू लोड करता है लोडस बायोस और यूईएफ आई दूसरा स्टेप बड़ा कॉम्प्लेक्टेड होता है अब बायोस चिप में तो बायोस चिप कुछ ऐसी चिप होगी ठीक है ये क्या बन गया ठीक है बायोस चिप आपकी है ये बायोस चिप कुछ नहीं नॉन वोलेटाइल चिप है रम हो गया रम बोलूंगा मैं इसको रम और रोम का डिफरेंस आपको पता ही होगा नॉन वोलेटाइल चिप है ठीक है इसके अंदर हमारा प्रोग्राम स्टोर्ड होता है जिसको मैं बायोस भी बोल देता हूं ठीक है और यूईएफआई क्या है यूईएफआई बायोस का ही अपग्रेडेड वर्जन है मतलब ट्रेडिशनल बायोस यूज होता था जिसकी फुल फॉर्म मैं बोलू तो बेसिक इनपुट आउटपुट सिस्टम ठीक है और यूईएफआई की फुल फॉर्म बोलते यूनिफाइड एक्सटेंसिबल फर्मवेयर इंटरफेस ठीक है बायोस पहले यूज होता था अब भी कुछ सिस्टम में यूज होता है बट यूईएफआई जो है आजकल यूज होता है य ये थोड़ा सा बायो से एडवांस्ड होता है ठीक है जैसे यूईएफआई उसका 2.2 वर्जन है बेसिकली अपग्रेडेड वर्जन है ना तो जब भी मैं बायोस या यूईएफआई की बात करूंगा तो आप समझना कि जो बायोस की वर्किंग है वो यूईएफआई की भी वर्किंग है ठीक है तो सीपीयू ने लोड किया बायोस को बायोस को लोड करने के बाद सबसे पहला काम क्या होगा बायोस एक प्रोग्राम लिखा हुआ है जिसके अंदर सारे सिस्टम को कैसे इनिला इज करना है इस टाइप के प्रोग्राम्स लिखे हुए हैं तो सबसे पहला काम होगा सीपीयू इनिश इज होगा ठीक है उसके कॉरस्पॉडिंग एटिबल इनिला होंगे सीपीयू इनिला होगा ठीक है सीपीय ही खुद को इनिला इज करेगा इस पॉइंट पे ठीक है और जब सीपीयू इनिश होता है तो क्या करता है वो एक रम चिप के पास जाता है जो अभी हमने बात करी गोज टू ए चिप जिसको मैं बायोस भी बोल रहा हूं बायोस चिप ठीक है तो सीपीयू क्या कर रहा है सीपीयू बायोस चिप के पास जा रहा है क्यों जा रहा है क्योंकि वो उस प्रोग्राम को लोड करना चाह रहा है जो आगे के फर्द काम करेगा ठीक है उस प्रोग्राम को मैं बायोस ही बोल रहा हूं ठीक है तो ये हमारे दो स्टेप हो गए सबसे पहला स्टेप क्या था आपने ऑन किया सीपीयू गया उस एक नॉन वोलेटाइल स्टोरेज के पास उसने एक स्मल प्रोग्राम है उसको लोड करा ठीक है हो गया अब लोड करने के बाद तीसरा स्टेप तीसरे स्टेप पर आ जाते हैं तीसरा स्टेप क्या होगा लोड करने के बा तीसरा स्टेप होगा कि बायोस और यूईएफआई वो एक टेस्ट रन करते हैं ताकि सारे हार्डवेयर इलाज हो पाए बायोस और यूईएफ आई रन टेस्ट एंड इनिला हार्डवेयर बायोस क्या करता है बायोस क्या करता है लोडस सम सेटिंग्स फ्रॉम अ मेमोरी एरिया बेसिकली कुछ सेटिंग्स को लोड करता है वो और जो सेटिंग्स होती है ना वो जहां पर जिस मेमोरी एरिया में है वो बैक्ड बाय होती है एक सीमस बैटरी अभी थोड़ा टेक्निकल हो रहा है ठीक है इसको समझाते हैं हम बेसिकली क्या होता है ना यार देखो अभी तक आपका मेमोरी जो है जो रम है वो लोड नहीं हुई है आपकी डिस्क भी लोड नहीं हुई है हार्ड डिस्क भी लोड नहीं हुई है तो एक स्टोरेज एरिया है उसके अलावा वो स्टोरेज एरिया जो कि चार्जड बाय है एक सीमस बैटरी के सीमस बैटरी क्या होता है कंबाइंड मेटल ऑक्साइड सेमीकंडक्टर ऐसा कुछ है तो बेसिकली एक बैटरी है ये नॉर्मली वो बैटरी हमेशा से सीपीयू में रहती है ठीक है आप चाहे पावर को ऑफ भी कर देते हो तब भी सीपीयू के अंदर एक एरिया है जो हमेशा चार्जड अप रहता है उसके अंदर बेसिकली कुछ स्टोरेज कुछ सेटिंग्स और क्लॉक रन कर रही होती है ठीक है तो क्लॉक कौन सी जब आप अ बेसिकली आप जो सिस्टम में क्लॉक देखते हो वो तो आप जब आप ऑन करते हो तो इंटरनेट सिंक्रोनाइज हो जाती है बट उसके अलावा भी हमारे सीपीयू के अंदर वो क्लॉक चलती रहती है जब भी आप ऑन करोगे कंप्यूटर हर बार आपको वो क्लॉक क्या करनी पड़ेगी फिर से सिंक करनी पड़ेगी और हो सकता है जब आप ऑन करो इनेट कनेक्टिविटी ही ना हो हो सकता है ना तो इसलिए हम एक बेसिक क्लॉक को रन करके रखते हैं तो वो जिस एरिया में होती है वो एरिया सीमस बैटरी द्वारा चार्जड अप रहता है ठीक है तो सीमस बैटरी यह काम करती है आपका और बायोस के अंदर जितनी भी सेटिंग्स है वो भी इसी एरिया में स्टोर्ड होती है जो कि चार्ज बाय होता है सीमस बैटरी इसका एग्जांपल दूना तो यार कभी तुमने ट्राई किया मतलब मैंने किया हुआ है ट्राई बचपन में क्या जो मेरा एक सबसे पहले कंप्यूटर आया था तो मैं उसको खोल के जब देख रहा था तो उसके अंदर एक सेल भी होता है छोटा सा वो सीमस बैटरी है उस सेल को अगर मैं निकाल देता था ना और ऑन करने की कोशिश करता था तो सीपीयू बीप करता था वो ऑन ही नहीं होता था मैं सोचता था यार मतलब एक छोटी सी बैटरी चल रहा है क्या मैं पावर सप्लाई दे तो रहा हू तब भी ऑन क्यों नहीं हो रहा वो कुछ नहीं है बेसिकली उसको सेटिंग्स नहीं मिल पा रही है वो वो एरिया जो है जहां पर सेटिंग्स लोड होती है वो आपने व उसको रिसेट कर दिया ठीक है तो इसलिए ये सीमस बैटरी जरूरी है इसके अंदर कुछ सेटिंग्स है जो जरूरी होती कंप्यूटर को बसली बायोस को ऑन करने के लिए बायोस की सेटिंग्स होती है व क्लॉक को रन करने के लिए तो इसलिए यह सीमस वाली बैटरी वाला एरिया जो है बहुत ज्यादा इंपॉर्टेंट है ठीक है तो आपने सेटिंग्स लोड करी व सेटिंग्स वो सेटिंग्स कुछ लो लेवल सेटिंग्स थी ठीक है बेसिकली जो बायोस को चलने के लिए जरूरी थी अब उसके बाद क्या होगा अब जैसे आपने सेटिंग्स ऑन करी तो एक्चुअल जो बायोस का प्रोग्राम है जो बायोस का प्रोग्राम है वो लोड होएगा विद सेटिंग्स इन सेटिंग्स के साथ में वो लोड होगा अब वो लोड होने के बाद क्या करेगा लोड होने के बाद उसके अंदर कुछ इंस्ट्रक्शंस लिखी हुई हैं जो कि क्या करेंगी वो इंस्ट्रक्शंस क्या करेंगी वो पोस्ट करेंगी पोस्ट क्या होता है पावर ऑन सेल्फ टेस्ट अभी पावर ऑन सेल्फ टेस्ट क्या है हर हार्डवेयर के करेस्पॉन्डिंग्ली देखूंगा कि रम वर्किंग है कि नहीं रम के पास जाऊंगा उसपे कुछ टेस्ट केस रन करूंगा उसको बेसिकली पावर तो दी हुई है हमने तो कुछ देखूंगा उसपे हो सकता है कुछ मेमोरी राइट करके और डिलीट करके देखूंगा कि क्या ऐसा रम वर्क कर पा रही है क्या र रम अवेलेबल भी है कि नहीं अगर ये अवेलेबल है तो तो आपका कंप्यूटर आगे बढ़ जाएगा अगर नहीं है तो वो क्या करेगा एक एरर मैसेज शो करेगा कि भाई ये इंपोर्टेंट चीज तो है ही नहीं इसके अंदर अगर आप कंप्यूटर से रम ही उड़ा दोगे तो कंप्यूटर नहीं चल पाएगा तो यहां पर यह वाली पोजीशन है जो थर्ड स्टेप है जहां पर पोस्ट वाली चीज हो रही होती है इस पोजीशन पे वो टेस्ट करता है कि सारे एसेंशियल हार्डवेयर है कि नहीं ठीक है तो ये आपके हो गए तीन स्टेप रा स्टेप अपने हो गया कि हमने सारे हार्डवेयर को इलाज कर लिया अब आते हैं हम चौथे स्टेप प अब तक बायोस ये सारे काम कर चुका है ठीक है बायोस क्या आता है प्रोग्राम है खुद ही ठीक है चौथा स्टेप चौथा स्टेप होगा कि जो बायोस और यूईएफआई है वो एक्चुअल बूट डिवाइस को हैंड ऑफ करेगा चीजें बायोस और यूईएफ आई हैंड्स ऑफ टू बट डिवाइस अब इसके अंदर काफी इंपोर्टेंट इंपोर्टेंट काम हो रहे होते हैं अब बूट डिवाइस क्या है सबसे पहले ये हम जान लेते हैं बूट डिवाइस है एक ऐसा एरिया या फिर मैं बोल सकता हूं एक ऐसा डिवाइस जहां पर एक्चुअली ओस का बूट की इंस्ट्रक्शंस लिखी हुई है उसको मैं बूट लोडर भी कहता हूं ठीक है मतलब अब यहां पे बायोस ने य अब बायोस ने क्याक काम कर लिया बायोस ने यह देख लिया कि भाई ठीक है सब कुछ लाइज हो चुका है एवरीथिंग इज वर्किंग फाइन सारे हार्डवेयर बढ़िया काम कर रहे हैं अब मुझे एक्चुअल प्रोग्राम चाहिए जो कि ऑपरेटिंग सिस्टम को ऑन करेगा ठीक है यानी ऑपरेटिंग सिस्टम के पास सारा कंट्रोल देगा वो वाला मुझे प्रोग्राम चाहिए अब वो प्रोग्राम ढूंढेगा वो कैसे ढूंढेगा बूट डिवाइस कौन-कौन से हो सकते हैं आपके आपकी डिस्क हो सकती है ठीक है एचडीडी और एसएसडी ठीक है या फिर आपकी सीडी भी हो सकती है या यूएसबी ड्राइव भी हो सकती है आपने देखा होगा जब सिस्टम के अंदर आपका बेसिकली ओस नहीं होता तो हम यूएसबी ड्राइव से या फिर बेसिकली सीडी ड्राइव से हम बूट कर रहे होते विंडोज बूटेबल डिस्क बनाते हैं उसको बूट कर रहे होते हैं क्योंकि अब बायोस जो है व सारा काम कर चुका हैड इनिला का अब उसको एक्चुअली एक प्रोग्राम चाहिए जो एक्चुअल ओस को बूट करेगा और उस प्रोग्राम को मैं क्या कहता हूं उस प्रोग्राम को मैं बोलता हूं बूट लोडर ठीक है उस प्रोग्राम को मैं कहता हूं बूट लोडर नई टम आ गई बूट लोडर क्या करता है बूट लोडर कुछ भी नहीं है एक ऐसा प्रोग्राम है ऐसा प्रोग्राम है जो कि एग्जीक्यूट होता है ना जब तो व ऑन करता है एक्चुअल ओस को ठीक है तो स्टेप में क्या हुआ व बूट डिवाइस को फाइंड करेगा बायोस और बूट डिवाइस जैसे ही मिलेगा उस बूट डिवाइस में इंस्ट्रक्शन होंगी बूट लोडर की यानी कि अब बूट लोडर को सारा काम दे दिया जाएगा बूट लोडर खुद एक प्रोग्राम ही है ठीक है अब बूट लोडर कहां क पड़ा होता है मैं उसको देखता हूं बूट लोडर कहां पड़ा होता है पहली जगह है आपकी एमबीआर इसको मैं बोलता हूं मास्टर बूट रिकॉर्ड इसका मतलब क्या है ये एक ऐसा एरिया है ठीक है ऐसा डिस्क का एरिया है जहां पे आपका बूट लोडर एक्चुअली पड़ा हुआ है यानी कि बायोस सब कुछ करने के बाद एक ऐसी जगह को ढूंढना चाह रहा है जहां पर एक्चुअली बूट लोडर पड़ा है तो वो जगह होती है आपकी दो जगह होती है पहली है एमबीआर एमबीआर मास्टर बूट रिकॉर्ड है यह ना डिस्क की जीरो इंडेक्स प पड़ा होता है बेसिकली जीरो इंडेक्स पे डिस की जीरो इंडेक्स पे ये प्रोग्राम स्टार्ट होता है ठीक है तो यहां से बूट जो बायोस है वो सीपीयू को इंस्ट्रक्शन देता है कि भाई बूट लोडर ना यहां से ऑन कर लो मेमोरी में ले आओ फिर उसके बाद काम शुरू करेंगे एक्चुअल ओस को ऑन करने का ठीक है एमबीआर हमने समझ लिया अब एमबीआर ना ओल्ड सिस्टम में यूज होता था ओल्ड सिस्टम आज भी यूज होता है बट मोस्टली ओल्ड सिस्टम में यूज होता था तो जब मैं अभी दो टर्म्स यूज कर रहा हूं बायोस और यफ आ तो बायोस जो है ना एक्चुअली जो बायोस सिस्टम था वो एमबीआर का यूज करा करता था और जो यूईएफआई है वो एक नए प्रोग्राम का यूज़ करता है जो इसका नाम है ईएफ आई उसका नाम है फफ आई ई समझ लेते हैं क्या होता है ई होता है एक्सटेंसिबल फर्मवेयर इंटरफेस अब यह क्या होता है यह एक्चुअली यफ आई जो हमारा नया टाइप का बायोस था वो इसको यूज करता है ये कुछ नहीं है यह हम डिस्क में ना अभी तक हम क्या कर रहे थे एमबीआर में क्या कर रहे थे हम एमबीआर में हम क्या कर रहे थे एमबीआर में हमारे पास य यह डिस्क थी डिस्क की जीरो पोजीशन पर एी एमबीआर पड़ा था ठीक है अब इसके अंदर हम क्या कर रहे हैं आपने डिस्क में पार्टीशन दे होंगी जैसे सी ड्राइव ई ड्राइव है ना सी ड्राइव ई ड्राइव ऐसे करके आप पार्टीशन बना के रखते हो तो e आ कुछ नहीं है हम दिस की जीरो पोजीशन पे ना रख के हमने एक अलग से पार्टीशन ही बना दी ठीक है पार्टीशन इन डिस्क होती है ये पार्टीशन ही बना दी और इस पार्टीशन के अंदर बूट लोडर पड़ा हुआ है तो बेसिकली डिफरेंस क्या हुआ एमबीआर कुछ नहीं है मास्टर बूट रिकॉर्ड है वो रो इंडेक्स पे रखा होता है वहां पर प्रोग्राम होता है आपका बूट लोडर एबीआर यूज कौन करता है बायोस यूज करता है ओल्ड सिस्टम्स ठीक है बट यूईएफआई जो है वो ईएफ आई यूज करता है ईईआई क्या करता है ईएफ आई अलग से एक पार्टीशन होता है ईएफ आई पार्टीशन बोलते हैं उसको वहां पर बूट लोडर पड़ा होता है तो बेसिकली ये कहानी क्यों हो रही है क्योंकि बायोस सब कुछ तो कर चुका है इनिश इजेशन अब उसको बूट लोडर ढूंढना था बूट लोडर दो जगह पे मिला उसको ठीक है एमबीआर में मिल जाएगा या ईएफ आ में मिल जाएगा तो यहां पर जैसे ही उसे बूट लोडर मिला बूट लोडर मिला बूट लोडर जैसे ही रैम में आया मेमोरी में आया बायोस बोलेगा कि मैंने बूट लोडर ढूंढ लिया है अब बूट लोडर तेरी जिम्मेदारी है आगे का काम करने की तो बास वाले प्रोग्राम की जिम्मेदारी यहां पर खत्म होती है अब हम आ जाते हैं फिफ्थ स्टेप पे यह फाइनल स्टेप है हमारा फिफ्थ स्टेप है हमारा बूट लोडर लोडस द फुल ओस अब बूट लोडर पूरे ओस को लोड करेगा एक्चुअल ओस अब लोड होना शुरू होगा ठीक है तो अब मैं कहूं कि यहां तक के स्टेप जो थे वो बायोस ने देखे थे अब जो स्टेप है वो खुद बूट लोडर देख रहा है बूट लोडर क्या है बूट लोडर एक ऐसा प्रोग्राम है ऐसा प्रोग्राम है जो कि एक्चुअल ओस को इनिला करता है वो पूरा उसे टर्न ऑन करता है अब बूट लोडर मैं बोलू एक्चुअल ओस को इलाज करता है अब ये ना एक सिंगल प्रोग्राम नहीं होता कि सब सारे ओसस के लिए यूनिवर्सल होता है विंडोज में जो बूट लोडर होता है उसको मैं बूट मैनेजर बेसिकली बूट एमज करके एक प्रोग्राम होता है वो यह काम करता है और अगर मैं मैक की बात करूं तो उसमें बूट ड e आ करके एक हमारी बेसिकली एक प्रोग्राम होता है व यह काम करता है और अगर मैं वालों ने ये लिखा हुआ है और अपना नक् वालों ने ये लिखा हुआ है तो यहां पर हमारी सारी प्रोसेस खत्म होती है अब जो है सिस्टम सारा का सारा बूट लोडर के पास है अब बूट लोडर एक्चुअली सब सारे काम करेगा जो जो अलग-अलग सिस्टम में रिक्वायर्ड होते हैं आप ये देखेगा कि आपका जीआई कहां पे पड़ी हुई है ठीक है जीआई को ऑन करेगा ठीक है उसके अलावा डिफरेंट टाइप के चेक्स होते हैं वो ऑन करेगा कुछ स्टार्टअप डिवाइसेज होते हैं उन सबको ऑन करेगा कुछ स्टार्टअप प्रोग्राम्स होते हैं उनको ऑन करेगा तो ये सारा काम अब ओए स्पेसिफिक हो गया है तो अब ये सब कुछ काम ओस पे चला जाएगा तो ये पांच स्टेप्स में एक्चुअली ओस आपका ऑन होता है तो यह पांच स्टेप आप बताओ कैसे लगे आपको य पांचों के पांचों स्टेप जो है ये बहुत ही ज्यादा इंपॉर्टेंट है और आपको एज ए कंप्यूटर इंजीनियर तो पता होने ही चाहिए क्योंकि ये तो एक सिंपल सा ही क्वेश्चन है ना यार मतलब कंप्यूटर ऑन कैसे होता है तो सब कु पता होना चाहिए ठीक है तो ये ये थी हमारी आज की वीडियो कमेंट सेक्शन में बताओ कैसी लगी ठीक है अब एक बार मैंने इसके भी नोट्स बना दिए हैं आप पढ़ सकते हैं थ्योरी थ्योरी है इन नोट्स में जो जितना भी एक्सप्लेन किया वो सब कुछ थ्योरी में लिख दिया है ठीक है और अगर मैं इसमें होमवर्क देना चाहूं तो आपका होमवर्क यह होगा कि आप जो जो यह टर्मिनोलॉजी है जैसे यूईएफआई एमबीआर इनके बारे में थोड़ा-थोड़ा और पढ़ो तो आपको थोड़ा सा एक बढ़िया से एक इनसाइट मिल जाएगी ठीक है तो खत्म करते हैं आज का लेक्चर इसी के साथ कमेंट सेक्शन में बताना कैसी लगी बढ़िया लगी क्लियर है तो लिखना कमेंट सेक्शन के अंदर क्लियर वरना दोबारा बना देंगे ठीक है ओके बाय हेलो जी कैसे हो सारे दि लक्ष हम आ चुके हैं हमारे ओएस के लेक्चर नंबर सेवन पर और आज हम डिस करने वाले हैं बहुत ही इंटरेस्टिंग टॉपिक इसको बहुत ही इंटरेस्टिंग टॉपिक कहूं या एक इंटरव्यू क्वेश्चन दोनों चीज कह सकता हूं मैं ठीक है तो वो टॉपिक है 32 बिट वर्सेस 64 बिट ऑपरेटिंग सिस्टम बेसिकली य होता क्या है 3264 य वर्ड क्यों यूज कर रहे हैं मतलब य न्यूमेरिक वैल्यू क्यों है 3264 तो अगर मैं बोलू कि ये एक्चुअली 3264 है क्या अगर मैं एक सीपीयू की चिप बनाऊं तो कुछ ऐसी दिखती है सीपीयू की चिप जो कि मदर बोर्ड पर एंबेडेड होती है राइट अब ये इसके अंदर ना बहुत सारे ट्रांजिस्टर होते हैं बहुत सारे ट्रांजिस्टर क्या होते हैं बिलियंस मतलब बहुत सारे बहुत सारे का काउंट बताऊ तो बिलियंस बिलियंस ऑफ ट्रांजिस्टर ट्रांजिस्टर क्या है इंडिविजुअल डिजिटल सर्किट्स है ठीक है आपने नंड और गेट्स पढ़े हैं ना उस टाइप से बनके सर्किट्स बने हुए हैं तो डिजिटल सर्किट्स है बहुत सारे तो उन सर्किट्स को इंप्लीमेंट करके ना हमारे पास कुछ रजिस्टर्स होते हैं रजिस्टर्स क्या होते हैं रजिस्टर सीपीयू के अंदर एक ऐसी लोकेशन होती है जहां पर एक्चुअल कंप्यूटेशन होती है ठीक है वो बेसिकली होल्ड करता है एड्रेसस को ठीक है और आप जब नंबर्स को प्लस करते हो माइनस करते हो मान लो आपने कोड में लिखा 1 प् 2 तो वन और टू को वो होल्ड करता है रजिस्टर के अंदर जाते हैं वन और टू ठीक है और ऐसे करके कंप्यूटेशन होती है अब मैं एक रजिस्टर छोटा सा बनाऊं तो अभी थोड़ा कन्फ्यूजिंग हो गया होगा एक रजिस्टर मैं बना के दिखा देता हूं आपको रजिस्टर कुछ नहीं है मेमोरी ब्लॉक टाइप कुछ है तो अगर मैं देखूं तो यह मेरे पास एक रजिस्टर है ठीक है ठीक है यह रजिस्टर है इसमें मैंने कुछ इस तरीके से रजिस्टर बनाया है कि इसके अंदर एक बाइट आएगी दो बाइट तीन बाइट फोर बाइट तो यह फोर बाइट का रजिस्टर है ठीक है इसको मैं हटा देता हूं यह मेरा हुआ एक फो बाइट का रजिस्टर तो फोर बाइट का रजिस्टर इसका मतलब क्या हुआ इसका मतलब हुआ कि इसके अंदर चार बाइट का डाटा या चार बाइट की इंस्ट्रक्शन चार बाइट की इंफॉर्मेशन आ सकती है एक बारे में ठीक है तो जो 32 बिट का सिस्टम होता है 32 बिट का प्रोसेसर होता है ठीक है उसके अंदर जो रजिस्टर्स होते हैं वह 32 बिट का डाटा होल्ड कर सकते हैं एक बारी में ठीक है समझ आ गया सबको तो यह पहली बाइट है ये बाइट कैसे बनी होगी 00 ठीक है आ ऐसे बिट्स होंगे ठीक है बिट्स कितने होते हैं एक बाइट में आठ बिट्स होते हैं ठीक है तो यह आपका हो गया 32 बिट का एक प्रोसेसर तो 32 बिट का एक हार्डवेयर है उस हार्डवेयर जो सीपीयू है उसको चलाने के लिए जो सॉफ्टवेयर चाहिए वो भी एक 32 बिट का ही होगा ठीक है जैसे हमने पिछले लेक्चर में बात की थी ना कि पहले हार्डवेयर बनता है उस हार्डवेयर को चलाने के लिए एक कंपैटिबल सॉफ्टवेयर बाद में बनता है ठीक है क्योंकि हार्डवेयर जब तक एस्ट नहीं करेगा सॉफ्टवेयर ला के क्या फायदा तो यह हमें समझ आ गया कि हमारे पास एक रजिस्टर होता है रजिस्टर जैसी कोई चीज है ठीक है जहां पर एक्चुअल कंप्यूटेशन होती है वह डाटा होल्ड करता है एरे लगा लो यार मतलब अगर मैं विजुलाइज कराने की कोशिश करूं तो एक एरे हो गई एरे ऑफ बिट्स हो गई ठीक है उसके अंदर 32 का काउंट होगा जीरो से 32 का काउंट होगा ठीक है तो ये हमारी होगी फोर बाइट्स ठीक है तो सिमिलरली अब मैं बोलू 64 बिट जो होगी 64 बिट उसके अंदर 64 बिट की एरे बनेगी ऐसे 0 टू 64 ठीक है और 64 के अंदर कितने बाइट्स होते हैं आठ बाइट्स ठीक है तो दो सिस्टम है अलग-अलग दो प्रोसेसस है अलग-अलग यह सीपीयू मैं इसको वन बोल देता हूं इसको मैं सीपीयू टू बोल देता हूं ठीक है अब इन दो सीपीयू के अंदर एक के अंदर जो रजिस्टर है वह 32 बिट का है एक के अंदर रजिस्टर जो है वह 64 बिट का है तो अब यह दो अलग-अलग आर्किटेक्चर्स हो गए एक 32 बिटी होल्ड कर सकता है एक बार में एक उससे डबल होल्ड कर सकता है एक बारे में ठीक है तो मैं बोलूं कि यह दो अलग-अलग ही आर्किटेक्चर है ठीक है तो ये आपके दो टाइप के सीपीयूज एजिस्ट करते हैं इन सीपीयूज पे जो ओएस चलता है वो आपका कहलाता है फिर 32 बिट के सीपीयू प जो चल पाएगा उसे 32 बिट का ओस कहेंगे जो 64 बिट प चल पाएगा उसको 64 बिट का ओस करेंगे ठीक है तो ये तो आपका सेट हो गया मामला उसके बाद अगर मैं देखूं कि इससे फायदे क्या होंगे मतलब 32 बिट 32 बिट का क्या मतलब है अब यहां पे एगजैक्टली एरे हमें समझ आ गया कि 32 बिट का डाटा रजिस्टर के अंदर होगा अब इससे क्या तो मैं बोलू जो सीपीयू का क्या काम होता है सीपीयू का काम होता है वो बेसिकली आपके मेमोरी एड्रेसस पर जाके डटा को फैच करता है आपकी मेमोरी या रम है रम के अंदर बहुत सारा डेटा है डेटा रम के अंदर कैसे पड़ा होता है यह आपकी रम हुई जीरो एड्रेस से एथ एड्रेस तक कुछ बड़ा होगा डाटा ठीक है अब इनको फैच करना है मुझे यह मेरा सीपीयू है ठीक है यह जीरो पर जाके डाटा उठा सकता है ठीक है 0 + 1 आगे जाके डटा सकता है ऐसे ही एंथ डाटा भी उठा सकता है तो यह n डिफरेंट एड्रेसस पे लोकेट करेगा तब जाके उसे डाटा मिलेगा यह जीरो थ एड्रेस है यह फर्स्ट एड्रेस है यह सेकंड एड्रेस है ऐसे एथ एड्रेस है अब जो 32 बिट का सीपीयू है 32 बिट का सीपीयू है सोचो अब जो 32 बिट का सीपीयू है यह आपका 32 बिट का सीपीयू था यह क्या कर पाएगा एक जो इसके अंदर एक जो यह मैं बोल सकता हूं एक जो लोकेशन है यह जीरो उस पर जीरो या वन हो सकता है बस ऐसी 32 32 जो पर्टिकुलर ब्लॉक होगा उसके अंदर भी वन या जीरो हो सकता है बस राइट तो वन या जीरो हो सकता है तो टू वैल्यू हो सकती है या तो वन होगी या जीरो होगी या वन होगी या जीरो होगी ठीक है तो ऐसे करते करते मैं बोलू अगर मैं बोलू तो अगर एक ब्लॉक है तो ू की पावर व ठीक है अगर 32 है तो 2 की पावर 32 इतने यूनिक एड्रेसस यूनिक ड्रेसेस मेरा सीपीयू जो है लोकेट कर सकता है यानी कि एक 32 बिट का सीपीयू 2 की पावर 32 यूनिक एड्रेसस लोकेट कर पाएगा इसका मतलब क्या हुआ कि 4gb 2 की पावर 32 होता है 4gb एक 32 बिट का सीपीयू 4gb रैम ही सपोर्ट कर सकता है ठीक है अब यह देखो कितनी बेकार चीज है अब आपने कभी सोचा भी नहीं होगा 32 बिट की जो सीपीयू है ब 4gb रैम आज की डेट में आप देखोगे 8gb 10gb 16gb मोबाइल के अंदर 16gb रैम है ठीक है उसपे हम आएंगे कि कैसे अब 16 जीब रम यूज हो रही है तो अभी हमने समझ लिया कि 32 बिट जो एक आपका सीपीयू है वो बेसिकली 4जीबी तक की स्पेस को ही आपका एक्सेस कर सकता है तो यह हमारी लिमिटेशन हो गई अब इस लिमिटेशन को दूर करने के लिए हमने क्या किया हमने सोचा कि क्या करते हैं इस रजिस्टर को है ना इस रजिस्टर को बढ़ा देते हैं अग इस रजिस्टर को मैं 0 टू 64 तक कर दूं तो मैं ू की पावर 64 तक एड्रेसस को एलोकेट कर सकता हूं राइट अब 2 की पावर 64 हो गया आपका अब मैं वहा चार्ज बोलू 2 की पावर 64 को कैलकुलेट भी करेंगे हम तो कुछ 1 7 1 7 98 6 918 4gb कैलकुलेट करके बताना ठीक है कि नहीं इतना जीब आएगा अब इतनी जीब तो एक्चुअली रम बनाते बनाते आप पागल हो जाओगे राइट तो ये एक मैं बोलू राम बांड सोल्यूशन निकाला कि हमने रजिस्टर का साइज ही डबल कर दिया साइज डबल करते ही हम ज्यादा अमाउंट ऑफ मेमरी सपोर्ट कर सकते हैं ज्यादा डिफरेंट एड्रेसस को एलोकेट कर सकते हैं ठीक है और ये डिमांड हुई क्यों क्योंकि अर्ली मैं बोलू अर्ली 90 तक ना 32 बिट के सिस्टम ही आते थे अभी तक भी आते थे रिसेंटली मैंने खुद 32 बिट सिस्टम यूज किया हुआ है तो 32 बी सिस्टम में क्या होता है 4gb रम भी एनफ होती है बट धीरे-धीरे जैसे डिमांड बढ़ती गई बढ़ती गई तो हमने बेसिकली हार्डवेयर को इंप्रूव किया इंप्रूव करते करते वो इतना इंप्रूव कर दिया कि अब इतनी बड़ी अमाउंट ऑफ रैम भी सपोर्ट हो पाएगी ठीक है यह हमें समझ आ गया कि बेसिकली ये खेल सारा हुआ था रम से शुरू ठीक है और अब मैं बोलूं जो 32 बिट का सिस्टम है ना आपका 32 बिट का सिस्टम वो एक बारी में वो एक बारी में 32 बिट का डाटा ले पाएगा राइट तो अब मैं बोलूं अब आपको दो नंबर्स प्लस करने हैं एक 32 बिट का नंबर है और उसको 32 बिट नंबर से ऐड करना है तो यह तो आसानी से हो जाएगा ठीक है अब 64 बिट का मान लो कोई नंबर है उससे डबल अमाउंट का नंबर है इतना बड़ा नंबर है अगर उसको ड ड करना 32 बिट सिस्टम में तो कैसे करेगा वो कैसे करेगा ये आपका 30 ये आपका 64 की मान लो वो हैरे 0 32 य यहां 64 मान लो इतना बड़ा डाटा है आपके पास ठीक है यह बेसिकली मान लो आपका कोई ओपर एंड है जिस परे आप ऑपरेट कराना चाहते हो मतलब मैं बताऊ अगर अपने कोड में लिखा हुआ है कि इंट ए प् बी और ए प् बी इतनी बड़ी वैल्यू है कि व 64 बिट इतनी बड़ी वैल्यू उनको आपको प्लस करना है तो ये प्लस करना 64 बिट की अमाउंट को 64 बिट के अमाउंट के डाटा को प्लस करना है एक 32 बिट रजिस्टर वाले सीपीयू के लिए बड़ा मुश्किल काम है कैसे वो पहले क्या करेगा वो पहले मान लो इधर वाले 32 बिट को उठाएगा और उनको ऐड करेगा ठीक है यह पहला टास्क हो गया उसका इसको ऐड करके वह कहीं पर लिखेगा आंसर में फिर उसके बाद बाद के 32 बिट पर ऑपरेट करेगा और कहीं पर लिखेगा मेमोरी में तो ऐसे करके दो साइकिल्स लग जाएंगे एक 64 बिट के इंटी जर को प्लस करने के लिए ठीक है एक 32 बिट के सिस्टम में पर अगर मैं आऊ यही काम अगर मैं 64 बिट सिस्टम में का करना चाहूं अब तक आपने सोच लिया होगा 64 बिट सिस्टम में अगर मैं करना चाहूं तो 64 बिट में अगर इतना ही बड़ा 64 0 टू 64 इतना बड़ा होगा ठीक है रजिस्टर भी मेरा 0 टू 64 इतना ही बड़ा है यह मेरा रजिस्टर है यह मेरा डाटा है ठीक है अब मैं ऐड करना सीपीयू आएगा सीपीयू आएगा इतने पूरे डाटा को उठाएगा यह 0 टू 64 इतना पूरा डाटा उठाएगा पूरा का पूरा लोड करेगा अपने रजिस्टर में यहां से यहां तक पूरा लोड कर लेगा और इसको ऐड रिमूव डिलीट जो भी इसको करना है जो भी इसमें मैथमेटिकल ऑपरेशन लगाना है वो लगा देगा एक ही साइकिल में तो सीपीयू के केस में ना यार साइकिल बड़ी इंपोर्टेंट होती है कि आप कितनी साइकिल्स में काम कर रहे हो कितनी साइकिल्स आप साइकल्स बेस्ट तो नहीं कर रहे हो मतलब यही आपकी वो मैं बोलू अगर जो आप टाइम कितनी कम सीपीयू साइकिल्स में आप काम कर सकते हो तो आप देखोगे कि 64 बिट अगर मेरे को डाटा ऐड करना है तो यहां मुझे दो साइकिल्स लगेंगी और यहां पर मुझे एक ही साइकिल एक ही बारी में कर लूंगा मैं काम तो आपको लग रहा है ना कि 64 बिट सिस्टम जो है वो थोड़ा ज्यादा परफॉर्मेंस वाइज बढ़िया होगा अच्छे से कैलकुलेशन कर पाएगा ज्यादा बड़ी अमाउंट का कैलकुलेशन कर पाएगा ठीक है तो यह तो कुछ हो गए आपके इंट्रोडक्शन टाइप्स हो गया कि भाई 32 बिट सिस्टम होता क्या है बेसिकली सब रजिस्टर्स का खेल है रजिस्टर्स क्या होते हैं सीपीयू के अंदर वो लोकेशन जहां पर एक्चुअल कैलकुलेशन होती है जो डेटा को लोड किया जाता है यह सारा डटा रजिस्टर में लोड होता है तब जाके एडिशन डिशन डिवीजन जो भी मल्टीप्लाई डिवाइड प्लस जो भी माइनस सब होता है ठीक है तो ये आपका हो गया तो अब मैं बोलू कि यार एक क्वेश्चन है छोटा सा कि 64 बिट की एडवांटेज क्या है 32 बिट प दो एडवांटेज तो हम डिस्कस कर चुके हैं ठीक है अब थोड़ा फॉर्मली और डिस्कस कर लेते हैं क्या एडवांटेजेस है इसकी ठीक है तो पहले एडवांटेज तो हमारी वही हो गई जो सबसे पहले हमने डिस्कस करी दो जो कि है एड्रेस बल स्पेसेस ठीक है इसमें मैं बोलूं तो जो आपका 32 बिट का सीपीयू है इसमें 32 बिट का रजिस्टर लगा हुआ है वो 2 की पावर 32 डिफरेंट लोकेशंस डिफरेंट लोकेशंस आपकी एड्रेस कर सकता है ठीक है वहां पर जा सकता है इसका मतलब क्या हुआ यार सीपीयू में जो रम होती है ना आपकी ये जो रम है ये रो से लेके 2 की पावर 32 माइनस इतनी लोकेशन तक ना आपकी ये बेसिकली मैं बोल सकता हूं चंक्स बने हुए हैं और उनके एड्रेसस है ये तो पहला एड्रेस जो मैं बोलूंगा अगर पहला एड्रेस में बोलूंगा तो वो होगा मेरा जीरो एड्रेस दूसरा वन एड्रेस 3 4 5 ऐसे करते करते करते करते जाएगा तो अगर एक 32 बिट का रजिस्टर इसको कैसे लोड करेगा इस एड्रेस को वो मैं बता देता हूं वो कैसे लोड करेगा वो लोड करेगा यह आपका चार बाइट्स होंगे ठीक है 32 तक ये आपका जीरो 0 0 0 वन ठीक है ये आपका मतलब फर्स्ट एड्रेस होगा आफ्टर जीरो जीरो थ एड्रेस होगा फिर फर्स्ट एड्रेस होगा ठीक है इंडेक्स जीरो से बात करूं तो मैं इस तरीके से होगा मैं ये मैं हेक्स में लिख रहा हूं ठीक है एकस में लिख रहा हूं तो जो लास्ट एड्रेस होगा इसपे वो होगा आपका एफएफ एफएफ एफएफ एफएफ ठीक है पहली बाइट दूसरी बाइट तीसरी बाइट चौथी बाइट ठीक है ये आपका लास्ट एड्रेस होगा तो अगर मैं कहूं यहां पर 2 की पावर 32 -1 यानी एफएफ एफएफ 2 की पावर 32 डिफरेंट एड्रेसस लोकेट हो पा रहे हैं जीरो थ एडर्स हमने देख लिया वो जीरो होगा और जो लास्ट एड्रेस होगा वो आपका ये होगा ठीक है तो अगर मैं 64 में बात करूं 64 में ये कितने होंगे 64 में ये चीज यहां से कहां तक जा रही होगी 2 की पावर 64 -1 ठीक है आ बाइट में हमें सब कुछ डालना है तो ये मेरे आठ बाइट हुए मान लो 1 दोती 4 पा 6 सा ठीक है ये पहली बाइट दूसरी बाइट तीसरी बाइट चौथी बाइट पांचवी बाइट छठी बाइट सातवी बाइट ये आठवी बाइट ठीक है ऐसे जो इसका लास्ट एड्रेस होगा ठीक है ये फर्स्ट एड्रेस है जीरो इंडेक्स से लास्ट एड्रेस होगा वो एफएफ एफएफ एफएफ एफएफ यह इसका लास्ट एड्रेस होगा यह फर्स्ट एड्रेस होगा यहां अगर मैं जीरो कर दूंगा तो ये जीरो एड्रेस होगा तो इस तरीके से एड्रेस चल रहे होते हैं तो ये डिफरेंट डिफरेंट मेमरी के एड्रेसस इस तरीके से यहां पर मैं रजिस्टर्स में बेसिकली विजुलाइज कर सकता हूं तोय हमने डिफरेंस देख लिया कि 64 के अंदर 64 के अंदर इतना बड़ा एड्रेस तक हमारा सीपीयू एलोकेट बेसिकली लोकेट कर सकता है उस घर को उस एड्रेस को वहां पर जो डाटा पड़ा है उसको पढ़ सकता है 32 के अंदर यह चीज हम नहीं कर सकते ठीक है दूसरा डिफरेंस क्या हो सकता है दूसरा डिफरेंस मतलब पहले का ही पहले डिफरेंस का ही एक्जिस्टेंस है एक्सटेंशन बोल सकता हूं रिसोर्स यूसेज जो है क्या मैं बोल सकता हूं 64 वाले के अंदर रिसोर्स यू ज्यादा बेटर तरीके से हो पाई है मतलब अगर मान लो 32 बिट के अंदर मैंने एक एक्स्ट्रा रम इंस्टॉल कर दी 32 बिट के अंदर एक एक्स्ट्रा रम इंस्टॉल कर दी तो वो यूब ही नहीं है रम ठीक है एक ही रम एक बारी में काम कर रही होगी ठीक है तो ये तो आपका बेकार चीज हो गई तो 32 बिट के अंदर एक 4gb से ज्यादा मेम सपोर्ट ही नहीं कर सकता बट मैं यह काम 64 बिट के अंदर कर सकता हूं 64 बिट के अंदर 4gb तो क्या मतलब देखा था ना कितना बड़ा नंबर था इतनी ज्यादा रैम्स मैं इंस्टॉल कर सकता हूं तो मैंने मान लो 4gb की एक और रैम डाल दी तो मैं वो यूज कर पाऊंगा 64 बिट सिस्टम के अंदर ठीक है तो रिसोर्स यूज य थोड़ा बेटर है अब तीसरा मेरा पॉइंट आता है परफॉर्मेंस का परफॉर्मेंस तो अभी हमने देखा अगर कैलकुलेशन मुझे करनी है ठीक है सीपीयू का काम क्या होता है यार सीपीय का काम कैलकुलेशन करना ही होता है वो हर टाइम कैलकुलेट ही करता रहता है कुछ ना कुछ ठीक है तो कैलकुलेशंस का काम 64 बिट सिस्टम के अंदर फास्ट होता है क्योंकि व ज्यादा नंबर ऑफ अमाउंट ऑफ डेटा एक बारी में प्रोसेस कर पाता है ठीक है एक बारी में 64 बिट्स को उठा के प्रोसेस कर पा रहा है वो अगर मुझे डाटा ऐड सबै भी करना है तो भी वो 64 बिट लेंथ का डाटा को एक बारी में कर पाएगा वहां पर 32 बिट का एक बारी में कर पाएगा तो अगर मैं 64 कराना था तो मुझे 32 32 के चंक में उठा के काम करना पड़ रहा था ठीक है तो परफॉर्मेंस वाइज भी हमने डिस्कस कर लिया कि 64 जो है वो बेटर है 32 से ठीक है तो इसको अगर मैं सराइज करूं तो मैं बोल सकता हूं कि 32 बिट का जो प्रोसेसर है आपका वो एक इंस्ट्रक्शन साइकिल में 32 बिट की इंस्ट्रक्शन या डाटा प्रोसेस कर सकता है और यहां पर 64 बिट में एक इंस्ट्रक्शन साइकिल में 64 बिट की इंस्ट्रक्शन को या डाटा को फैच कर सकता है तो डबल अमाउंट ऑफ वर्क कर पा रहा है एक ही साइकिल में अब मैंने आपको क्या बोला था कि साइकिल बड़ी इंपोर्टेंट है सीपीयू के अंदर और एक साइकिल क्या होती है अगर साइकिल को थोड़ा डिफाइन करना चाहूं तो सीपीयू के अंदर एक सेकंड के अंदर लाखों थाउजेंड बिलियंस ऑफ साइकिल्स हो सकती है डिपेंडिंग अपन जो आपका सीपीय है वो कितना ज्यादा फास्ट है जो आपको गिगा हर्ट्स बोलता है ना बोलते हैं ना 1 गिगा हट 4 गिगा हट्स जो वो ये है कि एक सेकंड में कितनी साइकिल्स कर पा रहा है वो ठीक है तो एक इंस्ट्रक्शन साइकिल जो है वो कितना डाटा को फैच कर पा रहा है 64 में वो ज्यादा है ठीक है तो एक साइकिल प ही डिफरेंस आ गया तो सेकंड में तो बहुत डिफरेंस आ जाएगा क्योंकि एक सेकंड में तो थाउजेंड्स ऑफ साइकिल्स होती है ठीक है तो हमें समझ आ रहा है कि यार जो 64 बिट है ना वो बढ़िया है आपका किस टर्म में परफॉर्मेंस की टर्म में ठीक है तो ये आपको हो गया अगर मैं बोलूं कि और चौथा पॉइंट क्या है इसको डिस्कस करने के लिए हम नोट्स प आ जाते हैं साथ ही साथ नोट्स प भी नजर डाल ही लेंगे तो अगर मैं देखूं तो पहला पॉइंट हमने डिस्कस कर लिया दूसरा तीसरा भी डिस्कस कर लिया चौथा पॉइंट मेरा कंपैटिबिलिटी का है कंपैटिबिलिटी का मतलब कि जो 64 बट का सीपीयू है ना वो 32 बिट का ओस भी चला सकता है और 64 बिट का भी ओस चला सकता है मतलब तो डाउनलोर्ड कंपैटिबिलिटी है इसके अंदर क्योंकि 64 बिट का मेरे पास सीपीयू ही है ठीक है तो 32 बिट तो चला ही पाएगा ना वो क्योंकि जीरो से 32 बिट के जो ब्लॉक्स है 32 ब्लॉक्स है वो फिड रहेंगे बाकी सारे जीरो रहेंगे मैं कर सकता हूं बट 32 बिट के सीपीयू के अंदर सेफ 32 बिट का स चल सकता है 64 का नहीं चल सकता है तो मैं बोल सकता हूं कि 64 बिट यहां भी बेटर है ठीक है अब लास्ट पॉइंट य है कि जो आपका 64 बिट का जो सिस्टम होता है ना उसके अंदर बेटर ग्राफिक परफॉर्मेंस भी होती है कैसे बेटर होती है या ग्राफिक्स में ना हैवी ग्राफिक कंप्यूटेशन होती है ठीक है आप मतलब जो गेम्स वगैरह खेलते हो ना उसके अंदर बहुत ही बड़े-बड़े इंटी जर्स प्लस माइनस हो रहे होते हैं बहुत तगड़ी कंप्यूटेशन चल रही होती है तो 64 बिट के अंदर आठ बाइट के ग्राफिक कैलकुलेशन एक साइकिल में हो जाएंगे अब इतनी बड़ी डबल अमाउंट एज कंपेयर टू 32 बिट हो पा रहा है तो यहां पे ग्राफिक्स की कैलकुलेशन काफी बेटर रहेंगी तो जितनी भी ग्राफिक इंटेंसिव एप्लीकेशन है वो भी फास्ट रन करेंगी और एफिशिएंट रन करेंगी ठीक है तो ये आपके पांच पॉइंट हो गए जो बेसिकली यह बता पा रहे हैं यह चीक चक के बोल रहे हैं कि 64 बिट का सिस्टम जो है वो बेटर है 32 बिट के तो यह थे आपके कुछ पॉइंट्स और यही सराइज करते हैं य इतना ही बोलना है आपको इंटरव्यू के अंदर ठीक है इतना मतलब ये तो काफी ज्यादा बोल दोगे आप तीन चार पॉइंट भी बोल दोगे तो सब समझ आ जाएगा उसको मेन इसमें पॉइंट जो मैं बोलू जो आपको दिमाग में रखना ही रखना है वो पहला पॉइंट तो यह एड्रेस बल स् कितनी है और दूसरा परफॉर्मेंस कैसे बेटर है ठीक है ये दो पॉइंट बहुत ज्यादा इंपोर्टेंट है इसके अंदर तो आज के इस लेक्चर में इतना ही मिलते हैं नेक्स्ट लेक्चर पे गुड बाय हेलो जी कैसे हो सारे दिस इज लक्ष तो हम आ चुके हैं आज हमारे ओएस के लेक्चर नंबर एट पर और आज हम डिस्कस करने वाले हैं छोटा सा टॉपिक ब वेरी इंपोर्टेंट टॉपिक क्विक वीडियो होने वाली है ये एक ठीक है तो हम आज डिस्कस करेंगे कंप्यूटर्स में कितने टाइप की स्टोरेजेस होती हैं ठीक है स्टोरेज क्या होती है सबको पता है फाइल स्टोर होती है वहां पे या फिर बेसिकली कोई डाटा स्टोर होता है ठीक है कोई इंस्ट्रक्शन स्टोर होती है तो कितने टाइप की स्टोरेजेस कंप्यूटर में यूज हो ऑफ स्टोरेजेस तो यार मैं बात करूं ना अगर तो कंप्यूटर में सबने रम सुना है हार्ड डिस्क भी सुनी होगी सबने हार्ड डिस्क जैसा कुछ होता है बट इसके अलावा भी बहुत सारी स्टोरेजेस होती हैं तो अगर मैं एक हिरा की का स्ट्रक्चर बनाऊं तो मैं राक स्ट्रक्चर आपको सीधा नोट्स प दिखाता हूं तो ये देखो कुछ इस टाइप का स्ट्रक्चर आपको दिखेगा एक कंप्यूटर के अंदर सबसे ऊपर हमें दिख रहा है रजिस्टर फिर कैश फिर मेन मेमोरी मेन मेमोरी हम रम को बोल रहे हैं सबको पता है उसके बाद हमारी डिस्क आती है डिफरेंट टाइप्स की तो अगर मैं बोलू ना जो रजिस्टर वाला कंपोनेंट है दिस इ क्लोज टू सीपीयू यह सीपीयू से सबसे ज्यादा क्लोज होता है ठीक है यह सबसे ज्यादा क्लोज होता है सीपीयू से रजिस्टर होता क्या है रजिस्टर में बोलूं एक स्मॉलेट यूनिट ऑफ स्टोरेज होती है मतलब सीपीयू इस रजिस्टर पर या किसी रजिस्टर पर ही काम कर रहा होता है एक एरे जैसा स्ट्रक्चर होता है ठीक है उसके अंदर जीरो वन जीरो वन आप स्टोर कर सकते हो और सबको पता है सब आपने बचपन से सुना होगा जो कंप्यूटर जो है वो जीरो व में काम करता है बाइनरी लैंग्वेज में काम करता है जीरो या वन जीरो या वन उसे हाई वोल्टेज पता है या लो वोल्टेज पता है ठीक है तो रजिस्टर जो होता है उसमें 0101 स्टोर होते हैं और उस रजिस्टर पर सीपीयू डायरेक्टली काम कर रहा होता तो मैं बोल सकता हूं कि रजिस्टर जो है स्मॉलेट यूनिट ऑफ स्टोरेज है ठीक है तो रजिस्टर हमारा हो गया स्मले यूनिट ऑफ स्टोरेज ठीक है इसी के अंदर एडिशन होगा डिली होगा सारे इंस्ट्रक्शन इसी में फैच होके आते हैं और सीपीयू उन पर काम करता है ठीक है फिर फिर रजिस्टर के बाद जो सेकंड स्टोरेज है सेकंड लेवल ऑफ स्टोरेज है वो आता है आपका कैश ठीक है अब कैश क्या है कैसे क्या है कि एडिशनल मेमोरी है एडिशनल मेमोरी है जो कि कुछ टेंपर री मेमोरीज को स्टोर करने के काम आती है टेंपररी मेमरी कौन-कौन सी होती है टेंपररी इंस्ट्रक्शंस हो गई कुछ टेंपररी डाटा हो गया और ज्यादा बोलो ना तो उन चीजों में यूज होती है जो ऐसे डाटा या ऐसे इंस्ट्रक्शन एरिया या फिर ऐसी फाइल्स जो कि सीपीयू को सबसे ज्यादा जरूरत है जब भी आप कोई प्रोग्राम चलाते हो ठीक है उसके अंदर क्या होता है बहुत सारा बहुत सारे इंस्ट्रक्शंस होती है आपने कोड लिखा हुआ बहुत बड़ा कोड बेस है बहुत सारी इंस्ट्रक्शन होती है बहुत सारा डाटा वो बहुत सार टा पे वो प्रोग्राम काम कर रहा होता है ठीक है तो दो चीज हो गई यहां पर इंस्ट्रक्शंस हो गई डाटा हो गई जो आपने इंस्ट्रक्शन लिखी हुई है कई बार रिपिटेटिव इंस्ट्रक्शंस भी होती है कि आपके प्रोग्राम में बहुत बार सर्टिंग का इंस्ट्रक्शन लिखी हुई है या किसी एक पर्टिकुलर डाटा एरिया पे किसी पर्टिकुलर दो चार फाइल्स पे आप बहुत ज्यादा काम कर रहे होते हो उस पर्टिकुलर प्रोग्राम में ठीक है तो क्या करता है अब सीपीयू इंटेलिजेंट होता है थोड़ा सीपीयू नहीं ओएस इंटेलिजेंट होता है यहां पे सब कुछ तो ओस ही कर रहा है तो ओएस क्या करता है कि यार वो वो पहचानता है कि कुछ इंस्ट्रक्शंस है जो जो कि ना यह प्रोग्राम बार-बार बार-बार यूज करता है सेम इंस्ट्रक्शन को ठीक है पूरे प्रोग्राम की लाइफ साइकिल में पूरी प्रोसेस में तो क्या करता है क्यों ना मैं इनको डायरेक्टली मेन मेमरी से फैच करने की बजाय मेन मेमोरी में प्रोसेस डिसाइड करती है ठीक है डायरेक्टली वहां से फैच करने की बजाय मैं थोड़ा और उसको ना सीपीयू के पास रख देता हूं ठीक है अभी हम ये टर्म यूज कर रहे हैं सीपीयू के पास रख देता हूं ठीक है तो उन इंस्ट्रक्शंस को उठा के उन बंच ऑफ इंस्ट्रक्शन सारे इंस्ट्रक्शन नहीं सारे इंस्ट्रक्शंस तो प्रोग्राम की मेन मेमोरी में पड़ी हुई है ठीक है कुछ पर्टिकुलर इंस्ट्रक्शन उठाई मैंने जो कि सबसे ज्यादा यूज हो रही है उसको उठा के मैंने कैश में डाल दिया इससे क्या हुआ अब सीपीयू को ना ज्यादा दूर जाना नहीं पड़ रहा अभी दूर का मतलब मैं समझूंगा कॉस्ट होती है हर चीज की ठीक है तो मेन मेमोरी से एक्सेस करने की कॉस्ट सबसे ज्यादा होती है इन प्राइमरी मेमोरीज में से ठीक है कैश में कैशय से कुछ भी एक्सेस करने की कॉस्ट सबसे कम होती है कॉस्ट यहां पे क्या है एक्सेस का टाइम मतलब कितनी जल्दी कितने मिली सेकंड्स में आप डाटा को एक्सेस कर पा रहे हो तो फास्ट एग्जीक्यूशन के ला हम क्या करते हैं वो वाले जो रिपीटिटिवली से काम कर पाए हमारा ओवरऑल प्रोग्राम की एग्जीक्यूशन फास्ट हो जाए फिर आता है आपका मेन मेमोरी मेन मेमोरी पे हम पूरे लेक्चर प बहुत टाइम से बात कर ही रहे हैं रम एक मेन मेन मेमोरी है यहां पे प्रोसेसर डिसाइड करती हैं ठीक है सीपीयू मेन मेमोरी से कांटेक्ट करता है बात करता है वहीं से ही आपको सीपीयू को इंस्ट्रक्शंस मिलती है ठीक है फिर मेन मेमोरी के बाद आपके पास क्या आता है मेन मेमोरी के बाद आती है आपकी सेकेंडरी मेमोरी सेकेंडरी मेमोरी आपकी वो हो गई हार्ड डिस्क यहां पर आप स्टोर करते हो क्या यहां पर आप फाइल स्टोर करते हो मीडिया अपना स्टोर करते हो जैसे जैसे प्रोग्राम जैसे हमने पिछली वीडियो में डिस्कशन किया था कि प्रोग्राम अंडर एग्जीक्यूशन इज प्रोसेस तो जो प्रोग्राम होता है सेकेंडरी मेमोरी में पड़ा होता है ठीक है फिर मैं उसे मेमोरी में लेक आता हूं यानी कि मेन मेमोरी लेके आता था तब वो प्रोसेस बनता है राइट तो यहां पर प्रोग्राम्स पड़े होते हैं आपके ठीक है फाइल्स पड़ी होती है आपकी ऑडियो वीडियो ठीक है आप जो भी आप आपके प्रोजेक्ट्स हैं वो सब पड़े होते हैं तो मैं मोटा-मोटा बोलूं हमने सबको पर्टिकुलर एक एक एक एक उठा के डिस्कस कर लिया तो मैं बोल सकता हूं कि जो स्टोरेजेस हैं वो मोटा-मोटा दो चीजों में डिवाइड होती है दो बेसिकली इसके मैं टाइप्स बता बोल सकता हूं जो कि पहला टाइप है प्राइमरी मेमोरी दूसरा सेकेंडरी मेमोरी प्राइमरी मेमोरी में भी तीन मेमोरीज आती हैं मेन मेमोरी कैसे रजिस्टर रजिस्टर सीपीयू के सबसे पास होता है ठीक है और रजिस्टर से सबसे फास्ट एक्सेस भी होता है कैसे उससे थोड़ा दूर वहां पे सबसे ज्यादा यूज़ होने वाली इंस्ट्रक्शंस और फाइल्स को हम रखते हैं इंस्ट्रक्शंस और डाटा को हम रखते हैं ठीक है फिर आपका आता है मेन मेमोरी फिर आप कहते सेकेंडरी मेमोरी सेकेंडरी मेमोरी में बहुत सारे डिस्क्स भी आती है अब सेकेंडरी मेमोरी में थोड़ी इन सबसे फास्ट जो हमने यहां पे लिखे हैं सबसे फ एसएसडी भी है सॉलिड स्टेट ड्राइव ठीक है तो अब ये हमारे हो गए डिफरेंट टाइप ऑफ स्टोरेज डिवाइसेज ठीक है अब हम डिस्कस करते हैं इनका कंपैरिजन ठीक है तो कंपैरिजन ना हम दो-तीन पॉइंट्स पे करेंगे ठीक है सबसे पहला मैं करूंगा कॉस्ट जो कॉस्ट है ना कॉस्ट मैं यहां पर रुपए पैसे वाली बात कर रहा हूं ठीक है इनको मैन्युफैक्चरिंग में कितनी कॉस्ट आती है जो रजिस्टर होता है ना वह सबसे ज्यादा महंगा होता है ठीक है तो वह महंगा क्यों होता है क्योंकि व ट्रांजिस्टर से बना हुआ है ठीक है बिलिस ऑफ ट्रांजिस्टर से बना हुआ है जो और सीपीयू से सबसे क्लोज है ठीक है उसके अंदर सिलिकन और इस टाइप के जो आपके रेयर मेटल्स होते हैं इनका यूज होता है ठीक है तो क्योंकि को मुझे सबसे ज्यादा फास्ट करना है सबसे ज्यादा फास्ट एक्सेस चाहिए सीपीय क्योंकि डायरेक्टली इससे कम्युनिकेट कर रहा है तो इसको मुझे मैं चाहता नहीं हूं कि इसके इससे डाटा एक्सेस करने में मुझे कोई डिले आए इसलिए मैं इसको सबसे बेस्ट मटेरियल से बनाता हूं ठीक है बेस्ट मटेरियल से बनाता हूं वो बेस्ट मटेरियल लाने के चक्कर में वो कॉस्टली हो जाता है तो रजिस्टर सबसे ज्यादा कॉस्टली होता है उसके बाद आती है कैश कैश जो होती है कैश जो होती है वो रजिस्टर से थोड़ी सी सस्ती बट मेन मेमोरी से महंगी स्टिल महंगी ठीक है उसके बाद आपका मेन मेमरी आती है यह आपका प्राइमरी मेमरी के तीन डिवीजन हो गए कि सबसे महंगा हो गया आपका रजिस्टर फिर कैश फिर मेन मेमोरी बाकी फिर उसके बाद सेकेंडरी स्टोरेज तो सस्ती होती है जो हार्ड डिस्क होती है वह आपको एक टीबी की भी मिल जाएगी दोती हज की बट रम नहीं मिलेगी आपको एक टीबी की रम तो दो 3000 की आपको 1 जीब की मिल रही होगी ठीक है तो यह कुछ होता है ठीक है दूसरा है आपका कॉस्ट पर हमने डिस्कशन कर ली कॉस्ट के दूसरे पॉइंटर आता है आपका एक्सेस स्पीड ठीक है तो सबसे ज्यादा स्पीड स्पीडी एक्सेस सबसे ज्यादा स्पीडी एक्सेस किसका होता है रजिस्टर का फिर कैश का फिर मेन मेमोरी का ठीक है सेकेंडरी सबसे पीछे है इसमें ठीक है अब तीसरा पॉइंटर जो हमारा है तीसरा पॉइंटर जो हमारा है वह है स्टोरेज साइज स्टोरेज साइज अब स्टोरेज साइज में भी यार मैं बात करूं ना तो रजिस्टर का स्टोरेज सबसे छोटा होता है ठीक है रजिस्टर कैसा होता है रजिस्टर होता है 32 बिट का एक रजिस्टर 64 बिट का एक रजिस्टर ठीक है तो सबसे छोटा इसका मतलब साइज बोल सकता हूं मैं इसमें आपकी सिर्फ 32 बिट की इंफॉर्मेशन स्टोर हो पाएगी ठीक है कैसे उससे थोड़ा ज्यादा कुछ केबीज में होती है कैश फिर मेन मेमोरी आपकी आजकल जीबीज में होती है ठीक है और आप हार्ड डिस्क तो पता ही है आपको ठीक है एक डीबी दो टीबी तो ऐसा क्यों है यार कि रजिस्टर कैश जो है ये स्पेस इनकी कम रखी हुई है पहली बात सबसे प पला मेन फैक्टर तो कॉस्ट का है क्योंकि इतनी महंगी है तो एक टीबी का रजिस्टर या फिर एक टीबी की कैसे बनाने के लिए कितना ज्यादा पैसा वेस्ट होगा तो क्या आप उस कंप्यूटर को खरीदोगे तना महंगा होगा ठीक है तो इसलिए यह कॉस्ट फैक्टर यहां पर आता है ठीक है फिर अब तीसरा सॉरी चौथा चौथा पॉइंटर हमारा क्या है चौथा पॉइंटर हमारा है वोलेट टिटी क्या फैक्टर है देखो हम सब सबने पढ़ा है कि जो जब कंप्यूटर बंद हो जाता है बंद होने के बाद जो प्रोसेसेस पहले थी उसमें वो प्रोसेसेस रहती नहीं है ठीक है वो प्रोसेसेस चली जाती है वोलेटाइल स्टोरेज होती है यानी कि फिर वैनिशर स्टोरेजेस के अंदर चीजें आती है ना रजिस्टर कैश मेमोरी कंप्यूटर बंद होने के बाद सारा डाटा उड़ जाता है ठीक है फ्लश ऑफ हो जाता है पर सेकेंडरी के अंदर फ्लश ऑफ नहीं होता सेव्ड रहता है डाटा ठीक है तो ये आपके चार पॉइंट्स में इसका हमने कंपैरिजन पढ़ लिया ठीक है य चार पॉइंट में कंपैरिजन हो गया हमारा तो इतने टाइप की आपने डिफरेंट टाइप ऑफ स्टोरेजेस पढ़ ली आपको मोटा मोटा आईडिया हो गया है कि कंप्यूटर के अंदर कितने टाइप की स्टोरेज होती हैं और सबका क्या रूल होता है ठीक है किसका साइज ज्यादा है किसका कम है किसका साइज क्यों ज्यादा है क्यों कम है किसका एक्सेस फास्ट है किसका स्लो है ठीक है तो इसी के साथ इस छोटी सी वीडियो को खत्म करते हैं मिलते हैं नेक्स्ट लेक्चर में गुड बाय हेलो जी कैसे हो सारे दिस इ लक्ष तो हम आ चुके हैं हमारे ओएस सीरीज के लेक्चर नंबर नाइन पर और आज हम ऑफिशियल शुरू करने वाले हैं हमारे प्रोसेस मैनेजमेंट का पार्ट प्रोसेस क्या होता है ठीक है प्रोसेस कैसे क्रिएट होती है ओएस प्रोसेस को क्रिएट करते हुए कौन-कौन से स्टेप करता है कौन-कौन से डिफरेंट डेटा स्ट्रक्चर्स यूज होते हैं जब हम प्रोसेस को मूव करते हैं एक स्टेट से दूसरे स्टेट में कंटक्ट स्विचिंग क्या होता है ठीक है इसके बारे में बात हम कर चुके हैं काफी चीजों के बारे में बात थोड़ा-थोड़ा हम लोग कर चुके हैं आपको ग्लिम्स होंगे प्रोसेस होता क्या है बट हम ऑफिशियल इसको थोड़ा ढंग से आज डिस्कस करेंगे फिर से ठीक है तो सबसे पहले शुरू करते हैं यार प्रोसेस क्या होता है व्ट वाला पार्ट ठीक है तो यार प्रोसेस सीखने से पहले इसको थोड़ा जल्दी से कवर करेंगे प्रोसेस सीखने से पहले मैं बोलूंगा कि यार हमारे पास हम प्रोग्राम जैसे कैसे लिखते हैं अगर मैं आप सिंपली c प् प् का प्रोग्राम लिखते हो तो आप एक डॉट सीपीपी फाइल बनाते हो राइट डॉट सीपीपी फाइल बनाते हो ठीक है और इस फाइल को को क्या करते हो आप कंपाइलर को देते हो कंपाइलर क्या करता है इसको कंपाइल करता है और कंपाइल करके क्या करता है वह इसकी एग्जीक्यूटेबल बना देता है ठीक है अब जो एग्जीक्यूटेबल बनने वाला पार्ट है ना जो यह यह फाइनल जो प्रोडक्ट बना है एग्जीक्यूटेबल इसको मैं प्रोग्राम कहता हूं प्रोग्राम क्या है कुछ नहीं ऐसा कोड या फिर बोल सकता ऐसा डाटा जो कि रेडी टू एग्जीक्यूट हो मतलब एग्जीक्यूट करने के लिए बस तैयार बैठा है आपका जो टेक्स्ट फाइल में कोड लिखा था वो रेडी टू एग्जीक्यूट नहीं होता ठीक है वो मशीन कोड में बेसिकली कन्वर्ट होता है थ्रू कंपाइलर तो कंपाइलर का काम होता है उसके एग्जीक्यूटेबल बनाना तो प्रोग्राम कुछ नहीं है एक एग्जीक्यूटेबल है और प्रोग्राम कहां पर रिसाइट करता है कहां पर रहता है प्रोग्राम प्रोग्राम रहता है आपका डिस्क में ठीक है जैसे माय कंप्यूटर प आपको आपके पास कोई मान लो जीटीए गेम है तो आप डबल क्लिक करते हो तब वो खुलता है ठीक ठीक है तो वो प्रोग्राम पहले भी डिस्क के अंदर ही पड़ा है ठीक है तो प्रोसेस क्या है भैया फिर जब इस प्रोग्राम को एग्जांपल लेता हूं मैं एग्जांपल लेता हूं मैं टिकटक का फिर से क्या होगा अब इसकी एग्जीक्यूशन में आने की प्रोसेस शुरू होगी यानी कि ओएस अब क्या करेगा ओस क्या करेगा प्रोग्राम को कन्वर्ट करेगा प्रोसेस में ठीक है तो ओस प्रोग्राम को प्रोसेस में कन्वर्ट करता है इसलिए ना एक छोटी सी डेफिनेशन होती है प्रोसेस की जिसको मैं बोलता हूं प्रोग्राम अंडर एग्जीक्यूशन प्रोग्राम अंडर एग्जीक्यूशन ठीक है यह छोटी सी डेफिनेशन है आप सिंपली कोई भी आपसे पूछे आप सिंपल बोलना है आपको प्रोग्राम अंडर एग्जीक्यूशन इज अ प्रोसेस ठीक है प्रोग्राम कोई पूछेगा आप बता दोगे ठीक है तो ये हमारा हो गया प्रोसेस तो बेसिकली अब मैं बोलूंगा प्रोसेस जो होती है ठीक है वो बेसिकली एक क्या होता है वो एक यूनिट ऑफ वर्क डन बाय ए कंप्यूटर होता है ठीक है मतलब क्या है इसका कि आपको कंप्यूटर से कुछ काम कराना है ठीक है कंप्यूटर क्या है कंप्यूटर हार्डवेयर का लॉजिकल बेसिकली एसोसिएशन ही तो है सीपीयू रखा है मेमोरी रखी है ठीक है आपको कंप्यूटर से कुछ काम कराना है काम कराने के लिए जो बेसिकली जो बोल सकता हूं जो चीज यूज होती है वो एक प्रोसेस है ठीक है वो एक प्रोग्राम है और प्रोग्राम के थ्रू ही आप कोई काम कंप्यूटर से करवा सकते हो तो अगर मैं व्ट वाला पार्ट आपको समझ आ गया है कि व्ट इज ए प्रोसेस अब एक छोटा सा पार्ट डिस्कस करते हैं जो कोई डिस्कस नहीं करेगा व्हाई व्हाई प्रोसेस ठीक है कहते हैं ना कि आपको क्यों कहां कब कैसे पता होना चाहिए तो उसमें वट वाला पार्ट हमने डिस्कस कर लि वय प्रोसेस तो वय प्रोसेस का सिंपल यही आंसर है कि यूजर को कोई काम कराना है अपना काम कराना है तो काम कराने का एक जरिया है एक वे है ठीक है तो इसलिए यूजर खुद का एक कोड लिखता है कोड लिख के उसको प्रोग्राम में कन्वर्ट करता है थ्रू कंपाइलर और फिर प्रोसेस बनाते हैं और प्रोसेस जो है व ओस एग्जीक्यूट करता है और हमें जो भी इंटेंडेड वर्क है उस प्रोग्राम का वो आपको होता हुआ दिखता है ठीक है यह बेसिकली आपका इंट्रोडक्शन हो गया प्रोसेस का प्रोसेस होती क्या है ठीक है अब दूसरा हम आते हैं कि अब हमने पढ़ लिया कि प्रोग्राम तो हमारा डिस्क के अंदर था प्रोग्राम हमारा डिस्क के अंदर था प्रोग्राम से प्रोग्राम से प्रोसेस की जर्नी यह कैसी जर्नी है क्याक होता है इसके बीच में ठीक है क्याक होता है इसके बीच में और कौन करता है इसके बारे में जानते हैं तो जब प्रोग्राम से प्रोसेस कन्वर्ट हो रहा होता है ना तो ये सारा काम कौन करता है ऑपरेटिंग सिस्टम ठीक है ऑपरेटिंग सिस्टम पढ़ रहे हैं ऑपरेटिंग सिस्टम ही तो काम करेगा राइट तो मैं क्वेश्चन बोलूं कि हाउ ओस क्रिएट्स अ प्रोसेस ठीक है कैसे क्रिएट करता है तो यार इसके क्रिएशन के ना पांच स्टेप्स होते हैं ठीक है इसको पांच स्टेप्स में समझेंगे कि कैसे कैसे यह काम होता है एक्चुअली तो सबसे पहला स्टेप सबसे पहला स्टेप आपका है लोड द प्रोग्राम एंड स्टैटिक डाटा टू मेमोरी ठीक है मेमोरी यहां पे क्या है रम ठीक है मेन मेमोरी की बात कर रहे हैं हम तो सबसे पहले क्या होगा जो प्रोग्राम है आपका जो कि डिस्क के अंदर है वो उठके आपका उसका जो जो प्रोग्राम का जितना भी डाटा है वो उठके आपका मेमोरी के अंदर जाएगा कॉपी होएगा ठीक है लोड होगा लोड होने के साथ-साथ कुछ स्टैटिक डेटा है वो भी लोड होगा स्टैटिक डाटा मैं किसे कह रहा हूं ऐसा डाटा जो कि इनिश इजेशन के लिए यूज होता है ठीक है यूज्ड फॉर इनिश इजेशन अब इसको समझते हैं ये इनिला जशन के लिए कौन सा डाटा यूज होता है यार आप लोग सी प् प् में कोड लिखते हो राइट कोड लिखते हो मान लो मैंने एक कोड लिखा कैर स्टार नेम ठीक है पॉइंटर बनाया और मैंने इसको लक्ष्य करके ऐसे एलोकेट कर दिया अब ये क्या है ये आपका प्रोग्राम के अंदर लिखा हुआ है लक्ष्य ठीक है आपने इसको डायनेमिक एलोकेट नहीं किया पहले से ही लिखा हुआ है तो मैं इसको बोलूंगा एक स्टैटिक डाटा है ये ठीक है तो जब प्रोग्राम लोड होता है तो सारे इंस्ट्रक्शंस तो लोड होती ही होती है साथ में स्टैटिक डाटा भी लोड होता है ठीक है ये स्टैटिक डाटा क्यों लोड होता है क्योंकि जब भी जब भी ये प्रोग्राम प्रोसेस में कन्वर्ट होगा तो ये नेम नाम का वेरिएबल एक प्रोसेस के अंदर प्रोसेस के अंदर नेम नाम का वेरिएबल बनेगा तो इसको किस चीज से इनिश इज करेंगे ठीक है तो वो डाटा है वो डटा है आपका स्टैटिक डाटा तो ऐसे-ऐसे स्टैटिक डाटा ना हम बेसिकली ओएस क्या करता है कॉपी करके रखता है फिर जैसे ही प्रोग्राम जो है प्रोसेस में कन्वर्ट होता है तो हम बेसिकली रेलीवेंट डाटा को जाके और जहां जहां पर अप्लाई करना है वहां ज जाके हम उसको बेसिकली असाइन कर देते हैं अप्लाई नहीं असाइन कर देते हैं ठीक है तो मैं बोल सकता हूं कि यह डाटा अलग से जो ओएस है स्टैटिक डाटा की तरह कॉपी करता है कॉपी करके जब भी नीड होती है जब भी प्रोग्राम जो है बेसिकली लोड होता है व प्रोसेस में कन्वर्ट होता है तो नेम वेरिएबल में क्या असाइन करना है वो उसे पता होना चाहिए इसलिए वो यहां से उठा के लक्ष्य नाम को स्ट्रिंग को असाइन कर देगा ठीक है तो ये मेरा हो गया स्टैटिक डाटा तो इनिला इजेशन के लिए यूज होता है जितने भी इनिश इजेशन के डाटा होते हैं ना मान लो मैं अब सिंपली बोलूं कि आपने कुछ मान लो कोई एरे है ठीक है कोई एरे इनिला इज की हुई है ठीक है कोई मान लो आप सिंपली लिखते हो ना इंट a इ 0 करके अपने इलाज किया हुआ है तो जीरो वैल्यू कैसे पता लगेगी कि a को जीरो से ही करना है ठीक है तो ये स्टैटिक डाटा सब कॉपी करा जाता है मेमोरी के अंदर ठीक है तो ये आपका पहला स्टेप हो गया अब हम आते हैं दूसरे स्टेप पे दूसरा स्टेप होता है कि अब हम करेंगे रन टाइम स्टैक को एलोकेट ठीक है एलोकेट रन टाइम स्टैक ठीक है अब आपको पता ही है कि यार दो चीजें यूज होती है प्रोसेस के अंदर जो प्रोसेस इंप्लीमेंट हो रही होती है बेसिकली ओएस के अंदर तो उसमें दो चीजें होती है पहली स्टैक जो कि यूज होता है रिकसिव कॉल जब आप करते हो एक फंक्शन से दूसरे फंक्शन कॉल करते हो ठीक है तो जब एक फंक्शन प आप होते हो दूसरे फंक्शन में कॉल करते हो तो यहां का सारा डाटा ठीक है पेरेंट फंक्शन का सारा डाटा हम एक्टैक प कॉपी करके रख लेते हैं ठीक है और फिर दूसरे फंक्शन पे आप बेसिकली जंप कर जाते हो जंप स्टेटमेंट के थ्रू ठीक है ऐसे ऐसे करके काम होता है तो स्टैक इस काम के लिए य होता है तो हम क्या करते हैं अभी प्रोसेस का सिर्फ डाटा ही लोड हुआ है राइट अब डेटा लोड होने के बाद हमें क्या करना है जो भी स्टैक यूज होगी उस प्रोसेस को रन करने के लिए उस स्टैक को हम एलोकेट कर रहे हैं ठीक है स्टैक क्या थी स्टैक थी एक पार्ट ऑफ मेमोरी जो कि यूज होता है स्टैक क्या है स्टैक इज पार्ट ऑफ मेमोरी यूज्ड फॉर लोकल वेरिएबल ठीक है फंक्शन आर्गुमेंट एंड रिटर्न वैल्यूज ठीक है लोकल वेरिएबल आपको पता है कि उस पर्टिकुलर स्टैक पर जो भी फंक्शन उस टाइम वर्क कर रहा होगा उसके लोकल जितने भी वेरिएबल होंगे वो लोकल वेरिएबल फिर जब आप कॉल करते हो फंक्शन को तो उस फंक्शन आर्गुमेंट जो दे रहे होते हैं वो और रिटर्न वैल्यू जो फंक्शन प रिटर्न करके आती है तो इन सबको हम स्टैक प मैनेज कर रहे होते हैं ठीक है तो इसीलिए हमें रन टाइम टैक की जरूरत है अब दूसरा पार्ट दिमाग में आया होगा आप लोगों के दूसरा पार्ट है अब हम एलोकेट करेंगे एलोकेट करेंगे हीप को कि भई स्टैक तो हमें क्यों चाहिए स्टैक हमें चाहिए फंक्शन कॉल करने के लिए रिकर्स को इनेबल करने के लिए है ना हीप क्यों चाहिए अब जितने एरिया या फिर मैं कहूं जितना डाटा आपने कोड लिखते वक्त एलोकेट कर दिया था इंट ए इंट बी ऐसे लिख लिख के ठीक है वो तो है ही वो तो स्टैटिक डटा है हमारे पास बट अब हमें कुछ डायनेमिक डाटा भी चाहिए हो सकता है रन टाइम प रन टाइम प हम बेसिकली मेलक या फिर न्यू की कॉल देंगे और हीप से मेमोरी मंगवाए कि मुझे मेमोरी चाहिए अभी थोड़ी देर के लिए कुछ काम करना है मेरे को ठीक है तो वो वाला पार्ट ऑफ मेमोरी भी हम एलोकेट करते हैं ठीक है तो पार्ट ऑफ मेमोरी फर डायनेमिक एलोकेशन बोल सकता हूं राइट डायनेमिक एलोकेशन ठीक है तो यह हमारा हो गया यह हमारे तीन स्टेप हो गए बेसिकली एलोकेट कर लिया हमने स्टैक भी ही भी अब चौथा स्टेप प्रोसेस बनने वाली है वेट करो थोड़ा सा और बस अब आयो रिलेटेड टास्क करेंगे हम टास्क अगर मैं इसका एग्जांपल लू आय रिलेटेड टास्क का मतलब हो गया एग्जांपल से सीधा समझते हैं यस्ट में क्या होता है ना जब भी प्रोसेस बनती है ये तीन स्टेप होने के बाद तीन टाइप के बेसिकली आईओ डिस्क्रिप्टर्स बनते हैं एक इनपुट रीडिंग के लिए एक आउटपुट के लिए और तीसरा एरर हैंडलिंग के लिए अब इसका क्या मतलब है इनपुट का मतलब हुआ कि जब भी आप बेसिकली प्रोसेस है प्रोसेस को कभी भी आयो करने जाना होता है राइट मतलब प्रोसेस में कोई ऐसी आयो की इंस्ट्रक्शन आएगी तो वो आयो करने चला जाएगा इनपुट आउटपुट करने चला जाएगा तो इनपुट आउटपुट को इनेबल करने के लिए इनपुट आउटपुट हैंडल्स हम लोकेट कर लेते हैं ठीक है कि भाई कहां से जाके इनपुट आउटपुट करेंगे यह सब चीजें सिमिलरली आउटपुट कहां पर उस प्रोग्राम की आउटपुट कहां लिखी जाएगी ठीक है उसके लिए एक हैंडल उसके लिए बेसिकली एक हैंडल ही बोलते हैं इसको ठीक है और एक एरर हैंडल एरर हैंड मतलब अगर प्रोग्राम कोई एरर जनरेट करेगा तो वो एरर कहां जाएगा अगर मैं सिंपल एक सी प्लस प्स का एग्जांपल लू तो आपने एक वो पड़ी एफ प्रिंट एफ कमांड एफ प्रिंट एफ में पहला आर्गुमेंट मैं देता हूं एसटी डी एरर और फिर मैं लिखता हूं कुछ भी मान लो मुझे प्रिंट करना है हैंग ऐसे अगर नहीं किया तो एक बार जाके देखना इसको गल करना कि ए प्रफ के क्या-क्या आर्गुमेंट होते हैं अभी पहला आर्गुमेंट जो है ना ये कोई फाइल डिस्क्रिप्टर भी हो सकता है कि किसी फाइल में राइट कर लो या फिर कोई एरर हैंडल भी हो सकता है तो जो स्टैंडर्ड एरर हैंडल सी प्लस प्स में यूज होता है उसको एसटीडी एरर कहते हैं एस टी डी ई आर आर ये बेसिकली ना कसोल पे य पार्ट होता है कंसोल प प्रिंट कर देता है उस एरर को ठीक है तो इस टाइप के हम बेसिकली हैंडल्स को एलोकेट करते हैं आय रिलेटेड टास्क है ठीक है क्योंकि प्रोसेस को तो आय करना ही करना है अब पांचवा स्टेप ये लास्ट स्टेप है इसके बाद हमारी पूरी प्रोसेस बन जाएगी ठीक है अब क्या करता है यार देखो ओस ने चार स्टेप पूरे पूरे कर लिए अब उसके बाद फाइनली ओस क्या करेगा ओस ने बोल दिया कि भाई प्रोसेस को रन करने के लिए मैंने सफिशिएंट स्टैक एलोकेट कर दिए सफिशिएंट हीप एलोकेट कर दिया है आयोग का काम भी मैंने संभाल लिया है अब प्रोग्राम जो भी तेरे अंदर इंस्ट्रक्शंस लिखी है अब वो एग्जीक्यूशन शुरू कर दो ठीक है तो आपने स प्लस प्स में देखा होगा कि मेन लिखा होता है राइट मेन मेन लिखा होता है आपका और जब भी आपका प्रोग्राम शुरू होता है हमेशा मेन से ही शुरू होता है ठीक है वो क्यों मेन ही क्यों यूज हुआ वो इसलिए क्योंकि ओएस को मेन का ही पता है ओस को किसी और फंक्शन का नहीं पता ओस जैसे ही मेन को कॉल करता है ना तो ओस पीछे हट जाता है कि अब प्रोसेस तेरा काम है जो तुझे करना है कर सीपीयू को संभाल ठीक है तो फाइनल काम क्या हो गया ओस जो है वो हैंड ऑफ करता है कंट्रोल टू मेन ठीक है ओस ने हैंड ऑफ कर दिया मेन को अब मेन को हैंड ऑफ करने के बाद सारा प्रोग्राम की तरफ चला गया है ठीक है अब प्रोग्राम कंट्रोल करेगा सीपीयू को बेसिकली प्रोग्राम शेड्यूल्ड है सॉरी प्रोसेस प्रोसेस यूज करना चाहिए वर्ड हमें यहां पे क्योंकि प्रोग्राम इज अंडर एग्जीक्यूशन ठीक ठीक है प्रोसेस यूज करेंगे हम तो प्रोसेस क्या कर रही है अब प्रोसेस के पास सारा कंट्रोल है सीपीयू का भी प्रोसेस के मेमोरी का भी है क्योंकि ओस ने उसको मेमोरी भी रेवेंट एलोकेट करके दे दिया अब प्रोसेस अपना काम करेगी ठीक है तो ओस का काम यहां पर खत्म हो गया है ठीक है तो यह आपकी प्रोसेस बन गई पूरी पूरी ठीक है अब एक और चीज डिस्कस करते हैं इसमें आपने कभी यह देखा है कि मेन जो लिखा होता है मेन के एंड में आप लोग रिटर्न जीरो लिखते हो अब रिटर्न जीरो का क्या मतलब है ें जीरो का यह मतलब है कि देखो हमने यह डिस्कस किया था कि ऑपरेटिंग सिस्टम के अंदर जो प्रोसेसेस होती है ना वो हमेशा चाइल्ड प्रोसेस की तरह बनती है ठीक है तो जब भी ओस ने य ये वाली प्रोसेस बनाई होगी जिसकी अभी हम बात कर रहे हैं तो इसका कोई पेरेंट होगा ठीक है उसने यह चाइल्ड प्रोसेस बनाई होगी p1 ठीक है यह मैं अभी इसको ओएस ही बोल देता हूं यह पेरेंट जो है हो सकता है ओएस की कोई प्रोसेस हो जोय काम करेगी क्योंकि ओस की एक सब पार्ट है प्रोसेस मैनेजमेंट तो इसको ओएस ही बोल देता हूं अभी के लिए ठीक है तो ओस ने कॉल किया p1 को ठीक है अब जब भी ये p1 एग्जीक्यूट पूरा हो जाएगा तो ओस को यह पता होना चाहिए कि ये सक्सेसफुल एग्जीक्यूशन था भी कि नहीं क्यों क्योंकि हो सकता है प्रोग्रामर ने फिर लिखा हो कि अगर सक्सेसफुल एग्जीक्यूशन नहीं था तो सो एंड सो एरर दिखाना चाहिए मुझे राइट तो इसीलिए हम रिटर्न जीरो लिखते हैं रिटर्न जीरो का क्या मतलब है कि सक्सेसफुल एग्जीक्यूशन हो गया है तो अगर प्रोग्राम के अंदर आपका मेन कॉल होके यहां पे अपने कुछ फंक्शंस कॉल दिए होंगे यहां पे कुछ फंक्शंस ल दिए होंगे अगर इस पोजीशन प मैं आ चुका हूं और रिटर्न जीरो कर चुका हूं तो ओ मान लेगा कि प्रोग्राम जो है सक्सेसफुल एग्जीक्यूशन कर चुका है ठीक है और हो सकता है आपने यहां पे कोई फंक्शन लिखा हो और यहां आपने रिटर्न -1 लिख रखा हो ठीक है रिटर्न माइव लिख रखा हो या मैं बोलूं रिटर्न माइव नहीं रिटर्न माइनस तो इधर ही कॉल आ जाएगी मैं एग्जिट लिख देता हूं एग्जिट -1 ऐसे करके आपने लिखा हुआ है तो ओ क्या करेगा डायरेक्ट यहां से एग्जिट होगा वह इस पोजीशन से रिटर्न जीरो सेफ रिटर्न नहीं हुआ है तो इस पोजीशन से जब वह एग्जिट होगा यहां पर कंट्रोल देगा तो उसको यह पता होगा कि या रिटर्न जरो नहीं हुआ या एग्जिट जीरो नहीं हुआ यानी कि कुछ ना गड़बड़ हुई है प्रोग्राम में कुछ तो गड़बड़ हुई है तो उस गड़बड़ को फिर प्रोग्राम अपने हिसाब से हैंडल करता है उसपे अभी अब नहीं जाते हैं बट यह इस पे फोकस करते हैं कि मेन जो रिटर्न करता है उससे ओस क्या-क्या इंटरप्रेट करता है ठीक है तो ये हमने समझ लिया हमारी प्रोसेस बन चुकी है कंप्लीट ठीक है बहुत बढ़िया अब चलते हैं र कुछ और बढ़िया डिस्कस करते हैं अब मैं डिस्कस करना चाहूंगा अब जो प्रोसेस पूरी एलोकेट हो चुकी है ठीक है मेमोरी के अंदर आ चुकी है तो अभी मेरी प्रोसेस जो है जो भी हमने बनाई है साथ में व मेमोरी के अंदर पड़ी है राइट अब य मेमोरी के अंदर इसका आर्किटेक्चर कैसा होगा ठीक है तो मैं बोलू आर्किटेक्चर ऑफ प्रोसेस बहुत न ध्यान से सुनेंगे ठीक है प्रोसेस का आर्किटेक्चर दिखता कैसा है तो अी हम ड्र कर लेते हैं ठीक है सबसे पहले होता है आपका आपने कभी देखा होगा वैसे बड़ा फेमस डायग्राम है ठीक है तो यह आपका हो गया प्रोसेस का आर्किटेक्चर यानी कि प्रोसेस अब ऐसा दिख रहा होगा लॉजिकली तो इसम सबसे पहला कंपोनेंट जो है ना सबसे पहला कंपोनेंट है व टेक्स्ट टेक्स्ट क्या है टेक्स्ट है कंपाइल्ड कोड ठीक है टेक्स्ट है आपका कंपाइल्ड कोड जो कि आपने डिस्क से लोड किया है ठीक है जो भी आपने प्रोग्राम लोड किया है कंपाइल्ड कोड वो तो एक मतलब अगर उसको कभी किसी एग्जीक्यूटेबल को ना एक होमवर्क देता हूं किसी एग्जीक्यूटेबल को राइट क्लिक करके नोटपैड में खोलना तो आपको कुछ अजीब से कैरेक्टर्स दिखाई देंगे तो मैं बोल सकता हूं ना है तो वो एक फाइल ही है ना वो रीड नहीं कर पा रहा आपका नोटपैड बट है तो वो एक फाइल ही ठीक है तो मैं बोलूंगा कंपाइल्ड कोड को हम बेसिकली जो हमारा आर्किटेक्चर ऑफ प्रोसेस है जो कि मेमोरी के अंदर है ये पूरी मेमोरी का एरिया है ठीक है मेमोरी के अंदर कुछ एक पार्ट होगा वो उसके अंदर टेक्स्ट की तरह पड़ा होगा जिसको मैं बोल रहा हूं कंपाइल्ड कोड ठीक है उसके बाद डेटा सेक्शन आता है हमारा डेटा सेक्शन में क्या होगा डेटा सेक्शन में अब आप c+ प् में आप कुछ ग्लोबल्स डिक्लेयर करते हो जो फाइल को फाइल में ग्लोबल होते हैं या फिर पूरे प्रोग्राम में ग्लोबल होते हैं एक्सटर्नल स्टेटमेंट होती हैं कि एक्सटर्नल लिंकेज होती है उसमें कि एक मॉड्यूल से दूसरे मॉड्यूल में वो वेरिएबल एक्सेसिबल होता है ठीक है अगर यह सारे वर्ड्स आपको न्यू लग रहे हैं तो आप जाओ और गल करके देखो मजा आ जाएगा ठीक है तो डेटा सेगमेंट के अंदर आपके पास ग्लोबल वेरिएबल होते हैं और स्टैटिक डाटा होता है स्टैटिक डाटा हमने डिस्कस किया अभी थोड़ी देर पहले ठीक है तो ग्लोबल वेरिएबल स्टैटिक डाटा आपका डाटा वाले सेक्शन में होता है उसके बाद लिख लिख देता हूं ग्लोबल एंड स्टैटिक डाटा ठीक है फिर उसके बाद आता है आपका हीप और स्टैक ठीक है प्रोग्राम के एग्जीक्यूशन के स्टार्ट में ठीक है एग्जीक्यूशन के स्टार्ट में ही स्टैक थोड़ा काफी दूर दूर होते हैं ठीक है मतलब काफी मैं बोलूं ओस इनको दूर रखता है कि एक सफिशिएंट इनको जगह मिले कि अपना पूरा बढ़िया से प्रोग्राम को एग्जीक्यूट कर पाए ठीक है तो आपका हीप और स्टैक का ये एरिया हो गया अब इसमें एक बहुत ही बढ़िया चीज हम डिस्कस करते हैं कभी मतलब आपने अगर रिकर्स यूज करी होगी जब शुरू में आप सीख होगे रशन तो बहुत बार ऐसा हुआ होगा आपको स्टैक ओवरफ्लो स्टैक ओवरफ्लो करके एरर आया होगा आपको ठीक है वो क्यों आता है वो इसलिए आता है कि ओस क्या करता है ओस जब भी आप रिकसिव कॉल देते हो ठीक है रिकसिव कॉल देते हो तो क्या होता है रिकसिव कॉल देते ही मान लो मैं इस स्टेज पर हूं इस स्टेज प हूं तो उस स्टेज के सारे वेरिएबल में स्टोर करता हूं स्टैक प ठीक है और जब वो कॉल चली जाती है तो कॉल चले जाने के बाद दूसरे स्टैक एक और स्टैक का एरिया एलोकेट होता है ठीक है और वो सारे फंक्शन आर्गुमेंट जो भी आपने दिए हैं उसके हिसाब से नया फंक्शन कॉल होता है मतलब होता वो नया नहीं है बट मैं बोलूं लॉजिकली वो नया फंक्शन होता है सेम फंक्शन को आपने कॉल किया है ना तो दूसरी कॉल होती है तो जब कॉल पे कॉल कॉल पे कॉल आप करते जाते हो और कोई भी एग्जिट कंडीशन नहीं है आपने कोई बेस बेस केस सेट ही नहीं किया है तो उस केस में क्या होता है आपका स्टैक बढ़ता जाता है बढ़ता जाता है बढ़ता जाता है और एक सर्टेन लिमिट के बाद ना व इसको पता चल जाता है कि कुछ ना कुछ तो बेवकूफी हुई है ठीक है और इस वजह से ओस क्या करता है कि पूरी मेमोरी ना खराब हो जाए तो उससे पहले मैं स्टैक ओफ्लो का एरर थ्रो कर देता हूं तो लॉजिकली बोलू तो स्टैक बढ़ती जाती है बढ़ती जाती है बढ़ती जाती है जब व हीप तक पहुंच जाती है स्टैक और ही आपस मीट कर जाते हैं तो स्टैक ओवरफ्लो का एरर आ जाता है तो स्टैक ओवरफ्लो का एरर क्यों आता है इसका रहस्य मैंने आपको बता दिया ठीक है और एक और टाइप का एरर होता है कि स्टैक ओवरफ्लो तो हमने सबने पढ़ा ही है दूसरा एक आउट ऑफ मेमोरी एरर भी आता है या फिर मेमोरी इंसफिशिएंट एरर भी आता है ठीक है उस केस में क्या होता है उस केस में होता है कि आपके पास रम भी एक सर्टेन अमाउंट की है ठीक है आपकी जो प्रोसेस है वो भी एक सर्टेन अमाउंट की लिमिट ही लेके बैठा है क्योंकि ओस के पास और सारी बहुत सारी प्रोसेसेस भी है तो ऐसा तो नहीं है एक ही प्रोसेस को मैं सारी रम दे दूंगा तो कई बार क्या होता है कि आप हीप के एलोकेशन करते जाते हो करते जाते हो करते जाते हो और उसको फ्री नहीं करते सी प्लस प्स में बोलूं तो जैसे कुछ प्रोग्रामिंग लैंग्वेजेस हैं जिसके अंदर फ्री करने की जरूरत नहीं पड़ती जैसे जावा उसके अंदर गार्बेज कलेक्टर जैसी चीज होती है जो फ्री करने की आपको जरूरत नहीं होती आप एलोकेट करो मस्त यूज करो बट c+ प्स जैसी जो लैंग्वेज है वो डिसिप्लिन मांगती है उसमें अगर आपने एलोकेट किया है कुछ हिप पे तो आपको वो क्लियर करना पड़ेगा आपके जिम्मेदारी है वो ठीक है तो अगर कोई बंदा या कोई डेवलपर हीप पे एलोकेट करता जाता है करता जाता है करता जाता है ठीक है एक एक एक एक 100 एबी की 100 एब की एलोकेशन करता जा रहा है उनको फ्री नहीं कर रहा ठीक है यूसेज भी नहीं है उसकी तो एक पॉइंट पर क्या होगा हीप भी जाकर स्टैक पर टच होएगा और एक एरर थ्रो होगा इसको मैं बोलता हूं आउट ऑफ मेमरी एरर या मेमरी इंसफिशिएंट एरर डिपेंडिंग अपन सिस्टम इस टाइप के एरर आते हैं ठीक है तो ये दो टाइप के एरर हमें समझ आ गए दोनों ही मेमरी खत्म होने टाइप के ही एरर है बट अब हम डिस्कस करते हैं कि इसको अवॉइड कैसे करें ठीक है इन दो टाइप्स के एरर जो हमने डिस्कस करे अभी पहला हमारा स्टैक ओवरफ्लो दूसरा हमारा आउट ऑफ मेमोरी ठीक है इसको मैं अवॉइड कैसे करूं तो इसको अवॉइड करने का एक ही तरीका है वो तरीका है इंटेलिजेंस से थोड़ा सा ध्यान से देख के अपने कोड को ठीक है तो स्टैक ओवरफ्लो आप कैसे रिमूव करोगे वही जब आप रिकसिव कॉल कर रहे हो तो उसका बेस के सेट करो कि वो रुक पाए एक पॉइंट पर जाके रिटर्न कर पाए स्टेटमेंट्स को उस स्टैक को अन वाइंड कर पाए स्टैक अन वाइंडिंग का मतलब होता है अपने स्टैक जब आप कॉल करते हो उस स्टैक को को तो जब स्टैक को बेसिकली कॉल करते हो किसी फंक्शन को रिकसिवली तो एक लेवल पे फंक्शन कॉल होता है फिर दूसरे लेवल पे कॉल होता है फिर तीसरे लेवल प कॉल होता हैसे कॉल होता जाता है जब वो बेस कंडीशन हिट होती है तो स्टैक अनवाइज बेसिकली फ्री करते जाते हैं हम वापस से ठीक है रिटर्न रिटर्न करते हुए तो स्टैक एन वाइंडिंग अगर आप नहीं करोगे तो स्टैक ओवरफ्लो आ जाएगा तो इसलिए हम चाहते हैं कि आप बेस कंडीशन लिखो स्टैक ओवरफ्लो ना आए और स्टैक अन वाइंडिंग हो ठीक है और दूसरा है आउट ऑफ मेमोरी एरर आउट ऑफ मेमोरी एरर आप कैसे करोगे जो भी आप के अननेसेसरी ऑब्जेक्ट्स आपने एलोकेट करे हैं उनको डी एलोकेट करो ठीक है डी एलोकेट करो अननेसेसरी ऑब्जेक्ट्स जो भी आप हिप एलोकेट कर रहे हो ठीक है यहां पे बेस केस सेट करो ठीक है तो ये आपका हो गया आर्किटेक्चर ऑफ प्रोसेस ठीक है अब हम डिस्कस करेंगे एट्रिल ठीक है एटिबल क्या होता है एट्रियो होता है किसी भी प्रोसेस को आइडेंटिफिकेशन प्रोसेस के ठीक है मतलब मैं बोलू कि प्रोसेस अगर आपने लोड कर दी तो बहुत सारी प्रोसेस लोड होंगी तो एक प्रोसेस और दूसरे प्रोसेस में कैसे डिफरेंस करूंगा मैं राइट ओस दो प्रोसेस को अलग अलग ट्रीट करता है ना p1 प2 तो उसको कैसे बेसिकली वो डिफरेंशिया ठीक है तो चलो यार डिस्कस करते हैं एटिबल ट्रिब्यूट ऑफ प्रोसेस से पहले मैं बोलना चाहूंगा कि आपके पास जितनी भी प्रोसेस होती है ना ओस के अंदर पव प2 p3 जितने भी प्रोसेस है ओस क्या करता है ओस क्या है ओस मैनेजर है हमने सबने पढ़ा कि ओस एक मैनेजर है तो क्या करता है इन सबको एक टेबल पर ना लिख के रखता है इसको मैं बोलता हूं प्रोसेस टेबल ठीक है य एक टेबल टाइप ऑफ स्ट्रक्चर है ठीक है उस लिख के रखता हूं कि पहली प्रोसेस पव है दूसरी प2 है तीसरी p4 है ऐसे करके प ऐसे बहुत सारी प्रोसेसेस लिखी हुई है तो उसको पता है करेंटली कि कितनी प्रोसेसेस जो है मेरे पास अभी है ठीक है तो प्रोसेस टेबल में वो मेंटेन करके रखता है और प्रोसेस टेबल की जो एंट्री होती है एक एंट्री जो मैं कह रहा हूं ये एंट्री ठीक है वो होती है पीसीबी प्रोसेस कंट्रोल ब्लॉक ठीक है हमने क्या सीखा कि ओस जो है है वो सारी प्रोसेसेस को प्रोसेस टेबल पर रखता है लिख के मैनेज करने के लिए और हर एक प्रोसेस टेबल की जो एक एक-एक एंट्री है ईच एंट्री इज कॉल्ड प्रोसेस कंट्रोल ब्लॉक ठीक है प्रोसेस कंट्रोल ब्लॉक क्या है वो खुद एक ऐसा डटा स्ट्रक्चर है जो कि प्रोसेस से रिलेटेड सारी इंफॉर्मेशन को स्टोर करके रखता है अब लास्ट लेक्चर याद करो जिसमें हमने कांटेक्ट स्विचिंग थोड़ी सी पढ़ी थी जिसमें मैंने बोला था कि कांटेक्ट स्विचिंग करने के लिए सारा डाटा जो है वो पीसीबी में स्टोर होता है टेंपरेरिली तो वो स्टोर कैसे होता है क्योंकि हर प्रोसेस का अपना एक पर्सनल पीसीबी होता है या मैं दूसरे तरीके से बोलूं तो ओस जो है वो पीसीबी के थ्रू ही प्रोसेस को पहचानता है ठीक है पीसीबी के अंदर प्रोसेस के एटिबल स्टोर होते हैं ठीक है तो पीसीसीबी का इतना बड़ा रोल है तो पीसीबी ही प्रोसेस है मैं ऐसा बोल सकता हूं लॉजिकली मतलब एक प्रोसेस को पहचानने के लिए मुझे पीसीबी के पास जाना पड़ेगा उस प्रोसेस के पीसीबी के पास जाना पड़ेगा ठीक है तो अब इस पे डबल क्लिक करते हैं पीसीबी पे लास्ट टाइम हमने पीसीबी पे डिस्कशन कंटिन्यू करी नहीं थी यार पीसी भी ना खुद एक डाटा स्ट्रक्चर है जो कि कुछ ऐसा दिखता है तो यह हमारा हो गया फाइनल ऐसा कुछ पीसी भी दिखता है ठीक है एक डाटा स्ट्रक्चर हैय खुद भी उसके अंदर बहुत सारे ब्लॉक्स बने हुए हैं ठीक है एक्चुअली कौन सा डटा स्ट्रक्चर यूज होता है इस परे ज्यादा ध्यान मत दो बट आप विजुलाइजेशन करो दिमाग में ठीक है ये आपके पास सात टाइप की इंफॉर्मेशन होती है ठीक है सबसे पहले हम डबल क्लिक करते हैं प्रोसेस आईडी क्या है प्रोसेस आईडी क्या है यार एक यूनिक आइडेंटिफिकेशन कोई नई प्रोसेस आती है ना तो ओस का ई काउंटर चलता रहता है जीरो से चलता रहता है जब भी ओस ऑन होता होगा तो काउंटर चलाता रहता है जैसे ही कोई नई प्रोसेस आती है ना वो काउंटर उसे पकड़ा देता है कि हां भाई तू 23 यूनिक प्रोसेस है 24 आ तो 24 दे दिया उसको नंबर ऐसे करते करते प्रोसेस आईडी बेसिकली होता है प्रोसेस आईडी कुछ नहीं है यूनिक आइडेंटिफिकेशन दूसरी प्रोसेस के बीच में मैं बेसिकली यूनिक उनको आइडेंटिफिकेशन हो जाता है ना कंपाइल होने के बाद बहुत सारे इंस्ट्रक्शंस में कन्वर्ट हो जाता है सीपीय इंस्ट्रक्शंस में जैसे कुछ एग्जांपल दूं तो ऐसे कुछ इंस्ट्रक्शन होती है वनटू एडी डी करके ऐसे ठीक है ड की इंस्ट्रक्शन है ये ठीक है ऐसे करके इंस्ट्रक्शन में कन्वर्ट हो जाता है तो मैं बोल सकता हूं अभी मैं बोलता हूं आपके प्रोग्राम को कि एक इंस्ट्रक्शन का एक कलेक्शन ऑफ इंस्ट्रक्शन है तो मान लोय पहली इंस्ट्रक्शन है दूसरी इंस्ट्रक्शन है तीसरी चौथी पांचवी ऐसे इंस्ट्रक्शन है बहुत सारी तो सीपीयू क्या करता है सीपीयू कुछ नहीं सीपीयू को चाहिए सीपीयू सबसे बुद्धू आदमी है ठीक है सबसे बुद्धू है वो ठीक है उसको सिंपली चाहिए कि मुझे इंस्ट्रक्शन दे दो लाइन से इंस्ट्रक्शन दे दो मैं एग्जीक्यूट करता जाऊंगा तुम्हारा काम हो जाएगा ज्यादा दिमाग नहीं है मेरे अंदर तो ओस क्या करता है हर प्रोसेस से रिलेटेड एक प्रोग्राम काउंटर एसोसिएट करता है ठीक है जो कि शुरू होता है हमेशा जीरो से ठीक है पहली इंस्ट्रक्शन क्योंकि जीरो पोजीशन पे लिखी होगी ठीक है तो जीरो से इनिला करता हूं मैं और यहां पे डाल देता हूं प्रोग्राम काउंटर क्या करता है फिर जैसे ही वो इंस्ट्रक्शन एग्जीक्यूट हो जाती है तो वो प्लस कर देता है उसको फिर नेक्स्ट पे आ जाते हैं फिर प्लस कर देता है फिर नेक्स्ट पे आ जाते हैं नेक्स्ट पे आ जाते हैं तो कुछ नहीं है बस एक प्रोग्राम काउंटर है कि अभी मैं करेंटली कौन से एड्रेस पर हूं या कौन सी इंस्ट्रक्शन को एग्जीक्यूट कर रहा हूं उसको बेसिकली मैं बोलूं उसको सेव करने का या उस उसका ट्रैक रखने का एक काम है बस एक ट्रैक रखने का एक वेरिएबल है उस यूज होता है प्रोग्राम काउंटर ठीक है जरूरी क्यों है यह जरूरी इसलिए है अगर यह नहीं होगा तो मुझे कैसे पता चलेगा नेक्स्ट इंस्ट्रक्शन कौन सी है तो मैं कैसे पूरा अपना जो प्रोसेस है एक्यूट कर पाऊंगा तो अगर मैं इसका छोटा सा एक फ्लो डायग्राम बनाने की कोशिश करूं ना तो कुछ ऐसा दिखेगा कि आपके पास यह है इसमें हम क्या करेंगे फैच द इंस्ट्रक्शन फ्रॉम एड्रेस इन पीसी फर मैं पीसी को प्लस प्लस कर दूंगा फिर से एग्जीक्यूट करूंगा और इसको फिर लूप में करता जाऊंगा ठीक है अब ये कैसे कर रहे हैं सबसे पहले जीरो पोजीशन पर होगा मैं ठीक है जीरो पोजीशन पर कोई इंस्ट्रक्शन लिखी होगी उस एड्रेस पर प्रोग्राम काउंटर क्या करता है एड्रेस स्टोर करके रखता है एक पॉइंटर लगा लो एक वो पॉइंटर है उस एड्रेस प पॉइंट कर रहा है ठीक है जैसे फर्स्ट एड्रेस प पॉइंट कर रहा है तो मैं क्या करूंगा सबसे पहले सीपीयू जाएगा देखेगा भाई कौन से प्रोग्राम काउंटर प हूं मैं वो बोलेगा मैं वन प हूं मान लो ठीक है वन प हूं तो वन के करेस्पॉन्डिंग्ली था पीसी पॉइंट कर रहा था वन पे वन पर क्या लिखा है वो सीपीय डिकोड करेगा फैच करेगा फैच करने के बाद पीसी को प्लस प्लस करके रख देंगे साइड में और जो इंस्ट्रक्शन अभी अभी डिकोड करी थी उसको एग्जीक्यूट करूंगा फिर नेक्स्ट प चला जाऊंगा नेक्स्ट पर चला जाऊंगा क्योंकि पीसीएम पहले ही प्लस प्लस कर चुके हैं तो वहां टू लिखा होगा तो टू करके ऐसे सो एंड सो सो एंड सो चलता रहता है टिल प्रोग्राम टर्मिनेट ठीक है तो इस तरीके से प्रोग्राम काउंटर वर्क करता है ठीक है प्रोग्राम काउंटर हमें बढ़िया समझ आ गया है अब हम चलते हैं प्रोसेस प्र स्टेट प प्रोसेस स्टेट क्या होती है प्रोसेस स्टेट यार नेक्स्ट वीडियो में पढ़ेंगे हम बढ़िया से प्रोसेस बेसिकली बहुत सार स्टेट से होकर गुजरती है और हर स्टेट का अपना महत्व है ठीक है तो प्रोसेस स्टेट क्या होती है तो पीसीबी के अंदर जो प्रोसेस स्टेट वाला जो वेरिएबल है या फिर वो जो एरिया है वह क्या स्टोर करता है कि अभी करेंटली यह पर्टिकुलर प्रोसेस कौन सी स्टेट में है क्या वह न्यू स्टेट में है क्या वह वेट स्टेट में है क्या वो भी रन स्टेट में है यानी कि उसको पीसीपीयू मिल चुका है वो एग्जीक्यूट हो रही है ठीक है ये सब ट्रैक रखने के लिए यूज होता है अब हम आते है प्रायोरिटी प्रायोरिटी यार हमने पढ़ा है बढ़िया से ठीक है प्रायोरिटी बहुत जरूरी है सीपीओ के अंदर कोई भी हाई प्रायोरिटी जॉब आए तो उसे एग्जीक्यूट करना जरूरी है तो हाई प्रायोरिटी जॉब कैसे डिफाइन होगी तो उस जॉब के कॉरस्पॉडिंग जो पीसीबी लिखा होगा पीसीबी के अंदर एक एंट्री होगी कि उसकी प्रायोरिटी क्या है तो उससे डिसाइड होगा कि एक्चुअली उसकी प्रायोरिटी क्या है और सीपीयू का स्केड्यूल जो है उसको कैसे ट्रीट करेगा तो यहां पे प्रायोरिटी लिखी होती है ठीक है अब आता है रजिस्टर्स अ रजिस्टर्स क्या है य रजिस्टर्स ऐसा है कि जब आपका सीपीय होता है ना सीपीय के अंदर बहुत सारे रजिस्टर्स होते हैं सीपीयू के अंदर बहुत सारे रजिस्टर्स होते हैं और किसकिस टाइप के रजिस्टर्स होते हैं वो आपके होते हैं एसपी स्टैक पॉइंटर बोलता हूं मैं स्टैक पॉइंटर रजिस्टर उस टैक प पॉइंट करके रखता है उसके अलावा बीपी बेस पॉइंटर रजिस्टर ठीक है इनको याद करने की जरूरत नहीं है बट थोड़ा एक बार मन करे तो ग करना गो थ्रू करना मैं तो हाईली रिकमेंड करता हूं यार जो भी आपको चीजें मैं खुद भी पढ़ा चुका हूं ना आप जाके गल करो उसको थोड़ा और जानो उसके बारे में यार तभी मजा आएगा ठीक है और कंट्रोल रजिस्टर्स होते हैं आपके सीआर कंट्रोल रजिस्टर तो इस टाइप के रजिस्टर्स होते हैं जब भी आपका प्रोग्राम एग्जीक्यूट हो रहा है कोई प्रोसेस जो है p1 वो अभी सीपीयू एग्जीक्यूट कर रहा है अभी मान लो ठीक है एग्जीक्यूट कर रहा है कर रहा है एकदम से उसका टाइम खत्म हो गया टाइम खत्म हो गया एज इन कि या तो वेट स्टेट पे जाना पड़ गया उसको यानी कि आईओ का ऑपरेशन आ गया या फिर उसका टाइम क्वांटम खत्म हो गया हमने पढ़ा है ठीक है पहले टाइप्स ऑफ ओ इसमें टाइम क्वांटम खत्म हो गया तो अब उसको क्या करना पड़ेगा उसको जाना पड़ेगा वो अब सीपीयू को नहीं लेके रख सकता तो उस पोजीशन के लिए क्या होगा अब भी जो भी सीपीयू के अंदर स्टेट थी जिन रजिस्टर्स में जो जो इंस्ट्रक्शंस पड़ी थी या डाटा पड़ा था ठीक है हो सकता है कभी मान लो वो पर्टिकुलर कोई ऑपरेशन कर रहा हो सीपीयू उस प्रोसेस से रिलेटेड कुछ ऑपरेशन कर रहा हो वो ऑपरेशन करते हुए रजिस्टर्स में कुछ-कुछ वैल्यूज पड़ी होंगी तो क्या करेगा कांटेक्ट स्विचिंग के टाइम उसको उठा के ना वैसे का वैसा ही ठीक है हमने डिस्कस किया था कंटक्ट स्विचिंग क्या होता है वैसे का वैसा उठा के रजिस्टर्स को उन रजिस्टर्स को रजिस्टर वाले ब्लॉक में सेव कर देगा तो ये क्या करता है सेव्स द रजिस्टर्स जो एक्चुअल सीपीयू के रजिस्टर्स होते हैं उनको यह उठा के यहां पे सेव कर देता है ये आपके सीपीयू के रजिस्टर्स है मान लो ठीक है हम क्या करेंगे इन रजिस्टर्स को उठा के सेव कर देंगे अभी के लिए सेव पड़े रहेंगे फिर जब बाद में दोबारा से इस प्रोसेस को मौका मिलेगा स्के ड्यूल होने का तो उन रजिस्टर्स की वैल्यू को क्योंकि कंटे सिच में क्या होता था पुरानी स्टेट को रिस्टोर कर रहे हैं तो पुरानी स्टेट हमने सेव करी है अब इसको हम रिस्टोर करेंगे सीपीयू के अंदर तो इस तरीके से चीजें काम करती हैं तो हम रजिस्टर्स को हम ऐसे सेव करके रखते हैं इस जगह पर ठीक है उसके बाद आता है आपका ओपन फाइल लिस्ट अब जो आपका प्रोसेस है वो हो सकता है कुछ फाइल डिस्क्रिप्टर ओपन करके बैठी हो कुछ फाइल्स को ओपन करके बैठी हो कि मुझे वहां राइट करना है या वहां से रीड करना है तो उन सबके बारे में यहां पर लिखा होता है एफडी बोलता हूं मैं इनको फाइल डिस्क्रिप्टर्स ठीक है उसी तरीके से डिवाइस डिस्क्रिप्टर्स यानी कि कुछ डिवाइस हो सकता है वो पर्टिकुलर प्रोसेस ओपन करके बैठी हो कि उसको रीड करना था वहां से उस आईओ से रीड करना था तो वो कौन-कौन सी कौन-कौन से डिवाइस ओपन करके बैठी है ओस को पता होना चाहिए वो सब लिस्ट करता है तो आप यह देखो कि पीसीपी के अंदर प्रोसेस से रिलेटेड सारे इंफॉर्मेशन स्टोर्ड है यानी कि ओस को जब भी किसी भी प्रोसेस से रिलेटेड कोई भी इंफॉर्मेशन चाहिए होगी वो उस पर्टिकुलर प्रोसेस के पीसीबी में जाके ढूंढ लेगा ठीक है इतनी बढ़िया चीज है पीसीबी तो ये एक सिंपली पीसीबी का इंट्रोडक्शन हुआ इंट्रोडक्शन क्या है हमने तो डबल क्लिक करके पूरा बता ही दिया आपको बढ़िया से ठीक है तो यह थे आपके एट्रिक्स ऑफ प्रोसेस ठीक है ये सारे एट्रिक्स ऑफ प्रोसेस हैं आपको पता होने चाहिए ठीक है प्रोसेस स्टेट के बारे में हम नेक्स्ट वीडियो में पढ़ेंगे ठीक है डन करते हैं र इस वीडियो को यहां पे एक बार नोट्स पे नजर डालना चाहो तो मैं एक बार नोट्स आपको दिखा देता हूं तो नोट्स पे नजर डाल लेते हैं यार एक बार ठीक है नोट्स में जो भी आपको बताया गया उसको कंसाइनर ये नहीं है नोट्स से डायरेक्ट नहीं पढ़ सकते आपको वीडियो जरूर देखनी पड़ेगी ठीक है तो ये नोट्स में हमने सब कुछ लिख दिया है स्टेप्स भी लिख दिए हैं कैसे प्रोग्राम जो है प्रोसेस में कन्वर्ट होता है आर्किटेक्चर क्या है प्रोसेस का एट्रबीक चर होता है ठीक है ये चीज जरूर याद रखना कि रजिस्टर वाली जो पर्टिकुलर एंट्री है यह क्या करती है यह क्या य एट्रिल का क्या मतलब है ठीक है इसको एक्सप्लेन करने की कोशिश की गई है तो यह था यार लेक्चर नंबर नाइन आई होप आपको समझ आया होगा बढ़िया से और एक चीज लास्ट में फिर से कहना चाहूंगा जो भी आपको नए-नए पॉइंट्स या फिर नए-नए वर्ड्स या जागन सुनने को मिलते हैं ना आप तुरंत जाके ग किया करो उनको ठीक है चाहे मैंने ही बता दिया हूं आप फिर से एक बार थोड़ा सा टाइम दो यार 15-20 मिनट तो आपको और सीखने को मिलेगा हम तो यहां पे कंसाइनर चले जाते हैं ठीक है मेरा यहां पे टारगेट है कि आपको बेसिकली चीजें सिंपल तरीके से समझ आ जाए ठीक है सिंपल तरीके से समझ आ जाएंगी तो आप जो इंटरनेट पे लिखी हुई है हार्ड लैंग्वेज उसको भी आप समझ ही लोगे ठीक है तो ठीक है यार मिलते हैं किसी नेक्स्ट ले र में थैंक यू धन्यवाद हेलो जी कैसे हो सारे दिस इज लक्ष तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 10 में और हम इस वीडियो में डिस्कस करने वाले हैं प्रोसेस स्टेट के बारे में ठीक है पिछली वीडियो में हमने डिस्कस किया था पीसीबी के बारे में एटिबल के बारे में हमने डिस्कस किया था उसके अंदर पीसीबी में एक ब्लॉक था प्रोसेस स्टेट के नाम से कि भाई जो प्रोसेस की स्टेट जो करंट स्टेट अभी क्या है उसको भी स्टोर करता है आपका पीसीबी डाटा स्ट्रक्चर ठीक है तो अब हम थोड़ा डबल क्लिक करते हैं प्रोसेस स्टेट के बारे में ठीक है तो या प्रोसेस स्टेट प्रोसेस स्टेट क्या होता है कोई भी एक प्रोसेस जो होती है ना वो अपने पूरी लाइफ साइकिल में अगर प्रोसेस की लाइफ साइकिल की बात करूं प्रोसेस की लाइफ साइकिल में क्याक आएगा राइट फ्रॉम इट्स न्यू स्टेट न्यू स्टेट मतलब जनरेशन से लेके जनरेशन से लेकर टर्मिनेशन तक ठीक है जनरेशन से लेकर टर्मिनेशन तक उसके बीच में क्या-क्या होता है एक प्रोसेस के साथ कौन-कौन सी डिफरेंट डिफरेंट स्टेट से होकर एक प्रोसेस गुजरती है उसके बारे में अभी हम डिस्कस करेंगे ठीक है तो आगे बढ़ने से पहले हम शाउट आउट दे देते हैं हमारे स्पंस को ताकि आपका फ्लो ना बिगड़े तो चलिए कंटिन्यू करते हैं तो प्रोसेस स्टेट्स में सबसे पहली स्टेट जो आती है वह आती है न्यू स्टेट न्यू स्टेट अब न्यू स्टेट क्या होती है न्यू स्टेट होती है कि जब ओएस आपका प्रोग्राम को प्रोसेस में कन्वर्ट कर रहा होता है यानी कि जब यह प्रोसेस हो रही होती है तो उस पॉइंट पे उस पर्टिकुलर प्रोसेस के पीसीबी के अंदर प्रोसेस स्टेट क्या लिखी होती है न्यू यानी कि जब कोई प्रोग्राम प्रोसेस में कन्वर्ट हो रहा है ठीक है यह प्रोसेस हो रही है बीइंग डन ठीक है यह प्रोसेस हो रही है जब ये हो रही होती है तब उसको बोलते हैं न्यू स्टेट ठीक है अभी वो बन रही है प्रोसेस मतलब ठीक है अब दूसरा टाइप है इसका रेडी स्टेट ठीक है रेडी स्टेट क्या है प्रोसेस जो है वो बन चुकी है प्रोसेस को हम मेमोरी में लेके आ चुके हैं ठीक है तो जो प्रोसेस को मेमरी में ला चुके हैं और प्रोसेस जिस मेमरी में पड़ी होती है जिस एरिया में होती है उसको हम रेडी क्यू भी कहते हैं हमने डिस्कस किया रेडी क्यू ठीक है तो जो प्रोसेस है प्रोसेस है वो मेमरी में है ठीक है रेडी क्यू में पड़ी हुई है प्रोसेस ठीक है अब रेडी क्यू क्यों कह रहा हूं मैं इसको कि यह बस एग्जीक्यूशन के लिए तैयारी है मतलब इसको बस सीपीयू चाहिए ठीक है यह वेट कर रही है सीपीयू का सीपीयू मिलते ही सीपीयू जैसे ही स्केड्यूल होगा यह निकल पड़ेगी बस ठीक है तो रेडी क्यू यह है तो रेडी क्यू में बहुत सारी प्रोसेसेस हो सकती हैं एक साथ हमने देखा है कि मल्टी प्रोग्रामिंग ओएस के अंदर रेडी क्यू में एक से ज़्यादा प्रोसेसेस हम रखते हैं ताकि बेसिकली अ डिग्री ऑफ़ मल्टी प्रोग्रामिंग इंक्रीज कर सके हम ठीक है तो यह हो गया आपका दूसरा स्टेट रेडी रेडी के बाद तीसरा स्टेट क्या आएगा तीसरा स्टेट आएगा रनिंग स्टेट ठीक है रनिंग स्टेट रनिंग स्टेट नाम से ही पता चल रहा है मतलब फाइनली रेडी क्यू से एक पर्टिकुलर प्रोसेस को सीपीयू एलोकेट हो चुका है ठीक है सीपीयू एलोकेट हो चुका है तो मैं बोल सकता हूं कि पीव प्रोसेस है उसको सीपीयू जो है वो एलोकेट हो गया है ठीक है अब वो एग्जीक्यूट हो रही है तो इस पॉइंट पे उसके पीसीबी के प्रोसेस स्टेट वाले जो पर्टिकुलर एरिया है वहां क्या लिखा होगा रनिंग स्टेट की भाई अब प्रोसेस रनिंग स्टेट में है ठीक है अब रनिंग करते हुए क्या आता है हमने डिस्कस किया है कई बार क्या होता है आयो की इंस्ट्रक्शन आ जाती है आयो की इंस्ट्रक्शन आ जाती है तो हम वेटिंग स्टेट में चले जाते हैं ठीक है चौथी स्टेट है हमारी वेटिंग स्टेट वेटिंग स्टेट में क्या करते हैं हम यह वेट कर रही होती है बस आई के लिए कि भाई आयो कंप्लीशन हो जाए तो मैं कंटिन्यू करूं ठीक है अब पांचवी स्टेट क्या होती है पांचवी स्टेट हमारी होती है टर्मिनेशन स्टेट टर्मिनेशन ना बोल के टर्मिनेटेड बोलूंगा मतलब हो चुकी है टर्मिनेट हो चुकी है अब टर्मिनेटेड स्टेट में क्या होता है टर्मिनेटेड स्टेट क्या होती है कि अब प्रोसेस जो है प्रोसेस जो है वो फिनिश हो चुकी है ठीक है वो फिनिश उसकी एग्जीक्यूशन फिनिश हो चुकी है वो अब उसका वजूद उस पर्टिकुलर जॉब का उस पर्टिकुलर प्रोसेस का वजूद अब नहीं है मेमोरी के अंदर ठीक है तो इसको यार मैं डायग्राम के साथ बढ़िया से एक्सप्लेन करता हूं आपको अभी बस मैंने डेफिनेशन डेफिनेशन बोल दी एक डायग्राम के साथ एक्सप्लेनेशन इसकी करते हैं डिस्कस करते हैं इसको हां तो डायग्राम ये देखो यार ये एक पूरी प्रोसेस का लाइफ साइकिल को बता रहा है ये डायग्राम ठीक है डिफरेंट डिफरेंट स्टेट्स आपको पता लग रही है सबसे पहली स्टेट जो हमने डिस्कस की वो न्यू स्टेट है ठीक है न्यू स्टेट क्या कर रही है न्यू स्टेट प्रोग्राम जो है कन्वर्ट हो रहा है प्रोसेस में ठीक है प्रोग्राम प्रोसेस में कन्वर्ट हो रहा है उसके दौरान उसका जो स्टेट होगी वो क्या होगी न्यू स्टेट होगी ठीक है तो मैं कह सकता हूं कि यहां कहीं डिस्क होगी डिस्क से बेसिकली चीजें उठ उठ के यहां पर आ रही है ठीक है अब डिस से चीज उठके यहां आ रही है तो इसको अब इस पोजीशन पर जो जा रही है ये इस टाइम न्यू स्टेट में है हम ठीक है अब न्यू स्टेट के बाद जैसे ही प्रोसेस पूरी बन चुकी है वो प्रोसेस बनने के बाद हम सारी प्रोसेसेस को रेडी स्टेट में डाल देते हैं ठीक है तो ओएस का अलग से ना एक मॉड्यूल है जो क्या करता है वो करता है रेडी क्यू से जितने भी बेसिकली जॉब्स है जितने भी जॉब पड़ी है जो रेडी एग्जीक्यूट करने के उनको सीपीयू पकड़ा का काम सीपीयू प्रोवाइड करने का सीपीयू डिस्पैच करने का काम जो है वो डिस्पैच करता है ठीक है तो इसलिए मैं लिख रहा हूं यहां पे शेड्यूलर डिस्पैच यहां पे हो रहा है ठीक है तो अब ये होने के बाद जो प्रोसेस है वो रनिंग स्टेट में आ गई है प्रोसेस रन कर रही है रन कर रही है अब रन करते करते बीच में दो तरीके हैं या तो वो आओ करने चली जाएगी हमने डिस्कस किया है ये या तो वो आयो करने चली जाएगी अगर आयो करने गई तो इस इवेंट पे क्या होगा वो वेटिंग स्टेट पे आ जाएगी यहां पर वेट करेगी प्रोसेस वेटिंग स्टेट पे है ठीक है वेटिंग स्टेट पे है अब इसको थोड़ी देर में डिस्कस करते हैं मान लो प्रोसेस वेटिंग स्टेट पे है बट दूसरा चीज क्या हो सकती है दूसरी चीज ये हो सकती है कि उसका टाइम शेयरिंग वाले सिस्टम्स के अंदर उसका टाइम क्वांटम खत्म हो गया और टाइम क्वांटम खत्म हो गया तो वापस से रेडी क्यू में आ जाएगा इसको मैं इंटरप्ट की तरह हैंडल कर रहा हूं ठीक है हमने डिस्कस किया था सॉफ्टवेयर इंटरप्ट्स यूज होते हैं इस काम के लिए तो एक सॉफ्टवेयर इंटरप्ट जनरेट होगा कि भाई ये पर्टिकुलर प्रोसेस मतलब p1 थी यहां पे चल रही थी p1 तेरा टाइम खत्म हो गया है अब वापस आ जाओ तो इसलिए यहां पर इंटरप्ट के थ्रू रेडी क्यू में वापस भेज रहे हैं उसको ठीक है और जो जॉब्स आयो के लिए गई हुई थी वेटिंग स्टेट पे थी वो उठके वापस से रेडी क्यू में चली जाएंगी ठीक है वापस से रेडी क्यू में चली जाएंगी शायद से दूसरी वीडियो थी हमारी तोब एक कमेंट आया था कि अगर भैया अगर मान लो रनिंग स्टेट प है रनिंग स्टेट में होने के बाद मान लो वेटिंग में चली गई वेटिंग में चली गई आयो के टाइम वेटिंग में चली गई तो क्या वापस वो रनिंग स्टेट में आएगी तो वापस व रनिंग स्टेट में नहीं आएगी वो पहले रेडी क्यू में जाएगी अब रेडी क्यू के बाद शेड्यूलर की जिम्मेदारी है कि अब उसको कम मौका मिलेगा ठीक है वो डिपेंडिंग अपॉन उसकी प्रायोरिटी और बेसिकली कैसे स्केड्यूल एल्गोरिथम काम कर रही है उस हिसाब से उसको बाद में मौका मिलेगा ठीक है इस तरीके से चीजें चलेंगी जैसे ही रनिंग स्टेट मान लो कोई प्रोसेस जो है वो एग्जीक्यूशन उसका खत्म हो गया है तो उसके बाद वो एग्जिट सेट में जाकर टर्मिनेट चले जाएंगे ठीक है तो इस तरीके से काम होगा जो अभी मैं पीछे बात कर रहा था उसको मैं अगर थोड़ा सा एलेबोरेट करना चाहूं मान लो p1 प2 p3 पड़ी थी आपकी रेडी क्यू में ठीक है अब ये रेडी क्यू में थी तो अब मैं क्या करता हूं इसको उठा के शेड्यूल कर देता हूं p3 को तो p3 कहां चली जाएगी रन स्टेट में चली जाएगी अब p3 जब रन स्टेट में चली गई तो यहां से हट जाएगी ठीक है यहां से p3 हट जाएगी अब क्या होगा अब उसके बाद मान लो मैं मान लेता हूं p3 को इंटरप्ट आया किसका आयो का तो वो आयो करने चले गए मान लो यहां तो वेट स्टेट प चली गई p3 अब जब p3 वेट स्टेट में चली जाएगी तो यहां पर रन स्टेट खाली हो जाएगा नहीं सीपीयू खाली हो जाएगा बट उससे पहले मान लो प2 मैंने इधर शेड्यूल कर दी समझ रहे हो मतलब जैसे ही p3 आयो करने गई सेकंड्स विदन फ्रैक्शन ऑफ टाइम में क्या होगा कि p2 एग्जीक्यूट हो गई ठीक है अब p2 भेज दी मैंने इधर ठीक है अब p2 जब इधर भेज दी तो ये यहां से हट जाएगी ठीक है अब मान लो p3 ने आई कंप्लीट किया तो वो रेडी क्यू में जाके p3 यहां चला जाएगा ठीक है यहां पे प2 एग्जीक्यूट हो रहा है ठीक है अब p3 को बाद में मौका कभी मिलेगा ठीक है यह मैं डिस्कस करना चाह रहा था तो हमें समझ आ गया कि किस तरीके से एक प्रोसेस की डिफरेंट डिफरेंट लाइफ साइकिल चलती है ठीक है अब आगे डिस्कस करते हैं हम अब डिफरेंट टाइप के क्यूज की बात करते हैं ठीक है सबसे पहले हम बात करते हैं जॉब क्यू की ठीक है तो जॉब क्यू के अंदर क्या होता है कि प्रोसेस जो है ना वो न्यू स्टेट में रहती है तो जितनी भी प्रोसेसेस न्यू स्टेट में पड़ी होती है उसको मैं जॉब क्यू में रखता हूं ठीक है अब मान लो मैं बना देता हूं यह जॉब क्यू है हमारी तो ये बेसिकली मान लो आपकी जॉब क्यू है ठीक है जॉब क्यू में पीव प2 पी3 करके इतनी सारी प्रोसेसेस पड़ी हुई है ठीक है जॉब क्यू अब जॉब क्यू में ना सारी प्रोसेसेस न्यू स्टेट में है ठीक है यह सारी प्रोसेसेस न्यू स्टेट में है ठीक है अब यह सारी प्रोसेस न्यू स्टेट से रेडी स्टेट में जाएंगी राइट हमने डिस्कस किया ये सारी प्रोसेस न्यू स्टेट से रेडी स्टेट में जाती तो इस काम को करने के लिए जो कोड यूज होता है जो सॉफ्टवेयर यूज होता है उसको मैं बोलता हूं जॉब स्केड्यूल ठीक है वो जॉब को शेड्यूल कर रहा है यानी जॉब को रेडी स्टेट में डाल रहा है तो इसको मैं बोलता हूं जॉब स्केड्यूल तो जो भी जॉब क्यू से उठा के प्रोसेस जो रेडी स्टेट में जाती है यह काम करने वाला जो मॉड्यूल है उसको मैं जॉब स्केड्यूल बोलता हूं और जॉब स्केड्यूल के साथ इसका दूसरा नाम भी है लॉन्ग टर्म शेड्यूलर ठीक है अब इसको लॉन्ग टर्म शेड्यूलर क्यों बोल रहा हूं मैं मैं बताता हूं अब बेसिकली क्या ना कि न्यू न्यूज में जाने से पहले यहां पर मैं बता रहा था कि प्रोग्राम्स पड़े हैं डिस्क के अंदर जो रेडी टू एग्जीक्यूट है प्रोग्राम तो डिस्क के अंदर पड़े हुए हैं डिस्क से उठा उठा के इसको मस बेसिकली यहां पर स्केड्यूल करने हैं ठीक है डिस से उठा उठा के इसको रेडी स्टेट में डालने है बेसिकली मेमोरी में डालने है इसको डिस से उठा के शेड्यूल करना है तो ये वाला जो काम है ना ये पर्टिकुलर काम डिश से उठा के इधर डालना डिश से उठा के न्यू स्टेट में ले जाके और यहां तक डालने का काम ये काम मेरा जॉब शेड्यूलर करता है इसको मैं लॉन्ग टर्म शेड्यूलर भी बोलता हूं लॉन्ग टर्म शेड्यूलर क्यों बोलता हूं इसके बारे में थोड़ी देर में आएंगे ठीक है तो अभी मैं इसको जॉब स्केड्यूल ही बोल लेता हूं ठीक है तो बेसिकली क्या कर रहे हैं हम ये एक बहुत बड़ा पूल है डिस्क के अंदर बहुत बड़ा पूल है वहां पे बहुत सारे रेडी टू बी एग्जीक्यूटेड प्रोसेस बेसिकली प्रोग्राम्स पड़े हैं तो मैं जॉब स्केड्यूल आता है उसको उठाता है उठा के उसको न्यू स्टेट में कन्वर्ट करता है उठा के फिर उसको रेडी क्यू में डाल देता है ठीक है तो रेडी क्यू में डालने का काम बेसिकली ये जॉब शेड्यूलर का होता है ठीक है अब दूसरा आता है रेडी क्यू अब रेडी क्यू में बहुत सारी प्रोसेसस आपने डाल दी अब रेडी क्यू से मुझे जाना है रनिंग स्टेट में ठीक है तो रेडी क्यू से रनिंग स्टेट में डालने का काम करता है सीपीयू शेड्यूलर तो सीपीय स्केड्यूल एक मॉड्यूल है जिसको मैं शॉर्ट टर्म स्केड्यूल भी बोलता हूं वो क्या करता है डेडी क्यू से प्रोसेस को उठाता है डिपेंडिंग अपॉन द एल्गोरिथम एंड प्रायोरिटी उठाके उनको डिस्पैच करता है सीपीयू को ठीक है डिस्पैच में वर्ड यूज करता हूं यहां पे डिस्पैच करता है सीपीयू को और जो मॉड्यूल सीपीयू प्रोवाइड करता है ठीक है ये काम करता है इनेबल करता है उसको डिस्पैच बोलता हूं ठीक है तो ये मेरे दो टाइप के मैं बोल सकता हूं स्केड्यूल हो गए पहला हमारा जॉब शेड्यूलर ठीक है इसको लॉन्ग टर्म शेड्यूलर भी बोल रहा हूं मैं और दूसरा मेरा है सीपीय शेड्यूलर इसको शॉर्ट टाइम स्केड बोल रहा हूं ठीक है एक बार दोबारा से रिवाइज करते हैं जॉब स्केड्यूल क्या कर रहा है जॉब शेड्यूलर क्या कर रहा है वो क्या कर रहा है पूल से बहुत सारी जॉब्स को बेसिकली प्रोसेसेस को पिक कर रहा है पिक करने के बाद उनको रेडी स्टेट में डाल रहा है ठीक है यहां से रेडी स्टेट में डालने का काम पूरा जॉब शेड्यूलर का है ठीक है और रेडी स्टेट से रनिंग स्टेट में जाने का काम डालने का काम कौन सी प्रोसेस जाएगी ये डिसीजन लेने का काम सीपीयू शेड्यूलर का ठीक है तो ये हमें समझ आ गया है अब जॉब शेड्यूलर को लॉन्ग टर्म शेड्यूलर क्यों बोलते हैं लॉन्ग टर्म स्केड्यूल इसलिए बोलते हैं ये लॉन्ग टर्म शॉर्ट टर्म ना फ्रीक्वेंसी पे डिपेंड कर रहा है फ्रीक्वेंसी मतलब कि ये कितनी किनी देर में चलते हैं कितने-कितने टाइम पीरियड में ये काम करते हैं अब मैं बोलूं कि जो सीपीय स्केड्यूल होता है ना वो बहुत हाई फ्रीक्वेंसी पे काम करता है मतलब एकदम मिली सेकंड्स के डिफरेंस पे काम कर रहा होता है मतलब उसका जो बीच का मैं बोल सकता हूं कि जो आइडल टाइम है ना बहुत कम होता है कैसे कि मान लो एक प्रोसेस है एक प्रोसेस p1 यहां पे थी ठीक है p1 यहां पे जाके स्केड्यूल हुई फिर ठीक है रनिंग कर रही है अब रनिंग करने के विदन एक या मतलब बोल फ्रैक्शन ऑफ सेकंड में ना उसको आई की ऑपरेशन आ गई और वो सीधा आयो करने चले गए यानी कि सीपीयू शेड्यूलर ने स्केड्यूल करी स्केड्यूल करने के बाद पीव रनिंग स्टेट पे गई रनिंग स्टेट में जाने के थोड़े ही सेकंड्स मतलब सेकंड थोड़े सेकंड भी नहीं बोलूंगा थोड़े इंस्ट्रक्शन साइकिल के बाद उसको आया कि आयो करने जाना है तो आयो पे चली गई तो सीपीयू खाली हो गया अब मान लो सीपीयू शेड्यूलर का जो डिले है मैं बोल आइडल टाइम है ठीक है वो बहुत ज्यादा हुआ यानी कि वो जब उसने पीव स्केड्यूल की थी पीव स्केड्यूल करने के बाद उसने सोचा एक मिनट बाद मैं दोबारा देखूंगा जाके रेडी व्यू में कि कौन सी जॉब करनी है मुझे स्केड्यूल अगर ऐसा हुआ तो क्या होगा कि सीपीयू जो है आइडल बैठा रहेगा हमने पहले ही डिस्कस किया सीपीयू आइडल नहीं बैठना चाहिए कुछ भी हो जाए ठीक है तो इस केस में जो फ्रीक्वेंसी है ना जॉब स्केड्यूल को वापस रीस्टार्ट करने की या फिर जो उसको आइडल टाइम है वो सबसे कम रखेंगे हम और जल्दी जल्दी उसको बोलेंगे तू काम कर ठीक है मतलब वो क्या करेगा जैसे ही मान लो अब मान लो जैसे ही उसने पीव स्केड्यूल करी थी और पीव जैसे ही आओ के लिए गई तो सीपीयू शेड्यूलर जो है मेरा वो चेक कर रहा होगा कि सीपीयू खाली है कि नहीं सीपीयू खाली है कि नहीं जैसे सीपीयू खाली मिला तभी कोई और प्रोसेस जैसे p1 या p3 पड़ी है p3 को उठा के इसको रनिंग स्टेट पर डाल देगा ठीक है तो मैं बोल सकता हूं कि स्कप यू शेड्यूलर को शॉर्ट टर्म शेड्यूलर इसलिए बोल रहे हैं क्योंकि उसका बीच का जो आइडल टाइम है ना वो बहुत कम है वह बहुत ही ज्यादा हाई फ्रीक्वेंसी पे काम कर रहा है ठीक है जल्दी-जल्दी बेसिकली कोई डिले नहीं ले रहा वह जैसे उसको एक जॉब को स्केड्यूल करता है वह जॉब का भरोसा नहीं करता व दोबारा रेडी क्यू में आ जाता है देखने कि सीपीयू खाली है तो सीपीयू खाली नहीं है अगर खाली है तो मैं उठा के वापस से दे देता हूं वापस से दे देता हूं कोई और प्रोसेस उठा के दे देता हूं ठीक है तो इसलिए मैं इसको शॉर्ट टर्म स्केड्यूल भी बोल रहा हूं और जॉब स्केड्यूल थोड़ा सा आलसी है मतलब वो थोड़ा उसका आइडल टाइम ज्यादा होता है वह मतलब मैं कह सकता हूं हर हर एक मिनट बाद चेक करता है कि कोई जॉब या बेसिकली रेडी क्यू में डालनी है वो हर एक मिनट बाद चेक करता है मतलब मान लो t = 0 टाइम पे उसने पांच जॉब्स उठा के रेडी क्यू में डाल दी ठीक है फिर t t0 प्लस 1 मिनट बाद यानी t t0 प् 1 मिनट बाद वो जाके दोबारा चेक करेगा क्या कोई और जॉब आई है क्या दरवाजे पे कि उसको रेडी क्यू में डालें समझ रहे हो आप तो ये बीच का जो गैप है यहां पे ज्यादा होता है तो इसलिए मैं इसको लॉन्ग टर्म स्केड्यूल भी बोलता हूं ठीक है लॉन्ग टर्म स्केड्यूल और एक और इंटरेस्टिंग बात बता दूं एक चीज होती है डिग्री ऑफ मल्टी प्रोग्रामिंग डिग्री ऑफ मल्टी प्रोग्रामिंग का मतलब एक बारी में कितनी सारी प्रोसेसेस रेडी क्यू में रह सकती है इस रेडी क्यू में एक बारी में कितनी सारी प्रोसेसेस रह सकती है तो डिग्री ऑफ मल्टी प्रोग्रामिंग जो है ना वो जैसे मैं एग्जांपल लू अगर मान लो फाइव प्रोसेसेस ही एक बारी में डीक्यू में रह सकती है तो मैं डिग्री ऑफ मल्टी प्रोग्रामिंग फाइव बोलूंगा ठीक है तो इसको कौन हैंडल करता है इसको मतलब कौन गवर्न कर रहा है या इसको कौन मैं बोल सकता हूं कि कौन इसको मैनेज कर रहा है तो वो कौन कर रहा है आपका जॉब स्केड्यूल मैनेज कर रहा है लग स् मैज कर रहा है क्योंकि वही एक्चुअली जॉब्स को उठा के पूल से यानी कि सेकेंडरी स्टोरेज से उठा के रेडी क्यू में डाल रहा है तो डिग्री ऑफ मल्टी प्रोग्रामिंग भी यही हैंडल कर रहा है तो ये क्वेश्चन आ सकता है कि डिग्री ऑफ मल्टी प्रोग्रामिंग कौन कंट्रोल करता है आप बोलोगे एलटीएस लॉन्ग टर्म शेड्यूलर जो है वो हैंडल करता है डिग्री ऑ मल्टी प्रोग्रामिंग को ठीक है तो यही था इस वीडियो के लिए तो आपको यहां पर क्या-क्या सीखने को मिला वो हम एक बार सराइज करते हैं नोट्स के थ्रू ठीक है सबसे पहले हमने देखा कि प्रोसेस की स्टेट्स होती है क्या होती है प्रोसेस की स्टेट डिफरेंट डिफेंट स्टेट्स में प्रोसेस अपनी पूरी लाइफ साइकिल में रिवॉल्व करता है ठीक है सबसे पहले अब न्यू स्टेट होती है हमारी फिर रन स्टेट भी होती है वेटिंग रेडी टर्मिनेटेड सबके बारे में हमने डिस्कस किया यह जो पर्टिकुलर डायग्राम है इसको दिमाग में छाप लो बढ़िया से ठीक है जहां पर हमारा पूल से हमारा जो जॉब शेड्यूलर है वो रेडी क्यू में डालता है ठीक है प्रोसेसेस को फिर यहां से जो सीपीय स्केड्यूल प्रोसे को डिस्पैच करता है एक्चुअल सीपीयू को रनिंग करने के लिए ठीक है मतलब सीपीयू प्रोसेस एग्जीक्यूट करेगा ठीक है तो यह हो गया उसके बाद हमने डिस्कस किया था कि प्रोसेस कितने टाइप की क्यूज होती है हमारी जॉब क्यू है रेडी क्यू है और एक और क्यू जो मैं हां डिस्कस करना भूल गया वो वेटिंग क्यू है वेटिंग क्यू क्या है कुछ नहीं है जब रनिंग स्टेट से आईओ में जाती है मान लो एक से ज्यादा प्रोसेसस आईओ में घुस गई मान लो यहां पे p1 प2 p3 तीन प्रोसेस थी आपने p3 पहले इधर स्केड्यूल की थी p3 थोड़ा सा ही चलती आय में चली गई तो p3 इधर आ गई अब p3 इधर आ गई तो क्या हो गया p3 इधर आई तो उसने देखा सीपी ने देखा कि बेसिकली सीपीय खाली पड़ा है तो p2 दे दो p2 इधर डाली अब p2 जब रनिंग शेट पे गई थोड़ी देर बाद वो भी आयो में आ गई तो p2 p3 इस टाइम आयो में चली गई फिर p1 इधर स्केड्यूल होगी तो p2 p3 जिस टाइम पे आयो में है तो ये भी q की तरह ही जाती है ठीक है तो ये सारी क्यूज है ये भी एक रेडी क्यू है ये एक रनिंग ये तो बेसिकली सीपीयू ही है ठीक है ये रेडी क्यू है आपका और ये आपका वेटिंग क्य है ठीक है य यहां पर आपका जॉब क्यों होता है ठीक है तो मैं कह सकता हूं हमारे पास ये तीन टाइप की क्यूज होती है ठीक है डिग्री ऑफ मल्टी प्रोग्राम में हमने डिस्कस किया जस्ट और डिस्पेचर हमने बात करी डिस्पेचर होता क्या है डिस्पेचर मैंने इसलिए बता दिया आपको कि कभी आप कहीं पढ़ो तो आपको ऐसा ना लगे पता नहीं क्या है यार डिस्पेचर ठीक है तो इस वीडियो के लिए इतना ही मिलते हैं नेक्स्ट वीडियो में आई होप आपको समझ आया होगा कमेंट सेक्शन पर लिख के जाओ कैसा आपको मजा आ रहा है कि नहीं प्रोसेस पढ़ने में ठीक है और तो मिलते हैं बाय हेलो जी कैसे हो सारे दिस इज लक्ष तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 11 पर और आज हम चार इंपॉर्टेंट टॉपिक्स इंटरव्यू पॉइंट ऑफ व्यू से डिस्कस करने वाले हैं जो कि रिलेटेड है प्रोसेस से प्रोसेस मैनेजमेंट आपके मॉड्यूल से ठीक है तो चार इंपोर्टेंट टॉपिक कौन से होने वाले हैं सबसे पहला हम स्वाइपिंग डिस्कस करेंगे फिर हम कांटेक्ट स्विचिंग डिस्कस करेंगे ऑर्फन प्रोसेसेस और जॉम्बी प्रोसेसेस डिस्कस करेंगे ठीक है ऑर्फन प्रोसेसस और जॉम्बी प्रोसेसेस के बीच में डिफरेंसेस इंटरव्यू में पूछ लिए जाते हैं ठीक है और ये कैसे बनती है ओएस में टर्मिनल पे हम इसको लाइव बना के भी दिखाएंगे आपको कैसे ऑफ प्रोसेस को क्रिएट किया जाता है जॉम्बी प्रोसेस कैसे दिखती है ठीक है हम ये सब अपना टर्मिनल प करके दिखाएंगे आपको ठीक है तो चलो यार सबसे पहले हम डिस्कस करते हैं स्वाइपिंग वाले पार्ट को बट उससे पहले मैं एक चीज और डिस्कस करना चाहूंगा कि अभी हमने लास्ट लेक्चर में डिस्कस किया था कि हमारे पास शॉर्ट टर्म शेड्यूलर और लॉन्ग टर्म स्केड्यूल जैसी दो टाइप के शेड्यूल्स होते हैं ठीक है शॉर्ट टर्म स्केड्यूल को मैं क्या बोलता हूं मैं सीपीय स्केड्यूल भी बोल देता हूं लॉन्ग टर्म स्केड्यूल जॉब स्केड्यूल भी बोल देता हूं ठीक है इसका डायग्राम कैसा दिखता है इसका डायग्राम कैसे दिखता है हमारे पास एक जॉब क होती है ठीक है एक रेडी क्यू होती है यह हमारा इधर सीपीयू है कहीं पर छोटा सा सीप बना दिया हमने यह आपकी जॉब क्यू है यह कहां पर होती है य सेकेंडरी स्टोरेज में होती है ठीक है सेकेंडरी स्टोरेज में यहां पर आपका एलटीएस काम करता है यहां पर आपका एसटीएस काम करता है डिस्पैचिंग करता है ठीक है ये आपका सीपीयू ये आपकी रेडी क्यू है तो ये आपका डायग्राम हो गया लॉजिकल डायग्राम कैसा दिखता है ठीक है तो एलटीएस यहां पर काम करता है कैसे काम करता है एलटीएस क्या करता है आपका वो मिक्स ऑफ प्रोसेस निकालता है ठीक है जो आपके आपने जो आपका यूजर है यूजर ने तो बहुत सारी प्रोसेस शूट की हुई है ठीक है आपके पास p1 प्रोसेस है प2 प्रोसेस है p3 प्रोसेस है अब देखो जॉब शेड्यूलर का जो लॉन्ग टर्म शेड्यूल का क्या काम होता है एक इंपॉर्टेंट काम उसका ये भी होता है कि वो मिक्स ऑफ प्रोसेस को चूज करें अब मिक्स ऑफ प्रोसेस का यहां मतलब क्या है आपके पास आई इंटेंसिव काम हो सकता है ठीक है आई इंटेंसिव प्रोसेस हो सकती है आपके पास सीपीयू इंटेंसिव प्रोसेस हो सकती है तो आप चाहते क्या हो एक अच्छी मिक्स इन दोनों टाइप की प्रोसेसेस का एक ऐसा मिक्सचर चाहते हो ताकि एक रेडी क्यू एक अच्छी रेडी क्यू हो ठीक है अगर सारी ही मैं सीपीय इंटेंसिव प्रोसेसेस रेडी क्यू में डाल दूंगा तो स्टार्वेशन होने का चांस बढ़ जाएगा आई में डाल दूंगा तो भी स्टार्वेशन हो होने का चांस बढ़ जाएगा तो मैं नहीं चाहता कि ऐसा एक ही टाइप की जॉब्स हो तो मैं मिक्स चाहता हूं ठीक है तो मिक्स इनका मिक्स बनाने का काम एक मिक्सचर बनाने का काम किसका है वो है आपका जॉब शेड्यूलर का ठीक है जॉब शेड्यूलर इसी हिसाब से बेसिकली चूज करेगा प्रोसेस को रेडी क्यू में डाल देगा ठीक है और एसटीएस का काम क्या था एसटीएफ का काम यही था कि सीपी स्केड भी बोलते हैं इसको यह कोई एक प्रोसेस उठाता है उसको उठाकर डिस्पैच कर देता है सीपीयू को डिपेंडिंग अपॉन एल्गोरिथम यू हैव चोजन ठीक है तो ये आपका हो गया सिस्टम अब इसके बाद एक और टाइप का शेड्यूल होता है जिसके बारे में हमने लास्ट वीडियो में डिस्कस नहीं किया था तो अब हम डिस्कस करते हैं एमटीएस इसको मैं क्या बोलता हूं मीडियम टर्म शेड्यूलर ठीक है मतलब हमने लॉन्ग टर्म शकेल पढ़ा शॉर्ट टर्म स्केड पढ़ा अब बीच का है इनके बीच का ठीक है तो अब इसका क्या काम होता है यार एमटीएस जो है ना वो बेसिकली लेटली इंट्रोड्यूस हुआ था उससे पहले जो बोलू मैं क्लासिक ओस जो है उसके अंदर लॉन्ग टर्म स्केड शर्ट टम ही होता था ठीक है मीडियम ट स्केड अभी लेटली ही इंट्रोड्यूस हुआ था आजकल के सिस्टम में एमटीएस होता है ठीक है तो यह क्या इसका काम क्या होता है बस इसका काम होता है बहुत बार क्या होता है ना यार आपने डिग्री ऑफ मल्टी प्रोग्रामिंग को बहुत ज्यादा बढ़ा दिया ठीक है डिग्री ऑफ मल्टी प्रोग्रामिंग जो है वो बहुत इंक्रीज हो गई इसको इक्रीज किसने किया है इसको इंक्रीज एलटीएस ने किया है लॉन्ग टर्म स्केड में इंक्रीज किया है ठीक है और बहुत सारी चीजें अब रेडी क्यू में डाल दी आपने ठीक है डिग्री ऑफ मल्टी परमिंग क्या होता है डिग्री ऑफ मल्टी परफॉर्मिंग रेडी क्यू में कितनी प्रोसेसेस हो सकती है उसको कहते हैं हम ठीक है तो अब ये इंक्रीज हो गया अब इंक्रीज होने के बाद क्या हुआ अब इंक्रीज होने के बाद जब सीपीयू प्रोसेसस को रन करने लगा तब उसने देखा कि कोई उनमें दो-चार प्रोसेसेस ऐसी थी जो कि बहुत ज्यादा मेमोरी ले रही है ठीक है अब बहुत ज्यादा मेमोरी ले रही है तो उस चक्कर में ना आपके पास मेमोरी ही खत्म हो जा रही है तो रेडी क्यू सारी पूरी रेडी क्यू को मेंटेन करने की स्पेस ही नहीं है तो मुझे अब क्या करना पड़ेगा कुछ प्रोसेसेस को स्वैप आउट करना पड़ेगा यानी कि रेडी क्यू से हटाना पड़ेगा उसको ठीक है स्वप आउट बढ़िया मैं यूज कर रहा हूं ठीक है तो मुझे क्या करना पड़ेगा यह आपकी रेडी क्यू है सपोज ठीक है ये आपकी रेडी क्यू है रेडी क्यू में p1 p2 p3 ऐसे करके बहुत सारी प्रोसेसेस पड़े हुए है मातलब p1 प2 बहुत ज्यादा बेसिकली मेमरी इंटेंसिव जॉब करने लग गई है और आपके पास स्पेस ही नहीं बच रही है ठीक है मतलब मैं कहूं जब अ एक प्रैक्टिकल एग्जांपल हू तो आपने बहुत सारे प्रोग्राम्स अगर रन कर दिया आपने उठाया अपना कंप्यूटर कंप्यूटर में सब कुछ जितने प्रोग्राम्स ना ओपन करते चले गए ओपन करते चले गए ओपन करते चले गए या फिर अगर मैं अपने एंड्र फोन या आओ की बात करूं तो आप बहुत सारी एप्स जब खोल लेते हो तो आप देखोगे कुछ रिसेंट की एप्स जो आपने खोली थी वो तो दिखती है वहां पे मेमोरी पर कुछ एप्स जो है ना पीछे वो दिखती तो है आपको कि वो है बट वो जब आप उन पर क्लिक करते हो तो रीलोड होने में बहुत टाइम लगाती है क्यों क्योंकि वो अभी मेमोरी में थी नहीं वो किसी और एरिया में गई हुई थी वो एरिया कौन सा है वो हम अभी डिस्कस करते हैं ठीक है तो आपने क्या किया p1 और प2 बहुत ज्यादा मेंब्रेन इंटेंसिव थी तो p3 p4 के लिए रेडी क्यू में भी रह पाए जगह ही नहीं बची तो जगह नहीं बची तो हम क्या करते हैं हम करते हैं कि हम एक एरिया है अलग से जिसको मैं स्वप स्पेस भी बोल रहा हूं हम इन प्रोसेसेस को उठाते हैं और यहां पर स्वप आउट कर देते हैं ठीक ठीक है जो p3 p4 ऐसा हो सकता है कि ये पूरी एग्जीक्यूट ना हुई हो ओबवियसली पूरी एग्जीक्यूट नहीं हुई है तभी रेडी क्यों में है हो सकती है आधी एग्जीक्यूट हुए किसी एक पॉइंटर प्रोग्राम काउंटर पे इनके रिस्पेक्टिव प्रोग्राम काउंटर पे ये वेट कर रही होंगी तो मैं उसी स्टेट को ना उठा के एक स्वैप स्पेस में सेव कर दूंगा और ये स्वैप स्पेस ना जनरली आपकी सेकेंडरी स्टोरेज होती है सेकेंडरी स्टोरेज मतलब एसएसडी होगी हार्ड डिस्क होगी ठीक है तो हमने स्वैप आउट कर दिया इसी स्वैप स्पेस में इसको सेव कर दिया ठीक है तो अब इससे क्या हुआ अब इससे क्या हुआ फॉर टाइम बीइंग फॉर टाइम बीइंग आपने रेडी क्य को छोटा कर दिया और मेमोरी को एग्जॉस्ट होने से बचा लिया ठीक है तो अभी p1 प2 बढ़िया से काम कर रही होंगी अब मान लो ऐसा होता है कि p1 जो है जो मेमरी इंटेंसिव जॉब कर रही थी उसने इसको टर्मिनेट कर दिया मतलब ये टर्मिनेट स्टेट प चली गई खत्म हो गई अब p1 जो है बहुत ज्यादा मेमोरी ले रही थी ठीक है तो अब मेरे पास स्पेस बच चुकी है कि मैं वापस से p3 p4 जो कि स्वैप आउट हो गई थी किसी सेकेंडरी स्टोरेज में चली गई थी उनका सारा करंट स्टेट जो है मैंने सेकें स्टोरेज में सेव कर लिया था मैं उसको उठा के वापस से रेडी क्यू में ले आऊ p3 p4 को ठीक है इसको मैं क्या बोलता हूं स्वप इन तो स्वप आउट और स्वप इन ठीक है इस प्रोसेस को क्या बोलते हैं हम स्वैपिंग समझ गए इसको फिर से एक बार समझते हैं एक इससे बेटर डायग्राम है जो मैंने बनाया तो थोड़ा सा काम चला डायग्राम है एक बेटर डायग्राम नोट्स में बनाया उससे समझते हैं ठीक है आपके पास एक रेडी क्यू है इसमें बहुत सारी प्रोसेसेस पड़ी हुई हैं ठीक है सीपीयू भी आपके पास है यह वेटिंग क्यू है आईओ है और यह आपका एरिया है जहां पर पार्शियली एग्जीक्यूट स्वप ड प्रोसेसेस पड़ी हुई है ठीक है तो क्या होता है आपके पास बहुत सारी प्रोसेसेस है कुछ प्रोसेसेस उसके अंदर ज्यादा आ गई डिग्री ऑ मल्टी प्रोग्राम इतनी बढ़ गई है कि आपकी मेमोरी जो आपने सोची थी कि उस मेमोरी में मेरा काम बन जाएगा उस मेमरी में आपका काम नहीं बन पा रहा है ठीक है तो इस चक्कर में आपने क्या किया इस चक्कर में आपने कुछ प्रोसेसेस को स्वप आउट कर दिया ठीक है कुछ प्रोसेसेस को आपने ने रिमूव कर दिया करंट मेमोरी से रेडी क्यू से रिमूव कर दिया तो स्वप आउट करने के लिए हम सीपीयू की हेल्प करेंगे ऐसे जो कांटेक्ट स्विचिंग स्वैपिंग इन सबके अलग से इंस्ट्रक्शंस लिखी होती है इसको करने के लिए भी कर्नल के अंदर इंस्ट्रक्शंस लिखी होती है तो कर्नल इनको परफॉर्म करेगा कर्नल कैसे परफॉर्म करेगा अल्टीमेटली परफॉर्मर जो होता है इंस्ट्रक्शन जो एग्जीक्यूट करता है वो कौन होता है वो सीपीयू होता है तो सीपीयू क्या करेगा उठा के कुछ जॉब्स को स्वप आउट कर देगा तो मान लो p3 p4 का एग्जांपल लिया था हमने तो p3 p4 यहां पे आ जाएंगी जो कि कौन सा एरिया है सेकेंडरी स्टोरेज और हम सबको पता है हमने पढ़ा था स्टोरेजेस में कि सेकेंडरी स्टोरेज जो होती है वो ज्यादा बड़ी होती है क्योंकि सस्ती होती है ना एक्सेस टाइम कम होता है तो इसलिए सस्ती होती है तो ये स्पेस इनका ज्यादा होता है तो यहां पे मैं इन प्रोसेसस को उठा के डाल सकता हूं तो मैंने उठा के प्रोसेसेस को यहां पर डाल दिया अब डालने के बाद क्या होगा डालने के बाद p1 प2 जो अपकी मेमरी इंटेंसिव जॉब्स थी वो काम कर लेंगी उसके बाद हम थोड़ी देर बाद वापस से स्वाइप इन कर लेंगे प्रोसेस को ठीक है इस पूरे प्रोसेस को हम स्वाइपिंग बोल रहे हैं और ये करता कौन है ये एमटीएस करता है मीडियम टर्म शेड्यूलर ठीक है तो आप देख रहे हो ओस के अंदर ना बड़ी इंटरेस्टिंग चीज जो मुझे बहुत पसंद है वह यह है कि हर छोटी-छोटी चीजों पे ऑप्टिमाइजेशन लगा रखी है अभी लॉन्ग टर्म स्केड्यूल और शॉर्ट टर्म स्केड्यूल से मेरा काम बन रहा था ठीक है बट जो डिजाइनर्स है या फिर जो बेसिकली रियल लाइफ प्रॉब्लम जो लोगों को फेस हुई होगी वो कि बहुत सारी प्रोसेसेस आ गई और उसके बाद कोई ऐसी मेमोरी इंटेंसिव प्रॉब्लम आ गई प्रोसेस आ गई मेमोरी इंटेंसिव प्रोसेस आ गई तो मैं क्या करूं तो हमने क्या करा वापस से लॉन्ग टर्म स्केड्यूल से काम ना करा के मैं एक बीच में स्केड्यूल डाल देता हूं मीडियम टर्म स्केड्यूल उसको अलग से स्पेस में बना के डाल दूंगा प्रोसेस को जो कि पार्शियली एकड प्रोसेस होगी तो मैं कह सकता हूं कि करंट कांटेक्ट वाली प्रोसेस सारी यहां जाएंगी एक टाइप की कंटेस्ट स्विचिंग हुई है मतलब उस क कंटेस्ट नहीं एक टाइप की कांटेक्ट सेविंग होगी ठीक है जो सेव रिस्टोर करते है ना कटेक्स वाला तो एक टाइप की सेविंग होगी ठीक है सोंग हमें समझ आ गया है अब हम उसके बाद डिस्कस करते हैं कांटेक्ट स्विचिंग के बारे में ठीक है कांटेक्ट स्विचिंग के बारे में कांटेक्ट स्विचिंग कांटेक्ट स्विचिंग अबे कंटेस्ट स्विचिंग ना जब से ओस की सीरीज शुरू हुई है मेरे ख्याल से दूसरे तीसरे लेक्चर से हम डिस्कस करना शुरू हो गए थे बट इसको थोड़ा सा फॉर्मली आज डिस्कस कर लेते हैं क्योंकि हम प्रोसेस एटिबल हैं पीसीबी के बारे में पढ़ चुके हैं जो जब मैंने बताया था पहले कंटेस्ट स्विचिंग क्या होता है तब पीसीबी शायद हमें नहीं पता था ठीक है तो अब हम इसको फॉर्मली अगर बोलूं तो क्या होता है तो कंटक्ट स्विचिंग के अगर मैं प्रैक्टिकल एग्जांपल दूं ठीक है तो इसमें एक एग्जांपल लेते हैं कि अगर आप बैठ के अभी गाने सुन रहे हो या पबज गेम खेल रहे हो ठीक है गेम खेल रहे हो अब गेम खेलते खते पीछे से पापा आते हैं सुन नीचे ना स्विगी वाला आया है उससे खाना लिया ठीक है अब आपको क्या करना पड़ेगा अब आपको उस टाइम आपका करंट कांटेक्ट जो था अगर आप गाने सुन रहे थे आप गाने पॉज करोगे ठीक है जिस गाने पे आप थे उसको पॉज करोगे फोन बंद करोगे ईयरफोन निका लोगे यानी कि आप जिस जो आपका दिमाग में कंटेस्ट था जो अभी आप जिसको काम को कर रहे थे उस काम का जो फोकस था आप उठा के उसको कहीं सेव कर दोगे टेबल पर फोन को रख दोगे सेव कर दोगे ठीक है उस काम को और आप नीचे जाओगे और नीचे जाके स्विगी वाले से आप डिलीवरी लोगे ऊपर आके पापा को दे दो कि ये एक टास्क हो गया टास्क बी है ये टास्क भी आपने कर लिया जैसे ही काम कंप्लीट करा आपने पापा को दे दिया खाना ठीक है और आप वापस आए और वापस आने के बाद आपने अपना दोबारा से जहां पे आपका बीच में गाना छूटा हुआ था आपने दोबारा से ईयरफोन लगाई और अपने वापस पुराने वाले कांटेक्ट पे लौट गई ठीक है आपने अपने पुराने कांटेक्ट को रिस्टोर कर लिया ठीक है तो इस चीज को मैं बोलता हूं कांटेक्ट स्विचिंग ठीक है बेसिकली सिंपल लैंग्वेज है ये बेसिकली मैं बोलू डेली लाइफ में बहुत पार करते हैं डेली करते हैं ठीक है कंटक्ट स्विचिंग तो अब ओएस के टर्म्स में बात करूं मैं थोड़ा सा ओएस की टर्म्स में बात कर तो आपके पास एक पव प्रोसेस है एक प2 प्रोसेस है ठीक है अब हमने पढ़ा है कि प्रोसेस के एट्रबीक मेन मेन चीज ले लेता हूं इसमें इसमें प्रोग्राम काउंटर होता था हमारा और रजिस्टर होते थे ठीक है प्रोग्राम काउंटर होता था रजिस्टर होते थे इधर भी प्रोग्राम काउंटर होता था रजिस्टर होते थे स्टेट होती थी धर भी स्टेट होती थी ठीक है र बना देते हैं पी आईडी पी आईडी और क्या होता था फाइल हैंडल्स एफडी तो बेसिकली हमारी य बड़ा गंदा डायग्राम बना है यह दो प्रोसेसेस है इनके रिस्पेक्टिव दो पीसीबी है पीसीबी वन बोल देता हूं पीसीबी टू बोल देता हूं य पीसीबी कहां होती है आपके पास एक प्रोसेस टेबल होती है प्रोसेस टेबल की एंट्री होती है पीसीवी ठीक है एक डाटा स्ट्रक्चर है ये जो कि प्रोसेस के बारे में सारी चीजें डिस्क्राइब करता है तो अब हम क्या करेंगे अब कांटेक्ट स्विचिंग का क्या मतलब है जब सीपीयू को सीपीय को कांटेक्ट स्विच करना होता है सीपीयू को कांटेक्ट स्विच कब करना होता है जब किसी एक पर्टिकुलर प्रोसेस कोई एक पर्टिकुलर प्रोसेस वेट स्टेट प चली जाती है यानी कि आओ करने चली गई है प्रोसेस आओ करने चली गई ठीक है और या फिर एक प्रोसेस का टाइम क्वांटम खत्म हो गया टाइम शेयरिंग सिस्टम्स में तो मुझे क्या करना पड़ेगा मुझे पर्टिकुलर प्रोसेस जिसका टाइम क्वांटम खत्म हुआ है या जो आयो करने चली गई है उसका करंट कंटक्ट सेव करना पड़ेगा क्योंकि अब सीपीयू उसके पास नहीं रहेगा अब सीपीयू कुछ और प्रोसेस को एग्जीक्यूट करेगा ठीक है तो इस केस में मैं क्या करूंगा सीपीयू के पास अभी p1 थी ठीक है अब सीपीयू क्या करेगा सीपीयू के अंदर क्या होता है कुछ रजिस्टर्स भी होते हैं आपके हमने बात करी थी एस सीपी इस टाइप के रजिस्टर्स होते हैं ठीक है सीपीयू रजिस्टर्स सीपीय के कुछ रजिस्टर्स होते हैं अब क्या होगा सीपीयू क्या करेगा अभी मान लो प्रोग्राम आपका किसी एक पर्टिकुलर लोकेशन पे एग्जीक्यूट हो रहा था ठीक है किसी पर्टिकुलर एग्जीक्यूट हो रहा था इसका एड्रेस मैं वन बोल देता हूं ठीक है अब क्या होगा सीपीयू करेगा कि अभी का कांटेक्ट सेव कर लो सेव कर लो सेव करने के लिए क्या करेगा वो उठा के कि जो नेक्स्ट इंस्ट्रक्शंस होगी इंस्ट्रक्शन होगी जैसे टू इंस्ट्रक्शन नेक्स्ट है तो यहां पे टू लिख देगा और जो जितने भी सीपीयू के रजिस्टर्स होंगे रजिस्टर्स अलग-अलग सीपीयू में सीपीयू आर्किटेक्चर्स में अलग-अलग सीपीय में अलग-अलग टाइप के रजिस्टर्स होते हैं काउंट भी उनका अलग-अलग होता है तो व उठा के सारे रजिस्टर्स की जो अभी करंट वैल्यू थी उठा के इस रजिस्टर्स वाली पीसीबी की एंट्री में सेव कर देगा इन सारे रजिस्टर्स को ठीक है और करंट स्टेट को चेंज कर देगा ठीक है कर स्टेट को चेंज कर देगा एफडी जो जो ओपन थे सारी जितने भी टाइप की इंफॉर्मेशन जो अभी करंट कांटेक्ट था पूरी प्रोसेस का वो उठा के आपका पीसीबी में सेव कर देगा और किस पीसीबी में सेव करेगा p1 के कॉरस्पॉडिंग पीसीबी में सेव कर देगा और अब उसके बाद मान लो उसको प2 शेड्यूल करनी थी अब उसको प2 शेड्यूल करनी थी प2 शेड्यूल करने के लिए वो क्या करेगा प2 भी कभी सेव हुई होगी ठीक है तो वो क्या करेगा उसके करंट रजिस्टर की वैल्यू जो उस टाइम रजिस्टर्स की वैल्यू थी वो उठा के सीपीयू के रजिस्टर्स में करेस्पॉन्डिंग्ली डिस्क्रिप्टर ओपन थे या फिर डिवाइस डिस्क्रिप्टर्स ओपन थे इन सबको उठा उठा के वापस से सीपीयू देगा तो अब इसका मतलब मैंने p2 का कंटेक्सकंपैट को मैंने सेव कर लिया तो इस पूरी प्रोसेस को मैं कांटेक्ट स्विचिंग बोलता हूं मोटा-मोटा ठीक है और ये करता कौन है कंटक्ट स्विचिंग करता कौन है ओएस में कर्नल करता है ठीक है कर्नल इस काम को करता है ये सारे जो लो लेवल काम है ना ओस के कर्नल करता है ठीक है यूजर स्पेस तो नहीं करेगा ओबवियसली ठीक है तो यार जब भी कांटेक्ट स्विचिंग होती है ना कांटेक्ट स्विचिंग जो है ना प्योर ओवरहेड है इसको मैं प्योर ओवरहेड बोलता हूं प्योर ओवरहेड का क्या मतलब है कि मतलब जब भी कांटेक्ट स्विचिंग का काम कर रहे होते हैं ना सीपीय करेगा सीपीय के बेसिकली कर्नल के अंदर इंस्ट्रक्शन लिखी हुई है जो कांटेक्ट स्विचिंग को इनेबल करती है ऐसा प्रोग्राम लिखा हुआ है जो कंटक्ट स्विचिंग करता है वो प्रोग्राम भी सीपीय एग्जीक्यूट कर रहा होगा ठीक है तो जब भी ये कंटेट स्विचिंग का काम होता है तो रेडी क्यू से किसी प्रोसेस को कोई एग्जीक्यूट नहीं कर रहा होता इसका मतलब उस पॉइंट पे सारी प्रोसेसेस में से किसी प्रोसेस पे सीपीयू बिजी नहीं है यानी कि मेरा कोई काम आगे नहीं बढ़ रहा है मैं कोई काम नहीं कर रहा हूं कोई यूजफुल वर्क नहीं कर रहा हूं यूजर पर्सपेक्टिव से मैं सिंपली कांटेक्ट स्विच कर रहा हूं तो यूजर पर्सपेक्टिव से ये एक ओवरहेड है यूजर के डिफाइंड जो प्रोसेसेस थी जो रेडी क्यू में पड़ी थी उनमें से कोई काम नहीं हो रहा है कांटेक्ट स्विचिंग वाला काम हो रहा है यानी कि ये प्योर ओवरहेड है यूजर पर्सपेक्टिव से तो इसको मैं प्योर ओवरहेड भी बोलता हूं क्योंकि इस पॉइंट पर कोई यूजफुल वर्क नहीं हो रहा है और जो स्पीड होती है ना कांटेक्ट स्विचिंग की कितने टाइम में हो जाएगा p1 प2 में स्विच जो है वो कितने मिली सेकंड में होगा या कितनी इंस्ट्रक्शन साइकिल्स में हो जाएगा ये सारा डिपेंड करता है आपका कि आपके जो रजिस्टर्स है उनकी परफॉर्मेंस कैसी है ठीक है कितने बढ़िया बने हुए हैं उसके अलावा जहां पर कांटेक्ट स्विचिंग कर रहे हो मेमोरी की स्पीड कितनी है जो जैसे पहले हम बात करते थे ना कि ये डीडीआर 2 रम है डीडीआर 3 डीडीआर 4 रम है तो स्पीड इक्रीज होती गई रम की स्पीड इंक्रीज होती गई तो कंटे में टाइम कम लगने लगा टाइम कम लगने लगा तो सीपीयू फास्ट पूरा सिस्टम फास्ट हो गया ठीक है तो हमने डिकस कर लिया कि कंटे स्विचिंग किसन चीजों पर डिपेंड करती है मशीन टू मशीन अलग होता है क्योंकि आर्किटेक्चर अलग है सबका ठीक है मेमोरी स्पीड अलग है एंड सो ऑन यह हमारा हो गया कंटक्ट स्विचिंग दोबारा से डिस्कस कर लियाने हमारे लेक्चर में ठीक अब हम आते ऑर्फन प्रोसेस तीसरा टॉपिक है हमारा ऑर्फन प्रोसेस अब आते न प्रोसेस ऑर्फन क्या होता है ऑर्फन वर्ड क्या होता है क्या होता है जिसके माता पिता नहीं हो दुखी क्यों है ना भाई लोग आज ना ब का ब्रेक हुआ है तो थोड़ा दुखी है हमारा चलो कोई नहीं अब पढ़ाई तो करनी है पर ठीक है तो न प्रोसेस क्या होता है न ऐसी प्रोसेस है जिसका पेरेंट नहीं है ठीक है न प्रोस डिस्कस करने से पहले यार हमने पहले डिस्कस किया था कि जो भी प्रोसेस बनती है वो फर्क कमांड से बनती है ठीक है फर्क कमांड से बनती है अब फर्क कमांड क्या करती है वो कोई पेरेंट प्रोसेस फर्क को कॉल करता है और एक चाइल्ड प्रोसेस बनाता है ठीक है यानी कि किसी भी ऑपरेटिंग सिस्टम में कोई भी प्रोसेस जो होगी ना वो किसी का चाइल्ड होगी ठीक है और जो सबसे पहली प्रोसेस होती है वही एक इकलौती प्रोसेस होती है ठीक है तो अगर मैं एक लिनक्स सिस्टम का एग्जांपल लूं तो जो इट होती है इट एक पहली प्रोसेस होती है सबसे पहली प्रोसेस है सबसे पहली प्रोसेस है इसकी पी आईडी भी वन होती है ठीक है पी आईडी इसकी वन होती है इट के बाद फदर आपके कर्नल की फदर प्रोसेसेस बनती है ठीक है बहुत सारी प्रोसेसेस आपकी बनती जाती है ठीक है तो सबसे पहली प्रोसेस मैं इसको इट प्रोसेस बोलता हूं यह जीरो प्रोसेस है या सबसे पहली प्रोसेस ठीक है तो ये हमने डिस्कस कर लिया क्लीनिंग सिस्टम में होती है अब मैं आता हूं ऑ प्रोसेस के एट टॉपिक पर अब या देखो आपके पास एक प्रोसेस है पव आपके पास एक प्रोसेस है पव ठीक है और यह भी रन स्टेट में है रनिंग स्टेट प है आपने इससे फर्क करी एक चाइल्ड प्रोसेस प2 चाइल्ड हैय यह भी रनिंग स्टेट पर है ठीक है अब पव पर क्या हुआ पव जो चल रही थी पव में कुछ ऐसा कोड लिखा हुआ था जिससे एक्सेप्शन आ गई जिसे एक्सेप्शन आ गई एक्सेप्शन आने के बाद यह टर्मिनेट कर गई अब टर्मिनेट करने के बाद ठीक है यानी कि या तो एक्सेप्शन आके टर्मिनेट हुई या फिर मैंने वेट नहीं लगाया किसी भी प्रोग्रामर की ना जिम्मेदारी होती है कि अगर वो एक पर्क करके चाइल्ड प्रोसेस बना रहा है तो पेरेंट प्रोसेस चाइल्ड प्रोसेस का वेट करे सिंपल नॉर्म है ठीक है हमने क्या ऐसा कोड लिख दिया गंदा सा कि यह काम नहीं हो रहा पेरेंट एग्जिट कर गई पेरेंट एग्जिट करने के बाद जो पट प्रोसेस बची यह अनाथ हो गई इसका पेरेंट अब नहीं है हमें नहीं पता इसका पेरेंट कौन है अब ओस क्या करेगा इस पॉइंट प पेरेंट नहीं है तो उसको ट्रैक कैसे करेगा जैसे अभी डायग्राम बना के दिखा ट्री स्ट्रक्चर सबसे पहले इट प्रोसेस होती है फिरर बहुत सारी प्रोसेस थी ठीक है नीचे ट्री स्ट्रक्चर बन रहा था एक ऐसी प्रोसेस भी होगी जो प्रोसेस फदर बनाती है ठीक है तो आपने क्या करा आपने उस ट्री में से पूरा डिटैच कर दिया उसके पेरेंट को उड़ा दिया अब इस प्रोसेस का क्या होगा अब इस प्रोसेस का क्या होगा होगा क्या यह प्रोसेस अनथ रहेगी क्या लगता है आपको अब इसमें ओस क्या करता है ना ओस करता है चालाकी ऐसा कुछ लिखा है आपने ठीक है ऐसा कुछ लिखा है अल्टीमेटली होना क्या चाहिए नॉर्मली अगर देखूं तो पेरेंट होना ही चाहिए ऐसा कोई प्रोग्राम नहीं होना चाहिए जिसका पेरेंट बेसिकली गायब हो गया ठीक है बट क्योंकि कुछ भोले प्रोग्राम लिख देते हैं तो इस केस में ओस जो है इंटेलिजेंट है ओस क्या करता है ओस उठा के इसकी जो लिंकेज है पेरेंट की वो इनेट प्रोसेस को दे देता है यानी कि प2 जो जो उसका पेरेंट पव हुआ करता था जो कि अब एग्जिट हो गया है अब प2 का पेरेंट कौन होगा व इट होगा इट क्या थी हमारी फर्स्ट प्रोसेस ऑफ ओस ठीक है तो ओस ने प्रोसेस मैनेजमेंट तो करनी है उसको ट्रैक चाहिए पूरा कौन सी प्रोसेस कहां पर है तो इस चीज को हम क्या करते हैं इसका पेरेंट मैं किसको बना रहा हूं यूनिट को बना रहा हूं ठीक है तो अब थोड़ा सोचोगे ना कि जो ओस के अंदर ना ट्री की इंप्लीमेंटेशन बहुत ज्यादा य प्रोसेस के अंदर भी ट्री की इंप्लीमेंटेशन दिख रही है हम ठीक है तो ये हमारा न प्रोसेस अब ऑर्फन प्रोसेस एक बार हम सिस्टम पर आते बना के देखते हैं कैसे बनती है कैसी दिखती है ठीक है मैंने पहले बकप बना के रखी हुई इस काम के लिए डेस्कटॉप प चलते हैं वहा जा देखते हैं औरन ठीक है तो आप देखोगे जो पहली लाइन तो हमें पता है बस बताने के लिए है ब स्क्रिप्ट दूसरी लान मैंने कमेंट की हु है इस ध्यान मत दो अभी ये वाली लाइन देखो स्लीप 200 ठीक है अभी मैं इसको चलाऊ इसको रन करू इससे पहले मैं देखता हूं कि जो मेरा य टर्मिनल है इस टर्मिनल की पी आईडी क्या है इसम की पी आईडी है 9161 ठीक है अब मैं इसको रन करता हूं बैश और अगर इधर जाकर देखू प एस माइनस ए तो मुझे क्या दिख रहा है ठीक है मेरे पास सबसे पहले ना 9161 91 ते हैं ये रहा 9169 नाम से ये जेएसए जेएसए क्या है ये हमारा टर्मिनल खुला हुआ है ठीक है अब इसने 9169 ने क्या उठाया ये बैश ऑर्फन वाली प्रोसेस को चलाया यह प्रोसेस आपकी इसकी पी आईडी क्या है 9185 इसकी पीपी आईडी क्या थी 9161 जो कि पी आईडी आपकी टर्मिनल की ठीक है 916 ने चलाया अब ये 9161 ने यहां पर सिस्टम कॉल जो स्लीव कॉल करी हुई है स्लीव हमें दिख रही है कि 9185 जो कि ऑर्फन प्रोसेस की पी आईडी है उस वो एक पेरेंट है इसका स्लीप 200 जो आपने सिस्टम कॉल कॉल की हुई है ठीक है तो ऐसा कुछ आपको दिख रहा है तो ये नॉर्मल फ्लो है अब थोड़ी देर में मान लो यह आपका स्लीप अगर एग्जिट करेगा तो स्लीप जब एग्जिट करेगा 200 सेकंड्स के बाद तो यह यह भी एग्जिट करेगा इसका पेरेंट भी इसका पेरेंट को पता चल जाएगा 9185 जो उसका पेरेंट है ये बैश बैश स्क्रिप्ट भी एग्जिट कर जाएगी ऐसे सिंपली काम चलेगा यहां पर पेरेंट बेसिकली वेट कर रहा है ठीक है पेरेंट यहां पर वेट कर रहा है अगर इसको मैं इधर समझाने की कोशिश करूं तो हमने क्या लिखा हुआ था हमारे पास टर्मिनल है टर्मिनल ने और फन डॉट ए चलाई नने स्लीप कॉल किया स्लीप 200 ठीक है स्लीप 200 अब यहां पर वर्क कर रहा है ठीक है तो मैं बोलू यह पेरेंट था इसका यह पेरेंट था इसका ठीक है अब नॉर्मली जैसे ही ये खत्म होगी सिस्टम कॉल तो इसको पता चलेगा ये जो इसकी इसकी पेरेंट है स्लीप 200 की पेरेंट कौन है स्लीप 200 की पेरेंट ऑर्फन ड ए है ऑर्फन ड ए जो कि वेट कर रहा है कि स्लीप तू खत्म हो जा अगर यह स्लीप खत्म होता है यानी इसकी चाइल्ड प्रोसेस खत्म होती है तो यह पेरेंट को बता देगा कि हां चाइल्ड प्रोसेस खत्म हो गई है ठीक है सिमिलरली फिर जैसे ही ऑर्फन ड खत्म हो ग तो टर्मिनल को बता देगा कि उसके पेरेंट खत्म हो गई ऐसे इनकी सबकी एंट्री यहां से गायब हो जाएगी ठीक है तो इस तरीके से चीज काम करती है और इसमें एक और चीज अगर मैं बताने की कोशिश करूं तो यह है कि जब भी जब भी आपकी पेरेंट पट से चाइल्ड प्रोसेस बनती है ठीक है तो जो पेरेंट प्रोसेस है ना वो तब तक वेट करती है जब तक चाइल्ड एग्जिट ना कर जाए और पेरेंट चाइल्ड का वेट क्यों करती है वो चाहती है कि चाइल्ड ने क्या रिटर्न किया बेसिकली चाइल्ड सक्सेसफुल एग्जीक्यूट हुई कि नहीं चाइल्ड का जो रिटर्न स्टेटमेंट है वो उसको रीड करता है उसको रीड करने के बाद देखता है कि वो पर्टिकुलर चाइल्ड जो है वो ढंग से एग्जीक्यूट हुआ था कि नहीं या जो भी उसका एग्जिट स्टेटस है उसको नोट करता है जब वो एग्जिट स्टेटस को रीड कर लेता है तब जाके प्रोसेस टेबल में से चाइल्ड प्रोसेस की एंट्री डिलीट होती है कि हां पेरेंट को पता चल गया है कि चाइल्ड का क्या हुआ था अब प्रोसेस टेबल में से उसको हटा दो ठीक है इस तरीके से चीज वर्क करती है य तो यह था अब हम ऑर्फन प्रोसेस पर वापस आते हैं स्क्रीन पर वापस आते हैं यह अभी भी चल रही है इसको किल करने की कोशिश करते हैं किल य देखो अपने आप किल हो बहुत ही बढ़िया बहुत ही बढ़िया अब आप देखो यहां पर कोई भी प्रोसेस नहीं पड़ी है हमारे पास 9161 नाम की प्रोसेस अभी भी है हमारे पास ठीक है ये टर्मिनल अभी भी खुला हुआ है तो अभी हमने देखा ये तो नॉर्मल एग्जीक्यूशन था कि स्लीप कॉल हुआ था स्लीप ने बोल दिया मैं फिनिश हो गया तो और फड एस फिश हो गई एंड सो ऑन अब मैं इस कोड को थोड़ा चेंज करता हूं इस कोड को थोड़ा चेंज करता हूं अब मैं ये हटाता हूं और ये डाल देता हूं ये जो एंड m पर लगा ना एंड में m पर ये जो m पर क्या करता है ये बोलता है एक नई प्रोसेस की तरह उसको इनिशिएटिव स्लीप जो हैय अलग से डच होके अलग से प्रोसेस चलेगी ठीक है अब देखो क्या होगा क्लियर कर देते हैंस माइन दिखाते हैं आपको टर्मिनल हमारा चल रहा है 916 पी आईडी के साथ में ठीक है ईडी के साथ में टम चल रहा है इसको मैं अब रन कर देता हूं और एल करता हूं अब य देखो अब क्या हुआ कि आपकी जो ये प्रोसेस रन हुई थी ऑर्फन ड एएच जो उसने स्लीप कॉल किया था वो एक अलग से प्रोसेस कॉल हुई थी ठीक है और वो अलग से प्रोसेस कॉल हुई ये डिटैच हो गई ऑर्फन ड एएच वाली प्रोसेस से और ऑर्फन ड एसए जो एग्जिट कर गई आप देख रहे हो य टर्मिनल प मुझे दिख चुका है यहां पर मेरे पास कंट्रोल आ चुका है और अगर मैं आप स्लीप 200 को देखूं स्लीप 200 को देखूं तो इसकी पी आईडी जो कि 9228 थी अब उसकी पीपी आईडी क्या है वन और पीपी आईडी किसकी पी आईडी है पीपीआईडी किसकी पी आईडी है वो इट प्रोसेस की पी आईडी है तो अभी यहां पर हुआ क्या है इसको समझते हैं यहां पर हुआ क्या हमारे पास टर्मिनल था ठीक है टर्मिनल ने क्या शूट किया यह पेरेंट है टर्मिनल ठीक है अभी ग्रैंड पेरेंट टर्मिनल ने क्या शूट किया टर्मिनल ने ऑर्फन डॉट एसए को शूट किया फर्क किया बेसिकली ठीक है उसके बाद ऑर्फन डस ने क्या करा ऑफ ने क्या किया स्लीप को m पर के साथ कॉल किया पर मतलब प्रोसेस डिटैच होके एक नई प्रोसेस बन गई है ठीक है यहां पर इसको फर्क किया अब फर्क करने के बाद ऑर्फन ने इस प्रोसेस का ऑर्फन ने इसका स्लीव 200 का वेट नहीं किया वेट जो है नहीं किया वेट नहीं करने का क्या नतीजा हुआ ऑर्फन जो हो गई वो एग्जिट कर गई और जो यह वाली प्रोसेस थी हमारे पास स्लीप 200 वाली प्रोसेस है यह ऑर्फन बन गई इसको मैं ऑर्फन प्रोसेस बोल रहा हूं और जो ऑर्फन प्रोसेस को मैं देख सकता हूं यहां पे प्रूफ के साथ कि स्ली ऑर्फन बन चुकी है क्योंकि इसकी पी आईडी जो है वन हो गई है यानी कि इसका जो पेरेंट है इस जो पेरेंट वाला जो एंट्री है अब वो वन बन चुकी है यानी कि इट प्रोसेस को दे दी गई है ठीक है तो यह हमारी ऑर्फन प्रोसेस का लाइव एग्जांपल हो गया अब चौथी चीज डिस्कस करते हैं जॉम्बी प्रोसेस जॉम्बी प्रोसेस क्या होता है जॉम्बी प्रोसेस क्या होता है जॉम्बी प्रोसेस बताने के लिए एक डायग्राम बनाते हैं हमारे पास एक पव प्रोसेस है ठीक ठीक है और पीव प्रोसेस ने पीट फ की पीव प्रोसेस ने पीट फ कर ये क्या होगा आपका पेरेंट ये क्या हो ग आपकी चाइल्ड ठीक है अब चाइल्ड जो है वो एग्जीक्यूट हो रही है एग्जीक्यूट हो रही है और चाइल्ड ने क्या किया एग्जिट कॉल कर दिया डायग्राम कंप्लीट कर लेते हैं पहले अब इस केस में क्या हुआ देखो डायग्राम बन गया है हमारा अब डायग्राम में क्या है कि सबसे पहले हमारे पास पव प्रोसेस है ठीक है p1 प्रोसेस है इसने फॉक करी प2 हमारे पास चाइल्ड प्रोसेस बन गई चाइल्ड प्रोसेसर एग्जीक्यूट हो रही है एग्जीक्यूट होने के साथ-साथ चाइल्ड प्रोसेस क्या हुई टाइम से पहले एग्जिट हो गई अब एग्जिट होने के बाद क्या हुआ कि नॉर्मली क्या होता है चाइल्ड प्रोसेस का वेट करती है पेरेंट प्रोसेस पेरेंट प्रोसेस वेट करती है कि भाई तू पहले एग्जिट हो जा और जब तू एग्जिट हो जाएगी तो तेरा एग्जिट स्टेटस मैं रीड कर लूंगा एग्जिट स्टेटस रीड करने के बाद और रीड करने का क्या तरीका है एग्जिट स्टेटस रीड करने के लिए मैं वेट का यूज करता हूं वेट कमांड कॉल करूंगा एग्जिट स्टेटस रीड होगा रीड करने के बाद पता चलेगा कि हां चाइल्ड एग्जिट हो गई है तो पेरेंट अपना मस्त वो भी एग्जिट कर जाएगा और जब ऐसे यह दोनों काम प्रॉपर्ली हो जाएंगे तो प्रोसेस टेबल से चाइल्ड की एंट्री डिलीट हो जाएगी ठीक है तो अब इस केस में क्या हुआ है कि हमने क्या किया कि वेट जो है ना बहुत काफी लंगर वेट कर लिया मैं बोल सकता हूं इसको मान लो इसने 5 मिनट वेट करा और ये दो मिनट में एग्जिट हो गई तो इस पॉइंट ऑफ टाइम के लिए ना ये जो 3 मिनट का गैप पड़ रहा है 5 मिनट और 2 मिनट के बीच में उस पॉइंट ऑफ टाइम के लिए जो प2 प्रोसेस है वो एक जॉम्बी प्रोसेस बन जाएगी ठीक है प्री टू प्रोसेस जॉम्बी प्रोसेस बन जाएगी जॉम्बी प्रोसेस इसको बोल क्यों रहा हूं मैं क्योंकि जब एग्जिट कॉल होता है ना किसी प्रोसेस का जब एग्जिट कॉल होता है तो जितने भी रिसोर्सेस उस प्रोसेस ने ओएस से मांग रखे थे ओएस से जो रिसोर्सेस ब्लॉक कर रखे सारे रिसोर्सेस वो रिलीज कर देता है अब रिसोर्सेस रिलीज करने के बाद क्या होता है कि रिसोर्सेस तो फ्री हो गए बट जो प्रोसेस टेबल है उसके अंदर चाइल्ड प्रोसेस की एंट्री अभी भी पड़ी रहेगी जिसकी वजह से क्या होगा कि प्रोसेस टेबल भर सकती है अब किसी भी ओएस का ना एक लिमिट होती है प्रोसेस टेबल की ठीक है यहां प मैं आपको होमवर्क देता हूं कि आप ओस जितने डिफरेंट टाइप के ओस है कमेंट सेक्शन पे आप लिखोगे कमेंट्स पे ओके यह आपका होमवर्क हो गया तो बैक टू द वीडियो इसमें हम क्या डिस्कस कर रहे थे कि अगर एग्जिट कॉल होता है तो रिसोर्सेस तो हमारे सारे रिलीज हो जाते हैं बस प्रोसेस टेबल की एंट्री डिलीट नहीं होती और इसकी वजह से क्या होता है प्रोसेस टेबल जो कि खुद एक रिसोर्स है वो बेसिकली एग्जॉस्ट हो जाएगा उसको एग्जॉस्ट होने के बाद कोई नई प्रोसेस नहीं आ पाएगी अगर बहुत सारी जॉम्बी प्रोसेस आपने बना दी ठीक है तो उस पॉइंट ऑफ टाइम के लिए आपके पास पीआईडीसी टेबल है उसके अंदर कोई और नई पी आईईडी को मैं यूज ही नहीं कर सकता ठीक है तो ये आपकी बड़ी प्रॉब्लमैटिक सिचुएशन है ठीक है अब नॉर्मली वर्कफ्लो कैसे चलता है जॉम्बी प्रोसेस क्या करती है जॉम्बी प्रोसेस तब तक एंट्री पर रहेगी जब तक जो पेरेंट प्रोसेस है वो वेट को कॉल करके उसका एग्जिट स्टेटस रीड नहीं कर लेता और जब वो एग्जिट स्टेटस रीड कर लेता है यानी कि जो यहां पे 5 मिनट के बाद जो एग्जिट स्टेटस जब रीड कर लेगा उ रीड करने के बाद क्या होगा कि इस जॉम्बी प्रोसेस की प्रोसेस टेबल से एंट्री निकल जाएगी और निकलने के बाद आपका पेरेंट भी एग्जिट कर जाएगा एंड सो ऑन इस प्रोसेस को मैं क्या बोलता हूं रीपिंग ऑफ जॉम्बी प्रोसेस यानी कि जॉम्बी प्रोसेस को मैंने प्रोसेस टेबल से डिलीट कर दिया और डिलीट कैसे किया पेरेंट आया आया आके वेट कॉल करा उसने उसका एग्जिट स्टेटस को रीड कर लिया ठीक है तो यह आपकी जॉम्बी प्रोसेस के बारे में इंफॉर्मेशन हो गई अब इसमें दो चार चीजें यार अगर मान लो मैं एक एग्जांपल लूं कि अगर पेरेंट प्रोसेस ने वेट को कॉल ही नहीं किया ठीक है अब पेरेंट प्रोसेस ने वेट को कॉल ही नहीं किया अभी हम डिस्कस कर रहे थे वेट क्यों कॉल करना है वेट कॉल करके मैं एग्जिट स्टेटस रीड करता हूं यानी कि पेरेंट सेटिस्फाई होता है कि हां जो मेरा चाइल्ड है वो ढंग से एग्जिट हुआ कि नहीं उसका क्या एग्जिट स्टेटस था और एग्जिट स्टेटस रीड करने के बाद ही मैं प्रोसेस टेबल से एंट्री डिलीट करता हूं तो हम एक सिनेरियो ले रहे हैं कि पेरेंट ने वेट को कॉल ही नहीं किया इतना गंदा प्रोग्राम लिखा हुआ है किसी ने कि वेट कॉल ही नहीं हुआ वेट कॉल होने की वजह से क्या होगा कोई प्रॉपर रिसोर्स लीक तो नहीं होगा मैंने रिसोर्सेस तो छोड़ ही चुका बट जो आपकी प्रोसेस टेबल है वो एस्ट हो जाएगी सबसे पहली प्रॉब्लम और अगर पेरेंट प्रोसेस ही एग्जिट कर गई सोचो वेट तो छोड़ो वेट तो छोड़ो पेरेंट प्रोसेस ही एग्जिट कर गई वो वेट करने के लायक ही नहीं है इस केस में क्या होगा इस केस में मैं बोलूंगा कि ऑपरेटिंग सिस्टम में कोई बग है ठीक है ऑपरेटिंग सिस्टम में कोई बग है बहुत सारी आपकी जॉम्बी प्रोसेस इकट्ठा होती रहेंगी और एक पॉइंट के बाद वही होगा आपका कि प्रोसेस टेबल जो है आपकी भर जाएगी और आपका एक प्रोसेस टेबल कु एक रिसोर्स है रिसोर्स लीक भी बोलूंगा मैं इसको रिसोर्स लीक हो गया रिसोर्स लीक हो गया तो ये थी आपकी जॉम्बी प्रोसेस की थ्योरी अब थोड़ा इसको प्रैक्टिकली देखते हैं ठीक है प्रैक्टिकली देखते हैं एक बार चला के कैसा लगता है बैक टू द स्क्रीन तो अभी हमने प्रोग्राम लिखा हुआ है अगर मैं आपको दिखाऊ तो कट जम इसी नाम से होगा यस तो हमने एक बै स्क्रिप्ट बनाइए ठीक है एक बै स्क्रिप्ट में क्या लिखा हुआ है हमारे पास एक फॉर लूप है फॉर लूप में हम क्या करेंगे बहुत सार प्रोसेस शूट करेंगे जो ए परसेंट करके जब हम शूट करते हैं तो एक साइलेंट प्रोसेस शूट होती है ठीक है बैकग्राउंड में चलती है ब प्रोसेस शूट करेंगे ब प्र शूट करने के बाद टर्मिनल जो है अभी अगर मैं एप से नहीं लिखता ना तो क्या होता कि यह जैसे ही फॉर लूप रन होता फोर लूप रन होने के बाद स्लीप न सेकंड फिर वो वेट करता ये स्लीप एग्जिट होगा तो फिर नेक्स्ट स्लीप चलता फिर वो एक नेक्स्ट स्लीप के लिए एग्जिट करता ऐसे एंड सो ऑन तो अभी हमने क्या करा अभी हमने फोर लूप जल्दी से चलाया और वन वन वन करके हमने ए पर दिया ए पर देके न्यू न्यू प्रोसेस बना के इसको जल्दी जल्दी इसको रन कर दिया स्लीप को तो स्लीप वन करके बहुत सारे प्रोसेस बन जाएंगी 100 प्रोसेस बन जाएंगी ठीक है उसके बाद मैंने क्या किया इसी ब स्क्रिप्ट में लिखा कि मैं 100 इसी ब स्क्रिप्ट को 100 सेकंड के लिए और रोक देता हूं एक्यूट कमांड कॉल करके ठीक है तो अगर मैं इसको अभी चलाऊ रन करू ब उससे पहले देखते क्या अभी सिस्टम में अभी कोई जबी प्रोसेस है इसके लिए मैं यह कमांड यूज करूंगा तो अभी मैं देखू तो कोई मुझे जॉम्बी प्रोसेस नजर नहीं आ रही है ठीक है कोई जम प्र मुझे नजर नहीं आ रही है य जो एक एंट्री मुझे दिख रही है य जड जो हैय गप वाला कमांड है ठीक है अब मैं इसको चलाता जम नहीं ब जमको रन करू और अब मैं देखूंगा यहां पर पीस माइनस एल करके तो आप देखो कितनी सारी स्लीप की कमांड दिख रही है आपको और य सारी जॉम्बी बनी बैठी है इन सब के एंट्री ज प्लस देखो य सब जॉम्बी प्रोसेस बनी हुई है ठीक है यार इसको समझते हैं क्या हुआ है य पर ठीक है तो यह आपका टर्मिनल था टर्मिनल की पी आईडी 9161 थी 9161 पी आईडी ने क्या लंच किया उसने लंच करी य पर्टिकुलर स्लीप 100 कमांड ठीक है 9161 ने ये स्लीप 100 कमांड लच कर स्लीप 100 क्यों दिख रही है ये आपकी बैस स्क्रिप्ट हैय जो बैस स्क्रिप्ट उने चलाई जड एस ये जम ड एच है जो कि अब स्लीप 100 से रिप्लेस हो चुकी है ठीक है एग्जैक्ट कमांड क्या करता है रिप्लेस कर देता है सेम पी आईडी का यूज करके नए कोड के साथ रिप्लेस कर देता है तो ये स्लीप 100 दिख रही है तो स्लीप 100 कुछ नहीं है य हमारी ये पर्टिकुलर बैस स्क्रिप्ट है तो बै स्क्रिप्ट जिसकी पी आईडी 9569 है 9569 बै स्क्रिप्ट ने बहुत सारी स्लीप प्रोसेसस को शूट किया था अभी फॉर लूप में तो आप देखोगे जितने भी स्लीप है इन सबका पीपीआईडी सेम है एक ही पीपीआईडी ने 9569 पीपीआईडी ने बहुत सारी स्लीप प्रोसेस को कॉल किया हुआ है अभी इस टाइम बीइंग के लिए ना स्लीप जो है जो एक अलग-अलग प्रोसेस स्लीप वन सेकंड की बनाई थी हमने एक एक सेकंड तो गुजर चुका अब एक एक सेकंड के चक्कर में क्या हुआ है कि ये बहुत सारी प्रोसेस जो कि एक एक सेकंड के लिए एग्जीक्यूट होनी थी वो होके अभी रुकी हुई है होके उनका एग्जिट कॉल हो चुका है वभी रुकी हुई है अब वो रुकने के बाद क्या हो रहा है पेरेंट का वेट चल रहा है कि भाई पेरेंट तू आ और जो हमारा सबका वेट वेट कॉल करके हमारे सबका जो एग्जिट स्टेटस है उसको नोट कर ले ताकि प्रोसेस टेबल में से ये प्रोसेस टेबल ही लगा लो जो सामने आपको दिख रहा प्रोसेस टेबल में से इनकी एंट्री निकल जाए तो अभी प्रोसेस टेबल में इनकी एंट्री है क्योंकि अभी तक आपकी पेरेंट प्रोसेस एग्जिट नहीं हुई थी अब देखो पेरेंट प्रोसेस एग्जिट हो चुकी है अब अगर मैं पीएस माइनस एल देखूंगा तो कितनी एंट्री दिख रही है इतनी सी एंट्री दिख रही है जिसमें कि ये एंट्री किसकी है ये आपकी टर्मिनल की एंट्री तो तो यानी कि उस टाइम के लिए अभी जो थोड़ा सा टाइम बीच में देखा अभी हमने जिसमें हमें जॉम्बी प्रोसेसेस दिख रही थी आपके पास कुछ टाइम के लिए सिस्टम में जॉम्बी प्रोसेसेस थी और जैसे ही पेरेंट ने पेरेंट आया और उने रीड करा कि हां जितनी भी प्रोसेस मैंने शूट करी थी जितने भी चाइल्ड प्रोसेस मैंने शूट करी थी उन सबका एग्जिट स्टेटस उने रीड करर रीड करने के बाद सारी जो आपकी जो स्लीप की ये प्रोसेस जो जॉम्बी बनी हुई थी सारी हट चुकी है अगर मैं इसको डायग्राम के हिसाब से समझने की कोशिश करूं तो हमने क्या करा हमने सबसे पहले टर्मिनल कॉल किया टर्मिनल से मैंने एक बैश स्क्रिप्ट कॉल करी बैश स्क्रिप्ट ने क्या करा बैश स्क्रिप्ट ने दो काम करे सबसे पहले उसने बहुत सारी स्लीप प्रोसेस बना दी जो कि क्या कर रही थी जो कि एक सेकंड चल रही थी बस एक सेकंड चलने के बाद एग्जिट हो जा रही थी एक सेकंड चलने के बाद एग्जिट हो जा रही थी उसके बाद मैंने क्या करा था जो बैश कमांड है इसको एक्यूट कमांड यूज करके मैंने इसके कोड को रिप्लेस कर दिया था स्लीप 100 से फिर ये कोड बन गया था स्लीप 100 ये स्लीप 100 करके रनिंग स्टेट प था अब जिस टाइम पे यह रनिंग स्टेट पर था उस टाइम पर यह सारी आपकी जितनी भी प्रोसेस थी यह एक एक सेकंड एग्जीक्यूट करके एग्जिट करके बैठी है और प्रोसेस टेबल में इनकी एंट्री अभी भी है और क्यों एंट्री है क्योंकि जो यह आपकी पेरेंट प्रोसेस थी जो कि अब यह है यह पेरेंट प्रोसेस जो है इसने आगे इन सबका एग्जिट स्टेटस को रीड नहीं किया है आफ्टर 100 सेकंड जब एग्जिट स्टेटस रीड हो जाता है तो जम प्रोसेसस जो आपकी z प्लस प्रोसेस जो है चली जाती है आपके प्रोसेस टेबल से हमने लाइव एग्जांपल में देखा ठीक है तो यह था हमारा जॉम्बी प्रोसेस का सार अब थोड़ा नोट्स पर नजर डाल लेते हैं नोट्स पर अगर हम देखे तो सबसे पहले हमने स्वाइपिंग पढ़ा ठीक है स्पिंग कौन करता है एमटीएस करता है मीडियम टर्म शेड्यूलर ठीक है उसके डायग्राम को हमने समझा कंटक्ट स्विचिंग बहुत बार डिस्कस कर चुके हैं आज हमने फिर से एक बार डिस्कस किया थोड़ा पीसीबी का यूज करके एपल को देने की कोशिश करी ऑर्फन प्रोसेस कौन सी प्रोसेस है प्रोसेस जिनके पेरेंट नहीं है ठीक है जो कि अभी भी रनिंग है ब उनके पेरेंट नहीं है ठीक है उस केस में क्या होता है जब ऐसा होता है तो वो पर्टिकुलर ऑर्फन प्रोसेस जो है वो अडॉप्ट कर ली जाती है इट प्रोसेस के द्वारा और इट प्रोसेस क्या थी ओएस की सबसे पहली प्रोसेस ठीक है उसके बाद हम आते हैं जॉम्बी प्रोसेस में जॉम्बी प्रोसेस को हम डिफंक्ट प्रोसेस भी बोलते हैं ठीक है डिफं प्रोच भी बोलते हैं कुछ ओसस में जॉम्बी आपको कर्नल प नाम दिखेगा कि जॉम्बी का यूज हो रहा होगा इंप्लीमेंटेशन में कुछ ओस के अंदर डी फंक प्रोसेस करके इसका यूज हो रहा होगा जॉम्बी प्रोसेस कौन सी है जिनकी जो एग्जीक्यूशन है ठीक है हुज एग्जीक्यूशन कंप्लीटेड बट अभी भी उनकी प्रोसेस टेबल में एंट्री है ठीक है जॉम्बी प्रोसेस नॉर्मली क्या चाइल्ड प्रोसेस होती है एग्जांपल देखा स्लीप करके हमने जॉम्बी प्रोसेस बनाई थी जो कि चाइल्ड थी उस बैस स्क्रिप्ट की ठीक है और जब भी पेरेंट आके रीड कर लेता है एग्जिट स्टेटस तो क्या होता है तो बेसिकली प्रोसेस टेबल से जॉम्बी प्रोसेस की एंट्री चली जाती है जिसको हम रीपिंग ऑफ द जॉम्बी प्रोसेस भी बोलते हैं तो इस तरीके से हमारा ये चार टॉपिक काफी इंपोर्टेंट टॉपिक है ऑर्फन प्रोसेस और जॉम्बी प्रोसेस काफी इंपोर्टेंट टॉपिक है ठीक है इसको जरूर ध्यान रखना तो मिलते हैं नेक्स्ट वीडियो में तब तक के लिए गुड बाय हेलो जी कैसे हो सारे दिस इज लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 12 पर और आज से हम शुरू करने वाले हैं प्रोसेस शेड्यूलिंग एल्गोरिथम के बारे में डिस्कस करना जो कि एक बहुत ही इंपॉर्टेंट पार्ट है प्रोसेस मैनेजमेंट का ठीक है बट प्रोसेस शेड्यूलिंग एल्गोरिथम पे डायरेक्टली जंप करने से पहले कुछ टर्म्स है कुछ जर्गंस है जो आपको पता होने चाहिए क्योंकि इनको हम बहुत ज्यादा यूज करने वाले हैं आगे वाले लेक्चर में ठीक है तो सबसे पहले जान लेते हैं या प्रोसेस शेड्यूलिंग होता क्या है ठीक है प्रोसेस शेड्यूलिंग होता क्या है तो इसके बारे में आपको इनट्यूशन होगी ही क्योंकि हम प्रीवियस लेक्चर में इस बारे में डिस्कस कर चुके हैं बट फिर भी मैं जल्दी से इसको एक बार डिस्कस करता हूं हमारे पास एक रिडी क्यू होती है ठीक है हमारे पासस सीपीयू होता है सीपीयू पर रन स्टेट में सारी प्रोसेस आती है ठीक है यहां से एग्जिट कर जाती हैं हमारे पास यहां पे शॉर्ट टर्म शेड्यूलर क्या डिस्पैच करता है ठीक है डिस्पैच करता है कोई भी प्रोसेस को यहां पर हम पर p1 p2 p3 करके बहुत सारी प्रोसेसेस पड़ी हो सकती हैं ठीक है अब हो गया क्या यहां पर रेडी क्यू में जो प्रोसेस आती है वो आपका लॉन्ग टर्म शेड्यूलर लेके आता है आप क्या करते हो आप सारी प्रोसेसस इसमें डाल देते हो रेडी क्यू में उसके बाद ओस क्या करता है ओस रेडी क्यू से कोई भी एक प्रोसेस पिक करता है पिक करके सीपीयू को को देता है और डिपेंडिंग अपन द एल्गोरिथम यू आर यूजिंग वो प्रोसेस एग्जीक्यूट होती है और उसके बाद कुछ टाइम क्वांटम के बाद वो प्रोसेस वापस से रेडी क्यू में आ जाती है ठीक है वापस से रेडी क्यू में आ जाती है और वेटिंग स्टेट पर चली जाती है आयो करती है अगर तो ठीक है और इस तरीके से चीज हमारी वर्क करती है ठीक है तो आपका जो यह वाला काम है रेडी क्यू से रेडी क्यू से प्रोसेस को पिक करना कौन सी प्रोसेस पिक होगी वो प्रोसेस को चूज करना देन उस प्रोसेस को यहां पर शेड्यूल करना यह वाला जो काम है यह आपका काम सीपीयू शेड्यूलर करता है तो प्रोसेस कौन सी पिक होगी एटली कौन सी प्रोसेस पिक होगी यह कौन करता है यह आपका प्रोसेस शेड्यूलिंग एल्गोरिथम बताती है ठीक है यह सिलेक्शन का प्रोसेस जो है यह प्रोसेस के ड्यूलिंग एल्गोरिथम करती है ठीक है और इसको मैं सीपीय स्के ड्यूलिंग भी बोलता हूं ठीक है और एक्चुअली जो किसी प्रोसेस को सीपीय का कंट्रोल देना जो यह वाला काम जो मॉड्यूल करता है उसको मैं डिस्पैच बोलता हूं डिस्कस कर चुके हैं ठीक है तो सीपीय शेड्यूलर क्या करता है जब भी आपका सीपीयू आइडल हो जाता है तो मुझे रेडी क्यू से कोई ना कोई एक प्रोसेस पिक करनी पड़ेगी वो पिक करके मैं सीपीयू को दूंगा एंड सो ऑन यह काम चलता रहता है इसको मैं सीपीयू शेड्यूलिंग बोलता हूं ठीक है ठीक है कंटिन्यू करते हैं तो हमारे पास दो टाइप की शेड्यूलिंग एरिम होती है पहला नॉन प्रीमप्टिव नॉन प्रीमप्टिव शेड्यूलिंग ये दो टाइप के मैं पैराडाइम बोल सकता हूं दो टाइप के तरीके हैं करने के ठीक है नॉन प्रीमप्टिव में क्या होता है कि आपने एक बार प्रोसेस को सीपीयू दे दिया ठीक है आपकी य पव प्रोसेस थी यहां पर आपका सीपीयू था आपने एक बार इसको दे दिया अगर सीपीयू एक बार य यहां से डिस्पैच हो गया डिस्पैच ने एक बार डिस्पैच कर दिया ठीक है डिस्पैच करने के बाद यह प्रोसेस जो है यह सीपीयू को तब तक लेकर रखेगी जब तक आपकी या तो प्रोसेस टर्मिनेट कर जाए या तो आपकी प्रोसेस टर्मिनेट कर जाए या फिर वह वेट स्टेट पर चली जाए यानी कि आयो करने चली जाए ठीक है तो यही दो तरीके हैं किसी नॉन प्रीमप्टिव शेड्यूलिंग एल्गोरिथम में जिसमें कि या तो टर्मिनेट होगा तब प्रोसेस जो है वो सीपीयू को छोड़ेगी वरना वेट होगा यानी आयो करने चला जाएगा तब प्रोसेस को छोड़ेगी तो इसको मैं नॉन प्रीमप्टिव शेड्यूलिंग का मेथड भी बोलता हूं मतलब एक बार सीपीयू मिल गया तो मिल गया उसके बाद वो छोड़ेगा नहीं यानी कि इसमें कौन सी चीज मिस कर रहे हैं हम एक चीज मिस कर रहे हैं कि टाइम क्वांटम वाली चीज हम मिक्स कर रहे हैं जो टाइम शेयरिंग हमने पढ़ा था ना कि सीपीयू जब भी किसी प्रोसेस को एग्जीक्यूट करते हुए अगर कुछ एक्स अमाउंट ऑफ टाइम हो गया कुछ एक्स अमाउंट ऑफ टाइम क्वांटम हो गया उसके बाद सीपीयू जो है उस प्रोसेस को छोड़ देता था और वापस से रेडी क में चली जाती थी प्रोसेस यह वाली जो चीज है टाइम शेयरिंग वाली चीज जो है यह नॉन प्रीमप्टिव में नहीं होती ठीक है अब इसका दूसरा टाइप क्या होता है प्रीमप्टिव प्रीमप्टिव शेड्यूलिंग प्रीमप्टिव स्केड्यूल में क्या होगा इसमें क्या होता है कि यह तो होता ही है कि जब टर्मिनेट हो जाएगी तब तो प्रोसेस जो सीपीय को छोड़ ही देगी उसके अलावा जब वेट स्टेट पर जाएगी तब भी आयो करने जाएगी तब भी ऐसा होगा ही कि वह सीपीयू को छोड़ देगी बट दूसरा एक और एक्स्ट्रा चीज इसमें क्या होती है कि टाइम क्वांटम जब एक्सपायर होता है टाइम क्वांटम जब एक्सपायर होता है तब भी जो प्रोसेस है वह सीपीयू को फ्री कर देती है ठीक है और वापस से रेडी में चली जाती है तो ये दो तरीके की आपकी सीपीयू स्के ड्यूलिंग होती है ठीक है तो अगर मैं इनको कंपेयर करना चाहूं तो स्टार्वेशन जो होती है स्टार्वेशन स्टार्वेशन क्या होता है स्टार्वेशन ये है कि एक किसी एक प्रोसेस को ना सीपीयू मिल ही नहीं पा रहा है यानी कि मान लो कोई हाई प्रायोरिटी जॉब है या फिर कोई एक जॉब बहुत ज्यादा सीपीयू को लेके बैठी हुई है वही वही काम करे जा रही है ठीक है कोई जो लो प्रायोरिटी जॉब है या फिर कोई जो रेडी क्यू में जो दूसरी जॉब्स है उनको टाइम ही नहीं मिल रहा है तो जो दूसरी जॉब्स है जिनको टाइम नहीं मिल रहा है उनको मैं बोलता हूं दे आर स्टर्ड यानी कि प्रोसेस स्टार्वेशन हो रहा है तो अगर मैं कंपेयर करूं तो प्रोसेस स्टार्वेशन किसमें ज्यादा होगा प्रोसेस स्टार्वेशन किसम ज्यादा होगा नॉन प्रीमप्टिव के अंदर प्रोसेस स्टार्वेशन ज्यादा होगा ठीक है ज्यादा होगा ऐसा क्यों क्योंकि नॉन प्रम के अंदर टाइम शेयरिंग वाला पार्ट मिसिंग है ठीक है अगर कोई ऐसी जॉब मिल गई मुझे जो बहुत ही सीपीयू इंटेंसिव है ठीक है बहुत टाइम लगाएगी 20-30 मिनट में मान लो वो 20 30 मिनट्स लेगी वो चलने में तो और कोई उसके अंदर आयोग इंस्ट्रक्शन नहीं है 2030 मिनट्स बाद वो टर्मिनेट करेगी तो 203 मिनट के लिए बाकी प्रोसेसेस जो रेडी क्यू में होंगी वो क्या करेंगी स्टार्वेशन में चली जाएंगी तो इसकी वजह से यह जो नॉन प्रायोरिटी वाला मेथड है ये स्टार्वेशन ज्यादा करता है प्रीमप्टिव वाले मेथड में स्टार्वेशन नहीं होती है क्योंकि उसके अंदर टाइम क्वांटम होता है नहीं होती है इन टम नहीं मैं बोलूंगा कि कम होती है क्योंकि उसके अंदर हर प्रोसेस को कुछ ना कुछ मौका मिलेगा थोड़ी देर बाद क्योंकि टाइम क्वांटम एक्सपायर होगा ही टाइम क्वांटम एक्सपायर होगा तो उसके बाद दूसरी प्रोसेस को मौका मिल जाएगा ठीक है तो मैं बोल सकता हूं कि प्रीमप्टिव में स्पेलिंग गलत हो रही है प्रीमप्टिव में जो स्टार्वेशन है वो कम होती है ठीक है उसके बाद हम आ जाते हैं कि सीपी यूटिलाइजेशन किसम ज्यादा है सीपीयू यूटिलाइजेशन किसमें ज्यादा है आप बोलोगे स्टार्वेशन के हिसाब से ही आपको आईडिया लग ही गया होगा कि सीपी यूटिलाइजेशन किसम ज्यादा होगी तो प्रीमप्टिव के अंदर ज्यादा सीपी यूटिलाइजेशन होती है क्योंकि प्रोसेसेस को मौका मिलता है अपना काम करने का तो एक पर्टिकुलर टाइम में ज्यादा प्रोसेसेस नंबर ऑफ प्रोसेसेस आपकी सीपीयू जो है वो उन परे वर्क कर रहा होगा ठीक है तो बोल सकता हूं कि जो प्रीमप्टिव है उसके अंदर हाई सप टला होती है तीसरा पॉइंट मैं डिस्कस कर सकता हूं फर्स्ट सेकंड थर्ड ओवरहेड किसम ज्यादा होते हैं ओवरहेड अगर मैं बात करूं तो आपका प्रीमप्टिव में ओवरहेड ज्यादा होते हैं प्रीमप्टिव में ओवरहेड क्यों ज्यादा होते हैं क्योंकि इसके अंदर अपार्ट फ्रॉम दैट गोइंग फॉर आईओ एंड टर्मिनेशन एक एक्स्ट्रा ओवरहेड है कि अगर एक सेकंड का टाइम क्वांटम रखा हुआ है तो हर सेकंड के बाद प्रोसेस जो है चेंज हो जाएगी यानी कि हर सेकंड के बाद सीपीयू को कोई नई प्रोसेस एग्जीक्यूट करनी पड़ेगी यानी कि जो शॉर्ट टर्म स्केड्यूल है कोई नई प्रोसेस पिक करके दे देगा उसको ठीक है तो इसकी वजह से इसमें ओवरहेड ज्यादा है मतलब ज्यादा बेसिकली एक ही सेकंड में अगर चेंज चेंज कर रहे हैं हम तो 10 सेकंड में 10 प्रोसेसेस चेंज हो जाएंगे ठीक है तो इसलिए ओवरहेड में बोलूंगा इसमें ज्यादा है तो ये आपका कंपैरिजन हो गया प्रिमिटिव और नॉन प्रिमिटिव स्केड्यूल एल्गोरिथम में ठीक है अब हम डिस्कस करते हैं गोल्स इसके गोल्स ऑफ सीपीयू शेड्यूलिंग एल्गोरिथम्स मेरे गोल्स क्या है मतलब अगर मान लो मैं अपना ओएस यूज कर रहा हूं या फिर मैं अपना ओएस डिजाइन कर रहा हूं तो जब भी मैं अपना ओएस डिजाइन करूंगा तो उसके जब मैं प्रोसेस मैनेजमेंट का पार्ट उसमें मैं कोड कर रहा हूंगा तो मैं सबसे पहले सोचूंगा कि जो सीपीयू स्केड्यूल एल्गोरिथम मैं यूज करूंगा जो प्रोसेस स्केड एल्गोरिथम में यूज करूंगा वो मैं किस पैरामीटर्स पे बनाऊ यानी कि मैं मेरे गोल्स क्या होंगे वो एल्गोरिदम क्या फुलफिल करेगी ठीक है उन गोल्स के बारे में डिस्कस करते हैं तो सबसे पहला मेरा गोल है सबसे पहला मेरा गोल है कि मैं सबसे चाहता हूं कि मैक्सिमम सीपी यूटिलाइजेशन हो मैक्सिमम सीपी यूटिलाइजेशन के बारे में हम स्टार्टिंग से ही पढ़ रहे हैं डे वन से ही पढ़ रहे हैं कि भाई मैं चाहता हूं सीपीयू जो है बहुत ही इंपोर्टेंट रिसोर्स है नहीं चाहता कि सीपीयू जो है वेट करें थोड़े सेकंड के लिए भी वेट करे ठीक है दूसरा पार्ट क्या है मैं चाहता हूं कि मिनिमम टर्न अराउंड टाइम हो ठीक है अब टर्न अराउंड टाइम क्या होता है ठीक है टर्मन टाइम क्या होता है कि कि जब भी सबसे पहले जॉब जो है आपकी रेडी क्यू में आई है और टर्मिनेशन तक का बीच का टाइम यानी कि जब भी आपकी जॉब कोई भी जॉब है वो रेडी क्यू में में आई ये मान लो p1 रेडी क्यू में आई और उसके बाद जो भी आपका बेसिकली आयो किया उसने कभी बीच में वेट स्टेट प भी गई होगी या फिर प्री एम्प्ट भी हो गई होगी यानी कि वापस रेडी क्यू में भी आई होगी ऐसे ऐसे चलता रहा होगा आपका जब भी वो एग्जिट करेगी ना फाइनल टर्मिनेट होगी उसके बीच का टाइम यानी सबसे पहले जब वो रेडी क्यू में आई ठीक है और जब वो एग्जिट कर रही है उसके बीच का डिफरेंस मैं बोल रहा हूं टर्न अराउंड टाइम तो टर्न अराउंड टाइम में सबसे कम चाहता हूं यानी कि प्रोसेस अगर रेडी क्यू में आ गई तो मैं चाहता हूं जल्दी से जल्दी वो पर्टिकुलर प्रोसेस जो है एग्जीक्यूट हो जाए पूरी एग्जिट कर जाए ठीक है तीसरा तीसरा है आपका मिनिमम वेट टाइम मिनिमम वेट टाइम मिनिमम वेट टाइम का क्या मतलब है कि मैं चाहता हूं कि जो प्रोसेस है ना व सीपीयू का कम से कम वेट करे यानी कि जब भी कोई प्रोसेस मान लो रेडी क्यू में चली जाती है वापस से यानी कि सीपीयू जो है उसको प्रीम कर देता है हमारे एल्गोरिदम बोलती है कि अभी दूसरी प्रोसेस को एग्जीक्यूट करना है तो उस केस में मैं चाहता हूं कि सबसे कम वेटिंग टाइम हो हर हर प्रोसेस का सबसे कम वेटिंग टाइम होना चाहिए कम से कम वेटिंग टाइम मैं वेट नहीं कराना चाहता किसी प्रोसेस को अगर ज्यादा वेटिंग होगी तो स्टार्वेशन हो जाएगा ठीक है चौथा चौथा पॉइंट है आपका मिनिमम रिस्पांस टाइम रिस्पांस टाइम क्या होता है रिस्पांस टाइम क्या होता है ये टाइम है कि जब भी आपकी प्रोसेस डीक्यू में आई ठीक है और उसको सबसे पहली बार सीपीयू मिला उसके बीच का डिफरेंस यानी कि आपकी प्रोसेस रेडी क्यू में आई ठीक है आने के बाद उसको सीपीयू सबसे पहली बार कब मिला फर्स्ट टाइम उसको मैं कह रहा हूं रिस्पांस राइम तो मैं चाहता हूं कि जब भी कोई प्रोसेस रेडी क्यू में आ जाए तो जल्दी से जल्दी उसको ना एटलीस्ट पहली बार तो सीपीयू मिल जाए एटलीस्ट पहली बार यानी उसकी इंस्ट्रक्शन साइकिल्स यानी कि बोलू मैं प्रोग्राम थोड़ा एग्जीक्यूट होना शुरू तो हो ऐसा ना हो कि मैंने रेडी क्यू में डाल तो दी प्रोसेस बट वो काफी टाइम से प्रोसेस पड़ी हुई है उसको एक भी बार सीपीयू नहीं मिला है ठीक है यह भी मैं नहीं चाहता फिफ्थ पॉइंट क्या होगा फिथ पॉइंट है हमारा मैक्सिमम थ्रू पुट मैक्सिमम थ्रू पुट चाहता हूं थ्रू पुट क्या होता है थट नंबर ऑफ प्रोसेसेस कंप्लीटेड पर यूनिट टाइम ठीक है य बेसिकली मेजर है किसी भी सीपीय स्ड एल्गोरिथम को मेजर करने का कि मैं चाहता हूं कि थ्रूप जो है ना मेरे सिस्टम की जो मेरे पूरे प्रोसेस है प्रोसेस मैनेजमेंट का सिस्टम है पूरा विद सीपीयू मैं चाहता पूरे सिस्टम जो है सबसे ज्यादा उसकी थ्रू पुट हो कि वह सबसे ज्यादा नंबर ऑफ प्रोसेसेस पर यूनिट टाइम एग्जीक्यूट कर पाए यह हम क्यों कर रहे हैं इसका मेन गोल यही है कि मैं चाहता हूं मैक्सिमम सीप यूटिलाइजेशन हो ठीक है इसीलिए मैं अपने सिस्टम को फास्ट चाहता हूं सिस्टम जो है बहुत ही एफिशिएंटली वर्क करे इसलिए यह सब मेरे गोल्स मैं डिसाइड कर रहा हूं और अपने दिमाग में रख रहा हूं बिफोर डिजाइनिंग माय सीपीयू स्के डोलिंग एल्गोरिदम ठीक है अब इन टर्म्स को जो हमने टर्म्स डिस्कस करी है मैं एक बार इनको और थोड़ा एलेबोरेट होके हम डिस्कस करते हैं थ्रू नोट्स ठीक है नोट्स प आ जाते हैं तो सबकी डेफिनेशन हमने लिख दी है तो सबसे पहले मैं बोलू थ्रू पुट तो नंबर ऑफ प्रोसेस कंप्लीटेड पर यूनिट टाइम अब उसके बाद एक चीज आती है अराइवल टाइम अब अराइवल टाइम क्या होता है टाइम वन प्रोसेस इ अराइव एट द रेडी क्यू ठीक है आप सिस्टम है सिस्टम के अंदर आपका एक टाइम लाइन चले जा रही है t इ 0 जब भी आपने सिस्टम ऑन किया होगा उसके बाद आपका क्लॉक चलती रही होगी ठीक है अब उस क्लॉक में किस पॉइंट पर किस टाइम पर जो आपकी प्रोसेस है वो रेडी क्यू में आई थी उसको मैं बोल रहा हूं अराइवल टाइम ठीक है दूसरा होता है काफी इंपॉर्टेंट है बर्स टाइम जो आपको पता होना चाहिए बर्स टाइम का क्या मतलब है सबकी शॉर्ट फॉर्म है बीटी एटी ठीक है बर्स टाइम होता द टाइम रिक्वायर्ड बाय प्रोसेस फॉर इट्स एग्जीक्यूशन ठीक है ये यहां पर एक्स्ट्रा लिखा हुआ है इसको हटा देंगे तो प्रोसेस को एक्चुअली कितना टाइम चाहिए एग्जीक्यूट होने को इसका मतलब यह है कि मान लो कोई और प्रोसेस ना हो आपकी कोई भी प्रोसेस आपकी डीक्यू में ना हो किसी सिस्टम में सिंपल एक ही प्रोसेस हो अगर एक ही प्रोसेस हो तो कितना उसे टाइम लगेगा सिंगल ओनर हुई अगर वो प्रोसेस सीपीयू की तो उसे कितना टाइम एक्चुअली लगेगा उसको मैं बर्स टाइम बोल रहा हूं ठीक है बर्स टाइम बोल रहा हूं आप नाइंथ है कि आपका टर्मन अराउंड टाइम क्या होता है टर्न अराउंड टाइम क्या होता है टर्न अराउंड टाइम हमने डिस्कस कर लिया टाइम टेकन फ्रॉम द फर्स्ट टाइम प्रोसेस एंटर रेडी क्यू टल इट टर्मिनेट तो ये आपका टर्मन टाइम होता है उसके बाद मैं डिस्कस करना चाहूंगा कंप्लीशन टाइम कंप्लीशन टाइम क्या होता है टाइम टेकन टिल प्रोसेस गेट्स टर्मिनेटेड यानी कि जब वह सबसे पहले उसका अराइवल हुआ अराइवल होने के बाद वह बेसिकली सबसे पहले उसको रिस्पांस टाइम मिला होगा सबसे पहले वोह शेड्यूल हुई होगी फिर उसके बाद वो वेट पे गई फिर वापस से रेडी क्यू में आई फिर दोबारा शेड्यूल हुई होगी फिर टाइम कंटम एक्सपायर हुआ वापस से रेडी क्यू हो गई ऐसे कर कर के आपकी प्रोसेस जो है डिफरेंट डिफरेंट स्टेट्स में ट्रेवल करती रहती है हमने पढ़ा है तो कंप्लीशन टाइम क्या है एक्चुअली जब लॉन्ग टर्म स्के ड्यूलर ने उसको रेडिक में डाला था टिल वो एग्जिट हो गई उसके बीच का डिफरेंस जो है वो आपका कंप्लीशन टाइम है ठीक है कंप्लीशन टाइम से आप कंफ्यूज हो सकते हो कि टर्न अराउंड टाइम फिर क्या होता है टर्न अराउंड टाइम होता है सटी - ए यानी कंप्लीशन टाइम माइनस अराइवल टाइम इसको मैं टर्न अराउंड टाइम बोल रहा हूं उसके बाद हमारा आता है वेट टाइम वेट टाइम हमने डिस्कस किया टाइम प्रोसेस पेंड्स वेटिंग फॉर द सीपीयू इसके अगर मैं फार्मूला बताऊं तो वेट टाइम होगा आपका t ए - बीटी यानी टर्न अराउंड टाइम माइनस बर्स टाइम आपका जो डटी इक्वल टू टेट माइन बीटी क्यों है क्योंकि टर्न अराउंड टाइम एक्चुअली होता क्या है जब वो प्रोसेस सबसे पहले रेडी क्यू में आई थी जब तक वो टर्मिनेट होगी ठीक है और बीटी क्या है एक्चुअली उसको कितना टाइम एक्चुअली लगना है अगर वो सिंगल प्रोसेस हो सिस्टम के अंदर ठीक है तो मैं चाहता हूं कि यह वेटिंग टाइम कम से कम हो इसलिए यह जो वेटिंग टाइम कैसे बनेगा टर्न अराउंड टाइम जो एक्चुअली उसे कितना टाइम लगा है माइनस एक्चुअली उसे कितना लगना था आईडियली ठीक है इसके बीच का डिफरेंस में वेटिंग टाइम बोल रहा हूं ठीक है तो ये हो गया हमारा डिफरेंट टाइप के जागन हमने डिस्कस कर लिए हैं अब हम चलते हैं अपनी सबसे पहली सबसे पहली शेडल एल्गोरिथम पर जिसका नाम है सबसे सिंपल हैय एफ सी ए एस फर्स्ट कम फर्स्ट स सबसे आसान स्केड एल्गोरिदम है इसको समझना बहुत आसान है इसमें क्या कर रहे हैं हम जो भी प्रोसेस रेडिक में सबसे पहले आएगी जो भी प्रोसेस रेडी में सबसे पहले आएगी मैं उसको उठा के सीपीय को असाइन कर दूंगा ठीक है तो यानी कि मान लो पव प2 p3 मान लो य क्य की तरह लाइन से आई है सबसे पहले ये आई है फिर उसके बाद ये आई थी फिर उसके बाद ये आई है ये तीन जॉब्स है ठीक है अब ये तीन जॉब आई है तो एफसीएफएस शेड्यूलर क्या करेगा जो सबसे पहले आई थी उसको उठाकर सीपीयू को डिस्पैच कर देगा उसको सेलेक्ट करेगा वो क्या करेगा इसको उठा के बोल देगा सिलेक्टेड फर्स्ट ठीक है और डिस्पेचर को बोल देगा कि भाई इसको सीपीयू प्रोवाइड कर दो तो इस तरीके से फ्लो चलेगा जब p1 एग्जीक्यूट हो जाएगा तो p2 p2 एग्जीक्यूट हो जाएगा तो p3 ठीक है सबसे सिंपल एल्गोरिथम है बट इस एल्गोरिथम में एक बहुत बड़ी प्रॉब्लम है जिसको मैं बोलता हूं कन्वोय इफेक्ट कन्वोय इफेक्ट समझने से पहले ना एक एग्जांपल के थ्रू समझते हैं हमारे पास एक एग्जांपल है मान लो एक सिनेरियो है कुछ प्रोसेसेस आई है हमारे पास जैसे पहला एग्जांपल है मान लो मेरे पास प्रोसेसेस क्या है वनटू मैं इसको बना लेता हूं ठीक है तो यह मैंने एक सिनेरियो बनाया यह हमारे पास ये एक सिनेरियो है जिसके अंदर हमारे पास एक टेबल दी हुई है जिसके अंदर प्रोसेसेस का पी आईडी लिखी हुई है पहली प्रोसेस दूसरी प्रोसेस तीसरी प्रोसेस इन सबके अराइवल टाइम हमें मिले दिए हुए हैं अराइवल टाइम हमारे पास है हमारे पास इन सबके बर्स टाइम है ठीक है इन सब के बस टाइम है तो अब हम यह सारी वैल्यूज को निकालना चाहते हैं ठीक है तो इसको निकालने के लिए हम एक तरीका यूज करते हैं इसको मैं गैंड चार्ट भी बोलता हूं ठीक है जी ए एनटी टी चार्ट ये स्पेलिंग होती है ठीक है गंड चा बोलता हूं मैं इसको अब मैं इसको कैसे इसको बनाऊंगा अब ये देखते हैं हम ठीक है तो जब मैं बोलता हूं t इ 0 था ठीक है t इ 0 पर कौन सी प्रोसेस आई एफसीएफएस आपका शेड्यूलर है तो आप क्या करोगे एफसीएफ सबसे पहले सबसे पहले जो आई थी जिसका अराइवल टाइम सबसे पहले था जीरो यानी कि इस केस में जीरो उसको मैं सबसे पहले उठा के शेड्यूल कर दूंगा तो सबसे पहले p1 स्केड्यूल हो जाएगी p1 कब तक चलेगी इसका बर्स टाइम क्या है 20 तो ये 20 यूनिट्स तक चलेगी 20 यूनिट्स तक चलने के बाद क्या होगा जब p1 एग्जीक्यूट हो गई तो फर प2 आएगी मेमोरी में प2 आएगी तो प2 का आप क्या बर्स टाइम है प2 का बर्स टाइम है आपका ट तो 20 पूरे टाइमलाइन अगर मैं टाइमलाइन गंड चार्ट पूरी टाइमलाइन बताता है ठीक है पूरे टाइमलाइन में 20 सेकंड हो चुके हैं तो इसको 20 प् 2 कितना सेकंड हो जाएगा 22 सेकंड्स हो जाएंगे फिर उसके बाद आपकी p3 आ जाएगी p3 आ जाएगी तो 22 प् 20 24 इतने सेकंड्स हो जाएंगे तो अगर मैं आप बोलू कि मेरे पास कंप्लीशन टाइम क्या रहा जो एक्चुअल कंप्लीशन टाइम जो है वह p1 का 20 सेकंड ही है प2 का कितना है 22 सेकंड है इसका 24 सेकंड है ठीक है अगर मैं टर्न अराउंड टाइम निकालने की कोशिश करूं तो टर्मिनेट टर्न अराउंड टाइम क्या होता है सीटी माइनस ए कंप्लीशन टाइम माइनस अराइवल टाइम तो आपका टर्न अराउंड टाइम कितना निकलेगा हम निकाल लेते हैं जल्दी से 20 आएगा यह 21 आएगा ये 23 आएगा ठीक है अब हम डटी निकाल लेते हैं यानी कि वेटिंग टाइम निकाल लेते हैं वेटिंग टाइम क्या होता है टी माइन बीटी राइट टी माइन बीटी में करूंगा तोय जीरो आएगा इसने जीरो सेकंड वेट किया क्योंकि आते ही सीधा एग्जीक्यूट हो गई थी वो इसने टोटल 21 - 2 19 सेकंड वेट किया इसने 20 सेकंड्स वेट किया यहां पर थोड़ी गलती हो गई है यहां पर 19 ही आएगा यह सटी - 80 अगर मैं करूंगा तो ये 22 आएगा ठीक है 22 माइ बीटी करूंगा मेरा 20 आएगा ठीक है तो ये टोटल आपका इतने सेकंड्स हो गए अगर मैं इसका सम करूं एवरेज पूरा वेटिंग टाइम का सम करूं तो ये कितना आएगा अगर मैं इसको देखूं ये हमारे पास ये वेटिंग टाइम्स ये हमारे रिस्पेक्टिव वेटिंग टाइम रहे जो पूरी रेडी क्यू थी ये मेरी पूरी रेडी क्यू थी रेडी क्यू में आपका इतना वेटिंग टाइम रहा ठीक है अब मैं इसका एवरेज निकालू तो मेरा एवरेज आएगा 13 ठीक है तो मेरा एवरेज वेटिंग टाइम जो है एवरेज वेटिंग टाइम 13 रहा एवरेज वेटिंग टाइम जो है 13 रहा अब अगर मैं इसको ना रेडी क्यू को थोड़ जो रेडी क्यूस रेडी क्यू में जिस तरीके से प्रोसेसेस आई है इसको मैं थोड़ा सा चेंज कर देता हूं अब एक दूसरा सिनेरियो हम देखते हैं जिसके अंदर हमने क्या किया है जो पव प्रोसेस जिसका सबसे ज्यादा बस टाइम था अब मैं उसको सबसे एंड में लेकर जा रहा हूं ठीक है मतलब सबसे पहले एफसीएफएस वाले एल्गोरिथम में सबसे पहले कौन सी आई होगी p2 फिर p3 आ है फिर p1 वा तो p2 p3 जो पहली दो जॉब्स है उनका जो बीटी है बर्स टाइम है वो कम है और जो सबसे लास्ट वाली प्रोसेस है उसका बस टाइम सबसे ज्यादा है अब देखते हैं एवरेज वेटिंग टाइम निकालते हैं अब देखो कितना फर्क आएगा इससे अगर मैं इसका गैंड चार्ट बनाऊ तो सबसे पहले प2 आई होगी p2 दो सेकंड एग्जीक्यूट हुई फिर उसके बाद p3 आई होगी 2 प् 2 4 सेकंड्स यूनिट्स सेकंड्स नहीं होंगे य यूनिट्स वर्ड यूज़ करूंगा मैं p1 आएगा p1 आएगा तो 24 ठीक है अगर मैं इसका कंप्लीशन टाइम अब लिखूं तो इसको कितना कंप्लीशन में टाइम लगा इसको 2 सेकंड लगा इसको 4 सेकंड लगा इसको 24 सेकंड लगे ठीक है अब मैं इसका टर्न अराउंड टाइम निकालूं तो टर्न अराउंड टाइम क्या होता है हमारा c - 80 c - 80 करूंगा तो इसका 2 सेकंड्स आएगा इसका 3 सेकंड्स आएगा इसका 22 सेकंड्स आएगा अब मैं w निकालने की कोशिश करूं तो वो आता है ट - bt01 आएगा यह टू आएगा अब अगर मैं इसका एवरेज वेटिंग टाइम निकालूं तो वो सिर्फ वन यूनिट आएगा तो इसको कहते हैं कनव इफेक्ट इसका मतलब जब एक हैवी जॉब जो जिसका सबसे ज्यादा बस टाइम था ठीक है अगर वह सबसे पहले आ जाती है सबसे पहले आ जाती है तो उससे क्या होता है उससे पंगा यह होता है कि बाकी सारी जॉब्स को वेट करना पड़ जाता है क्योंकि सबसे पहली जॉब अगर 20 यूनिट्स चलेगी यानी 20 अगर मैं यूनिट्स नहीं यहां पे सेकंड यूज़ कर लेता हूं थोड़ी देर के लिए अगर मान लो 20 सेकंड्स चलेगी तो 20 सेकंड चलेगी तो बाकी जॉब जो है प2 पी3 जो पड़ी हुई है वो बहुत देर तक वेट करती रहेंगी तो एवरेज वेटिंग टाइम मेरे पूरे सिस्टम का इस रेडी क्यू को एग्जीक्यूट करने का एवरेज वेटिंग टाइम हमारा 13 आया जो कि बढ़ गया पहली जॉब की वजह से इसी जॉब को अगर मैं थर्ड पोजीशन पर रख देता हूं तो मेरा एवरेज वेटिंग टाइम आता है न सेकंड या वन यूनिट ठीक है तो इसको कहता हूं मैं कन्वोय इफेक्ट अब कन्वोय इफेक्ट की अगर मैं डेफिनेशन पढ़ना चाहूं तो वो यह है कि अगर अगर कोई एक प्रोसेस है जिसका हायर बीटी है यानी लोंगर बीटी है तो इट विल हैव मेजर इंपैक्ट ऑन एवरेज बीटी ऑफ डिफरेंट प्रोसेसेस ठीक है ये हमने लाइव एग्जांपल से देखा एक एग्जांपल से देखा हमने कि पहले के ही अगर बेसिकली बर्स टाइम ज्यादा हो जाएगा तो बाकी का वेटिंग टाइम बढ़ जाएगा ठीक है कन्वोय इफेक्ट नॉर्मली जो है जरूरी नहीं है सिर्फ प्रोसेसेस में ही या फिर स्केड्यूल एल्गोरिदम में ही या एसीएफएस में ही हो बाकी इन जनरल इसमें नॉर्मली भी हो सकता है नॉट ओनली सीपीयू आप अगर कोई और रिसोर्स की बात करो कोई और सोर्स है आपका कोई एक प्रोसेस सबसे ज्यादा देर के लिए लेके बैठी हुई है और बाकी कोई और प्रोसेस भी उसको रिसोर्स को यूज करना चाहती है तो जो दूसरी प्रोसेसेस जो वेट कर रही हैं उनका वेटिंग टाइम बढ़ जाएगा ठीक है तो इसको मैं कनव इफेक्ट बोलता हूं इसको मैं एक रिसोर्स की बर मैनेजमेंट भी बोल सकता हूं ठीक है क्योंकि रिसोर्स तो यार सबका ही है ना मतलब यहां पे कोई पार्शियलिस मिल गया तो p2 को भी रिसोर्स टाइम से मिल जाना चाहिए ये मेरा गोल रहता है ठीक है सीपीय स्केलिंग एल्गोरिथम्स का तो ये था इस वीडियो में हमने यहां पर कुछ जर्गंस के बारे में पढ़ा आपने थ्रू पुट एटी क्या होता है बीटी क्या होता है टेट क्या होता है डब्लू सीटी क्या होता है रिस्पांस टाइम क्या होता है अब हमने ये समझा कि गोल्स क्या है सीपीए शेड्यूलिंग एल्गोरिदम के प्रीमप्टिव शेड्यूलिंग ए नॉन प्रीमप्टिव स्केड क्या होता है ठीक है आपका कॉन्बॉय इफेक्ट क्या होता है कन्वोय इफेक्ट जो है इंटरव्यू में डायरेक्टली पूछ लिया जाता है कन्वोय इफेक्ट क्या होता है ठीक है तो ये इंटरव्यू क्वेश्चन आपका बन जाता है यहां पर तो इसी के साथ इस वीडियो को खत्म करते हैं मिलते हैं किसी नेक्स्ट लेक्चर में गुड बाय हेलो जी कैसे हो सारे लक्षर तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 13 पर और आज हम कंटिन्यू करने वाले हैं सीपीयू शेड्यूलिंग के कुछ और एल्गोरिथम्स के बारे में पढ़ना लास्ट लेक्चर में हमने पढ़ा एफसीएफएस शेड्यूलिंग एल्गोरिथम जो कि सबसे सिंपल स्केड्यूल एल्गोरिथम थी राइट अब हम पढ़ेंगे दूसरे स्केड्यूल एल्गोरिथम्स जैसे कि एसजेएफ शॉर्टेस्ट जॉब फर्स्ट इसका प्रीमप्टिव और नॉन प्रीमप्टिव दोनों वर्जन पढ़ेंगे हम फिर आता है हमारा प्रायोरिटी शेड्यूलिंग उसका भी प्रीमप्टिव नॉन प्रीमप्टिव वर्जन पढ़ेंगे फिर हमारी आती है सबसे खास एल्गोरिथम जो कि है राउंड रॉबिन ठीक है तो सबसे पहले हम शुरू करते हैं सबसे पहले शुरू करते हैं एसजेएफ से जिसको मैं बोलता हूं शॉर्टेस्ट जॉब फर्स्ट ठीक है शॉर्टेस्ट जॉब फर्स्ट का क्या मतलब है जिस भी जॉब का सबसे छोटा बर्स टाइम होगा यानी कि जो भी जॉब क्यू के अंदर है उसमें से मैं देखूंगा कि सबसे छोटा बर्स्ट टाइम किसका है ठीक है सबसे छोटा बर्स्ट टाइम मतलब कि कौन सबसे जल्दी एग्जीक्यूट होगी ऐसा सोचना है मेरा ठीक है तो उसको उठा के मैं सबसे पहले सीपीयू को दे दूंगा ठीक है उसके बाद जिनका ज्यादा हायर बर्स टाइम है उनको दूंगा ऐसा मैं क्यों कर रहा हूं पहले लिख लेते हैं प्रोसेस विद लीस्ट बस टाइम विल गेट सीपीयू ठीक है और ऐसा मैं क्यों कर रहा हूं यार हमने पिछले ही लेक्चर में देखा कि जो एफसीएफएस था उसके अंदर जब मैं सबसे हायर बर्स टाइम की प्रोसेस को पहले शेड्यूल कर देता था तो एवरेज वेटिंग टाइम बहुत ज्यादा बढ़ जाता था राइट इसी को मैं कन्वोय इफेक्ट कह रहा था ठीक है तो उसको थोड़ा सा रिजॉल्व करते हुए वहां पर एक एसजीएफ एल्गोरिथम है अभी हम इसका नॉन प्रीमप्टिव वर्जन नॉन प्रीमप्टिव वर्जन डिस्कस कर रहे हैं यानी कि एक बार प्रोसेस को सीपीयू मिल गया तो मिल गया वापस से प्रीमन नहीं होगा ठीक है तो इसमें अब प्रॉब्लम सबसे बड़ी क्या है अब ये देखो कि हमने बोला कि सबसे लीस्ट बस टाइम जिसका होगा हम उसको सीपीयू दे देंगे बट यह ना बड़ा मुश्किल टास्क है कि प्रोसेस जो आई जैसे मान लो एग्जांपल लेते हैं p1 p2 p3 ऐसे तीन प्रोसेस आई रेडी क्यू में अब मुझे निकालना है इनका बीटी कितना होगा अब मुझे बिफोर हैंड मतलब मैंने स्केड्यूल किया भी नहीं उससे पहले ओएस जो बैठ के ह्यूरिस्टिक अप्लाई कर रहा है ह्यूरिस्टिक क्या होते हैं कि मतलब कुछ ऐसे तुक्के मारने की कोशिश कर रहा है कुछ ना कुछ एल्गोरिथम्स के कुछ लॉजिक लिखा होगा इसके पीछे वो देख रहा है कि यार p1 का कितना बर्स टाइम हो सकता है देख रहा होगा कितना इसका साइज है कोड साइज कितना है ठीक है और या फिर पुरानी किसी हिस्ट्री कभी और p1 जॉब आई थी तो उसने कितना टाइम लिया था तो उस हिसाब से मैं बर्स्ट टाइम निकालने की कोशिश कर रहा हूं अब मतलब कि मैं एस्टिमेशन कर रहा हूं ठीक है तो ये फुल फुल ऑन एस्टिमेशन बेस्ड है ठीक है कोई आईडियली कितना बर्स टाइम है ये मैं निकाल ही नहीं सकता ये नियर इंपॉसिबल टास्क है तो मैं इस एस्टिमेशन पे या फिर बोल सकता हूं कि इस होप में चल रहा हूं कि जो मैंने बर्स टाइम निकाला है जो मेरी एल्गोरिथम ने बर्स्ट टाइम निकाला है वो सही होगा इस बिहाव पे मैं उसको शेड्यूल करूंगा ऐसा भी हो सकता है आपने निकालो इसके अंदर मान लो इसका बर्स टाइम निकाला आपने 2 सेकंड इसका निकाला 5 सेकंड इसका निकाला 10 सेकंड तो मुझे क्या लग रहा है कि p1 का सबसे कम बस टाइम है तो इसको उठा के मैं सीपीयू दे देता हूं बट ऐसा भी हो सकता है कि इसका 2 सेकंड ना हो या 20 सेकंड हो राइट मुझे नहीं पता अभी मैंने सारा कोड तो देखा नहीं है ठीक है एग्जीक्यूशन तो मैं पता लगा नहीं सकता कितना टाइम लगेगा तो ये इसमें सबसे बड़ी प्रॉब्लम है ठीक है यह इसकी इसका एक ड्र बैक भी है मतलब य एस्टिमेशन निकालना तो अब यह वर्क कैसे करती है इस पर चलते हैं तो एक एग्जांपल लेते हैं छोटा सा एग्जांपल मैं ले लेता हूं यहां पर प्रोसेसेस है ठीक है तो यह मेरी प्रॉब्लम स्टेटमेंट हो गई ठीक है अब मैं शॉर्टेज जॉब पर नॉन प्रम वर्जन के हिसाब से इसका गन चार्ट बनाने की कोशिश करता हूं ठीक है क कुछ हमारा ऐसा दिखेगा इ 0 पर मैं शुरू करूंगा सबसे पहले जो प्रोसेस आएगी नॉन प्रिव है ध्यान रखना उससे पहले मैं डिस्कस करता हूं यह जो बीटी निकला है य जो बीटी दिख रहा है आपको मैंने कैसे निकाला है भूलना मत इसको ये मैंने एस्टिमेशन से निकाला है ठीक है मुझे नहीं पता एक्चुअली कितना होगा तो अब सबसे पहले आएगी आपकी अराइवल टाइम जिसका जीरो है ठीक है अभी तक ये क्यू में है p1 p1 को मैंने स्केड्यूल किया अब क्योंकि नॉन प्रीमप्टिव है ये वापस से प्री एम्प्ट नहीं होगी तो ये अपने बर्स टाइम जितना चल जाएगी 8 सेकंड्स तक चल गई ठीक है उसके बाद जब 8 सेकंड पूरे हो चुके हैं जैसे ही 8 सेकंड पूरे हुए हैं क्लॉक में तो मेरे पास ये तीनों की तीनों प्रोसेस मिलेगी राइट क्योंकि इसका अराइवल टाइम थ्री था जो सबसे लेटेस्ट प्रोसेस थी उसका अराइवल टाइम थ्री था तो रेडी क्यू में ये तीनों की तीनों प्रोसेस आ चुकी होंगी राइट तो चलो अब उसके बाद मैं कौन सी उठाऊंगा p2 ठीक है p2 उठाऊंगा p2 उठाऊंगा तो उसका बर्स टाइम कितना है चार 8 + 4 12 12 सेकंड्स p2 हो गया 12 सेकंड अब अब अगर मैं देखूं तो मेरे पास दो जॉब्स पड़ी हुई है ये ठीक है अब मैं देखूं अब मैं दोनों में से मैच करूंगा कि किसका बर्स टाइम सबसे कम है तो मैं देख रहा हूं इसका बर्स टाइम कम है ठीक है तो अब यहां पर p3 ना हो के स्केड्यूल p4 शेड्यूल होगी ठीक है एसीएफएस में क्या होता है p3 शेड्यूल हो जाती है बट इसमें p4 शेड्यूल हम कर देंगे p4 स्केड्यूल करेंगे 5 सेकंड्स चलेगी इसमें 17 सेकंड्स उसके बाद बची कौन सी p3 p3 को शेड्यूल कर देंगे ये हमारी 26 सेकंड चलेगी ठीक है अब इसका मैं सीटी जल्दी जल्दी लिख लेता हूं सीटी हमारा होगा 8 12 26 एंड 17 अगर इसका मैं टर्न अराउंड टाइम निकालूं तो टर्न अराउंड टाइम क्या होता है c - ए ठीक है टर्न अराउंड टाइम टर्न अराउंड टाइम क्या है बीटी क्या है सीटी क्या है ये टर्म लॉजी आ ग ना एक दो लेक्चर में यूज करेंगे तो इसको पिछली वीडियो में जाके लेक्चर 12 में जाके इनको अपने कांसेप्ट क्लियर कर लो एकदम ये बीटी टी एटी सीटी है क्या ठीक है तो टर्न अराउंड टाइम निकालते हैं इसका आएगा 8 सेकंड इसका 11 सेकंड इसका 24 इसका 14 और उसका बस टाइम निकाले बस टाइम नहीं बस टाइम नहीं यहां हमने मिस्टेक कर दी बस टाइम नहीं मैं इसको वेट टाइम बोलूंगा ठीक है वेट टाइम वेट टाइम निकाले अगर हम वेट टाइम क्या होता है t - बीटी ठीक है ये जीरो सेकंड्स ये आएगा 7 ये 15 ये ना सेकंड्स इसका एवरेज निकालू मैं एवरेज वेट टाइम निकालू तो 7.75 सेकंड्स आ गया ठीक है तो यह आपका हो गया नॉन प्रिव वर्जन का हमने एक एग्जांपल देख लिया कि इसमें एवरेज वेटिंग टाइम कितना रहेगा ठीक है अब एक और बात करू तो अभी जो हमने एग्जांपल सॉल्व किया इसमें आप देख रहे होगे कि हमारा जो क्राइटेरिया क्या है ठीक है क्राइटेरिया क्या है प्रोसेस को पिक करने का क्राइटेरिया क्या है वो है हमारा अराइवल टाइम एंड बीटी राइट बीटी के बिहाव पर हम पहले देख रहे अराइवल टाइम जो जो से अराइव होंगी उस हिसाब से वही वाली प्रोसेस क्य के अंदर पड़ी होंगी डीक्यू के अंदर तो ये मेरा क्राइटेरिया हो गया दूसरा जिसका बर्स टाइम सबसे कम होगा वो मेरा क्राइटेरिया हो गया तो ये क्राइटेरिया यूज होता है मेरा एस जे एफ के अंदर अब मैं चलता हूं इसके प्रीमप्टिव वर्जन पर ठीक है प्रीमप्टिव एसजेएफ तो यार अभी नॉन प्रम हमने ये देखा कि जब अगर कोई एक प्रोसेस को एक सीपीयू मिल जाता है तो मैं उसे वो करता नहीं हूं क्या नहीं करता मैं उसे प्रीम नहीं करता प्रीम नहीं करता तो इससे क्या प्रॉब्लम आ सकती है देखो अब एज्यूम करो मान लो पव जो प्रोसेस अरावल टाइम जीरो पर आई थी इसका बर्स टाइम बीटी 8 ना होके 80 होता 80 बर्स टाइम होता तो अगर आप देखो तो क्या होगा इससे 80 हो गया पहली जॉब 80 सेकंड के लिए चलेगी बाकी जॉब वेट करती रह जाएंगी 80 सेकंड तक क्योंकि प्रीमन तो हो नहीं रहा है तो यह एक मैं बोल सकता हूं विक्टिम होगा किसका कन्वोय इफेक्ट का कन्वोय इफेक्ट ठीक है बाकी जॉब र्व करें उनको एक भी बार सीबीयू नहीं मिलेगा ठीक है तो इसको थोड़ा सा सॉल्व करते हैं थोड़ा सा सॉल्व थोड़ा सा ऑप्टिमाइज करने की कोशिश करते हैं प्रीमप्टिव वर्जन का यूज करके इसका अगर मैं सिंपली सीधा ही उठाऊं एग्जांपल तो इसी एग्जांपल को ना इसके लिए सॉल्व करते हैं इस पर्टिकुलर के लिए लेट मी ड्रॉ द क्वेश्चन फर्स्ट ठीक है ये मैंने जल्दी-जल्दी बेसिकली ड्रॉ कर लिया हमारी प्रॉब्लम तो ये हमारी रेडी क्यू है ऐसे कुछ दिखेगी थोड़ी देर बाद अराइवल टाइम के हिसाब से बढ़ती चली जाएगी ठीक है अब इसमें क्राइटेरिया क्या होगा क्राइटेरिया अभी भी हमारे पास ए प् बीटी ही होगा बट इसमें एक क्राइटेरिया और ऐड हो गया है कि ये प्रीमन होगा इसके अंदर और वो प्रीमन होगा कैसे उस पर्टिकुलर पॉइंट पे स्टार्टिंग में मान लो अराइवल टाइम जीरो है तो p1 प्रोसेस आएगी तो रेडी क्यू में जब एक ही प्रोसेस है एक ही प्रोसेस तो इस केस में p1 ही स्केड्यूल हो पाएगी क्योंकि बाकी प्रोसेसेस आई ही नहीं है बट जैसे ही मान लो p1 ने चलना शुरू किया p1 को सीपीयू मिला उसने एग्जीक्यूट होना शुरू किया वो वन सेकंड एग्जीक्यूट हुई तो जैसे ही वो एक सेकंड एग्जीक्यूट हुई तो क्या होगा रेडी क्य में एक और प्रोसेस आ जाएगी प2 अब प2 का बर्स टाइम क्या है फर दैट इज लेसर देन पव के बर्स टाइम से तो इस केस में क्या होगा कि पव को मैं प्रीम कर दूंगा ठीक है पव पहले शेड्यूल होगी एक सेकंड चलेगी फिर प2 आ जाएगा फर सेकंड उसका बर्स टाइम है तो अब पव जो है प्रीम हो जाएगी ठीक है अब इसका ग चट बनाते हैं सीधा उससे समझते हैं ठीक है तो स्टार्टिंग में जब टाइम t इ 0 होगा तो p1 हमा पर प्रोसेस है p1 हमने स्केड्यूल करी p1 शेड्यूल करने के बाद वो कितने सेकंड चली p1 चलेगी एक सेकंड ही जैसे ही एक सेकंड चली मेरे p2 आ गई जिसका वर्स टाइम कम है वर्स टाइम कम होने की वजह से मैंने p1 को प्री एम्प्ट कर दिया p1 प्रीम होने के बाद p2 को शेड्यूल कर दिया अब p2 आ गया यहां पे अब जैसे ही p2 आया p2 कितने सेकंड चलेगा p2 पूरे अपना 4 सेकंड चल जाएगा क्योंकि जैसे ही फर सेकंड अगर वो पूरा चल भी गया वो फर सेकंड पूरा चल भी गया तो एट द एंड ऑफ फोर्थ सेकंड भी मेरे पास यह सारी प्रोसेसेस आ चुकी होंगी यानी कि p3 p4 भी आ चुकी होगी बट इसका जो बर्स टाइम है p3 p4 का वो 9 ए5 है दैट इज लेसर देन दैट इज लेसर दन p2 ठीक है तो p1 पूरी चल जाएगी टर्मिनेशन स्टेट तक ये पूरी स्केड्यूल हो जाएगी तो यहां पर कितना आ जाएगा आपका टाइम 5 सेकंड क्योंकि 4 सेकंड चल गई अब यह तो मेरी हो गई ए प2 तो पूरी डन हो गई है ठीक है और एक चीज मिस कर गए हम कि जब p1 एक सेकंड चल गई है तो उसका बर्स टाइम कितना बचा होगा सेन ठीक है अब मैं देखता हूं कि कौन सी प्रोसेस सबसे कम बर्स टाइम वाली है मेरी कौन सी प्र सब कम बर्स टाइम वाली है p4 दैट इज 5 सेकंड तो p4 को उठाया मैंने p4 को स्केड्यूल किया 5 सेकंड के लिए ये पूरी स्केड्यूल हो जाएगी 10 सेकंड ठीक है फिर उसके बाद अब किसका बस टाइम कम है p1 का अब p1 पूरी स्केड्यूल हो जाएगी क्योंकि p1 का p3 से कम बर्स टाइम है और कोई और प्रोसेस रेडी क्यू में आ नहीं रही है ठीक है तो इसको मैं पूरा स्केड्यूल कर दूंगा दैट इज 17 सेकंड्स ठीक है फिर उसके बाद कौन सी बची लास्ट हमारी p3 p3 हमारी चल जाएगी पूरा ना सेकंड्स तक दैट इज 26 ठीक है तो ये हमारा हो गया जल्दी से हमने ड्रॉ कर लिया इसका गैंड चार्ट अब इसका सीटी मैं जल्दी-जल्दी लिख देता हूं सीटी मेरा क्या होगा इसका 17 सेकंड इसका 5 सेकंड इसका 26 सेकंड इसका 10 सेकंड ठीक है इसका t8 निकालो तो इसका 17 आ जाएगा c - 0 इसका 4 आएगा इसका 24 इसका 7 अगर मैं डटी निकाल दैट इज ट - बटी तो 17 - 8 दैट इज 9 उसका आएगा फिर 0 इसका 15 इसका 2 अगर अब मैं इसका एवरेज वेट टाइम निकालू तो कितना आएगा 6.5 यूनिट्स राइट ठीक है अब मैंने थोड़ा सा ऑप्टिमाइजेशन लगाया ऑप्टिमाइजेशन लगाने के बाद इसका जो वेट टाइम है वो कम हो गया क्या अब एक क्वेश्चन पूछते हैं आपसे कि क्या इसमें कन्वोय इफेक्ट होगा सोचो इसके अंदर कन्वोय इफेक्ट नहीं होगा रीजन बीइंग अगर मान लो कोई पहली जॉब आई भी कोई पहली जॉब आई और उसका बर्स टाइम जो है बहुत ज्यादा हुआ भी मान लो 80 सेकंड हुआ पिछले केस की तरह तब भी क्या होगा ये 80 सेकंड चलनी तो शुरू होगी जैसे अभी इस केस में हुआ था 8 सेकंड चलनी तो शुरू हुई बट जैसे ही कोई लोअर बस टाइम की आई तो हमने उसको प्रिएंट कर दिया पहले वाली जॉब को और दूसरी जॉब को सीपी प्रोवाइड कर दिया इसके अंदर कॉन्बो इफेक्ट होता ही नहीं है ठीक है क्योंकि हम जैसे ही कोई बस टाइम लोअर बस टाइम की आएगी लोअर बस टाइम की प्रोसेस आते ही हमने क्या करा उसको स्केड्यूल कर दिया ठीक है फिर से कोई और लोअर बस टाइम की आएगी तो उसको हम फिर से स्केड्यूल कर देंगे ठीक है तो इस तरीके से ना हम लोग कन्वो इफेक्ट आने से बचा रहे हैं और कन्वो इफेक्ट इसमें क्यों नहीं आ रहा है क्योंकि कन्वो इफेक्ट पहले समझो कि आता क्यों था आता इसलिए था कि कोई पहली जॉब ही ऐसी आ गई जो बहुत ज्यादा सीपीयू बेसिकली उसका बर्स टाइम है ठीक है तो उसने सीपीयू को हैक करके रख लिया बहुत टाइम तक और बाकी जॉब जो स्टार्वक रही है तो दैट इज कन्वो इफेक्ट बट इसके अंदर क्या होता है इसके अंदर तो हमारा क्राइटेरिया यही है जिसका बीटी कम है जिसका बीटी कम है मैं उसे उठा के दे दूंगा तो जैसे ही कि कोई और जॉब आएगी जिसका लोअर बीटी है तो वो उठा के वो स्केड हो जाएगी तो जो लंगर जॉब होगी जो भी जिसका हायर बीटी होगा वो बेसिकली नीचे नीचे शिफ्ट होती चली जाएगी इसकी वजह से एवरेज वेटिंग टाइम जो है मेरा हमेशा कम ही रहेगा लोएस्ट रहेगा एवरेज वेटिंग टाइम इसके अंदर लोएस्ट रहता है ठीक है इस वाले इसमें बट इसमें सबसे बड़ा चैलेंज जो एसजीएफ में है वो ये है कि ये नियर इंपॉसिबल टाइप है इसको इंप्लीमेंट करना इसका रीजन यही है क्योंकि बीटी मुझे बिफोर हैंड पता ही नहीं हो सकता प्रैक्टिकली अगर मैं देखूं कि बिफोर हैंड मैं कैसे पता कर सकता हूं ये प्रोसेस कितना बर्स टाइम लेगी सोचो कोई अब आईडियली जो प्रोग्रामर है उसने तो कोड ये सोच के लिखा है कि हम मेरा मेरी प्रोसेस बढ़िया चलेगी इससे बट उसके अंदर कोई ऐसा वाइल वन का लूप फंसा हुआ है मान लो उसके अंदर वाइल वन लिख के किसी ने किसी वजह से छोड़ दिया और वो प्रोग्राम एरोनियस है और वो चले जा रहा है तो उसने तो एस्टिमेटर कि बर्स टाइम उसका 70 सेकंड होना चाहिए बट वो 70 सेकंड नहीं अनलिमिटेड बस टाइम है उसका ठीक है तो एसजेएफ में यह सबसे बड़ा इशू है ठीक है तो यह हमने डिस्कस किया एसजेएफ और हमने देखा कि प्रीमप्टिव वर्जन जो होता है वो बेटर होता है इसके नॉन प्रीमप्टिव से क्योंकि प्रीमप्टिव के अंदर कॉन इफेक्ट होता ही नहीं है और नॉन प्रीमप्टिव के अंदर कॉन इफेक्ट होता है ठीक है तो लेस स्टार्वेशन वाली एल्गोरिदम है ये बहुत ही बढ़िया चलो अब नेक्स्ट शुरू करते हैं हम अगली एल्गोरिथम डिस्कस करना अब हम शुरू करते हैं हमारी नेक्स्ट एल्गोरिथम डिस्कस करना जिसका नाम है प्रायोरिटी शेड्यूलिंग प्रायोरिटी स्कड अब इसमें क्या है यार देखो अभी तक क्या था कोई प्रायोरिटी जैसा कुछ नहीं हो रहा था ठीक है मतलब कोई जॉब बस उसकी प्रायोरिटी कि बिहाव पे डिसाइड होती लास्ट वाले हमारी स्केड एरिम में कि उसका बर्स टाइम कम होना चाहिए ठीक है तो मैं बोल सकता हूं कि जो एसजेएफ है ना एसजेएफ वो स्पेशल केस है एक प्रायोरिटी स्केड्यूल का क्यों क्योंकि इसमें कोई अलग से प्रायोरिटी नहीं असाइन हुई है यानी कि इसमें कोई अलग से हमने प्रायोरिटी असाइन नहीं की थी एसजीएफ के अंदर बस हमने ये बोल दिया था कि जिसका बर्स टाइम कम होगा मैं उसको स्केड्यूल कर दूंगा तो मैं कह सकता हूं ना कि जिसका लोएस्ट बर्स टाइम होगा वो एट दैट पॉइंट ऑफ टाइम उसकी हाईएस्ट प्रायोरिटी होगी ठीक है बट इस वाले एल्गोरिथम में हम क्या करते हैं स्पेसिफिकली ना हम असाइन कर देते हैं प्रायोरिटी टू ईच जॉब मतलब जैसे ही वो ये हमारी रेडी क्यू है जैसे ही वो रेडी क्यू में कोई जॉब आएगी p1 p2 p1 p2 ऐसे आई तो हम मैं इसको प्रायोरिटी सेट कर दूंगा इसकी प्रायोरिटी मान लो टू है इसकी प्रायोरिटी फोर है तो अभी मैं बोल रहा हूं कि जिसकी हाईएस्ट प्रायोरिटी होगी वो सबसे पहले स्केड्यूल होगी ठीक है तो सबसे पहले मैं इसका नॉन प्रीमप्टिव वर्जन डिस्कस करता हूं नॉन प्रीमप्टिव अब तक तुमहे समझ आ गया होगा कि नॉन प्रीमप्टिव ना बेकार सा ही होता है तो इसका भी बेकार ही है ठीक है देख लेते हैं एग्जांपल के साथ जल्दी से मैं ड्र करता हूं एक एग्जांपल ठीक हैरा ड्र हो गया हमारा अभी पर्टिकुलर हमारे एक क्वेश्चन बोल बोल सकता हूं मैं इसको ठीक है तो इसको हम सॉल्व कैसे करेंगे इसको कैसे स्केड्यूल करेंगे ठीक है तो एक गन चण बना लेते हैं ये बहुत जरूरी है बनाना ठीक है तो यार इसमें क्राइटेरिया क्या है इसमें क्राइटेरिया है हमारा प्रायोरिटी ठीक है जिसकी प्रायोरिटी सबसे ज्यादा होगी उस पॉइंट ऑफ टाइम पे उसको हम शेड्यूल कर देंगे ठीक है अब क्योंकि ये नॉन प्रीमप्टिव वर्जन है तो एक बार सीपीयू मिल गया तो मिल गया हम सीपीयू को प्रिएंट नहीं करेंगे किसी प्रोसेस को प्रिएंट नहीं करेंगे ठीक है तो चलो शुरू करते हैं अगर मैं इसमें शुरू करने की कोशिश करूं तो सब से पहले t = 0 पे कौन सी प्रोसेस है हमारे पास p1 प्रोसेस है तो p1 शेड्यूल हो जाएगी एक बार सीपीयू मिल गया तो मिल गया फर सेकंड्स तक एग्जीक्यूट होगी ठीक है अब 4 सेकंड तक जब एग्जीक्यूट हो गई तो अराइवल टाइम फोर तक मेरे पास कौन-कौन सी जॉब है कौन-कौन सी जॉब है हमारे पास हमारे पास वन तो एग्जीक्यूट हो चुकी है 2 3 4 5 अब इसमें से सबसे ज्यादा प्रायोरिटी किसकी है इसमें सबसे ज्यादा प्रायोरिटी है p4 की तो अब कौन सा प्रोसेस शेड्यूल होगी अब हमारी p4 शेड्यूल हो जाएगी p4 शेड्यूल होगी तो p4 कितना टाइम चलेगी p4 आपका 5 सेकंड इसका बर्स टाइम है 5 सेकंड चलेगी तो नाइन आ गया यहां पे ठीक है अब नाइन जब हो गया तो मैं देखूंगा कि नाइन सेकंड जैसे ही हुए तो मेरी रेडी क्यू में सारी प्रोसेसेस आ चुकी है क्योंकि लास्ट अराइवल टाइम वाज सिक्स अब मैं इसमें से सबसे हाईएस्ट प्रायोरिटी की प्रोसेस उठा लेता हूं ठीक है अब सबसे हास्ट प्रायोरिटी किसकी है हमारे 12 यानी p6 की हाईएस्ट प्रायोरिटी है p6 13 सेकंड्स राइट अब उसके बाद p6 के बाद किसकी प्रायोरिटी सबसे ज्यादा है p7 की प्रायोरिटी सबसे ज्यादा है ठीक है दैट वाज नाइन तो भी 6 सेकंड चलेगी ठीक हैट इज 19 तक उसके बाद कौन सी प्रोसेस आती है हमारी फिफ्थ प्रोसेस p5 यह न सेकंड ही चल रही है बेचारी ठीक है अब p3 आ जाएगी इसके बाद हमारे पास ठीक है p3 आएगी p3 वुड रन फॉर 3 सेकंड ठीक है 23 तक चल जाएगी अब बची हमारी प2 प्रोसेस ू सेकंड्स तक ये चल जाएगी तो 25 ठीक है तो ये हमारा बेसिकली गंड चार्ट हो गया हमने निकाल लिया अब हम इसकी वैल्यू लिख लेते हैं हमारी वैल्यू किस तरीके से आएंगी सीटी फ आएगा इसका सीटी 25 आएगा इसका सीटी 23 आएगा इसका सिटी ना आएगा इसका 20 आएगा इसका 13 आएगा इसका 19 आएगा तो यार एक चीज इसम नोटिस करने वाली है कि हर बार क्या हो रहा है ना कि जो लोएस्ट प्रायोरिटी वाली जॉब्स है उनको टाइम मतलब उनको पीछे छोड़ देते हैं हम ठीक है तो हास्ट प्रायरिटी को हम शेड्यूल करे जा रहे इससे प्रॉब्लम अराइज होगी ठीक है दिमाग में रखना चीज अभी हम डिस्कस करेंगे थोड़ी देर में इससे इससे क्या प्रॉब्लम अराइज होगी अब इसका टी और ड्यूटी क्या आएगा वो मैं चाहता हूं कि आप लोग खुद ड्रॉ करें मैं जल्दी जल्दी ड्रॉ कर देता हूं इसको ठीक है मैंने पहले इसको सॉल्व किया हुआ है इसको ठीक है तो ये हमने ड्रॉ कर लिया जल्दी से ये इसका एवरेज वेटिंग टाइम जो है इसका 99.7 144 सेकंड्स आ गया है ठीक है अब थोड़ा हम जाते हैं इसके प्रीमप्टिव वर्जन पर ठीक है प्रीमप्टिव प्रायोरिटी शेड्यूलिंग प्रीमप्टिव वर्जन को डिस्कस करते हैं इसके हम प्रिंट वर्जन में क्या होगा कि प्रायोरिटी तो इसमें भी असाइन होगी ठीक है बट उस पॉइंट ऑफ टाइम पे जैसे ही अराइवल टाइम बढ़ता जाएगा और प्रोसेस आती जाएंगी जैसे ही कोई हाईएस्ट प्रायोरिटी की प्रोसेस आएगी जो करंट प्रोसेस जो कि शेड्यूल्ड है उसको हम प्रीमप्टेड ठीक है तो इसका एग्जांपल ड करते हैं ग चाट बनाते जल्दी से ठीक है समझते हैं इसको अब फटाफट इसका ग चाट बनाते हैं ठीक है य हमने ड्रा कर लिया जल्दी से अब इसका गैंड चार्ट बनाऊ मैं तो यह देखो सबसे पहले 0 प कौन सी प्रोसेस है हमारे पास हमारे पास है पव प्रोसेस ठीक है पव प्रोसेस पव प्रोसेस सबसे पहले स्केड्यूल होगी जैसे ही पव स्केड्यूल होगी एक एक सेकंड आगे बढ़ेगी न सेकंड जैसे आगे बढ़ी तो वन सेकंड आगे बढ़ते ही मेरे पास p2 भी आ गई p2 अगर रेडी क्यू में आ गई तो अब मैं देखूंगा कि इन दोनों में से प्रायोरिटी किसकी ज्यादा है ठीक है शेड्यूल तो हुई थी p1 बट प्रायोरिटी p2 की अब ज्यादा है तो एक सेकंड बाद क्या होगा अब एक सेकंड बाद ये एक ही सेकंड चलेगी और p2 शेड्यूल हो जाएगी अब जब ये एक ही सेकंड चली है तो इसका बर्स टाइम अब यहां पे हम कैंसिल करके थ्री लिख देते हैं अब p2 चलेगी एक सेकंड अभ जो वनव सेकंड ही क्यों चल रही है कोई क्वेश्चन पूछ सकता है कि वन सेकंड ही क्यों चल रही है आधा सेकंड क्यों नहीं चल रही मतलब हो सकता है ना आधे सेकंड बाद वो चेक करें अभी हमने मतलब ये अजूम किया हुआ है कि एक एक सेकंड बाद जो एल्गोरिदम हमारी चेक करती है रेडी क्यू में कि कोई और प्रोसेस आई है कि नहीं ठीक है तो ये अंपन है इंप्लीमेंटेशन बेस्ड है ये डिपेंड करता है आप कैसे इंप्लीमेंट कर रहे हो अपनी स्केड्यूल एल्गोरिथम को ठीक है तो ये डाउट अगर किसी को आता है तो ये दैट इज सॉर्ट आई गेस ठीक है तो अब हमारे प2 जैसे स्केड्यूल हुई प2 एक सेकंड चलेगी प2 जैसी एक सेकंड चली तो यहां देखो एक और प्रोसेस आ गई p3 क्या p3 की प्रायोरिटी ज्यादा है हां जी ज्यादा है p3 की प्रायोरिटी तो p3 शेड्यूल होगी ये एक सेकंड चलेगी अब एक सेकंड चलने के बाद अब इस ये एक सेकंड बची है यह भी एक सेकंड चल जाएगी जैसे ही एक सेकंड चलेगी तो p4 आ गई अब मेरी अब p4 आ गई तो अब किसकी सबसे ज्यादा प्रायोरिटी है p4 की प्रायोरिटी सबसे ज्यादा है अब p4 एग्जीक्यूट होगी अब p4 की प्रायोरिटी अब इसके बाद जो नेक्स्ट हाईएस्ट प्रायोरिटी जॉब है वो कितने सेकंड बाद आ रही है वो दो सेकंड बाद आ रही है ठीक है तो ये 2 सेकंड चला देते हैं हम इसको अब जैसे ही ये दो सेकंड चलेगी तो अब फ हो गया अराइवल टाइम अब यहां पर इस पोजीशन पर सबसे ज्यादा किसका है प्रायोरिटी अब सबसे ज्यादा प्रायोरिटी है मेरी p6 की ठीक है अब क्योंकि ये भी दो सेकंड चल चुकी है और p6 की सबसे ज्यादा प्रायोरिटी है अब p6 शेड्यूल होगी अब p6 की अब देखो हाईएस्ट प्रायोरिटी है तो ये पूरा शेड्यूल हो जाएगी ठीक है p6 पूरा स्केड्यूल हो जाएगी p6 कितने टाइम चलेगी 4 सेकंड तक तो 5 प् 4 इ 9 9 सेकंड्स तक चलेगी तो मेरी यह तो आउट हो गई p6 अब मेरे पास कौन सी सबसे हाईएस्ट बची हुई है अब मेरे पास p4 बची हुई है तो मैं वापस से p4 को स्केड्यूल कर दूंगा p4 क्योंकि सबसे हाईएस्ट है तो दो सेकंड पूरा चल जाएगी टर्मिनेशन तक इसको हटा देते हैं 9 11 सेकंड्स एक गलती कर दी हमने p4 जो है वो 2 सेकंड्स चली थी तो यहां ्र सेकंड्स बचेगा और 3 सेकंड बचेगा तो ये 12 सेकंड तक चलेगी ठीक है p4 12 सेकंड तक चली सीपीयू टाइम के अब उसके बाद p4 भी हमारी डन हो गई है ठीक है p4 डन हो चुकी है p4 डन होने के बाद हमारे पास बचती है p7 क्योंकि इसकी सबसे ज्यादा प्रायोरिटी है तो हम p7 को पूरा चला देते हैं p7 p7 कितना चलेगी 6 सेकंड्स तक ट इ 18 अब मेरे पास कौन सी सबसे ज्यादा बची है जिसकी प्रायोरिटी है हम पास p5 बची है सबसे ज्यादा प्रा ट इ 8 अब p5 चलेगी अब p5 चलेगी वो एक ही सेकंड चलेगी ठीक है 19 सेकंड अब p5 भी आउट हो गई है गेम से अब मेरे पास कौन सी बची है अब मेरे पास बची है p3 p5 चलने के बाद मैं p3 को चलाऊंगा p3 कितने टाइम चलेगी p3 2 सेकंड्स तक चलेगी 1920 21 ठीक है अब उसके बाद मेरे पास कौन सी प्रोसेस आएगी p3 भी आउट हो गई है तो अब सबसे आ पटी p2 की है p2 चलेगी वन सेकंड दैट इज 22 फिर बची मेरे पास p1 p1 चलेगी 3 सेकंड्स तो ये 25 तक अब आप देखो यार कितनी मेहनत लगी है हमें इसे सॉल्व करने में इसके अंदर कितने ज्यादा ओवरहेड है आपको खुद ही इतना मेहनत लग रही है इसको बनाने में तो जो सीपीय एल्गोरिथम होगी और जो बार-बार कांटेक्ट स्विचिंग कर रही होगी उसको एक ही जॉब को एग्जीक्यूट करने में बहुत ज्यादा कांटेक्ट स्विचिंग करनी पड़ रही है तो इस केस में इसके अंदर बहुत ज्यादा ओवरहेड है ठीक है और आप देखो धीरे-धीरे क्या होता है कि प्रोसेसेस जो है जो लोएस्ट प्रोसेस जो लोएस्ट प्रायोरिटी की प्रोसेस है वो लोएस्ट चली जाती रहती है ठीक है जो हास्ट प्रायोरिटी है उसको मौका मिलता रहता है तो लोएस्ट प्रायोरिटी की कोई इज्जत नहीं है इस गेम में ठीक है इस एल्गोरिदम में तो अगर मैं सीटी लिखना चाहूं तो सबसे पहले सीटी लिखता हूं मैं सबसे राइट टू लेफ्ट देखना शुरू करूंगा तो p1 का सीटी सबसे ज्यादा ठीक है 25 इसका 22 आएगा इसका 21 इसका 12 इसका 19 इसका ना एंड 18 p7 18 सेकंड में चली ग ठीक है अब अब अब थोड़ा सा सोचो यार कि इवन दो जो पीट जॉब थी मेरे पास जो पीट जॉब थी उसका बर्स टाइम कितना था उसका बर्स टाइम था 2 सेकंड तो आइडली एसजेएफ होता तो इसको हम पहले ही एग्जीक्यूट करके छोड़ देते ठीक है बट इस केस में क्या है इसको 22 सेकंड्स लग रहे हैं ठीक है अब 22 सेकंड लगने की वजह से क्या होगा अब इसमें भी कॉन्बॉय इफेक्ट आने लगेगा कैसे कि कोई हाईएस्ट प्रायोरिटी जॉब आए जा रही है आए जा रही है मतलब कोई ऐसी जॉब जिसका बस टाइम हाई है और वो आती जा रही है उसकी प्रायोरिटी भी हाई है तो जो लोएस्ट प्रायोरिटी की जॉब्स हैं वो नीचे नीचे शिफ्ट होती चली जाएंगी इसके केस में इवन दो लोएस्ट प्रायोरिटी का जॉब है उसका बर्स टाइम जो है 1 सेकंड टू सेकंड यानी कम भी हो कम होने के बावजूद वो वेट करती चली जाएंगी तो एवरेज वेट टाइम यहां बहुत ज्यादा बढ़ जाएगा ठीक है अब इसको अगर मैं सॉल्व करता हूं ना ये आपका होमवर्क है आप इसको पूरा सॉल्व करोगे ठीक है होमवर्क है कि आप एवरेज वेट टाइम निकालो और देखोगे कि ये सही है कि नहीं मैंने जो एवरेज वेट टाइम निकाला है वो 11.4 सेकंड निकाला है अब आप ये देखो कितना ज्यादा एवरेज वेट टाइम है इसका इसके नॉन प्रीमप्टिव वर्जन से भी ज्यादा एवरेज वेट टाइम आ रहा है इसका प्रीमप्टिव वाले का तो अब मैं बोलूं तो कन्वोय इफेक्ट की नजर से देखूं कि कन्वोय इफेक्ट इसमें है कि नहीं तो कन्वोय इफेक्ट तो है यहां पे और भयंकर कन्वोय इफेक्ट है क्यों क्योंकि हाईएस्ट प्रायोरिटी जब आती जाएगी उसका बस टाइम लो हाई जाता जा रहा है ठीक है और जो लोएस्ट प्रायोरिटी की जॉब्स थी वो नीचे शिफ्ट होती जा रही है उनको मौका ही नहीं मिल रहा ठीक है तो यह सबसे ज्यादा प्रॉब्लमैटिक चीज है इसके अंदर कन्वोय इफेक्ट अब इसमें एक और कन्वो इफेक्ट का ना एक्सट्रीम भी होता है कन्वो इफेक्ट का एक्सट्रीम जिसको मैं इनफिट ब्लॉकिंग कहता हूं ठीक है तो इसकी सबसे बड़ी ड्रॉ बैक जो आपसे पूछी जा सकती है दिमाग में रखना इसको बिगेस्ट ड्रॉ बैक और यह दोनों इसके नॉन प्रीमप्टिव में भी है और प्रीमप्टिव में भी है ठीक है नॉन प्रीमप्टिव प्रीमप्टिव दोनों के अंदर क्या है वो है इनफिट वेटिंग इसको मैं एक्सट्रीम स्टार्वेशन भी बोल सकता हूं अब इसका क्या मतलब है इनफिट वेटिंग का मतलब है कि अब एज्यूम करो कि यह आपकी रेडी क्यू थी ठीक है आपकी p1 जॉब आई प2 जॉब आई ये थोड़ा थोड़ा शेड्यूल होना शुरू होंगी अब p3 p4 p5 जॉब आई अब इनकी ना हाईएस्ट प्रायोरिटी कर रखी है आपने यानी कि इसकी प्रायोरिटी आपने दे दी अगर मैं नंबर में देना चाहू 100 इसकी 102 अब यही आपस में शेड्यूल होती रहेंगी ठीक है जो हाईएस्ट प्र अभी मान लो यह भी एग्जीक्यूट हो गई यह आउट हो गई यह टर्बिनेट हो गई टिनेट हो गई तो आपने p6 कोई जॉब लिया है उसकी और ज्यादा प्रायोरिटी रख दी 200 मतलब ये नंबर्स मैं ऐसे ही ले रहा हूं ब समझ जाओ कि प्रायोरिटी बढ़ती जा रही है अब जो लोएस्ट प्रायोरिटी की जॉब्स थी ना ये जो बेचारी मान लो इसकी वन प्रायोरिटी थी इसकी टू अभी है ना हमेशा के लिए ब्लॉक हो गई क्योंकि सिस्टम आपका चले जा रहा है आपने सिस्टम ऑन किया वो सदियों तक मान लो ऑन आपका सिस्टम और आपकी प्रायोरिटी की जो हास्ट प्रायोरिटी की जॉब आए जा रही है आए जा रही है जो सबसे पहले लोएस्ट प्रायोरिटी की जॉब आई थी वो बेसिकली इनफिट वेट में चली जाएंगी उनको कभी भी सीपीयू नहीं मिलेगा इनको बचार हों को कभी भी सीपीयू नहीं मिलेगा इसको मैं बोल रहा हूं इनफिट वेटिंग इसकी जो इनफिट वेटिंग है इसका एक एक्सट्रीम एग्जांपल बताता हूं एक रूमर है पता नहीं ये सच है कि नहीं इवन बुक्स में भी ऐसे ही लिखा हुआ है कि रूमर है वी डोंट नो तो ये क्या रूमर है वो रूमर यह है कि आईबीएम 7094 बेसिकली ये आपका सिस्टम होगा एमआईटी [संगीत] में इसको ऑन किया होगा सिस्टम को ऑन किया था 1967 में और इसमें कुछ जॉब सबमिट करी थी इसमें कुछ जॉब सबमिट करी थी और वो जो जॉब सबमिट करी ना तो उसके अंदर काफी सारी जॉब सबमिट हुई होंगी p1 प2 पथ ऐसे करके तो जो लोएस्ट प्रायोरिटी की जॉब थी ना वो इस शेड्यूल एल्गोरिथम के चक्कर में इसके इतने बड़े ड्र बैक के चक्कर में जो लोएस्ट पटी की जॉब है व सालों साल तक रेडी क्यू में पड़ी ही रही उनको कभी भी सीपीयू नहीं मिला इन्होंने कब चेक किया 1973 में चेक किया 1973 में जब चेक किया तो जो लोएस्ट प्रायोरिटी की जॉब थी बहुत सारी जॉब पड़ी होंगी लोएस्ट प्रायरिटीज की वह इतने सालों तक ठीक है इतने सालों तक वह रेडी क्यू में पड़ी ही रही तो देख रहे एक्सट्रीम एग्जांपल है इनफिट वेटिंग का ठीक है तो अब कितना बड़ी सोच के देखो तो इस प्रॉब्लम को सॉल्व करने के लिए एक तरीका यूज किया गया देखो एल्गोरिथम तो अच्छी है क्योंकि अभी जो हम बेसिकली जब पढ़ रहे थे टाइप्स ऑफ ऑपरेटिंग सिस्टम तो उसमें हमारा एक क्राइटेरिया य भी था कि कोई हास्ट प्र की जब तो उसको पहले एक्यूट करें ठीक जैसे एंटीवायरस वाला एग्जांपल था तो यह प्रॉब्लम तो है बहुत बड़ी बट इसका एक सलूशन भी है ठीक है सलूशन टू इनफिट वेटिंग क्या सॉल्यूशन है इसका सलूशन है एजिंग अब एजिंग क्या है एजिंग के क्राइटेरिया एक्स्ट्रा ऐड कर दिया हमने हम क्या करते हैं कि ग्रेजुएटी को ऑफ लोएस्ट प्रायरिटी जॉब इसका एग्जांपल जैसे इस केस में हमने जो आईबीएम वाला एग्जांपल था उसमें देखा कि लोएस्ट प्र जो पढ़ी रही एजिंग अगर मेथड यूज कर रहा होता तो मैं क्या करता कि हर 15 सेकंड में यह जो टाइम बोल रहा हूं मैं यह आप कस्टमाइजेबल है हर 15 सेकंड में मैं जो लोएस्ट प्रायोरिटी की जॉब है प्रायरिटीज की जो जॉब्स हैं उनकी जो प्रायोरिटी है उनकी जो प्रायोरिटी है वो मैं प्लस वन करता जाऊंगा हर 15 सेकंड में प्लस वन हर 15 सेकंड में प्लस वन तो जो लोएस्ट प्रायोरिटी की जॉब होगी उनकी प्रायोरिटी धीरे-धीरे धीरे-धीरे धीरे-धीरे बढ़ जाएंगी तो आफ्टर सम टाइम उनको मौका मिलेगा ही मिलेगा ठीक है क्योंकि कोई हास्ट प्रर्ट की जब आ भी गई तो कितनी हाई होगी जो सबसे ज्यादा एज प्रोसेस है उसकी प्रायोरिटी बढ़ चुकी होगी तब तक बहुत ज्यादा तो एजिंग एक तरीका है जिसको मैं यूज करता हूं इनफिट वेटिंग को बचाने के लिए उस इस ड्रॉबैक को ओवरकम करने के लिए मैं इसका यूज करता हूं ठीक है तो हमने पढ़ा कि प्रायरिटी स्केड्यूल एल्गोरिथम क्या होती है इंपोर्टेंट अच्छी एल्गोरिथम है बट इसमें जो सबसे बड़ी ड्रॉबैक है वो हमारा इनफिट वेटिंग है ठीक है इसको कैसे सॉल्व कर रहे हैं हम एजिंग के थ्रू सॉल्व कर रहे हैं ठीक है तो चलो तो इनफिट वेटिंग के बारे में हम पढ़ लिया तो अगर एक क्वेश्चन पूछूं कि क्या इसमें कन्वो इफेक्ट है हां जी बिल्कुल है इनफिट वेटिंग जो है कन्वो इफेक्ट का ही तो एक बड़ी मतलब मैं बोल सकता हूं एक्सट्रीम वर्जन है कि जो सबसे हाईएस्ट प्रायोरिटी जॉब है उसको ही टाइम मिले जा रहा है जो लोएस्ट प्रायरिटी जॉब इवन दो हो सकता है उसकी बस टाइम कम हो उसको मौका नहीं मिल रहा तो उसका वेटिंग टाइम एवरेज वेटिंग टाइम पूरी रेडी क्यू का बढ़ता चला जा रहा है तो यह एक्स्ट्रीम कनव इफेक्ट इसके अंदर है ठीक है अब हम चलते हैं हमारी अगली एल्गोरिथम पे तो अब हम आ जाते हैं हमारे नेक्स्ट एल्गोरिथम प जिसका नाम है राउंड रबिन ठीक है आर आर अ इसको राउंड रोबिन क्यों कहते हैं जो अभी करंट रेडी क्यू है इसके अंदर य सारी प्रोसेसेस को ना इक्वल मौका देती है ठीक है मतलब हर प्रोसेस को सीपीयू एटलीस्ट मिल जाएगा जल्दी से जल्दी ठीक है तो वेट टाइम इसमें ना कम होता है काफी ठीक है तो मैं बोल सकता हूं कि एल्गोरिदम के अंदर स्टार्वेशन सबसे कम होती है लोएस्ट स्टार्वेशन होती है क्योंकि थोड़ी देर बाद ही दूसरी प्रोसेस का नंबर लग ही जाना है ठीक है तो और अब क्योंकि स्टार्वेशन कम है तो कन्वो इफेक्ट भी इसके अंदर नहीं है ठीक है और ये सबसे पॉपुलर एल्गोरिथम होती है ठीक है इसको मोस्ट पॉपुलर एल्गोरिथम है इसको डिफरेंट लेवल्स ऑफ ऑपरेटिंग सिस्टम में आज भी यूज किया जाता है उसके अलावा इसको मैं बोलता हूं य एफसीएफएस का ना प्रीमप्टिव वर्जन है ठीक है इसके अंदर कोई प्रायोरिटी जैसा कोई क्राइटेरिया नहीं होता जो इसका क्राइटेरिया है वह आपका होता है अराइवल टाइम प्लस टाइम क्वांटम ठीक है और ये तो बीटी पर डिपेंड नहीं करती तो जो एसजेएफ का सबसे बेसिकली बोल सकता हूं मैं सबसे प्रॉब्लमैटिक एरिया था ना कि बर्स टाइम निकालना पड़ेगा तब जाके स्केड्यूल होगी बर्स टाइम निकालना आईडियली पॉसिबल थोड़ा सा नहीं ही है ठीक है तो वो इसके अंदर नहीं होता इसके अंदर बस ए और टी टाइम क्वांटम का यूज करते हैं अब यहां पे टाइम क्वांटम वर्ड आ गया तो अब मैं बात करता हूं कि यह डिजाइन जो है ना ये डिजाइन जो की गई है ये टाइम शेयरिंग सिस्टम के लिए करी गई है टाइम शेयरिंग सिस्टम के लिए करी गई है ठीक है तो टाइम शेयरिंग हमने पढ़ा था कि टाइम शेयरिंग के अंदर बेसिकली हम एक पर्टिकुलर टाइम क्वांटम के बाद किसी भी प्रोसेस को प्रीमप्टिव t क्यू एक सिंपल बेसिकली क्राइटेरिया है इसका तो इसको इंप्लीमेंट करना भी ना काफी आसान है ठीक है ये इजी टू इंप्लीमेंट है इजी टू इंप्लीमेंट है इजी टू इंप्लीमेंट क्यों है ये अभी जब हम डायग्राम बनाएंगे तो उसमें बात करेंगे ठीक है और टाइम शेयरिंग सिस्टम के लिए बनी है तो टाइम शेयरिंग हमने पढ़ा था टाइम शेयरिंग कहां पे यूज होते है मल्टीटास्किंग ओस के अंदर तो मल्टीटास्किंग ओ के अंदर ये मोस्ट पॉपुलर है यूज होती है ठीक है तो अब मैं इसके डायग्राम पर चलता हूं सीधा ठीक है डायग्राम नोट्स में बना दिया है नोट्स मेंही देखते हैं सीधा अब यार आप ध्यान से देखो हम क्या करने की कोशिश कर रहे हैं हमारे पास एक रेडी क्यू है ठीक है अब इस रेडी क्यू में बहुत सारी प्रोसेसेस है अराइवल टाइम जैसे जैसे बढ़ता जाएगा प्रोसेसेस आती जाएंगी तो मैं कोई एक पिक करूंगा एफसीएफएस मेथड से यानी कि जो भी इसका भी ए सबसे पहले जीरो होगा ठीक है लोएस्ट होगा उसको मैं उठा लूंगा और मैं चेक करूंगा कि क्या उस प्रोसेस का बर्स टाइम जो है वो टाइम क्वांटम से कम है ठीक है टाइम क्वांटम से कम है अब टाइम क्वांटम कैसे पता लगता है टाइम क्वांटम जो है हम डिसाइड करते हैं बेसिकली ओस का जो डिजाइन है डेवलपर है वो बता रहा है कितना टाइम क्वांटम होगा तो अगर टाइम क्वांटम ज्यादा हुआ बर्स टाइम से यानी कि प्रोसेस जो है वो विदन दैट टाइम क्वांटम एग्जीक्यूट हो सकती है तो उस केस में हम एग्जीक्यूट कर देंगे और प्रोसेस टर्मिनेट कर जाएगी ठीक है टर्मिनेट कर जाएगी और अगर टाइम क्वांटम ज्यादा हुआ बस टाइम से यानी बस टाइम कम है तो उस केस में क्या होगा मैं उसको टाइम क्वांटम जितना एग्जीक्यूट कराऊंगा और जैसे ही टाइम क्वांटम एक्सपायर होगा मैं वापस से उसको प्रींटमेकर का जो बर्स टाइम टू ही बचा हुआ था तो दो सेकंड एग्जीक्यूट करके वो यहां से सीधा टर्मिनेट स्टेट प चली जाएगी तो अब देखो कितना सिंपल डायग्राम है मुझे बस क्या करना है मुझे टाइम क्वांटम के लिए एग्जीक्यूट करना है ठीक है बर्स टाइम मुझे पता हो ना पता हो उससे फर्क नहीं पड़ता क्योंकि उस टाइम हो सकता है बर्स टाइम बाद में थोड़ा सा बढ़ भी जाए थोड़ा सा बढ़ भी गया अगर किसी प्रोसेस का बर्स टाइम बर्स टाइम बढ़ गया मतलब कि हमने एस्टिमेशन थोड़ी सी गलती करी थी पहली बात तो इसमें एस्टिमेशन हो ही नहीं रही है ठीक है जैसे-जैसे प्रोसेस आ रही है वो टाइम क्वांटम के हिसाब से एग्जीक्यूट होती जा रही है ठीक है तो अगर मैं बोल रहा हूं कि बर्स टाइम अगर कम है यानी कि बर्स टाइम कम होने का मतलब क्या है बस टाइम तो एस्टिमेशन तो इसमें क ही नहीं है रियल लाइफ में यानी कि प्रैक्टिकली क्या हो रहा होगा वो दो सेकंड के लिए एग्जीक्यूट हो रही होगी फिर वो चेक करे क्या टर्मिनेट हुई अगर टर्मिनेट नहीं हुई तो मैं वापस से रेडी क्यू में डाल दूंगा अगर टर्मिनेट हो गई तो मैं टर्मिनेशन स्टेट प डाल दूंगा ठीक है इस तरीके से चीज चल रही है यहां पे तो ये इजी टू इंप्लीमेंट है ठीक है तो अब इसका भी एक क्वेश्चन सॉल्व करके देखते हैं ठीक है और क्वेश्चन सॉल्व करेंगे तो एक चीज नोटिस करना है इसमें कि इसके अंदर ओवरहेड कितने हैं है कि नहीं तो है तो कितने हैं इस चीज को आप नोटिस करना ठीक है तो चलो एक क्वेश्चन सॉल्व करके देखते हैं इसका जल्दी से ड्र करता हूं ठीक है अब ये मेरे पास क्वेश्चन हुआ अब मैं इसको सॉल्व करने की कोशिश करता हूं सिंपल इसका ग चार्ट बनाते हैं ठीक है अब देखो अब सबसे पहले क्या होगा कि मेरा क्राइटेरिया क्या था इसके अंदर अराइवल टाइम और टाइम क्वांटम ठीक है तो सबसे पहले जीरो अराइवल टाइम किसका है p1 प्रोसेस का तो सबसे पहले कौन सी एग्जीक्यूट होगी p1 p1 कितने टाइम के लिए एग्जीक्यूट होगी बस टाइम इसका कितना लिखा हुआ है 4 सेकंड बट अभी हम टाइम क्वांटम एज्यूम करते हैं t क मैं एज्यूम कर लेता हूं इसमें 2 सेकंड्स का 2 सेकंड का टाइम कांट अजूम करूंगा तो p1 कितना टाइम चलेगी पहले p1 चलेगी 2 सेकंड्स 2 सेकंड चलेगी p1 अब जिस पॉइंट पे p1 2 सेकंड चल चुकी होगी ठीक है एक मैं q और बना लेता हूं यहां पे p1 सबसे पहले आई थी q में ठीक है उसके बाद जैसे ही दो सेकंड हुए तो 2 सेकंड होने के बाद कौन-कौन सी जॉब q में आ चुकी होंगी p2 आ चुकी होगी और p3 आ चुकी होगी राइट p2 p3 आ चुकी होगी अब ये जैसे दो सेकंड चल रहा था तो क्या 2 सेकंड बाद ये प्रोसेस टर्मिनेट शीट पे चली गई क्या p1 टर्मिनेट शीट पे चली गई नहीं p1 टर्मिनेट शीट पे नहीं गई है तो वापस से p1 को प्रीम कर दूंगा प्रीम करने के बाद वापस से क में डाल दूंगा अभी जितना टाइम हुआ अब मेरे पास कौन सी जॉब पड़ी है क्य में अब मैं उठा के प2 को शेड्यूल करूंगा प2 यहां से प2 उठाई मैंने प2 को शेड्यूल किया दो सेकंड प2 को चलाते हैं प2 जब दो सेकंड चलेगी उससे पहले देखते हैं पव के अंदर यहां पर 2 सेकंड बचा था ठीक है क् दो सेकंड चल चुकी है पव अब प2 जो है वो भी दो सेकंड चलेगी दो सेकंड चलेगी ठीक है दो सेकंड से चलने के बाद क्या होगा यह आपकी चार सेकंड यहां पर मैं गन चार्ट पर लिख देता हूं अब जब चार सेकंड हुए तो कौन-कौन सी प्रोसेसेस जो है वो आ चुकी है क्यू में क्यू में आ चुकी है यहां से ऊपर सारी प्रोसेस आ गई यानी कि मेरे पास प फ आ गई है और p5 आ चुकी है p3 तो पहले से ही उसके अंदर पड़ी हुई है राइट अब जब दो सेकंड चला दो सेकंड चलने के बाद ी सेकंड हमने इसका वस्ट टाइम कर दिया है अब जो है प2 प्रीम हो जाएगी ठीक है अब प2 प्रीम हो जाएगी इसको मैं p2 कर देता हूं यहां पर p2 प्रीम हो गई p2 प्रीम होने के बाद अब मेरे पास कौन सी नेक्स्ट प्रोसेस है हमारे पास q में p3 p3 को उठा के मैं स्केड्यूल कर देता हूं ठीक है p3 को स्केड्यूल करूंगा p3 कितना टाइम चलेगी p3 फिर से दो सेकंड चलेगी अब p3 जब दो सेकंड चलेगी तो इसका जीरो हो जाएगा यानी कि ये टर्मिनेट शीट प चली जाएगी p3 पूरी टर्मिनेट हो जाएगी ठीक है तो 6 सेकंड में p3 टर्मिनेट हो गई p3 टर्मिनेट होने के बाद जब p3 टर्मिनेट हुई तो सिक्स सेकंड हो गए मेरे पास लास्ट प्रोसेस जो कि p6 है वो भी रेडी में आ चुकी होगी ठीक है अब उसके बाद कौन सी प्रोसेस होगी स्केड्यूल p1 यहां से मैं p1 को पिक कर लेता हूं p1 को पिक कर लेता हूं p1 जो है 2 सेकंड चलेगी इसमें ट सेकंड बचे हुए थे इसके ठीक है तो यह भी एग्जिट हो गई है ये भी एग्जिट हो गई है p1 एग्जिट हो जाएगी 8 सेकंड्स हो जाएगा अब जब p1 एग्जिट हुई 8 सेकंड हो चुके हैं तो कोई और क्या प्रोसेस आई है कोई और प्रोसेस अराइवल टाइम लास्ट अराइवल टाइम सिक्स है तो कोई और प्रोसेस अभी नहीं आई है राइट अब उसके बाद कौन सी प्रोसेस उठेगी अब प्रोसेस उठेगी मेरी p4 p4 को मैं स्केड्यूल कर देता हूं p4 कितना टाइम चलेगी p4 2 सेकंड तक चलने की कोशिश करेगी बट 2 सेकंड चलने से पहले उसका बर्स टाइम जो है जीरो हो जाएगा तो इस केस में ये भी एग्जिट कर जाएगी ठीक है 9 सेकंड्स अब मैं कौन सी प्रोसेस उठाऊंगा अब मैं उठाऊंगा p5 प्रोसेस अब p5 प्रोसेस जब उठाऊंगा तो p5 कितना टाइम चलेगी p5 ऐसे 2 सेकंड्स चलेगी 2 सेकंड चलेगी तो यहां कितना बच जाएगा 4 सेकंड्स यहां पर 2 सेकंड्स 11 हो जाएगा और p5 वापस से प्रीम हो जाएगी ठीक है अब आ जाएगी प2 की बारी अब p5 प2 आएगी प2 कितना टाइम चलेगी प2 2 सेकंड चलेगी य न सेकंड बच जाएंगे या 11 12 13 ठीक है अब प2 13 सेकंड तक चली तो प2 वापस से प्रीम हो जाएगी p5 के बाद वापस से प2 आ जाएगी ठीक है अब मेरे पास कौन सी प्रोसेस आई यहां पर p6 p6 प्रोसेस आई p6 को मैं चला देता हूं p6 कितना टाइम चलेगा बड़ा बोरिंग है यार इसको करना पट सेकंड य पर न सेकंड बचे 13 14 15 ठीक है p6 वापस से प्रीम होगी प2 के बा वापस प लाइन में लग गई अब उसके बाद प होगी स्केड प उठाया मैंने प उठाऊंगा तो यह कितना टाइम चलेगी प फट सेकंड चलेगी 15 16 17 प वापस से चली गई के अंदर ठीक है अब कौन सी स्केड्यूल होगी अब पट स्केड्यूल होगी पट उठाया मैंने 18 सेकंड तक चले ग है क क्योंकि एक सेकंड बचा था राइट p2 अब उसके बाद कौन सी प्रोसेस आएगी p2 एग्जिट कर गई p6 प्रोसेस आएगी p6 कितना टाइम चलेगी ये न सेकंड चलेगी 19 अब फिर मेरे पास लास्ट p5 बची है p5 को मैं पूरा रन कर देता हूं क्योंकि यह बची ही नहीं है कोई और प्रोसेस इसके अलावा अब ये 21 सेकंड था बड़ी मेहनत लगी तो इसके अंदर अब आप ये देखो कि गट चान बनाने में कितनी मेहनत लग रही है क्योंकि हर टी क्य टाइम क्वांटम के बाद मैं चेक कर रहा हूं कि क्या मैं उसको प्रीम करूं कि ना करूं करूं कि ना करूं अब इस केस में क्या होगा ओवरहेड्स बढ़ जाएंगे यानी जो कांटेक्ट स्विचिंग है ना राउंड ड्रॉप एल्गोरिथम के अंदर बहुत ज्यादा होती है देखो लद हमने स्टार्वेशन तो कंपलीटली रिमूव कर दी है ठीक है स्टार्वेशन हमने रिमूव कर दी है कन्वोय इफेक्ट हमने रिमूव कर दिया बट इस वजह से क्या प्रॉब्लम आई है कि हमें ओवरहेड्स बढ़ चुके हैं ठीक है तो यार वही बात है कि हमें बैलेंस चाहिए होता है दोनों का ठीक है हम चाहते हैं कन्वो इफेक्ट भी कम से कम हो और बेसिकली ओवरहेड भी कम से कम हो इस टाइप का कुछ चाहते हैं अब हमने इस केस में कन्वोय इफेक्ट को जीरो करने की कोशिश करी बट हुआ क्या ओवरहेड्स बढ़ गए ठीक है इस इसमें एक और सबसे बड़ी प्रॉब्लम क्या है अब यहां पर तो टाइम क्वांटम जो है टी क जो है मैंने कितना रखा हुआ था ू सेकंड्स अगर मैं टी क जो है न सेकंड कर दूं अब वन सेकंड करूंगा ना और ज्यादा कांटेक्ट स्विचिंग होगी तो ये क्वेश्चन बन सकता है कि जो ओवरहेड्स है वो एक आरआर एल्गोरिथम में कौन डिटरमाइंड करता है वो कौन डिटरमाइंड करता है वो डिटरमाइंड करता है हमारा टाइम क्वांटम टाइम क्वांटम अग ज्यादा होगा तो ओवरहेड्स कम होंगे ठीक है टाइम क्वांटम अगर कम होगा तो ओवरहेड्स ज्यादा होंगे ठीक है तो इस तरीके से हमारी राउंड रो में एल्गोरिथम वर्क करती है तो ये थी हमारी सिंपल एल्गोरिथम लास्ट एल्गोरिथम इसके नेक्स्ट लेक्चर में हम डिस्कस करेंगे मल्टी लेवल क्यू शेड्यूलिंग मल्टी लेवल फीडबैक क्यू शेड्यूलिंग वो थोड़ी और ज्यादा कॉम्लेक्स है ये अब तक जो थी इनकी इंप्लीमेंटेशन में सिंपल थी और जो नेक्स्ट लेक्चर में डिस्कस करेंगे हम वो मोर क्लोज टू है कि रियल वर्ल्ड में जो ओस आपके ओस के अंदर जो सीपीय स्केड इंस्टॉल होती है बेसिकली इंप्लीमेंटेड होती है उसके बट लेक्चर खत्म करने से पहले हर बार की तरह हम एक बार नोट्स प नजर डाल लेते हैं ठीक है नोट्स पे मैंने कोशिश करी है कि मोस्टली इंफॉर्मेशन जो है जो भी रिलेटेड है इन एल्गोरिथम से और जो प्रेसा इज इंफॉर्मेशन वो पुट कर पाऊं मैं इसमें शॉर्ट जॉब में हमने नॉन प्रीमप्टिव के बारे में बात करी ठीक है इसका क्या क्राइटेरिया होता है ए प् बीटी क्या प्रॉब्लम होती है इंपॉसिबल टास्क क्या है हमारा बीटी निकालना ठीक है उसके बाद प्रीमप्टिव वर्जन में प्रीमप्टिव वर्जन में हम बात करें इसमें कोई कनवा इफेक्ट नहीं था ठीक है उसके अलावा फिर हमाने बात करी प्राइट शेड्यूलिंग की प्राइट शेड्यूलिंग प्रीमप्टिव नॉन प्रीमप्टिव इसके अंदर जो हमने सबसे जो हमने बेसिकली हाइट्स ऑफ कन्वोय इफेक्ट देखी इनफिट वेटिंग एक्सट्रीम स्टार्वेशन इसका सलूशन हमारा एजिंग था राउंड रोब एल्गोरिथम देखिए हमने ये एफसीएफएस जै एफसीएफ का प्रीम वर्जन टाइप्स है टाइम क्वांटम यूज होता है इसके अंदर टाइम शेरिंग सिस्टम में यूज होता है यह आपके इसका एक डायग्राम हो गया उसके अलावा मैं आपको पर्सनली सजेस्ट करूंगा कि आप इन एल्गोरिथम्स को ना इंप्लीमेंट करो इंप्लीमेंट करो इसका मतलब अभी आप क्या कर रहे हो अभी आप लव भैया का डीएसए का कोर्स देख ही रहे हो ठीक है वो बता रहे होंगे डिफरेंट डाटा स्ट्रक्चर्स जिनसे सो एंड सो प्रॉब्लम्स सॉल्व होती हैं तो वो सारे डाटा स्ट्रक्चर्स का यूज करके आप इस स्केड्यूल एल्गोरिथम को सॉल्व करने की कोशिश करो कैसे कर सकते हो आप सिंपली जो हम क्वेश्चन कर रहे थे यहां पे गैंड चार्ट बना रहे थे ऐसे ही इसी को एज प्रॉब्लम स्टेटमेंट लेके इसको कोड करो कोड करके इन एल्गोरिथम्स को सिम्युलेट करने की कोशिश करो जैसे एग्जांपल दूं मैं तो जो शॉर्टेज जॉब फर्स्ट जो है शॉर्टेज जॉब फर्स्ट को कैसे इंप्लीमेंट करोगे एक मिन हिप से कर सकते हो इंप्लीमेंट ठीक है उसके अंदर बेसिकली सारी प्रोसेसेस को डालते जाओगे जो जो आती जाएगी मिन हिप जो है सबसे लोएस्ट बीटी की जो प्रोसेस होगी उसको सबसे ऊपर रखेगा मान लो p3 सबसे लोएस्ट बीटी रहेगी उस पॉइंट ऑफ टाइम में व सबसे ऊपर रहेगा तो मिन हीप जो डाटा स्ट्रक्चर है वो यूज हो सकता है एसजीएफ के अंदर सिमिलरली आप ये देखो कि राउंड ड्रॉप में कौन सा डेटा यूज हो सता है प्रायोरिटी स्केड्यूल में प्रायोरिटी क्यों यूज हो सकती है ठीक है तो इनको इंप्लीमेंट करो ये आपका होमवर्क है पर्सनली आपको बहुत मजा आएगा मैंने अपने टाइम पे इंप्लीमेंट करी थी मुझे काफी अच्छा लगा था इंप्लीमेंट करके एंड तो मिलते हैं नेक्स्ट लेक्चर में ठीक है ओके बाय हेलो जी कैसे हो सारे दिस इज लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 14 पर और आज हम डिस्कस करने वाले हैं कुछ रियल लाइफ इंप्लीमेंटेशन वाले शेड्यूलिंग एल्गोरिथम्स ठीक है अब तक जो हमने डिस्कस किया था जैसे कि एसजेएफ हो गई हमारी एफसीएफएस हो गई आरआर एल्गोरिथम हो गई ये सारी एल्गोरिथम जो थी ये सिंपल सिंपल एल्गोरिथम थी ठीक है बट जो आजकल यूज हो रहा है जो कि ओस में एक्चुअली इंप्लीमेंट होती है वो डायरेक्टली इनको नहीं इंप्लीमेंट कर देते हम सीधा ही आर आर आपकी उठाकर इंप्लीमेंट कर द कुछ अलग तरीके से ऑप्टिमाइज वे में इनको इंप्लीमेंट किया जाता है उसको आगे स्टडी करते हैं ठीक है तो सबसे पहले इसमें आता है हमारा मल्टी लेवल मल्टीलेवल क्यू शेड्यूलिंग इसको मैं शॉर्ट में एमएल क बोल देता हूं ठीक है अब देखो हम क्या करते हैं हमें पता है हमारे सिस्टम में ना कुछ तीन टाइप की प्रोसेसेस होती है तीन टाइप की प्रोसेसस होती है पहली सिस्टम प्रोसेसेस ठीक है जो कि क्रिएटेड्रॉअर्नेविगेटर के लिए जो इंपोर्टेंट प्रोसेसेस है उनको मैं सिस्टम प्रोसेस बोल रहा हूं सेकंड होती है हमारी इंटरेक्ट प्रोसेसेस इंटरेक्ट प्रोसेसेस कौन सी होती है वो जो कि यूजर की इनपुट चाहिए होती है जिन प्रोसेसस को ठीक है इनको यूजर इनपुट चाहिए होती है जैसे मैं बताऊं अगर आप माइक्रोसॉफ्ट वड यूज कर रहे हो ठीक है तो उसमें अगर आप बेसिकली आपको वेट कर रहा होता है आईओ के लिए राइट तो इसमें आईओ की रिक्वायरमेंट होती है यूजर की इनपुट का वेट करती रहती है व इस टाइप की प्रोसेसस इसको मैं फोर ग्राउंड प्रोसेस भी बोलता हूं ठीक है फोर ग्राउंड क्यों बोल रहा हूं मैं क्योंकि फ्रंट में बेसिकली यूजर स्पेस में सबसे आगे आपको दिखाई दे रही होती है जीय आई प सबसे आगे आपको दिखाई दे रही होती है ठीक है इसलिए मैं इनको इंटरेक्ट प्रोसेस बोलता हूं यूजर इनपुट इसमें रिक्वायर्ड होती है तीसरी प्रोसेस जो है वो मेरी है बैच प्रोसेस इसको मैं बैकग्राउंड प्रोसेस भी बोलता हूं ठीक है बैकग्राउंड यह बेसिकली बैकग्राउंड में चलती रहती है इसके अंदर कोई यूजर इनपुट नहीं चाहिए होती मुझे ठीक है नो यूजर इनपुट नो यूजर इनपुट है तो यह बैकग्राउंड में चलती रहती जैसे हमने लास्ट लेक्चर में ज रफन प्रोसेस और जॉम्बी प्रोसेस बना रहे थे तो एक चीज हमने देखी थी कि हम स्लीप वन लिख के स्लीप 100 लिख के एंड में एम परट लगा देते थे तो टर्मिनल पे नक् सिस्टम में एम परट लगाने के बाद क्या होता है वो बैकग्राउंड में चलती है प्रोसेस ठीक है वहां पर कोई इनपुट नहीं चाहिए उसको बैकग्राउंड में चलती है और शांति से आपको नजर भी नहीं आएगी सामने ठीक है इस टाइप की प्रोसेस होती है तो अभी हमने क्या किया हमारे पास अब तक जो हम पढ़ रहे थे पिछले एल्गोरिथम्स में हम सीधा प्रोसेस पढ़ रहे थे p1 p2 p3 इस टाइप की प्रोसेस अब हमने क्या करा प्रोसेस को डिवाइड कर दिया ठीक है नेचर के हिसाब से ये तीन टाइप की नेचर की प्रोसेस होती है हमारे पास सिस्टम प्रोसेस ओ की इंटरेक्ट प्रोसेस फोरग्राउंड प्रोसेस जिसको मैं बोल रहा हूं दूसरा बैच प्रोसेस ठीक है तो ये मेरी तीन टाइप की प्रोसेसेस होती हैं अब मैंने क्या किया इन तीन टाइप के प्रोसेसेस को इन तीन टाइप के प्रोसेसेस के लिए तीन अलग-अलग रेडी क्यू बना दी यानी कि जो मेरी एक रेडी क्यू जिसको मैं बोल रहा था अब तक रेडि क्यू रेडिक हम जिस परे डिस्कशन कर रहे थे उस रेडी क्यू को मैंने थ्री लॉजिकल डिविजंस कर दिए उस रेडी क्यू के बेस्ड ऑन द नेचर ऑफ प्रोसेस ठीक है अगर इसका एग्जांपल देखूं तो नोट्स में डायरेक्टली बनाया हुआ है हमने ये देखो ठीक है कुछ ऐसा है ये एक मेरी रेडी क्यू होगी एसपी क्य जिसको मैं सिस्टम प्रोसेस क्यू बोल रहा हूं आपकी आईपी क्यू इंटरेक्ट प्रोसेस क्य बैच क्यू ठीक है और इसकी प्रायोरिटी कुछ इस हिसाब से सेट की हुई है कि जो सिस्टम क्यू है उसकी प्रायोरिटी सबसे ज्यादा होगी यानी कि सिस्टम क्यू जो है उसके अंदर जो प्रोसेसेस होंगी उनकी सबसे ज्यादा प्रायोरिटी होगी ठीक है उसके बाद आपकी इंटरेक्ट आती है फिर आपकी बैच प्रोसेस आती है और सिस्टम एसपी जो क्य है उसकी सबसे ज्यादा प्रायरिटी क्यों होगी क्योंकि वो सिस्टम प्रोसेस है ठीक है अब आप ओस की प्रोसेस कोही प्रायोरिटी नहीं दोगे तो ओस ढंग से काम कैसे करेगा ठीक है यह सिंपल लॉजिक है इसमें इंटरेक्ट प्रोसेस उसके बाद यूजर प्रोसेसेस हमने डाल दी इसमें उसके बास बैच प्रोसेस बैकग्राउंड ये बैकग्राउंड में चल रही है ठीक है इससे हो सकती है कुछ इंपोर्टेंट प्रोसेस भी हो ये इसको हमने इसमें सबसे नीचे रखा हुआ है ठीक लोएस्ट इसकी प्रायोरिटी है और अब मैं इसमें क्या करूंगा जो यह तीन क्यूज मैंने बना दिए एसपी क्यू आईपी क्यू तीसरा बैज प्रोसेस क्य य जो तीन प्रोसेस हमने बना दी है इनकी ना सेपरेट खुद की अलग अलग शेड्यूलिंग एल्गोरिदम होगी ठीक है जो हमने अभी इतनी सारी एरिम पढ़ी है उनमें से कोई एक होगी जैसे मैं एक एम एल ले लेता हूं कि ए हमने ए हमारी हो गई मान लो इसको मैं राउंड रोबिन से कर रहा हूं इसको भी मैं राउंड रोबिन से कर रहा हूं और बीपी में मैंने एफसीएफएस लगा दिया ठीक है यह मेरा एक एग्जांपल हो सकता है चलिए अब ये चीजें वर्क कैसे करती है कोई भी प्रोसेस मान लो आई हमारे पास ठीक है एक एग्जांपल लेते हैं इधर कोई भी प्रोसेस मेरी आई p1 प2 ऐसे बहुत सारी प्रोसेस आ रही है तो मैं क्या करूंगा बेस्ड ऑन द नेचर ऑफ दैट प्रोसेस नेचर के बेस पे ठीक है उसकी मेमोरी साइज कितना रिक्वायर करेगी उसकी प्रायोरिटी क्या है उस हिसाब से मैं किसी एक क्य में उस प्रोसेस को डाल दूंगा ठीक है यानी कि कोई मान लो पव प्रोसेस आई मेरे पास पव प्रोसेस आई तो इनमें से किसी एक क्यू में वो चली जाएगी ठीक है और परमानेंटली वो उसी क्यू में रहेगी वो ठीक है एक बार उस क्यू में चली गई तो उसी क्यू में रहेगी वो क सिस्टम प्रोसेस है मैं उसको सिस्टम एसपी क्यू में ही डालूंगा ठीक है तो एक बार मैं डिसाइड करूंगा ओस बेसिकली डिसाइड करेगा और उस क्यू में उसको बेसिकली पुश कर देगा अब उसके बाद क्या होगा वो उसी पर्टिकुलर क्यू में अपना शेड्यूलिंग होती रहेगी डिपेंडिंग अपॉन एल्गोरिथम यू हैव अप्लाइड टू दैट पर्टिकुलर क्यू ठीक है तो हमने देख लिया कि तीन अलग-अलग क्यूज है अलग-अलग उनकी सेपरेट स्केड्यूल एल्गोरिथम है बट इन क्यू के बीच में कैसे शेड्यूलिंग होगी ठीक है इस क्यू के बीच में यानी कि जो तीन क्यू है हमारे पास तीनों अलग-अलग जो क्यूज है हमारे पास इसको मैं इधर ही ड्र कर दूं तो ठीक है ये जो तीन अलग-अलग क्यू है इनमें इनके इन बिटवीन इसमें कौन सी शेड्यूलिंग एल्गोरिथम होगी ठीक है इसके बीच में एक फिक्स्ड प्रायोरिटी की प्रीमप्टिव शेड्यूलिंग लगी होती है ठीक है जो हमने पढ़ा था ना पटी शेड्यूलिंग लगी होती है इसमें उसका प्रीमप्टिव वर्जन होता है जिसमें की फिक्स प्रायोरिटी है और व फिक्स प्रायोरिटी क्या है व फिक्स प्रायोरिटी है एसपी की सबसे ज्यादा प्रायोरिटी फिर आईपी क्यू की प्रायोरिटी फिर बीपी क की प्रायोरिटी इसका डायग्राम यहां पर हमने बना दिया है इस तरीके से प्रायरिटी आपकी जारी होगी सबसे ज्यादा प्रायरिटी इसकी है फिर सबसे कम प्रायरिटी इसकी है ठीक है तो ये हो गई आपकी अब इस केस में क्या होगा मान लो कोई p1 प्रोसेस आई ठीक है ये न्यू प्रोसेस है कोई और p2 प्रोसेस ऑलरेडी सीपीयू को शेड्यूल्ड है बट यह प2 प्रोसेस एक बैच प्रोसेस है यह एक बैच प्रोसेस है तो इस केस में क्या होगा क्योंकि बैच प्रोसेस की सबसे यानी बैच क्यू की ही इट सेल्फ सबसे कम प्रायोरिटी है और जो नई प्रोसेस आई मान लो कि वो एक आईपी प्रोसेस है इंटरेक्ट प्रोसेस है तो मैं क्या करूंगा अभी करेंटली प2 जो कि बीपी है उसको मैं प्रीम कर लूंगा और जो न्यू प्रोसेस है आईपी उसको मैं शेड्यूल कर दूंगा ठीक है तो यह हो गया कि भाई बीपी क की जो प्रायोरिटी है वो लोएस्ट है इस केस में आईपी क्यों की ज्यादा है सिमिलरली अगर कोई सिस्टम प्रोसेस आई तो आईपी प्रोसेस अगर कोई स्केड्यूल होगी तो उसको मैं प्रीम कर लूंगा तो इस तरीके से चीजें चलती है यहां पे तो एक फिक्स्ड प्रायोरिटी है अब मुझे एक बात बताओ इस केस में क्या होगा कि जो सबसे टॉप लेवल की क्यू है जिसको मैं एसपी कू बोल रहा हूं टॉप लेवल की क्यू में जितने भी प्रोसेसेस हैं जब तक वो ढंग से यानी कि जब तक वो टर्मिनेट नहीं हो जाती या वेट में नहीं चली जाती तब तक दूसरी प्रोसेस जो कि नीचे वाली इंटरेक्ट प्रोसेस बेच प्रोसेस है इनको मौका नहीं मिलेगा सोच के देखो सबसे ज्यादा प्रायोरिटी मैंने इसको दे रखी है प्रायोरिटी स्केड जो हमने पढ़ी थी उसमें क्या हो रहा था सबसे ज्यादा प्रायोरिटी होती उसको सबसे ज्यादा बेसिकली टाइम मिलता था सीपीयू को लोएस्ट प्रायोरिटी को तो मौका तक नहीं मिल रहा था ठीक है कितना तगड़ा कन्वोय इफेक्ट था तो इस केस में जो बैच प्रोसेस है व सबसे ज्यादा सबसे ज्यादा वो वेट करते रहेंगे तो एवरेज वेटिंग टाइम जो होगा ओवरऑल वो ज्यादा होगा इसमें तो मैं कह सकता हूं कि स्टार्वेशन जैसी प्रॉब्लम यहां पर भी होगी देखो हमने ऑप्टिमाइज करने की कोशिश करी है पूरी तरीके से कि जो रियल वर्ल्ड सिनेरियो है बहुत सारी जो प्रोसेसेस है हमारी उसको मैंने डिवाइड करने की कोशिश करी कुछ ऑप्टिमाइजेशन लगाने की कोशिश तो करी बट इस ऑप्टिमाइजेशन में कुछ अधूरापन है कि जो प्रायोरिटी जिस तरीके से हमने लगाई है ना यह एक प्रोब्लेमे चीज है क्योंकि इसमें एसपी क्यू की प्रोसेस को सबसे ज्यादा बेसिकली सीपीय टाइम मिलेगा बाकी इधर जो नीचे है बी बीपी को तो भूल ही जाओ इस ये वाली सिचुएशन है तो इनफिट वेटिंग वाली जो प्रॉब्लम थी सबसे तगड़ी कन्वोय इफेक्ट जिसको मैं बोल रहा था वह भी यहां पर होगा ठीक है तो स्टार्वेशन यहां पर होगी तो इवन दो मैंने पूरी कोशिश करी पूरी कोशिश करी कि थोड़ा ऑप्टिमाइज कर जाए चीजों को बट यहां पर अभी भी थोड़ा काम बाकी है नोट्स डाल लेते हैं एक बार नोट्स पर हमने सारी चीजें लिख दी है कन प्रेजेंट है ओनली आफ्टर कंप्लीशन ऑफ ऑल प्रोसेस फ्रॉम द टॉप लेवल द फदर लेवल रिडिक विल बी शेड्यूल्ड ठीक है और फिक्स प्रायोरिटी प्रीम शेड्यूलिंग लगी हुई है इन तीनों क्यूज में ठीक है तो दो टाइप की शेड्यूलिंग है यहां विद इन क्य एक पर्टिकुलर क्यू भी एक शेड्यूलिंग लगी हुई है और अगर मैं बोलूं इंटर क्यू इंटर क्यू भी शेड्यूलिंग लगी हुई है ठीक है तो ये हमारा था एम एल क्य मल्टीलेवल क्यू स्केड्यूल ठीक है ये कांसेप्ट है आई डोंट थिंक मे बी कभी यूज हुआ होगा आज की डेट में ये यूज नहीं होता एक बेटर वर्जन इसका ठीक है इसका एक मैं बोल सकता हूं 2.2 वर्जन इसका है मल्टी लेवल फीडबैक क्यू अब मल्टी लेवल फीडबैक क्यू को डिस्कस करते हैं जो कि थोड़ा सा जो इसके अंदर कन्वो इफेक्ट तगड़ा कन्वोय इफेक्ट है जो स्टार्वेशन की सबसे ज्यादा प्रॉब्लम है इसमें उसको थोड़ा सा ओवरकम करने की कोशिश करेगा ठीक है अब हम डिस्कस करते हैं मल्टी लेवल फीडबैक क्यू ठीक है अब हम डिस्कस करते हैं मल्टी लेवल मल्टी लेवल क्यू स्केड्यूल अब यार इसको देखोगे ना ये आजकल यूज होती है ठीक है और मैं इसमें बोलूं तो यह एक यूजर डिफाइंड है थोड़ी सी मैं अभी डिस्कस करते हैं कैसे यूजर डिफाइंड है यह बहुत ज्यादा फ्लेक्सिबल टाइप की एल्गोरिथम है इसमें भी आपके डिफरेंट क्यूज होते हैं ठीक है मल्टीपल सब क्यूज यहां भी होते हैं क्यूज में हमने डिवाइड किया हुआ है बट एक बड़ी चीज होती है इसमें कि हम जो य डिफरेंट क्यूज बनाई थी हमने ठीक है इस क्यूज में हम प्रोसेस अब हम जैसे पिछली जो एमएल क्यू के अंदर हम क्या डिस्कस कर रहे थे एमएल क्यू के अंदर हम यह डिस्कस कर रहे थे कि कि अगर एक प्रोसेस को स्टार्टिंग में ही मैं एसपी या आईपी या बेसिकली बीपी क में डालता हूं ठीक है स्टार्टिंग में ही मैं इनमें डाल देता हूं उसके बाद ये ये अपनी ही क्यू में स्केड्यूल होती रहती है दूसरी क्यू में मूव नहीं करती है यानी कि एसपी क्यू की कोई प्रोसेस या सिस्टम प्रोसेस कोई इंटरेक्ट क्यू में नहीं जाएगी ठीक है ऐसे ये इनमें कोई भी अटैचमेंट ऐसी नहीं होती ये मूव नहीं कर सकती विद इन क्यू तो इस केस में हमने क्या किया इसको थोड़ा ऑप्टिमाइज करने की कोशिश करी हमने क्या किया कि बहुत सारी क्यू तो अभी भी है बट ये अलाउड है दूसरी क्यूज में जाने के लिए ठीक है तो प्रोसेस जो है वो इंटर क्यू मूवमेंट अलाउड है इसमें मैं लिख देता हूं ठीक है मेरा आईडिया क्या है मेरा आईडिया इसमें यह है कि मैं सेपरेट करूंगा प्रोसेसेस को बेस्ड ऑन देयर बर्स्ट टाइम ठीक है यानी कि जो ज्यादा टाइम ले रही होंगी ठीक है चलते चलते जो मतलब रेडी क्यू में है प्रोसेसेस जो ज्यादा टाइम ले रही होंगी उनको मैं लोवर क्यू में मूव करता जाऊंगा करता जाऊंगा और जो ज्यादा बेसिकली इंटरेक्ट प्रोसेस होंगी जो ज्यादा आ कर रही होंगी या फिर यूजर इंटरवेंशन जिसमें चाहिए उनको मैं ऊपर वाले क्यू में मूव करता रहूंगा ठीक है तो इसमें लिख देते हैं कि हम सेपरेट कर रहे हैं प्रोसेसेस को बेस्ड ऑन बीटी कैसे जो ज्यादा टाइम ले रही होगी जिसका बीटी ज्यादा होगा उसको मैं लोवर क्यूज में मूव कर दूंगा ठीक है और जो कि आयो बाउंड प्रोसेसेस होंगी आयो बाउंड या फिर इंटरेक्ट प्रोसेस होंगी इंटरेक्ट प्रोसेस का मतलब है कि वो बेसिकली हर थोड़ी देर बाद वेट पर चली जा रही होंगी क् उसको अब य य यूजर इनपुट चाहिए अब ये यूजर इनपुट चाहिए यूजर एंटर दबाए नेक्स्ट दबाए कुछ ऐसा कुछ कुछ होगा उनको मैं हायर प्रायोरिटी में रखूंगा अब हायर प्रायोरिटी में हम ऐसी प्रोसेस को क्यों रख रहे हैं क्योंकि आपने सिस्टम ऑन किया आपने सिस्टम ऑन किया और आपने कोई प्रोग्राम चलाया अब बाकी जो सिस्टम प्रोसेस या फ मैं बोल सकता हूं कि जो बैकग्राउंड प्रोसेसस है उनको ज्यादा सीपीयू टाइम मिल रहा है आपने जो एप्लीकेशन लच करी है उसको टाइम नहीं मिल रहा है तो कितनी वियर्ड सिचुएशन होगी कि आप जो यूजर बैठा है यूजर स्पेस में जो काम कर रहा है उसको एक ऐसे ओएस पे काम करना पड़ रहा है जो कि उसकी सुन ही नहीं रहा ठीक है उसकी प्रोसेस को सीपीयू टाइम दे ही नहीं रहा ऐसे ओस पे कोई काम नहीं करना चाहेगा राइट तो जो इंटरेक्ट प्रोसेसस है उनकी प्रायोरिटी हम बढ़ा जाते हैं और उनको ऊपर वाली क्यूज में मूव कर देते हैं ठीक है और अब इसमें एक और चीज है अब एक क्वेश्चन बन सकता है आपका और बनना चाहिए वो यह कि अब क्योंकि हमने बोला कि जो इनका बीटी ज्यादा है उनको मैं लोअर क्यूज में मूव करता रहूंगा इससे एक प्रॉब्लम आएगी वो ये प्रॉब्लम है कि लोअर क्यूज में मूव होती जाई होती गई अब आप बोलोगे भैया अभी भी तो इसके अंदर कनव इफेट आ सकता है लोअर क्यू में मूव कर रही है प्रोसेस ठीक है ऊपर प्रोसेसस को ज्यादा टाइम मिल रहा है लोवर क्यू में जो प्रोसेस चले गई वो स्टार्वेशन में जा सकती है बिल्कुल जा सकती हैं उसके लिए मैं एक मेथड यूज करता हूं जो कि हमने प्रायरिटी स्केड्यूल में डिस्कस किया था जिसका नाम है एजिंग तो जनजन सी प्रोसेसेस जो होंगी वो लोअर क्यू में जाती रहेंगी उसको मैं एक पॉइंट के बाद एजिंग मेथड यूज करूंगा और लोअर जो प्रोसेसेस होंगी लोअर प्रायोरिटी प्रोसेसेस जो होंगी उनकी प्रायोरिटी इंक्रीज करता जाऊंगा ठीक है तो इस तरीके से मैं एजिंग की मदद से प्रिवेंट करूंगा स्टार्वेशन को ठीक है यहां पर कोई एजिंग का मेथड यूज नहीं हो रहा था क्यों क्योंकि जो एमएल कू था एमएल क्य के अंदर एजिंग टेक्निक यूज ही नहीं कर सकते थे हम क्योंकि जो विदन टू क्यूज मूवमेंट ही नहीं थी इंटर क्यू मूवमेंट ही नहीं थी अब य इंटरव्यू मूवमेंट है तो हम इसको यूज कर पा रहे हैं इस मेथड को ठीक है तो इस केस में मैं बोलूं तो ये ज्यादा फ्लेक्सिबल है अब इसकी सारी कैरेक्टरिस्टिक सुन लो ठीक है फिर एक एग्जांपल बनाएंगे इसका हम कि कैसे दिखेगी ये ठीक है और फ्लेक्सिबल है तो मैं पूछ सकता हूं कि ये कंफिल है ठीक है कंफीग्रबिलिटी बेसिक लोअर प्रायोरिटी प भेजना है एजिंग कितनी देर में करनी है यानी कितने कितने इंटरवल में उनका प्रायोरिटी बढ़ानी है इंटरेक्ट प्रोसेसस को सबसे टॉप पर रखना है सिस्टम प्रोसेस को सबसे टॉप प रखना है या क्या करना है बैकग्राउंड प्रोसेस की क्या आपको थीम रखनी है कि उसको कितनी प्रायोरिटी देनी है आपको यह सब आप यहां पर कन्फर कर सकते हो अब अगर मैं एक सैंपल बेसिकली सैंपल एमएल एफ क्यू डिजाइन बना के दिखाऊं आपको बना के क्या दिखाएंगे आपको नोट्स में दिखाते हैं सीधा तो ऐसा कुछ दिखेगा ये देखो ध्यान से सबसे पहली क्यू थी अब मैंने क्या करा इसमें भी आर आर लगाई दूसरी वाली में भी आरआर लगाई तीसरी क्यू में भी आरआर लगाई चौथी में मैंने एफसीएफएस लगा दी ज्यादा मेहनत नहीं करते एसी लगा देते अब पहले वाले का जो टाइम क्वांटम था मैंने ू सेकंड रखा दूसरे का फोर एंड तीसरे का एट उसके बाद मैं एसीएफ से कर अब मान लो कोई प्रोसेस आती है सबसे पहले इस वाली क्यू में आएगी अब इमेजिन कि इसका बर्स टाइम जो था वो टू से ज्यादा था अगर टू से ज्यादा होगा तो क्या होगा वो नेक्स्ट क्यू में मूव कर जाएगी ठीक है नेस्ट क्य में मूव कर जाएगी अगर वो टू से कम है यानी कि टू सेकंड में ही वो प्रोसेस एग्जीक्यूट हो जाती है तो सिंपली हम यहां से एग्जिट कर जाएंगे वो प्रोसेस एग्जिट कर जाएगी अब इससे क्या फायदा हो रहा है जो लोअर बर्स टाइम वाली प्रोसेसेस है ठीक है जो लोवर बर्स टाइम वाली प्रोसेसेस है वो स्टार्के अंदर कोई स्टार्वेशन नहीं हो रही है रीजन बीइंग मान लो कोई एक एक सेकंड में चलने वाली प्रोसेस थी राइट लोअर बस टाइम था उसका वो स्टार्टिंग में ही मेरी एग्जिट कर जाएगी उसको मौका मिल जाएगा अब मान लो थोड़ा सा बर्स टाइम ज्यादा है किसी प्रोसेस का अब ज्यादा है तो वो नेक्स्ट क्यू में भूल जाएगी तो अब भाई बोल रहे हैं हम कि यार प्रोसेस तो दो सेकंड में नहीं चल पाई 4 सेकंड देते हैं तेरे को तो 4 सेकंड में चलने की कोशिश करेगी अब वो 4 सेकंड में भी नहीं चली तो 8 सेकंड 8 सेकंड में भी नहीं चली अब हम और भी फर्द क्यूज ऐड कर सकता था इसमें ये छोटा सा डिजाइन है एक सैंपल डिजाइन है एक ठीक है तो अब मैंने क्या करा एफसीएफएस लगा दी ठीक है अब एफसीएफएस की तरह अब आप काम करो अपना अब इसके अंदर मैं क्या कर रहा हूं मल्टीपल चांसेस दे रहा हूं किसी एक प्रोसेस को कि अलग-अलग टाइम क्वांटम के हिसाब से वो एग्जीक्यूट हो सकती है अगर नहीं होती है तो एफसीएफएस में स्केड्यूल कर देता हूं ठीक है तो इस तरीके से ये डिजाइन होती है तो ये एक सैंपल डिजाइन बोल सकता हूं मैं इसका ठीक है अब बात करते हैं यार इसमें एजिंग वाली जो बात करी थी उसको देख लेते हैं कि एजिंग हम क्यों यूज कर रहे हैं क्योंकि कोई ऐसी प्रोसेस हो सकती है p1 इसका बर्स टाइम ज्यादा हो तो वो पहली क्यू से भी निकल जाए दूसरी क्यू से निकल जाए चौथी क्यू से भी निकल जाए इस क्यू में जब पहुंच जाएगी तो उसके बाद इसको स्टार्वेशन फील होएगी राइट स्टार्वेशन फील होगी एज इन की अब उसको एफसीएफएस की तरह शेड्यूल किया जा रहा है ठीक है तो इसको मैं अगर इसको ओवरकम करना चाहता हूं एजिंग का मेथड यूज कर रहा हूं मैं प्रायोरिटी बढ़ा दूंगा ठीक है और प्रायोरिटी बढ़ाने के बाद मैं एक तरीका यूज कर सकता हूं इसमें कि मैं प्रायोरिटी बढ़ाने के बाद इसको ऊपर मूव कर सकता हूं प्रोसेस को तो मतलब ये कंफिल है ये एक सैंपल डिजाइन है ठीक है एक सैंपल डिजाइन है ये एक बेसिकली नॉर्मल से ओस में यूज कर सकते हैं हम इसको अब मैं मैक में भी बोलूं तो एमएलएफ क यूज होती है उसमें और डिफरेंट टाइप की प्रायोरिटी और कुछ-कुछ लगा के वह बेसिकली इसको इंप्लीमेंट करते हैं ठीक है तो इसको अगर मुझे एक डिफाइन करना हो ना कि एक एमएल एफ क मल्टीलेवल फीब क्यू स्केड्यूल कैसा दिखेगा या कैसा उसके पॉइंट होंगे तो मैं तीन चीजें उसमें डिस्कस करूंगा डिस्कस करते हैं कि जो डिज़ाइन होगा डिजाइन ऑफ m ए ए क उसके क्या-क्या पॉइंट्स होंगे पहला पॉइंट होगा कि नंबर ऑफ क्यूज कितने रखूं ठीक है जो डिज़ाइनर होगा व डिसाइड करेगा कि मेरे जो ओ है वह क्या रिक्वायरमेंट है उस हिसाब से नंबर ऑफ क्यूज कितने होंगे दूसरा कि हर क्यू में स्केड्यूल एल्गोरिथम कौन सी लगेगी इन ईच क्यू तीसरा होगा कि एक मेथड यह डिटरमाइंड करने के लिए कि मैं प्रोसेस को अपग्रेड कैसे करूंगा किसी प्रोसेस को हायर प्रायोरिटी क में अपग्रेड कैसे करूंगा ठीक है मेथड टू अपग्रेड ए प्रोसेस टू ए हायर क्यू ठीक है इसका एक मेथड हमने डिस्कस किया एजिंग का यूज कर सकता हूं मैं एजिंग यूज करूंगा तो प्रायोरिटी बढ़ा दूंगा प्रायोरिटी बढ़ा दूंगा तो दूसरे ऊपर वाले क्यूज में उनको मूव करता जाऊंगा तो मैं बोल सकता हूं कि विदन जो इंटर क्यू इंटर क्यू मैं प्रायरिटी शेड्यूलिंग लगा सकता हूं ठीक है एक फ्लेक्सिबल प्रायरिटी शेड्यूलिंग की नीचे से मैंने जैसे जैसे एजिंग होती जा रही है किसी प्रोसेस की कोई प्रोसेस एफसीएफएस में फसी हुई है हर 15 मिनट बाद मान लो उसका जो प्रायोरिटी है प्रायोरिटी का काउंटर बढ़ता जा रहा है तो उस केस में एक मेथड ये मैंने डिसाइड कर लिया अब मैं उसको अपर क्यूज में मूव कर दूंगा ठीक है ये एक मेथड हो गया चौथा डिटरमिनेशन है कि मैं प्रोसेस को डिमोट कैसे करूंगा इसका क्या मेथड होगा डिमोट करने का यहां पर जो मेथड यूज हो रहा था वो यही हो रहा था पहले दो सेकंड बाद देख रहा था दो सेकंड में एग्जीक्यूट हो रही है कि नहीं फिर इधर डिमोट कर दिया मैंने इसको फिर इधर डिमोट करा इधर डिमोट करा ऐसे करके हमने यहां पर एक तरीका लगा रखा था तो ये एक सैंपल है ठीक है एक सैंपल है ऐसे कुछ भी किसी भी टाइप की मैं फ्लेक्सिबल डिजाइन कर सकता हूं ठीक है फिफ्थ पॉइंट मेरा होगा कि कोई भी प्रोसेस आई मान लो प्रोसेस p1 आई वह किस क्यू में जाएगी सबसे पहले इन वि क्यू इट विल बी पु सबसे पहले किस क्यू में जाएगी ऐसा हो सकता है कि कुछ मैं ऐसा डिजाइन करूं कि सबसे पहले उसको टी क में भेज दू ठीक है एरो बने हुए स्टार्टिंग में इधर भी भेज सकता हूं या कोई ऐ प्रोसेस है मुझे पता है यह बहुत ही मतलब सुस्त प्रोसेस है तो सबसे पहले मैं सीधा ही उसको एफसीएफएस में भेज दूं तो इस टाइप के फ्लेक्सिबल थिंग्स मैं कर सकता हूं तो एमएल एफ क को डिजाइन करने के यह पांच बेसिकली मैं बोल सक पॉइंट्स है कि यह पांच चीजें सोच के कोई बंदा एमएल एफ क की जो एक शेड्यूलिंग एल्गोरिथम है उसको डिजाइन करेगा अपने पर्टिकुलर ओएस को रिलेटेड मालो मैं कोई ओस बना रहा हूं तो मैं ये सब पॉइंट्स को दिमाग में रखूंगा एक एमएलएफ की डिजाइन बनाने के लिए ठीक है तो अब मैं देख सकता हूं इसमें एजिंग का यूज कर रहा हूं तो मैंने थोड़ा कोशिश करी स्टार्वेशन को रोकने की ठीक है तो यह इस टाइप की मेरी दो टाइप की मल्टी लेवल क्यूज हो गई जो हमने डिस्कस करी अब इंपॉर्टेंट चीज एक डिस्कस करते हैं वो है यार इसमें ना कंपैरिजन करते हैं हम कंपैरिजन करते हैं हम इन चारों पांचों एल्गोरिथम्स का जितने भी हमने एल्गोरिथम पड़ी इसका हम कंपैरिजन करते हैं अब कंपैरिजन कुछ इस तरीके से होगा कि हमने चार चीजें देख ली है चार चीजों प हम डिसाइड करेंगे कि डिजाइन किसका कैसा है प्रीमन हो रही है नहीं हो रही है या कॉन्ब इफेक्ट कितना है ओवरहेड कितना है इस पर हम डिसाइड करते हैं सबसे पहले हम देखते हैं एफसीएफएस एफसीएफएस में क्या है इसका डिजाइन एकदम सिंपल है फर्स्ट कम फर्स्ट स ठीक है क की तरह इंप्लीमेंट कर दो इजी प्रीमन इसमें नहीं होती ठीक है अब आपके लिए क्वेश्चन है कि एफसीएफएस का प्रीम वर्जन क्या होता है ये आप बताओगे कमेंट सेक्शन में लिख के बताओ इसको एफसीएफ का प्रीम वर्जन क्या होता है पिछले लेक्चर में बताया मैंने इसको ठीक है कन्वोय इफेक्ट इसमें होता है कन्वोय इ में जबरदस्त होता है क्यों सबसे पहले हमने कॉन्ट डिफाइन किया था आपको एफसीएफएस की मदद से ही किया था ठीक है इसमें कोई अगर पहली प्रोसेस जिसका बर्स टाइम सबसे ज्यादा है वो सबसे पहले स्केड्यूल हो गई तो बाकी प्रोसेस वेट करती रह जाएंगी ओवरहेड इसमें है कोई इसमें कोई ओवरहेड नहीं है क्योंकि इसमें कोई प्रीमन नहीं है तो ओवरहेड भी नहीं है कंटक्ट स्विचिंग होती ही नहीं है एक बार p1 मिल गई तो मिल गई बस ठीक है अब हम आते हैं दूसरी शेड्यूलिंग एल्गोरिथम पे जो कि एसजेएफ शॉर्ट जॉ अब ये कॉम्प्लेक्शन मुश्किल थी हमने डिस्कस किया था नियर इंपॉसिबल है कि राइट बीटी कैलकुलेट करना किसी प्रोसेस के लिए तो इसलिए कॉप्लेक्स डिजाइन है इसका ठीक है प्रीमन इसमें भी नहीं होती कन्वोय इफेक्ट होगा इसके अंदर क्यों होगा कन्वोय इफेक्ट क्योंकि जब t इ 0 पे अराइवल टाइम जिसका जीरो है वही सबसे पहले ज्यादा बीटी वाली आ गई प्रोसेस तो वो एक बार शेड्यूल हो गई तो हो गई राइट हो गई तो हो गई क्योंकि इसमें प्रीमन नहीं है तो जो प2 मान लो कोई कम बीटी वाली आती भी है तो हम उसको स्केड्यूल नहीं कर पाएंगे क्योंकि यहां पर कोई प्रिजंस नहीं है ठीक है ओवरहेड यहां पर भी नहीं है जिसके अंदर प्रीमन ही नहीं है तो ओवरहेड कैसे होगा राइट अब इसका प्रीम वर्जन जो है वो भी कॉम्प्लेक्शन तो इसमें भी करना ही पड़ता है बट इसके अंदर प्रीमन होता है ठीक है प्रीमन होता है तो प्रीमन होने की वजह से इसमें कॉन्ब इफेक्ट ना नेगलिजिबल होता है होता ही नहीं है क्योंकि ये एक ऐसी बेसिकली एल्गोरिथम है जिसके अंदर एवरेज वेटिंग टाइम सबसे कम ही रहता है क्योंकि जो सबसे कम बीटी वाली जॉब है उसको हम जैसे ही सबसे कम बीटी वाली जॉब आती है मैं उसको शेड्यूल कर देता हूं उससे कम बीटी वाली जॉब आती है तो मैं उस वाली को प्रीम करके नेक्स्ट वालू को स्केड्यूल कर देता हूं तो इसमें कॉन इफेक्ट नहीं होता ठीक है उसके बाद ओवरहेड इसमें होता है यस ओवरहेड होता है प्रीम है तो ओवरहेड कैसे नहीं होगा कांटेक्ट यूजिंग तो होगी यहां भी अब आते हैं प्रायोरिटी शेड्यूलिंग कॉम्प्लेक्शन जन लेना किसी भी प्रोसेस से रिलेटेड प्रायोरिटी कैसे निकालूं मैं वही बात है ना कि कोई प्रोसेस आई तो मैं क्यों दूं उसको ये प्रायोरिटी यह भी अपने आप में डिसीजन टेकिंग वाली बेसिकली काम है बेसिकली काफी इंपोर्टेंट काम है ये कि कैसे मैं प्रायोरिटी राइट प्रायोरिटी किसी प्रोसेस को कैसे दूं ठीक है उसके बाद प्रीमन इसमें नहीं होती नॉन प्रीमप्टिव वर्जन है ये क्योंकि प्रीमन नहीं है कनवा इफेक्ट होगा कनवा इफेक्ट तो इसमें हमने देखा जदा हैवी कन्वे इफेक्ट है इसमें इनफिट वेटिंग हो रही थी उसके बाद ओवरहेड इसमें नहीं होगा नॉन प्रीमप्टिव है इसका प्रीमप्टिव वर्जन देख लेते हैं कॉम्प्लेक्शन प्रायरिटी कैसे बताएंगे प्रीमन होता है इसमें कॉन्ब इफेक्ट भी होगा इसके अंदर ठीक है वही जब जो ज्यादा प्रायरिटी की जॉब आ रही है वो स्केड्यूल होए जा रही है लो प्रायोरिटी वाली बेचारी वेट ही कर रही है स्टार्वेशन है राइट ओवरहेड ओवरहेड इसमें होगा बिल्कुल होगा प्रीमप्टिव वर्जन है अब आ जाते हैं राउंड रॉबिन में राउंड रॉबिन में सबसे ज्यादा एक बढ़िया जो क्वालिटी है वो यह है इसमें रिस्पांस टाइम कम होता है किसी प्रोसेस को जल्दी से एक बार तो एटलीस्ट सीपीय मिल ही जाता है क्योंकि राउंड रॉबिन चल रहा है तो रिस्पांस टाइम में सबसे कम होता है तो बोले कि सबसे बड़ा एक एडवांटेज जो आ रहा है एल्गोरिथम का वो ये है कि रिस्पांस टाइम सबसे कम होता है इस उसके बाद हम आते हैं ये एक सिंपल डिजाइन है हमने देखा था सिंपल सा एक ब्लॉक डायग्राम था उससे सिंपली हो जाती है आई होप आपने अब तक इंप्लीमेंट करके देखी होगी कमेंट सेक्शन में लिख के बताओ कि किसकिस ने सारी एल्गोरिथम इंप्लीमेंट कर ली मेरे ख्याल से ब भैया ने इतना तो आपको सिखाई दिया होगा कि सारी एल्गोरिथम इंप्लीमेंट कर सकते हो आप डटा स्ट्रक्चर इतने पढ़ लिए हैं आपने ठीक है अब प्रीमन इसमें होती है यस प्रीमन इसमें होती है टाइम क्वांटम होता है उस टाइम क्वांटम में अगर वो प्रोसेस एग्जीक्यूट नहीं हुई तो हम प्रीम करके दूसरी जॉब को ले लेते हैं उसके बाद कन्वोय इफेक्ट इसमें कन्वोय इफेक्ट नहीं होता क्योंकि स्टार्वेशन इसमें नहीं होती प्रोसेस बेसिकली प्रोसेस को सीपीयू मिल जाता है थोड़ी दूर देर बाद ठीक है ओवरहेड ओवरहेड इसमें होता है कांटेक्ट स्विचिंग है तो ओवरहेड होगा ही एमएल क एमएल क्य हमने डिस्कस किया कॉम्प्लेक्टेड क्यू बनाई हमने फिर देखना कि कौन सी प्रोसेस कौन सी क्यू में जाएगी कॉम्प्लेक्शन इसमें होता है क्यों क्योंकि कोई हाई प्रायोरिटी जॉब हमने डिस्कस किया था अभी कि हाई प्रायोरिटी जॉब आई इंटरेक्ट प्रोसेस आई तो बैच प्रोसेस को मैं प्रीमप्टिबल रही है लो प्रायोरिटी को कभी टाइम ही नहीं मिल रहा सीपीयू टाइम ही नहीं मिला ठीक है स्टार्वेशन हो जाएगी इसमें ओबवियसली ओवरहेड इसमें भी है कांटेस्ट स्विचिंग हो रही थी सिमिलरली एमएलएफ क की बात करूं तो कॉम्प्लेक्शन इसमें भी होती है कन्वे फेट इसमें है बट हम कन्वे फेक्ट को थोड़ा कम कर रहे हैं कम कैसे कर रहे हैं एजिंग के द्वारा एजिंग का यूज करके हम कनवा इफेक्ट को कंट्रोल करने की कोशिश कर रहे हैं ठीक है तोर कुछ भी मैं बोलूं तो एलिमिनेट तो नहीं होता अगर हम आगे डेड लॉक पढ़ेंगे कि हम डेड लॉक को अवॉइडेंस की प्रिवेंशन की तरीके भी पढ़ेंगे बट तब भी कोई मतलब ऐसा नहीं है कि इंप्लीमेंटेशन प्रॉब्लम होती है कुछ ना कुछ डायलॉग हो ही जाता है हैंग तो आपका कंप्यूटर होता ही है चाहे कितनी ही अच्छी स्पेसिफिकेशन हो राइट तो इसलिए हम इसमें कॉन्ट भी कुछ कुछ होता है बट उसको एजिंग का यूज करके कम करने की कोशिश करते हैं ओवरहेड इसमें भी होगा कांटेक्ट स्विचिंग तो इसमें भी है तो इस तरीके से अब हमने इन सारी अब तक जितनी इंपोर्टेंट एल्गोरिथम थी सीपी स्केड्यूल की वो हमने डिस्कस कर ली है ठीक है सारी डिस्कस हो गई है कमेंट सेक्शन में बताना आपको कैसा मजा आया कि नहीं इनको डिस्कस करने में और हां यह जरूर बताना या इंप्लीमेंट किसकिस ने करी ठीक है इनको सबको इंप्लीमेंट करो इंप्लीमेंट करो और इंप्लीमेंट करो बड़ा मजा आएगा इसको इंप्लीमेंट करने में ना तो इंप्लीमेंट कर लोगे आपके दिमाग में भी बैठ जाएंगी आपसे कोई सामने से इंटरव्यू में पूछेगा भी तो आप हर एक में क्या-क्या होता है वो भी बता पाओगे ठीक है तो इसी के साथ सीपीयू शेड्यूलिंग यहीं पर खत्म होती है अब हम आगे नेक्स्ट लेक्चर में पढ़ेंगे कंक्रेंस के बारे में धन्यवाद हेलो जी कैसे हो सारे दिस इज लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 15 पर और आज से हम शुरू करने वाले हैं एक नया मॉड्यूल ओएस के अंदर जिसका नाम है कॉन्करेंस कॉन्करेंस कॉन्करेंस में यार क्या चीजें आती हैं इसमें हम थ्रेड्स के बारे में पढ़ेंगे प्रोसेस और थ्रेड के बीच में डिफरेंस क्या होता है थ्रेड्स के बारे में हम शायद से लेक्चर नंबर थ्री या फोर में जिसमें मल्टी टास्किंग वर्सेस मल्टी थ्रेडिंग के बीच में हम डिफरेंस बता रहे थे आप उसको एक बार रिवाइज कर लेना ठीक है इस लेक्चर को देखने से पहले आप उस लेक्चर को जरूर देख लेना मल्टी टास्किंग वर्सेस मल्टी थ्रेडिंग मैं लेक्चर नंबर बता देता हूं ये लेक्चर नंबर थ्री था राइट तो लेक्चर नंबर थ्री में आप इसको एक बार रिवाइज कर लेना इस वीडियो को देखने से पहले ठीक है तो हम इसमें डिस्कस करेंगे थ्रेड क्या होता है ठीक है इस मॉड्यूल में थ्रेड क्या होता है ठीक है थ्रेड क्यों जरूरी है थ्रेड्स की शेड्यूलिंग कैसे होती है थ्रेड प्रोसेस से कैसे डिफरेंस है एडवांटेज क्या है थ्रेड्स की थ्रेड को यूज क्यों कर रहे हैं हम ठीक है और जब थ्रेड आपने प्रोसेस को थ्रेड में ब्रेक कर दिया तो उसके बाद क्या-क्या प्रॉब्लम्स आती हैं और उन प्रॉब्लम्स को हम सॉल्व कैसे करेंगे बेसिकली सिंक्रोनाइजेशन की प्रॉब्लम आती है उसको हम कैसे सॉल्व करेंगे और जब प्रॉब्लम को सॉल्व कर रहे होते हैं तो जिन स्ट्रेटेजी से सॉल्व करते हैं उसकी वजह से एक और प्रॉब्लम आती है ठीक है एक और बग बोल सकता हूं आता है जिसको हम डेड लॉक बोलते हैं ठीक है उसके बारे में डिस्कस करेंगे इस पूरे मॉड्यूल में करेंटली इस वीडियो में हम क्या डिस्कस करने वाले हैं अब हम डिस्कस करेंगे थ्रेड क्या होता है कंक्रेंस क्या है थ्रेड कैसे स्केड्यूल होती हैं ठीक है मल्टी थ्रेडिंग के क्या एडवांटेज है ठीक है मल्टी थ्रेडिंग का थोड़ा सा ओवरव्यू लेंगे और एक हैंड्स ऑन एक मल्टी थ्रेडेड कोड थ्रेड्स बनाकर देखेंगे हम इसमें ठीक है तो चलिए शुरू करते हैं अब हम डिस्कस करते हैं कॉन्करेंस बेसिकली कॉन्करेंस क्या है कॉन्करेंस एक एबिलिटी है ओस की जिसमें कि वो मल्टीप इंस्ट्रक्शंस को एट द सेम टाइम एक ही टाइम पर मल्टीपल इंस्ट्रक्शन को एग्जीक्यूट कर सकता है ठीक है तो मैं लिख देता हूं यहां पर मल्टीपल इंस्ट्रक्शंस एट द सेम टाइम इसको करने का तरीका क्या है इसको करने का तरीका है कि मैं प्रोसेस को जो हमने पढ़ा था लेक्चर थी में भी प्रोसेस को मैं थ्रेड्स में डिवाइड कर देता हूं t1 t2 ठीक है थ्रेड्स में डिवाइड कर देता हूं और थ्रेड्स का यूज करके उसी प्रोसेस की मल्टीपल इंस्ट्रक्शंस को मैं सेम टाइम प एग्जीक्यूट कराता हूं पैरेलली एग्जीक्यूट कराने की कोशिश करता हूं इसको मैं कंक्रेंस कहता हूं तो कंक्रेंस अचीव करने का क्या तरीका है मैं प्रोसेस को थ्रेड्स में डिवाइड कर दूंगा ये एक तरीका है कि हम थ्रेड्स बना देते हैं ठीक है अभी थ्रेड क्या होता है ब्रीफ डिस्कस करते हैं थ्रेड्स क्या होता है थ्रेड्स क्या है थ्रेड्स मैं बोलता हूं थ्रेड्स बेसिकली कुछ सब प्रोसेसेस है ठीक है कुछ लाइट वेट प्रोसेस है एक ही प्रोसेस के अर अंदर ठीक है दो सब टास्क है जो कि इंडिपेंडेंट एग्जीक्यूशन कर सकते हैं ठीक है यह मेरी एक प्रोसेस है मान लो इसके दो टास्क है मान लो टास्क ए एंड टास्क बी अब मान लो यह दोनों जो टास्क थे यह इंडिपेंडेंट है एक दूसरे ठीक है ये एक दूसरे को बेसिकली परेशान नहीं करते दूसरे इसका भी एग्जीक्यूशन पाथ अलग है इसका भी एग्जीक्यूशन पाथ अलग है फलो दोनों का अलग है तो मैं एक प्रोसेस को दो थ्रेड्स में डिवाइड कर देता हूं और डिवाइड करने के बाद मैं क्या करता हूं कि इस थ्रेड को मान लोय t1 थ्रेड में डिवाइड किया इसको इसको मान लो t2 थ्रेड में डिवाइड किया तो ये t1 t2 को मैं मान लो सीपीय व को दे देता हूं और इसको मैं सीपीय टू को दे देता हूं ठीक है बेसिकली थ्रेड्स की एडवांटेज तभी होती है जब हमारे पास मल्टी कोर सीपीयू होता है एक से ज्यादा कोर होने चाहिए अगर एक ही कोर होगा तो बेसिकली जैसे दो प्रोसेस के बीच में शेड्यूलिंग होती है ऐसे ही दो थ्रेड्स के बीच में स्केड्यूल होई कांटेक्ट स्विचिंग होती रहेगी एक थ्रेड से दूसरी थ्रेड के बीच में तो बेसिकली मुझे मल्टी थ्रेडिंग का कोई गेन नहीं मिलेगा खास राइट राइट मल्टी थ्रेडिंग में हमने लेक्चर थ्री में चीज डिस्कस की थी ठीक है तो यह तो मेरा हो गया थ्रेड्स क्या होती है दो एक प्रोसेस के दो सेपरेट सेपरेट इंडिपेंडेंट पाथ ऑफ एग्जीक्यूशन है उसको मैंने दो थ्रेड्स में डिवाइड कर दिया उनको इंडिपेंडेंटली फर एग्जीक्यूट करा रहा हूं तो इसकी डेफिनेशन अगर हम देखें ठीक है लेक्चर थ्री में हमने डिस्कस किया है फिर से एक बार डिस्कस कर रहे हैं इसको डेफिनेशन देखें हम मैं फिर से रिकमेंड कर रहा हूं आपको लेक्चर थ्री को एक बार देख ले उसके बाद इस वीडियो को देखें ठीक है तो इसमें थ्रेड क्या होते है हमारे सि सीक्वेंस विदन प्रोसेस यानी कि इंडिपेंडेंट पाथ ऑफ एग्जीक्यूशन ठीक है लाइट वेट प्रोसेस भी बोलता हूं यानी कि एक्चुअल प्रोसेस तो नहीं है य बट एक लाइट वेट प्रोसेस है ठीक है एल डब्ल्यूपी बोल सकते हैं इसको और यह यूज क्यों होती है हम एक टास्क को एक बेसिकली एक टास्क को टू अचीव पैरेललिज्म इंडिपेंडेंट पाथ में ब्रेक कर देते हैं ठीक है अब इसका एक एग्जांपल देखते हैं क्या मतलब है इसका इसका मतलब यह है कि आपके पास मान लो एक एग्जांपल है एमएस वर्ड है हमारे पास राइट एमएस वर्ड है इसके तीन चार टास्क होते हैं एक होता है मेरा टेक्स्ट एडिटर य जो एमएस वर्ड पूरी प्रोसेस है इसके तीन टास्क है टेक्स्ट एडिटर ठीक है स्पेल चेकर तीसरा आपका टेक्स्ट फॉर्मेटिंग यह तीन टास्क है अब मैं क्या करता हूं इन तीन टास्क को जो कि एक प्रोसेस है यह प्रोसेस है ठीक है इस प्रोसेस को मैं तीन लाइटवेट प्रोसेस में ब कर देता हूं ठीक है इसके क्योंकि तीन सब टास्क है तो मैंने ती सब प्रोसेसस में डिवाइड कर दिया इसको इसको थ्रेड वन बोल रहा हूं इसको थ्रेड टू इसको थ्रेड थ्री बोल रहा हूं ठीक है अब क्या होगा इससे कि मैंने एमएस वर्ड का जो पूरा काम है ना थ्री थ्रेड्स में डिवाइड कर दिया अब थ्री थ्रेड जो इंडिपेंडेंटली काम कर रही होंगी अपनी ठीक है तो अब इससे फायदा क्या हुआ मेरा इससे फायदा मेरा यह हुआ कि अगर मान लो ये एक ही प्रोसेस होती ठीक है एक ही प्रोसेस होती तो ये सारे बेसिकली सीक्वेंशियल ही होते मान लो आप पहले टाइप कर रहे हो तो सबसे पहले आप टेक्स्ट एडिटर में टाइप करते फिर उसके बाद स्पेल चेकिंग होती फिर उसके बाद में टेक्स्ट फॉर्मेटिंग होती तो ये सीक्वेंशियल चलता तो पहले मतलब आप वेट करते टेक्स्ट लिखते फिर स्पेल चेकिंग होती फिर टेक्स्ट होती तो ये एक लंबा प्रोसेस हो जाता सीक्वेंशियल अब यहां पे क्या है पैरेलल ही हो गया है काम आप टेक्स्ट राइट एडिट भी कर रहे हो लिख भी रहे हो लिखने के साथ-साथ आपकी स्पेल चेकिंग भी साथ में चल रही है आपकी जो रेड रेट से किंग आ जाता है ना नीचे अंडरलाइंस आ जाती है साथ में टेक्स्ट फॉर्मेटिंग भी चल रही है उसकी जैसे आप एंटर मार रहे हो तो वो लेफ्ट राइट मूव कर रहा है बोल्ड वगैरह करना है आपको तो वो सब ठीक है तो आपने थ्रेड्स में डिवाइड करके रिस्पांसिस बढ़ा ली ठीक है इसका एक बेनिफिट है कि इससे आपने रिस्पांसिस बढ़ा ली इससे जो यूजर एक्सपीरियंस है जो यूजर बैठ के काम कर रहा है उसको डिले नहीं दिख रहा कुछ सब कुछ एकदम फास्ट हो रहा है ठीक है तो ये इसका हमारा कॉन्करंसी का य सबसे बड़ा फायदा है ये ठीक है अब थोड़ा एक बार डिफरेंस देख लेते हैं प्रोसेस में और थ्रेड में जो मेमोरी यूज हो रही होती है उसका वो बेसिकली कैसे मैप हो रही होती है ठीक है तो अगर मैं प्रोसेस की बात करूं तोय आपकी एक सिंगल प्रोसेस है ठीक है पव बोल देता हूं इसको और यह मान लो आपका एड्रेस स्पेस है जो इसको एलोकेट हुआ है अब हमने बात करी थी कि आइसोलेशन होता है तो इस प्रोसेस को यह पर्टिकुलर एड्रेस स्पेस मिला होगा ठीक है ये बाकी प्रोसेसेस से यह एडस स्पेस एकदम इंडिपेंडेंट होगा अब ये देखो में क्या होता है थ्रेड में क्या होता है आपके पास एक पव प्रोसेस होती है य आपने ब्रेक करी तीन थ्रेड्स में मान लो ट थ और यह एड्रेस स्पेस है आपका तीनों एक ही एड्रेस स्पेस को यूज कर रहे हैं तो यानी कि प्रोसेस के केस में तो क्या हो रहा था एक प्रोसेस एक एड्रेस पेस को कर रही थी उस एड स्पेस था बट अब थ्रेड के केस में क्या हो रहा है तीनों थ्रेड एक ही जो उस प्रोसेस को एलोकेटेड एडस स्पेस है उसको यूज कर रहे हैं ठीक है तो तीनों थ्रेड्स के बीच में एक शेयर्ड मेमोरी स्पेस यूज हो रहा है ठीक है यह सबसे इंपॉर्टेंट और बड़ा बेसिकली डिफरेंस है प्रोसेस और थ्रेड्स के बीच में यह हमने डिस्कस किया था लेक्चर नंबर थ्री में भी ठीक है तो बस जल्दी जल्दी मैं क्विकली इसको मूव कर रहा हूं आगे ठीक है अब हम डिस्कस करते हैं कि जो थ्रेड होती है थड को किस तरीके से सीपीयू मिलता है ठीक है मतलब जैसे हमने प्रोसेस में प्रोसेस शेड्यूलिंग हमने पूरी देखी सीपीय शेड्यूलिंग देखी ठीक है उसम डिफरेंट मेथड होते हैं सिमिलरली थ्रेड्स की भी शेड्यूलिंग होती है ठीक है तो उसी हिसाब से हम डिस्कस करते हैं यहां पे हमने देख हाउ ईच थ्रेड गेट एक्सेस टू द सीपीयू तो हर थ्रेड का एक पर्टिकुलर प्रोग्राम काउंटर होता है ठीक है हर थ्रेड का एक प्रोग्राम काउंटर होता है जैसे आपका उसका होता था एक प्रोसेस प्रोग्राम काउंटर होता था ठीक है सिमिलरली एक और मैं इसमें चीज ऐड करना चाहूंगा कि जो हर थड होती है ना इसका एक टीसीबी होता है टीसीबी थ्रेड कंट्रोल ब्लॉक जो कि सिमिलर होता है पीसीबी की तरह ही ठीक है जैसे पीसीबी होता है यहां पे टीसीबी होता है तो ठीक है टीसीबी में उसका खुद का एक प्रोग्राम काउंटर होता है तो डिपेंडिंग अपन थ्रेड शेड्यूलिंग एल्गोरिथम बेसिकली स्केड्यूल होती है थ्रेड्स ठीक है तो ओस क्या करता है सिंपली फैच करता है इंस्ट्रक्शन उस पर्टिकुलर थ्रेड के करेस्पॉन्डिंग्ली है उसको एग्जीक्यूट करता है ठीक है तो कैसे एक्सेस मिलता है उसको थ्रू थ्रेड शेड्यूलिंग एल्गोरिथम थ्रेड शेड्यूलिंग एल्गोरिथम के बारे में लेक्चर थ्र में डिस्कस किया हमने ठीक है उसको ब्रीफ कर लेते हैं थ्रेड केके एल्गोरिथम क्यों यूज होती है डिपेंडिंग अपॉन प्रायोरिटी हम थ्रेड्स को स्केड्यूल करते हैं रन टाइम पे ठीक है जिसकी प्रायोरिटी ज्यादा होगी उसको बेसिकली ज्यादा सीपीयू का एक्सेस मिलेगा बाकी को कम मिलेगा थ्रेड्स में भी कांटेक्ट स्विचिंग होती है ठीक है थड और थड्स की कांटेक्ट स्विचिंग और प्रोसेस के कांटेक्ट स्विचिंग के बारे में डिफरेंस हमने पढ़ा था ठीक है तो थ्रेड के कांटेक्ट स्विचिंग को फिर से डिस्कस करें हम तो क्या करता है ओस कांटेक्ट स्विच करते हुए एक थ्रेड की जो स्टेट है उसको सेव करता है दूसरी ड की स्ट्रेट को रिट्रीव करता है विद इन सेम प्रोसेस ठीक है तो अब इसकी कांटेक्ट स्विचिंग में ना मेमरी स्पेस चेंज नहीं होता क्योंकि जो दो थ्रेड्स हैं वो एक ही प्रोसेस की थ्रेड्स है ठीक है और एक प्रोसेस को जो एडस स्पेस एलोकेट हुआ है उसके बीच में स्विच तो करना नहीं उसको तो एड्रेस स्पेस जो है वो स्विच नहीं होता दूसरा इसके अंदर जो कांटेक्ट स्विचिंग होती है वो वेरी बहुत फास्ट होती है क्योंकि मेमोरी एड्रेस स्पेस स्विच नहीं करना कुछ दो-चार चीजें हैं पीसी स्विच करना है रजिस्टर स्विच करने हैं ठीक है तो स्विच जो है मेरा ओवरहेड जो है स्विच का ओवरहेड है वो थोड़ा कम होता है तो इसलिए फास्ट होता है दूसरा सीपीयू की जो कैश स्टेट है वो प्रिजर्व रहती है क्योंकि सेम प्रोसेस है एडर स्पेस भी वही है कैश क्या होता है उसी बेसिकली इंस्ट्रक्शन या एडर स्पेसेस की जो इंफॉर्मेशन है कुछ कैश में स्टोर्ड रहती है तो कैश को रिसेट करने की जरूरत है ही नहीं इस केस में ठीक है बहुत ही बढ़िया अब हम डिस्कस करते हैं कि अगर सिंगल सीपीयू हो य हमने पहले भी डिस्कस किया था अगर सिंगल सीपीय हो सिंगल सीपी हो तो क्या उस केस में मल्टी थ्रेडिंग का फायदा होगा बेनिफिट होगा क्या नहीं होगा रीजन बी आपने एक प्रोसेस को आपने एक प्रोसेस को थ्रेड में तो डिवाइड कर दिया आपने क्या किया आपने एक प्रोसेस उठाई आपने देखे दो इंडिपेंडेंट टास्क है मैं क्या करता हूं इन इंडिपेंडेंट टास्क को दो थ्रेड्स बना देता हूं और थ्रेड से एग्जीक्यूट करा लेता हूं ठीक है तो अब फास्टली एग्जीक्यूट हो जाएंगे बट इससे प्रॉब्लम क्या आई है आपके पास सीपीयू तो अभी भी जनाब एक ही है अब सीपीयू क्योंकि एक ही है तो इस केस में जो आपने डिवीजन किया है वो पैरेललिज्म अचीव करने की जो आप कोशिश कर रहे हो वो पैरेललिज्म अचीव नहीं होगा क्योंकि यह सीपीयू आपका है कभी इस थ्रेड को सीपीयू मिलेगा t1 को जब इसको नहीं मिलेगा तो ये वाली थ्रेड स्केड्यूल हो गई तो बेसिकली यहां पे सीक्वेंशियल ही काम हो रहा है ठीक है कभी इस थ्रेड को मिले कभी इस थ्रेड को इसका बेस्ट सलूशन क्या है इसका बेस्ट सलूशन क्या है मल्टी थ्रेडिंग आप उसी जगह पर करो उन्हीं सिस्टम्स में करो जहां पर आपके पास मल्टी कोर हो बेसिकली ज्यादा सीपीयू हो तो इस केस में आपको बेनिफिट मिलेगा ठीक है मतलब सीपीयू वन अगर खाली है तो t1 उसको मिल जाए तो t1 सीपीय व पे एग्जीक्यूट हो रही होगी t2 सीप टू पे एक्सक्यूट रही अ इंडिपेंडेंटली एग्जीक्यूट हो रही है तो मुझे पैरेललिज्म का फायदा एक्चुअली मिलेगा ठीक है बहुत ही बढ़िया अब हम डिस्कस करते हैं कि पहले हमने डिस्कस किया था जो प्रोसेस होती है प्रोसेस के टाइम पर मेमोरी कैसे दिख रही होती है ठीक है प्रोसेस के टाइम प जल्दी से बनाता हू मेमोरी कैसे दिख रही होती है यह आपका टेक्स्ट का एरिया होता है यह आपका डाटा का एरिया होता है ठीक है उसके बाद आपकी इधर स्टैक थी इधर आपकी हिप थी और स्टैक और हीप ऐसे ग्रो हो रहे होते हैं ठीक है बट थ्रेड के केस में कैसा होता है थ्रेड के केस में कैसा दिखेगा प्रोसेस जैसा ही दिखता है बट उसमें थोड़ा सा फर्क आता है यह आपका टेक्स्ट है यह डाटा है ये आपका हीप है बट इसके केस में हम मल्टीपल स्टैक्स इंप्लीमेंट करते हैं ठीक है इसमें स्टैक वन होगा स्ड वन का इधर स्टैक टू होगा थ्रेड टू का हीप एरिया वही रहता है ठीक है तो इसके अंदर जितनी थ्रेड्स होंगी उतने नंबर ऑफ स्ट होंगे ठीक है टीव के लिए इतना य स्ट लोकेटेड के लिए स्ट लोकेटेड है तो इस तरीके से कुछ आपके मेमरी की ऑर्गेनाइजेशन होती है थ के केस में ही एक ही रहती है सब थड के लिए ठीक है अब हम डिस्कस करते बेनिफिट्स क्या है मल्टीथ्रेडिंग के फॉर्मली डिस्कस करते हैं कि क्या इसके बेनिफिट्स है बेनिफिट्स ऑफ मल्टी थ्रेडिंग पहला बेनिफिट रेस्प सिनेस रिस्प सिनेस अब रिस्प सिनेस के बारे में हम डिस्कस करें तो जो कोई इंटरेक्ट पप होती है ना जैसे मान लो कोई इंटरेक्ट पप है जिसमें कि बेसिकली यूजर इनपुट भी चाहिए आईओ भी हो रहा है ठीक है फिर इंटरनेट से भी कुछ वैचिंग रिकॉर्डिंग चल रही है ठीक है कोई पैरेलली कुछ और पीछे टास्क चल रहा है बैकग्राउंड में फोरग्राउंड में कुछ टास्क चल रहा है इस केसेस में ना हम क्या करते हैं इंडिपेंडेंट बहुत सारे पाथ दिखे मुझे मान लो एक क्लाउड से सिंक करने का एक इंडिपेंडेंट पाथ है दूसरा मान लो आपका यूजर से इनपुट लेने का एक डिफरेंट पाथ है ठीक है इंटरनेट से कुछ डाउनलोड करने का एक डिफरेंट बात है मान लो पीछे एक बैकअप करने का डिफरेंट बात है तो मैं इन सबको थ्रेड्स में डिवाइड कर देता हूं तो इससे क्या होता है मान लो कोई एक थ्रेड आईओ में ब्लॉक्ड भी है मान लो कोई एक थ्रेड कीबोर्ड से इनपुट भी ले रही है तो दूसरी थ्रेड बाकी फॉर्मेटिंग जैसे टास्क या कोई और टास्क भी करती रहेगी ठीक है तो वो पर्टिकुलर प्रोसेस जो है ब्लॉक नहीं हुई अगर इस प्रोसेस को थ्रेड में मैं डिवाइड नहीं करता तो इससे क्या होता सीक्वेंशियल सारे काम करने पड़ते या तो आप बैकअप कर लो या तो यूजर से इनपुट ले लो यूजर से इनपुट ले लो या तो आप फॉर्मेटिंग कर लो तो इस टाइप से काम करना पड़ता अब बट मल्टीथ्रेडिंग से मेरा क्या फायदा हुआ कि मैं इंटरेक्ट पब को ज्यादा रिस्पांसिस बना रहा हूं ठीक है कुछ ब्लॉकिंग नहीं हो रही मान लो एक पर्टिकुलर थ्रेड ब्लॉक भी है तो दूसरी थड अभी भी यूजर इनपुट ले सकती है या फिर कोई और काम कर सकती है ऐसा नहीं है कि कोई और टास्क ब्लॉक हो गया कोई और इंडिपेंडेंट टास्क ब्लॉक नहीं हुआ है तो ओवरऑल रिस्पांसिस मेरी इंक्रीज हो जाती है दूसरी बात करते हैं हम रिसोर्स शेयरिंग अब मैं थोड़ा सा हाइपोथेटिकल सिचुएशन डिस्कस करते हैं मान लो कि जो इंडिपेंडेंट टास्क थे ना जो हम बात कर रहे हैं कि एक प्रोसेस के अंदर इंडिपेंडेंट टास्क है हाइपोथेटिकली मान लो उनको मैं डिफरेंट प्रोसेस की तरह इंप्लीमेंट कर देता तो इस केस में क्या होता दो प्रोसेस के बीच में कम्युनिकेशन करना पड़ता ठीक है उस टास्क को करने के लिए ठीक है मान लो एक टास्क दोबारा से रिपीट करता हूं इस चीज को मान लो एक प्रोसेस है प्रोसेस को थ्रेड में ना डिवाइड करके उन टास्क को मैं प्रोसेसेस ही बना देता बट क्योंकि वो एक ही पर्टिकुलर काम था यूजर का ठीक है तो बट अगर मान लो दो प्रोसेस के बीच में मुझे कम्युनिकेशन करना पड़ जाए तो उसके लिए मुझे आईपीसी का यूज करना पड़ेगा इंटर प्रोसेस कम्युनिकेशन जो कि शेयर्ड मेमोरी या फिर मैसेज पासिंग के थ्रू होता है जो कि बहुत ही बेसिकली मैं बोलूं तो इनएफिशिएंट मेथड होता है क्योंकि आइसोलेशन होती है दो प्रोसेसस के बीच में आइसोलेशन के चक्कर में दो प्रोसेस के बीच में कम्युनिकेशन एस्टेब्लिश करना इट सेल्फ इज ए बिग ओवरहेड बट थ्रेड्स के केस में क्या होता है एड्रेस स्पेस जो होता है एड्रेस स्पेस जो होता है ट्स के बीच में व शेयर्ड होता है राइट ठीक है अब शेयर्ड एडर स्पेस होने की वजह से या और शेयर्ड रिसोर्सेस होने की वजह से क्योंकि एक ही प्रोसेस उसी प्रोसेस को जो रिसोर्सेस मिले हुए हैं थ्रेड्स को भी उन रिसोर्सेस का एक्सेस है क्योंकि वो उसी प्रोसेस की तो थ्रेड्स हैं तो इस केस में रिसोर्स शेयरिंग जो है बहुत एफिशिएंट होती है उनके बीच में ओवरहेड सबसे कम होता है कम्युनिकेशन गैप नहीं होता कोई ठीक है तो इस तरीके से एमटी का एक बेनिफिट है कि हम रिसोर्स शेयरिंग एक बेटर तरीके से कर सकते हैं ठीक है यह हमारा टॉपिक हो गया तीसरा पॉइंट है हमारा इसमें इकोनॉमी इकोनॉमिकल होता है थ्रेड्स जो है मोर इकोनॉमिकल होती है किस टर्म्स में अभी हमने डिस्कस किया जो प्रोसेस के बीच में कांटेक्ट स्विचिंग होती है वो बेसिकली स्लो होती है एज कंपेयर टू जो थ्रेड्स के बीच में कांटेक्ट स्विचिंग होती है ठीक है तो ओवरल में बात करूं तो इस केस में कांटेक्ट स्विचिंग मोर इकोनॉमिकल है ठीक है थ्रेड्स को क्रिएट करना भी मोर इकोनॉमिकल है राद देन प्रोसेस को क्रिएट करना क्योंकि प्रोसेस के लिए अलग से रिसोर्स एलोकेट करने पड़ेंगे ठीक है स्पेस एलोकेट करना पड़ेगा बट यहां तो जो प्रोसेस को रिसोर्स एलोकेट हुए हैं उसी प थ्रेड्स निकल सकती है ठीक है इस तरीके से इकोनॉमिकल हुआ ये चौथा मेरा आता है य जो थ्रेड्स होती हैं वह बेटर यूटिलाइज करती है यूटिलाइजेस मल्टी कोर सीपीयूज ठीक है तो मैं बोल स इस टर्म में स्केलेबिलिटी ज्यादा होती है ठीक है मतलब कि मान लो मेरे पास एक से ज्यादा सीपीयूज है ठीक है मान लो आजकल जो आठ आठ कोर आते हैं चार चार कोर आते हैं छछ एक्सा कोर ऑक्टा कोर आठ कोर है मेरे पास तो आठ कोर से मैं क्या कर सकता हूं एक प्रोसेस को आठ इंडिपेंडेंट टास्क में डिवाइड कर सकता हूं एट इंडिपेंडेंट टास्क एट इंडिपेंडेंट टास्क डिवाइड करके इन एट इंडिपेंडेंट टास्क को मैं एट इंडिपेंडेंट जो हमारे सीपीयूज है उनको प्रोवाइड कर सकता हूं तो इससे सोचो कि कितना बड़ा बेनिफिट होगा कितने अच्छे रिस्पांसिस मिलेगी मुझे आपको या फिर मुझे कोई टास्क करना होगा तो कितनी फास्ट एग्जीक्यूशन होगा उस टास्क का ठीक है लेक्चर थ्री में हमने एक एग्जांपल भी लिया था इसका जो जेपीजी टू पीएनजी कन्वर्टर का उस एग्जांपल को फिर से देखना कि किस तरीके से मैं मल्टी प्रोसेसर्स का यूज करके मल्टी कोर्स का यूज करके कैसे बेनिफिट ले पा रहा था थ्रेड्स का ठीक है तो ये हमारा हो गया थ्रेड्स के बेनिफिट्स अब एक बार थोड़ा हैंड्स ऑन कर लेते हैं c+ प् का कोड रन करके देखते हैं ठीक है उस प्रोग्राम को चला के देखते हैं किस तरीके से एक प्रोसेस को डिफरेंट थ्रेड्स में आप डिवाइड कर सकते हैं और उस डिफरेंट थ्रेड से आप कुछ टास्क करा सकते हो चलिए स्क्रीन पर चलते हैं ठीक है तो अब आपके लिए एक c+ पस की फाइल बनाई है मैंने ठीक है ड अंड c तो अब इसमें देखो यार अब तक क्या-क्या लिखा है हमने हमने दो टास्क बना रखे हैं इस प्रोसेस के अंदर मानते हैं कि ये दो इंडिपेंडेंट टास्क है टास्क ए इज इंडिपेंडेंट ऑफ टास्क बी दो फंक्शंस बना दिए हैं इस टास्क के ठीक है टास्क ए में हम क्या कर रहे हैं हम नॉर्मली एक लूप चला रहे हैं उसमें कुछ प्रिंट करने की कोशिश कर रहे हैं वन स्लिप लगा के सिमिलर काम ही हम इसमें कर रहे हैं बस हमने टास्क प्रिंट कराया य प ठीक है इसको मानो कि ये दो इंडिपेंडेंट टास्क है जो आप करना चाहते हो दे आर नॉट रिलेटेड टू ईच अदर अब इस प्रोसेस को मैं थ्रेड में डिवाइड करने के लिए क्या करूंगा सी में मुझे एक हेडर इंक्लूड करना पड़ता है श इंक्लूड थ्रेड ठीक है अब थ्रेड्स बनाते हैं थ्रेड बनाने के लिए मेरे पास एक बेसिकली य प थ्रेड टीव व थ्रेड बनाई मैंने और यहां पर मैं लिखता हूं कि अब इस थ्रेड से कौन सा टास्क कराना है ठीक है इस थड से कौन सा टास्क कराना है तो वो मैं बता देता हूं टास्क ए कराना है हमें ठीक है अगर इसके कोई आर्गुमेंट होते ना तो हम य पर कॉमा करके इधर आर्गुमेंट दे रहे होते बट आर्गुमेंट नहीं है तो अभी हम य पर कुछ नहीं दे रहे हैं ठीक है अब इसको मैं देता हूं थ्रेड ट इसको मैं टास्क बी दे देता हूं ठीक है अब बताओ अब मैंने यहां पर कोड लिख दिया है कि यह दो थ्रेड्स बन जाएंगी यानी कि एक प्रोसेस मेरी जो है यहां पर जो मेरी प्रोसेस है मैंने इसको टास्क ए और टास्क बी इसमें डिवाइड कि है और मैंने इस टास्क को t1 थ्रेड में डिवाइड कर दिया इसको मैंने t2 थ्रेड में डिवाइड कर दिया मतलब बेसिकली अब दो सब प्रोसेसेस चलेंगी बट अब एक चीज है यहां पे जैसे ही मैं इसको शूट करूंगा ना इस प्रोसेस को शूट करने क्या होगा कि जो ये पी प्रोसेस होगी पी प्रोसेस इसके दो पार्ट बन जाएंगे t1 और t2 तो तीन थ्रेड्स हो जाएंगे यहां पे एक मेन थ्रेड इसको मैं मेन थ्रेड बोलूंगा और यहां पर यह बाकी t1 t2 थ्रेड ठीक है अब क्या है यार हमें क्या करना पड़ेगा क्योंकि हम मेन थ्रेड से कोई और काम नहीं करा रहे यहां पे राइट अब इसके बाद मान लो मैं t1 t2 मैंने यहां पे थ्रेड शूट कर दी है शूट करने के बाद ये इंडिपेंडेंटली काम करने लग जाएंगी ठीक है जैसे ही मैं इस कोड को रन करूंगा t1 इंडिपेंडेंटली एग्जीक्यूट होना शुरू होगी सिमिलरली t2 एग्जीक्यूट होना शुरू होगी बट प जो है ना अब यहां पे कोई वेट नहीं है ठीक है यहां पे कुछ कोई वेट नहीं है तो प जो मेन मेन थड है मेरी य जो मेन है इंट मेन जो है य एट करने की कोशिश करेगा यह एट हो जाएगा मेन सीधा एसिट हो जाएगा ठीक है तो इससे क्या होगा देखो एक एरर आएगा अगर इसको एक्यूट करने की कोशिश करें से तो देखते क्या होता है अगर मैं इसको कंपाइल करें हम रन करने की कोशिश करें य देखो टर्मिनेट हो गया कॉल हो गया ठीक है तो य एरर क्यों आया क्योंकि मेन थ्रेड एग्जिट कर गई है ठीक है मेन थड एट कर गई तो जो सब प्रोसेसस बनाई थी हमने टीट थ्रेड बनाई थी ठीक है बेसिकली उनका पेरेंट चला गया तो इस केस में सी प् प् क्या प्रोवाइड करता है मुझे कि मैं टीव डॉट जॉइन करू यानी व वेट करेगा जब तकव पूरा कंप्लीट नहीं हो जाता मेन थ्रेड एग्जिट नहीं करेगी मेन थड बेसिकली वेट करेगी व का सिमिलरली t2 को भी हम जॉइन करा देते हैं य भी वेट करेगी ठीक है1 t2 वेट कर अब इस केस में हम फिर से ट्राई करते हैं अब एग्जीक्यूट करता हूं मैं अब ये देखो अब ध्यान से देखो ये दोनों टास्क पैरेलली चल रहे हैं ये मेरे पास जो कंप्यूटर है अभी इसके अंदर एट कोर्स है तो अभी क्या हुआ होगा कि जो t1 थ्रेड है वो मान लो सीपीय वन को मिल गई ऐसे t2 थ्रेड है वो सीपीयू टू को मिल गई अब ये पैरेलली एग्जीक्यूट हो रहे हैं तो ये पैरेलली एग्जीक्यूट हो गए इनका आंसर भी आ गया ठीक है आउटपुट आ गई आपकी मान लो सबसे पहले आप देखो अगर ऑब्जर्व करोगे तो t1 क्योंकि हमने पहले लच करी थी तो t1 सबसे पहले स्केड्यूल हुई ठीक है उसको प्रोसेसर वन मिल गया होगा सिमिलरली प्रोसेसर टू मिला होगा इनमें हम प्रिंट एफ का काम करा रहे हैं आपको ऐसे करके आउटपुट मिल गई है तो इस तरीके से मैं एक प्रोसेस को थ्रेड्स में डिवाइड कर सकता हूं और उससे कंक्रेंस का बेनिफिट उठा सकता हूं मल्टीथ्रेडिंग का बेनिफिट उठा सकता हूं ठीक है तो इस लेक्चर को यहीं पे खत्म करते हैं आगे डिस्कस करेंगे थ्रेड्स में बहुत कुछ ठीक है मिलते हैं नेक्स्ट वीडियो में बाय हेलो जी कैसे हो सारे दि लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 16 पर और आज हम डिस्कस करने वाले हैं बहुत ही इंपॉर्टेंट टॉपिक्स बहुत ही इंपॉर्टेंट के साथ-साथ बहुत ही इंटरेस्टिंग टॉपिक्स पिछली वीडियो में हमने शुरू किया था कंक्रेंस का मॉड्यूल जिसके अंदर हम थ्रेड्स के बारे में पढ़ रहे थे थ्रेड्स की सिंक्रोनाइजेशन के बारे में पढ़ रहे थे ठीक है थ्रेड्स प्रोसेस को थ्रेड्स में डिवाइड करते हैं डिवाइड करके वो कैसे एग्जीक्यूट होती है हमने थ्रेड्स बनाई थी पिछली वीडियो में ठीक है तो हम इस वीडियो में डिस्कस करेंगे कि जब थ्रेड हम बना लेते हैं एक प्रोसेस को थ्रेड में डिवाइड कर लेते हैं और जब वो वर्क कर रही होती है तो इससे क्या प्रॉब्लम अराइज होती है ठीक है किस तरीके से प्रॉब्लम अराइज होती है क्रिटिकल सेक्शन क्या होता है ठीक है और क्रिटिकल सेक्शन की प्रॉब्लम को बेसिकली एड एड्रेस करते हैं ठीक है सारे टर्म्स अभी हम डिस्कस करेंगे ठीक है उससे पहले मैं आपसे चीज डिस्कस करना चाहूंगा कि जो आप लिखते हो ना काउंट हम नॉर्मल सी प्स प्स में लिखते हैं काउंट प् प्लस जिसका मतलब होता है काउंट इक्वल टू काउंट प्लस वन राइट तो आपने तो लिख दिया काउंट इक्वल टू काउंट प्सव बट एक्चुअली ये कर्नल साइड प बोलू या फिर मैं एक्चुअली मैं बोलू कि सीपीयू लेवल प ये किस तरीके से प्लस प्लस हो रहा होता है वो बताता हूं आपको यह जो काउंट प्लस प्लस है बेसिकली यह मैं अगर मशीन कोड की लैंग्वेज बोलू तो सबसे पहले क्या होता है कि सबसे पहले टंप वेरिएबल बनता है ठीक है उसके अंदर जो करंट काउंट की वैल्यू है वह प्लस वन स्टोर होती है उसके बाद जो एक्चुअल काउंट है वह टेंप से रिप्लेस होता है ठीक है तो मैं बोल सकता हूं यह पर्टिकुलर काउंट प्लस प्लस है जो आपको दिखता है सामने काउंट प्लस प्लस नहीं है इसके अंदर एक वेरिएबल आल्सो इवोल्व होता है टेंपररी वेरिएबल ठीक है व यह मैं क्यों डिस्कस कर रहा हूं वह अभी हम समझते हैं ठीक है आप सबने आधार कार्ड बनवाया है अपना राइट ठीक है नहीं बनवाया तो बनवा लो जाके बहुत इंपोर्टेंट है यह मेरे पास मान लेते हैं य सेंटर है ठीक है आधार सेंटर है ठीक है और यह मेरे पास ए बी सीडी करके मान लो बहुत सारे आधार के उसका काउंट मेंटेन कर रहे हैं ठीक है अब आप ध्यान से देखो कि जो यह पर्टिकुलर आधार सेंटर है यह तो आधार सेंटर जो एक मेन हेड क्वार्टर की बात कर रहा हूं यह एक डेटाबेस ठीक है यह डेटाबेस है मतलब इसके पास डेटाबेस होगा जहां पर सारी चीजें स्टोर्ड हो रही होंगी ठीक है अब आधार सेंटर जो बेसिकली ये आधार ऑफिस है वह यह भी इसमें कुछ अपडेट कर रहा होगा बी भी कुछ अपडेट कर रहा होगा डी भी कुछ अपडेट कर रहा होगा ऐसे सी भी अपडेट कर रहा होगा और अपडेट कर रहा होगा मान लो कि लोग तो यहां भी आ रहे हैं ठीक है लोग यहां भी आ रहे हैं लोग बेसिकली यहां भी आ रहे हैं अब यह भी थोड़ी थोड़ी देर में बोलता है कि भाई काउंट जो है ना काउंट प्लस प्लस कर दो यह भी थोड़ी थोड़ी देर में बोलता है काउंट जो है प्लस प्लस कर दो ऐसे सिमिलरली सारे ही बोलते हैं कि काउंट प्लस प्लस कर लो अब मैं बोल सकता हूं कि जो एक पर्टिकुलर डेटाबेस है यह जो डेटाबेस है ठीक है ये जो डेटाबेस है ये जो डेटाबेस है यह बेसिकली एक शेयर्ड रिसोर्स है शेयर्ड रिसोर्स मतलब जितनी भी थ्रेड्स है जितनी भीय थ्रेड्स है मैं इनको थ्रेड्स बोल रहा हूं जितने भी थ्रेड्स है वो बेसिकली इस शेयर्ड रिसोर्स पर जाके चीजें अपडेट करती है ठीक है अभी हमने पढ़ा था कि हम एक प्रोसेस को इंडिपेंडेंट पाथ में डिवाइड कर देते हैं राइट इंडिपेंडेंट एग्जीक्यूशन ऑफ पाथ में यानी कि वो दोनों एग्जीक्यूटेड बेसिकली म्यूचुअल एक्सक्लूसिव पाथ है बट क्योंकि वो एक प्रोसेस का पार्ट है तो ऐसे कुछ एरियाज हो सकते आपके कोड के अंदर जहां पर वो दोनों तीनों थ्रेड्स एक ही जगह पर काम कर रहे हो या एक ही डाटा पर काम कर रहे हो या एक ही जगह पर राइट कर रहे हो ठीक है एक ही डेटाबेस को अपडेट करने की कोशिश कर रहे हो वही वाला सिनेरियो हमारे पास यहां पर है अब इमेजिन कि मान लो अभी काउंट अभी मान लो करंट अकाउंट मेरा 11 था ठीक है और आधार ए से रिक्वेस्ट आती है कि एक सिटीजन ऐड हुआ है वो बेसिकली आप 11 प्लस प्लस कर दो यानी कि 12 कर दो इसको तो अब यहां पर डेटा सेंटर में जब ये रिक्वेस्ट आई होगी ठीक है उसी पॉइंट पर मान लो जब काउंट 11 था उसी पॉइंट पर बी बी ने भीय रिक्वेस्ट भेज दी ठीक है कि बी ने बोला कि भाई काउंट प्लस प्लस कर दो अब इन दोनों की रिक्वेस्ट को कैसे कैटर करेंगे ठीक है कैसे कैटर करेंगे हम कि भाई मान लो मैं पहले एक की रिक्वेस्ट लेता हूं एक की पहले आई थी मान लो तो यहां पर जो काउंट प्लस प्लस की कॉल होगी जो काउंट प्लस प्लस का कोड होगा वो कैसे वर्क करेगा पहले एक टप वेरिएबल बनेगा ठीक है उसके अंदर करंट अकाउंट प्लस वन कॉल होगा ठीक है तो मैं बोल सकता हूं यहां पर और फिर टेंप के अंदर स्टोर हो जाएगा करंट काउंट कितना था 11 तो 11 प्सव कितना हो गया मेरे पास 12 हो गया करंट काउंट 12 होगा ठीक है अब करंट काउंट जब 12 था उसी पॉइंट में मान लो कंटक्ट स्विच होता है ठीक है कंटक्ट स्विच होता है जो बी की रिक्वेस्ट आई थी बी की थ्रेड जो रिक्वेस्ट लेके आई थी काउंट प्लस प्लस की अब उसे वो कटर करने लग जाता है सीपीयू अब क्या होगा बी पर गया मैं बी की रिक्वेस्ट केटर कर रहा हूं बी ने भी बोला भाई काउंट प्लस प्लस कर दो अब बी के केस में जब टंप इक्वल टू काउंट प्लस वन केस होगा तो यहां पर भी काउंट अभी क्या है ध्यान से देखो अभी यहां पर टेंप 12 से अपडेट हुआ है काउंट नहीं हुआ है अपडेट ठीक है तो अब इस केस में पहले काउंट कितना होगा अभी भी यहां पर काउंट 11 ही होगा तो यहां पर भी जो टप की वैल्यू स्टोर होगी वो 11 बेसिकली 11 प्व 12 स्टोर होगी ठीक है अब आप ध्यान से देखो दोनों जगह हालांकि दो अपडेशन की रिक्वेस्ट थी ये दोनों अपडेट होनी चाहिए थी बट दोनों ना होक यहां पर क्या हो रहा है ये भी 12 से अपडेट हो रहा है य भी 12 अपडेट हो रहा है अब फदर मान लो कंटेस्ट से हो के वापस ए प आता हूं तो यहां पर क्या होगा काउंट इक्वल टू टप हो जाएगा यानी काउंट 12 हो गया सिमिलरली यहां भी काउंट इक्वल टू टप हो जाएगा यानी कि दो रिक्वेस्ट होने के बावजूद दो रिक्वेस्ट होने के बावजूद फाइनल काउंट मेरा 12 ही रहता है क्या यह सही चीज है यह सही चीज बिल्कुल भी नहीं है एक सिटीजन की रिक्वेस्ट जो प्लस प्लस की रिक्वेस्ट थी व लॉस्ट ही कर गया हूं ठीक है अब इस प्रॉब्लम को मैं बोलता हूं जो ये बेसिकली डाटा इनकंसिस्टेंसी की प्रॉब्लम आ रही है ये है रेस कंडीशन अब मान लो कि अभी तो ए और बी से रिक्वेस्ट आई थी ए और बी से रिक्वेस्ट आई थी और मान लो डी से भी सी से भी इन तीनों से साथ में रिक्वेस्ट आ रही होती साथ में रिक्वेस्ट आई और अपडेट हो रहा है सिर्फ वन ठीक है यानी कि आईडियली अगर चारों से एक एक एक एक रिक्वेस्ट आई है तो ये टोटल वैल्यू 15 होनी थी बट 15 ना होके ये वैल्यू हो रही है मान लो 1213 ही ठीक है तो इस चक्कर में हमारे पास लॉस्ट हो जा रहा है हमारा डाटा जो है कंसिस्टेंट हो जा रहा है हम रिलाई नहीं कर पा रहे हैं मल्टीथ्रेडेड तो बना दिया हमने अपना कोड बट हम रिलाई नहीं कर पा रहे जो वो कोड बेसिकली फाइनल कर रहा है एग्जीक्यूट कर रहा है तो अब यह मैं आपसे प्रॉब्लम क्यों डिस्कस कर रहा हूं क्योंकि जो यह पर्टिकुलर डेटाबेस है ना यह है मेरा क्रिटिकल सेक्शन ठीक है क्रिटिकल सेक्शन और जो यह कंडीशन हो रही थी जो इनकंसिस्टेंट डाटा जनरेट हो रहा था कभी बेसिकली मान लो चारों साथ में रिक्वेस्ट आ रही है तो कभी 12 आ जाएगी आंसर कभी 13 आ जाएगा कांटेक्ट स्विचिंग की वजह से कुछ ना कुछ डटा लेस हो जाएगा इसको मैं बोल रहा हूं रेस कंडीशन ठीक है अब क्रिटिकल सेक्शन हमें समझ आ गया ऐसा सेक्शन बेसिकली ऐसा सेगमेंट ऑफ कोड आपका कोड का ऐसा हिस्सा जहां पर मल्टीपल थ्रेड्स आके एक साथ काम करती हैं क्योंकि वो एक शेयर्ड रिसोर्स है ठीक है वो एक क्रिटिक नाम भी ऐसा रखा हमने क्रिटिकल सेक्शन कि वो एक शेयर्ड रिसोर्स है वो इतना ज्यादा क्रिटिकल है उसका डाटा अपडेशन होना इतना ज्यादा क्रिटिकल है इतना ज्यादा हमें केयरफुली से अपडेट करना है कि अगर हमने नहीं किया तो डटा इनकंसिस्टेंसी आ जाएगी इसलिए मैं उसको क्रिटिकल सेक्शन बोलता हूं और इस प्रॉब्लम को जो ये प्रॉब्लम अराइज हो रही है ना बेसिकली इनकंसिस्टेंट डाटा अराइज होने की ठीक है इसको मैं बोलता हूं रेस कंडीशन रेस कंडीशन ना करोगे यानी कि एक से ज्यादा थ्रेड जो है रेस कर रही है आपस में ठीक है क्योंकि जो डटा जनरेट हो रहा है वो बेसिकली इ इन एप्रोप्रियेट इसकी डेफिनेशन प जाऊं दोनों की नोट्स में चलते हैं सीधा तो बेसिकली क्रिटिकल सेक्शन ऐसा सेक्शन है जहां पर बेसिकली जो मेरा ऐसा कोड रखा हुआ है जो हां पर शेड रिसोर्स है कुछ कॉमन वेरिएबल हो सकते हैं फाइल्स हो सकते हैं और जो ऑपरेशन है वो राइट ऑपरेशन हो रहा है उन पर ठीक है और कंकट बहुत सारी थ्रेड उस पर काम कर रही है ठीक है इसको मैं क्रिटिकल सेक्शन बोल रहा हूं सिंपल अब क्रिटिकल सेक्शन मेरे पास है ठीक है बहुत सारी थ्रेड काम कर रही है उसपे ठीक है तो इससे मेजर इशू क्या हो रहा है वो रेस कंडीशन का इशू है ठीक है अब रेस कंडीशन का इशू क्या है रेस कंडीशन इशू अकर व्हेन टू और मोर थ्रेड कैन एसेस शेयर्ड डाटा एंड देन ट्राई टू चेक इट ठीक है यहां पे एक से ज्यादा थ्रेड्स बेसिकली काम कर रही है एक ही साइम सली और उसको अपडेट करने की कोशिश कर रही हैं इससे रिजल्ट क्या आता है रिजल्ट आता है रिजल्ट ऑफ द चेंज इन डाटा इज डिपेंडेंट ऑन द स्केड्यूल एल्गोरिथम एंड बोथ थ्रेड्स आर रेसिंग टू एक्सेस डाटा चेंज ठीक है जैसे यहां पर एग्जांपल में हो रहा था ना कि ये वाली थ्रेड भी कह रही थी डाटा चेंज कर दो ये वाली कह रही थी सारी थ्रेड्स कह रही थी टा चेंज कर दो इस चक्कर में रेस कंडीशन कर रही थी यानी कि सारी थ्रेड्स अपर में रेस कर रही थी ठीक है बी कह रही थी मैं पहले अपडेट कर दूं ए कह रही थी मैं पहले अपडेट कर दूं अब यह कंडीशन मैं बोलूं कि जो आउटपुट आ रही है जो ये काउंट की आउटपुट आ रही है किस पर डिपेंडेंट होगी ये डिपेंडेंट होगी कि भाई जो आउटपुट है वो डिपेंडेंट होगी कि शेड्यूलिंग थ्रेड स्केड्यूल किस तरीके से हो रही है थ्रेड शेड्यूलिंग का मतलब अगर बी को पहले मौका मिल गया तो बी अपने हिसाब से डाटा चेंज कर देगा ए को पहले मौका मिल गया तो a अपने हिसाब से डाटा चेंज कर देगा तो मैं बोलूं कि मेरे पास रिलायबल डाटा तो एट एनी कॉस्ट नहीं रहेगा इसका एग्जांपल सिंपली देते हैं सीधा स्क्रीन पे आते हैं कि किस तरीके से डाटा इनकंसिस्टेंट है ठीक है हमने एक कोड लिखा है जिसके अंदर हमने क्या किया है एक बेसिकली python.py पे हमने कोड लिख लिया तो python2 मैं क्या कर रहा हूं मैं इसको 10 लाख बार चला रहा हूं ठीक है अब 10 लाख बार चलाने के बाद मेरे पास जो दो थ्रेड हो रही है दो थ्रेड जो है व इस बेसिकली फंक्शन को एी क्यूट करेंगी तो आईडियली होना क्या चाहिए था आपके दिमाग में क्या आ रहा होगा थ्रेड वन भी मान लो बेसिकली थ्रेड वन भी मान लो टास्क को चला रही होगी सिमिलरली थड टू भी टास्क को चला रहा होगा तो आइली होना चाहि दो अलग अलग इंस्टेंस चल रहे हैं ठीक है साथ में पैरेलली चल रहे हैं तो जो आउटपुट है ना आउटपुट व आनी चाहिए थी 20 लाख राइट आपके दिमाग में ऐसा आ रहा होगा बट ऐसा बिल्कुल भी नहीं होगा देखते रन करके यह देखो कितनी आ रही है 20 लख से तो कम है दोबारा रन करूंगा चेंज हो जाएगी वैल्यू फिर से दोबारा रन करूंगा चेंज हो जाएगी वैल्यू तो मैं देख सकता हूं कि वैल्यू ना जो आउटपुट है वह इनकंसिस्टेंट है वह इनकंसिस्टेंट है इनकंसिस्टेंट क्यों है कि अब ये दो थ्रेड चल रही है तो डिपेंड शेड्यूलिंग एल्गोरिथम जिस तरीके से स्केड्यूल हो रही है उसी हिसाब से ये वैल्यू चेंज हो रही है और बेसिकली आउटपुट आ रही है और यह प्रॉब्लम आ क्यों रही है यह प्रॉब्लम आ रही है जो हमने अभी डिस्कस किया था इस वजह से कि जो यह काउंट काउंट प्लस वन होता है यह टंप रिबल में स्टोर होके होता है तो जिस चक्कर में मान लो टप रिबल जब स्टोर हुआ यहां पे इस पोजीशन पे इस पोजीशन पर अगर कांटेक्ट स्विच हो गया कंटेक स्विच हो गया तो इस चक्कर में क्या होगा मेरे पास टप तो बेसिकली काउट तो अपडेट हुआ ही नहीं तो जो दूसरी थ्रेड के लिए काउंट तो पुरानी वैल्यू होगी तो इस चक्कर में मेरे पास इनकंसिस्टेंट डाटा जनरेट हो जाता है ठीक है तो यह मेरे पास प्रॉब्लम हो गई हमने देख ली इसको मैं क्रिटिकल सेक्शन प्रॉब्लम भी बोल देता हूं ठीक है क्रिटिकल सेक्शन प्रॉब्लम अब प्रॉब्लम तो हमने देख ली ठीक है प्रॉब्लम तो हमने देख ली अब इसका सलूशन क्या है ठीक है रेस कंडीशन का क्या सलूशन होगा पहला सलूशन जो हमारे दिमाग में आता है वो आता है कि जो यह पर्टिकुलर जो काउंट है तो काउंट में किस तरीके से जो काउंट प्लस प्लस है वो पहले टेंप में स्टोर होता है ठीक है टेंप में प्लस वन होता है फिर उसके बाद काउंट में टेंप स्टोर होता है इसको अगर मैं किसी तरीके से एक एटॉमिक ऑपरेशन बना दूं एटॉमिक ऑपरेशन का मतलब है कि यह सिंगल बेसिकली एक ही सीपीयू साइकिल में एग्जीक्यूट हो जाए ठीक है एक ही सीपीयू साइकिल में एग्जीक्यूट हो जाए ये बेसिकली डिवाइड ना हो दो एक से दो सीपी साइकिल में जैसे य दो सीपी साइकिल में डिवाइड हो गई इस तरीके से दो सीपी साइकिल में डिवाइड ना हो एक ही में हो जाए तो इसको मैं अगर एटॉमिक ऑपरेशन बना दूंगा तो मेरा काम बन जाएगा राइट तो c+ प्स के अंदर ना यार आपके पास एक एटॉमिक वेरिएबल बनाने का सपोर्ट होता है ठीक है एटॉमिक वेरिएबल बना सकते हो आप कोई भी तो एटॉमिक वेरिएबल बनाने से क्या होगा वो थ्रेड सेफ होता है फिर ठीक है थ्रेड सेफ का मतलब हुआ कि वो इनकंसिस्टेंट रिजल्ट कभी भी जनरेट नहीं करेगा कोई भी थ्रेड अगर उस पर्टिकुलर वेरिएबल पे अगर कोई भी बेसिकली राइट ऑपरेशन कर रही है कोई भी मैनिपुलेशन कर रही है तो मैनिपुलेशन कंप्लीट होगा तभी कंटक्ट स्विच होगा ठीक है तो मैं ये काम कर सकता हूं बट यह ब सारी लैंग्वेजेस में होता नहीं है ठीक है दूसरा तरीका मेरा क्या है दूसरा तरीका है मैं किसी तरीके से ना म्यूचुअल एक्सक्लूजन ले आऊ म्यूचुअल एक्सक्लूजन लि आऊ म्यूचुअल एक्सक्लूजन का मतलब क्या है कि मान लो यह पर्टिकुलर क्रिटिकल सेक्शन है ठीक है तो जो t1 t2 थ्रेड है ना वो इसको साम असली एग्जीक्यूट ना करे साम एग्जीक्यूट ना करके पहले t1 एग्जीक्यूट करें t1 एग्जिट कर जाए ये प पहली हो गई फिर उसके बाद t2 आए फिर t2 एग्जीक्यूट कर जाए तो इससे मैं देखूं तो मैं पैरेलली क्रिटिकल सेक्शन को एग्जीक्यूट नहीं कर रहा हूं मैं इसको दो दो मैंने सीक्वेंशियल कर दिया इस काम को ठीक है सीक्वेंशियल का मतलब t1 एग्जीक्यूट हो रही है या फिर t2 एग्जीक्यूट हो रही है या फिर मैं t2 एग्जीक्यूट कर दूं और t1 एग्जीक्यूट कर दूं इसको मैं कैसे कर सकता हूं म्यूचुअल एक्सक्लूजन मैं कैसे ला सकता हूं इसके लिए जो आपकी कोई भी लैंग्वेज है ना वह आपको सपोर्ट देती है लॉक्स का लॉक्स म्यूट्स बोल देते हैं इसको टेक्स टेक्स लॉक्स लॉक्स प्रोवाइड करती है कोई भी लैंग्वेज c+ में टेक्स बना सकते हैं टेक्स को लॉक कर सकते हैं ठीक है लॉक्स कर सकते हैं लॉक करने के बाद आप म्यूचुअल एक्सशन ला सकते हो यानी कि जब t1 थ्रेड लॉक करेगी तो t2 अंदर नहीं जा पाएगी t2 पहले लॉक कर देगी तो t1 अंदर नहीं जा पाएगी जब t1 अगर अंदर चली गई पहले लॉक करके तो जब तक t1 अनलॉक नहीं करेगी t2 अंदर नहीं जा सकती डिटेल सेक्शन में ठीक है तीसरा तरीका होता है मैं सीमा फोर्स यूज कर लूं ठीक है सबसे पहले हम लिखते हैं कि यार ये जो लॉगस वाले सॉल्यूशन है ये म्यूचुअल एक्सक्लूजन है ये कैसे काम करता है जो अभी हमने एग्जांपल दिया था उसी पे हम लॉग वाले सॉल्यूशन बेसिकली लगाते हैं और देखते हैं कैसे चलता है वो आ जाओ ये बेसिकली हमने क्या किया है सेम कोड है हमारे पास ठीक है सेम कोड में हमने क्या किया ये बेसिकली टास्क है और ये मेरे पास लॉक है ये मैंने लॉक बना दिया एक लॉक सिंपल ताला है ठीक है वो क्या क्या कर रहा है बेसिकली रूम में मैं किसी एक बंदे को एक बार में जाने दूंगा ठीक है जब तक वो बाहर नहीं आ आ जाता नेक्स्ट बंदा नहीं जा सकता अंदर ऐसा ही कुछ हो रहा है यहां पे ठीक है तो ये पर्टिकुलर सेक्शन क्रिटिकल सेक्शन था ठीक है जो काउंट प्लस प्लस की चीज थी इसको मैं क्रिटिकल सेक्शन बना रहा हूं कि भाई कोई एक थ्रेड जाएगी जब तक वो प्लस प्लस नहीं कर देती दूसरी थ्रेड प्लस प्लस नहीं करेगी ठीक है तो हमने पहले लॉक एक्वायर किया फिर रिलीज कर दिया ऐसे कोड लिखा हुआ है अब मैं इसको जब चलाऊंगा तो अब देखो क्या वैल्यू आती है अब मैं जितनी बार भी चलाऊं वैल्यू हमेशा कंसिस्टेंट वैल्यू आएगी ठीक है एक डिटरमिनेट वैल्यू आएगी मैं बता सकता हूं क्या वैल्यू आएगी पहले क्या हो रहा था वैल्यू चेंज हो जा रही थी ठीक है अब क्या हो रहा है एटली अब क्या हो रहा है एक्जेक्टली अब भी वहां पर क्रिटिकल सेक्शन तो अब भी अवेलेबल है ठीक है बट अब क्या हो रहा है t1 थ्रेड अगर अंदर जा रही है तो वह क्या कर दे रही है वो बेसिकली इसको लॉक कर दे रही है लॉक कर लॉक करने के बाद क्या हो रहा जो t2 थ्रेड है t2 थ्रेड इसको ट्राई करेगी तो वो कर नहीं पाएगी इसको एक्सेस ठीक है ठीक है इस तरीके से काम हो रहा है तो यहां पे म्यूचुअल एक्सक्लूजन हम ले आए ठीक है अगर t1 पहले शेड्यूल हुई तो t1 के बाद ही t2 जा पाएगी अंदर ठीक है ऐसा नहीं होगा कि d1 t2 दोनों ही एक बारी में प्रेजेंट है क्रिटिकल सेक्शन के अंदर तो इस तरीके से जो बेसिकली लॉगस है हमारे लॉक्स हैं वो क्रिटिकल सेक्शन प्रॉब्लम को सॉल्व कर देते हैं ठीक है तो इस तरीके से हमने देखा एग्जांपल के थ्रू ठीक है चलिए आगे बढ़ते हैं अब लॉक्स तक तो हम पहुंच गए लॉक्स को थोड़ा बाद में दोबारा से कंटिन्यू करेंगे बट उससे पहले हम समझते हैं कि क्या यह लॉगस य सीमा फर इस टाइप की जो बड़ी बड़ी टर्म्स आप बेसिकली बोल रहे हो उससे बेटर हम एक फ्लैग ना यूज कर ले ठीक है सिंपली बेसिकली क्रिटिकल सेक्शन मे पास दो थ्रेड्स को अगर स्केड्यूल करना तो सिंपल एक फ्लैग यूज कर लेता हूं ठीक है एक फ्लैग यूज कर लूंगा फ्लैग यूज कर लूंगा तो काम मेरा बन जाएगा बट इतना सिंपल नहीं है यह स कैन वी यूज सिंगल फ्लैग कैन वी यूज सिंगल फ्लैग ब उससे पहले हम डिस्कस करते हैं कोई भी क्रिटिकल सेक्शन को सॉल्व करने का सलूशन होगा ना उसके अंदर तीन चीज होनी चाहिए ठीक है तीन चीजें होनी चाहिए कि भाई जो सॉल्यूशन ऑफ क्रिटिकल सेक्शन शुड हैव थ्री कंडीशंस पहली कंडीशन क्या है म्यूचुअल एक्सक्लूजन होना मच हम समझ गए कि एक बारी में एक ही थ्रेड बेसिक क्रिटिकल सेक्शन के अंदर जा पाए ठीक है दूसरा होता है प्रोग्रेस अब प्रोग्रेस कंडीशन डिस्कस करते हैं प्रोग्रेस क्या है कि अब मान लो मेरे पास कोई क्रिटिकल सेक्शन है ठीक है और मेरे पास दो थ्रेड है t1 एंड t2 ठीक है अब ये दोनों ही जो है वो क्रिटिकल सेक्शन से अभी बाहर है ठीक है तो अब मैं बोलता हूं कि प्रोग्रेस का मतलब है कि अगर कोई भी थ्रेड कोई भी मान लो दो थ्रेड्स है कोई भी थ्रेड अगर बेसिक टिकल सेक्शन के अंदर नहीं है तो किसी और थ्रेड को क्रिटिकल सेक्शन में जाने से ना रोके ठीक है इसका मतलब अगर क्रिटिकल सेक्शन फ्री है तो कोई भी थ्रेड क्रिटिकल सेक्शन में जा पाए यानी सबको इक्वल अपॉर्चुनिटी मिले जो जाना चाहती है वो चली जाए ठीक है इसका मतलब होता है प्रोग्रेस ठीक है ऐसा कोई फिक्स्ड ऑर्डर ना हो कि जब तक t1 नहीं जाएगी t2 नहीं जाएगी ठीक है ऐसा कुछ फिक्स ऑर्डर ना हो कि t1 नहीं जाएगी तो t2 नहीं जाएगी ऐसा ऑर्डर नहीं होना चाहिए t2 नहीं जाएगी तब तक t1 नहीं जाएगी ऐसा कोई भी ऑर्डर नहीं होना चाहिए जोन सी पहले जाना चाहती है वो चली जाए इस तरीके से जो मेरा सीएस को सॉल्व करने का से प्रॉब्लम को सॉल्व करने का सलूशन है उसके अंदर प्रोग्रेस वाली कंडीशन भी होनी चाहिए इसके बारे में आगे थोड़ी देर में डिस्कस करेंगे हम फदर ठीक है तीसरा होता है मेरा बांडेड वेट बांडेड वेटिंग बोल सकते हैं इसको बाउंड वेट का मतलब है कि कोई भी थ्रेड हो ना कोई भी थ्रेड वो इनफिट वेट ना करे इनफिट बटिंग ना करे का क्या मतलब है कि ऐसा ना मेरे पास मान लो तीन चार थ्रेड्स है तो तीन चार थ्रेड्स में से चार थ्रेड्स में से तीन को तो मौका मिल रहा है क्रिटिकल सेक्शन में जाने का बट एक थ्रेड है t1 उसको मौका ही नहीं मिल रहा है क्रिटिकल सेक्शन में जाने का यानी कि एक टाइम बाउंड होना चाहिए कि इस पर्टिकुलर टाइम के बाद एक कोई प्रोसेस है वो या थ्रेड है वो क्रिटिकल सेक्शन में घुस ही जाएगी क्रिटिक में चली ही जाएगी उसको एंट्री मिल ही जाएगी ठीक है तो एक हार्ड स्टॉप होना चाहिए ठीक है कि कोई कितना कोई पर्टिकुलर थ्रेड कितना ज्यादा वेट कर सकती है तो इनफिट वेटिंग नहीं होनी चाहिए ठीक है और कोई लिमिटेड वेटिंग टाइम होना चाहिए इसका मतलब बट जो यह तीसरी कंडीशन है ना यह कोई ज्यादा फुलफिलिंग कंडीशन नहीं है कोई ज्यादा मैंडेटरी कंडीशन नहीं है पहली दो कंडीशन है यह जरूर होनी चाहिए कोई भी सोल्यूशन आप प्रपोज कर रहे हो क्रिटिकल सेक्शन का तो ठीक है अब हम वापस से आते हैं इस क्वेश्चन पर कि कैन वी यूज सिंगल फ्लैग क्या हम सिंगल फ्लैग यूज कर सकते हैं ठीक है क्या हम सिंगल फ्लैग यूज कर सकते हैं सिंगल फ्लैग सोल्यूशन कि क्रिटिकल सेक्शन का कोई सिंगल फ्लैग सलूशन देने की कोशिश करते हैं अब सलूशन प्रपोज कर रहे य मैंने जल्दी से ड्र कर दिया इसमें क्या है हम क्या कर रहे हैं एक टर्न फ्लैग का यूज कर रहे हैं ठीक है टर्न फ्लग का यूज कर रहे और दो थ्रेड है तो इसकी दो वैल्यूज हो सकती है या तो जीरो या वन ठीक है या तो जीरो या वन तो अब इस केस में देखो मान लो t1 थ्रेड है य2 थ्रेड का केस है फर्स्ट केस ले लेते हैं फर्स्ट केस में मान लो मैंने टर्न की वैल्यू जीरो ले ली नहीं जीरो ले ली अब जीरो लेने के केस में क्या हो कि मालो t1 थ्रेड के केस में आऊंगा मैं तो जीरो होगा जीरो इज नॉट इक्वल टू जीरो बट जी इक्वल टू जी तो ये फाल्स कंडीशन हो जाएगी ये फॉल्स होगी तो ये क्रिटिकल सेक्शन में घुस जाएगा अब इसी केस में जो t2 है t2 में क्या हो रहा जो जीरो है नॉट इक्वल टू जीरो है ठीक है दिस इ ट्रू अब ट्रू के चक्कर में क्या हो जाएगा यह जो ट थ्रेड है ये यहां पर वेट करती रह जाएगी ये वाइल लूप में फस जाएगी य वेट करेगी अब इस केस में इस कंडीशन में जब जीरो था तो ये तो क्रिटिकल सेक्शन में घुस गई यानी कि मैंने यह चीज अचीव कर ली कि एक बारी में एक बेसिकली थ्रेड जो है क्रिटिकल सेक्शन में एंटर कर गई है ठीक है क्योंकि दूसरी थ्रेड तो यहां वेट कर रही है ठीक है अब उसके बाद क्या होगा टर्न इक्वल टू वन हो जाएगा कट सेक्शन काम हो चुका है टर्न इक्वल टू वन होगा जब टर्न वन होगा तो न इज नॉट इक्वल टूव दैट इज फॉल्स अब फल्स होने चक्कर में इधर मैं क्रिटिकल सेक्शन में t2 की एंट्री हो जाएगी और t1 तो यहां से एग्जिट हो गया था t2 की इधर एंट्री हो गई इस चक्कर में क्या हुआ जब t1 जो है t1 पहले स्केड्यूल हुआ फिर t2 हो गया ठीक है तो मैं बोल सकता हूं कि मैंने म्यूचुअल एक्सक्लूजन जो है वो अचीव कर लिया है सिमिलरली अगर मान लो दूसरा केस ले लेता हूं मान लो स्टार्टिंग में टर्न जो है वन होता अगर टर्न वन होता तो सबसे पहले वन इज नॉट इक्वल टूवन ये फॉल्स हो जाता तो t2 को पहले मौका मिलता ऐसे t1 को मौका मिलता फिर t1 को मौका मिलता ठीक है तो इस तरीके से काम करता तो मैं बोल सकता हूं कि जो सिंगल फ्लैग की मदद से भी मैंने म्यूचुअल एक्सक्लूजन तो बेसिकली अचीव कर लिया है बट जो दूसरी कंडीशन थी मेरी जो दूसरी इंपोर्टेंट कंडीशन प्रोग्रेस ठीक है जिसमें था कि अगर कोई भी मान लो जब जब t इ ट 0 है जब कोई भी थ्रेड क्रिटिकल सेक्शन में नहीं है सब बेसिकली क्रिटिकल सेक्शन से भी बाहर ही है ठीक है दोनों थ्रेड मालो t1 और t2 भी बाहर ही है तो इस केस में क्या है कि जोन सी भी पहले जाना चाहे वह जा सकती है राइट बट अगर आप ध्यान से देखोगे कि टर्न की वैल्यू अगर जीरो होती है तो एक फिक्स्ड ऑर्डर आ रहा है कि भाई पहले t1 ही जाएगी फिर t2 जाएगी टर्न की वैल्यू इनिशियली वन होगी यानी कि इनिशियल वैल्यू पे इनिशियल वैल्यू पर डिपेंड कर रही है चीजें ऐसा नहीं है कि मान लो t1 t2 दोनों थ्रेड है तो अभी तो दोनों कटल सेक्शन से बाहर ही है तो इस केस में बेसिकली दे आर फ्री टू मेक चॉइस ठीक है कोई भी थ्रेड अंदर जा सकती है ऐसा कुछ भी नहीं है यहां पे ठीक है एक फिक्स्ड ऑर्डर आ रहा है यहां पे बोल सकता हूं एक फिक्स्ड ऑर्डर आ रहा है तो इस चक्कर में बोल सकता हूं कि जो प्रोग्रेस वाली कंडीशन है यह तो फुलफिल नहीं हुई तो मैं बोल सकता हूं जो सिंगल बेसिकली सिंगल फ्लैग का सॉल्यूशन है वो वो एक राइट सलूशन नहीं है सही सलूशन नहीं है मज एक्सक्लूजन तो मिल गया है बट एक फिक्स्ड ऑर्डर में मिला है तो दैट इज नॉट गुड ठीक है कि कोई भी प्रोसेस जो बेसिकली प्रोग्रेस कंडीशन थी वो फुलफिल ही नहीं हुई कि कोई भी प्रोग्रेस जो क्रिटिकल सेक्शन में फ्रीली एंटर कर पाए कोई कोई सीक्वेंस नहीं होनी चाहिए फिक्स राइट तो इसी का इंप्रूव्ड सॉल्यूशन ना तो ये जो सिंगल फ्लैग सॉल्यूशन है जो कि कंप्लीट सॉल्यूशन नहीं है इसी की इंप्रूवमेंट करी गई ठीक है इसकी इंप्रूवमेंट करी और एक सलूशन बनाया इसको हम बोलते हैं पीटरसन सॉल्यूशन पीटरसन सॉल्यूशन तो मिस्टर पीटरसन ने ये इंट्रोड्यूस किया सबसे पहले तो हम डिस्कस कर लेते हैं पीटरसन सोल्यूशन अब पीटरसन सॉल्यूशन में क्या कर रहे हैं हम पीटरसन सलूशन में क्या कर रहे हैं ठीक है हमा पास फ्लैग तो अभी भी है इसको हम एक एरे बना रहे हैं फ्लैग को भी ठीक है डिस्कस करेंगे क्यों इसके बाद हमने एक टर्न वैल्युएबल ले लिया तो फ्लैग क्या कर कर रहा है फ्लैग इंडिकेट कर रहा है कि कोई पर्टिकुलर प्रोसेस इफ ए प्रोसेस इज रेडी टू एंटर टू द क्रिटिकल सेक्शन ठीक है मैं लिख देता हूं ठीक है तो अब हम डिस्कस करते हैं कि यह किस तरीके से काम कर रहा है तो फ्लैग जो है फ्लैग जो वेरिएबल बनाया वो क्या कर रहा है वो एक टू की एरे है ठीक है इसमें ये इंडिकेट कर रही है इफ ए थ्रेड इज रेडी टू एंटर द क्रिटिकल सेक्शन कि वो रेडी है कि नहीं और रेडी कैसे पता चलेगा जो फ्लैग ऑफ आई है वो ट्रू हो गया अगर आथ इंडेक्स ट्रू हो गई तो मतलब वो पर्टिकुलर जो बेसिकली थ्रेड है वो एंटर करने के लिए रेडी है वो बोल रही है मैं रेडी हूं ठीक है दूसरा टर्न का मतलब है कि वो इंडिकेट कर रहा है कि कौन सी थ्रेड की टर्न है यह बेसिकली सिंपल जो पिछले फ्लैग वेरिएबल था ना जी वो उसी तरीके से ये इसकी वैल्यू जीरो या वन हो सकती है ठीक है अब एक बार सलूशन डिस्कस कर लेते हैं सलूशन कैसे कैसा है और ये किस तरीके से वर्क कर रहा है और ये प्रोग्रेस वाले जो कंडीशन जो पिछले वाले सलूशन नहीं थी वो कैसे अचीव कर रहा है तो सोल्यूशन कु इस तरीके से दिख रहा है इसके अंदर हमने क्या करा व दोनों फ्लैग्स का यूज़ किया है ठीक है फ्लैग भी यूज़ किया टर्न भी यूज़ किया है अब देखो ये किस तरीके से काम करेगा ठीक है अब मान लो इसके अंदर पीटरसन सॉल्यूशन वर्क कैसे करता है इसको डिस्कस करते हैं ये t1 थ्रेड है ये t2 थ्रेड है ठीक है अब मान लो कि सबसे पहले मान लो t1 स्केड्यूल होती है t1 स्केड्यूल हुई तो फ्लैग ऑफ ज जीरो ट्रू सेट हो जाएगा ये टर्न वन सेट हो जाएगा उधर मान लो t2 भी साथ में बेसिकली कंटिन्यू होती है या फ्लैग ऑफ वन ट्रू सेट हो जाएगा अगर फ्लैग वन ट्रू सेट हो गया इस केस में कंटेस्ट जो के मैं वाइल पे आया तो यहां पे इस अभी के केस में टर्न इक्वल टूवन है और फ्लैग ऑफ वन अगर ट्रू है मैं भी इस पोजीशन प हूं ठीक है प्लग ऑफ वन अगर ट्रू है तो ये वाली जो टीव थ्रेड है वो वेट करेगी और वेट करने के बाद य यहां पे ये जीरो हो जाएगा ये ट्री ऑ से ट्रू ही है तो ट्रीट सेक्शन में t2 पहले एंटर कर जाएगी सिमिलरली अर दूसरी कंडीशन देखोगे मान लो फ्लैग वन ट्रू सेट होता है टर्न जीरो सेट होता है ठीक है और इस कंडीशन प मैं देखूंगा और यहां पर इस पोजीशन प मान लो कांटेक्ट स्विच होता है फ्लैग ऑफ जीरो क्योंकि ट्रू है ठीक है तो t2 जो है t2 t2 वेट प सेट हो जाएगी ठीक है t2 वेट चली जाएगी और t1 अंदर कट सेक्शन के एर हो जाएगी तो इस केस में मैं देख सकता हूं म्यूचुअल एक्सक्लूजन तो यहां पे मेंटेन हो ही रहा है उसके अलावा जो प्रोग्रेस कंडीशन थी मेरी ठीक है प्रोग्रेस कंडीशन मेरी क्या थी कि अगर मैं कोई फिक्स्ड फिक्स्ड कोई एक किसी वेरिएबल पर डिपेंड होके कोई फिक्स्ड बेसिकली सीक्वेंस नहीं होना चाहिए कि पहले t1 एग्जीक्यूट हो पाएगी या t2 एग्जीक्यूट हो पाएगी यहां पे ऐसा कुछ नहीं है कि जब दोनों ही थ्रेड क्रिटिकल सेक्शन में नहीं होंगी t1 t2 दोनों ही कट सेक्शन में नहीं होगी तो डिपेंडिंग अपॉन किस तरीके से सीपी शेड्यूल कर रहा है ठीक है कोई भी थ्रेड जा सकती है अंदर कोई भी थ्रेड बेसिकली अंदर जा सकती है t2 भी पहले जा पा रही है t1 भी पहले जा पा रही है डिपेंडिंग अपऑन किस तरीके से कांटेक्ट स्विचिंग हो रही है ठीक है तो दोनों को बेसिकली इक्वल मौका है ऐसा कोई सिंपल किसी एक वेरिएबल जैसे पिछले सिंगल फ्लैग के केस में क्या हो रहा था किसी एक पर्टिकुलर वेरिएबल की वजह से किसी एक पर्टिकुलर वेरिल की वजह से एक फिक्स्ड बेसिकली फिक्स्ड मैं बोल सकता हूं फिक्स सीक्वेंस आ रहा था कि टर्न की वैल्यू जो इनिशियल होगी उस हिसाब से डिसाइड होगा कि क्या सीक्वेंस होगा बट यहां पर टर्न की वैल्यू जैसा कोई इनिशियल कुछ है नहीं जिस तरीके से बेसिकली सीपीयू शेड्यूल करेगा उस तरीके से चीजें यहां पे शेड्यूल हो जाएंगे t1 t2 शेड्यूल हो जाएगा या t2 t1 शेड्यूल हो जाएगा ठीक है तो किसी वेरिएबल पे बेस्ड जैसे ट टर्न वेरिएबल बेस्ड ऐसा कुछ पर्टिकुलर सीक्वेंस नहीं निकल रही है यहां पे बेसिकली इक्वल मौका मिल रहा है तो मैं बोल सकता हूं कि जो प्रोग्रेस वाली चीज थी वो यहां पर है टर्सन सोल्यूशन में बोथ म्यूचुअल एक्सक्लूजन और दूसरा अपना क्या था प्रोग्रेस दोनों ही अवेलेबल है ठीक है तो बट प्रॉब्लम क्या है जो पीटरसन सोल्यूशन है ना पीटरसन सॉल्यूशन जो है वो बेसिकली टू थ्रेड्स के लिए जो है ना वो सेफ है बस ठीक है टू से ज्यादा के लिए पर्टिकुलर सोल्यूशन बना नहीं है क्योंकि सिर्फ टू ही थ्रेड्स के लिए सेफ है टू ही थ्रेड्स के लिए यूज करना ठीक है तो यह ज्यादा मैं बोल सकता हूं ज्यादा उसके लिए बना नहीं है ज्यादा एक्सटेंसिवली यूज भी नहीं होता ठीक है तो अभी हमने जो लॉक्स डिस्कस किए थे ठीक है लॉक्स लॉक्स पे वापस से आते हैं लॉक्स पे वापस से आते हैं लॉक्स क्या था हमारा लॉक सिंपली क्रिटिकल सेक्शन के अराउंड क्रिटिकल सेक्शन के अराउंड मैं बेसिकली पहले एक लॉक सेट कर देता हूं जो भी थ्रेड आती है ठीक है और फिर उसके बाद वो थ्रेड उसको व क्रिटिकल सेक्शन को अनलॉक करती है और बाहर चली जाती है तो इसके इस चक्कर में कोई भी एक ही थ्रेड पहले अंदर जा पाती है तो म्यूचुअल एक्सक्लूजन यहां पे इस तरीके से इंश्योर हो रहा है ठीक है बट लॉक्स को जो मैं यूज करता हूं इसकी वजह से ना कुछ डिसएडवांटेजेस आती है ठीक है हम एक बार डिस्कस करते हैं लॉगस की क्या डिसएडवांटेजेस है तो सबसे पहले डिसएडवांटेज है कंटेंशन होना कंटेंशन का मतलब है कि मान लो कोई मेरे पास य क्रिटिकल सेक्शन है कोई एक थ्रेड आई यहां परव अब जो t2 थ्रेड है व मान लो t3 थड है यह भी अंदर जाना चाहती थी तो क्योंकि अभी t1 यहां पर अंदर घुस चुकी है t1 बेसिकली घुस चुकी है तो t2 और t3 जो है ना यहां पर बिजी वेट करेंगी बिजी वेटिंग का मतलब होता है कि वह सीपीयू साइकिल बेसिकली सीपीयू साइकिल खाती रहेंगी वो एक पर्टिकुलर लॉक पे एक वेरिएबल प वेट करती रहेंगी य कब अवेलेबल होगा अवेलेबल होगा तो ये सीपीयू साइकिल बेसिकली खा रही होंगी अब मान लो यहां पे क्योंकि t2 t3 यहां प सीपीयू साइकिल्स को अभी लेके बैठी है और t1 कटेल सेक्शन में और किसी वजह से कोई एक्सेप्शन आ जाती है और ये जो t1 थ्रेड है t1 थ्रेड है ये डेड हो गई किसी वजह से तो क्या होगा t2 और t3 ना इनफा वेट पर चली जाएंगी इनफा वेट पर चली जाएंगी इनफा वेट पर क्यों चली जाएगी क्योंकि कभी भी ये जो लॉग जो t1 ने एक्वायर किया था यह कभी अनलॉक ही नहीं होगा जब अनलॉक नहीं होगा तो t2 33 का क्या होगा वो हमेशा इनफा वेट प चली जाएंगी तो एक कंटेंशन की प्रॉब्लम जो है लॉक्स में आ सकती है इसलिए हमें बहुत ही सावधानी से कोड लिखना होता है कि अगर कोई एक्सेप्शन आ भी गई तो हम क्या करेंगे हम क्या करेंगे थ्रेड को एग्जिट नहीं होने देंगे हम जब तक थड एट नहीं होगी जब तक हम उसे अनलॉक नहीं कर देते ठीक है दूसरा दूसरा इससे डेड लॉक आ सकता है ठीक है अभी डेड लॉक क्या है डेड लॉक के बारे में हम आगे फदर डिस्कस करेंगे डिफरेंट लेक्चर में ब य पर छोटा सा हिंट दे देते हैं डेड लॉक में क्या है कि मान लो कोई मेरे पास य प्रोसेस है पव और यह प्रोसेस है प2 ठीक है प्रोसेस बोल या थड बोल सकता हूं ठीक है और ये मेरे पास r1 r2 दो रिसोर्सेस है ठीक है अब मान लो कि जो r1 रिसोर्स है वो p1 को एलोकेटेड है ठीक है और r2 रिसोर्स जो है वो p2 को एलोकेटेड है बट यह जब तक आगे काम नहीं शुरू कर कर सकते जब तक p1 को बेसिकली r2 रिसोर्स नहीं मिल जाता और p2 को r1 रिसोर्स नहीं मिल जाता तो आप य ध्यान से देखो कि p1 जब तक नहीं चलेगा p1 के पाव पहले से ही है p1 जब तक नहीं चलेगा जब तक r2 उसको नहीं मिल जाता रिसोर्स और p2 जब तक नहीं चलेगा जब तक उसे r1 रिसोर्स नहीं मिल जाता p2 के पा r2 पहले से है तो अब एक सिचुएशन ऐसी हो गई कि डेड लॉक हो गई अब ये डेड लॉग सिचुएशन हो गई कि p1 को r2 चाहिए p2 को r1 चाहिए और दोनों ही एक-एक रिसोर्स लेके बैठे हैं जैसे p1 r1 लेके बैठा है p2 r2 लेके बैठा है तो इस केस में एक डेड लॉक हो गया बेसिकली सिचुएशन ऐसी आ गई कि यहां पे अब लॉक कभी फ्री ही नहीं होंगे और ये प्रॉब्लम बेसिकली इंफाइटिंग सिस्टम पूरा हैंग हो गया ठीक है तो एक डेड लॉक की सिचुएशन यहां पे अराइज हो जाती है तीसरा डीबगिंग में थोड़ा मुश्किल आता है कभी भी ट्राई करना मल्टी थ्रेडेड कोड को डी बक करते हैं ना तो जब डीबगर रहे होते हैं नेक्स्ट नेक्स्ट करके ठीक है आप छोटा-छोटा एग प्रिंट प्रिंट एफ डाल रहे हो तो क्योंकि व सिंक बेसिकली मैं बोलूं कि साइमंस ली चल रही है ठीक है सिंक में चल रही है तो इस चक्कर में क्या प्रॉब्लम आती है कि आपको अनएक्सपेक्टेड कभी कोई थ्रेड दिखेगी कभी कोई थ्रेड कभी कोई थ्रेड कभी कोई कोई तो डीबगिंग में काफी प्रॉब्लम आती है ठीक है कोई सीक्वेंशियल आपको फलो ही नहीं दिखता कभी आप व थ्रेड में हो गए कभी आप ट थ्रेड में हो गए तो किस तरीके से वेरिएबल कैसे मूव कर र पता ध्यान से चलेगा नहीं दूसरा आता है स्टार्वेशन की प्रॉब्लम स्टार्वेशन प्रॉब्लम क्या है अब मान लो क्रिटिकल सेक्शन जो है उस पर जो लॉक है वह किसी लो प्रायोरिटी थ्रेड ने ले लिया लो प्रायोरिटी थ्रेड ने लॉक एक्वायर कर लिया अब कटिक सेक्शन प लो प्रायोरिटी थ्रेड ने बेसिकली एक्वायर करके बैठी है वो बेसिकली लो प्रायोरिटी थ्रेड जो है क्रिटिकल सेक्शन में है पर उसी टाइम मान लो कोई हाई प्रायोरिटी थ्रेड आ गई हाई प्रायोरिटी थ्रेड आ गई तो अब हायर प्रायोरिटी थ्रेड सीएस पे क्रिटिकल सेक्शन पे जब तक लॉक एक्वायर नहीं कर सकती जब तक उसके अंदर नहीं घुस सकती जब तक लो प्रायोरिटी जो वहां से निकल नहीं जाती तो बेसिकली इस तरीके से हायर प्रायोरिटी जॉब जिसको जिसकी प्रायोरिटी हाई है वो तब भी स्टार्वक रही है यहां पे यानी कि स्टार्वेशन की सिचुएशन यहां पर बनी हुई है ठीक है तो हमने तीन सलूशन बेसिकली डिस्कस करे कि पहले हमने डिस्कस करा कि बेसिकली क्रिटिकल सेक्शन क्या है क्रिटिकल सेक्शन प्रॉब्लम क्या है रेस कंडीशन क्या है फिर हमने सोचा कि रेस कंडीशन कैसे हटा सकते हैं हमने देखा कि भाई एटॉमिक ऑपरेशन बना ले इस तरीके से या फिर म्यूचुअल एक्सक्लूजन सॉल्व करें लॉक्स के द्वारा ठीक है सीमा फोर्स का यूज कर सकते हैं इसके बारे में हम आगे पढ़ेंगे हमने देखा कि जो एक सिंगल फ्लैग वेरिएबल किस तरीके से क्या सॉल्व कर पाता है सिंगल फ्लैग वेरिएबल सॉल्व नहीं करता क्योंकि उसके अंदर प्रोग्रेस वाली कंडीशन फुलफिल नहीं होती कट सेक्शन सॉल्व करने की उसके बाद हमने पीटरसन सॉल्यूशन पढ़ा तो पीटरसन सॉल्यूशन काफी बेसिक सॉल्यूशन है ठीक है मैं बोल सकता हूं क्लासिक सॉल्यूशन है फिर हमने लॉक्स देखे लॉक्स कैसे एक्वायर करते हैं लॉक्स का कोड भी देखा हमने ठीक है लॉक्स की क्या डिसएडवांटेज होती होती है ये भी देखा अब नेक्स्ट लेक्चर में हम डिस्कस करेंगे कि कंडीशनल वेरिएबल क्या है सीम ऑ फोर्स क्या है उसके भी एग्जांपल डिस्कस करेंगे ठीक है तो इस लेक्चर को यहीं पर खत्म करते हैं मिलते हैं नेक्स्ट लेक्चर पर गुड बाय हेलो जी कैसे हो सार दिस लक्ष तो हम आ चुके हमारे ओस के लेक्चर नंबर 17 पर और आज हम डिस्कस करने वाले हैं थड सिंक्रनाइजेशन के कुछ और मेथड कुछ इंप्रूव मेथड्स ठीक है पिछली वीडियो में हमने क्या पढ़ा था पिछली वीडियो में हमने एक सिंगल फ्लैग सलूशन पढ़ा था ठीक है क्रिटिकल सेक्शन प्रॉब्लम का हमने एक सिंगल फ्लैग सलूशन पढ़ा था जो कि एक प्रोग्रेस ना होने की वजह से एक बढ़िया सलूशन नहीं था उसके बाद हमने पीटरसन सलूशन पढ़ा टन सलूशन में क्या था वो सिर्फ टू थ्रेड के लिए काम आता था राइट तीसरा सलूशन हमारा क्या था तीसरा हमने लॉक्स के बारे में पढ़ था लॉक्स ए मूटे राइट टेक्स लक् में कता है य बढ़िया तो सलूशन था ठीक है अच्छे से बढ़िया से क्रिटिकल सेक्शन की प्रॉब्लम को सॉल्व कर रहा था जो हमारा काउंट वाला एक एग्जांपल था काउंट को जब हम प्लस कर रहे थे 20 ब्लैक्स आना था तो उसमें आ गया था 20 ला राइट पिछली वीडियो में हमने डिस्कस किया बट इसमें सबसे बड़ी प्रॉब्लम सबसे बड़ी प्रॉब्लम प्रॉब्लम की बात करता हूं प्रॉब्लम क्या है इसके अंदर इसके अंदर ना बिजी वेटिंग होती है बजी वेटिंग क्या है बिजी वेटिंग का सिंपल सा मतलब है कि भाई मान लो मेरे पास थड वन है और यह ड टू है यह मेरे पास क्रिटिकल सेक्शन था मान लो थड वन क्रिटिकल सेक्शन के अंदर जा चुकी है तो जब थड वन क्रिटिकल सेक्शन के अंदर जाएगी तो यहां पर वो क्या करेगी यहां पर एक लॉक लगा लेगी राइट लॉक लगा लिया थ्रेड वन ने और जब यह लॉक लग जाएगा तो जब थ्रेड टू यहां जाने की कोशिश करेगी तो वो क्या करेगी इस पर्टिकुलर लॉक प वेट करेगी और वो वेट किस टाइप का होगा वो बेसिकली इंप्लीमेंटेशन कुछ इस तरीके से लिखी हुई है अंदर कि किसी फ्लैग के ऊपर ये बेसिकली वाइल करके किसी फ्लैग के ऊपर यह बेसिकली वेट कर रहा होगा ठीक है इस वेट करने के चक्कर में क्या होता है हमारी सीपीयू साइकिल जो कि बहुत ही ज्यादा इंपोर्टेंट है वो वेस्ट हो रही है ठीक है तो यह पर्टिकुलर प्रॉब्लम इसके अंदर आती है तो क्योंकि सीपीयू साइकिल्स मेरे लिए बहुत ज्यादा इंपोर्टेंट है तो एक इंप्रूव्ड सलूशन है इसका ठीक है एक ड सिना का एक इंप्रूव्ड सलूशन है लॉक्स भी एक बहुत अच्छा मेथड है ब इससे बेटर एक मेथड है कंडीशनल वेरिएबल मेथड ठीक है इसके अंदर क्या एक हर प्रोग्रामिंग लैंग्वेज एक मेथड प्रोवाइड करती हैको बोलता कंडीशनल वेरिएबल अब य कंडीशनल वेरिएबल क्या है कंडीशनल ल कुछ नहीं है यार एक कंडीशनल वेरिएबल करके एक वेरिएबल है ठीक है वो किस किस यूज करता है वो किसी लॉक का यूज करता है और दो मेथड इसके अंदर होते हैं एक वेटिंग दूसरा सिग्नल अब इससे थोड़ा-थोड़ा समझ आ रहा होगा कि मैं वेट करता रहूंगा और जो वेट करते हुए सीपीयू साइकिल्स जो है वो मैं वेस्ट नहीं करूंगा क्यों क्योंकि एक सिग्नल का वेट करूंगा मैं वो सिग्नल जब आएगा इधर एक इंटरप्ट आएगा एक सॉफ्टवेयर इंटरप्ट आएगा जैसे ही वो इंटरप्ट आएगा तब वो पर्टिकुलर ट जो काम करना आगे शुरू होगी जब तक के लिए सीपीयू किसी और थ्रेड बेसिकली किसी और वर्क को किसी और यूज जॉब को एग्जीक्यूट कर सकता है ठीक है अब इसका एक एग्जांपल देखते हैं मान लो पहले कोडिंग का एग्जांपल देखने पहले ऐसे ड्र करके एग्जांपल बनाने की कोशिश करते हैं हमारे पास मान लो ये क्रिटिकल सेक्शन है ठीक है और ये टीव थ्रेड है अभी टीव थ्रेड जो क्या करेगी टी व थ्रेड एक कंडीशनल वेट पर वेट करेगी ठीक है एक कंडीशनल वेट है यहां पर जब मैं जाऊंगा यहां पर एक वेट कॉल कर दूंगा ठीक है वेट कॉल कर दिया अब जो टीट थ्रेड है मेरी ट थ्रेड मैं चाहता हूं कि टीट थ्रेड जो है ना पहले एग्जीक्यूट हो तो उस चक्कर में मैं क्या करूंगा t2 थ्रेड क्या करेगी t2 थ्रेड बोलेगी कि मैं पहले क्रिटिकल सेक्शन से काम कराती हूं ठीक है क्रिटिकल सेक्शन को मैं एग्जीक्यूट कराते ह उसका एक्सेस मैं ले लेती हूं उसके बाद मैं एक सिग्नल को कॉल करूंगी सिग्नल को कॉल करूंगी वो सिग्नल क्या करेगा वो सिग्नल इस कंडीशन को नोटिफाई करेगा ठीक है नोटी फाई करेगा कि भाई वेट से बाहर आ जाओ ठीक है जो थ्रेड ब्लॉक थी उस ब्लॉक ब्लॉकेज से बाहर आ जाओ और दोबारा से इसको अब कंटिन्यू करो और कंटिन्यू करने के बाद यहां सर व को मौका मिल जाएगा तो पहले यहा परट चलेगी फरव चलेगी कंफ्यूज मत हो इसका एग्जांपल देखते है सीधा हम कोड करके स्क्रीन पर आते स्क्रीन पर कुछ हमने एपल लिखा सिपली हमने पान का यूज किया इस बार ठीक है कर देते पान का यूज किया है तो यव थ है मेरे पास य थड है दो थ बनाई है टास्क मैं बोलता एक फंक्शन है जिसको एक्यूट करेंगे दोनों और मैंने क्या करा एक कंडीशन व बना ये भी थ्रेडिंग के मॉड्यूल के अंदर है पाइथन में ठीक है तो कंडीशन के अंदर काउंट करके मैंने एक वेरिएबल बना दिया कंडीशन बना दी अब ये कंडीशन वेरिएबल ना इंटरनली कैसे यूज होता है ना जो कंडीशन वेरिएबल जो ये पाइथन वाला भी है जो मैंने वेरिएबल बनाया बकन ये इंटरनली ना टेक्स को यूज कर रहा होता है यानी कि एक लॉग को यूज कर रहा होता है ये लॉग इंटरनली इंप्लीमेंटेड है इसकी c+ प्स की इंप्लीमेंटेशन देखोगे ना उसके अंदर हमें खुद से एक न्यूटेक्स देना पड़ता है उसके आर्गुमेंट के अंदर ब पाइथन थोड़ा ज्यादा सिंपल है तो इसके अंदर ऐसे कुछ खुद से मु लॉग का बेसिकली टेक्स देना नहीं पड़ रहा एक्सप्लीसिटली तो अब देखो क्या होगा तो अब मैं देखता हूं इसको जैसे अब पहले समझाता हूं कि वर्क कैसे करेगा ठीक है वर्क कैसे करेगा स्टार्टिंग में जो मेरे पास डन है डन वेरिएबल है वो वन है ठीक है स्टार्टिंग में मेरे पास डन वेरिएबल वन है अब डन वन है तो होगा क्या जब t1 पहले एग्जीक्यूट होगी तो बेसिकली होना क्या चाहिए था आईडियली क्या होता कि t1 पहले क्य डन इक्वल टू इक्वल टूव है t1 पहले पूरा एग्जीक्यूट हो जाती है यहां पर मिली ये स्टेटमेंट प्रिंट होती है फिर ये स्टेटमेंट प्रिंट होती है और यहां से एज कर जाती बट ऐसा नहीं होगा होगा कैसे कि सबसे पहले t2 वाला काम होगा सारा फ t2 वाला काम होने के बाद t1 वाला काम होगा ये देखो कैसे जब टीव कॉल होगा ठीक है जब टीव कॉल होगा तो वो देखेगा डन जो है वन था ठीक है डन जो है वो वन था डन वन था तो उस केस में मैंने डन वन में जाके मैंने डन को टू कर दिया साथ ही साथ और साथ ही साथ मैंने क्या करा कि कंडीशन वेरिएबल पर य पर वेट लगा दिया कंडीशन वेरिएबल इंटरनली क्या कर रहा होगा इंटरनली क्या कर रहा होगा जब एक्यूट हो रही होगी ठीक है जब टीव एक्यूट हो रही होगी तोव क्या करेगी इस क एक लॉक करेगी इस कंडीशन कंडीशन वेरिएबल के अंदर जो इंट बता रहा था लॉक होगा वो लॉक होगा लॉक एक्यूट होगा और लॉक के बाद मैं चेक करूंगा कि कंडीशन ट्रू है कि नहीं अय कंडीशन क्या है व कंडीशन यह है कि जो ये पर्टिकुलर कंडीशन वेरिएबल है ये ट्रू तभी होता है जब कोई और थड इसको नोटिफाई करती है ठीक है ई तो t2 करेगी t2 ने अभी तक नोटिफाई किया नहीं है t2 ने अभी तक नोटिफाई नहीं किया तो इस चक्कर में कंडीशन फॉल्स होगी फॉल्स होगी तो मैं क्या करता हूं उसको वेट प भेज देता हूं और यह वेट कुछ इस तरीके से है यहां पर ना वेट एक्चुअली नहीं थ्रेड जो है पूरी ब्लॉक हो जाती है ब्लॉक हो जाती है और सीपीयू भी फ्री हो जाता है सीपीयू फ्री हो गया ब्लॉक हो गया तो बेसिकली अभी सीपीयू जो है t1 थ्रेड के पास नहीं फंसा हुआ है वहां कोई बिजी वेटिंग नहीं हो रही है और मैं वहां से बाहर निकल चुका हूं ठीक है अब दूसरा क्या होगा मान लो t2 की बारी आई अब t2 जब जाएगा t2 ने देख खा था कि डन जो है वो टू हो गया था ठीक है डन टू हो गया था तो एल्स कंडीशन एग्जीक्यूट होगी एल्स कंडीशन एग्जीक्यूट होगी एल्स कंडीशन में वो क्या करेगा अभी मैंने सिंपली पा सेकंड का स्लीप लगाया ताकि आपको थोड़ा अच्छा दिखे अभी जब इसको रन करेंगे तो देखना कैसे दिखेगा ठीक है पा सेकंड य वेट करेगा वेट करने के बाद वो बेसिकली प्रिंट करेगा वी आर सिग्न ंग सिग्न ंग करने के बाद वो पर्टिकुलर कंडीशन को नोटिफाई ऑल कर देगा नोटिफाई का मतलब क्या है जो ये कंडीशन थी मेरी t1 के केस में जो कंडीशन थी इसको मैंने ट्रू कर दिया और साथ ही साथ एक नोटिफिकेशन भेजी है एक सॉफ्टवेयर इंटरप्ट भेजा है कर्नल ऐसा कर रहा है पीछे से सॉफ्टवेर इंटरप्ट भेजा है कि t1 थ्रेड जो ब्लॉक पड़ी हुई थी ब्लॉक पड़ी हुई थी तू एक बार जाग जा ठीक है वेक अप वेक अप एंड देन चेक द कंडीशन अगेन एंड डू द नीड फुलनेस ठीक है यानी कि पहले ब्लॉक थी ब्लॉक से मैंने उसको बोला जग जा तो जगने के बाद वो जाके कंडीशन को चेक करेगी और चेक करने के बाद फर्द देखते हैं कैसे काम होगा तो क्या होगा ब्लॉक थी ब्लॉक के बाद मैंने कंडीशन को ट्रू कर दिया कंडीशन ट्रू कैसे हुई है नोटिफिकेशन से अब क्या करेगा वो वापस से लॉक करेगा ठीक है वापस से इस इस पोजीशन पर वापस से लॉक होगा जो इंटरनल लॉक की मैं बात कर रहा था वापस से लॉक होगा और लॉक होने के बाद वह चेक करेगा फिर से कि कंडीशन ट्रू है कि नहीं कंडीशन ट्रू है ट्रू है तो वो अब अब इस केस में तो कंडीशन ट्रू है राइट हमने नोटिफिकेशन कर दिया अब जो है ये सेकंड इसके बाद वाली लाइन एग्जीक्यूट होगी अब आप ध्यान से देखो कि मैंने t1 को लद पहले थ्रो किया था को मैंने पहले थ्रो किया था बट फिर भी t2 पहले एग्जीक्यूट हुई फिर t1 गई यानी कि इस चक्कर में थड को सिंक्रोनाइज कर पा रहा हूं राइट विदाउट डूइंग बिजी वेटिंग बिजी वेटिंग के बिना मैं थ्रेड को सिंक्रोनाइज कर पा रहा हूं इस चक्कर में क्या होगा कोई भी मान लो मेरे पास कोड में क्रिटिकल सेक्शन है तो अगर मैं चाहता हूं कि अगर कोई t1 थ्रेड जो वेट करे और t2 थ्रेड जो दूसरी थ्रेड नोटिफाई करे तब व एंटर करे तो मैं इस तरीके से काम कर सकता हूं यानी कि मैं ऐसा कुछ कर सकता हूं कि जो सबसे पहली थ्रेड जाए ठीक है वो वेट वो बेसिकली वेट कर ले वेट करने के के बाद जब दूसरी थ्रेड बेसिकली जो सेकंड थ्रेड थी यहां पे जो सेकंड थ्रेड थी सेकंड थ्रेड ज अपना काम कर लेगी तब वो नोटिफाई नोटिफिकेशन करेगी और तब हम बोलेंगे टीव थ्रेड ू जा सकते हो ठीक है तो इस तरीके से ये थ्रेड सिंक्रोनाइजेशन में ये काफी अच्छा मेथड है एक्सटेंसिवली यूज होता है इंडस्ट्री में भी ठीक है कंडीशनल वेरिएबल क्योंकि इसमें बिजी वेटिंग नहीं होती तो सीपीयू साइकिल में वेस्ट नहीं करर होता तो लेट्स सी एक बार रन कर लेते हैं इसको एकम मैं सही बोल भी रहा हूं कि नहीं ठीक है इसको अगर मैं रन करूं तो देखो क्या होता है सबसे पहले मेरे पास ये प्रिंट होता है और t1 थ अभी वेट ही कर रही है ठीक है उसके बाद पा सेकंड वेट करने के बाद t2 थ्रेड पहले सिग्नल कर रही है ट थ्रेड सिग्नल करने के बाद उसने बोला कि मेरा नोटिफिकेशन डन हो चुका है उसके बाद कंडीशन मैट हुई है और t1 ने बेसिकली काम किया तो आप देख रहे हो कि मैंने t2 को पहले एक्सेस दे दिया है जीज का उसके बाद t2 ने अलाव किया तभी t1 आगे बढ़ी तो इस तरीके से मैं यहां प हेड को सिंक्रोनाइज कर पा रहा हूं विदाउट डूइंग द बिजी वेटिंग तो यह था कंडीशनल वेरिएबल आई होप आपको समझ आया होगा अब नेक्स्ट हम डिस्कस करेंगे सीमा फोर्स के बारे में अब डिस्कस करते हैं सीमा फोर्स ठीक है पहली बात सीमा फोर्स वर्ड तो काफी फैंसी बड़ है क्या सिंपली एक ना इंटी जर वेरिएबल होता है ठीक है इंटी जर वेरिएबल होता है और किसके इक्वल होता है वो इसके इक्वल होता है अगर मान लो मेरे पास जैसे मेरे पास मान लो कोई अ रिसोर्स है बट वो सिंगल नहीं है सिंगल नहीं है वो मल्टीपल रिसोर्स है मल्टीपल मतलब क्या हो गया मल्टीपल इंस्टेंसस है उसके मैं बोल सकता हूं मेरे पास एक बेसिकली बड़ा प्रिंटर है और वो प्रिंटर भी कुछ इस तरीके से काम करता है उसके अंदर कुछ सब प्रिंटर्स है ठीक है मान लो बड़ा प्रिंटर का सर्वर है उसके अंदर कुछ तीन चार प्रिंटर है मेरे पास तो सर्वर एक रिसोर्स हो गया मान लो उसके अंदर तीन प्रिंटर अलग से हैं तो मैं बोल सकता हूं कि प्रिंटर के तीन इंस्टेंसस ठीक है तो मल्टीपल इंस्टेंसस का मतलब गया एक ही रिसोर्स के मल्टीपल इंस्टेंस है उसकी कॉपीज है बहुत सारी मेरे पास ठीक है तो जब मल्टीपल कॉपीज होती है तो क्या मैं यूज कर सकता हूं ना कि अगर मेरे पास तीन कॉपीज है विंटर की तो मैं तीन थ्रेड को सना कर सकता हूर न को मतलब मैं पैरेलली भेज सकता हूं अंदर तो इस केस में मुझे वैसी सिना नहीं चाहिए कि मेरे पास एक ही बेस एक ही रिसोर्स है और एक ही रिसोर्स के अंदर पहले एक थड जाएगी फर दूसरी थड जाएगी उसके बाद ही दूसरी थ ऐसा कुछ नहीं य य तीन इंस्टेंस एक सोर्स के तो एक बार में तीन थड जा सकती है अंदर ठीक है हो सकता है पास 10 थड हो पर 10 में से एक बार में तीन ही भेजूंगा अंदर ठीक है तो सीमा फोर्स य इस कंडीशन में यूज होता है जहा पर मल्टीपल रिसोर्सेस के इंस्टेंस है ठीक है एक ही रिसोर्स के मल्टीपल इंस्टेंसस है वहां पर काम आता है ये काम कैसे करता है तो एक बार एग्जांपल से एक बार डायग्रामेटिकली समझ लेते हैं इसको समझने में आसानी होगी मान लो मेरे पास ये रि सोर्स है एक रिसोर्स है उसके तीन इंस्टेंसस है ठीक है तीन इंस्टेंसस है टूथ और मान लो मेरे पास थ्रेड्स है t1 t10 मालो 10 थ्रेड्स है तो नॉर्मली मान लो मेरे पास मूक्स होते है मूक्स क्या होता है मूक्स किसी एक इंस्टेंसस के लिए काम ज्यादा बढ़िया से करता है फ है एक इंस्टेंस है एक लॉक यूज कर रहा हूं मैं लॉक अनलॉक करके मैं एक बहुत सारे थ्रेड्स को एक ही बेसिकली क्रिटिकल सेक्शन से सीक्वेंशियल निकाल रहा हूं ठीक है बट यहां पर देखो ज्यादा इंस्टेंसस है मेरे पास राइट एक एक के ज्यादा इंस्टेंसस है तो सीमा फर क्या होता है मैं सीमा फर में सिंपली एक वेरिएबल हो गया मान लो पास सीमा फर वेरिएबल है थी ठीक है इंटरनली व कैसे बेसिकली इंप्लीमेंटेड होता है वो हम देखेंगे थोड़ी देर में इसकी वैल्यू मैं बोलता हूं कि ना ये नॉन जीरो नहीं जा सकता लेस दन जीरो नहीं जा सकता ठीक है लेसन नहीं जा सकता ठीक है तो अब मैं क्या करूंगा इसको किस तरीके से इंप्लीमेंट करूंगा सबसे पहले मैं t1 थ्रेड को भेजूंगा इधर जैसे ही t1 थ्रेड इधर भेज उसको जैसे ही वो बेसिकली सीमा फो अलाउ कर देगा क्योंकि सीमा फर की वैल्यू अभी थ्री है अलाउ कर देगा और जब मैं उसको भेज देता हूं ना तो मैं क्या करता हूं इसको डिक्रिमेंट कर देता हूं टू सेट कर देता हूं ठीक है अब मान लो t2 थ्रेड आई t2 थ्रेड इसको मिल गई तो फिर मैं फिर से डिक्रिमेंट कर देता हूं फिर जैसे t3 थ्रेड आई फिर से मैं इसको डिक्रिमेंट कर देता हूं और ये जीरो हो गया जैसे ही वैल्यू जीरो होती है तो मैं क्या करता हूं वेट करने लग जाता हूं यानी कि मैं वेट कर रहा हूं कि t1 t2 t3 जब तक एग्जीक्यूट नहीं हो जाती जब तक क्रिटिकल सेक्शन यानी कि रिसोर्सेस को फ्री नहीं कर देती तब तक मैं किसी और थ्रेड को इन रिसोर्सेस प लॉक नहीं लगाने दूंगा ठीक है इस रिसोर्सेस पे एंटर नहीं करने दूंगा तो मान लो अब अब इन केस अब एज्यूम करते हैं मान लो t1 ने एग्जिट कर दिया t1 ने एग्जिट कर दिया जैसे ही t1 एग्जिट होगा तो मैं क्या करूंगा इस जीरो वैल्यू को बढ़ा दूंगा प्लस प्लस कर दूंगा ये वन कर दूंगा सीमाप इंटरनली कैसे वर्क कर रहा है ये मैं बात कर रहा हूं अभी ठीक है इसको वन करूंगा जैसे ही वन होगा तो t4 थ्रेड मान लो जो पड़ी थी मेरे पास t4 थ्रेड है t4 थ्रेड चेक करेंग वन हो गया तो t4 को मान लो ये पर्टिकुलर रि सोर्स मिल जाएगा तो इस तरीके से कुछ मोटा-मोटा ये वर्क करता है इंटरनली कैसे वर्क कर रहा है ये एक बार डिस्कस करते हैं कि कैसे इसके एक्चुअल इंप्लीमेंटेशन होती है इसके फंक्शन कैसे नजर आते हैं और क्या इसके अंदर बिजी वेटिंग होती है ठीक है तो इंटरनली जो वेट की इंप्लीमेंटेशन है जो वेट और सिग्नल की मैं बात कर रहा था वो सीमा फोर्स की इंप्लीमेंटेशन है सीमा फोर्स वो कैसे हो होती है तो मान लो मैंने एक सीमा फ डिक्लेयर करता हूं ना सीमा फर s और टू वैल्यू से तो इसका मतलब इसकी इंटी जर वैल्यू जो अंदर होगई वो टू होग यानी कि एक बारी में दो रिसोर्स के इंस्टेंस है ये ऐसे अजूम करेगा ठीक है तो अब मान लो मेरे पास स्टार्टिंग में मान लो t1 थ्रेड है t1 थ्रेड जो है वेट कॉल करती है तो जब भी व वेट कॉल करेगी वो क्या करेगी ए की जो वैल्यू है इसको डिक्रिमेंट कर देगी तो ए जो है वो ए की वैल्यू जो है वो क्या हो जाएगी वन ए की वैल्यू वन हो जाएगी तो क्या वन जो है लेस दन जीरो है व लेस दन 0 नहीं है तो इस केस में ये रिसोर्स पर्टिकुलर मिल जाएगा क्योंकि हम पर दो इंस्टेंसस है ठीक है ऐ ऐसा अज्यू कर रहा हूं मैं उसके बाद मान लो t2 थ्रेड कोई आती है t2 थ्रेड फिर से वेट कॉल करेगी मान लो वेट कॉल करने के बाद व s को माइनस करेगी माइनस करने के बाद इसकी वैल्यू क्या रह जाएगी माइनस करने के बाद इसकी वैल्यू जीरो रह जाएगी ठीक है जीरो रह जाएगी अब उसके बाद दोबारा से मान लो t3 थ्रेड आई कोई t3 थड आई अब रिसोर्सेस तो दो ही थे और दोनों अभी टेकन है t1 t2 दोनों ने ले रखे हैं दोनों दोनों इंस्टेंसस अभी मेरे बिजी है t3 आई तो t3 ने मान लो वेट कॉल किया तो वेट कॉल करने के बाद क्या होगा जो s की वैल्यू होगी वो नेगेटिव चली जाएगी -1 जैसे ही नेगेटिव जाएगी तो मैं क्या कर रहा हूं यहां पे नेगेटिव जाने के बाद जो पर्टिकुलर थ्रेड है उसको मैं ब्लॉक कर दे रहा हूं ठीक है ब्लॉक कर दे रहा हूं ब्लॉक कैसे कर रहा हूं मैं सिमिलर तरीका है मतलब ऐसा ही कुछ हो रहा है जैसे कंडीशन वेरिएबल में हो रहा था ना हम ब्लॉक कर दे रहे थे और सीपीयू किसी और बेसिकली काम में बिजी हो सकता था सीपीयू फ्री हो जाता था ऐसा ही कुछ यहां पे हो रहा है तो मैं ये जो पर्टिकुलर थ्रेड है इस केस में माइनस व जब वैल्यू हो गई है मेरी तो थ्रेड जो है वो ब्लॉक हो गई है ब्लॉक हो गई है सीपीयू फ्री है ठीक है और अब जो कोई अब मान लो t3 t3 के बाद t4 थ्रेड भी आती है तो वो भी ब्लॉक हो जाएगी t5 थ्रेड आती है वोही ब्लॉक हो जाएगी ऐसे करते करते जितनी भी थ्रेड्स आएंगी ब्लॉक हो जाएंगी क्योंकि अल्टीमेटली रिसोर्सेस कितने हैं इंस्टेंसस कितने रिसोर्सेस के दो ठीक है अब मान लो अब इन केस जब क्रिटिकल सेक्शन से काम t1 t2 दोनों कर लेंगी क्रिटिकल सेक्शन काम दोनों कर लेंगी अब तो क्या होगा कटिक में काम हो गया मेरा तो आफ्टर क्रिटिकल सेक्शन से जब मैं एग्जिट करूंगा तो मैं सिग्नल कॉल कर दूंगा यानी कि टीव थ्रेड जो है सिग्नल कॉल कर दी वो यह बताने के लिए कि भाई जो क्रिटिकल सेक्शन मैंने लॉक लगा रखा था यानी कि जो मैंने रिसोर्स का इंस्टेंस है जो मैंने ब्लॉक किया हुआ था वो अपने पास जो रखा हुआ था वो मैंने फ्री कर दिया है तो इसके लिए मैं सिग्नल कल करता हूं अभी ब्लॉक कॉल हो रखा था ठीक है जो t3 थड का ब्लॉक हो रखा था जैसे हीव t1 थ्रेड ने सिग्नल कॉल किया सिग्नल कॉल करने के बाद क्या होगा सिग्नल कॉल करने के बाद उसने बेकअप की कॉल दी उस पर्टिकुलर प्रोसेस को बेकअप की कॉल का मतलब वही सिग्नल कर दिया सिग्नल करने के बाद क्या होगा वापस से ये बेसिकली थ्रेड आएगी इधर ठीक है और इसको सीपीयू मिल जाएगा और यह जो पर्टिकुलर इस केस से जो यहां प ब्लॉक थी इससे आगे एग्जीक्यूट हो जाएगी और इसके आगे मेरे पास क्रिटिकल सेक्शन होगा बेसिकली ये किस तरीके से लिखा होता है ना अगर मैं बताऊ आपको ये ऐसे लिखा होता है कि वेट फिर क्रिटिकल सेक्शन होता है यहां पे फिर सिग्नल होता है तो जो ये पर्टिकुलर थ्रेड थी t3 थ्रेड थी वो इस पोजीशन प वेट कर रही थी ब्लॉक थी यहां पे तो यहां पे फिर इसके बाद जैसे ही इस ब्लॉक के बाद क्या लिखा हुआ इस फलो के सीधा क्रिटिकल सेक्शन है तो इसको क्रिटिकल सेक्शन मिल जाएगा क्रिटिकल सेक्शन मिलने के बाद ये वापस से बेसिकली इसको जो t1 है जो कि एग्जिट कर गई थी t3 को मिल जाएगा तो एक बारी में मैं इंश्योर कर पा रहा हूं यहां पे कि मेरे पास एक बारी में दो थ्रेड्स भी बेसिकली दो रिसोर्सेस को ब्लॉक कर रही है यानी कि दोनों थ्रेड्स को दोनों रिसोर्स मिल पा रहे हैं ठीक है तो इस तरीके से सीमा फर यहां पे वर्क करता है ठीक है जब ये t3 एग्जिट करेगी t3 एग्जिट करेगी तो ये वापस से बेसिकली सिग्नल कॉल करेगी तो वापस से सिमा फर की वैल्यू प्लस प्लस कर देगी तो इस तरीके से चीजें इंश्योर रहती है कि मेरे पास दो ही रिसोर्सेस ब्लॉक हो एक बारे में तो इसका एग्जांपल एक बार देख लेते हैं कोड किया हुआ है हमने ठीक है कोड पे आते हैं हम पास सीमा फर करके एक यहां पे पाइथन में मेरे पास यहां पे मेथड है इसको मैं यूज करके मैं सीफ बना सकता हूं यहां पर मैंने तीन सीफ बना दिए ठीक है तीन सीफ का क्या मतलब है कि जो ये पर्टिकुलर रिसोर्स है ये मेरे पास यहां पर क्रिटिकल सेक्शन है ये जो क्रिटिकल सेक्शन है ये एक बारी में इसके तीन इंस्टेंसस जा सकते है यानी कि तीन थ्रेड एक बारी में यूज कर सकती है उसके अलावा ब मैंने थ्रेड्स कितनी बनाई है यहां प पांच तो आप ध्यान से देखना कि एक बारी में यहां प तीन ही थ्रेड्स घु सेंगे इसके अंदर उसको एक्यूट कर पाएंगी पहले क्या हो रहा था जो हमने लॉक्स और बेसिक कंडीशन में पढ़ा था कि एक ही थ्रेड एक बार में जा रही थी यहां पर देखो मल्टीपल थ्रेड जो है क्रिटिकल सेक्शन को एग्जीक्यूट कर रहे होंगे बट दैट जो मल्टीपल थ्रेड्स भी जा रही है वो भी लिमिटेड मैनर में जा रही है यानी कि तीन ही जा रही है एक बारी में ठीक है तो इसको एक बार रन करता हूं इसको अगर रन करें हम तो देखो ध्यान से देखो कैसे आती है1 थ्रेड इ वर्किंग t21 t23 वर्किंग ठीक है तो आप ध्यान से देखो कि एक बार में तीनों थ्रेड जा है नॉर्मली क्या होता अगर मैं लॉक्स यूज कर रहा होता तो पहले टीव थ्रेड ही बसली इसका पाच बार लूप चलता ठीक है तो उसके बाद ट थ्रेड का पाच बार लूप चलता उसके बा थड का पाच बार लूप चलता फटी आती य देखो t1 t2 t3 इनका साथ में ही चल रहा है उसके बाद जब t1 t2 t3 खत्म हो जा रही है तब t4 को एक बार चांस मिला है ठीक है फ t5 को चांस मिला t45 इस तरीके से काम चल रहा है तो अगर मैं मान लो डिस्कस करूं इस चीज को तो मैं बोल सकता हूं कि अगर मैं सीमा फोर की वैल्यू जितनी भी रखता हूं उतनी थ्रेड्स कोट एट अ पॉइंट ऑफ टाइम पैरेलली एक्सेस मिलता है किसी भी क्रिटिकल सेक्शन का तो एक बार यहां पे थोड़ा प्ले राउंड करते हैं मान लो यहां प म्यूट्स होता है ना लॉक होता लॉक तो एक बारी में एक ही को देता तो लॉक बना देते तो सीमा फ की वैल्यू न रख द ना अगर सीमा की वैल्यू न कर दू तो इसको मैं बोल देता हूं कि बाइनरी सीमा फो है यानी की वैल्यू जीरो या वन हो सकती है यानी एक ही ड एक बार जा सकती है देखो आउटपुट कर आय एकदम लक् जैसी आउटपुट है ल कंडीशन वेबल इस तरीके से वर्क करेगा टूथ फिर टूथ य पहली ड पाच बार चलेगी फर दूसरी ब चलेगी री पा बार चलेगी तो मैं बोल सकता हूं कि जो अगर सीमा फोर की वैल्यू इसकी वैल्यू है व वन रखता हूं तो मैं इसको बोलता हूं बाइनरी सीमा तो और अगर मैं सीमा फोर की वैल्यू ग्रेटर देन वन रख देता हूं ठीक है ग्रेटर दन वन रख देता हूं तो इसको बोलता हूं काउंटिंग सीमा फर काउंटिंग सीमा फर की बो र य काउंटिंग चल रही है राइट प्लस माइनस प्लस माइनस करके इस तरीके से काम हो रहा है तो और मैं ये भी बोल सकता हूं कि बाइनरी सीम ऑफ फ ही एक्चुअल म्यूट्स है क्या मैं बोल सकता हूं ऐसा मतलब जो इंट इंप्लीमेंटेशन होती है ना c प् प टेक्स तो कुछ मूक्स की ऐसे भी इंप्लीमेंटेशन हो सकती है कि इंटरनली वो बाइनरी सीमा फोर की तरह वर्क कर रहा हो तो एक्सट्रैक्शन की वजह से आपको नहीं भी नहीं दिख रहा होगा राइट तो ये हो गया हमारे दो टाइप के सीमा फोर तो हमने देख लिया यहां पे अगर मैं इसको राउंड कर सकता हूं मान लो मैं पांचो थ्रेड को एक बारी में एक्सेस भी दे सकता हूं ठीक है पांचों थ्रेड को दूंगा तो देखो किस तरीके से आउटपुट आ रही है पांचों थ्रेड को एक्सेस मिल गया पांचों थ्रेड पैरेलली एक्यूट कर रही है तो ये था सीमा फोर सीमा फोर हमने ने क्यों पढ़ा सी हमने इसलिए पढ़ा क्योंकि हम चाहते हैं कि क्रिटिकल सेक्शन में एक से ज्यादा थ्रेड्स भी आ सके बट एक से ज्यादा भी अनलिमिटेड थ्रेड्स नहीं कोई लिमिटेड थ्रेड्स क्योंकि मेरे पास लिमिटेड ही बेसिकली किसी रिसोर्स के इंस्टेंसस है तो ये था हमारा सीमा फर तो थ्रेड सिंक्रोनाइजेशन के हमने जो मेथड्स पढ़े वो आई होप आपको सब समझ आए होंगे आई वुड डेफिनेटली रिकमेंड कि आप ये सारे जाके ना इनको एक बार प्रैक्टिस करो एक बार इनके कोड लिख लिख के देखो c प् प् में लिख देखो सी के कोड लिख के देखो ठीक है पाइथन में ही ट्राई कर लो ज्यादा सिंपल पड़ेगा तो यह था हमारा बेसिकली यह वाला लेक्चर और एक बार हम नोट्स प भी नजर डाल सकते हैं नोट्स प डाले तो इसकी कहानी लिख दी है सारी कि कंडीशन वेरिएबल क्या होता है सना प्रिमिटिव है कंटेंशन नहीं होती यहां पर और बिजी वेटिंग भी नहीं होती सीमा फर क्या है इसकी भी पूरी कहानी लिखती ब इसको पढ़ना बढ़िया से आई होप यह जो पूरी कहानी लिखी है समरी लिखी है ये डेफिनेटली आपको काफी मदद करेगी और मिलते हैं नेक्स्ट लेक्चर पे गुड बाय हेलो जी कैसे स दिस इज लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 18 पर और आज हम डिस्कस करने वाले हैं कुछ क्लासिक प्रॉब्लम्स ऑफ सिंक्रोनाइजेशन देखो अब तक हमने डिस्कस किया थ्रेड्स के बारे में ठीक है थ्रेड्स जब बेसिकली पैरेलली एग्जीक्यूट हो रही होती है और किसी क्रिटिकल सेक्शन में जब वो वर्क करती हैं तो इससे क्या-क्या प्रॉब्लम अराइज होती है हमने वो पढ़ी रेस कंडीशन हमने पढ़ी ठीक है ट सेक्शन प्रॉब्लम उसके बाद हमने कुछ मेथड डिस्कस किए जैसे कि लॉगस हो गया आपका पेटंस सॉल्यूशन है कंडीशनल वेरिएबल सीमा फ डिस्कस करें जिससे मैं बेसिकली थ्रेड्स को सिंक्रोनाइज कर पा रहा था ठीक है अब हम डिस्कस करते हैं कुछ ऐसी क्लासिकल प्रॉब्लम जो कि सिंक्रनाइजेशन की है और किस तरीके से वो एक प्रॉब्लम है और प्रॉब्लम को सॉल्व कैसे करते हैं यूजिंग दोज मेथड्स जो हमने डिस्कस करे ठीक है अब ये इंपॉर्टेंट क्यों है पढ़ना क्योंकि ये इंटरव्यू में डायरेक्टली पूछ लिया जाता है कि बेसिकली क्या होते हैं रीडर राइटर प्रॉब्लम बताओ प्रोड्यूसर कंज्यूमर प्रॉब्लम क्या होता है ठीक है तो इस लेक्चर में हम डिस्कस करते हैं सबसे पहले प्रोड्यूसर कंज्यूमर प्रॉब्लम ठीक है तो हम डिस्कस करते हैं प्रोड्यूसर कंज्यूमर प्रॉब्लम इसको मैं ना बाउंड बफर प्रॉब्लम भी बोलता हूं ठीक है बांडेड बफर प्रॉब्लम पहले समझते हैं एक्चुअली प्रॉब्लम स्टेटमेंट क्या है क्या है यह प्रॉब्लम और क्यों है यह प्रॉब्लम ठीक है तो यार हमारे पास ना इसमें एक थ्रेड होती है प्रोड्यूसर की ठीक है और एक थ्रेड होती है मेरे पास कंज्यूमर की यानी कि टास्क हो गई आपकी प्रोड्यूसर टास्क ट्रांस और प्रोड्यूसर क्या करता है प्रोड्यूसर प्रोड्यूस करता है कोई भी डाटा मतलब मैं मान लो बॉटल्स प्रोड्यूस करता है मान लो यहां प ले लेते हैं एग्जांपल कंज्यूमर क्या है वो कंज्यूम करता है तो यहां पर ना मेरे पास एक क्रिटिकल सेक्शन है क्रिटिकल सेक्शन है यह बेसिकली यह क्रिटिकल सेक्शन है यह मेरे पास एक बफर है जिसके अंदर प्रोड्यूसर क्या करता है प्रोड्यूस कर कर करके डाटा को बफर में डाल देता है कंज्यूमर क्या करता है कि जब प्रोड्यूसर प्रोड्यूस कर देता है यानी कि कोई भी ब कोई भी डाटा मान लो अवेलेबल है स्लॉट्स के अंदर डेटा अवेलेबल है तब वो उसको कंज्यूम करना शुरू करता है ठीक है तो मैं बोलू कि एक बारे में या तो यहां पर प्रोड्यूसर प्रोड्यूस करके ठीक है या तो प्रोड्यूसर आपका प्रोड्यूसर आपका प्रोड्यूस करके यहां पर डालेगा डाटा को ठीक है डाटा को बेसिकली स्लॉट्स में डालेगा या फिर कंज्यूमर जो है वह स्लॉट से पिक करेगा कंज्यूमर कंज्यूम कर रहा है प्रोड्यूसर प्रोड्यूस कर रहा है तो बेसिकली मेरे पास बेसिक प्रॉब्लम स्टेटमेंट की बात करूं तो मेरे पास ए स्लॉट्स है यहां पे ठीक है स्टार्टिंग में ये एमपीटी रहेंगे प्रोड्यूसर प्रोड्यूस करके डालेगा और कंज्यूमर कंज्यूम करके डालेगा अब ये जो पर्टिकुलर जो एक बफर बन गया जो ये बफर की बात कर रहा हूं मैं इसको मैं बोल रहा हूं ये क्रिटिकल सेक्शन है ठीक है तो मुझे एक सिंक्रनाइजेशन का मेथड चाहिए कि भाई प्रोड्यूसर जब प्रोड्यूस कर रहा हो ठीक है तब वो प्रोड्यूस करके बेसिकली डाले और कंज्यूमर उस टाइम यहां पर इंटरफेयर ना करे यानी कि उठाने ना आ जाए या फिर उल्टा बोलूं तो तो मैं अगर कंज्यूमर आपका पिक करने आया है तो प्रोड्यूसर उस टाइम व ना डाल रहा हू ठीक है तो चलते हैं आगे इस पर डिस्कस करते हैं बार ये आपका प्रोड्यूसर है एमटी स्लॉट्स में पुट करेगा कंज्यूमर जो है जो फीड स्लॉट्स है फीड स्लॉट से पिक करेगा यह हमें समझ आ गया कि बेसिकली है क्या अब इस समझ तो हमें आ गया अब इसमें प्रॉब्लम क्या है ठीक है प्रॉब्लम क्या है प्रॉब्लम सबसे पहले यह है कि हमारा जो क्रिटिकल सेक्शन है जिसको मैं बफर बोल ठीक है जिसको मैं बफर बोल रहा हूं वो बेसिकली एक शेयर्ड रिसोर्स है तो मैं चाहता नहीं हूं कि इनकंसिस्टेंसी प्रोड्यूस हो तो मैं इसको एक सिंक्रोनाइज्ड वे में बेसिकली थ्रेड्स का एक्सेस चाहता हूं ठीक है तो सिंक्रनाइजेशन चाहता हूं मैं सिंक बिटवीन प्रोड्यूसर थ्रेड एंड कंज्यूमर थ्रेड ठीक है ये आपकी एक प्रॉब्लम हो गई प्रॉब्लम दूसरा प्रोड्यूसर जो है वो डाटा तब नहीं इंसर्ट कर सकता जब बफर फुल है अगर मान लो बफर फुल है ए स्लॉट्स एन की एन सारी स्लॉट्स फुल है तो क्या उस केस में प्रोड्यूसर को पुट करना चाहिए क्या सीपीयू साइकिल मुझे वेस्ट करनी चाहिए कि मैं उसको पुट करूं मेरे को नहीं करनी सीपीयू साइकिल वेस्ट देखो सारा गेम यहां सीपीयू साइकिल्स का है सीपीयू साइकिल्स बचाना चाह रहा हूं अगर मान लो बफर मेरा फुल है पहले से तो मैं क्यों जाके चेकिंग करूं और डालने की कोशिश करूं ऐसा सब मैं क्यों करूं ठीक है तो इस चक्कर में मैं चाहता हूं कि ये चीज भी सिंक्रोनाइज्ड हो ये चीज भी मैं कैटर करूं अपने सॉल्यूशन में तो ये एक प्रॉब्लम में जल्दी से लिख लेते हैं इसको प्रोड्यूसर मस्ट नॉट इंसर्ट ठीक है तो एक ये चीज हो गई कि भाई प्रोड्यूसर जो है अगर मा मान लो मेरे पास बफर फुल है तो उसे पुट ना करें ठीक है सिमिलरली मैं बोल सकता हूं कि कंज्यूमर जो है कंज्यूमर जो है वो मस्ट नॉट पिक और रिमूव बोल देता हूं मैं रिमूव डाटा वन द बफर इज एमटी ठीक है तो यह तीन प्रॉब्लम हो गई मेरे को इन तीन प्रॉब्लम्स को केटर करना है ठीक है मैं चाहता हूं मेरा क्रिटिकल सेक्शन जो है वो बेसिकली रेस कंडीशन ना अर हो वहां पर सिंक्रोनाइज वे में एक्सेस हो उसके बाद प्रोड्यूसर वाली प्रॉब्लम हमने देखी कि प्रोड्यूसर जो है प्रोड्यूस ना करे इंसर्ट ना करे कंज्यूमर जो है वो पिक ना करे ठीक है कंज्यूम ना करे अब ये इसको अब दूसरा इसका नाम था हमारे पास बाउंड बफर प्रॉब्लम बाउंड बफर प्रॉब्लम क्यों बोल रहा हूं मैं क्योंकि एक फाइना इट बफर है और फाइना इट बफर है मेरे पास जिसको मैं ये बोल रहा हूं ये फाइना इट बफर है राइट ये फाइना इट बफर है ए स्लॉट्स है इसके अर इंफाइटिंग को सिंक्रोनाइज करना है इसलिए मैं इसे बाउंडर बफर कहता हूं दिस बफर इज बाउंड ठीक है एक फाइना इट बफर है अब मैं देखता हूं यार इसका सॉल्यूशन ना सॉल्यूशन हम देते हैं सीमा फोर्स की मदद से ठीक है ट्राई करते हैं इसको सॉल्व करते हैं सॉल्यूशन देते हैं सीमा फोर वाला सॉल्यूशन अब सीमा फर हमने पढ़े थे दो टाइप के होते हैं एक बाइनरी सीमा फर और काउंटिंग सीमा फर तो इसके अंदर हम दोनों ही यूज करेंगे बाइनरी और काउंटिंग दोनों यूज करेंगे तो सबसे पहले मान लो मैं एक ले लेता हूं सीमा फोर मेरा एम इसका नाम मैं एम दे रहा हूं दिस इज म्यूट्स टेक्स मूटे जो है हमने डिस्कस किया था कि एक बेसिकली इंटरनली इंटरनली जो टेक्स है वो एक बाइनरी सीमा फोर ही होता है ठीक है तो इसको मैं टेक्स बोल देता हूं ये बेसिकली हमारा एक बाइनरी सीमा फोर है यूज क्यों होगा यूज टू एक्वायर लॉक ऑन बफर जो मेरा जब बफर को एक्सेस करने जाऊंगा ना कल सेशन को एक्सेस करने जाऊंगा तो उसको एक्सेस करने से पहले मैं लॉक लगा के जाऊंगा उसके लिए मैं यूज कर रहा हूं इसका दूसरा मेरा है एमटी सीमा फर एमटी सीमा फर एमटी सीमा फर क्या है ये एक काउंटिंग सीमा फोर है ये काउंटिंग सीमा फोर है ठीक है और इसकी इनिशियल वैल्यू जो होगी ना इनिशियल वैल्यू वो मेरी होगी n ए मतलब जो स्टार्टिंग में मेरे पास जो स्टार्टिंग में एमटी की वैल्यू n क्यों होगी क्योंकि स्टार्टिंग में हरा मेरा जो बफर है वो खाली रहेगा राइट तो एमटी स्लॉट्स उसमें ए होगी तो उसके ए एमटी स्लॉट्स होंगी तो मैं कह सकता हूं जो ये एमटी है ये ट्रैक करने के लिए यूज हो रहा है ट्रैक्स एमटी स्लॉट्स ठीक है एमटी स्लॉट्स ट्रैक करने के लिए यूज कर रहा हूं इस सीमा फर का मैं तीसरा मैं एक वैरिल ले लेता हूं फुल फुल आप समझ गए होंगे ठीक है ये ट्रैक करेगा कि फील्ड स्लॉट्स कितनी है ठीक है ट्रैक्स फील्ड स्लॉट्स इसकी इनिशियल वैल्यू कितनी होगी जीरो इसकी इनिशियल वैल्यू जीरो होगी फील्ड स्लॉट्स को ट्रैक करेगा क्योंकि स्टार्टिंग में जब भी जब t इ 0 होगा तो मेरा बफर पूरा खाली होगा तो फील्ड जो है मेरे पास वो जीरो रहेंगी ठीक है चलिए आगे बढ़ते हैं तो ये मेरे तीन सीमा फोर्स हो गए हमने डिस्कस कर लिया कि तीन हमने सी फ बेसिकली इनिश इइ कर लिए है अब फाइनल सलूशन दिखेगा कैसा मैं उसको पुट करता हूं ठीक है जल्दी से लिखते हैं फाइनल सलूशन क्या होगा र यह हमारा सॉल्यूशन है यह सॉल्यूशन हम प्रपोज कर रहे हैं ठीक है प्रोड्यूसर कंज्यूमर प्रॉब्लम के लिए अब इसको समझते हैं ध्यान से कि यह प्रॉब्लम को सॉल्व कैसे कर रहा है सबसे पहले मेरी प्रॉब्लम क्या थी सबसे पहले मेरी प्रॉब्लम थी कि मैं क्रिटिकल सेक्शन को बेसिकली म्यूचुअल एक्सक्लूसिव वे में मैं एक्सेस कर पाऊं तो हमारे पास यहां क्रिटिकल सेक्शन कहां पे है ये हमारा क्रिटिकल सेक्शन है सिमिलरली यहां पे ये हमारा सटल सेक्शन है ठीक है तो क्या यहां पर म्यूचुअल एक्सक्लूजन आ रहा है जो हमने म्यूट्स वेरिएबल यूज़ किया था दैट वाज अ बाइनरी सीमा फर तो वो क्या कर रहा है वो बेसिकली जब भी हम जाएंगे तो यहां वेट कॉल करेगा वेट कॉल करेगा तो अब पिछली वीडियो में हमने डिस्कस किया था कि सीमा फर की इंप्लीमेंटेशन में अंदर कैसे इंप्लीमेंट हो रहे होते हैं तो हमने देखा था कि वो एक वैल्यू है जो कि इंटी जर वैल्यू जो कि इस म्यूट केस में वन होगी उसको माइनस माइनस कर देता है माइनस माइनस करने के बाद ज़ीरो हो जाता है तो उस उसके बाद अगर जीरो से एक बार जीरो हो गई वैल्यू उसके बाद अगर कोई और थ्रेड उसको डिक्रिमेंट करती है तो वो ब्लॉक हो जाती है वो वेट में चली जाती है ठीक है प्रॉपर ब्लॉक हो जाता है नो बिजी वेटिंग इज देयर राइट तो यहां पर मैं मूटे की मदद से म्यूचुअल एक्सक्लूजन ला पा रहा हूं ठीक है उसके बाद जो ये नए वेरिएबल है जो काउंटिंग वेरिएबल है जसे काउंटिंग सीमा फोर्स है इनका यूज मैं कैसे कर रहा हूं वो देखते हैं सबसे पहले देखो सबसे पहले मान लो मेरे जो मेरा जो मेरे पास ये बफर था है सबसे पहले ये क्या होगा सबसे पहले खाली होगा खाली होगा और खाली के केस में अगर कंज्यूमर कंज्यूम करना चाह रहा है खाली है बट कंज्यूमर कंज्यूम करना चाह रहा है क कंजूमर थड को थोड़ा ना पता खाली है तो हम क्या करेंगे वो आएगा इधर वो वेट कॉल करेगा वेट कॉल करेगा और दिखेगा फिल फिल को माइनस माइनस करने की कोशिश करेगा ठीक है तो क्या फिल बेसिकली स्टार्टिंग में फिल की वैल्यू हमने कैसे इलाज करी थी जीरो से फिल की वैल्यू पहले से ही जीरो है क्या वो माइनस माइनस कर पाएगा वो नहीं माइनस माइनस कर पाएगा जैसे ही माइनस माइनस करेगा बेसिकली वो वेट पर चला जाएगा राइट जैसे ही माइनस माइनस होगा वो वेट वेट पे चला जाएगा वेट पे क्यों जाएगा क्योंकि जो हमारा बफर है वो भी उसके अंदर एक भी स्लॉट भरा नहीं हुआ है ठीक है तो फिल की वैल्यू जो कि स्टार्टिंग में जीरो थी नेगेटिव हो जाएगी नेगेटिव होगी तो बेसिकली मेरा वेट प चला जाएगा तो अभी मैं बोलूं कि स्टार्टिंग में कंज्यूमर थ्रेड जो है यहां पे वेट करेगी उसके बाद प्रोड्यूसर थ्रेड पे आते हैं प्रोड्यूसर थ्रेड क्या करेगी वो देखेगी क्या एमटी है क्या एमटी है वो वेट कॉल करेगी एमटी पे एमटी प जब वेट कॉल करेगी एमटी स्टार्टिंग में हमने देखा था कि एन से इनिला इज है ठीक है एन से इनिला इज है तो एन से इलाज है तो काउंटिंग वेरिएबल जो है इसका डिक्रिमेंट होगा डिक्रिमेंट होगा स्टार्टिंग में वेट अंट्टी ग्रेटर दन 0 एमटी स्टार्टिंग में n के बराबर है तो ग्रेटर दन जीरो है ही तो ये मैं इधर से आगे बढ़ जाऊंगा आगे बढ़ जाऊंगा फिर टेक्स ये जो हमने डिस्कस किया टेक्स लॉक करेगा और क्रिटिकल सेक्शन मेरा एक्सेस हो जाएगा तो मैं बोल सकता हूं स्टार्टिंग में प्रोड्यूसर ही अंदर जा पाएगा कंजूमर अंदर नहीं जाएगा ठीक है तो प्रोड्यूसर अंदर घुस गया प्रोड्यूसर अंदर जाने के बाद इसने क्रिटिकल सेक्शन में एक स्लॉट को भरा एक स्लॉट में एडिशन करने के बाद वो सिग्नल करा उसमें म्यूट को फिर सिग्नल करा फुल को जब फुल को वो सिग्नल करेगा तो फुल को सिग्नल करने के बाद क्या होगा कि इंक्रीमेंट फुल कर दिया तो क्या होगा यहां पर जैसे सिग्नल की इंप्लीमेंटेशन थी कि वहां प वैल्यू प्लस प्लस होती है c4 में तो ये वैल्यू जैसे ही प्लस प्लस होगी तो कंज्यूमर थ्रेड जो कि यहां पे पहले से वेट कर रही थी जैसे ही सिग्नल बेसिकली अ सिग्नल यहां से होगा या इंक्रीमेंट होगा इंक्रीमेंट होके हमने सिग्नल की इंप्लीमेंटेशन में देखा था वो बैकअप को कॉल करता है ठीक है इंक्रीमेंट होते ही जीरो वैल्यू होगी जीरो वैल्यू होते ही वो वेकअप कॉल करेगा वेक अप होके यहां पे एक सिग्नल जाएगा जैसे ही सिग्नल जाए तो ये जो ब्लॉक थी ये थ्रेड ये ब्लॉक थ्रेड जो अनब्लॉक होगी अनब्लॉक होके अंदर बेसिकली एंटर कर जाएगी और क्रिटिकल सेक्शन में जा पाएगी ठीक है तो मैं बोल सकता हूं कि स्टार्टिंग में प्रोड्यूसर ही अंदर घुस पाया जैसे ही प्रोड्यूसर ने एक स्लॉट फिल करी तभी कंज्यूमर मेरा एंटर हो गया ठीक है तो मैं बोल सकता हूं कि मैंने किस तरीके से इसको बेसिकली मैनेज कर लिया ठीक है कि भाई प्रोड्यूसर जो है तभी बेसिकली प्रोड्यूस कर पाएगा जब बेसिकली कोई स्लॉट खाली हो ग और कंज्यूमर तभी पिक करना शुरू होगा जब एटलीस्ट एक स्लॉट तो हो एक स्लॉट के अंदर डाटा तो हो अब दूसरा सिनेरियो भी डिस्कस कर सकते हैं मान लो कि ये जो आपका पूरा बफर है ये जो पूरा बफर है ये मेरा पूरा फील्ड है अगर पूरा बफर फील्ड है तो क्या कंज्यूमर कंज्यूम कर पाएगा कंज्यूमर तो कंज्यूम कर पाएगा ठीक है यहां पे वेट कॉल कर ही लेगा पर क्या प्रोड्यूसर प्रोड्यूस कर पाएगा नहीं कर पाएगा क्यों क्योंकि जब आपका पूरा बफर फील्ड है तो एमटी क्या होगा मेरा एमटी होगा मेरा जीरो एमटी जीरो होगा तो हमने क्या बोला है कि वेट तब तक करना है जब तक एटी ग्रेटर दन 1 नहीं हो जाता सीमा फोर इसी तरीके से काम करता है तो यहां पे प्रोड्यूसर वेट करेगा इस केस में जब पूरा मेरा बफर जो है फील्ड है उस केस में प्रोड्यूसर वेट करेगा क्योंकि कोई स्लॉट खाली नहीं है वो प्रोड्यूस कर नहीं पाएगा कोई एंटर कर नहीं पाएगा तो व्हाई शुड आई गिव द एक्सेस ऑफ द क्रिटिकल सेक्शन टू प्रोड्यूसर राइट तो मैं यहां पे कोई एक्सेस नहीं दूंगा तो इस तरीके से आप देख ो कितनी ही ब्यूटीफुली सीमा फर ने इस पूरी प्रॉब्लम को पूरी जो एक सिंक्रोनाइजेशन की प्रॉब्लम है इसको सॉल्व करा तो यार ये बहुत ही फेमस प्रॉब्लम है ठीक है और प्रोड्यूसर कंज्यूमर प्रॉब्लम बोलते हैं बहुत ही जगह पे ओएस के अंदर ये यूज होती है आगे आगे भी जब आप डिजाइनिंग करते हो तब भी ये चीज यूज होती है थ्रेड्स की डिजाइनिंग में आपको बेसिकली मल्टीपल थ्रेड मल्टीपल प्रोड्यूसर भी हो सकते हैं मल्टीपल प्रोड्यूसर प्रोड्यूस कर रहे हैं मल्टीपल मल्टीपल कंज्यूमर कंज्यूम कर रहे कर रहे हैं तो इसके इसमें इस तरीके से इसको एक्सटेंड भी कर सकते हैं तो ये एक बेसिकली क्लासिक प्रॉब्लम थी क्लासिक प्रॉब्लम थी जिसको कि हमने सॉल्व किया सीमा फोर से ठीक है तो आई होप आपको ये प्रॉब्लम समझ आई होगी और प्रॉब्लम का सलूशन समझ आया होगा तो अगर मैं इसकी बात करूं तो यह बेसिकली इंटरव्यू में डायरेक्टली पूछ लिया जाता है कि प्रोड्यूसर कंज्यूमर प्रॉब्लम क्या है उसका सलूशन आप कैसे दोगे तो आपको ये बेसिकली पढ़ना जरूरी है इसलिए तो मिलते हैं नेक्स्ट लेक्चर में नेक्स्ट लेक्चर में हम डिस्कस करेंगे रीडर राइटर प्रॉब्लम ठीक है वो भी एक क्लासिक प्रॉब्लम है नेक्स्ट लेक्चर में डिस्कस करते हैं मिलते हैं नेक्स्ट लेक्चर में बाय हेलो जी कैसे हो स दिस लक्ष तो हम आ चुके हैं हमारे के लेक्चर नंबर 19 पर और अभी हम चल रहे हैं हमारी कंक्रेंस वाले मॉड्यूल पर जिसमें कि हम डिस्कस कर रहे थे अभी लास्ट लेक्चर में कि क्लासिक सिंक्रोनाइजेशन की कौन सी प्रॉब्लम्स है उनको हम सॉल्व कैसे कर रहे हैं तो नेक्स्ट प्रॉब्लम जो हम आज डिस्कस कर करने वाले हैं वो बहुत ही फेमस प्रॉब्लम है जिसका नाम है रीडर राइटर प्रॉब्लम बहुत ही फेमस प्रॉब्लम है ठीक है इंटरव्यू में पूछी जा सकती है बहुत ही ओबवियस प्रॉब्लम है ठीक है तो चलो डिस्कस करते हैं सबसे पहले हम कुछ एंटिटीज है यहां पे हमारे पास हमारे पास मान लो एक डेटाबेस है ठीक है हमारे पास एक ये डेटाबेस है अब डेटाबेस क्या होता है ना डेटाबेस से शेयर्ड रिसोर्स है ठीक है यहां पर चीजें पड़ी हुई है आपकी आपका कोई राइटर आएगा लिखेगा कोई रीडर रीड करेगा बहुत सारी थ्रेड्स रीडिंग थड व रीड करेंगी बहुत सार राइटिंग थ्रेड हो वो राइट करेंगी तो इस केस में हमें सिंक्रनाइजेशन बिठा है कि एक बारी में एक ही राइटर राइट कर सके बट मल्टीपल रीडर रीड कर सकते हैं ठीक है तो इसको इस तरीके समझते हैं कि हमारे पास एंटिटीज कौन-कौन सी है हमारे पास एंटिटी कौन सी है सबसे पहले हमारे पास रीडर है रीडर थड बोल सकता हूं इनको इनका काम क्या है सिर्फ रीड करना दूसरी हमारे पास राइटर थ्रेड्स जिनका काम है राइट करना ठीक है बेसिकली डाटा को अपडेट करती है ठीक है इस तरीके से समझ सकते हो कि कोई आपका पेपर है या फिर कोई फाइल है उसके अंदर आप बेसिकली बहुत सारे राइटर राइट करना चाह रहे हैं जो कि और बहुत सारे टर रीड करना चाह रहे हैं अब मैं इसका एग्जांपल लू मान लो आपके पास एक टॉक फाइल है उसमें बहुत सारे राइटर अगर राइट कर रहे हैं तो डाटा इनकंसिस्टेंट हो जाएगा राइट तो मैं चाहता हूं कि जो मेरा राइटर है वो एक बारी में एक ही ब राइट करे उसको ठीक पर रीडर मल्टीपल हो सकते हैं ठीक है तो अगर मैं एक से ज्यादा रीडर यूज करता हूं सबसे पहले इ ग्रेटर दन वन रीडर्स हो ठीक डस आर रीडिंग तो नो इशू कोई इशू आएगा कोई भी इशू नहीं आएगा राइट और दूसरा है अगर मेरे पास गरन वन रा ट हुए ठीक है या फिर मैं बोल सकता हूं कि कोई एक एक राइटर हुआ एक राइटर हुआ एंड कोई और सेड हो गई सम अदर थड जिसको मैं रीडर भी रीडर थड भी हो सकती है राइटर ड भी हो सकती है अगर ऐसा हुआ तो इस केस में अगर य यह काम पैरेलली हो रहा है है ना यह काम मान लो पैरेलली हो रहा है तो रेस कंडीशन अकर हो जाएगी एंड डाटा इनकंसिस्टेंट हो जाएगा इनकंसिस्टेंट हो जाएगा कैसे हो जाएगा एग्जांपल लेते हैं यह मेरे पास मान लो पेपर है मैं यहां पर राइट कर रहा हूं मान लो कोई राइटर पहले से यहां पर राइट कर रहा है ठीक है कोई राइटर डव है व पहले से राइट कर रहा है अब इसी पोजीशन पर आके मान लो डब्लू टू राइटर राइट करने लग जाए तो इससे क्या प्रॉब्लम आईग कि वो मान लो ए बी सीडी लिख रहा है वो ईएफजी लिख रहा है तो इस तरीके से मतलब कैरेक्टर्स खराब हो जाएंगे तो बेसिकली मेरा डाटा जो है इनकंसिस्टेंट हो जाएगा अब मैं मान लेता हूं मान लो जो दूसरी थ्रेड है ये राइटर ना होकर ठीक है ये राइटर ना होकर मान लो कोई रीडर थ्रेड भी थी r1 तो भी प्रॉब्लम आएगी क्योंकि एक थ्रेड जब राइट कर रही है उसी टाइम प एक थ्रेड रीड भी कर रही है तो हो सकता है कि जब वो रीड करके जाए उसके थोड़ी देर बाद ही राइटर कुछ अपडेट कर दे राइट तो रीडर मैं बोलूंगा रीडर ने सही डाटा रीड नहीं करा होगा ठीक है इनकंसिस्टेंट रीडिंग करी होगी उस ने मलो राइटर पहले लिख रहा था कि राइटर ने पहले लिखा मत लो ए बी सीडी और रीडर आया इसी टाइम पे ए बी सीडी राइट करके चला गया सॉरी ए बी सीडी रीड करके चला गया राइट डर तो रीड करेगा रीड करके चला गया तो उसने ए बी सीडी बफर में रीड कर लिया बट राइटर ने थोड़ी देर में क्या किया कि ए बी सीडी ना करके ना इसको ए बी ज एफ कर दिया ठीक है ये कैरेक्टर्स कर दिए तो मैं बोलूं कि राइटर ने ए बी ज एफ चेंज कर दिया बट रीडर क्या रीड करके गया था ए बी सीडी तो इस चक्कर में क्या हुआ रीडर ने इनकंसिस्टेंट डाटा यानी कि रॉन्ग डाटा रीड कर लिया बल्कि राइटर ने थोड़ी देर बाद उस डाटा को करेक्ट कर दिया था ठीक है तो मैं ये नहीं चाहता कि कोई एक राइटर अगर बेसिकली डाटा पे काम कर रहा है डेटाबेस में कुछ अपडेशन कर रहा है तो कोई और थ्रेड मे बी रीडर भी हो सकती है राइटर भी हो सकती है कोई और थ्रेड उसको आके इंटरफेयर करें यानी कि एक बारी में एक ही राइटर क्रिटिकल सेक्शन में होगा यहां पर हमारा डेटाबेस जो है इस इस केस में जो मेरा पेज था ये एक क्रिटिकल सेक्शन है तो हमें समझ आ गया कि हमारे पास एक क्रिटिकल सेक्शन है डेटाबेस हमारे पास रीडर थ्रेड्स है राइटर थ्रेड्स है मैं चाहता हूं कि राइटर थ्रेड जो है वो एक बारी में एक ही थ्रेड जो है मचली एक्सक्लूसिव वे में जाकर राइट करना शुरू करें ठीक है बट रीडर थ्रेड जो है वो एक से ज्यादा रीड कर सकती हैं बट राइटर थ्रेड अगर पहले से राइट कर रही है तो कोई रीडर भी नहीं आ सकती क्योंकि रीडर इनकंसिस्टेंट रीड कर लेगा राइट तो इसका सलूशन देखते हैं हम कैसे लेके आएंगे ठीक है सलूशन देते हैं रीडर राइटर प्रॉब्लम का और सलूशन हम देते हैं फिर से सीमा फोर से ठीक है सीमा फोर सॉल्यूशन टू रीडर राइटर प्रॉब्लम सबसे पहले मैं एक म्यू टेक्स यूज करूंगा टेक्स हमने पिछली वीडियो में बोला था कि एक बाइनरी सीमा फर को बोल रहा हूं मैं पिछली वीडियो में भी यूज किया था हमने मूटे सीमा फर क्या होता है व आप सिमर वाली वीडियो में जाकर देख सकते हैं पिछली मेरे ख्याल से इससे प्रीवियस टू प्रीवियस वीडियो होगी उसम आप जाके देख सकते हो क्या होते हैं ठीक है तो ये क्यों होगा दिस इ यूज टू एश्योर टू इंश्योर म्यूचुअल एक्सक्लूजन न रीड काउंट डीट काउंट को मैं आरसी बोल देता हूं इज अपडेटेड तो मैं जब अभी सलूशन में मैं एक रीड काउंट नाम का वेरिएबल यूज करने वाला हूं ठीक है वो सिंपल एक वेरिएबल होगा उस रीड काउंट वेरिएबल को जब भी कोई मैंने बोला था ना कि एक से ज्यादा रीडर हो सकते हैं तो हमें रीडर का काउंट भी मेंटेन करना पड़ेगा कि कितने रीडर है तो एक रीड काउंट को अपडेट करने के के लिए क्योंकि रीड काउंट भी यहां पे एक टाइप से मैं बोलूं तो क्योंकि ये रीड काउंट जो है ये खुद भी एक क्रिटिकल सेक्शन बन जाएगा क्योंकि जब हमने डिस्कस किया था कि जब बेसिकली काउंट प्लस प्लस कर रहे थे तो उस केस में मैं काउंट प्लस प्लस करते हुए म्यूचुअल एक्सक्लूजन चाहता हूं क्योंकि वो टप वेरिएबल की वजह से वो एक एटॉमिक ऑपरेशन नहीं होता ठीक है तो यहां पर रीड काउंट को जब भी मैं अपडेट कर रहा हूंगा तो आई वांट कि एक म्यूट्स हो उस पे यानी कि एक म्यूचुअल एक्सक्लूसिव वे में ये अपडेट हो ठीक है तो इससे क्या होगा अगर मैं टेक्स का यूज करूंगा तो मैं बोल सकता हूं नो टू थ्रेड्स वड मॉडिफाई ट्रीड काउंट एट सेम टाइम ठीक है सेम टाइम प नहीं करेंगे दूसरा एक डब्लू आरटी वेरिएबल यूज करता हूं दिस इ आल्सो ए बाइनरी सीमा फर है ना और ये कॉमन होगा कॉमन होगा फॉर बोथ रीडर राइटर कॉमन होगा बोथ टर का क्या मतलब है य भी थोड़ी देर में में देखते हैं राइट सिफर क्यों यूज होगा राइट सिफर इसलिए यूज होगा जो मेरा क्रिटिकल सेक्शन है जो डेटाबेस है डेटाबेस का एक्सेस जो है वो मैं सिंक्रोनाइज एक्सेस चाहता हूं एक मूच म्यूचुअल एक्सक्लूसिव वे में एक्सेस चाहता हूं रीडर राइटर दोनों थ्रेड्स के बीच में तो ये उस काम के लिए राइट यूज होगा ठीक है तीसरी तीसरा जो वेरिएबल है वो मेरा रीड काउंट है शॉर्ट में उसे आरसी बोल देता हूं ठीक है यह क्या है यह नॉर्मली इंटी जर है ये सिंपल ये सीमा फोर नहीं है ठीक है य ध्यान रखना सीमा फर नहीं है ये एक इंटी जर है जिसकी वैल्यू जीरो से इनिश इइ होती है तो ये रीडर काउंट क्या करता है रीडर काउंट जो है ये बेसिकली ट्रैक रखता है कितने रीडर्स जो हैं वो क्रिटिकल सेक्शन में अभी रीड कर रहे हैं ठीक है तो चलो अब थोड़ा आगे बढ़ते हैं और सॉल्यूशन डिस्कस करते हैं ठीक है अब डिस्कस करते हैं हम सॉल्यूशन अब सॉल्यूशन कैसे वर्क करेगा अब ये देखते हैं सबसे पहले छोटा सा सॉल्यूशन है ठीक है छोटा सा सॉल्यूशन राइटर का सॉल्यूशन डिस्कस कर लेते हैं राइटर का कि भाई राइटर का कोड कैसा दिखेगा जल्दी से मैं लिख लेता हूं ठीक है जल्दी से हमने बना लिया राइटर का सॉल्यूशन तो राइटर का सॉल्यूशन किस तरीके से वर्क करेगा कि जो राइटिंग के ऑपरेशन है जो राइटिंग ऑपरेशन है यह क्रिटिकल सेक्शन है इसका एक्सेस एक बारी में एक राइटर को ही मिलेगा तो इसके लिए मैं क्या कर रहा हूं डब्ल्यू आरटी वेरिएबल यूज कर रहा हूं ये एक सेमा फर है सिंपल सीमा फर कैसे वर्क करते है इसकी इंटरनल इंप्लीमेंटेशन कैसे होती है ये आपको बताई गई थी पिछले से पिछले वीडियो में तो वो जाके एक बार रिवाइज कर लेना अगर आपको यहां प्रॉब्लम हो रही है समझने में तो तो राइटर क्या करेगा पहले इसको ये बेसिकली बेसिकली बाइनरी समा फ था सिंपली इसको यहां पे वेट करेंगे वेट करने के बाद ये इसको लॉक कर देगा कोई और थ्रेड इसके अंदर नहीं एंटर कर पाएगी और राइट ऑपरेशन होगा फर सिग्नल करेगा सिग्नल करने में कोई और थ्रेड एंटर हो सकती है तो इस तरीके से सिंपली एक बहुत ही सिंपल सॉल्यूशन है इस तरीके से ये काम करता है ठीक है राइटर का सलूशन अब थोड़ा रीडर के सलूशन में जाते हैं वो थोड़ा सा ट्रिकी होगा ठीक है मैं जल्दी से ड्रॉ कर लेता हूं उसको तो बड़ी मेहनत से ये पूरा डीडर सलूशन लिख लिया है मैंने ठीक है काफी ट्रिकी सा दिख रहा है ये बट समझने में बहुत ही आसान है राइटर हमने समझ लिया था सिंपल बहुत ही सिंपल था अब रीडर पे आते हैं तो रीडर का हमारी क्या कंडीशन थी रीडर की कंडीशन थी कि मल्टी मल्टीपल रीडर रीड कर सकते हैं ठीक है मल्टीपल रीडर रीड कर सकते हैं और हमें जब हम रीड कर रहे हैं जब हम रीड करने जा रहे हैं तो हमें इंश्योर यह भी करना है कि जो राइटर कोई राइटर ना हो क्रिटिकल सेक्शन में ठीक है या फिर मैं ये उल्टा बोलूं तो अगर मैं रीड कर रहा हूं ठीक है तो राइटर को मुझे जाने ही नहीं देना अंदर ठीक है तो कैसे करेंगे इसको देखो सबसे पहले जब भी क्योंकि मल्टीपल रीडर्स वाली बात हो रही है यहां पे तो हमारे पास एक रीड काउंट वेरिएबल था तो स्टार्टिंग में हम क्या कर रहे हैं रीड काउंट वेरिएबल को प्लस प्लस करने के लिए भी हमने जो ये टेक्स है इसका यूज किया था ठीक है इस मूटे का यूज कर रहा था मूटे यूज क्यों कर रहे थे क्योंकि बेसिकली हमने डिस्कस किया था काउंट प्लस प्लस करते हैं तो ट कैन आल्सो कोज रेस कंडीशन तो इसको बचाने के लिए हमने यहां पर भी एक म्यूट लगा दिया तो रीड काउंट वेरिएबल इसको इसके म्यूचुअल बेसिकली रीड काउंट वेरिएबल को प्लस प्लस करते हुए हम चाहते हैं यह भी बेसिकली म्यूचल एक्सक्लूसिव वे में प्लस प्लस हो सकता है ना मल्टीपल रीडर आके इसको प्लस प्लस कर दे काउंट गड़बड़ आ जाए तो समझ आ गया हमें मूटे यूज कर रहे हैं अब टेक्स यूज करा हमने आ प् प् पहला मालो रीडर आया तो जब पहला रीडर आएगा रीड काउंट वन होगा तो हम क्या करेंगे हम देखेंगे क्या ये पहला रीडर है अगर पहला रीडर हुआ तो हम वेट कॉल कर देंगे डब्ल्यू आरटी प ठीक है तो इस पॉइंट पर हो सकता है कि राइटर जो है पहले से ही क्रिटिकल सेक्शन में हो अगर राइटर पहले से क्रिटिकल सेक्शन में होगा तो मेरी जो रीडर थ्रेड है वो यहीं पर ब्लॉक हो जाएगी राइट क्योंकि राइटर पहले से अंदर है और अगर राइटर अंदर नहीं होगा तो मैं राइटर को यहां पर ब्लॉक करके चला जाऊंगा राइटर अगर मैंने वेट डब्लू आरटी पर कॉल कर दिया तो राइटर अंदर नहीं जा पाएगा क्रिटिकल सेक्शन के तो इसलिए ये वाली कंडीशन यूज हो रही है यहां पे हमने लिख भी दिया है कि एश्योर्स नो राइटर कैन एंटर इफ देयर इज इवन वन रीडर एक रीडर भी आया तो कोई राइटर नहीं होना चाहिए अंदर ठीक है उसके बाद हमने सिग्नल म्यूट्स कॉल कर दिया बेसिकली आरसी वाले इसके लिए यूज हो रहा है उसके बाद क्रिटिकल सेक्शन में कोई रीडर रीड करेगा ठीक है मल्टीपल रीडर भी आएंगे तो वो भी रीड कर रहे होंगे उसके बाद फिर से हमने वेट म्यूट्स कॉल किया हो सकता है मल्टीपल रीडर्स हो मान लो यहां पे चार रीडर थे तो चार रीडर होंगे तो चार रीडर मान लो सामली अगर साइमल नियस अगर बेसिकली कट सेक्शन को लीव करेंगे तो उस पॉइंट पे य आरसी को माइनस माइनस करेंगे मैं चाहता हूं यह भी म्यूचुअल एक्सक्लूसिव वे में एक्सेस हो तो इसलिए मैंने फिर से य टेक्स लगा दिया रीडर लीव्स तो अगर फाइनली फाइनली अगर रीड काउंट जीरो हो जाता है रीड काउंट अगर जीरो हो जाता है तो मैं सिग्नल कर दूंगा डब्ल्यू आरटी को यानी कि कोई और रीडर क्रिटिकल सेक्शन में नहीं है देयर आर जीरो रीडर्स इन द क्रिटिकल सेक्शन तो इस केस में मैं सिग्नल कर दूंगा डब्ल्यू आरटी को कि भाई राइटर जो है वो एंटर कर सकता है हो सकता है कि इतनी देर से जब बहुत सारे रीडर रीड कर रहे थे तो कोई राइटर यहां पे बेसिकली वेट कर रहा हूं तो उसको सिग्नल करने के लिए हमने सिग्नल डब्ल्यू आरडी कॉल कर दिया और फिर हमने सिग्नल मूटे कॉल किया ताकि रीडर लीव कर जाए फाइनली और बेसिकली ये लूप में चलता रहेगा लूप में चलता रहेगा तो दिस इज हाउ रीडर राइटर प्रॉब्लम इज सॉल्वड काफी बेसिकली इजी है ठीक है मतलब राइटर का सॉल्यूशन तो बहुत ही इजी है रीडर का सॉल्यूशन भी इजी है बट थोड़ा सा समझने में टक है ठीक है तो आई होप ये आपको समझ आया होगा तो सबसे पहले तो यार जो क्लासिक प्रॉब्लम्स डिस्कस कर रहे हैं ना इसमें मैं आपको एक होमवर्क देता हूं कि आप सारी प्रॉब्लम्स को ना सारी प्रॉब्लम्स को पढ़ने के बाद सारे सॉल्यूशंस को जो हम सलूशन दे रहे हैं इनको इंप्लीमेंट करो इंप्लीमेंट करो इंप्लीमेंट करने से क्या होगा आपको बहुत कॉन्फिडेंस आएगा कि हां रीडर राइटर प्रॉब्लम मुझे समझ आ गई है इसके अलावा जो हमारे बाउंड पफर प्रॉब्लम थी वो भी समझ आ गई है तो आप काफी कॉन्फिडेंट फील करोगे एक कासी प्रॉब्लम से और यह मार्क माय वर्ड्स ये पूछ लेते हैं इंटरव्यूज में तो बहुत बड़ी बात नहीं है ये ये क्वेश्चन आपके सामने आ जाए ठीक है तो इस वीडियो को यहीं पर एंड करते हैं मिलते हैं नेक्स्ट वीडियो में ठीक है नेक्स्ट वीडियो में कुछ एक और हम बेसिकली क्लासिक प्रॉब्लम को डिस्कस करेंगे गुड बाय हेलो जी कैसे हो सारे दिस लक्ष्य तो हम आ चुके हैं ओएस के लेक्चर नंबर 20 पर और लास्ट टू वीडियोस से हम लोग डिस्कस कर रहे थे क्लासिक सिंक्रनाइजेशन प्रॉब्लम जिसकी थर्ड प्रॉब्लम थर्ड एंड लास्ट प्रॉब्लम जो है वो हमारी है डाइनिंग फिलोसोफर प्रॉब्लम ठीक है इसका नाम है डाइनिंग फिलोसोफर प्रॉब्लम बड़ी इंटरेस्टिंग प्रॉब्लम है इसमें क्या होता है ना कि हमारे पास एक बेसिकली एक टेबल है और इस टेबल पर ना बहुत सारे बेसिकली पांच फिलोसोफर बैठे ठीक है न टूथ फोर फ फ फिलोसोफर बैठे हैं और बीच में एक बेसिकली नूडल्स रखे हुए हैं मान लो नूडल्स रखे हुए हैं और हमारे पास प्लेट्स है सबकी एक एक प्लेट्स है और हम फॉक्स रखी हुई है ठीक है तो उसको दूसरे कलर से बना देते हैं तो हमारे पास क्या हुआ हमारे पास पांच फिलोसोफर है फिलोसोफर को पीएच बोल देता हूं ठीक है और दूसरा हमारे पास नूडल्स रखे हुए हैं बीच में ठीक है तीसरा पांच ही फॉर्क्स है ठीक है और ये हमारे पास सिनेरियो ठीक है करंट सिनेरियो ये है अब ये वर्किंग कैसे है इस की इस सिनेरियो की वर्किंग ऐसे है कि जो फिलोसोफर है ना या तो वो थिंकिंग स्टेट पे होते हैं या फिर वो ईटिंग स्टेट पे होते हैं मतलब ये आपस में ना बात नहीं करते दोस्त भी नहीं है सोचते रहते हैं फिलोसोफर है ना सोचते रहते हैं बहुत ज्यादा सोचते हैं ठीक है तो या तो वो सोचते हैं या खाते हैं सिर्फ सोचते हैं या खाते हैं बस ये दो ही काम करते हैं ठीक है और ये आपस में भी बात नहीं करते ठीक है आपस में भी इनकी कोई डिस्कशन नहीं होती तो मैं कहूं तो ये फिलोसोफर इससे बात नहीं करता ना ये इससे ना ये इससे ना ये इससे कोई इंटरेक्शन नहीं है आपस में टेबल में बैठ के बस खाना खाते हैं अब जो ये खाना खा रहे हैं जैसे थिंकिंग किसी की थिंकिंग स्टेट खत्म हुई तो जब ईटिंग स्टेट पे आएगा जब खाना खाना शुरू करेगा तो नूडल्स खाने के लिए उसको दो फोक्स चाहिए ठीक है एटलीस्ट एटलीस्ट क्या एटलीस्ट एंड एट मोस्ट मतलब दो ही फोक्स चाहिए दो फॉक्स चाहिए यानी कि अगर मैं इसकी बात करूं तो इसको ये वाला फोक एंड ये वाला फोक दोनों चाहिए टू ईट ठीक है ये काम करने के लिए उसे चाहिए ठीक है और जब वो इन फॉक्स को पिक करता है जब ये मान लो ये पर्टिकुलर अ जो फिलोसोफर है ये पिक करता है तो यह ए वन बाय वन पिक करता है पहले इसको पिक करता है फिर इसको पिक करता है ऐसे मान लो यह पिक करने लगा लगेगा तो पहले इसको पिक करेगा फिर इसको पिक करेगा ठीक है तो ये पर्टिकुलर प्रॉब्लम है तो हमें क्या करना है हमारा प्रॉब्लम क्या है इसमें कि अगर सारे ही खाना खाने बैठ गए ठीक है सारे ही नूडल्स खाने बैठ गए तो हमें 5 * 2 10 चाहिए होंगी 10 फोक्स चाहिए होंगी राइट आईडियली ठीक है बट हम 10 फॉक्स तो है नहीं हमारे पास हमें पांच फोक्स से ही काम चलाना है ठीक है ठीक है पाच फोक से ही काम चलाना है तो ये मेरे पास एक प्रॉब्लम है कि मैं किस तरीके से इसकी सिंक्रोनाइजेशन बिठाऊ किस तरीके से सिंक्रोनाइज करूं कि ये एक ऐसा सिस्टम बन जाए कि जब जो खाना चाहे यानी कि ईटिंग स्टेट प जाना चाहे तो उसको दो फोक्स मिल जाए और खा ले और यह डेड लॉक फ्री डेड लॉक फ्री बेसिकली एक सिस्टम बन जाए ठीक है तो इसको भी सॉल्व करने के लिए इसको भी सॉल्व करने के लिए मैं क्या यूज करूंगा मैं यूज करूंगा सीमा फोर्स का ठीक है मैं यूज करूंगा सीमा फोर्स का तो मैं क्या कर सकता हूं मैं पहला काम कर सकता हूं कि ई फर्क को च फोर को एक सीमा फोर बनाता हूं सीमा फर बना देता हूं और एक बाइनरी सीमा फर बनाता ह बा बनाता यानी कि मैं बोलू की एक फो की एरे है मान लो पाच की और यह इलाज में कर देता हूं न से ठीक है तरीके से हमारी य फो की अरे बन गई और ये सीमा फोर्स है बेसिकली सीमा फोर्स की अरे है सीमा फोर्स इसका डटा टाइप है अब क्या होगा जब भी कोई फिलोसोफर आएगा ठीक है जब भी कोई फिलोसोफर मान लोय पर्टिकुलर फिलोसोफर है ये इस वाले फ को उठाने आया तो क्या करेगा वो वेट कॉल कर देगा वेट कॉल करने के बाद क्या होगा अगर मान लो यह वाला फिलोसोफर इसको पिक करना चाहेगा तो पिक नहीं कर सकता क्योंकि इस बंदे ने पहले से इसको लॉक कर दिया ठीक है तो य मैं बोल सकता हूं कि अगर मैं सिनेरियो लू ना कि ओस का सिनेरियो लू तो ये सारी प्रोसेसेस है इस फिलोसोफर सारी प्रोसेसेस है और ये मेरे पास रिसोर्स है जो फोक्स है ये रि फोर्स है तो ये काफी क्लासिक प्रॉब्लम है और ये प्रॉब्लम बहुत ज्यादा मतलब वो इसमें आती है ठीक है तो किस तरीके से इसको सॉल्व कर रहे हैं व आगे बढ़ते हैं तो मान लो ये इस पे लॉक लगा के बैठा है ये भी इस पे लॉक लगा के बैठा है तो इसको जब ये मिल गई तो इसको ये भी चाहिए राइट दूसरे वाली इसके एडजेसेंट बक भी चाहिए तो इसके लिए मैं क्या करता हूं इसके लिए मैं इस प्रोसेस को करने के लिए मैं क्या करता हूं सीमा फोर्स का यूज कर रहा हूं तो सीमा फोर्स के अंदर मैं बोल सकता हूं कि वेट जब कॉल होगा वेट जब कॉल होगा किसी एक पर्टिकुलर फोर्क पे मान लो फोर को आ प वेट कॉल हुआ तो मैं बोल सकता हूं कि वो जिस भी फिलोसोफर ने फिलोसोफर आई ने अगर इसको कॉल किया है तो मैं बोल सकता हूं उसने इसको एक्वायर कर लिया ठीक है तीसरा होगा कि कोई रिलीज करेगा मान लो रिलीज मेथड का यूज करूंगा रिलीज में क्या होगा मतलब फोर को फाइव प रिलीज कॉल हुआ तो रिलीज कॉल होने प क्या होगा कि ये पर्टिकुलर जो जो फर्क होगी जो फर्क होगी वो रिलीज हो जाएगी ठीक है रिलीज हो जाएगी यानी कि कोई और इसको पिक अप कर सकता है तो इसका सॉल्यूशन किस तरीके से दिखेगा वो देख लेते हैं इसका सॉल्यूशन कैसा दिखेगा सॉल्यूशन दिखेगा मेरा जल्दी से बना देता हूं तो ये मान लो ये पर्टिकुलर सॉल्यूशन है ठीक है ये पर्टिकुलर सलूशन हमने ड्र किया अब ये सॉल्यूशन कैसे वर्क करेगा ये सॉल्यूशन वर्क करेगा आप देखो अगर मान लो मेरे पास आ की वैल्यू वन है ठीक है आ की वैल्यू वन है तो अब पर्टिकुलर फिलोसोफर को अगर सेकंड कौन सी वाली फर्क उठानी पड़ेगी नंबरिंग वाइज i प् 1 मोड 5 ोड फ क्यों कर रहा हूं मैं मान लो आ मेरे पास फ हुआ 5 प्व वड बी 6 तो क्योंकि सर्कुलर टेबल पे मैनेज्ड है सर्कुलर टेबल प रखी हुई है तो सिक्सथ कोई सिक्सथ को तो कोई होगी नहीं तो सिक्स मोड फ कर दूंगा मैं इससे मेरा क्या होगा कि वो वापस से सिक्स मोड फ बेसिकली वन आ जाएगा तो इस केस में वापस से वन पे आ जाऊंगा ठीक है तो इस तरीके इसलिए ये मोड कंडीशन यूज हुई है ठीक है ये प्रोग्रामिंग में हम लोग करते ही रहते हैं तो दैट इज इजी टू अंडरस्टैंड ठीक है तो अगर मान लो i इ 1 है तो सेकंड फोक कौन सी उठानी होगी मुझे ठीक है 1 प् 1 मोड 5 दैट इज टू ठीक है तो मान लो इस डायग्राम में देख लेते हैं मान लो इसको ये फर्स्ट उठानी है तो उसके बाद दूसरी इसको सेकंड ये वाली उठानी पड़ेगी राइट तो ये उठानी पड़ेगी तो इस तरीके से हमने क्या करा दोनों पे पैरेलली वेट कॉल कर दिया ठीक है पैरेलल नहीं दोनों पे वन बाय वन वेट कॉल करा वेट कॉल करने के बाद कोई एक पर्टिकुलर जो फिलोसोफर होगा ये किसी एक फिलोसोफर ऑफ आई का सॉल्यूशन है ठीक है तो पर्टिकुलर फिलोसोफर वो क्या करेगा वो वेट कॉल कर देगा तो मैं बोल सकता हूं कि उसने ये वाली बेसिकली फॉक एक्वायर कर ली और ये वाली फॉक एक्वायर कर ली एक्वायर करने के बाद वो ईटिंग करने चला जाएगा उसके बाद जब उसका ईटिंग कंप्लीट हो जाएगा तो वो दोनों को सिग्नल करके रिलीज कर देगा और उसके बाद वापस थिंकिंग में कंटिन्यू हो जाएगा ये सॉल्यूशन काफी इजी दिख रहा है ठीक है बट इसमें एक बहुत ही मेजर प्रॉब्लम है ठीक है वो प्रॉब्लम क्या है वो अब तक आई गेस आप लोगों ने गेस कर ली होगी बट लेट मी टेल यू अब ये सलूशन ना ये तो इंश्योर कर रहा है कि दो नेबर्स नेबर वन एंड नेबर टू ठीक है p1 प2 जो ये दोनों दोनों नेब हैय सामली बेसिकली दोनों ईटिंग नहीं कर सकते क्यों क्योंकि अगर मान लो p1 ने इन दोनों पर लॉक लगा दिया तो प2 जो है वो इसपे लॉक तो लगा पाएगा बट इस पर लॉक नहीं लगा पाएगा प2 इस पर लॉक नहीं लगा पाएगा तो इस चक्कर में मैं बोल सकता हूं मैं बोल सकता हूं कि यह सलूशन यह तो इंश्योर कर रहा है कि दो एडजस्ट फिलोसोफर जो है वह साथ में टिंग नहीं करेंगे अब इसमें एक प्रॉब्लम है बहुत बड़ी प्रॉब्लम है वो यह है कि इसमें डेड लॉक आ सकता है और डेड लॉक आएगा कैसे अब ये देखो अब एज्यूम करो ठीक है एज्यूम करो सारे फिलोसोफर ने अपनी लेफ्ट वाली जो फोर्क है उसको पिक कर लिया सबको एक साथ भूख लगी और सबने साथ में सबको लेफ्ट वाली पिक कर ली अगर इसने पव ने भी लेफ्ट वाली पिक की प2 ने इसने लेफ्ट वाली पिक की पी3 ने लेफ्ट वाली पिक की प फ ने अपने लेफ्ट वाली पिक की प फ ने अपने ले वाली पिक की अब आप ध्यान से देखो अब ये एक ऐसी कंडीशन है कि एक डेड लॉक वाली कंडीशन है डेड लॉक अभी थोड़ा छोटा सा इंट्रोडक्शन दिया था मैंने पिछली वीडियोस में तो एक ये वाले जो ये वाला फिलोसोफर है ये इसको तो ले लेके बैठा है अब ये वेट कर रहा है कि पर्टिकुलर ये वाली कब फ्री होगी ठीक है p2 सिमिलरली ये तो लेके बैठा है बट वो वेट कर रहा है कि p1 कब फ्री करेगा बट p1 तब तक फ्री नहीं करेगा जब तक p5 इसको फ्री नहीं करेगा तो अब ये कैसा केस हो गया है कि ये डेड लॉक सिचुएशन है और ये डेड लॉग सिचुएशन कभी भी कभी भी बेसिकली इससे मैं बाहर नहीं आ पाऊंगा तो ये इनफाइनों लद मैंने सीमा फोर यूज कर लिया सीमा फोर यूज करके मैंने ये इंश्योर कर लिया कि दो जो साथ वाले बंदे हैं जो दो साथ वाले जो फिलोसोफर हैं वो सेटेली ईटिंग ईटिंग ना कर पाए ठीक है ये तो मैंने इंश्योर कर लिया बट यह वाली कंडीशन आ गई तो क्या करोगे तो इसको करने के लिए ना हमारे पास कोई एज सच कोई बहुत हार्ड एंड फास्ट तो चीज नहीं है कि हम और कोई डेड लॉक्स लॉक्स लगाए बट हमें ना कुछ थोड़े से ट्विक करने पड़ेंगे मैं बोलूं ना तो ये थोड़ा सा बेस ये वाले जो मैं आगे डिस्कस करने वाला हूं ये थोड़ा बेसिस भी बना रहा है किसका कि हाउ टू अवॉइड डेड लॉक तो डेड लॉक अवॉइड करेंगे अब यहां पे हम हम कोशिश करेंगे कि ये सिचुएशन आए ही ना ये जो पर्टिकुलर सिचुएशन आपको दिख रही है ये कभी अकर ही ना हो अकर होने से पहले ही हम चीजों को रोक ले तो इसका इसके लिए हम क्या करेंगे नोट्स में हमने बहुत ही बढ़िया नोट्स बनाए हैं एक ही बेसिकली इसी एक पेज को सम पढ़ के अगर आपको पूरी डाइनिंग फिलोसोफर समझ आ जाएगी ठीक है तो हम कहां पर थे हम यहां पर थे कि अगर व्हेन ईच फिलोसोफर ट्राइज टू ग्रैब हिज राइट फोर्क और लेफ्ट फोर्क ही विल बी वेटिंग फॉर एवर दैट इज डेड लॉ वो हमने डिस्कस किया ऊपर जो डायग्राम बना हुआ है ठीक है अब इसको अवॉइड करने के यार हमारे पास ना हार्ड एंड पास्ट तो रूल नहीं है बट हमारे पास छोटे-छोटे ट्वीक्स है जो हम करेंगे सबसे पहला ट्विक जो हम कर सकते हैं वो है कि अलाउ एट मोस्ट फोर फिलोसोफर टू सिट सेवन डिज एट मोस्ट फोर आपके एक साथ बैठे हैं फोर एटलीस्ट एक साथ बैठे तो फोर एक साथ बैठे हैं तो ये कैसे कर सकते हैं अब अब एज्यूम करो कि जो फिफ्थ वाला फिलोसोफर है मैंने इसको यहां से हटा दिया टेबल से इसको मैंने रिमूव कर दिया तो अभी क्या होगा अब मान लो सिमिलर केस करते हैं जो अभी हमने डेट लॉक सिचुएशन डिस्कस की थी p1 ने अपने लेफ्ट वाला चूज करा p2 ने अपने लेफ्ट वाला जूज किया p3 ने अपने लेफ्ट वाला फोक उठा लिया p4 ने अपने लेफ्ट वाला फोक उठा लिया तो अब क्योंकि p5 की अब्सेंस है यहां पे तो p1 क्या करेगा p1 ये वाली फोक को उठा सकता है ठीक है तो एटलीस्ट एक फिलोसोफर तो ईटिंग स्टेट में चला गया बाकी सब वेटिंग है कोई बात नहीं जब जब भी बेसिकली p1 एग्जीक्यूशन खत्म करेगा यानी कि p1 जो है वेटिंग से बाहर चला जाएगा कभी ऐसा होगा ना जब वो खाना उसका कंप्लीट हो जाएगा व खा लेगा तो खाले तो वो दोनों इनको रिलीज कर देगा जब वो इन दोनों को रिलीज करेगा तो प2 को यह वाली मिल जाएगी फिर प2 अपना एग्जीक्यूट हो जाएगा ठीक है और प2 जब एग्जीक्यूट हो जागा हो जाएगा तो प2 अपनी यह वाली फोक को छोड़ देगा दोनों फोक को छोड़ देगा सिमिलरली फिर p3 को मिल जाएगा एंड सो ऑन तो यह डेडलॉक सिचुएशन नहीं बनी हमने अवॉइड कर दिया ब इससे प्रॉब्लम क्या हो रही है कि फिथ फिलोसोफर को हमने बैठने ही नहीं दिया ठीक है ठीक है कोई बात नहीं दूसरा सलूशन डिस्कस करते हैं दूसरा मेथड हो सकता है कि अलाउ अ फिलोसोफर टू पिक अप हिज फोक ओनली इफ बोथ फोक्स आर अवेलेबल यानी दोनों फोक ज अवेलेबल होंगे ना मैं तभी पिक करूंगा ऐसा नहीं पहले मैं जो हमने कंडीशन थी ना स्टार्टिंग में डिस्कस की थी कि पहले एक फोक को उठाएगा कोई लेफ्ट फोक को उठाएगा फिर राइट फोक को उठाएगा यानी एट मोस्ट बेसिकली एक बारी में एक ही फोक को उठा सकता है बट हम यहां क्या करेंगे कि जो फोर्क की पिकिन है ना ये फोर्क की पिक है जो यह वाला सेक्शन ऑफ कोट है ठीक है इसको ड्र कर देता हूं बढ़िया से जो यह वाला सेक्शन ऑफ कोट है मैं इसको भी ना क्रिटिकल सेक्शन बना देता हूं अगर मैं इसको क्रिटिकल सेक्शन बना दूंगा तो क्या होगा इसके आगे भी मैं लॉक्स का यूज करूंगा मान लो मैं यहां पे भी कोई म्यूट्स लगा दूंगा और यहां पे म्यूट्स रिलीज लगा दूंगा म्यूट्स रिलीज लगा दूंगा तो इससे क्या होगा अब एक और लॉक इंट्रोड्यूस करने से क्या हुआ कि जब भी कोई फिलोसोफर आएगा यहां पर ठीक है तो आने के बाद वो इस म्यूट्स को लॉक करेगा और ये क्रिटिकल सेक्शन बन चुका है तो उसको वो इंश्योर ये वाला म्यूट्स इंश्योर करेगा कि दोनों बेसिकली फोक उसे एक बार में मिल जाए ठीक है तो इस तरीके से मैं यह भी कर सकता हूं कि जो पिकिन है जो वेट वाला कॉल था उसको मैं बेसिकली वो बना दूं क्रिटिकल सेक्शन बना दूं अगर मैंने इसको क्रिटिकल सेक्शन बनाया तो मुझे इसको भी क्रिटिकल सेक्शन बनाना पड़ेगा कि दोनों को साथ में रिलीज भी करू राइट ठीक है तो मैं बोल सकता हूं ना कि मैंने ये जो दोनों कटल सेक्शन कंडीशन है इसको मैंने एटॉमिक बना दिया ठीक है यानी कि कोई और थ्रेड यहां पे नहीं घुस पाएगी एक बारी में एक ही थ्रेड बेसिकली इस पूरे इसको क्रिटिकल सेक्शन को एग्जीक्यूट कर पाएगी एक बारी में यानी कि एक फिलोसोफर अगर घुस गया इस क्रिटिकल सेक्शन में तो दोनों फॉक्स को लेके निकलेगा ठीक है तो ये एक मेरा अवॉइडेंस का मेथड हो सकता है बहुत ही बढ़िया ठीक है अब तीसरा मेथड क्या हो स तीसरा मेथड हो सकता है मेरा ऑड वन रूल एक मैं ऑड वन रूल भी डाल सकता हूं इसके अंदर इसमें मैं क्या करूंगा कि जो जितने भी ऑड फिलोस फर्स है वह अपने लेफ्ट फोक को पिक करें ठीक है और फिर उसके बाद राइट फोक को पिक करें और जबकि जो इवन है वह अपने राइट फो को पिक करें और देन लेफ्ट को पिक करें अब यह कैसे होगा देखो ये मैंने मार्क कर दिया मेरे ये ऑड फिलोसोफर है नथ एंड फ और ये इवन फिलोसोफर है ठीक है तो ऑड फिलोसोफर पहले लेफ्ट को पिक करेगा ठीक है तो इसको ड्र करते हैं ऑड जो है पहले लेफ्ट को पिक करेगा ये थ्री जो है यह भी अपने लेफ्ट को पिक करेगा जो अपना फिफ्थ है ये भी अपने लेफ्ट को पिक करेगा और जो इवन होंगे वो अपने राइट को पिक करेंगे पहले तो पहले ये इसको पिक करेगा ठीक है ये अपने राइट को पिक करेगा अब जब फोर राइट को पिक करने लगेगा तो पिक नहीं कर पाएगा ठीक है तो यहां पर वो वेट करेगा इस पोजीशन प मान लो फोर वेट कर रहा है बट ये डेट ब्लॉक की सिचुएशन नहीं क्रिएट हो पाएगी क्यों क्योंकि फिफ्थ जो है इस वाले बेसिकली फो को पिक कर सकता है क्योंकि फोर ने इसको पिक ही नहीं किया क्योंकि फोर पिक इसलिए नहीं किया क्योंकि फोर को हमने एक ऑर्डर सेट कर रखा है कि फोर पहले इसको पिक करेगा तभी इसको पिक कर पाएगा तो अगर फिफ्थ इसको पिक कर लेगा तो फिफ्थ को बेसिकली दोनों फॉक्स मिल जाएंगी और वो आगे बढ़ जाएगा सिमिलरली फिर सार कोई भी डेड लॉक वाली सिचुएशन यहां पे अराइज होगी नहीं तो वी आर गुड टू गो यानी कि हमने यहां पर फिर से डेड लॉक को अवॉइड कर दिया तो बेसिकली ये तीन मेथड्स है जिसकी वजह से हम जिसकी मदद से हम डेड लॉग को अवॉइड कर सकते हैं तो दिस सेट्स द बेसिस कि हम जो नेक्स्ट लेक्चर में डेड लॉक को डिस्कस करेंगे तो उसमें काफी इंटरेस्टिंग चीजें डिस्कस करेंगे तो उसमें हम देखेंगे कि डेड लॉक जो है परमानेंटली रिमूव करना बहुत मुश्किल है जैसे डायनेमिक फिलोस प्रॉब्लम में हमने देखा कि परमानेंटली रिमूव करना तो इंपॉसिबल था तो हमने क्या करा छोटे-छोटे टक्स लिया कुछ रूल्स ऐड कर दिए कि भाई इस तरीके से करो इस तरीके से करो तो यह ना जनरली प्रोग्राम में बहुत ज्यादा होता है आप भी जब रियल वर्ल्ड में इंडस्ट्री में जाओगे ना काम करोगे तो आपको दिखेगा कि कुछ अनअवॉइडेबल सिचुएशंस होती हैं हम बहुत लिमिटेड रिसोर्सेस है एक सेट पैटर्न है हमारे पास कुछ रिसोर्सेस हैं कुछ थ्रेड्स हैं काम करवाना है हमें उनसे तो हम कुछ थ्रेड्स में कुछ ऑर्डर सेट कर देते हैं बीइंग यूजिंग कंडीशनल वेरिएबल या फिर इस टाइप के रूल सेट कर देंगे ठीक है तो मैं बोल सकता हूं कि ओनली सीमा फोर्स आर नॉट एनफ फॉर द सॉल्यूशन सीमा फोर से काम मेरा नहीं बना मुझे कुछ एनेंस मेंट ऐड करनी पड़ी टू मेक श्यर कि जो मेरा सिस्टम है वो डेड लॉक में ना जाए डेड लॉक फ्री सिच सिस्टम बना रहे तो इसी के साथ ये हमारी तीन क्लासिक प्रॉब्लम्स यहां पे खत्म होती है नेक्स्ट लेक्चर में हम डिस्कस करने वाले हैं डेड लॉक्स के बारे में और दैट वुड बी द एंड ऑफ कंक्रेंस मॉड्यूल थैंक यू हेलो जी कैसे हो सार दिस इ लक्ष तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 21 पर और आज हम डिस्कस करने वाले हैं बहुत ही इंटरेस्टिंग टॉपिक जिसका नाम है डेड लॉक तो हम लिख लेते हैं जल्दी से डेड लॉक तो यार अब तक हमने क्या डिस्कस किया अब तक जो लास्ट तीन वीडियोस में हमने क्लासिक सिंक्रोनाइजेशन की प्रॉब्लम डिस्कस करी थी जिसमें हमने देखा कि बेसिकली जब हम थ्रेड्स को सिंक्रोनाइज करते हैं ना जैसे लॉक्स लगा देते हैं जैसे एक पर्टिकुलर थ्रेड थी मेरे पास ये बेसिकली कोई क्रिटिकल सेक्शन था ये कोई एक t1 थ्रेड आती है मान लो तो t1 थ्रेड जब भी आती है तो यहां पे लॉक लगा देती है राइट ठीक है लॉक लगाने के बाद t2 थ्रेड इसके अंदर नहीं जा सकती राइट t2 थ्रेड इसके अंदर नहीं जा सकती तो इसका मतलब मैं बोल सकता हूं कि जो क्रिटिकल सेक्शन जो भी है वो म्यूचुअल एक्सक्लूसिव वे में एक्सेस होता है राइट वो म्यूचुअल एक्सक्लूसिव वे में एक्सेस होता है इसका मतलब अगर कोई एक थ्रेड गई तो दूसरी थ्रेड नहीं जा सकती दूसरी थ्रेड हैज टू वेट तो यार इसी वजह से ना म्यूचुअल एक्सक्लूजन की वजह से एक प्रॉब्लम अराइज होती है हमारे सिस्टम में जिसको मैं बग भी बोल सकता जिसका नाम है डेड लॉक जिसका नाम है डेड लॉक अब भाई यह डेड लॉग होता क्या है अब यार इसके ऊपर स्ट्रेट अवे जाने से पहले मैं यह बोल सकता हूं कि हमारे पास जो भी एक सिस्टम होता है य एक सिस्टम है मेरा कंप्यूटर सिस्टम पूरा सिस्टम जो होता है इसके अंदर बहुत सारे रिसोर्सेस होते हैं राइट बहुत सारे आरव आ2 आ3 r4 और ो हो क्या सकते हैं ये रिसोर्सेस हो सकते हैं मेरे मेमरी स्पेस ठीक है मेमोरी स्पेस हो सकते हैं सीपीयू साइकिल हो सकती है यानी कि सीपीयू हो सकता है सिंपली अगर दो सीपीय है तो मैं बोल सकता हूं दो सीपीयू के इंस्टेंसस है राइट ठीक है ऐसी फाइल्स हो सकती है लॉक्स हो सकते हैं ठीक है और आई डिवाइस हो सकता है कोई तो यह कुछ रिसोर्सेस हो गए इनको मैं रिसोर्सेस बोल सकता हूं और इन रिसोर्सेस पर कंपीट कौन कर रहा है यानी कि कौन-कौन इन रिसोर्सेस को यूज करना चाहता है वो है डिफरेंट प्रोसेसेस राइट बेसिकली मैं बोल सकता हूं डिफरेंट प्रोसेसेस जो है मेरी p1 प2 p3 ये रिसोर्सेस जो है यूज करना चाहती हैं टू एग्जीक्यूट राइट बहुत सारी प्रोसेसेस एग्जीक्यूट होना है उनको तो रिसोर्स यूज करने पड़ेंगे ठीक है और इन्हीं प्रोसेस के अंदर हमने क्या पढ़ा था इन्हीं प्रोसेस के अंदर थ्रेड्स होती है t1 t2 ऐसे ही मान लो t1 t2 थ्रेड्स होती है ठीक है तो डेड लॉक के केस में ना ये प्रोसेस और थ्रेड्स ये वाली टर्म जो है इंटरचेंजेबली भी यूज होएगी ठीक है तो अभी हम डिस्कस करते हैं सिर्फ प्रोसेस का नाम लूगा मैं और जो जो मैं प्रोसेस के लिए बात बोलूंगा वो वो थ्रेड्स के लिए भी ट्रू होगी वो कैसे अी थोड़ी देर में डिस्कस करते हैं मान लो मेरे पास एक रिसोर्स है ये एक सीपीय है ठीक है ये एक रिसोर्स है राइट ये एक रिसोर्स है मान लो मेरे पास एक p1 प्रोसेस है ऐसे प2 प्रोसेस है सिस्टम में बस ये दो ही प्रोसेस है ठीक है और कोई प्रोसेस ही नहीं है तो मैं बोल सकता हूं कि एक बारी में क्योंकि मेरे पास एक ही सीपीयू है तो या तो अभी त अभी तक जो हम डिस्कस कर रहे थे कि हमारे पास एक ही सीपीयू होता था तो यह p1 प्रोसेस जो है एक बार इस सीपीयू को यूज़ करेगी जब भी यह यूज़ कर लेगी इसको यूज़ करने के बाद जब भी इसकी एग्जीक्यूशन कंप्लीट हो जाएगी उसके बाद p2 प्रोसेस आएगी उसको यूज़ करेगी ठीक है और ये सब करने के लिए डिफरेंट डिफरेंट हमने स्केड्यूल एरिम भी पढ़ी थी ठीक है सिमिलरली सेे थ्रेड्स के लिए भी सेम ही चीज़ है थ्रेड्स क्या है थ्रेड सिंपली प्रोसेस का ही तो एक पार्ट है ठीक है तो यह चीज़ थ्रेड के लिए भी ट्रू है p1 p2 के लिए ट्रू है यह चीज़ थ्रेड के लिए भी ट्रू है तो मैं बोल सकता हूं कि मेरे पास सिस्टम में बहुत सारे रिसोर्सेस होते हैं और उन रिसोर्सेस पे म्यूचुअल एक्सक्लूसिव वे में यूज करने के लिए बहुत सारी प्रोसेसेस एंड थ्रेड्स जो है आपस में कंपीट कर रही होती है तो क्या मैं बोल सकता हूं मेरे पास फाइना इट नंबर ऑफ फाइना इट नंबर ऑफ रिसोर्सेस है ठीक है मेरे पास फाइना नंबर ऑफ रिसोर्सेस है और इन रिसोर्सेस प बहुत सारी प्रोसेसेस हैं मल्टीपल प्रोसेसेस हैं मल्टीपल प्रोसेसेस बोल सकता हूं या फिर मैं प्रोसेसेस को सब पार्ट में डिवाइड कर देता हूं अगर मल्टी थ्रेडेड मेरा एनवायरमेंट है तो उसके अंदर बहुत सारी थ्रेड्स भी हो सकती है राइट तो प्रोसेस और थ्रेड यहां पे इंटरचेंजेबली यूज हो हो जाएगा ठीक है तो बहुत सारे मे पर फाइना इट बेसिकली फाइना इट मे परस रिसोर्सेस हैं और मल्टीपल प्रोसेसेस हैं तो मुझे क्या करना है अपने सिस्टम को रन करने के लिए ताकि सिस्टम रन होता रहे इन पूरे फाइना इट प्रोसेसेस को मुझे इसी तरीके से यूज करना है कि सारा सिस्टम चलता रहे यानी कि जब जो प्रोसेस चाहे उसको मिल जाए वो थोड़ी देर वेट करें फिर वेट करने के बाद थोड़ी देर बाद उसको बेसिकली पर्टिकुलर रिसोर्स मिल जाए ऐसे करते करते मेरा सिस्टम ना वर्किंग रहे ठीक है क ब्लॉकेज ना हो अभी थोड़ा सा कंफ्यूजन हो रहा होगा आपको ब्लॉकेज क्या बोल रहा हूं मैं यह भी थोड़ी सी कंफ्यूजन आपको हो रही होगी वो ब्लॉकेज में क्या बोल रहा हूं अभी देखते हैं अब इमेजिन करो इमेजिन करो मेरे पास यह एक आरव रिसोर्स है सिमिलरली एक रिसोर्स है मेरा आ2 रिसोर्सेस है क्या य रिसोर्स कुछ भी हो सकते हैं ठीक है कुछ भी हो सकते हैं रिसोर्स को कन्फ्यूजन नहीं होनी चाहिए हमको राइट सिमिलरली मेरे पास एक पव प्रोसेस है इधर और एक प2 प्रोसेस है अब इमेजिन करो कि जब भी पव को एग्जीक्यूट होना होता है ना पव को कंप्लीट एग्जीक्यूशन करनी होती है तो उसको r1 भी चाहिए और r2 भी चाहिए ठीक है सिमिलरली प2 जब भी एक्यूट होता है तो उसको r1 भी चाहिए और r2 भी चाहिए औरी इमेजिन करते हैं कि सिस्टम में यही दो प्रोसेस है यही दो रिसोर्सेस है तो अब देखो मान लो कुछ इस तरीके से चीज होती है कि जो आरव रिसोर्स है वो पव को मिल गया यानी कि पव ने आव रिसोर्स को लॉक कर लिया ठीक है यानी कि वो म्यूचुअल एक्सक्लूसिव वे में अब इसको यूज कर सकता है तो r1 को मैं बोल सकता हूं बिजी हो गया विद p1 और r2 जो है व प2 को मिल गया है ठीक है बट p1 को r1 भी चाहिए और p2 को r1 भी चाहिए यानी मैं बोल रहा हूं कि p1 को r1 एंड r2 दोनों रिसोर्स चाहिए ठीक है और p2 को भी r1 एंड r2 दोनों रिसोर्स चाहिए एग्जीक्यूट होने के लिए अगर ये दोनों रिसोर्स को एक साथ नहीं मिलते हैं तो इसका कोड इस तरीके से लिखा है कि वो एग्जीक्यूट नहीं कंप्लीट हो पाएगा ठीक है और हमने अभी-अभी पिछले लेक्चर में पढ़ा कि मान लो कोई मेरे पास रिसोर्स r1 है और उसपे कोई p1 थ्रेड p1 प्रोसेस या t1 थ्रेड मतलब प्रोसेस थ्रेड इंटरचेंजेबल यूज हो रहा है यहां पे वो आके इसको एक्वायर कर लेती है ठीक है इसको एक एक्वायर कर लेती है तो एक्वायर करने के लिए वो लॉक का यूज करती है लॉक लगा देती है इसम कि कोई और प्रोसेस आके थ्रेड आके इसको यूज ना कर पाए तो अब ध्यान से देखो कि p1 ने r1 प लॉक लगाया हुआ है ठीक है और p2 ने r2 पे लॉक लगाया हुआ है ये जो h जा रही है यहां पे इधर इसका मतलब r2 जो है p2 को एलोकेटेड है इसका मतलब है कि r1 जो है p1 को एलोकेटेड है तो यहां पे ध्यान से देखो जब तक p1 को p1 को r2 नहीं मिल जाएगा तब तक ये आगे नहीं बढ़ेगी सिमिलरली p2 को जब तक r1 नहीं मिल जाएगा तब तक तक ये आगे नहीं बढ़ेगी तो ये जो सिचुएशन है ना ये सिचुएशन एक डेड लॉक की सिचुएशन है डेड लॉक की सिचुएशन कैसे है ये कि इस पोजीशन पे मेरा सिस्टम जो है ना हैंग हो चुका है बेसिकली ना p1 आगे बढ़ पा रही है ठीक है ना तो p1 में कोई प्रोग्रेस है इसकी प्रोग्रेस जो है सारी वो रुक चुकी है सिमिलरली p2 की प्रोग्रेस भी रुक चुकी है ये बेसिकली वेटिंग पे चले गए हैं क्योंकि p2 जो है r1 का वेट कर रहा है और p1 जो है r2 का वेट कर रहा है और ये वेटिंग चलती ही रहेगी इनफाइकिल केगी तो मैं बोल सकता हूं मेरा जो सिस्टम है यह जो पूरा सिस्टम है मेरा पूरा सिस्टम जो है यह नाउ इट इज इन डेडलॉक मैं बोल सकता हूं कि ये डेड लॉक में है और ये डेडलॉक इतनी खतरनाक चीज है ना यार अब आप देखो हम जब से ओस डिस्कस कर रहे हैं मैं तब से बोल रहा हूं कि हमारे सीपीयू साइकिल बहुत ज्यादा इंपॉर्टेंट है एक रिसोर्स बहुत ज्यादा इंपॉर्टेंट है ठीक है यूजर के यूजर के पर्सपेक्टिव से कोई काम होते रहना चाहिए पीसी हैंग नहीं होना चाहिए ठीक है तो इसी चक्कर में पीसी नहीं हैंग होगा इस चक्कर में कोई ना कोई प्रोग्रेस आगे होती रहनी चाहिए बट इस पोजीशन प आप देखो कोई भी प्रोग्रेस नहीं हो रही है कोई भी प्रोग्रेस नहीं है ना p1 आगे बढ़ रहा है ना पव अपने बेसिक प्रोग्राम काउंटर को आगे बढ़ा पा रहा है ना प2 अपने प्रोग्राम काउंटर को आगे बढ़ा पा रहा है दोनों वेट प रुके हुए हैं और ये इनफा टाइम तक रुके रहेंगे तो ये सिस्टम डेड लॉक प है तो यह होता है भाई डेड लॉक तो इसकी फॉर्मल डेफिनेशन पर देख लेते नोट्स मैंने लिख दिए बढ़िया से डेफिनेशन इसमें बोल रहे है कि प्रोसेस रिक्वेस्ट अ रिसोर्स आर इफ आर इज नॉट अवेलेबल टेकन बाय सम अदर प्रोसेस प्रोसेस एंटर्स इन ए वेटिंग स्टेट राइट हम शुरू से देख रहे हैं कोई रिसोर्स नहीं है तो वेटिंग स्टेट प चले जाता है सम टाइम दैट वेटिंग प्रोसेस इज नेवर एबल टू चेंज इट स्टेट बिकॉज द रिसोर्स इट हैज रिक्वेस्टेड इज बिजी फॉर एवर दैट इज कॉल्ड डेट लॉ बट इसका मतलब यह है कि p1 को r1 तो एलोकेटेड था बट r2 के लिए वो वेट कर रहा था अब वेट करते करते यह जो वेटिंग है ये फॉरएवर हो चुकी है फॉवर क्यों हो चुकी है क्योंकि r2 तो p2 के पास है और p2 वेट कर रहा है r1 का तो एक बेसिकली सर्कुलर डिपेंडेंसी से बन गई है ठीक है तो इस चक्कर में जो वेटिंग है वो फॉरएवर चलेगी इसलिए मैं इसको बोल रहा हूं डेड लॉक सिचुएशन ठीक है एक दूसरी की और फॉर्मल से डेफिनेशन देख लेते हैं टू और मोर प्रोसेसेस आर वेटिंग फॉर सम रिसोर्स अवेलेबिलिटी वच विल नेवर अवेलेबल एज इट इज आल्सो बिजी विद सम अदर प्रोसेस दिस इज कॉल्ड डेडलॉक और यह डेडलॉक जो है एक बग बोल सकता हूं मैं इसको एक बग है प्रोसेस और थ्रेड सिंक्रोनाइजेशन में ठीक है ये डाउट बिल्कुल नहीं आना चाहिए ये प्रोसेस और थ्रेड क्यों बोल रहा हूं मैं प्रोसेस भी रिसोर्सेस को मांगती है थ्रेड्स भी रिसोर्सेस को मांगती है बेसिकली थ्रेड्स का नाम यूज ना करके मैं प्रोसेस का ही नाम यूज कर रहा हूं तो आप लोग कंफ्यूज मत होना प्रोसेस थ्रेड दोनों के लिए सेम ही चीज है ठीक है रिसोर्सेस के एग्जांपल डाल दिए चलिए आगे बढ़ते हैं अब एक चीज डिस्कस करते हैं यार कि हाउ अ प्रोसेस और मैं थ्रेड भी बोल सकता हूं यूटिलाइज अ रिसोर्स एक रिसोर्स को कैसे यूटिलाइज करते हैं तो इसके तीन स्टेप होते हैं पहला रिक्वेस्ट दूसरा होता है आपका यूज करना उसको तीसरा होता है आपका रिलीज करना बहुत ही सिंपल चीज है बहुत ही सिंपल चीज है इसमें क्या है यह मेरे पास एक रिसोर्स है आर ठीक है ये पास रिसोर्स है आ इसमें क्या है सबसे पहले मान लो कोई पव प्रोसेस आती है पव या कोई भी प्रोसेस आती है कोई थ्रेड आती है तो सबसे पहले देखेगी कि क्या ये अवेलेबल है और अवेलेबिलिटी कैसे चेक होगी इस पर कोई लॉक होगा ठीक है वो लॉक अवेलेबल है लॉक फ्री है तो पव आके इस पर लॉक कर देगी और जब पव आके इस पर लॉक कर देगी पव आके इसको इसका लॉग जो सक्सेसफुल हो जाएगा तो ये एज कैसे मैं रिप्रेजेंट करता हूं इसको ऐसे कि भाई r1 जो है ये आ रिसोर्स जो है ये p1 को एलोकेट हो चुका है ठीक है तो यानी कि रिक्वेस्ट फेज में वो देखती है कि लॉक अवेलेबल है कि नहीं लॉक जो है वो अवेलेबल है कि नहीं अगर लॉक अवेलेबल है तो p1 विल लॉक पव विल लॉक द रिसोर्स ठीक है एंड देन इट विल यूज और लॉक करने का मतलब क्या है लॉक करने का कोई और प्रोसेस को यूज नहीं कर पाएगी दैट वी ऑल नो राइट उसके बाद मैं यूज करूंगा उस रिसोर्स को यूज करने के बाद मैं उसे जब p1 का मन करेगा जब p1 बोलेगा हां मैंने यूज कर लिया है तब वो उसको रिलीज कर देगा रिलीज कैसे करेगा लॉक को अनलॉक करके राइट लॉक को रिलीज करके और जैसे रिलीज हो जाएगा रिलीज होने के बाद जो r1 रिसोर्स है ये कोई और प्रोसेस सम अदर प्रोसेस कैन यूज इट ठीक है सम अदर प्रोसेस कैन यूज इट तो ये तीन फेज में बेसिकली काम होता है ठीक है बहुत ही बढ़िया अब एक और चीज मैं डिस्कस करता हूं अब हमने ये तो देख लिया यार कि डेड लॉक होता क्या है ठीक है पर डेड लॉक की क्या नेसेसरी कंडीशन बेसिकली क्या क्या क्या ऐसा सिनेरियो बने कौन-कौन सी कंडीशन जो है वो ट्रू हो तब जाकर मैं बोल सकता हूं कि हां डेड लॉक हो गया है ठीक है ये कौन-कौन सी ऐसी बेसिकली सिनेरियो है तो सबसे पहला जो नेसेसरी कंडीशन है डिस्कस कर लेते हैं हम नेसेसरी कंडीशन फॉर डेड लॉक और ये चार ऐसी चार कंडीशन है चारों कंडीशन ना फोर कंडीशन जो है ये चारों कंडीशन सामली ट्रू होनी चाहिए साथ में ट्रू होंगी तभी डेड लॉग में बोलूंगा कि हो गया ठीक है तो सबसे पहली मेरी है म्यूचुअल एक्सक्लूजन कोई कंफ्यूजन नहीं होनी चाहिए इसमें इसका मजन का बहुत ही सिंपल मतलब है इसका मतलब है कि मेरा एक जो रिसोर्स है एक रिसोर्स आर व एक बारी में एक ही प्रोसेस या थ्रेड यूज करेगी ठीक है इसका सिंपल सा मतलब है यार मेरे पास एक रिसोर्स है आर ठीक है अगर यह p1 प्रोसेस पहले आई और य p1 को एलोकेट हो गया यह एलोकेट हो गया अगर एलोकेट हो गया तो कोई और प्रोसेस अगर p2 आके इसको बेसिकली रिक्वेस्ट करेगी इसको रिक्वेस्ट करेगी तो यह रिक्वेस्ट फुलफिल नहीं हो पाएगी यह रिक्वेस्ट जो है फुलफिल नहीं हो पाएगी जब तक कि p1 जो है इसको रिलीज ना कर दे जो हम तीन फेज पढ़े थे यूज करने के बाद रिलीज ना कर दे तब तक तो ये म्यूचुअल एक्सक्लूसिव वे में हम बेसिकली किसी रिसोर्स को बेसिकली यूटिलाइज करते हैं तो अगर ऐसा होगा तो ये पहले कंडीशन है य ऐसा होना चाहिए सिस्टम के अंदर ठीक है अब आते दूसरी कंडीशन प दूसरी कंडीशन दूसरी कंडीशन है मेरी होल्ड एंड वेट यह सारी कंडीशन या आपको याद होनी चाहिए य बेसिकली इंटरव्यू में डायरेक्टली पूछ जाता है ट आ नेसेसरी कंडीशन फर डेडलॉक टू अर इन सिस्टम ठीक है सीधा पूछ लि जाता है तो आप ध्यान से सुनो इसको होल्ड एंड वेट होल्ड एंड वेट का क्या मतलब है समझने के लिए मैं फिर से वही वाला एक बार पिछला एग्जांपल ड्र करता हूं ये मेरी पव प्रोसेस है य आरव यह आ2 रिसोर्स है यह प2 है पव को आव मिल चुका है ठीक है ध्यान से एलोकेटेड लिख देते हैं यह इसको रिक्वेस्ट कर रहा है आ2 प2 को मिल चुका है एलोकेटेड और यह इसको रिक्वेस्ट कर रहा है होल्ड एंड वेट का सिंपल सा मतलब यह है कि जो पव प्रोसेस है कोई भी एक प्रोसेस जो है वो एक रिसोर्स को होल्ड कर रही हो होल्ड मतलब उसको एक रिसोर्स मिल चुका हो उस पर लॉक लगा के बैठी हो और दूसरे रिसोर्स का वो वेट कर रही हो ठीक है ऐसा होना चाहिए ठीक है ये सिंपल सा देखो कि जो r1 बेसिकली रिसोर्स है वो p1 को एलोकेटेड है ठीक है यानी कि होल्डिंग बेसिकली p1 इज होल्डिंग r1 ठीक है तो होल्ड वाली कंडीशन उसके बाद जो p1 है वो किसी एक का वेट कर रही हो p1 इज वेटिंग फॉर r2 r2 का वेट क्यों कर रही है r2 के क वेट कर रही क्योंकि आ पहले से प पर एलोकेटेड है तो य हो गई आपकी सिंपल सी कंडीशन होल्ड एंड वेट ठीक है चलिए नेक्स्ट कंडीशन पर चलते हैं तीसरी कंडीशन मेरी है नो प्रशन नो प्रमप का मतलब क्या है नो प्रशन का मतलब है कि सिंपल मान लो पास आ रिसोर्स है ठीक है और य प को एलोकेट हो चुका है पव को एलोकेट मान लो हो चुका है एलोकेट होने के बाद पव इसको जब तक नहीं छोड़ेगी जब तक बेसिकली r को रिलीज नहीं करेगी जब तक जो है p1 ने अपनी एग्जीक्यूशन जो है कंप्लीट ना कर लि हो यानी कि p1 का जब मन करेगा ना ज p1 के कोड में जब लिखा होगा कि हां r1 को रिलीज कर दो तब तक आ जो है बेसिकली रिसोर्स जो है वो p1 से डिएलोकेट नहीं हो सकता यानी कि कोई और प्रोसेस आके मान लो कोई और प्रोसेस आती है p2 p2 आके इसको रिक्वेस्ट करती है और वो बेसिकली बोलू मैं कि फोर्सफुली फोर्सफुली r को एलोकेट करवा लेती है ऐसा नहीं होना चाहिए नो प्रीमन का मतलब यह है कि रिसोर्स प्रीमन नहीं होगी यहां पे ठीक है चौथे पे आते हैं हम अभी आप ध्यान से सुनो चारों के चारों फिर हम चारों को बेसिकली एग्जांपल से समझेंगे और देखेंगे डेड लॉगस में है कि नहीं ठीक है चौथा है आपका सर्कुलर वेट सर्कुलर वेट अब सर्कुलर वेट का मतलब ये होता है यार सर्कुलर वेट का मतलब सिंपल है कि जो वेटिंग है ना कुछ एक सर्कुलर फैशन में हो रही होगी ये बेसिकली होल्ड एंड वेट का ही ना एक थोड़ा सा मैं बोल सकता हूं मिलता जुलता सा मिलती जुलती सी कंडीशन है होल्ड एंड वेट की ठीक है सर्कुलर वेट का मतलब है देखो r1 जो है यहां पे r1 लोकेटेड है p1 को p1 को एलोकेटेड है पहले से ठीक है और p1 वेट कर रहा है किसका r2 का p1 वेट कर रहा है r2 का ये हमारा होल्डन वेट था ये होल्ड था ये वेट था और जो r2 है वो बेसिकली लोकेटेड है p2 को ठीक है और p2 किसका वेट कर रहा है r1 का और जो r1 है वो किसको एलोकेटेड है p1 को तो आप देखो कुछ एक सर्कुलर फैशन में एलोके हो रखी है ठीक है अगर मैं आर वाली एजेस हटा दूं इसकी आर वाली ए हटा दूं तो मैं बोलूंगा कि p1 प2 ऐसा कुछ हो रहा है कि जो पव जो है पव एक ऐसे रिसोर्स का वेट कर रही है जो कि प2 लेकर बैठा है और प2 जो है वो एक ऐसे रिसोर्स का वेट कर रही है जो कि p1 लेके बैठा है तो ये एक सर्कुलर वेट की कंडीशन है ठीक है तो यह हमारी सिंपल सी चार कंडीशन हो गई एक बार नोट्स में जाक भी देख लेते हैं चार कंडीशन कैसे लिखी हुई है हमने म्यूचुअल एक्सक्लूजन का मतलब हो गया ओनली वन प्रोसेस एट ए टाइम कैन यूज द रिसोर्स इफ अनदर प्रोसेस रिक्वेस्ट दैट पर्टिकुलर रिसोर्स रिक्वेस्टिंग प्रोसेस मस्ट वेट ठीक है ये हमारे म्यूचुअल एक्सक्लूजन हो गई हम पढ़ते आ रहे हैं स्टार्टिंग से होल्ड एंड वेट सिंपल बेसिकली एक रिसोर्स को होल्ड करके रखा हुआ है दूसरे रिसोर्स किसी और रिसोर्स को हमने वेटिंग स्टेज पे हम उसको वेट कर रहे हैं कि वो कब फ्री होगा ठीक है नो प्रीमन का मतलब हो क्या रिसोर्स मस्ट वॉलंटिली रिलीज्ड बाय द प्रोसेस आफ्टर कंप्लीशन ऑफ एग्जीक्यूशन यानी कि एक बार प्रोसेस को रिसोर्स मिल गया तो प्रोसेस जो है वॉलेटर बेसिकली जब वो रिलीज करना चाहे तब वो रिलीज करेगी खुद से ओस जाके उससे रिसोर्स वापस नहीं ले सकता जबरदस्ती ठीक है सर्कुलर वेट हमने देख लिया सिंपल एक सर्कुलर फैशन में वेट है होल्डन वेट का ये एक एक्सटेंडेड सा वर्जन है बोल सकता हूं मैं ठीक है तो ये हमारी चार नेसेसरी कंडीशन हो गई तो ये चारों कंडीशन ये चारों कंडीशन कैसे ट्रू हो रही है एक बार एग्जांपल से समझते हैं सिंपल से एग्जांपल नोट्स में हमारे पास ठीक है यहां पर टी यूज किया है मैंने ठीक है प्रोसेस भी यूज कर सकते थे थ्रेड यूज किया है यहां पे मेरे पास टीव थ्रेड है जिसको r1 रिसोर्स जो है वो पहले से एलोकेटेड है ठीक है एंड इट इज रिक्वेस्टिंग r2 ठीक है और r2 जो है वो पहले से t2 को एलोकेटेड है और t2 जो रिक्वेस्ट कर रहा है r1 को ठीक है अब देखते हैं कि चारों के चारों कंडीशन जो हमारी थी वो कैसे फुलफिल हो रही है म्यूचुअल एक्सक्लूजन म्यूचुअल एक्सक्लूजन यहां पर है कि मेरा जो सिस्टम है वो इस तरीके से लिखा हुआ है मेरा रिसोर्स इस तरीके से लिखा हुआ है इसका कोड इस तरीके से लिखा हुआ है इसके एलोकेशन का कोड इस तरीके से लिखा हुआ है कि जब भी कोई प्रोसेस या थ्रेड आके उसको लॉक कर देती है तो कोई और बेसिकली थ्रेड जो है वो उसको आ रिसोर्स को यूज नहीं कर सकती ठीक है तो यह मेरी कंडीशन यहां पर है म्यूचुअल एक्सक्लूजन की दूसरा होल्ड एंड वेट होल्ड एंड वेट क्या यहां पर ट्रू है होल्ड एंड विट क्या था सिंपली एक एक रिसोर्स को होल्ड करना है दूसरे के लिए वेट करना है ठीक है तो t1 जो है वो होल्ड कर रही है r1 को t1 r1 को होल्ड कर रही है यह होल्डिंग कंडीशन हो गई और इसके लिए वेट कर रही है ठीक है होल्ड एंड वेट ट्रू है सिमिलरली t2 के लिए होल्ड एंड वेट ट्रू है ये इसको होल्ड कर रही है इसके लिए वेट कर रही है राइट थर्ड कंडीशन मेरी थी नो प्रमप रिसोर्स मस्ट बी वटर रिलीजड बाय प्रोसेस यह जो पर्टिकुलर रिसोर्स है r1 यह t1 को एलोकेटेड है ठीक है और मेरा सिस्टम ऐसा बिल्कुल नहीं कहता कि t1 जो है वह r1 को छोड़ दे बिना उसका काम लिए एक बार उसने बोल दिया बेसिकली उसके कोड में ऐसा कुछ लिखा होगा r1 मेरे को मिल गया r1 मान लो कोई मेमोरी स्पेस है वो पर्टिकुलर मेमरी स्पेस मुझे मिल गया तो उसने लेके रखा हुआ है और तब तक रिलीज नहीं करेगा उसको बेसिकली r1 तब तक रिलीज नहीं होगा t1 से जब तक t1 ना बोले कि भाई तू जा देखो मैं रिलीज करता हूं ठीक है तो नो प्रीमन नो रिसोर्स प्रीमन वाली कंडीशन है ट्रू है और सर्कुलर वेट सर्कुलर वेट ट्रू है कि नहीं वो देख लेते हैं r1 जो है एलोकेटेड है t1 के ठीक है इसको होल्ड कर रहा है और t1 जो है वो रिक्वेस्ट कर रहा है r2 के लिए ठीक है रिक्वेस्ट कर रहा है और t2 जो है वो किसको लेके बैठा है r2 को और t2 जो है रिक्वेस्ट किसको कर रहा है r1 को तो एक सर्कुलर डिपेंडेंसी मेरे को यहां पर क्रिएट होती दिखाई दे रही है यानी कि सर्कुलर वेट की कंडीशन मेरी यहां प ट्रू है तो हमने देखा कि किस तरीके से चारों की चारों कंडीशन चारों के चारों नेसेसरी कंडीशन जो है नेसेसरी कंडीशन जो है वो ट्रू होती है तो सिस्टम मेरा डेड लॉग में मैं बोल सकता हूं कि डेड लॉग में है मैं बोल सकता हूं कि जब भी ये चार कंडीशन ट्रू होंगी तभी डेड लॉग होगा वरना नहीं होगा फर आगे बढ़ने से पहले एक बहुत इंपोर्टेंट टॉपिक डिस्कस करते हैं रिसोर्स एलोकेशन ग्राफ रिसोर्स एलोकेशन ग्राफ अब तक जो रिप्रेजेंटेशन हम कर रहे थे ना कि हम ऐसे आर बना रहे थे बॉक्स में ऐसे बेसिकली आ2 बना रहे थे ऐसे p1 प2 बना रहे थे बेसिकली ग्राफ टाइप के फॉर्मेशन कर रहे थे हम तो अभी तक हम रिसोर्स एलोकेशन ग्राफ में ही काम कर रहे थे ठीक है अब थोड़ा इसको फॉर्मली डिस्कस कर लेते हैं किय है क्या सिंपली जैसे एक ग्राफ होता है जो सबने पढ़ा ही है ग्राफ जिसमें की हम सबसे पहली चीज क्या होती है वर्टिस होती है ठीक है वर्टिस होती है तो हमारे पास दो टाइप के वर्टिस होते है इसको मैं बोलता तो प्रोसेस वर्टस ठीक है एक प्रोसेस वर्टेक्स हो गई और दूसरी मेरी हो गई रिसोर्स वर्टेक्स प्रोसेस टेक्स जैसे हम क्या बना रहे प सर्कल में बनाते हैं नॉर्मली य नोम क्लेचर सिंपली ठीक है ज्यादा कुछ नहीं है आप बेसिकली उस पर ध्यान दो की लॉजिक पर ज्यादा ध्यान दो सिमिलरली आर होता है मेरे पास इसको बॉक्स में बनाता हूं ताकि मेरे को विजुअली थोड़ा सा अंडरस्टैंडिंग में आसानी रहे फिर पर दूसरी चीज होती है एस ए होती है एक होती है मेरी असाइनिंग ए असाइन ए दूसरी मेरी होती है रिक्वेस्ट एज असाइन क्या होती है हम पढ़ रहे जब से मान लो मेरे पास य आर है यह प है कोई प्रोसेस आव है पव प्रोसेस है तो यह बेसिकली असाइन हो ग यानी कि इसको एलोकेटेड हो गया य ठीक है आव जो है एलोकेटेड टू पव हो गया ठीक है और रिक्वेस्ट क्या होगी रिक्वेस्ट सिंपली मालो यही पव जो है यही p1 जो है इसी को बना देते हैं हम यही p1 है मान लो कोई r2 कोई रिसोर्स है उसको रिक्वेस्ट कर रहा है तो ये रिक्वेस्टिंग एज हो गई यानी कि p p1 से r2 जाने वाली जो एज है p1 से r2 जाने वाली जो एज है इस इस एज को मैं रिक्वेस्टिंग एज बोल रहा हूं इस एज को मैं असाइनिंग एज बोल रहा हूं ठीक है सिंपली हम अब तक ड्रॉ कर ही रहे थे ठीक है तो इस तरीके से होता है और दूसरा हमारे पास ना एक और रिप्रेजेंटेशन होती है यहां पे कि मान लो मेरे पास ये कोई रिसोर्स है r ठीक है इसके इंस्टेंसस दिखाने हैं मुझे इंस्टेंसस का मतलब हो गया एक ही रिसोर्स के मल्टीपल इंस्टेंस होना इसका एक एग्जांपल लेते हैं मान लो मेरे पास एक सीपीयू है ठीक है सीपीयू होता है मेरे पास और वो सीपीयू मान लो ड्यूल कोर सीपीयू है या फिर क्ड कोर सीपीयू है तो उसके अंदर बोल सकता हूं कि चार सीपीयूज है सीपीयू उसका एब्स्ट्रेक्ट नेम है उसके बाद उसके अंदर चार कोर्स है चार सीपीयूज है तो बोल सकता हूं एक ही सीपीयू के यानी कि एक सीपीयू के मल्टीपल इंस्टेंसस है जैसे मॉनिटर के दो इंस्टेंस हो सकते हैं राइट दो मॉनिटर मान लो आपने एक्सटेंड करके लगा रखे है तो दो इंस्टेंस हो सकते हैं सिमिलरली सीपीयू के दो इंस्टेंस हो सकते हैं हो सकते है हार्ड डिस्क के दो डिस्क के दो इंस्टेंसस हो ठीक है तो यहां पे हम सिंपल एग्जांपल लेते हैं सीपीय के दो इंस्टेंस तो इसको कैसे दिखाते हैं मल्टीपल इंस्टेंसस को कैसे दिखाते हैं मल्टीपल इंस्टेंसस को दिखाने का मेरा तरीका है कि मैं ऐसे सिंपली डॉट्स बना देता तो क्ड कोर सीपीयू में मान लो मेरा आर सीपीयू है तो मैं ऐसे चार डॉट्स बना दूंगा सिपल और मान लो मैंने कुछ भी नहीं दिखाया हुआ सिंपली ऐसे आर लिखा हुआ है इसका मतलब मैं सिंगल इंस्टेंस बोल रहा हूं सिल इंस्टेंस बोल रहा हू सिंगल इंस्टेंस बोल रहा हूं ठीक है ये कुछ नोमेन क्लेचर हो गया जो हमने बेसिकली देख लिया अब हम डिस्कस करते हैं क्या रिसोर्स एलोकेशन ग्राफ जिस तरीके से ये यूज क्यों होता है ये बेसिकली मैं यूज करता हूं कि मैं रिप्रेजेंटेशन कर सकता हूं सिस्टम रिप्रेजेंटेशन कर सकता हूं सिस्टम रिप्रेजेंटेशन ठीक है और एक पिक्टोरियल यानी कि ऊपर से मैं व्यू ले सकता हूं कि क्या कोई मुझे साइकिल दिख रही है कोई सर्कुलर वेट जैसी कंडीशन दिख रही है कि मैं बोल सक कि हां इसके अंदर डेड लॉक है कि नहीं ठीक है ऐसा कुछ मैं बोल सकता हूं इसको एग्जांपल से समझते हैं सिंपली मैं एक एग्जांपल लेता हूं जल्दी से ड्रा करता हूं तो यार ये हमने एक सिस्टम की रिप्रेजेंटेशन कर दी है जल्दी से ठीक है तो जो रिसोर्स एलोकेशन ग्राफ है ना जिसको मैं शॉर्ट में आर एजी भी बोल देता हूं ठीक है इसकी डेफिनेशन क्या बोलती है कि क्योंकि एक ग्राफ है इसकी डेफिनेशन क्या बोलती है कि अगर मेरे पास इस ग्राफ के अंदर मुझे कोई साइकिल दिख जाए ठीक है ये बेसिकली ये कंडीशन क्यों क्यों आई है ये बेसिकली सर्कुलर वेट वा जो हमारी चौथी कंडीशन थी उससे थोड़ी सी इंस्पायर्ड होके है कि अगर मुझे कोई साइकिल दिख जाएगी ना कंप्लीट साइकिल तो मैं बोल दूंगा कि हो सकता है कि इसके अंदर डेड लॉक हो ठीक है मे बी इसके अंदर डेड लॉक हो अगर मेरे पास साइकिल नहीं है तो मैं आई एम डम श्यर कि इसमें डेड लॉक नहीं होगा ठीक है थोड़ा सा कंफ्यूजन दोबारा बोलता हूं कि अगर साइकिल नहीं है तो मैं बोलूंगा कि डेड लॉग नहीं है अगर साइकिल है तो हो सकता है डेड लॉक हो ठीक है तो इसमें देखते हैं इसके अंदर क्या हमें साइकिल नजर आ रही है बिल्कुल नजर आ रही है पव जो है आरव से रिक्वेस्ट कर रहा है आरव जो है प2 को एलोकेटेड है ठीक है यह बेसिकली प2 यह वाली ए होती तो साइकल हो बेसिकली पहली साइकिल को साइकिल नहीं बोलूंगा इसको क्या मैं साइकिल बोल सकता हूं इसको मैं साइकिल बोल सकता हूं राइट य एक साइकिल नजर आ रही है मुझे तो इसको ध्यान से देखते हैं कि बाय डेफिनेशन क्या है बाय डेफिनेशन बाय डेफिनेशन ऑफ आरजी क्या बोलती है जल्दी से लिख देता हूं इसको क्यूज ना हो कि आरजी के अंदर अगर नो साइकिल तो नो डेड लॉक ठीक है आरजी के अंदर साइकिल है तो मे बी डेड लॉक तो इसके अंदर अभी साइकिल है इसको इसके अंदर साइकिल नजर आ रही है तो एक बार थोड़ा वैलिडेट करते हैं इसको डेड लॉक है कि नहीं डेट करने के लिए एक बार ध्यान से देखते हैं कि प2 जो है प2 जो है आ3 को रिक्वेस्ट कर रहा है और आ3 जो है व p3 को लोकेटेड है पहले से ही और जो p3 है वो रिक्वेस्ट कर रहा है r2 का एक इंस्टेंस ध्यान से देखो r2 के मल्टीपल इंस्टेंसस है बट r2 का जो एक इंस्टेंस है वो तो यहां पे बिजी है तो इसको तो भूल ही जाते हैं एक इंस्टेंस की बात करें तो ये जो इंस्टेंस है r2 का ये बेसिकली साइंड है p2 को तो अब ध्यान से देखो कि मेरे पास म्यूचुअल एक्सक्लूजन तो इसमें है ही है होल्ड एंड वेट भी मेरे पास इसके लिए भी होल्ड एंड वेट ट्रू हो रहा है इसके लिए भी होल्ड एंड वेट ट्रू हो रहा है ठीक है कैसे ट्रू हो रहा है ये बेसिकली इसको होल्ड करके बैठा है इसको भी होल्ड करके बैठा है इसको तो चलो इस वाली साइकिल को अभी कंसीडर नहीं करते सिंपल इस वाली साइकिल को कंसीडर करते हैं तो p2 जो है r2 को होल्ड करके बैठा है और इसके लिए वेट कर रहा है ठीक है ना p3 सिंपली r3 के होल्ड करके बैठा है r2 के लिए वेट कर रहा है ठीक है होल्ड एंड वेट भी ट्रू है नो प्रीमन तो हम बोल ही रहे हैं कि एक बार एक रिसोर्स मिल गया तो वो जब तक प्रोसेस का मन नहीं करेगा वॉलेटर वो रिलीज नहीं करेगा ठीक है और ओएस भी नहीं बोल सकता फोर्सफुली प्रीमन नहीं करवा सकता चौथा है सर्कुलर वेट सर्कुलर वेट भी हमें यहां पे ट्रू नजर आ रहा है तो मैं बोल सक सकता हूं कि ये जो दूसरी कंडीशन के हिसाब से कि मे बी डेड लॉक तो यहां पर डेड लॉक है ठीक है हमने ध्यान से देखा कि इस ये जो मुझे सर्कल नजर आ रहा है यहां पर मैं बोल सकता हूं कि डेड लॉग इज प्रेजेंट ठीक है ध्यान से अगर अभी भी नहीं समझ आ रहा है तो एक बार थोड़ा सा वीडियो को पॉज करो और ध्यान से देखो कि क्या यह डेड लॉक क्रिएट कर रहा है मेरे ख्याल से तो डेफिनेटली क्रिएट कर रहा है p2 जब इसके लिए वेट कर रहा है यह पहले से यहां बिजी है p3 जो है इसके लिए वेट कर रहा है यह पहले से p2 प बिजी है तो बेसिकली मुझे डेड लॉग नजर आ रहा है साफसाफ ठीक है तो आरजी की डेफिनेशन के हिसाब से मे बी डेड लॉग जो हमने कंडीशन से दोबारा से य वैलिडेट किया तो मैं बोल सकता हूं यहां एक्चुअली डेट लॉग प्रेजेंट है और अभी थोड़ा कुछ लोगों को कंफ्यूजन होगी कि यार ये मे बी डेडलॉक क्यों बोल रहे हो आप मतलब साइकिल होगी तो डेड लॉग तो होगा ही ना इसका एक एग्जांपल देखते हैं इसका एग्जांपल देखते हैं कि जहां पर मे बी डेड लॉक वाली कंडीशन कैसे डेड लॉक नहीं होगा साइकिल भी होगी पर डेड लॉक नहीं होगा इसका एग्जांपल देखते हैं सेकंड एग्जांपल जल्दी से ड्र करता हूं तो ये एग्जांपल हमने ड्र कर लिया अब क्या इसके अंदर साइकिल आपको नजर आ रही है जो हमने य डेफिनेशन बोली कि बाय डेफिनेशन अगर आरएसजी के अंदर साइकिल नहीं है तो डेड लॉक डेफिनेटली नहीं है आरएसजी के अंदर अगर साइकिल है तो मे बी डेड लॉक है तो यहां मुझे साइकिल नजर आ रही है देखो p1 r1 के पास जा रहा है इधर से साइकिल इधर से साइकिल अगर मैं इंप्लीमेंट करूंगा ना नॉर्मली इसको मान लो जो ग्राफ में साइकिल रेक्शन की अल्म होती है उसको मैं देखूंगा तो ये ट्रू रिटर्न करेगी इसके लिए यहां भाई मुझे साइकिल यहां पर है ट्रू रिटर्न हो जाए अब ध्यान से देखो साइकिल तो है यहां पर पर यहां पर डेड लॉग नहीं है डेड लॉग कैसे नहीं है वो देखो p1 जो है p1 जो रिक्वेस्ट कर रहा है r1 के लिए ठीक है r1 का एक इंस्टेंस p3 को एलोकेटेड है और एक इंस्टेंस p2 को एलोकेटेड है सिमिलरली जो p3 है वो बेसिकली किसके लिए वेट कर रहा है व किसको रिक्वेस्ट कर रहा है r2 को और r2 का एक इंस्टेंस p1 के पास है r2 का एक इंस्टेंस p4 के पास है अब ध्यान से देखो ड्यू टू मल्टीपल इंस्टेंस क्या अभी तो t इ 0 प मान य बेसिकली कंडीशन है इ 0 पर य कंडीशन है जो मुझे दिख रही है य य जो पूरी सिनेरियो में सिस्टम का दिख रहा है अब थोड़ी देर बाद क्या ऐसा होगा थोड़ी देर बाद ऐसा डेफिनेटली होगा जो p4 है वो आ2 को रिलीज कर देगा अगर p4 ने आ2 को रिलीज कर दिया तो क्या मैं बोल सकता हूं कि यह आ p4 वाली एज जो है यह मैं यहां से हटा देता हूं ठीक है यह मैं एज य से हटा देता हूं अगर p4 की में हटा दूंगा p4 बेसिकली सिस्टम से ही गायब हो जाएगी क्योंकि वो एग्जीक्यूट हो चुकी है ठीक है p4 को पूरा ही रिमूव कर देते हैं p4 को रिमूव करने के बाद r2 जो है वह बेसिकली p3 को असाइन हो जाएगा r2 जो है p3 को असाइन हो जाएगा और जैसे ही बेसिकली r2 जो है p3 को असाइन होगा p3 को दोनों ही चाहिए थे p3 को बेसिकली r1 चाहिए था r2 चाहिए था दोनों मिल जाएंगे उसको तो ये भी एग्जीक्यूट करके डन हो जाएगी एग्जीक्यूशन इसकी सक्सेसफुल हो जाएगी आफ्टर सम टाइम सिमिलरली आप यहां पर ध्यान से देखो कि p2 जब एग्जीक्यूशन कंप्लीट कर जाएगा इसकी एग्जीक्यूशन जब कंप्लीट हो जाएगी और ये ये एज मैं यहां से रिमूव कर दूंगा तो r1 फ्री हो जाएगा तो p1 को r1 भी मिल जाएगा ठीक है p1 को r1 भी मिल जाएगा तो बेसिकली मैं बोल सकता हूं कि सिस्टम में साइकिल तो थी साइकिल तो थी साइकिल वास प्रेजेंट बट डेड लॉग नहीं था ठीक है तो यह भी एग्जांपल कंफ्यूजन दूर हो गई होगी कि मैं ऐसा क्यों बोल रहा हूं कि आरज के अंदर साइकिल जब होगी तो मे बी डेड लॉक हो ठीक है तो इसको मुझे डबल चेक करना पड़ता है कि डेड लॉक है कि नहीं तो यह हमारा आरजी रिसोर्स एलोकेशन ग्राफ के दो एग्जांपल्स हो गए ठीक है ये बेसिकली इंटरव्यू में डायरेक्टली तो नहीं पूछे जाते बट ये आपसे ये चीज पूछी जा सकती है ये डेफिनेशन और कंडीशन क्या-क्या होती है ठीक है और बेसिकली आरजी यूज क्यों होता है हम बेसिकली सिस्टम प एक रिप्रेजेंटेशन के लिए यूज हो होता है हम रिप्रेजेंट कर पाते हैं देखो स्टार्टिंग से हम आरजी का यूज कर रहे हैं स्टार्टिंग से हम आरजी का ही यूज कर रहे हैं आगे भी डेडलॉक के केस में आरजी का यूज करते ही है ठीक है तो ये हमारा बेसिकली सिंपल सा टॉपिक हो गया रिसोर्स एलोकेशन ग्राफ नेक्स्ट हम मूव करते हैं मेथड्स टू हैंडल डेड लॉग डेड लॉग तो हमने पढ़ लिया बेसिकली डेडलॉक कितनी खतरनाक चीज है ये सब हमने बेसिकली डिस्कस कर लिया बट इसको भडल कैसे करें ठीक है किस तरीके से हम बेसिकली अब आगे बढ़े कि कैसे हम डेडलॉक जैसे इतनी जो बड़ी प्रॉब्लम है इसको कैसे इससे टैकल करें तो इसके यार बेसिकली तीन आइडल जीी होती है तीन मेथड्स होते हैं पहला मेथड मेरा है कि प्रोटोकॉल जिसमें कि हम प्रिवेंट कर ले डेड लॉक को या अवॉइड कर ले ठीक है यानी कि हम इंश्योर करें सिस्टम ना कभी भी डेड लॉक के अंदर जाए ना डेडलॉक वाली स्टेट जो ये डेडलॉक वाली स्टेट थी इस टाइप की स्टेट में सिस्टम कभी जाए ही ना तो पहला स्टेट हो गया प्रिवेंट कर लो और अवॉइड कर लो डेड लॉक या तो प्रिवेंट कर लो या अवॉइड कर लो ठीक है तो इस केस में हम इंश्योर करेंगे कि सिस्टम जो है मेरा डेड लॉक में ना ही जाए ठीक है दूसरा मेरा कंडीशन होती है कि मैं अलाउ कर दूं अलाव कर दूं सिस्टम को कि भाई तू जा डेड लॉग में कि डेडलॉक में चले जा और जब वो डेड लॉक में चले जाएगा ना तो मैं क्या करूंगा डिटेक्ट करूंगा पहले कि डेड लॉक में गया कि नहीं डिटेक्ट करने के बाद मैं क्या करूंगा उसको रिकवर कर लूंगा ठीक है तो पहला मेथड तो हो गया कि मैं जाने ही नहीं दूंगा ठीक है दूसरा मेथड है कि भाई तू डेडलॉक में चले जा सिस्टम आ एक दूसरे एल्गोरिथम में बेसिकली पैरेलली एल्गोरिथम चलेगी जो डिटेक्ट करेगी डेडलॉक में है कि नहीं और जब डेडलॉक में अगर हुआ सिस्टम तो मैं उसको रिकवर कर दूंगा एक य मेथड हो सकता है तीसरा मेथड है तीसरा मेथड है जिसको मैं बोलता हूं ऑस्ट्रिच एल्गोरिदम ऑज एल्गोरिथम यार कुछ भी नहीं है इसके अंदर हम क्या करेंगे सिंपली इग्नोर करेंगे हम डेड लॉ हम हम ये मानेंगे बेसिकली सिस्टम ये मान के चलेगा कि डेड लॉग कभी हो ही नहीं सकता ठीक है बेसिकली हम डेड लॉ को इग्नोर करेंगे तो मैं बोल सकता हूं कि डेडलॉक इग्नोर एस डेडलॉक इग्नोर हैंस करेंगे हम और डेडलॉक अब यार ऐसा तो नहीं है कि डेड लॉग इग्नोर कर देंगे तो हमारा बेसिकली सिस्टम चल जाएगा ठीक है तो इसके अंदर मैं बोल सकता हूं सिस्टम ये अज्यू करता है कि जो भी एप्लीकेशन प्रोग्रामर होगा ना जो एप्लीकेशन प्रोग्रामर होगा जो बेसिकली एप्स को लिख रहा है जो बेसिकली प्रोसेसेस को लिख रहा है वो एप्लीकेशन प्रोग्रामर पे हम सारी जिम्मेदारी छोड़ देंगे हम उसको बोल देंगे भाई तू खुद ही दे कि तेरी जो सिस्टम में डेडलॉक में गया कि नहीं री प्रोसेस डेडलॉक में जा रही है कि नहीं वो खुद ही बेसिकली अपने इन चीजों को हैंडल करो वो इसकी कोई रिस्पांसिबिलिटी नहीं है ठीक है तो ये बेसिकली मैं बोल सकता हूं कि ओएस पर्सपेक्टिव से तो ये डेडलॉक इग्नोर हैंस हो गई बट ओएस ने क्या करा है सारा काम एप्लीकेशन प्रोग्रामर को ही दे दिया कि भाई तुम खुद ही बेसिकली सारा कोडवर्ड लिखो डेड लॉ को हैंडल वंडल करने का और डिटेट करने का हमारे बस की नहीं है है सिस्टम इसको इंप्लीमेंट नहीं कर रहा तो ये होती है आपकी सिंपली ऑस्ट्रिच एल्गोरिथम ऑस्ट्रिच ऑस्ट्रिच एल्गोरिथम इसे क्यों बोलते हैं ऑस्ट्रिच क्या करता है ना जब भी कोई बेसिकली कोई खतरा आता है ना तो वो सोइल के अंदर अपने मुंह को डाल लेता है छुपा लेता है बेसिकली उसको लगता है कि ऐसे छुप जाऊंगा तो मैं बेसिकली प्रॉब्लम से दूर भाग जाऊंगा बेसिकली ऑस्ट्रे सिंपली प्रॉब्लम से दूर भागता है तो तीसरा ऑ एल्गोरिथम यही बोलता है कि प्रॉब्लम को इग्नोर करो उससे दूर भागो सोचो कि प्रॉब्लम है ही नहीं ठीक है तो ये मेरी सिंपल सी तीसरी एल्गोरिथम है इसके बारे में हम ज्यादा डिस्कस नहीं करेंगे ठीक है पहली दो प्रिवेंशन अवॉइडेंस और डिटेक्शन रिकवरी के बारे में डिस्कस करेंगे तो सबसे पहले हम डिस्कस करते हैं डेडलॉक प्रिवेंशन टेक्निक्स के बारे में सबसे पहले मेरा आता है डेड लॉक प्रिवेंशन प्रिवेंशन का मतलब हो गया कि मैं सिस्टम को डेड लॉक में जाने ही नहीं दूंगा ठीक है उससे पहले यार याद करो हमने जो डेड लॉग की नेसेसरी कंडीशन पढ़ी थी जो चार नेसेसरी कंडीशन थी फोर नेसेसरी कंडीशन थी वो मैंने बोला था कि साइमल नियस होनी चाहिए ठीक है पली चारों की चारों होनी चाहिए सिस्टम में तभी मैं बोलूंगा कि डेड लॉक है वरना नहीं है राइट य हमने डिस्कस किया तो अगर मैं कुछ ऐसा सिस्टम करूं या कुछ ऐसी इंप्लीमेंटेशन करूं या ऐसे कुछ लॉजिस डाल दूं सिस्टम के अंदर कि चारों में से कोई एक कंडीशन होल्ड ना करे अगर कोई भी एक कंडीशन होल्ड नहीं करेगी तो डेड लॉक नहीं होगा सिंपली तो मैं क्या करूंगा सिस्टम बेसिकली ऐसे एरिम इमेंट करेगा वो बेसिकली ट्राई करेगा कि चारों के चारों कंडीशन एक साथ कभी होल्ड ही ना हो कोई एक कंडीशन जो है वो अन होल्ड रह जाए उस टाइम पे अगर कोई एक कंडीशन होल्ड नहीं करेगी तो मैं बोल सकता हूं डेडलॉक में जाएगा ही नहीं सिस्टम तो हेंस आई कैन से कि मैंने डेडलॉक को प्रिवेंट कर लिया डेड लॉक सिस्टम को डेड लॉक में जाने से प्रिवेंट कर लिया तो इसलिए मैं इसको बोल रहा हूं डेड लॉक प्रिवेंशन एल्गोरिथम तो प्रिवेंशन में सबसे पहला मेथड होता है मेरा कि मैं म्यूचुअल एक्सक्लूजन को प्रिवेंट कर लूं म्यूचुअल एक्सक्लूजन ठीक है म्यूचुअल एक्सक्लूजन का मतलब क्या था सिंपली यही मतलब है कि हमारा कोई एक रिसोर्स है वह म्यूचुअल एक्सक्लूसिव वे में एक्सेस हो सकता है बाय ए प्रोसेस ठीक है तो मैं क्या करूंगा कि मैं अवॉइड करूंगा ऐसी सिचुएशन कि म्यूचुअल एक्सक्लूजन जो है ना कम से कम जगह पर यूज हो यानी कि नॉन शेरेबल रिसोर्सेस है ना जो नॉन शेरेबल रिसोर्सेस है केवल मैं उन्हीं में ही म्यूचुअल एक्सक्लूजन का म्यूचुअल एक्सक्लूजन का यूज करूंगा यानी लॉक्स का मैं यूज करूंगा ठीक है नॉन शेरेबल रिसोर्सेस वही थे यानी कि मेरे जितने भी क्रिटिकल रिसोर्सेस थे क्रिटिकल सेक्शन कोई एक मेमोरी स्पेस हो सकती है ऐसी कोई एक मेमोरी स्पेस हो सकती है ऐसी जो एक बारी में एक ही प्रोसेस यूज करे तो यानी कि मैं अवॉइड करूंगा ऐसी सिचुएशन कि मैं बे खाम का मैं कोई कि सारे रिसोर्सेस को नॉन शेरेबल नहीं बना दूंगा जैसे कि अगर मैं बोल सकता हूं कि मान लो मेरे पास एक रीड ओनली फाइल है रीड ओनली फाइल है अब क्योंकि ये रीड ओनली है इसके अंदर कोई राइट नहीं कर रहा ठीक है तो इनकंसिस्टेंसी आएगी नहीं तो क्या इसको मैं क्यों क्रिटिकल सेक्शन बनाऊं इसको मैं क्यों एक ऐसा रिसोर्स बनाऊं कि वो नॉन शेरेबल है तो मैं इसको बोल सकता हूं इस इट इज अ शेरेबल रिसोर्स शेरेबल रिसोर्स तो इस केस में मैं ना लॉक्स का यूज करूंगा ही नहीं लॉक्स का यूज नहीं करूंगा लॉग नहीं करूंगा तो मल्टीपल प्रोसेसेस आके मान लो कोई मेरे पास ये सिंपली एक डीड ओनली रिसोर्स है ये डीड ओनली फाइल एक रिसोर्स है तो बहुत सारी प्रोसेसेस आके बहुत सारी प्रोसेस आके इसको रिक्वेस्ट कर सकती हैं रिक्वेस्ट कर सकती है और बहुत सारी प्रोसेस प ये असाइन हो जाएगा राइट तो जो रीड ओनली ो है उनको बे फालतू में मैं नॉन शेरेबल नहीं बनाऊंगा उनको नॉन शेरेबल मोड में मैं एक्सेस होने नहीं दूंगा ठीक है जो नॉन शेरेबल रिसोर्स एक्चुअली नॉन शेरेबल रिसोर्स है जैसे कोई प्रिंटर है प्रिंटर मान लो एक बारी में एक ही प्रोसेस को हैंडल कर सकता है ठीक है तो उस केस में मैं उनको मैं नॉन शेरेबल बना दूंगा उनको मैं क्रिटिकल बना दूंगा तो इसी तरीके से मैं इसको अवॉइड करूंगा एक बार नोट्स में देख लेते हैं हमने क्या लिखा है नोट्स में अगर आते हैं तो हमने लिखा है कि यूज लॉक्स और म्यूचुअल एक्सक्यूज ओनली फॉर नॉन शेरेबल रिसोर्स ठीक है जो शेरेबल रिसोर्स है उनको मैं बे फालतू लॉक की लॉक लॉक नहीं करूंगा राइट क्योंकि जो रीड ओनली रिसोर्सेस है यानी जो शेरेबल रिसोर्सेस है मल्टीपल बेसिकली प्रोसेसस को एग्जीक्यूट कर सकती है उसको एक्सेस कर सकती है राइट शेरेबल सोस लाइक रीड ओनली फाइल कैन बी एक्से बा मल्टीपल प्रोसेसेस हाउ एवर वी कैन नॉट प्रिवेंट डेड लॉगस बाय नाइंग द म्यूचुअल एक्सक्लूजन कंडीशन बिकॉज सम रिसोर्सेस आर इंट्रिसिकली नॉन शेरेबल ठीक है यानी कि कुछ रिसोर्सेस तो ऐसे होंगे ही होंगे जो कि नॉन शेरेबल होंगे ठीक है हमने डिस्कस किया बहुत सारे सेक्शंस ऐसे हैं या मेमोरी का एरिया ऐसा होगा जो कि क्रिटिकल सेक्शन होगा ही होगा तो उस केस में हम ये म्यूचुअल एक्सजन कंडीशन को एंटायस बट हम थोड़ा सा ऑप्टिमाइज कर सकते हैं कि भाई जो शेरेबल रिसोर्स है उन परे क्यों लॉक्स का यूज करूं मैं ठीक है तो ये मेरी पहली कंडीशन हो गई कि मैं थोड़ा सा म्यूचुअल एक्सक्लूजन को कम कर दूं दूसरा होगा मेरा होल्ड एंड वेट होल्ड एंड वेट मेरा क्या था कि कि किसी प्रोसेस ने एक रिसोर्स को तो होल्ड किया हुआ है और दूसरे रिसोर्स को वो बेसिकली वेट कर रहा है दूसरे रिसोर्स के आने के आने के लिए तो इस होल्ड एंड वेट कंडीशन को मैं कैसे ओवरकम कर सकता हूं कि मैं ट्राई करूं कि होल्ड एंड वेट कंडीशन अवॉइड हो जाए जिसकी वजह से डेड लॉग अवॉइड हो जाए ठीक है ये कैसे करूंगा मैं तो चलो एक बार होल्ड एंड वेट को डिस्कस करते हैं होल्ड एंड वेट कैसे प्रिवेंट कर सकते हैं हम कि ये होल्ड एंड वेट कंडीशन ट्रू ना हो होल्ड एंड वेट होती क्या थ कि हम एक रिसोर्स को तो होल्ड कर रहा हूं और दूसरे रिसोर्स को मैं रिक्वेस्ट कर रहा हूं ठीक है तो इसके लिए मुझे क्या करना पड़ेगा इसके लिए सीधा नोट्स पर चलते हैं एक बार इसके लिए टू इंश्योर होल्ड एंड वेट कंडीशन नेवर अकर इन सिस्टम कभी भी ना हो इसके लिए हम क्या करेंगे वी गारंटी दैट व्हेन एवर ए प्रोसेस रिक्वेस्ट ए रिसोर्स जब भी कोई प्रोसेस किसी रिसोर्स को रिक्वेस्ट करेगा तो वो कोई होल्ड ना कर रहा हो कोई दूसरे रिसोर्स को उस टाइम होल्ड ना कर रहा हो ठीक है तो इसके दो प्रोटोकॉल हो सकते हैं पहला प्रोटोकॉल कि ईच प्रोसेस हैज टू रिक्वेस्ट एंड बी एलोकेटेड ऑल इट्स रिसोर्स बिफोर एग्जीक्यूशन यानी कि प्रोसेस की एग्जीक्यूशन के स्टार्टिंग में ही मैं इंश्योर करूं कि सारे रिसोर्सेस मेरे पास जो जो चाहिए होंगे पूरे प्रोसेस के लाइफ साइकिल में वो मैं इनिशियली ही यानी एग्जीक्यूशन से पहले ही इनको एलोकेट करा लूं इसका एक एग्जांपल लेते हैं मान लो मेरे पास एग्जांपल है कि मेरे पास एक डीवीडी ड्राइवर है ठीक है डीवीडी ड्राइवर है और मेरे पास एक फाइल है फाइल है और मेरे पास प्रिंटर है ठीक है तो कोई प्रोसेस है मेरी कोई प्रोसेस है मेरी प कोई प्रोसेस है और वो क्या करती है व डीवीडी से डाटा को पहले फाइल में कॉपी करती है कॉपी करने के बाद इस फाइल के अंदर मान लो इसको सॉर्ट करती है यह मेरा सीपीयू का वर्क हो गया सॉर्ट करने के बाद उसको प्रिंटर के लिए प्रिंटर को दे देते प्रिंट करने के लिए मान लो ये मेरे पास एक टास्क है ठीक है तो इस टास्क को करने से पहले मैं क्या करूंगा प्रोसेस के अंदर एक टास्क होगा तो प्रोसेस का प्रोग्रामर क्या बोलेगा कि मेरे पास ये तीन के तीन रिसोर्सेस में स्टार्टिंग में एलोकेट करा लू यानी कि मैं स्टार्टिंग में ही जब भी अवेलेबल हो मैं इ एलोकेट करा लू इनको एलोकेट करा लू एलोकेशन एज मैंने बना दी है और एलोकेट कराने के बाद जो मेरा यह टास्क था जो टास्क था कॉपी करने का कॉपी करने का फिर सॉर्ट करने का फिर सॉर्ट करने के बाद प्रिंट करने का यह सारा काम मैं बाद में दे दूं ब इससे एक इशू आ रहा है ये देखो इशू क्या आ रहा है कि जब कॉपी हो रही होगी डीवीडी टू फाइल तब भी मैं प्रिंटर को लेकर बैठा हूं हो सकता था उस टाइम प मान लो कॉपी में एक घंटा लगता है मान लो कॉपी करने में न वर का टाइम लगता है और प्रिंटर हो स प्रिंटर मैं तब भी होल्ड करके बैठा हूं तो हो सकता था प्रिंटर तब कोई और प्रोसेस यूज कर लेती और कोई यूजफुल काम हो जाता ठीक है तो ऐसा हो सकता है यह पॉसिबिलिटी है यह एक ड्रॉ बैक बोल सकता हूं इसका दूसरा मेथड दूसरा प्रोटोकॉल क्या है प्रोटोकॉल ब बोलता है कि अलाउ अ प्रोसेस टू रिक्वेस्ट रिसोर्स ओनली वन इट ज नन जब उस उसने कोई भी प्रोसेस को बेसली कोई भी किसी प्रोसेस ने किसी भी रिसोर्स को होल्ड ना कराओ तब वह किसी दूसरे रिसोर्सेस को रिक्वेस्ट करें इट कैन रिक्वेस्ट एनी एडिशनल रिसोर्सेस आफ्टर इट मस्ट हैव रिलीजड ल द रिसोर्सेस दैट इट इज करेंटली एलोकेटेड ठीक है तो यही वाला एग्जांपल एक बार दोबारा से देखते हैं ठीक है यही वाला एग्जांपल ब दोबारा से देखते हैं कि सेकंड प्रोटोकॉल से मैं इस एग्जांपल को कैसे फुलफिल करूंगा मेरी p1 प्रोसेस थी यहां पर इसमें मैं क्या कर सकता हूं कि मैं स्टार्टिंग में यानी स्टार्टिंग में क्या करूं मैं सिर्फ डीवीडी के लिए रिक्वेस्ट डालूं और फाइल के लिए रिक्वेस्ट डालूं ठीक है डीवीडी फाइल के रिक्वेस्ट डालू क्योंकि मैं दोनों तो जरूरी होंगी कॉपी करने के लिए तो मैं टास्क वन मैं अपना कर दूंगा कॉपी करने का ठीक है कॉपी करने का जब कॉपी कंप्लीट हो जाएगा तो फिर मेरा सर्टिंग का काम भी मैं कर लूंगा अब तीसरा आता है मेरा प्रिंट का काम जब मैं प्रिंट का काम करने जाऊंगा प्रिंट का काम करने के लिए मुझे प्रिंटर पर रिक्वेस्ट डालनी पड़ेगी प्रिंटर को रिक्वेस्ट करना पड़ेगा यानी कि जो प है p1 जो है वो प्रिंटर को रिक्वेस्ट करेगा प्रिंट करने से पहले मैं इंश्योर करूं यानी प्रिंटर पे एलोकेशन की रिक्वेस्ट डालने से पहले मैं इंश्योर करूं कि जो मेरी फाइल और डीवीडी है इसको मैं वो कर दूं रिमूव कर दूं यानी कि इसकी एलोकेशन को मैं रिलीज कर दूं इन दोनों रिसोर्स को मैं रिलीज कर दूं और रिलीज करने के बाद में फिर से फिर से बेसिकली मैं रिक्वेस्ट डालूं कि मेरे को फाइल भी मिल जाए और फिर से मुझे प्रिंटर भी मिल जाए यानी कि दोनों बाद में मिल जाए मुझे और मिलने के बाद फिर मैं प्रिंटर का काम यहां पे प्रिंट की कमांड दे सकूं ठीक है तो देखो मैं दो स्टेप में काम कर रहा हूं ये कि जब भी मैं बेसिकली देखो दो रिसोर्स तो मुझे 7 चाहिए यहां पे डीवीडी और फाइल तो चाहिए था कॉपी करने के लिए सिमिलरली जब मैं फाइल को प्रिंट करूंगा तो मुझे फाइल और प्रिंटर तो दोनों चाहिए ही होगा तो दोनों तो मुझे चाहिए ही एक पॉइंट पे बट मैं इंश्योर कर रहा हूं कि जब मैं प्रिंटर का मेरा काम नहीं है तो मैं स्टार्टिंग में डीवीडी और फाइल को ही बेसिकली एलोकेट करा रहा हूं p1 को और जब यह p1 को जब प्रिंट करना था प्रिंट करने के टाइम मैं क्या कर रहा हूं जो दूसरा प्रोटोकॉल कह रहा था टू इंश्योर दैट रिसोर्सेस को रिक्वेस्ट करने से पहले कि वो कोई भी होल्ड ना कर रहा हो तो मैंने होल्डिंग की हटा दी थी यानी कि डीवीडी और फाइल को रिलीज कर दिया था रिलीज करने के बाद मैंने दोबारा रिक्वेस्ट डाली थी इन दोनों को साइटली एलोकेट कराने की तो यह बेसिकली दो मेथड हो सकते हैं दो प्रोटोकॉल हो सकते हैं होल्ड एंड वेट को रिमूव करने के तीसरा हम चलते हैं नो प्रीमन प कि भाई नो प्रशन को हम कैसे कर सकते हैं तीसरा है मेरा नो प्रीमन नो प्रीमन क्या था सिंपली सिंपली ये था कि प्रोसेस जो है व वॉलेटर ही किसी रिसोर्स को रिलीज करेगी कोई सिस्टम आकर या फिर कोई और प्रोसेस आके फोर्सफुली एक पर्टिकुलर रिसोर्स को प्रिएंट नहीं करा सकता ठीक है तो इसको अब हम कैसे बेसिकली रिमूव कर सकते हैं प्रिवेंट कर सकते हैं तो थर्ड कंडीशन जो थी नेसेसरी कंडीशन थी वो हमारी नो प्रीमन थी तो नो प्रीमन को अकर होने से कैसे अवॉइड कर सकते हैं तो सबसे पहला तरीका है कि इफ प्रोसेस इ होल्डिंग सम रिसोर्स किसी रिसोर्स को करके बैठी है एंड रिक्वेस्टिंग अनदर रिसोर्स दैट कैन नॉट बी इमीडिएट एलोकेटेड अवेलेबल अभी वो नहीं है तो हम क्या करेंगे तो जो करेंटली एलोकेटेड जितने भी रिसोर्सेस है उनको हम प्रीम कर लेंगे ठीक है कैसे करेंगे देखते हैं एक बार एग्जांपल से मान लो मेरे पास एक पव प्रोसेस है ठीक है उसको आरव रिसोर्स जो है पहले से मिला हुआ है आ2 रिसोर्स को वो रिक्वेस्ट कर रहा है मान लो और r2 जो है वो कहीं पर एलोकेटेड है मान लो कहीं पर एलोकेटेड पहले से ही है यानी कि वो बिजी है बोल सकता हूं मैं उसको बिजी है तो मैं इस केस में क्या करूंगा p1 को ट्रिगर जाएगा एक इंटरप्ट जाएगा कि अभी जितने भी रिसोर्सेस क्योंकि r2 अवेलेबल नहीं है क्योंकि r2 अवेलेबल नहीं है तो अभी जितने भी रिसोर्सेस उसने करेंटली होल्ड किए हुए हैं करेंटली कितने होल्ड किया हुआ है उसने p1 ने p1 ने जो है r1 होल्ड किया हुआ है तो उसको रिलीज कर दो p1 क्या करेगा p1 इसको रिलीज कर देगा इसको रिलीज कर देगा रिलीज करने के बाद वो वेट करेगा बेसिकली वो वेट करेगा कब r2 अवेलेबल होगा ठीक है यानी कि वो वेट करेगा कब r2 अवेलेबल होगा और जब भी r2 r1 दोनों साथ में अवेलेबल हो जाएंगे ना जब भी r2 r1 दोनों साथ में अवेलेबल हो जाएंगे यानी कि कभी तो r2 फ्री होगा राइट जब r2 फ्री हो जाएगा r2 फ्री होने के बाद r2 अवेलेबल होगा अवेलेबल होने के बाद वो इन दोनों को साथ में रिक्वेस्ट करेगा साथ में रिक्वेस्ट करेगा और चाहेगा कि दोनों साथ में एलोकेट हो जाए ठीक है तो ये एक तरीका हो सकता है कि दोनों साथ में एलोकेट हो जाए अब थोड़ी देर बाद दोनों जब अवेलेबल हो जाएंगे तो दोनों की लोकेशन इसको मिल जाएगी एलोकेशन मिलने के बाद य बेसिकली आगे बढ़ जाएगा ठीक है तो ब इसमें यार एक इशू है एक छोटा सा इशू है कि जब मान लो r1 आ2 दोनों पर कोई पव प्रोसेस साथ में बेसिकली लॉक लगाने की कोशिश करती है ना तो एक सिचुएशन अराइज होती है इसको मैं बोलता हूं लाइव लॉक लाइव लॉक का क्या मतलब है कि दोनों ही लॉक्स को साथ में क्वायर करने की कोशिश कर रहा हूं तो सिस्टम में हो सकता है लॉग जो है आपस में कोलाइड हो जाए तो कोलिजन की वजह से क्या होता है कि कोलिजन जैसे होता है यानी कर्नल साइड पे ऐसा होता है कि कोलिजन होता है कोलिजन होने के बाद बेसिकली जैसे ही कोलाइड होगा तो वो कुछ डिले के बाद फिर से लॉक लगाने की कोशिश करता है और मान लो वो लॉक भी दोनों साथ में लगने की कोशिश कर रहे हैं तो फिर कुछ डिले डिले के बाद फिर से वो लॉक लगाने की कोशिश करता है तो कोलाइड कॉलीज की वजह से बार-बार ना एक ही एक ही जगह पे मेरा कोड जो है रिवॉल्व करता रहता है बेसिकली इस रिवॉल्व मेंट की वजह से बेसिकली बार-बार जो एक ही जगह पे एक ही लाइन ऑफ कोड पे यानी कहीं पे दोनों के साथ में लॉक लिखने का लाइन ऑफ कोड लिखा होगा वहीं पे बेसिकली बारबार कोलिजन की वजह से सीपीयू साइकिल वेस्ट हो रही है तो उस वेस्टेज को रोकने के लिए मैं क्या करता हूं थोड़ा सा डिले डाल देता हूं मान लो लॉक वन को एक्वायर करने और लॉग टू को एक्वायर करने के बीच में मैं स्लीप डाल देता हूं मान लो न सेकंड का या 1 मिली सेकंड का बेसिकली स्लीप डाल देता हूं तो इससे क्या होगा मेरे लाइव लॉक की कंडीशन को मैं ओवरकम कर जाऊंगा ठीक है ये छोटा सा इशू था इसके अंदर दूसरा मेरा तरीका हो सकता है दूसरा मेरा तरीका हो सकता है कि इफ प्रोसेस रिक्वेस्ट सम रिसोर्सेस वी फर्स्ट चेक वेदर दे आर अवेलेबल ठीक है इफ यस वी एलोकेट देम ये तो सिंपल कंडीशन हो गई कि उसके पास कुछ रिसोर्सेस पहले से ही है कुछ रिसोर्सेस वो एलोकेट करने के लिए रिक्वेस्ट डाल रहा है अगर वो अवेलेबल है तो व एलोकेट कर दूंगा अगर वो अवेलेबल नहीं है इफ नॉट वी चेक वेदर दे आर एलोकेटेड टू सम अदर प्रोसेस एंड दैट प्रोसेस इज वेटिंग फॉर एडिशनल रिसोर्स इफ सो प्रिए एम्प्ट द डिजायर्ड रिसोर्स फ्रॉम द वेटिंग प्रोसेस एंड एलोकेट देम टू द रिक्वेस्टिंग प्रोसेस इसका एग्जांपल देख सकते हैं अब मान लो मेरे पास कोई r1 रिसोर्स है जो कि p1 प पहले से एलोकेटेड है और p1 जो है r2 का वेट कर रहा है ठीक है और r2 जो है पहले से p2 को एलोकेटेड है p2 r3 का वेट कर रहा है तो जो यह बात हम बोल रहे थे यहां पर जो ये हमने यहां पर लिखा हुआ है इसको इसका एक एग्जांपल यहां पर यह कैसे बन रहा है कि p1 जो है वो r2 का वेट कर रही है ठीक है और मान लेता हूं मैं कि p1 की प्रायोरिटी ज्यादा है और जो p2 जो है वो r3 का वेट कर रही है क्योंकि p2 r3 का वेट कर रही है अब क्योंकि p2 r3 का वेट कर रही है तो हम यह मान के चल रहे हैं कि इसने अभी के लिए जो ये वाली होल्ड होल्डिंग कर रखी है इसको मैं हटा सकता हूं यहां से राइट इसको मैं यहां से हटा सकता हूं तो मैं क्या करता हूं इस एज को इस एज को यहां से रिमूव कर देता हूं यानी कि r2 को मैंने r2 को मैंने प्रीमप्टिव कर लिया किससे p2 से p2 से मैंने प्रीम कर लिया और r2 को मैंने p1 को दे दिया p1 को मैंने दे दिया तो अब क्या होगा p1 एग्जीक्यूट हो पाएगी थोड़ी देर बाद वापस से प2 जो है क्योंकि हमने प्रिवेंट कर लिया था प2 जो है जब p1 का काम कंप्लीट हो जाएगा आ2 फ्री हो जाएगा प2 वापस से आके r2 प रिक्वेस्ट डाल सकता है राइट तो इस तरीके से हम बेसिकली ऐसे ऑप्टिन लगा के नो प्रीमन वाली जो कंडीशन है मेरी नो प्रम वाली जो नेसेसरी कंडीशन थी उसको मैं अवॉइड कर सकता हूं अवॉइड करने के बाद मैं डेड लॉक को अवॉइड कर सकता हूं चौथी मेरी कंडीशन होती है सर्कुलर वेट सर्कुलर वेट को कैसे इंश्योर करूं कि ये होल्ड ना करे ठीक है सर्कुल वेट होती क्या थी एक बार मैं जल्दी से ड्रा कर लेता हूं ताकि समझने में आसानी होवे इसका सॉल्यूशन भी इसमें ऐसा होता था यार कि p1 को मान लो r1 एलोकेटेड है और p1 जो है वेट कर रहा है r2 का और r2 पहले से p2 पे एलोकेटेड है और p2 वेट कर रहा है r1 का ठीक है सर्कुलर वेट अराइज हो गई यहां सर्कुलर वेट जैसी कंडीशन अराइज होगई इस सर्कुलर कंडीशन को अराइज होने से मैं पहले ही रोकना चाहता हूं तो इसको रोकने के लिए मैं करूंगा एक एक फिक्स ऑर्डर लगा दूंगा मैं क्या करूंगा एक फिक्स्ड ऑर्डर लगा दूंगा अभी क्या हो रहा था अभी कोई भी बेसिकली p1 जो है कभी भी r1 को स्टार्टिंग में t इ 0 प जब r1 r2 दोनों एलोकेटेड नहीं होंगे तो मैं क्या कर रहा हूंगा p1 जो है r1 पर रिक्वेस्ट डाली होगी इसको r1 जल्दी से मिल गया फ उसके बाद उसने r2 प डाली अब इतने में क्या था p1 ने r2 को पहले से ही बेसिकली एक्वायर कर लिया था तो इस चक्कर में हमें ऐसी एक सिचुएशन राइज हो गई सर्कुलर वेट वाली अगर मैं मान लो इसका सलूशन कुछ ऐसा देता हूं इसका सलूशन मैं कुछ ऐसे देता हूं मैं बोल देता हूं कि कोई भी प्रोसेस क्योंकि p1 को भी r1 r2 चाहिए और p2 को भी r1 एंड r2 चाहिए ठीक है तो मैं बोल देता हूं कि जब p1 जो है या p2 जो है r1 r2 को लॉक करने जाएंगे तो एक एक फिक्स्ड ऑर्डर में लॉक होगा कैसे ऑर्डर कैसे होगा कि पहले दोनों थ्रेड r1 को लॉक करेंगी जब उनको r1 मिल जाएगा r1 जो है ऑलरेडी एलोकेटेड हो जाएगा तब वो r2 पे जाएंगी वरना वो r1 पे ही वेट करेंगी ठीक है तो ये सॉल्यूशन कुछ ऐसा दिखेगा मुझे ये r1 हो गया ये r2 हो गए ये p1 हो गया ये p2 हो गए तो ये दोनों ही ट्राई करेंगी दोनों ही सबसे पहले ट्राई करेंगी कि मुझे r1 मिल जाए ठीक है दोनों ही ट्राई करेंगे r1 मिल जाए और एज्यूम करते हैं p2 को r1 पहले मिल गया p2 को r1 पहले मिल गया अगर p2 को r1 मिल गया तो p1 क्या करेगा p1 जाके r2 को रिक्वेस्ट नहीं करेगा p1 जो है r1 पे ही वेट करता रहेगा ये एलोकेटेड हो गया ये वेट करता रहेगा अब क्योंकि p2 को r1 मिल चुका है पहले ही तब p1 जो है p2 जो है सॉरी p2 को r2 p2 को r1 पहले से मिल चुका है तो p2 जो है वो r2 को रिक्वेस्ट कर सकेगा r2 को रिक्वेस्ट करके r2 भी ले लेगा और जो p1 जो है वो r1 पे ही वेट करता रहेगा तो इससे क्या है देखो ध्यान से देखो सर्कुलर वेट यहां पे क्रिएट ही नहीं होगा क्योंकि सर्कुलर वेट कब होता है जब p1 जो है उसे r1 क्योंकि नहीं मिल पाया r1 p2 ने पहले ही ले लिया था तो वो r2 को जाके एक्वायर कर लेता अब मान लो r2 को जाके एक्वायर कर लेता तो ऐसी कंडीशन राइज हो जाती फिर से सर्कुलर वेड तो सर्कुलर वेड मैंने इस तरीके से अवॉइड कर दी कि मैंने एक फिक्स्ड ऑर्डर डाल दिया एक मैंने फिक्स्ड ऑर्डर डाल दिया इस फिक्स्ड ऑर्डर के चक्कर में मैंने बेसिकली सर्कुलर बट को अराइज होने से ही रोक दिया र ये कंडीशंस थी कुछ चार तरीके बेसिकली चार जो मेरी नेसेसरी कंडीशन थी उनको अवॉइड करने के कुछ डिफरेंट डिफरेंट तरीके थे जो कि हमने डिस्कस करे हो सकता है कुछ कंफ्यूजन रही हो आपको इनको समझने में तो आई वुड रिक्वेस्ट कि आप दोबारा से इनको देखो और नोट्स नोट्स में गो थ्रू करो नोट्स काफी कंप्रिहेंसिव बनाया है मैंने इसमें इस केस में क्योंकि ये टॉपिक थोड़ा सा समझने में थोड़ा समझने में टिपिकल हो सकता है लोगों के लिए तो आई होप आपको डेडलॉक का पार्ट वन समझ आया होगा नेक्स्ट में हम डिस्कस करेंगे जो हमने डेडलॉक हैंडलिंग की कंडीशंस डिस्कस करी थी हैंडलिंग के जो हमने तीन प्रोटोकॉल डिस्कस करे थे अभी हमने इसे प्रिवेंशन डिस्कस किया है अवॉइडेंस हम नेक्स्ट वीडियो में डिस्कस करेंगे फिर उसके बाद डिस्कस करेंगे हम डिटेक्शन एंड रिकव और जो तीसरी कंडीशन थी डेड लॉग इग्नोर हैंस की ऑस्ट एल्गोरिथम उसको डिस्कस करने की जरूरत ही नहीं है क्योंकि ऑस्ट एल्गोरिथम तो अपने आप में ही महान है राइट तो मिलते हैं नेक्स्ट लेक्चर में गुड बाय हेलो जी कैसे सार लक्ष तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 22 पर और आज हम डिस्कस करने वाले हैं डेड लॉक अवॉइडेंस और डेड लॉक डिटेक्शन के बारे में पिछली वीडियो में हमने डिस्कस किया था डेड लॉक होता क्या है डेड लॉक इ नेसेसरी कंडीशन क्या है डेड लॉक को प्रिवेंट कैसे कर सकते हैं आज हम डिस्कस करेंगे डेड लॉक अवॉइडेंस कैसे करते हैं तो डेडलॉक अवॉइडेंस करने से पहले ना डेडलॉक अवॉइडेंस के बारे में डिस्कस करने से पहले हम य जान लेते डेड लक अवॉइडेंस का मतलब क्या है अवॉइडेंस का मतलब यहां पर होता है कि हम डेड लक को अवॉइड करना चाहते हैं और किस सिनेरियो में हमारे पास डेड लग डेंस के केस में हमें पता होता है कि सिस्टम की करंट स्टेट क्या है करंट स्टेट का मतलब हो गया नंबर ऑफ प्रोसेसेस कितनी है ठीक है यह हमें पता है दूसरा हमें यह पता है हर प्रोसेस की नीड क्या है ठीक है नीड ऑफ रिसोर्सेस ऑफ ईच प्रोसेस और कितनी करेंटली एलोकेटेड है करेंटली कितने रिसोर्सेस एलोकेटेड है किस प्रोसेस को करेंटली एलोकेटेड अमाउंट ऑफ रिसोर्सेस टू चच प्रोसेस ठीक है यह सब हमें पता होता है और ये भी पता होता है कि भाई की मैक्स कितनी रिसोर्सेस की मैक्स अमाउंट कितनी है हमारे पास मैक्स अमाउंट ऑफ च रिसोर्स ठीक है तो हमें यह पता है कि ईच प्रोसेस ने कितना करेंटली एलोकेट किया हुआ है उनकी मैक्सिमम नीड कितनी है ठीक है मैक्स लिख देता हूं मैक्सिमम नीड कितनी है कितनी नंबर ऑफ प्रोसेस है नंबर ऑफ रिसोर्सेस कितने है उ कितने इंस्टेंस है ये सब कुछ हमें पता होता है ठीक है और उस पता होते हुए हमें सिस्टम को इस तरीके से शेड्यूल करना होता है स्केड्यूल करना होता है हमें अभी स्केड्यूल का मतलब यहां क्या हुआ कि हमें प्रोसेसेस पता है सारी ठीक है कितनी प्रोसेसेस ये पता है हमें रिसोर्सेस सारे पता है और रिसोर्सेस के इंस्टेंसस भी पता है तो और हमें करंट स्टेट भी पता है कि अभी कितने किने रिसोर्सेस किसकिस प्रोसेस को एलोकेटेड है तो हम ना क्या करना चाहते हैं हमारा डेंस के केस में हमारा टारगेट क्या है कि हम किस तरीके से शेड्यूल करें आगे स्केड्यूल करें प्रोसेसेस को एंड रिसोर्सेस को किस तरीके से एलोकेट करें कि जो हमारा सिस्टम है ना सिस्टम है वह सेफ स्टेट में रहे यानी कि सेफ स्टेट रहे हमारे सिस्टम की यही बोलू तो मैं मैं चाहता हूं कि हमारा सिस्टम जो है ना सेफ स्टेट में बना रहे ठीक है और सेफ स्टेट का मतलब क्या है यहां पे सेफ स्टेट का मतलब क्या है सेफ स्टेट का सिंपल सा मतलब है कि मेरे पास अभी जितने एलोकेटेड रिसोर्सेस है और जितने मैक्स रिसोर्सेस है जितनी प्रोसेसेस है इन सबको मिला के मैं इस तरीके से प्रोसेसेस को शेड्यूल कर पाऊं या ईच प्रोसेस को ईच रिसोर्स दे पाऊं कि एट द एंड मेरा पूरा सिस्टम जो है वो डेड लॉक फ्री रहे या फिर सारी प्रोसेसेस एग्जीक्यूट हो जाए विदाउट एनी डेड लॉक ठीक है तो ये ऐसा अगर कोई सिस्टम बन सकता है ऐसी कोई शेड्यूलिंग बन सकती है तो मैं उसको बोलता हूं कि सिस्टम मेरा सेफ स्टेट में और अनसेफ स्टेट क्या होता है इसका उल्टा इसका उल्टा मतलब कि ऐसा स्टेट ऐसे ऐसी कन्फ है सिस्टम की कि अगर अब एलोकेश आगे कुछ होती है तो मे बी डेडलॉक अकर हो जाएगा ठीक है यानी कि कोई भी प्रोसेस यानी कि ऐसी कंडीशन आ जाएगी जिसमें कि वो चारों जो नेसेसरी कंडीशन थी वो फुलफिल हो जाएंगी ठीक है तो एक बार नोट्स पे चलते हैं नोट्स में हमने देखा डेडलॉक अवॉइडेंस का मतलब है कि कर्नल को कुछ इंफॉर्मेशन प्रेजेंट है पहले से कि कितने रिसोर्सेस है मेरे पास ठीक है कितने करेंटली एलोकेटेड रिसोर्सेस है ठीक है प्रोसेसेस कितनी है सारी चीजें हमें पता है इन सब को मैंने यहां पे लिख दिया है ठीक है टू डिसाइड वेदर द करंट रिक्वेस्ट कैन बी सेटिस्फाई और डिले द सिस्टम मस्ट कंसीडर द रिसोर्स अवेलेबिलिटी रिसोर्स करेंटली एलोकेटेड टू ईच प्रोसेस एंड फ्यूचर रिक्वेस्ट यानी सारी चीजें मुझे पता होंगी तो मैं आगे स्टेप्स ले सकता हूं ठीक है सेफ स्टेट का मतलब क्या है स्टेट इज सेफ इफ द सिस्टम कैन एलोकेट रिसोर्सेस टू ईच प्रोसेस अप टू इट मैक्स यानी कि सारे प्रोसेस को जितने उसके रिसोर्सेस चाहिए हैं एग्जीक्यूट होने के लिए उसको सब मिल जाए इन सम ऑर्डर किसी ऑर्डर में एलोकेट कर पाए एंड स्टिल अवॉइड डेड लॉक यानी डेड लॉक को हम तब भी अवॉइड कर पाए या यानी कि मैं यह भी बोलता हूं कि कोई सिस्टम सेव स्टेट में तब होता है इफ देयर एजिस्ट ए सेफ सीक्वेंस यानी कि कोई एक सेफ सीक्वेंस है हमारे पास यानी कि मेरे पास मान लो p1 p2 p3 p4 बहुत सारी प्रोसेसेस है ऐसे ही तो मैं किस तरीके से इनको स्केड्यूल करूं कि हो सकता है मैं p1 को स्केड्यूल करूं फिर p3 को स्केड्यूल करूं फिर p4 को देन p2 को करता हूं तो मेरा डेड लॉक नहीं आता है बट इससे वाइस वर्सा अगर मैं p1 को पहले शेड्यूल करता हूं फिर p2 को फिर p3 को p4 करता हूं तो डेड लॉक आ जाता है ठीक है तो ये होती है हमारी सेफ स्टेट अनसेफ स्टेट क्या हो गई कि जिसके अंदर द ऑपरेटिव सिस्टम कैन नॉट प्रिवेंट प्रोसेसेस फ्रॉम रिक्वेस्टिंग रिसोर्स इन सच ए वे दैट एनी डेड लॉक अकर कोई डेड लॉक अकर हो जाता है अब भी थोड़ा सा कंफ्यूजन हो रही होगी सेव स्टेट क्या है अनसेफ स्टेट क्या है कि मैं क्या बात कर रहा हूं कि नंबर ऑफ प्रोसेसेस मेरे पास मेरे को पता है मैक्स नीड पता है ये सब तो इन सब को करने के लिए ना मैंने बोला कि सेफ स्टेट चाहिए मुझे सेफ स्टेट के लिए मुझे एक सेफ सीक्वेंस चाहिए और उस सेफ सीक्वेंस को ढूंढने के लिए ना एक एल्गोरिथम का यूज करते हैं जिका नाम है मेरा बैंकर्स एल्गोरिथम ठीक है तो इस पूरे सिनेरियो को डेड लॉक एविडेंस के पूरे सिनेरियो को हम एक एग्जांपल के साथ समझते हैं वो एग्जांपल ये रहा हमारे सामने तो जैसे मैं बोल रहा था अवॉइडेंस में हमें ये पता है नंबर ऑफ प्रोसेसेस कितनी है तो यहां देखो ये मेरा एक सिस्टम है इसके अंदर मुझे पता है नंबर ऑफ प्रोसेसेस मेरे पास फाइव प्रोसेसेस है अभी मेरे पास तीन रिसोर्सेस है ए बी सी ये कुछ भी हो सकते हैं ए बी सी रिसोर्सेस ठीक है हमने डिस्कस किया था मेमोरी हो सकती है सीपी हो सकते हैं फाइल्स हो सकती है लॉक्स हो सकते हैं एनीथिंग ठीक है मैक्स नीट इन ईच प्रोसेस की मैक्सिमम नीड क्या है टू एग्जीक्यूट उन पर्टिकुलर रिसोर्सेस के कितने इंस्टेंसस उसको चाहिए ठीक है और अवेलेबल कितने हैं मेरे पास और रिमेनिंग नीड कितनी है तो इस तरीके से मैं एक ब्लॉक एक टेबल से मैं पूरा समझता हूं डेड लॉक अवॉइडेंस कैसे हम करते हैं ठीक है सेफ स्टेट क्या होती है सेफ सीक्वेंस क्या होती है तो इस तरीके से चीजें होती है एग्जाम में भी बेसिकली आप क्वेश्चन आता होगा कि बैंकर एल्गोरिदम में हम बताओ कि इसकी सेफ सीक्वेंस क्या होगी सेफ सीक्वेंस का मतलब हो गया कि मैं किस तरीके से इनको शेड्यूल करूं किस तरीके से मैं इनके एलोकेशन को फुलफिल करूं कि मैं एक सेफ सीक्वेंस ले आऊं और अगर कि सिस्टम के अंदर एक सेफ सीक्वेंस अवेलेबल है तो मैं बोलता हूं कि वो पर्टिकुलर सिस्टम सेफ स्टेट में है अगर कोई सेफ सीक्वेंस नहीं है यानी कि एट द एंड ऐसा आता है कि मैं एलोकेशंस नहीं कर पाता हूं इस रिसोर्सेस के इंस्टेंट एग्जॉस्ट हो जाते हैं और तब भी मैं कोई भी ऐसी सीक्वेंस नहीं निकाल पाता हूं कि मेरी अ बेसिकली शेड्यूलिंग हो पाए चा पांचों प्रोसेसेस की तो मैं बोलता हूं कि ये सिस्टम जो है ये पर्टिकुलर सिस्टम अनसेफ है तो अभी देखते हैं कि ये पर्टिकुलर सिस्टम सेफ है या अनसेफ है इसके एग्जांपल देखते हैं तो सबसे पहले मैं बोलता हूं कि टोटल नंबर ऑफ रिसोर्सेस जैसे कि हमने बोला था कि टोटल नंबर ऑफ रिसोर्सेस भी अवेलेबल है मेरे पास सिस्टम के अंदर सारी इंफॉर्मेशन मेरे पास है तो टोटल रिसोर्सेस में बोल देता हूं a के मान लो 10 रिसोर्सेस हैं और बी के मेरे फाइव रिसोर्सेस है और सी के सेवन रिसोर्सेस हैं ठीक है तो अभी हम थोड़ा लाइन बाय लाइन चलते हैं जो एलोकेटेड का मतलब है ईच प्रोसेस को कितने रिसोर्सेस के इंस्टेंस एलोकेटेड है पहले से ही ठीक है मैक्स नीड का मतलब हुआ मैक्सिमम कितने चाहिए उसको ठीक है तो अभी हम देखते हैं कि एलोकेटेड में टोटल ऑलरेडी एलोकेटेड कितने हैं तो यार अवेलेबल निकालने के लिए मैं क्या करता हूं अवेलेबल निकालने के लिए मैं टोटल में से टोटल ऑलरेडी एलोकेटेड को माइनस कर दूंगा तो अगर मान लो 10 माइनस में 7 करता हूं 10 - 7 वुड बी 3 सिमिलरली 5 - 2 वुड बी 3 एंड 7 - 5 वुड बी 2 तो ये मेरे पास अवेलेबल रिसोर्सेस हो गए ठीक है और अब हम निकाल लेते हैं रिमेनिंग नीड ईच प्रोसेस के रिमेनिंग नीड कितनी है एलोकेटेड तो हमें पता है एलोकेटेड पता है तो रिमेनिंग में हम निकाल लेंगे मैक्स माइनस एलोकेट ड करके रिमेनिंग जल्दी से निकाल लेते हैं ये होगी 7 4 3 इसकी होगी 3 - 2 1 2 2 ठीक है इसकी होगी आपकी 600 क्योंकि इसकी दो मैक्स नीड थी और दो ही पहले से लोकेटेड है 2 माइट ट वड बी जीरो ठीक है उसके बाद हम इसकी निकाल लेते हैं 2 1 1 एंड इसकी होगी आपकी 53 1 तो ये मेरे पास मैक्स रिमेनिंग नीड होगई बेसिकली मैक्स नहीं रिमेनिंग नीड हो गई तो मैं लिख देता हूं यहां पे दोबारा से p1 p 2 p3 के रिमेनिंग नीड है p4 p5 अब आप ध्यान से देखो कि मेरे पास ये सारी रिमेनिंग नीड्स पड़ी हुई है ईच प्रोसेस की और अवेलेबल भी पड़ी हुई है तो अब मैं सीक्वेंस वाइज जाऊं सीक्वेंस वाइज जाऊ तो मैं किसको एलोकेट कर सकता हूं क्या मैं p1 को एलोकेशन दे सकता हूं अब हम निकालने की कोशिश कर रहे हैं कि क्या यहां पे सेफ सीक्वेंस है कि सेफ सीक्वेंस निकल पाएगी किस किस तरीके से शेड्यूल कर पाऊंगा कि डेड लॉग प्री ऑपरेशन हो पाए अगर मैं p1 को देखूंगा p1 को 743 चाहिए तो अवेलेबल कितनी है इसके इंस्टेंस थ्री अवेलेबल है तो इसको एलोकेशन में नहीं कर पाऊंगा क्या मैं p2 को एलोकेट कर सकता हूं p2 को एलोकेट कर सकता हूं क्योंकि p2 को वन चाहिए ए का इंस्टेंस a रिसोर्स के वन इंस्टेंस चाहिए a के थ्री अवेलेबल है मेरे पास तो मैं क्या करता हूं p2 को स्केड्यूल कर देता हूं सबसे पहले तो p2 को अगर मैं स्केड्यूल कर दूंगा p2 जब एक बार एग्जीक्यूशन इसकी कंप्लीट हो जाएगी कंप्लीट होने के बाद p2 को कितने रिसोर्सेस थे p2 के पास 200 ये रिसोर्सेस फ्री हो जाएंगे अब फ्री होने के बाद मैं क्या करूंगा मैं करूंगा 200 इसमें ऐड कर दूंगा तो अब अवेलेबल रिसोर्स कितने होंगे 5 3 2 इतने रिसोर्स अवेलेबल होंगे p2 की शेड्यूलिंग हो चुकी है ठीक है अब हम आते हैं कि नेक्स्ट हम किसको स्केड्यूल कर सकते हैं दोबारा से देखते हैं दोबारा से मान लो क्या मैं बेसिकली इसको स्केड्यूल कर सकता हूं p3 को सीक्वेंस वाइ चलते हैं क्या मैं p3 को स्केड्यूल कर सकता हूं p3 को स्केड्यूल में नहीं कर सकता ठीक है p4 को स्केड्यूल कर सकता हूं यस मैं p4 को स्केड्यूल कर सकता हूं तो जल्दी से p4 को भी स्केड्यूल कर देते हैं p4 को मैंने स्केड्यूल कर दिया p4 शेड्यूलिंग प आ गया p4 ने जितने रिसोर्सेस थे 21 वो सब बेसिकली फ्री हो जाएंगे तो 5 प् 2 7 4 3 इतने सोर्सेस आ जाएंगे मेरे पास 7 43 ठीक है अब उसके बाद अब मैं आता हूं कि क्या नेक्स्ट अब मेरे पास जितने अवेलेबल रिसोर्सेस है इससे मैं किसको स्केड्यूल कर सकता हूं 743 इससे मैं क्या मैं p5 को स्केड्यूल कर सकता हूं क्या मैं p5 को स्केड कर सकता हूं यस p5 को स्केड्यूल कर सकता हूं तो इसको भी स्केड्यूल कर देते हैं p5 को स्केड्यूल कर देते हैं p5 को स्केड्यूल करने के बाद अब हम पास रिसोर्सेस कितने अवेलेबल हो जाएंगे वहां पर हो जाएंगे 74 2 प् 3 5 745 इतने ो व पर अवेलेबल हो जाएंगे अब उसके बाद नेक्स्ट नेक्स्ट हम देखते हैं अब वापस से एक बार देखते हैं क्या मैं p1 को स्केड्यूल कर सकता हूं अब यस मैं p1 को शेड्यूल कर सकता हूं मेरे पास आयन रिसोर्सेस अवेलेबल है तो p1 को भी शेड्यूल कर देते हैं p1 को हमने शेड्यूल कर दिया p1 के पास जितने एलोकेटेड रिसोर्सेस थे p1 फ्री कर देगा तो मेरे पास य कितने रिसोर्सेस आ जाएंगे 7 फ फ 755 इतने रिसोर्सेस मेरे पास आ जाएंगे अब उसके बाद p1 जब हो गया अब पास फाइनल p3 पड़ा है क्या p3 हो सकता है स्केड्यूल p3 भी स्केड्यूल हो सकता है ठीक है तो इसके बाद मैं p3 को शेडल कर दूंगा और अब आप ध्यान से देखो p3 जितने रिसोर्सेस को फ्री करेगा तो पा टोटल रिसोर्स कितने आ जाएंगे 10 5 और सेन तो अब देखो जितने रिसोर्सेस मेरे पास टोटल अवेलेबल थे टोटल थे मेरे पास अब जो सारी प्रोसेस को स्केड्यूल करने के बाद अवेलेबल भी टोटल जितने हो गए हैं तो इसका मतलब कि मैं बोल सकता हूं कि मैंने स्केड्यूल कर दी है मेरे को एक सेफ सीक्वेंस मिल गई है यानी कि यह पर्टिकुलर जो बेसिकली सिनेरियो था यह एक सेव स्टेट था यानी कि यहां पर मैं डेड लॉग को अवॉइड कर सकता हूं ये एक सेफ स्टेट है तोय बैंकर्स एल्गोरिथम डेड लॉग के अवॉइडेंस एल्गोरिथम है ये इस तरीके से वर्क करती है तो ये मेरी हो गई सेफ स्टेट ठीक है अब अनसेफ स्टेट कैसे हो सकती है अब मान लो लास्ट ला जो शेड्यूल हुई थी लास्ट हमारी p3 शेड्यूल हुई थी राइट p3 p3 को सिक्स रिसोर्स चाहिए थे अब मान लो p3 को यहां पर सिक्स की जगह p3 को सिक्स की जगह मान लो एट रिसोर्स चाहिए होते ठीक है बट यहां पर एंड में देखो मेरे पास कितने बचे थे सेवन राइट सेवन बचे थे मेरे पास अब सेन बचे थे तो इससे मैं फुलफिल नहीं कर पाता तो p3 स्केड्यूल नहीं हो पाती अब p3 क्योंकि स्केड्यूल नहीं होती तो मैं बोल देता कि इन सबको मैं स्केड्यूल नहीं कर पा रहा हूं इन सब कोडल नहीं कर पा रहा हूं तो ये एक अनसेफ स्टेट हुई इसको मतलब मैं बोल देता ये अनसेफ स्टेट हो जाती अनसेफ स्टेट हो जाती ठीक है तो ये इस तरीके से वर्क करता है ये हमारी बैंकर्स एल्गोरिथम डेड लॉक अवॉइडेंस के एल्गोरिदम है ठीक है जिसके अंदर मैं क्या करता हूं हर बेसिकली मैं देखता हूं अवेलेबल रिसोर्सेस के हिसाब से कि क्या मैं किसी की रिमेनिंग नीड को फुलफिल कर सकता हूं अगर मैं किसी की रिम नीड को फुलफिल कर सकता हूं तो मैं उसको स्केड्यूल कर देता हूं स्केड्यूल करने के बाद मैं ऐसे आगे बढ़ता रहता हूं बढ़ता रहता हूं अगर मेरे को ऐसा मिलता है कि कोई पर्टिकुलर प्रोसेस या फिर मैं एक पॉइंट आता है कि जहां पर मैं फदर शेड्यूलिंग नहीं कर पाता हूं या फिर फदर जो रिसोर्सेस की रिमेनिंग नीड है उसको फुलफिल नहीं कर पाता हूं तो उस केस में बोल देता हूं कि यह पर्टिकुलर सिस्टम जो है इसके अंदर एक अनसेफ स्टेट मौजूद है यानी कि यहां पर डेड लॉक हो सकता है ठीक है तो यह मेरी डेड लॉक के अवॉइडेंस की एल्गोरिथम हो गई जिसको मैं बोलता हूं बैंकर एल्गोरिथम ठीक है अब हम नेक्स्ट आते हैं डेड लॉक डिटेक्शन के बारे में पर डेडल डिटेक्शन के बारे में डिस्कस करने से पहले बता देता हूं डेड लॉक अवॉइडेंस के केस में ऐसे कोई कोई इंटरव्यू में आपका ऐसे कोई नहीं पूछता कि डेड लॉक बैंकर एल्गोरिथम क्या है मुझे बेसिकली एग्जांपल के साथ सॉल्व करके बताओ ऐसा कोई नहीं पूछता सिंपली पूछा जा सकता है कि डेडलॉक अवॉइडेंस क्या होती है ठीक है उसमें बेसिकली क्याक चीजें एज्यूम करता हूं मैं जिसके अंदर बताया कि हम ये सारी चीज बेसिकली पता होती है एलोकेटेड पता है हम मैक्स नीड पता है ठीक है कितनी प्रोसेसस है पता है ईच रिसोर्स के इंस्टेंसस पता है ठीक है और डेड ल अड के लिए कौन सेम यूज होती है ये सब क्वेश्चन आपसे पूछा जा सकता है ठीक है ऐसे कोई सॉल्व क्वेश्चन आपसे नहीं कराएगा ये एग्जाम में ही आता है आपके जो यूनिवर्सिटी एगजाम होते हैं ठीक है अब नेक्स्ट हम डिस्कस करते हैं डेड लॉक डिटेक्शन डेड लॉक डिटेक्शन का क्या मतलब है डेड लॉक डिटेक्शन का मतलब क्या होता है डेड लॉक डिटेक्शन का मतलब है कि देखो अभी हमने डिस्कस किया था डेड लॉक हैंडलिंग के अंदर हम सबसे पहले डेडलॉक प्रिवेंशन ए अवॉइडेंस यूज करते हैं उसके बाद हम डिटेक्ट करते हैं कि मान लो मैं प्रिवेंशन किसी सिस्टम के अंदर प्रिवेंशन एरिम भी इंप्लीमेंटेड नहीं है यानी उन्होने प्रिवेंशन भी इंप्लीमेंट नहीं की किसी ओस के अंदर बेसिकली अवॉइडेंस इंप्लीमेंट नहीं करी तो तीसरा आता है कि मैं सिस्टम को डेडलॉक के अंदर जाने दूं सिस्टम को बोल दूं कि तू भाई डेड लॉक में जा और जाने के बाद मैं बेसिकली किसी एल्गोरिदम से डिटेक्ट करने की कोशिश करूं कि क्या सिस्टम डेड लॉक में है अगर सिस्टम डेड लॉक में है तो मैं उसको रिकवर करू इसका मतलब क्या हुआ सीधा ड्र करते हैं कि मेरे पास सिस्टम है सिस्टम के अंदर मैं बोल सकता हूं कोई एल्गोरिथम यूज होगी एल्गोरिथम यूज होगी जो कि डिटेक्ट करेगी कि सिस्टम डेड लॉक में है कि नहीं अगर डेडलॉक में है सिस्टम तो हम रिकवरी कर देंगे अगर डेड लॉक में नहीं है तो कुछ इंटरवल के बाद इस एल्गोरिथम को फिर से रन करेंगे ठीक है इसका मतलब डेड लॉ डिटेक्शन की एक एल्गोरिथम आपने सिस्टम में इंप्लीमेंट करी होगी वो एल्गोरिदम क्या करेगी हर थोड़ी-थोड़ी देर में रन होती रहेगी कुछ इंटरवल सेट होगा उसमें ठीक है कुछ इंटरवल में वो रन होती रहेगी रन होने के बाद वो चेक करेगी अगर सिस्टम डेड लॉक में है अगर है तो हम रिकवरी के मैकेनिज्म यूज करेंगे अगर नहीं है तो हम बेसिकली अ बेसिकली चले जाएंगे वापस से कुछ इंटरवल के बाद फिर से एल्गोरिथम को रन करते रहेंगे तो इस तरीके से डेड लो डिटेक्शन एल्गोरिथम इंप्लीमेंट होती है ठीक है किन सिस्टम में इंप्लीमेंट होती है जहां पर डेड लॉक प्रिवेंशन और डेड लॉक अवॉइडेंस दोनों ही नहीं है तो हम डिटेक्शन और रिकवरी वाला मेथड यूज करेंगे डेड लॉक में जाने देंगे सिस्टम को फिर रिकवर कराएंगे तो इसके एग्जांपल होते हैं सीधा नोट्स प देखते हैं इसके क्याक तरीके होते हैं तो यहां पर लिखा है सिस्टम हैवेंट इंप्लीमेंटेड डेड लॉक प्रिवेंशन डेडलॉक डेंस टेक्निक दे मे एंप्लॉय डेडलॉक डिटेक्शन रिकवरी मेथड सबसे पहला कि सिंगल इंस्टेंस ऑफ ईच रिसोर्स टाइप है तो हम वेट फॉर ग्राफ का यूज करते हैं अभी वेट फॉर ग्राफ क्या होता है सबसे पहला मेथड था कि सिंगल इंस्टेंस ऑफ इंस्टेंस ऑफ ईच रिसोर्स इसमें क्या करते हैं जो हमने रिसोर्स एलोकेशन ग्राफ पढ़ा था आरजी उस उसी का लगभग हम यूज कर रहे हैं वह किस तरीके से एल्गोरिथम इंप्लीमेंट होती है यहां पर सबसे बड़ी चीज है कि हर रिसोर्स का एक ही इंस्टेंस है तो इस केस को मैं ऐसे ड्र कर सकता हूं मालूम p1 है और यह बेसिकली r1 है ए r2 है यह p2 है ठीक है p1 को r1 चाहिए इसको रिक्वेस्ट कर रहा है और r2 उसको पहले से एलोकेटेड है p2 r2 को बेसिकली रिक्वेस्ट कर रहा है और r1 उसको पहले सेलो टेड है ठीक है ये साइकिल बन गई ये डेड लॉक है तो इसमें क्या करता है रिसोर्स एलोकेशन ग्राफ का यूज करके वो एक इसी का वि सोर्स एलोकेशन ग्राफ का यूज करके एक वेट फॉर ग्राफ मैंने एक नाम दे दिया वेट फॉर ग्राफ मेथड का यूज होता है ठीक है रिसोर्स एलोकेशन ग्राफ जो है उसी का ही एक वर्जन लगा लो इसको इसमें हम क्या करते हैं कि रिसोर्स एलोकेशन ग्राफ से जितनी रिसोर्सेस की एज है ना रिसोर्सेस की जो एज नहीं रिसोर्सेस की जो वर्टिसेज है बेसिकली इनको हम हटा देते हैं और जितनी भी प्रोसेसेस की वर्टिसेज है उनको मैं मर्ज कर देता हूं यानी कि यह पर्टिकुलर जो पूरा सिनेरियो है इसको मैं रिप्रेजेंट कर देता हूं ऐसे अगर मैं r1 r2 को रिमूव कर दूं तो ऐसे कुछ बन जाएगा p1 p2 यह बेसिकली इस पे डिपेंडेंसी इसकी यह इसकी डिपेंडेंसी इस पे ठीक है ऐसा कुछ बना दिया मैंने तो यह रिसोर्स एलोकेशन ग्राफ को ही मैंने कन्वर्ट कर दिया एक वेट फॉर ग्राफ ठीक है अब वेट फॉर ग्राफ मैं इसे क्यों बोल रहा हूं क्योंकि अब इससे देखो मैं क्या बेसिकली क्या कंक्लूजन ड्र कर सकता हूं मैं बोल सकता हूं कि p1 जो है वो एक ऐसे रिसोर्स का वेट कर रहा है p1 जो है वह ऐसे रिसोर्स का वेट कर रहा है जो कि हेल्ड बाय है प2 के और प2 जो है वो एक ऐसे रिसोर्स का यूज कर रहा है जो कि हेल्ड बाय है p1 के तो अगर यह वाली एल्गोरिथम बोलती है वेट फॉर ग्राफ वा एल्गोरिथम बोलती है अगर वेट फॉर ग्राफ बनाने के बाद वेट फॉर ग्राफ बनाने के बाद अगर कोई साइकिल में मिल जाती है मुझे साइकिल मिल जाती है तो मैं बोल देता हूं डेड लॉक है अगर साइकिल नहीं मिलती है मुझे तो मैं बोल देता हूं डेड लॉग नहीं है ठीक है तो सिंपल सी एल्गोरिथम है कि जो भी रिसोर्स एलोकेशन ग्राफ है उसमें से मैं यह रिसोर्सेस की वर्टस को हटा देता हूं हटाने के बाद मैं यह बना देता हूं यह वेट फॉर ग्राफ बोलते हैं इसको मैं यानी कि रिसोर्स एलोकेशन ग्राफ से ही वेट फ ग्राफ बनता है वेट ग्राफ में अगर कोई साइकिल है तो बोल देता हूं डेड लॉक है वरना नहीं है यह बस वैलिड है के लिए ध्यान रखना सिंगल के लिए वैलिड है दूसरा आता है मेरा मल्टीपल इंस्टेंस मल्टीपल इंस्टेंसस में भी यार मैं क्या करता हूं सिंपली बैंकर एल्गोरिथम का यूज कर लेता हूं ठीक है तो बैंक एल्गोरिथम का यूज कर सकता हूं तो बोल सकता हूं कि इसमें की बैंक एल्गोरिदम डेडल डिटेक्शन अम भी हैम में अगर मान लो कोई मेरे पास से सीक्वेंस मिल जाती है सेफ सीक्वेंस अवेलेबल है तो मैं बोल देता हूं नो डेडलॉक अगर नो सेफ सीक्वेंस तो मैं बोल देता हूं डेड लॉक डिटेक्टेड तो बोल सता हूं कि बैंक एल्गोरिदम का ही यूज करके बैक एल्गोरिथम का ही यूज करके मैं मल्टीपल के केस में डेड ल डिटेक्शन कर लेता हूं ठीक है अब मान लो डेड ल डिटेक्शन तो हो गई है डेड लो डिटेक्शन तो हो गई है पर मान लो सिस्टम के अंदर कुछ इस तरीके से एल्गोरिथम लिखी हुई है जो हमने य डिस्कस किया सिस्टम में कैसे लिखा हुआ है कि सिस्टम में एल्गोरिथम लिखी हुई है एल्गोरिथम टाइम टू टाइम चेक करती है कि डेड लॉक है कि नहीं अगर डेड लॉक है तो हम रिकवरी मैकेनिज्म कॉल कर देते हैं और रिकवरी मैकेनिज्म किस तरीके से होते हैं वो देखते हैं तो डेड लॉग रिकवरी के दो मेथड होते हैं पहला प्रोसेस टर्मिनेशन दूसरा रिसोर्स प्रिम ठीक है प्रोसेस टर्मिनेशन का मतलब क्या है कि सिंपली जो जो प्रोसेसेस है जो डेड लॉग में इवोल्ट है उसको मैं टर्मिनेट करता हूं इसके इसके भी दो वेरिएंट्स हो सकते हैं कि अबाउट और डेड लॉग ऑल डेड लॉग प्रोसेसेस यानी जितने भी प्रोसेसेस डेड लॉक के अंदर है मान लो जैसे ये सिस्टम डेड लॉक का बन रहा था आपका ये सिस्टम आपका डेड लॉक का था तो p1 p2 को मैं टर्मिनेट कर दूं फोर्सफुली किल कर दूं एक ये तरीका हो सकता है ठीक है फोर्सफुली किल करने का दूसरा तरीका हो सकता है अबाउट वन प्रोसेस एट टाइम डेड लॉक साइकिल इज एलिमिनेटेड इसका मतलब क्या है कि मैं अगर मैं p1 प2 को साथ में साथ में किल कर देता हूं तो डेफिनेटली मैं बोल सकता हूं कि डेड लॉग तो रिमूव हो ही जाएगा सिस्टम से बट मैं ऐसा भी तो कुछ कर सकता हूं कि p1 प2 को ना बेसिकली साथ में दोनों को ही ना किल करके मैं इनमें से जिसकी लो प्रायोरिटी है बेसिकली ऐसा कुछ मैकेनिज्म डाल देता हूं जिनकी लो प्रायोरिटी है उसको किल कर देता हूं मान लो मैं बोल देता हूं कि p2 की लो प्रायोरिटी है p2 की लो प्रायोरिटी है तो मैं इसको किल कर दूंगा अगर p2 किल हो जाएगा तो ये r1 को फ्री कर देगा r1 को फ्री कर देगा तो p1 को r1 मिल जाएगा पव को आरव मिल जाएगा तो डेड लॉग रिमूव हो जाएगा ठीक है यह बोल सकता हूं तो मैं बोल सकता हूं कि यह वाला मेथड तो बहुत ज्यादा हार्श है है ना एकदम स्ट्रेट फॉरवर्ड है यह मेथड थोड़ा सा फिर भी साउंड अच्छा कर रहा है ठीक है दूसरा है रिसोर्स प्रीमन टू एलिमिनेट डेड लॉग व सक्सेसफुली प्रीम सम रिसोर्सेस फ्रॉम प्रोसेसेस एंड गिव द रिसोर्सेस टू द अदर प्रोसेस अटिल डी साइकल सिंपली प्रोसेस टशन टाइप का ही है कि मैं क्या करूंगा सिंपली सो उसको प्रिएंट करता चला जाऊंगा मान लो r सेम सेम केस लेते हैं p2 की कम प्रायरिटी है r1 जो है p2 को एलोकेटेड है तो क्योंकि p2 की कम प्रायोरिटी थी तो और p2 की कम प्रायोरिटी थी और p2 जो है खुद r2 को बेसिकली किसी और रिसोर्स प वेट कर रहा है तो मैं इस रिसोर्स को यानी p1 को प्रीमप्टिव को अगर मैं प्रीमप्टिंग यहां से और r1 फ्री हो जाएगा तो p1 को r1 मिल जाएगा ठीक है तो इस तरीके से रिसोर्स प्रीमन के तरीके से या फिर प्रोसेस टर्मिनेशन से मैं डेड लॉक को रिकवर कर सकता हूं यानी डेड लॉक को रिकवर नहीं सिस्टम को डेड लॉक से रिकवर कर सकता हूं तो यह मेरा तरीके थे दो डेडलॉक रिकवरी के और बेसिकली डिटेक्शन में हमने पढ़ा सिंगल इंस्टेंस वेट फॉर ग्राफ मेथड का यूज करते हैं मल्टीपल में बैंकर यूज कर लेते हैं सेफ सीक्वेंस हुई तो डेड लॉक नहीं है सेफ सीक्वेंस नहीं हुई तो डेड लॉक है यह मान लेते हैं हम तो इसी के साथ डेड लॉक यहां पर खत्म होता है ठीक है और तो मिलते हैं किसी नेक्स्ट लेक्चर पे बाय हेलो जी कैसे सार लक्ष तो हम आ चुके हैं ओएस के लेक्चर नंबर 23 पर पिछले कुछ लेक्चर से हम डिस्कस कर रहे थे कंक्रेंस के बारे में ठीक है हमने थ्रेड्स के बारे में पढ़ा मल्टी थ्रेडिंग के बारे में थड़ा मल्टी थ्रेडिंग की वजह से थ्रेड सिंक्रोनाइजेशन से क्या इशू आता है क्या बग आता है डेड लॉक के बारे में पढ़ा तो बेसिकली हमें मेजर मेजर आईडिया हो गया कि हमारे पास थ्रेड्स तो हम क्रिएट कर लेते हैं किसी प्रोसेस की पर मेजर प्रॉब्लम ये आती है कि हमें उनको सिंक्रोनाइज भी करना पड़ता है कुछ क्रिटिकल सेक्शंस पे ठीक है तो ये हम पिछली कुछ वीडियो से डिस्कस कर रहे तो चलो यार इस वीडियो में मैंने सोचा है कि कुछ क्वेश्चंस डिस्कस करते हैं बेसिकली सॉल्व करते हैं क्वेश्चन किसी भी कोर्स में आपको क्वेश्चन सॉल्व करके दिखाया नहीं जाएगा हम क्वेश्चन को सॉल्व करेंगे लीड कोड प्लेटफॉर्म पर करेंगे उसे सबमिट करके देखेंगे और देखेंगे बेसिकली कैसे हम थ्रेड सिंक्रोनाइजेशन की प्रॉब्लम्स को सॉल्व करते हैं कैसे थ्रेड को सिंक्रोनाइज करते हैं ठीक है तो तीन प्रॉब्लम्स हम डिस्कस करेंगे थ्री प्रॉब्लम्स ठीक है तो सबसे पहली प्रॉब्लम को देख लेते हैं एक बार ठीक है सबसे पहली प्रॉब्लम हमारी प्रिंट ऑर्डर नाम से है लीड कोड प आपको मिल जाएगी ठीक है तो चलो देखते हैं तो ये हमारी कुछ प्रॉब्लम है यार इजी लेवल प्रॉब्लम है ठीक है तो सबसे पहले इजी से शुरुआत करते हैं तो इसमें कुछ नहीं है ये बोल रहा है कि हमारे पास मान लो कि एक क्लास है ठीक है मेरे पास एक क्लास है जिसमें फर्स्ट सेकंड थर्ड नाम से आप एक बार वीडियो को पॉज करो पॉज करके जल्दी से क्वेश्चन पढ़ लो ठीक है मैं जल्दी से समझाता हूं क्वेश्चन में है क्या तो हमारे पास एक क्लास है फू नाम से उसके अंदर फर्स्ट सेकंड थर्ड नाम से तीन फंक्शंस है फंक्शन कुछ नहीं कर रहे सिंपल प्रिंट कर रहे हैं ठीक है उसके अलावा कुछ नहीं तो क्या कह रहा है कि सेम इंस्टेंस ऑफ फू विल बी पास्ड टू थ्री डिफरेंट थ्रेड्स तीन डिफरेंट थ्रेड्स को हम देंगे ठीक है यह सिंपल क्वेश्चन नहीं है ठीक है सिंपल जो आप डीएसए के क्वेश्चंस करते हो सिंपल एक ही थ्रेड से कॉल हो रहे होते हैं ठीक है बेसिकली एक ही प्रोसेस होती है उसको कॉल करते सीक्वेंशियल चल जाती है इसके अंदर इसके तीन इंस्टेंस बनाए जा रहे हैं थ्री थ्रेड्स बनाई जा रही है और तीन थ्रेड्स को अलग-अलग ये फर्स्ट सेकंड थर्ड करके फंक्शन दिया जाएगा ठीक है तो हमें क्या करना है एक मैकेनिज्म डिजाइन करना है जिसकी मदद से हम इंश्योर कर पाएं कि फर्स्ट सबसे पहले एक्यूट हो फिर सेकंड एग्जीक्यूट हो लास्ट में थर्ड एग्जीक्यूट हो ठीक है अब बोलो तो बहुत सिंपल है सिंपल नहीं है कैसे पहले प्रॉब्लम स्टेटमेंट को लिखता हूं मैं यहां पे कि मेरे पास एक फू क्लास है इसका कोई ऑब्जेक्ट बनेगा ठीक है ऑब्जेक्ट मान लो फू बन करके मैंने एक ऑब्जेक्ट बना दिया ठीक है अब मैं क्या कर रहा हूं इसके इससे अब मैं तीन थ्रेड्स बना रहा हूं टीव टीट t3 ठीक है अब तीनों थ्रेड्स प है ना इसी फू का फू वन डॉट फर्स्ट कॉल करूंगा पहले इससे फू वन डॉट सेकंड क कॉल करूंगा फूल बन गया ये तो ठीक है इससे मैं फूल डॉट फू वन डॉट थर्ड कल कर लूंगा ठीक है अब क्योंकि थ्री डिफरेंट थ्रेड्स में ब्रेक हो चुके हैं राइट यह थ्री डिफरेंट थ्रेड्स में ब्रेक हो चुके हैं तो इससे क्या होगा अब ये थ्रेड इंडिपेंडेंटली स्केड्यूल होंगे एज्यूम करते हैं कि मेरे पास तीन ही सीपीयू थे ठीक है तीन सीपीयू थे 1 2 3 तीन सीपीयू थे तीनों सीपीय को ये उसी एट t = 0 पे मिल जाएंगे एज्यूम कर लेता हूं t = 0 पे मिल गए मिलने के बाद क्या होगा तीनों एक साथ बेसिकली मुझे नहीं पता कि सबसे पहले ये प्रिंट हो जाएगा या ये प्रिंट हो जाएगा या ये प्रिंट हो जाएगा मुझे नहीं पता ठीक है मुझे नहीं पता तो बेसिकली मुझे क्या करना है मुझे इंश्योर करना है जब फर्स्ट फर्स्ट प्रिंट हो ना उसके बाद ही सेकंड प्रिंट हो जब सेकंड प्रिंट हो और फिजिकली फर्स्ट प्रिंट हो चुका हो सेकंड प्रिंट हो चुका हो उसके बाद ही थर्ड प्रिंट हो ऐसा ना हो जाए थर्ड पहले आउटपुट आ जाए ठीक है अभ एक काम करते हैं कुछ समझ अगर आपको थोड़ा सा कंफ्यूजन हो रही है इसको मैं सिंपली रन कर देता हूं देखो इधर स्क्रीन पर आते हैं वापस से अगर मैं इसे सिंपली रन कर देता हूं तो देखो क्या होता है लिखा तो अभी भी है प्रिंट वन प्रिंट सेकंड प्रिंट थर्ड यह बाय चांस फर्स्ट पहले प्रिंट हो गया दोबारा चला के देखते हैं अब देखो पहले मैंने रन किया फर्स्ट पहले प्रिंट हो गया था सेकंड पहले प्रिंट हो गया थर्ड अब क्या हो रहा है कि पहले फर्स्ट अब थर्ड और सेकंड आउटपुट आ रही है एक्सपेक्टेड क्या बोल रहा है फर्स्ट सेकंड थर्ड ये ऐसा हो क्यों रहा है क्योंकि तीनों अलग-अलग थ्रेड्स हैं और तीनों पैरेलली चल रही है ठीक है मुझे नहीं पता कौन सी थ्रेड को पहले मौका मिल जाएगा और वह सी आउट कर देगी मुझे नहीं पता ठीक है तो हमारा यहां काम क्या है कि हम चाहते हैं t1 पहले एग्जीक्यूट हो यानी कि t1 को पहले मौका मिले t2 को बाद में मौका मिले फिर t3 को मौका मिले तो इसको करने का क्या तरीका हो सकता है ठीक है हमने पढ़ा था लॉक्स के बारे में ठीक है लॉक्स के बारे में और लॉक्स के साथ ही हमने कंडीशनल वेरिएबल के बारे में पढ़ा था राइट कंडीशनल वेरिएबल कंडीशनल वेरिएबल करता क्या था कि किसी एक पॉइंट पर किसी एक कंडीशन पर बेसिकली हम वेट करेंगे और दूसरी थ्रेड उस कंडीशन को ट्रू करेगी और फिर उसके बाद हम आगे बढ़ जाएंगे ऐसा ही कुछ था अगर आपको कंफ्यूजन हो रही है तो आप एक बार कंडीशन वेरिएबल वाली वीडियो एक बार रिवाइज कर लो तो इसका क्या सलूशन दूंगा मैं इसका सलूशन कुछ ऐसा ही देना चाहूंगा मैं कि सबसे पहले तो सबसे पहले मैं क्या करूंगा मैं चाहता हूं कि फर्स्ट प्रिंट हो जाए फर्स्ट प्रिंट होने के लिए मुझे यह प्रिंट फर्स्ट वाला जो फंक्शन है पहले कॉल कर यानी t1 को पहले एग्जीक्यूट कराना है टी व को पहले एग्जीक्यूट कराना है उसके बाद मैं चाहूंगा कि वन फर्स्ट इ प्रिंटेड यानी कि फर्स्ट इ प्रिंटेड एज इन की सस फर्स्ट इ प्रिंटेड तो मैं ट एग्जीक्यूट करा दूं तो क्या ऐसा दिमाग में आ रहा है आपके कि हम क्या करेंगे कि t1 से ऐसा कुछ काम कराएंगे ऐसी कंडीशन बेसिकली ट्रू कराएंगे t2 शायद वेट कर रहा होगा और उस वेट वो वेटिंग जब खत्म होगी वो कब खत्म होगी जब t1 इसको नोटिफाई कर देगा बेसिकली t2 क्या करेगा वेट करेगा किसी कंडीशन पर और यह जो कंडीशन होगी इसको यह t1 जो है ट्रू करेगी आफ्टर प्रिंटिंग फर्स्ट कंफ्यूजन हो रही होगी एक बार सलूशन लिखता हूं मैं उसके बाद डिस्कस करते हैं हम क्या करेंगे पहले टेक्स डिक्लेयर कर करेंगे ए नाम से फिर एक कंडीशन डिक्लेयर करेंगे देखो सिंटेक्स पे ज्यादा नहीं जाएंगे हम ठीक है सिंटेक्स हमारा यहां पे कोई मोटिव नहीं है मैं आपको डीए से नहीं पढ़ा रहा हूं हम क्या करेंगे सिर्फ कंक्रेंस के बारे में समझेंगे कि बेसिकली कैसे इस क्वेश्चन को हम सॉल्व कर सकते हैं ठीक है कैसे थ्रेड्स को सिंक्रोनाइज कर सकते हैं मेथड अलग-अलग हो सकता है पाइथन में कुछ और मेथड होगा सिंटेक्स पे नहीं जा रहे हैं हम ठीक है तो अभी हम c+ प् प फोकस कर रहे हैं ठीक है चलो तो ये यार हमारा सॉल्यूशन टाइप हो गया ठीक है सॉल्यूशन को समझते हैं फिर उसके बाद इसको सबमिट करते हैं ठीक है चलिए तो यार ये सॉल्यूशन है हमारा ठीक है अब ये कैसे वर्क कर रहा है हमने क्या करा एक टेक्स डिक्लेयर करा है ठीक है एक कंडीशन डिक्लेयर करी है और हमने एक टर्न वेरिएबल ले लिया है टर्न वेरिएबल ये डिसाइड करेगा ठीक है ये बेसिकली डिसाइड करेगा टर्न कि किसकी टर्न होगी कौन सी थ्रेड की टर्न होगी ठीक है इनिशियली हम क्या चाहते हैं इनिशियली हम चाहते हैं कि फर्स्ट प्रिंट हो जाए तो मैंने क्या करा फर्स्ट के अंदर हमने कुछ ऐसी कंडीशंस नहीं डाली है ठीक है तो अभी लिख देते हैं हम t1 थ्रेड जो है सीधा इसे कॉल करेगी t2 थ्रेड सीधा इसे कॉल करेगी और ये एज्यूम करो ये कंक्रेंस होगा ठीक है तीनों थ्रेड्स कंकर शूट होएगी तो देखो कैसे वर्क होएगा तो जब t1 सबसे पहले स्केड्यूल हुई मान लो t1 सबसे पहले आई यहां पे ठीक है t1 जब आएगी यहां पे तो क्या करेगी पहले प्रिंट फर्स्ट कर देगी फर्स्ट को प्रिंट कर देगी ठीक है टर्न जीरो से पहले इलाज था ठीक है यह दिमाग में रखना हमने क्या करा टर्न को वन कर दिया ठीक है और सीब पर नोटिफाई कॉल कर दिया अब ये सीबी का नोटिफाई कैसे काम करेगा वो देखते हैं अब अजूम करते हैं कि थर्ड पे बेसिकली सी आया थर्ड क्या कर रहा है थर्ड क्या कर रहा है थर्ड सब कंक्रेंस चल रहा है ये दिमाग में रखना ठीक है थर्ड क्या कर रहा है बेसिकली हमने यहां पे इसको लॉक किया लॉक करने के बाद हमने एक वाई लूप लिखा हुआ है ध्यान दो इस पे ये क्या कह रहा है कि वाइल टर्न इज नॉट इक्वल टू टू जब तक टर्न टू नहीं हो जाता तब तक हम वेट करते रहेंगे cv2 यस 0 इज नॉट इक्वल टूटू ये ट्रू हो जाएगा और ये c c ड वेट पे जाके वेट करने लग जाएगा ठीक है सिमिलरली इस थ्रेड पे क्या होगा कि टर्न क्योंकि स्टार्टिंग में जीरो था तो जीरो था तो क्या करेगा रो इज नॉट इक्वल टू 1 ये भी ट्रू हो जाएगा और सी भी डॉट वेट पे वेट करेगा तो स्टार्टिंग के इंस्टेंस प क्या होगा ये तो बेसिकली इसको एग्जीक्यूट कर रहा होगा ठीक है t1 एग्जीक्यूट कर रहा होगा पर t2 क्या करेगा t2 दोनों ये वेट प वेट प बैठे होंगे दोनों ही वेट कर रहे होंगे अब देखो जैसे ही फर्स्ट थ्रेड ने सीवी डॉट नोटिफाई करा तो हमने क्या करा इस कंडीशन वेरिएबल पे नोटिफाई कॉल कर दिया नोटिफाई कॉल करने के बाद क्या होगा अब वह फिर से यहां पर इसको अन बेसिकली लॉक करेगा लॉक करने के बाद वापस से इस वायल लूप को एग्जीक्यूट करेगा और टर्न की कंडीशन को चेक करेगा ठीक है अभी तक यहां वेट कर रहा था अभी तक यहां पे वेट कर रहा था पर वेट नहीं कर रहा वेट ओवर हुआ वापस टर्न को चेक करेगा अब टर्न क्योंकि वन हो चुका है ठीक है तो यह वाली जो कंडीशन है व इज नॉट इक्वल टूव ये हो जाएगी फॉल्स और फॉल्स होने के बाद मैं इस वाइल लूप से व बाहर आ जाऊंगा ठीक है तो देख रहे हो कैसे टर्न का वेरिएबल का यूज करके टर्न वेरिएबल का यूज करके कैसे मैं सिंक्रोनाइज कर रहा हूं चीजों को ठीक है तो अब ये बाहर आ जाएगा अब आप बोलोगे ये बाहर आ गया ये बाहर आएगा कि नहीं यानी अब ये देखते हैं क्या t3 बाहर आई है t3 बाहर आएगी टर्न की वैल्यू वन हो चुकी थी इसने वन कर दी थी तो अब जब यहां पे भी नोटिफाई नोटिफाई ध्यान रखो नोटिफाई ऑल किया हमने नोटिफाई ऑल करने के बाद यहां पर जब ये बेसिकली वेट से बाहर आएगा तो वो देखेगा कि वन इज नॉट इक्वल टूटू ठीक है तो ये वैल्यू ट्रू हो जाएगी बेसिकली तो ट्रू होने के बाद ये वापस से वेट प चला जाएगा तो t3 तो हमने बेसिकली एश्योर कर लिया कि d3 वेट पे रहे पर t2 वेट पे ना रहे t2 वेट से बाहर आ गई अभी अभी हमने देखा तो जब t2 वेट से बाहर आएगी तो प्रिंट सेकंड करेगी प्रिंट सेकंड करने के बाद टर्न को टू कर देगी और फिर से नोटिफाई ऑल करेगी और नोटिफाई ऑल जब करेगी तो इस टाइम पे वेट कौन कर रहा था t3 वेट कर रही थी और जब ये t3 वापस से इसको एग्जीक्यूट करने की कोशिश करेगी वाइल वाल कंडीशन को तो 2 इज नॉट इक्वल ट 2 ये फॉल्स हो जाएगा और मेरा थर्ड प्रिंट हो जाएगा तो आप देख रहे हो किस तरीके से कंडीशन वेरिएबल का यूज़ करके और टर्न वेरिएबल का यूज़ करके मैंने कैसे थ्रेड्स को सिंक्रोनाइज कर दिया अब चाहे कैसे भी थ्रेड चलती रहे कैसे भी चले कोई कैसे भी सिंक्रोनाइज हो कैसे भी स्केड्यूल हो मेरा फर्स्ट सबसे पहले प्रिंट होगा फिर सेकंड प्रिंट होगा फिर थर्ड प्रिंट होगा तो इस तरीके से मैंने थ्रेड्स को सिंक्रोनाइज कर दिया ठीक है स्क्रीन पर आते हैं और इसको एक बार सबमिट करके देखते हैं पहले एक बार रन कर लेते हैं सिंपल रन करता हूं मैं तो ये मेरा सिंपल रन हो गया अब इसको एक बार सबमिट कर लेते हैं सीधा ठीक है ज्यादा वेट नहीं करते जल्दी जल्दी जल्दी जल्दी जल्दी एक्सेप्टेड आ जाओ एक्सेप्टेड तो देख रहे हो कि इसने बहुत सारे टेस्ट केसे ट्राई किए होंगे ठीक है तो ऐसा कुछ भी नहीं हो रहा है फर्स्ट सबसे पहले फर्स्ट प्रिंट हो रहा है फिर सेकंड प्रिंट हो रहा है फिर थर्ड प्रिंट हो रहा है तो हमने ये प्रॉब्लम कर ली है काफी सिंपल प्रॉब्लम थी ठीक है अब थोड़ी सी अच्छी प्रॉब्लम को डिस्कस करते हैं आपको कंफ्यूजन हो रही होगी तो वीडियो को दोबारा से देखो एक बार कंडीशनल वेरिएबल के बारे में दोबारा से पढ़ लो ठीक है तो चलो अब सेकंड प्रॉब्लम के बारे में डिस्कस करते हैं सेकंड प्रॉब्लम है मेरी फिस बस प्रॉब्लम ये फेस प्रॉब्लम ना काफी फेमस प्रॉब्लम है ठीक है तो इसको सीधा लिट कोड पर सॉल्व करते हैं ये आ गया प्रॉब्लम क्या कहती है एक बार वीडियो को पॉज करो और प्रॉब्लम को पढ़ लो मैं एक बार क्विकली बताता हूं कि क्या कह रही है प्रॉब्लम हमारे पास एक क्लास दी हुई है फिस बस नाम से ठीक है तो इसमें एक ए वेरिएबल है और हम क्या चाह रहे हैं कि यह बेसिकली एक लूप चले वन से लेकर ए तक य काउंटिंग चले और काउंटिंग में क्या हो अगर आ की वैल्यू थ और फ से डिविजिबल है 3 एंड से डिविजिबल है तो हम क्या करेंगे फिस बस प्रिंट करेंगे अगर आ की वैल्यू ्र से डिविजिबल है बट फ से नहीं डिविजिबल है तो हम फिज प्रिंट करेंगे अगर आ की वैल्यू फ से डिविजिबल है और थ से डिविजिबल नहीं है तो हम बस प्रिंट करेंगे एल्स हम क्या प्रिंट कर देंगे आई यानी कि सिंपल वैल्यू प्रिंट कर देंगे तो इसका एक ब एग्जांपल देख लेते हैं ए की वैल्यू 15 है तो न थथ जो है फिस क्यों प्रिंट हुआ क्योंकि थ डिविजिबल बाथ है और फ से डि नहीं है एसी फो बस फ फिज बस कहां पे प्रिंट हुआ है 15 पे फीजिबल प्रिंट हो गया क्योंकि यहां पर थ्री और फ दोनों से डिविजिबल है 15 ठीक है तो सिंपल सी प्रॉब्लम है आपको अगर सिंगल थ्रेड में करना हो तो आप क्या करोगे सिंपल एक लूप चला दोगे और इफस इफल्स लगा दोगे और सब कुछ हो जाएगा कोई बड़ी बड़ी प्रॉब्लम भी नहीं है अब यहां पे प्रॉब्लम क्या है वो कह रहा है कि फेज जैसे कि पिछली वाली प्रॉब्लम में था ना फर्स्ट को प्रिंट फर्स्ट को कोई और थ्रेड कॉल कर रही थी प्रिंट सेकंड को कोई और ऐसे ही यहां पे चार थ्रेड्स दे दिए हैं भाई ने ठीक है चार थ्रेड्स दे दि है फिज फंक्शन जो है वो बेसिकली आउटपुट करना चाहिए फिज ठीक है बज फंक्शन जो है वो बेसिकली बज प्रिंट करेगा फिज बस जो है फिज बस प्रिंट करेगा नंबर जो है वो इंटी जर आउटपुट करेगा और ये चारों डिफरेंट थ्रेड से जाएंगे तो यानी कि कनकं चल रहे होंगे ठीक है तो यहां पर बेसिकली प्रॉब्लम क्या आएगी प्रॉब्लम ये आएगी जो मैं i की वैल्यू बेसिकली i0 से शुरू करूंगा या i1 अब इसमें वन से शुरू कर रहे हैं वन से लेक 15 n तक जाऊंगा वन से n तक जाऊंगा तो i एक शेयर्ड वेरिएबल हो गया इन चारों फंक्शंस में इन चारों फंक्शंस में एक शेयर्ड वेरिएबल हो हो गया ठीक है तो एक इसका मतलब मैं आई पे एक सिंक्रोनाइजेशन चाहूंगा इन चारों फंक्शन में सिंक्रनाइजेशन चाहूंगा एक ये शेयर्ड वैल्यू को बेसिकली एक्सेस कर रहे होंगे ठीक है और मुझे क्या करना है बस से ही बस प्रिंट करवाना है फिस से ही फिस प्रिंट करवाना है प्र और फिस बस फिस बस वाले फंक्शन से ही प्रिंट करवाना है तो क्विकली ये पिछली प्रॉब्लम जैसा ही है ठीक है मुझे एक लूप चलाना होगा ठीक है और वो लूप हर थ्रेड में चलेगा और मैं क्या करूंगा जो लूप में आ की वैल्यू है वो अलग-अलग थ्रेड बेसिकली इमेंट कर रही होंगी ठीक है तो ये कैसे होगा ये थोड़ा कंफ्यूजन होगी तो एक बार इसकी जल्दी से सॉल्यूशन मैं यहां पे लिख लेता हूं तो सबसे पहले मैं क्या करूंगा एक वेरिएबल ले लेता हूं i ठीक है और इस आ को मैं कैसे इनिश करूंगा इस आ को मैं इनिश इज करूंगा वन से राइट और मैं सब में एक लूप लगा दूंगा तो ये बेसिकली हमने सलूशन लिख दिया है इस सलूशन में क्या है देखो वाइल लूप चल रहा है और ये वाइल लूप क्या है हर थ्रेड पे लिखा हुआ है हर थ्रेड में लिखा हुआ है राइट हर थ्रेड में क्यों बोल रहा हूं क्योंकि ये फंक्शन हर अलग-अलग थ्रेड्स कॉल कर रही है ठीक है इसलिए वाइल भी इस थ्रेड में भी है सिमिलरली इस थ्रेड में भी है और अब देखते हैं यह बेसिकली प्रॉब्लम वर्क कैसे करेगी इसको एक बार समझते हैं बहुत सिंपल लग रहा होगा बट ये सिंपल है नहीं डिस्कस करते हैं एक बार एक बार आड की स्क्रीन पे आते हैं डिस्कस करते हैं एक बार सॉल्यूशन को ठीक है फिर उसके बाद सबमिट करके देखेंगे चल रहा है कि नहीं तो हमने क्या किया हमने सबसे पहले वही टेक्स और एक कंडीशन ले लिया ठीक है एक कंडीशन से ही हम सारा काम कर लेंगे और i एक वेरिएबल मैंने खुद से डाला है जो कि वन से इलाइट होगा यह लूप चलेगा वन से लेकर n तक ठीक है बहुत ही बढ़िया अब हमने क्या करा एक फिज फंक्शन के अंदर फिस फंक्शन के अंदर ऐसे ही बस फंक्शन के अंदर हर एक में वाइल लूप चलाया है ठीक है और ये कैसे वर्क करेगा अब यह देखते हैं इसके अंदर जो वाइल चल रहा है ना इसके अंदर जो वाइल चल रहा है ये कैसे वर्क करेगा सबसे पहले तो हम क्या चाहते हैं हमारे क्वेश्चन में था कि फिज कब प्रिंट होना चाहिए जब आ जो है वो थ्री से डिविजिबल हो फाइव से डिविजिबल ना हो तब हमें फिज प्रिंट करना है ठीक है तो मैं क्या करूंगा आ इज इक्वल टू इक्वल टू आ आ जो है परसेंटेज थ यानी कि i3 से डिविजिबल है अगर और फ से डिविजिबल नहीं है तो यह वैल्यू क्या आएगी यह वैल्यू आ जाएगी यह जो पर्टिकुलर वैल्यू है क्या आएगी अगर यह i जो है ्र से डिविजिबल है और फ से डिविजिबल नहीं है तो ये वैल्यू आ जाएगी वन ठीक है वन आ जाएगी अब मैंने क्या बोला है कि अगर ये इक्वल टू 0 है ठीक है अगर ये इक्वल टू 0 है तो हम वेट करेंगे ठीक है अगर ये वन के इक्वल हो गया यानी कि मेरी कंडीशन हो गई ट्रू हो गई यानी कि फिज वाली फि फिज प्रिंट करना है तो हम इस वाइल से बाहर आ जाएंगे ठीक है पिछले वाले एग्जांपल देखा होगा हमने वाइल में उल्टी कंडीशन डाल रहे होते हैं नॉट वाली कंडीशन डाल रहे होते हैं यानी कि जब थ्री से डिविजिबल है और फाइव से डिविजिबल नहीं है तब ये वन आएगा और 1 इक्वल टू इक्वल टू 0 ये फाल्स हो जाएगा और हम बेसिकली इस वाइल से बाहर आ जाएंगे ठीक है सिमिलरली हमने यहां पे बज बज के केस में लिखा है बज के केस में आ परसेंटेज फ यानी कि फाइव से डिविजिबल है और थ्री से डिविजिबल नहीं है हमें बस का प्रिंट करना था जब फव से डिविजिबल है थ्री से डिविजिबल नहीं है तो इस केस में ये वाली कंडीशन वन आएगी 1 = इ 0 ये फॉल्स हो जाएगा और हम इससे बाहर निकल जाएंगे ठीक है इस कंडीशन में हम उल्टी कंडीशन लिख रहे होते हम बाहर निकलना होता है इस कंडीशन से तो एक बार सिमिलरली हमने यहां पर भी एक कंडीशन लिखी है सेम सेम से फंक्शन आपको दिख रहे होंगे ठीक है अब एक बार सीक्वेंस वाइज चलते हैं सबसे पहले आएगा वन तो जब सबसे पहले वन आएगा i = 1 स्टार्टिंग i = 1 से स्टार्ट हुई है और ये सारे ये बेसिकली थ्रेड एक कॉल कर रही होगी इसको इसको थ्रेड बी कॉल कर रही होगी इसको थ्रेड सी कॉल कर रही होगी इसको थ्रेड डी कॉल कर रही होगी तो अब देखते हैं सिंक्रोनाइजेशन बैठती कैसे है मान लेते हैं फिस पे आते हैं फिस क्या करेगे i की वैल्यू स्टार्टिंग में वन होगी 1 इ ले इ n ठीक है लेसन इक्वल टू l ओके अब हम यहां गए ये भी ट्रू है अब 1 परसेंटेज 3 ठीक है 1 परसेंटेज 3 ये आ जाएगा फाल्स सिमिलरली ये वाली कंडीशन फॉल्स आ जाएगी और जब फॉल्स आ जाएगी तो ये क्या होएगा ये रो हो जाएगा 0 = 0 ये ट्रू हो जाएगा ट्रू होने के बाद मैं सी पे वेट करने लग जाऊंगा ठीक है मैं इस पोजीशन को एग्जीक्यूट कर दूंगा तो i इ 1 के लिए लिख सकता हूं i इ 1 के लिए मैं यहां इस पोजीशन प वेट कर रहा होगा सिमिलरली बस भी देखोगे ना i = 1 के लिए यहीं पर वेट कर रही होगी आ इ 1 के लिए यहीं पर वेट कर रही होगी क्योंकि यह बेसिकली ये जीरो हो जाएगी वैल्यू एक बार देख लेना और ये बेसिकली इसके अंदर चला जाएगा वाइल के अंदर सिमिलरली फिज बस को देखें तो 1 परसेंटेज 5 व हो जाएगा तो य फॉल्स हो जाएगा तो यह कंडीशन फॉल्स तो यह भी जीरो के इक्वल हो जाएगी तो हम आ इव के केस में यहीं पर वेट कर रहे होंगे ठीक है अब इस पर आते हैं अब क्या इस केस में ऐसा हो रहा होगा इस केस में ऐसा हो रहा होगा बिल्कुल नहीं इस केस में हम इससे बेसिकली यह इसके अंदर जाए ही नहीं यह वाली पर्टिकुलर कंडीशन है आ परसेंटेज 5 ये ववन के लिए बेसिकली मेरी वन हो जाएगी और वन जब हो जाएगी तो वन इज नॉट इक्वल टू 1 इ 0 फाल्स हो जाएगा फॉल्स होने के बाद इस वाइल में जाएगा ही नहीं यानी कि जो यह वाली मैंने कैसे इंश्योर करा मैंने इंश्योर करा कि जो यह पर्टिकुलर कंडीशन है यह मेरी किसी तरीके से फॉल्स हो जाए फॉर वन वन के लिए फॉल्स हो गई तो मैं वेट के लिए जाऊंगा ही नहीं बाकी तीनों थ्रेड ए बी सी तीनों थ्रेड जो है वेट पर चली गई है बट डी थ्रेड जो एक्टिव है तो देख रहे हो मैं कैसे कंडीशन वेरिएबल से कैसे मैं सिंक्रोनाइज कर पा रहा हूं कि बेसिकली थ्रेड्स जो हैं वो तीनों शेड्यूल्ड हैं बट डी वाली थ्रेड ही मेरा काम जो मेरा जो मैं चाहता हूं करना वो कर रही है ठीक है तो अब इस केस में यहां पहुंच जाएगी यहां पहुंचने के बाद प्रिंट नंबर मैंने कॉल कर दिया और प्रिंट नंबर जो है वो बेसिकली उस नंबर को कॉल कर देगी और अब ध्यान दोगे जो i+ प्स हो रहा है ना वो हमेशा क्रिटिकल सेक्शन के अंदर हो रहा है क्यों क्योंकि कोई और थ्रेड अभी उस आ को एक्सेस नहीं कर रही है सब वेट पे हैं सब i = 1 के लिए अब मतलब i = उनके टाइम पे वन था तो सब अभी वेट पे चल रही है ठीक है सब थ्रेड्स वेट पे चल रही हैं तो अब क्या हुआ बेसिकली वन के लिए ये प्रिंट हो गया i = 1 के लिए और 1 प्लस प्स कर दिया तो i क्या हो जाएगा टू राइट जैसे ही i2 होगा ना i2 होने के बाद मैंने क्या करा c डॉट नोटिफाई ऑल कॉल कर दिया अब जब नोटिफाई ऑल कॉल होगा ना नोटिफाई कल होने के बाद बाकी तीनों जो थ्रेड थी a बी c ये तीनों थ्रेड जो कि यहां c ड वेट पे वेट कर रही थी ये यहां इस वेट से बाहर आएंगी बाहर आने के बाद वापस से इस वाइल कंडीशन को चेक करेंगी वाइल कंडीशन को जब चेक करेंगी तो आ अब टू हो चुका होगा क्यों डी थ्रेड ने आ को टू कर दिया था अब वो टू के लिए इस कंडीशन को चेक करेगी उसके लिए भी यह कंडीशन बेसिकली ट्रू आ गई अगर ट्रू आने के बाद व वापस से वेट प चली जाएगी तो देख रहे किस कितने ब्यूटीफुली मैं थ्रेड्स को रोक रहा हूं आगे अपना काम करने से ठीक है सिमिलरली बी के लिए भी यही होगा जब बी वापस से वेट से नोटिफाई ल होने जो डी ने नोटिफाई ऑल किया था उसके बाद जब ये यहां पर आएगी वाइल कंडीशन को एग्जीक्यूट करेगी तो ये देखेगी कि जो i है वो बेसिकली टू होगा टू होने के केस में ये फिर से ट्रू हो जाए और उसके बाद य वापस से वेट पर चली जाएगी सिमिलरली सी भी वेट पर चली जाएगी सिर्फ डी ही होगी यानी कि डी वापस से चल पाएगी कैसे यह वापस से वाइल मैंने लिखा ही हुआ है यहां पे वाइल एग्जीक्यूट होगा आट के लिए आ जटू के लिए कंडीशन चेक होगी तो ये कंडीशन वन आ जाएगी 1 इ इ 0 फाल्स हो जाएगा फॉल्स होने के बाद फिर से यह वेट में नहीं जाएगी और मैं यह कॉल कर दूंगा ठीक है और फिर आ इ 2 के लिए भी यही एग्जीक्यूट हो जाएगी ठीक है बहुत ही बढ़िया जब आ इ 2 के लिए फाइनली एग्जीक्यूट हो जाएगी जब आ इ 2 के लिए फाइनली एक्यूट हो जाएगी तो जब नोटिफाई ऑल होगा तो उससे पहले वह i+ + कर चुका होगा i की वैल्यू अब थ्री हो चुकी है अब ध्यान देना अब ध्यान देना i की वैल्यू थ्री हो चुकी है ठीक है थ्री होने के बाद इसने नोटिफाई किया नोटिफाई होने के बाद यह तो वापस से इधर चला जाएगा ठीक है i3 के लिए अब जब थ्री के लिए चेक करेगा ना तो यह कंडीशन जो है थ के लिए i = 3 के लिए यह ़ हो जाएगी 0 = इ 0 ट्रू हो जाएगा ट्रू होने के बाद यह वाली पर्टिकुलर क जो थ्रेड है वापस से d थ्रेड जो कि अब तक i = 1 और 2 के लिए काम कर रही थी थ्री के लिए वेट पे चली जाएगी थ के लिए थ्रेड वापस से जिंदा कौन सी थ्रेड होगी फिज वाली थ्रेड जिंदा होगी कैसे वो एक बार देख लेते हैं i = 3 हमने अभी नोटिफाई ऑल किया था डी थ्रेड ने दोबारा से नोटिफाई ल किया था नोटिफाई ल होने के बाद यह सी डॉट वेट प जो वेट कर रही थी यह वापस से वेट से हटेगी वेट से हटने के बाद इस वाइल कंडीशन को फिर से चेक करेगी अब जब इस वाइल कंडीशन को चेक करेगी तो आई की वैल्यू थ्री हो चुकी होगी अब थ्री के लिए जब मैं इसको चेक करूंगा तो ये क्या आएगा यह वन आ जाएगा और यह बेसिकली यह भी वन आ जाएगा तो ये कंडीशन बेसिकली ये वन आउटपुट करेगी तो वन अब जब ये 1 इक्व टू इक्वल टू 0 को चेक करूंगा ठीक है तो ये क्या होगा ये फाल्स हो जाएगी तो ये वाली पर्टिकुलर थ्रेड ए थ्रेड जो अब तक वेट थी अब तक जो है i इ 1 और i = 2 के लिए जो वेट पे थी अब i = 3 के लिए यह एग्जीक्यूट हो पाएगी ठीक है अब मैं इसके लिए जब देखूंगा तो यह फिज प्रिंट कर देगी फिज प्रिंट करने के बाद मैं i+ प् कर दूंगा i+ प् करने के बाद ये फिर से c डट नोटिफाई ऑल करेगी बाकी थ्रेड जो वेट कर रही है वो फिर से कंडीशन चेक करने जाएंगी ठीक है अब फोर के लिए जब i इ 4 हो जाएगा फोर के लिए यह वाली थ्रेड काम करेगी बाकी थ्रेड वेट प करेंगी वेट प रहेगी वेट प क्यों रहेगी क्योंकि ये पर्टिकुलर कंडीशन को चेक कर रहे हैं हम राइट तो इस तरीके से चीज कर रही है तो देख रहे हो कि कंडीशन वेरिएबल यूज करके मैंने कितने ब्यूटीफुली ब्यूटीफुली बेसिकली चारों थ्रेड्स को सिंक्रोनाइज कर दिया है अब एक बार इसको सबमिट करके देखते हैं कि मैं सच भी बोल रहा हूं कि नहीं ठीक है चलिए एक बार ड्राय रन कर लेते हैं बढ़िया आ 15 के लिए तो सही चल रहा है n = 15 के तो सही चल गया एक उस सबमिट कर लेते हैं सीधा सबमिट करके देखा हमने कि फास्टर देन 86.6 बहुत ही बढ़िया कोड लिखा है और यह कोड बढ़िया से वर्क कर रहा है अब वीडियो को पॉज करो और इस कोड को समझने की कोशिश करो और कोई पाइथन पे अगर कोड करता है तो इसको पाइथन पे कोड करो जावा पे कोड करता है तो जावा पे कोड करो ठीक है तो कोड करके एक बार देखो चीजें समझ आएंगी यार मजा आता है कंक्रेंस के ना क्वेश्चंस करने में या फिर रियल वर्ल्ड में कंक्रेंस की प्रॉब्लम्स को सॉल्व करने में बड़ा मजा आता है क्यों जब चीजें पैरेलली चल रही होती है ना तो बड़ा अनडिफाइंड सा बिहेवियर आता है रियल लाइफ में ग्रेस कंडीशन देखोगे ना तो बड़ा ही एक्साइटिंग लगता है उसको सॉल्व करना भी थोड़ा चैलेंजिंग होता है खैर तो चलो अब तीसरी प्रॉब्लम डिस्कस करते हैं थर्ड प्रॉब्लम है हमारी डाइनिंग फिलोसोफर प्रॉब्लम स्पेलिंग शायद गलत हो गई है पर इग्नोर करो ठीक है तो इसको डिस्कस करने से पहले ना डायरेक्टली लीड कोड पे क्वेश्चन है इसका ठीक है इसको डिस्कस करने से पहले एक बार डाइनिंग फिलोसोफर वाली जो मेरी वीडियो है उसको एक बार रिवाइज करके आओ ठीक है वीडियो नंबर मैं एक बार बता देता हूं वीडियो नंबर है हमारी 20 वीडियो नंबर 20 इसको देख लो एक बार डाइनिंग फिलोसोफर रिवाइज करके आओ उसके बाद इसको कुछ सॉल्व करते हैं हम ज्यादा टाइम वेस्ट नहीं करेंगे इस चीज पे कि डाइनिंग फिलोसोफर है क्या बहुत बड़ी सी प्रॉब्लम है उसको एक बार रिवाइज करो ठीक है आई विल डेफिनेटली रिकमेंड कि भाई इसको जाओ और रिवाइज करो बिफोर व्यूइंग इ सलूशन ठीक है तो चलो एक बार लीड कोड पे देखते हैं क्या वही वाली डायम फिलोसोफर सॉल्व करना चाह रहे हैं हम स्क्रीन पे आ गए हम तो यह वही प्रॉब्लम है ठीक है सिमिलरली वही हमारे पास पांच फिलोसोफर हैं वह या तो थिंक करते हैं या ईट करते हैं ठीक है हमारे पास पांच फॉक्स हैं ठीक है तो हम चाहते हैं डेड लॉक की कंडीशन अगर ना हो डेड लॉक क्यों होती है इसको देखने के लिए वापस वीडियो नंबर 20 प जाओ और डेड लॉक क्यों आता है इसमें अगर सारे फिलोसोफर अपने लेफ्ट वाली या अपने राइट वाली ठीक है सारे ही अपने लेफ्ट वाली फोक अगर पिक कर लेंगे तो एक डेड लॉग आ जाएगा कोई भी नहीं खा पाएगा ठीक है तो इस चीज को एक बार सॉल्व करके देखते हैं तो क्वेश्चन को कैसे फ्रेम किया है लीड कोड वालों ने वो देख लेते हैं एक बार तो हमा पर फिलोसोफर है फिलोसोफर की आईडी है जो कि जीरो से फोर तक जाएगी ठीक है पिक लेफ्ट फोक क्या करता है लेफ्ट फोक को पिक कर लेता है पिक राइट फोक क्या करता है राइट फोक को पिक कर लेता है ईट हमें कॉल करना है जब हमारे पास लेफ्ट और राइट किसी फिलोसोफर के पास लेफ्ट और राइट दोनों ही आ गई तो हम ईट को कॉल कर देंगे ठीक है सिमिलरली पुट लेफ्ट पुट राइट में जब वो उनका ईटिंग खत्म हो जाएगा तो पुट लेफ्ट पुट राइट कर दूंगा मैं यानी कि दोनों फॉक्स को मैं रख दूंगा और वो स्ट थिंकिंग स्टेट पर चले जाएंगे और इसके इस इस मूवमेंट प कोई और फिलोसोफर आकर बेसिकली को यूज कर सकता है ठीक है तो पांच अलग-अलग थ्रेड्स है ई थ्रेड रिप्रेजेंटिंग ए फिलोसोफर पांच फिलोसोफर पांच थ्रेड्स ठीक है पांच थ्रेड जो सेमली एक ही ऑब्जेक्ट एक ही क्लास पे ये जो डाइन फिलोसोफर की क्लास है इस पर एग्जीक्यूट होंगी और ये वांट टू ईट फंक्शन को कॉल करेंगे तो हमें क्या करना है सिंप सिंपली इसको सिंक्रोनाइज करना है तो डायनिंग फिलोसोफर लेक्चर नंबर 20 में हमने जो डिस्कस किया था सॉल्यूशन में हमने देखा था कि हम क्या करते हैं लेफ्ट फोर को राइट फोर को पिक जब करते हैं पिक करने के बाद भी हमारे पास यानी सलूशन देने के बाद भी हमारे पास बेसिकली प्रॉब्लम आ जाती है यानी कि डेलॉक हो जाता है तो उसके लिए हमने कुछ ट्वीक्स करे थे तीन ट्वीक्स बताए थे मैंने तो उन तीन ट्वीक्स में से एक ट्विक यूज करेंगे तो हम क्या करेंगे जब भी कोई फिलोसोफर का ईटिंग का मन होगा तो लेफ्ट राइट दोनों पे जब एक साथ पिक कर लेगा दोनों को पिक कर पाएगा तभी हम उसको ईटिंग स्टेट प देंगे यानी कि मान लो मैं किसी फिलोसोफर ने लेफ्ट फॉक उठा लिया बट उसको राइट नहीं मिल पाया तो अगर उसको राइट नहीं मिल पाएगा ना तो लेफ्ट भी नहीं लेगा वो समझ रहे हो लेफ्ट प भी लॉक नहीं लगाएंगे हम ऐसी कंडीशन कर रहे हैं तो ये मेरे ख्याल से सोल्यूशन ट्विक नंबर वन था आई गेस सो ठीक है बताना मुझे ट्क नंबर वन था कि नहीं कमेंट्स में लिख के बताना मुझे ठीक है अब मैं फिर से रिपीट कर रहा हूं लेक्चर नंबर 20 दोबारा देख लो सलूशन मैं यहां पे लिखने वाला हूं तभी आपको ढंग से समझ आएगा वन ऑफ द ट्वीक्स जो हमने डिस्कस किया था लेक्चर नंबर 20 में वो हम यूज करने वाले हैं तो चलिए फटाफट से कोड लिखता हूं फिर इसको डिस्कस करते हैं बढ़िया कोड हमने लिख दिया है ठीक है कोड हमने लिख दिया है इसको एक बार डिस्कस करते हैं कोड में क्या लिखा गया है चलिए डिस्कस करते हैं तो यार जब सीमा फर पढ़ा रहा था ना मैं तो मैंने देखा था कि c+ में सीमा 4 नहीं चल रहे थे तो हमने क्या किया है हमने यार जो फॉक्स को हम सीमा फर बनाते थे हमने सीमा फर बना दिया यहां पे क्योंकि c+ में समा 4 की इंप्लीमेंटेशन नहीं मिल रही थी तो समा 4 खुद का लिख लिया हमने ठीक है इसको कैसे लिखा है वही नॉर्मल जो हमने समा 4 में पढ़ा है वेट फंक्शन को कॉल किया काउंट को माइनस माइनस करा अगर काउंट लेस दन ज़ीरो हो गया तो वेट कर दिया यहां पर सिग्नल में हमने प्लस प्लस करा और नोटिफाई वन कर दिया ठीक है तो ये सिम फर हमने c+ में बना लिया खुद ठीक है अब हम यहां पे देखते हैं हमने क्या करा वही सि सिमिलरली जो हमने सॉल्यूशन डिस्कस किया था फर्क बेसिकली फर्क जो है फर्क पांच फर्क डिक्लेयर करें और पांचों बाइनरी सीम फोर है पांचों बाइनरी सीमा फर है और हमने क्या करा जो एक ट्विक डिस्कस किए थे हमने उसमें से पहला वाला ट्क था आई गेस उसमें हमने क्या करा था कि हमने पिकिन को ही क्रिटिकल सेक्शन बना दिया था अब क्योंकि पिकिन ही क्रिटिकल सेक्शन हो गया है तो कोई एक ही थ्रेड आके यहां पे पिक कर पाएगा दो दोनों फर्क लेफ्ट वाली फॉक भी पिक कर लेगा और राइट वाली फॉक भी पिक कर लेगा और बाकी थ्रेड इसके अंदर क्रिटिकल सेक्शन के अंदर घुस ही नहीं पाएंगे अब जब वो क्रिटिकल सेक्शन के अंदर घुस नहीं पाएंगी तो वो फॉक को एक्सेस कर नहीं पाएंगी तो मान लो पहली थ्रेड ने लेफ्ट और राइट दोनों फॉक उठा लिए तो लेफ्ट और राइट दोनों को पिक कर देगी और फिर वो ईट करेगी ट करने के बा हम पुट पुट लेफ्ट कॉल कर रहे हैं और लेफ्ट को फ्री करा रहे हैं सिग्नल करा रहे हैं और राइट को सिग्नल करा रहे हैं और हम बेसिकली राइट को यहां पर सिग्नल करा रहे हैं पुट राइट कर रहे हैं तो ऐसे करके मैं बेसिकली एक फिलोसोफर को कंपलीटली ईटिंग स्टेट पर ले जा रहा हूं और उसको ईटिंग स्टेट से बाहर भी लेके आ रहा हूं ठीक है इसको एक बार ड्राय रन करके देखना ठीक है ड्राय रन करके देखना क्या ये ये वाली प्रॉब्लम सॉल्व कर पाएगी इसको ठीक है मेरे ख्याल से तो डेफिनेटली सॉल्व कर पाएगी क्योंकि हमने क्या करा अगर पीएच जीरो यानी कि जीरो अगर फिलोसोफर यहां जा रहा है तो मैं इंश्योर कर रहा हूं कि लेफ्ट और राइट दोनों उसको मिल जाए ठीक है कोई और थ्रेड यहां पे घुस ही नहीं पाएंगी जब जब क्रिटिकल सेक्शन के अंदर कोई एक थ्रेड होगी यानी कोई एक फिलोसोफर होगा ठीक है सिमिलरली मतलब पहली थ्रेड यहां पे बिजी है पीएच यानी कि पीए 0 पीए 0 यहां पे बिजी है और पीए व आता है पीव आता है अब पीए 0 ने पीव की एक उठा रखी होगी वे फ उठा रखी होगी तो वो इस क्रिटिकल सेक्शन में जाके वेट करता रह जाएगा ठीक है तो ph1 बेसिकली वेट करता रह जाएगा प2 प2 जो होगी प2 आ पाएगी क्योंकि उसके एडजेसेंट सारी दोनों फॉग जो हैं वो फ्री होंगी तो वो आके घुस जाएगी यहां पे घुसने के बाद उसको अपनी फॉक्स मिल जाएंगी तो बेसिकली मैं क्या कर रहा हूं मैं इसको क्रिटिकल सेक्शन बना के मैंने एक सिंक्रोनाइज एक्सेस दे दिया है ठीक है तो यहां पर डेड लॉक की कंडीशन अकर नहीं हो पाएगी ठीक है जो आएगी उसको फॉक मिल जाएगी दोनों जब मिल जाएगी तो मैं आगे एग्जीक्यूट कर जाऊंगा वरना चला जाऊंगा ठीक है तो एक बार इसको रन करके देखते हैं ठीक है कि मैं सही बोल रहा हूं कि नहीं कोड को रन किया तो मेरा टेस्ट केस तो चल गया है ठीक है अब इसको एक बार सबमिट करता हूं सबमिट करके भी यह चल चुका है फास्टर देन 64 ठीक है बहुत ही बढ़िया सलूशन दिया है हमने ठीक है तो बेसिकली हमने क्या करा है एक टक का यूज किया है तो मैं आपको होमवर्क देता हूं इस इस पे जाओ बेसिकली लीड कोड के इस प्रॉब्लम पे जाओ इस प्रॉब्लम प जाने के बाद आप जो बाकी ट्वीक्स थे ना उनको ट्राई करो क्या वो ट्वीक्स यहां पे वर्क कर रहे हैं क्या इस इस सॉल्यूशन पे वर्क कर पाएंगे ठीक है अल्टीमेटली मेरा गोल तो ये है कि मैं डेड लॉक ना करने दूं ठीक है वो मैंने इससे इंश्योर कर लिया है बहुत ही बढ़िया एक बार अगर आपको समझ ना आ रहा हो तो एक बार वापस से लेक्चर नंबर 20 को जाके देखो और देखने के बाद ये सॉल्यूशन प आके देखो c+ प् में सॉल्यूशन लिखा गया है ज्यादा सिंटेक्स में मत जाओ सिंटेक्स एक बार गल कर लेना आपको बेसिकली प्रॉब्लम हो रही हो तो वरना पाइथन पे भी कोड कर सकते हो मेरा काम यहां पे आपको सलूशन करवाना था ठीक है सिंटेक्स पे जाना हमारा नहीं है हमने देखा कैसे हम कंडीशनल वेरिएबल का यूज करके तीनों प्रॉब्लम्स को सॉल्व कर पा रहे हैं इसमें हमने सीमा फर यूज किया है पर सीमा फर भी हमारा कस्टम सीमा फर है जो कि हमने कंडीशनल वेरिएबल से इंप्लीमेंट किया है ठीक है तो बहुत ही बढ़िया तो मैं बोल सकता हूं एक इंटरव्यू क्वेश्चन ये भी हो सकता है कि आप खुद का सीमा 4 कैसे बनाओगे तो खुद का सीमा वो बनाने के लिए आप कंडीशन वेरिएबल का यूज कर सकते हो ठीक है बहुत ही बढ़िया तो आई होप आपको समझ आए होगे थोड़ा सा हैंड्स ऑन हो गया हमारा ठीक है कोई ऐसे बेसिकली कोडिंग राउंड में ऐसा क्वेश्चन तो आता नहीं है आपका कि कंक्रेंस पे डायरेक्टली क्वेश्चन आता है आई गेस मैंने तो कभी सुना नहीं ऐसे कभी क्वेश्चन आया डिस्कशंस में आपसे डिस्कस कर सकते हैं डेनी फिलोसोफर कैसे सॉल्व करोगे वो हमने लेक्चर 20 में बेसिकली करा ही था डिस्कस तो हमारा यहां पे गोल था लेक्चर नंबर 23 में कि थोड़ा सा आपको हैंड्स ऑन दे दिया कि कैसे एक्चुअली प्रॉब्लम सॉल्व हो रही हैं इन कोड तो मिलते हैं किसी नेक्स्ट लेक्चर में तब तक के लिए गुड बाय थैंक यू हेलो जी कैसे दिस इ लक्ष तो हम आ चुके हैं हमा के लेक्चर नंबर 24 पर आज हम डिस्कस करने वाले हैं बहुत ही इंपोर्टेंट टॉपिक जो कि है मेमोरी मैनेजमेंट टेक्निक्स तो यार हमें पता है कि कोई भी मल्टी प्रोग्रामिंग एनवायरमेंट जो होता है मल्टी प्रोग्रामिंग एनवायरमेंट सबको पता है मल्टी प्रोग्राम एनवायरमेंट क्या है हमने बहुत ही बढ़िया से पढ़ा है इसको ठीक है उसके अंदर पर मेनी प्रोसेसेस होती है राइट मेनी प्रोसेसेस और वो कहां रिसाइट करती है वो सब रम में होती है राइट मेमोरी के अंदर बहुत सारी प्रोसेसेस होती हैं मल्टी प्रोग्रामिंग के अंदर बहुत सारी प्रोसेस रम में हम क्यों रखते हैं ताकि हम सीपी की यूटिलाइजेशन को हाई रख पाए राइट राइट यानी कि कोई एक प्रोसेस मान लो आईओ करने चली जाए ठीक है या फिर कांटेक्ट स्विच हो जाए ड्यू टू टाइम क्वांटम टाइम शेडिंग के केस के अंदर तो हम चाहते हैं कि सीपीयू जल्दी से जल्दी किसी और प्रोसेस को मिल जाए ताकि सीपीयू फ्री ना बैठे मेरा राइट तो इस आईडिया को फॉलो करते हुए मैं बहुत सारी प्रोसेसेस रम के अंदर रखता हूं राइट यह हमें पता है हमने डिस्कस किया है ठीक है इसमें कोई कंफ्यूजन नहीं होनी चाहिए तो अब एक बात बताओ यार छोटा सा इशू दिमाग में आता है कि अगर रम इस तरीके से दिखती है मेरी ये मेरी रम है ठीक है इसको रम बोल देता हूं मैं अब एक बात बताओ ये छोटी चीज है कि रम जीरो से 1gb राइट इतनी मान लो 1gb की रैम है तो इसके अंदर बहुत सारे एड्रेस लोकेशंस होती हैं ठीक है 0 1 2 3 4 फ इस तरीके से एड्रेस लोकेशंस है मेरे पास तो अब ये बहुत सारी प्रोसेसेस किस तरीके से मेमोरी में डिसाइड कर रही है ना ठीक है वो मैं सोचना चाहता हूं या फिर वो बेसिकली मैं ऑपरेटिंग सिस्टम को बताना चाहता हूं वो कैसे डिसाइड करे और बहुत सारी चीजें है मेरे दिमाग में कि ऑपरेटिंग सिस्टम में हमने एक चीज पढ़ी थी कि आइसोलेशन प्रोटेक्शन भी होनी चाहिए ठीक है तो इसको ओबे करते हुए मैं किस तरीके से जो मेरी प्रोसेस है प्रोसेस का डाटा मैं रम के अंदर रखूं वह मैं किस तरीके से रख सकता हूं ठीक है तो अब छोटा सा एग्जांपल देखते हैं मान लो आपने जो p1 प्रोसेस है मान लो प2 प्रोसेस है p3 प्रोसेस है तीन तीन प्रोसेस है मेरे पास p1 प्रोसेस जो है मैंने जीरो से देखो स्टार्टिंग का जो एरिया होता है मेरा ओस के लिए रिजर्व होता है ठीक है स्टार्टिंग में रम में ओस ही लोड होता है सबसे पहला प्रोग्राम जो होता है मेरा ओस होता है उसके बाद मैंने मान लो कुछ रैंडम लोकेट कर दिया कि भाई इस पोजीशन से लेके इस पोजीशन तक मैंने p1 दे दिया ठीक है इसके बाद मैंने p2 दे दिया फिर इस पोजीशन से इस पोजीशन मैंने p3 को एलोकेट कर दिया ठीक है पोजीशन का मतलब क्या है कि यहां पर कोई एड्रेस लोकेश होंगी मान लो यह 50 से लेके 60 तक मैंने इसको दे दिया फिर 60 से लेकर 70 तक मैंने यह लोकेशन दे दी ऐसी ये थोड़ी सी फ्री स्पेस मैंने ऐसे ही छोड़ दिया अपने मन से उसके बाद 90 से लेकर 100 तक मैंने ऐसे दे दिया तो ऐसे रैंडम मैंने दे दिया तो अब एक छोटी सी चीज है कि यह जो p1 और प2 है इसकी जो बाउंड्री देखो यह एकदम क्लैश कर रही है राइट मतलब इसके बॉर्डर एक साथ में ही है ठीक है तो इमेजिन करो कि अब मैंने मैंने बोला कि p1 को ना 50 से लेक 6 लोकेशन तक 16 लोकेशन तक का ही एड्रेस एक्सेसिबल है इसको ठीक है इतना ही एड्रेस एक्सेस कर सकता है ठीक है अब 60 को इंक्लूसिव मान लेते हैं तो 60 इसका लास्ट एड्रेस होगा जो एक्सेस कर पाएगा ठीक है अब छोटी सी बात बताओ मान लो जो प्रोग्रामर है पव का जो प्रोग्रामर है पव के प्रोग्रामर ने गलती से यह लिख दिया हो कि किसी लोकेशन पर की मान लो एड्रेस करंट एड्रेस है मेरा करंट एड्रेस प्लस फ कर देता हूं मैं तो मेरा कोई डाटा आ जाता है राइट अब मैं करंट एड्रेस जो करंट एड्रेस है मेरा इसकी लोकेशन मान लो 60 से रिप्लेस कर दूं 60 प् 5 65 तो मैं क्या कर रहा हूं कि मैं p1 प्रोग्राम से 65 लोकेशन को एक्सेस करने की कोशिश कर रहा हूं ठीक है p1 प्रोग्राम से p1 प्रोग्राम जो कि 60 तक का ही एड्रेस लोकेशन है इसके पास यानी यहीं तक अलाउड है ये ऐसा मैंने बोला है ठीक है और ् 5 कर देता हूं मैं तो इस p1 प्रोग्राम से ही मैं 65 यानी कि p2 प्रोग्राम का मेमोरी एरिया एक्सेस कर पा रहा हूं ठीक है अब ध्यान से सोचो आपके दिमाग में एक चीज आ रही होगी हमने एक चीज पढ़ी थी आइसोलेशन एंड मेमोरी प्रोटेक्शन सबसे पहली वीडियो में ओ की राइट उस वीडियो में हमने क्या पढ़ा था कि ओ का एक मेजर काम है कि वह दो प्रोसेसेस को चाहता है कि वह इंडिपेंडेंटली एग्जीक्यूट हो इंडिपेंडेंटली एग्जीक्यूट मतलब p1 को नहीं पता कि p2 भी मेमोरी में है इवन p2 को भी नहीं पता कि p1 मेमरी में ठीक है इस तरीके से एग्जीक्यूट होनी चाहिए और दोनों प्रोसेसेस ना किसी के भी मेमरी एरिया में आ कुछ दखल अंदाजी ना कर पाए ठीक है यानी कि पीव जाके 65th लोकेशन पर कुछ राइट ना कर दे चेंज कर देगा तो बड़ा इशू आ जाएगा एक सिक्योरिटी थ्रेट है ये राइट तो कुछ ना कुछ तरीका तो होगा कोई ना कोई टेक्नीक कोई ना कोई मेमोरी मैनेजमेंट का तरीका तो होगा कि किस तरीके से मैं इस चीज को संभाल सकता हूं कि p1 अगर प्रोग्राम है और p1 प्रोग्राम अगर 60 प् 5 किसी तरीके से यह 65th लोकेशन एड्रेस करता है मान लो प्रोग्राम थोड़ा सा मैं बोल सकता हूं शरारती प्रोग्रामर है ठीक है आपकी तरह आपने कुछ भी आप आप अलाउड थे 60 तक 70 तक 60 तक लेने के लिए राइट आपने क्या करा कुछ नहीं आपने एक एक्स लोकेशन ली उसमें प्लस कोई बहुत ही बड़ा नंबर प्लस कर दिया राइट बहुत स सी प्स प्रोग्राम में ऐसा होता है कि कुछ मान लो इनफिट वैल्यू आ गई तो वो बहुत बड़ी वैल्यू हो गई इंट मैक्स जितनी उसको प्लस कर दिया और वो एड्रेस में प्लस कर दिया किसी ने और वो एड्रेस इतना बड़ा हो गया कि वो आउट ऑफ बाउंड चला गया और किसी और प्रोसेस के मेमोरी स्पेस पर पहुंच सकता है वह अगर अगर ओस के अंदर आइसोलेशन मेमोरी प्रोटक्शन ना हो तो तो यह जो पर्टिकुलर चीज है कि आइसोलेशन मेमरी प्रोटेक्शन का होना यह किस तरीके से ओस इस चीज को मैनेज करता है एक बार वो देखते हैं कि किस तरीके से ब्यूटीफुली आइसोलेशन मे प्रोटेक्शन अप्लाई होती है ओस के अंदर ठीक है जल्दी से ड्रा करता हूं अब देखो यह मेरी रम है ठीक है और यह p1 प2 दो मेमोरी एरिया है ठीक है मतलब इस रैम के अंदर मैंने p1 को यह एरिया दिया हुआ है p2 को यह एरिया दिया हुआ है तो ओ डायरेक्टली रम के अंदर जाके एलोकेट नहीं करता स्पेस को जो आइसोलेशन मेमोरी प्रोटेक्शन अप्लाई करने के लिए ओस डायरेक्टली क्या करता है कि डायरेक्टली ऐसा नहीं करता कि प या फिर p1 p1 बेसिकली उसने एलोकेट किया एलोकेट करती डायरेक्टली रैम का एक्सेस उसको मिल गया यानी किसी भी यूजर प्रोसेस को डायरेक्टली रम का एक्सेस नहीं मिलता वो बीच में एक लेयर लगा देता है और वो लेयर क्यों अप्लाई कर रहे हैं हम आइसोलेशन मेमोरी प्रोटेक्शन बेसिकली इंट्रोड्यूस करने के लिए तो वो कैसे करेंगे ये देखो ये मान लो p1 प्रोसेस है ठीक है p1 प्रोसेस का मेरे पास क्या है पास ऐसे ऐसा कुछ मेमोरी डिस्ट्रीब्यूशन होता है हमारे पास स्टैक होती है ठीक है और कोड सेक्शन होता है मेरे पास ऐसी डाटा सेक्शन होता है और इधर हीप होती है यह हमने सबने पढ़ा है राइट और मैं मान लेता हूं 16 केब का बेसिकली यह ब्लॉक है पूरा ऐसे p2 मान लो है p2 0 से 16 केब यानी 16 केब की 16 केब का प्रोसेस है ये ठीक है 16 केब का एरिया इसको चाहिए होगा टू गेट स्टोर्ड इन द रम ठीक है तो अब आप यह देखो ऐसी ू के अंदर कुछ कुछ होगा ये बेसिकली इसका कोड होगा अलग से ठीक है तो मैं क्या करता हूं मैं ना दो तरीके की जैसे मेरे पास कोऑर्डिनेट सिस्टम होते है ना मैथमेटिक्स के अंदर कोऑर्डिनेट सिस्टम एक अलग बेसिकली कोऑर्डिनेट सिस्टम में अगर मैं ओरिजिन को शिफ्ट कर दूंगा तो मैं कहीं और चला जाऊंगा ठीक है फिर + ए + ए - ए करके बेसिकली दूसरा कोऑर्डिनेट सिस्टम हो जाता है ठीक है सिमिलरली मैं क्या करता हूं यहां पर कि जो p1 है ना और p2 है इन दोनों की अलग एड्रेस ंग होगी ठीक है इसको मैं बोलता हूं लॉजिकल एड्रेस स्पेस इसका मतलब कि p1 अपना अलग एड्रेस का एड्रेस का काउंट होगा उसका ठीक है p1 जैसे दिखा ना हमने 0 से 16kb तो इसका इसका अलग से रो से लेके 16kb तक का अलग से काउंट होगा सिमिलरली इसका भी रो से लेके 16kb का अलग से काउंट होगा ठीक है थोड़ा सा कंफ्यूजन हो रहा होगा आप यह तरीके से सोचो कि दो जो मेरी प्रोसेसेस हैं वह दोनों क्या है इंडिपेंडेंटली एग्जीक्यूट हो रही है ठीक है इस प्रोसेस को नहीं पता कि यह प्रोसेस है इस प्रोसेस को नहीं पता प्रोसेस है यही होता था हमारा आइसोलेशन राइट तो आइसोलेशन प्रोवाइड करने के लिए ओएस ने क्या बोला कि भाई तू कोई भी प्रोसेस है प तुम भाई अपना अलग से एड्रेस स्पेस का काउंटर रखो अपने अलग से एड्रेस ंग रखो उसको जीरो से शुरू करो और जहां तक वो प्रोसेस है मान लो 5 एब की प्रोसेस है तो 0 से लेकर 5 एब तक 16 केब का प्रोसेस तो 0 से 16 केब तक इतनी उसके एड्रेस की लोकेशन अपना अलग से एड्रेस रखो ठीक है ओस बीच में क्या करेगा एक लेयर डाल देगा इसके बीच में और वो लेयर क्या करेगी वह लेयर वह लेयर क्या करेगी वह बोलेगी कि भाई आपने बोला p1 एलोकेट कर दो p1 0 से लेक 16kb तक का मेरे पास मैंने इसमें अ बेसिकली एड्रेस ंग करी हुई है तो व क्या करेगा इस रो को उठा के ना आपके इस रो को उठा के यहां पर जो एक्चुअल फिजिकल मेमोरी है ठीक है यह आपकी एक्चुअल मेमोरी नहीं है यह आपका वर्चुअल एटर स्पेस है ठीक है इसको मैं लॉजिकल एटर स्पेस भी बोल रहा हूं वो क्या करेगा जीरो को उठा के मैप कर देगा मान लो यहां पर लोकेशन 128 पे जस्ट इमेजिन एक नंबर ले लिया हमने 128 ठीक है और यहां से ये 16 केब तक जाएगा ठीक है यहां से 16 केब तक जाएगा तो क्या करेगा 128 उठा के यहां से अब इस ऑफसेट को जो 16 केब का ऑफसेट है उठा के इसको यहां से 144 तक इसको लिख देगा अब आप देख रहे हो कि p1 का अलग से एड्रेस पेस चल रहा है 0 से लेकर 16 केबी तक सिमिलरली p2 का अलग से एड्रेस स्पेस चल रहा है 0 से लेकर 16 केब तक ठीक है ओ क्या कर रहा है ये ओ है बी में ठीक है कैसे वर्क करता है य भी हम आगे देखेंगे ओस क्या कर रहा है बोल रहा है कि भाई तुम अपना एड्रेस ंग ना जीरो से लेके शुरू करो ठीक है मान लो आपने कोई प्रोग्राम लिखा है वो भी जीरो से लेकर 16kb तक जाएगा मैंने कोई प्रोग्राम लिखा है मान लो मेरा प्रोग्राम थोड़ा बड़ा है तो मैंने वो मान लो 510 एब का है या 15 एब का है जब वो प्रोग्राम प्रोसेस में कन्वर्ट होता है तो जितना भी डाटा बनता है वो 15kb का बनता है मान लो ठीक है या 15 एब का बनता है तो जो मेरा प्रोग्राम 15 एब का है वो मैं रो से लेकर 15 एब की काउंटिंग मेरी अलग से चलेगी ठीक है उसकी एड्रेस ंग मैं अलग से करूंगा वो मेरी पर्सनल एड्रेस संग होगी जिसको मैं बोल रहा हूं लॉजिकल एड्रेस स्पेस ठीक है तो मुझे इस चीज का लेना देना नहीं है कि एक्चुअली फिजिकल मेमोरी में कौन सा एड्रेस जा रहा होगा कौन सा एड्रेस एक्चुअली अ बेसिकली मेरे पर्टिकुलर किसी वेरिएबल के लिए कौन सा एड्रेस एक्चुअल फिजिकल एड्रेस के अंदर होगा यानी कि फिजिकल रम के अंदर होगा इस इस इस चीज से मेरे को कोई मतलब नहीं है मैं बस सिंपली अपना इधर लॉजिकल एटर स्पेस में काम करता रहूंगा ओस क्या करेगा आपके सारे लॉजिकल एटर स्पेस को जैसे जीरो लिखा है यहां पे इसको मैप कर कर देगा कि एक लोकेशन पे मान लो मैं मान लेता हूं इस जीरो को इसने मैप कर दिया यहां पर 64 पे ठीक है कर सकते हैं हम 64 प मैप कर दिया अब ये 64 प मैप हो गया तो अब इसका जो मैक्सिमम एड्रेस है जो कि मैंने 16 के भी लिखा था वो कहां तक चला जाएगा 80 तक ठीक है अब थोड़ा आपको कंफ्यूजन हो रही होगी मतलब ऐसा कर क्यों रहे हैं एक्चुअली मतलब इतना ज्यादा कॉम्प्लिकेट किया क्यों इसको इसको कॉम्प्लिकेट इसलिए किया है इससे हमें दो चीज मिल रही है ठीक है इस से मुझे दो चीज मिल रही है ओस क्या करेगा फॉर एक पर्टिकुलर पव प्रोसेस किसी भी एक पीव प्रोसेस के लिए वो एक बेस एलोकेट करेगा एट रम यानी कि रम या बोल देता हूं को फिजिकल एड्रेस स्पेस जो रम का एड्रेस स्पेस है वो एक फिजिकल एड्रेस स्पेस है ये एक्चुअली एजिस्ट करता है एक्चुअली ठीक है तो यहां पर मैं क्या करूंगा र वो एक बेस स्टोर करेगा ठीक है मान लो मैं उसको को बी बोल देता हूं और वो ऑफसेट स्टोर करेगा किसी एक प्रोग्राम के लिए ठीक है ऑफसेट स्टोर करेगा अब p1 के लिए हम देख लेते हैं उसने बेस स्टोर किया कि भाई p1 को मैंने कहां लोकेट किया था 128 पे ठीक है उसने बेस स्टोर किया अपना 128 और ऑफ से सेट किया उसने 16 ठीक है सब केवी में मान लेते हैं तो ओस को आइसोलेशन प्रोवाइड करने के लिए p1 के लिए दो चीज स्टोर करनी पड़ी वो क्या कि एक तो बेस स्टोर कर लिया एक उसने ऑफसेट स्टोर कर लिया ठीक है सिमिलरली p2 के लिए वह क्या करेगा यहीं पे लिख देते हैं p2 के लिए वह क्या करेगा बेस स्टोर करेगा बेस कितना है 64 और आपका ऑफसेट कितना है इसका भी 16 है अब इस केस में आइसोलेशन कैसे प्रोवाइड होगी अब यह देखो अब मान लेते हैं p2 का जो प्रोग्रामर है p2 का प्रोग्रामर है उसने कहीं पे लोकेशन प ऐसे लिख दिया कि कोई भी एड्रेस निकालने की कोशिश की उसने है ना और उसने एड्रेसस निकाली अपने जीरो थ एड्रेस से ठीक है प्लस कोई भी एक रैंडम वैल्यू ले ली ठीक है एग्जांपल के लिए रैंडम वैल्यू मैं 129 ले लेता हूं तो 0 + 129 यह कहां पे लिखा हुआ है यह p2 के कोड में लिखा हुआ है 0 + 129 ठीक है तो अब क्या होगा 0 + 129 तो p2 के एड्रेस p2 का एड्रेस हमने निकाला 0 + 129 तो कितना आएगा 129 ठीक है अब यह 129 जो है अब यह 129 जो है यह 129 जो है अब यह बेस में होगा कि क्योंकि जीरो जो है जीरो जो एड्रेस है प2 के लिए वह 64 प मैप है वो 64 पर मैप है ठीक है तो 129 कहां पर मैप होगा 129 मैप होगा आपका 64 प्लस 129 प य एक्चुअल एड्रेस की बात कर रहा हूं एक्चुअल फिजिकल एड्रेस वो कहां पर होगा 129 प् 64 प तो ये मेरा आएगा 193 193 तो इसका मतलब हुआ कि जो आपका p2 का प्रोग्रामर था ना उसने अपने प्रोग्राम में अपने प्रोग्राम में जो आप उसका प्रोग्राम होगा उसमें उसने 129 लिखा होगा एक रैंडम वैल्यू एड्रेस की मतलब एड्रेस में प्लस कर रहे हैं रैंडम वैल्यू कि भाई 0 प् 129 पे कोई एड्रेस है और वो मुझे डाटा एक्सेस करना है ठीक है अब ओस देखेगा कि 0 प् 129 जो कि 129 आ रहा है क्या यह p2 से बिलोंग भी करता है क्या ये पर्टिकुलर एड्रेस p2 से बिलोंग भी करता है उसके लिए वो क्या करेगा वो p2 के करेस्पॉन्डिंग्ली चेक करेगा कि इसकी मैक्सिमम वैल्यू कितनी थी ठीक है इसकी मैक्सिमम वैल्यू कितनी थी 80 80 तक ही जा सकता था ये पर आप यहां इस ये कहां पे एक्सेस करना चाह रहा है 64 ् 129 9 यह 193 एड्रेस को एड्रेस लोकेशन को एड्रेस लोकेशन को एक्सेस करना चाह रहा है कौन सा प्रोग्राम p2 जिसकी मैक्सिमम रेंज थी 16kb यानी 16 प्लस करता उतना यानी कि 80 अब आप p2 प्रोग्राम में बैठ के 193 एड्रेस को एक्सेस करना चाह रहे हो और 193 कहां पर है 193 का यहीं पे होगा मान लो 193 का यहां पे है और यह हो सकता है किसी और प्रोग्राम को एलोकेटेड हो मान लो p4 प्रोग्राम है इसको एलोकेटेड हो ये पर्टिकुलर एड्रेस ठीक है तो ओ इन दो वेरिएबल का यूज करके बेसिकली कि कितना ऑफसेट है आपका यह ऑफसेट कितना है और एक्चुअल बेस कितना है एक्चुअल बेस क्या है कि जीरो लोकेशन जो आपकी लॉजिकल लेटर स्पेस की थी ये फिजिकली एक्चुअली कहां पर मैंने लोकेट की थी इसको पकड़ के इन दोनों वेरिएबल का यूज करके वह यह देख लेता है कि भाई प2 प्रोग्राम जो है क्या वह आउट ऑफ बाउंड यानी कि उसको नॉट अलाउड स्पेस पे एड्रेस को एक्सेस करने की कोशिश तो नहीं कर रहा फिजिकल एक्चुअल फिजिकल मेमोरी में ठीक है दोबारा से रिपीट करता हूं मे बी आपको कंफ्यूजन हो गई हो मैं बोल रहा हूं कि आपके पास हर प्रोग्राम के लिए एक अलग से लॉजिकल एटर स्पेस होता है जो कि जीरो से शुरू होता है ठीक है यानी मैंने प्रोग्राम लिखा वो भी रो से शुरू होगा आपने प्रोग्राम लिखा वो भी जरो से शुरू होगा तो जो यूजर प्रोग्राम लिख रहा है ना वो अपना यही सोच के लिख रहा है कि मेरे ड्रेसिंग मतलब जीरो से शुरू हो रही है यानी कि ओएस उस को ऐसा विजुलाइज करा रहा है कि भाई आप ही की प्रोसेस है ठीक है आप ही की प्रोसेस है मेमोरी के अंदर वो कोई प्रोसेस ही नहीं है तो आपके लिए मैंने जीरो से एलोकेट किया है जीरो से आप कहीं तक भी एलोकेट करो ठीक है ये किसने किसने बोला है ये ओस ने आपको ऐसी फ्रीडम दी है कि आइसोलेशन दी है अलग से ठीक है तो जीरो से लेके 16 16 केब तक आपने एलोकेट कर दिया ठीक है अब ओस आपको बोल रहा है एब्स्ट्रेक्ट कर रहा है यहां पे चीजें कि फिजिकल मेमोरी में एक्चुअली ये जीरो कहां पर जाके एलोकेट होगा उसकी एक यूजर को जो प्रोग्रामर है उसको उस चीज की लोड लेने की जरूरत ही नहीं है ठीक है उस चीज की टेंशन उसको लेनी नहीं है ओ खुद से जीरो को ट्रांसलेट करेगा कि 64 पे इसको एड्रेस ट्रांसलेशन भी कहते हैं ठीक ठीक है थोड़ा सा पढ़ेंगे इसकी डेफिनेशन वगैरह अभी अभी कांसेप्ट समझ लो बस जीरो को 64 प मैंने मैप कर दिया अबे 64 में मैपिंग आपको नहीं पता ये जो यूजर मोड में यहां यूजर मोड चल रहा है यहां ये यूजर मोड है यूजर मोड कनल मोड हमने पढ़ा था सब ठीक है तो यूजर मोड के अंदर आपको तो जीरो एड्रेस पता है ओस ने पीछे से जीरो को 64 प मैप कर दिया और ये आपको भी नहीं पता कि 64 में मैप हुआ है और उसने मैप करके ये लिख लिया कि p2 की जो एक्चुअल रम में एड्रेस ंग है ना वह 64 से स्टार्ट होती है यह किसने लिख लिया यह ओस ने नोट कर लिया अपना ठीक है और ऑफसेट ऑफसेट यह है कि आपने कहां तक बेसिकली अलाउ किया हुआ है प्रोग्राम को आपने 16kb का प्रोग्राम लिखा है तो मैं 16 वैल्यू ले लेता हूं कि 16 तक बेसिकली इतना ऑफसेट होगा कि यहां से यहां तक की एड्रेस ंग बेसिकली मैंने ली हुई है ठीक है तो ओस क्या करेगा 16 के कॉरेस्पोंडेंस कि वर्चुअली वर्चुअली तो यहां पर आपका प्रोग्राम रो से 16 तक आपको दिख रहा है कि 0 से 16 केबी तक है इतने एड्रेस आपको दिखेंगे बट एक्चुअली क्या हो रहा है एक्चुअली आपका जीरो एड्रेस जो आपको जीरो लग रहा है वोह 64 पे मैप है और 16 जो है 80 पे मैप है ठीक है तो ये ये ये चीज होती है ठीक है ये तो एब्स्ट्रेक्शन है आपको पता ही नहीं है इस चीज में बट ये ऐसा ओएस कर क्यों रहा है ओएस इसलिए कर रहा है कि ओस दो वेरिएबल स्टोर कर रहा है एक बेस एक ऑफसेट और उससे फिर जब भी मान लो p2 प्रोग्राम p2 प्रोग्रामर जो है जिसम जिसमें उसने बोला है कि मेरा एड्रेस लोकेशन तो 16kb तक ही है यानी कि 16kb का ही वह प्रोसेस है ठीक है तो 16kb के प्रोसेस है परट उसके प्रोग्राम में हमने गलती से यहां पे कोई रैंडम वैल्यू 0 + 129 लिख दी और 129th एड्रेस को वो एक्सेस करने की कोशिश कर रहा है तो एक्चुअल एड्रेस स्पेस क्या आएगा 64 64 क्यों लिया हमने यहां पे 64 क्यों क्योंकि इसके एक्चुअल लोकेशन तो 64 ही है रम के अंदर तो 64 + 129 करके 193 आया अब 193 एक्चुअल एडर स्पेस प मैं देखूंगा तो 193 कहां पड़ रहा है आपका 193 कहां पड़ रहा है 193 आपका किसी और प्रोसेस का है जैसे p4 प्रोसेसर किसी और प्रोसेस के अंदर है तो इस तरीके से ओस एक एक्सेप्शन थ्रो कर देगा एक ट्रैप थ्रो कर देगा कि भाई यह पर्टिकुलर प्रोसेस जो है यह इलीगल ऑपरेशन करने की कोशिश कर रही है दूसरे एड्रेस को एक्सेस करने की कोशिश कर रही है जोक दैट एड्रेस बिलोंग टू सम अदर प्रोसेस ठीक है तो इस तरीके से इन वेरिएबल का यूज करके ओस आइसोलेशन और मेमोरी प्रोटेक्शन प्रोवाइड करता है ठीक है बहुत सारी चीजें लि हमने एकदम से लॉजिकल एड्रेस एड्रेस पेस लॉजिकल एड्रेस ठीक है फिजिकल एड्रेस एक बार नोट्स पे चलते हैं इसको जल्दी से ब्रीफ करता हूं मैं ठीक है तो यार नोट्स पे आते हैं तो हमारे पास एक लॉजिकल एडर स्पेस है लॉजिकल एड स्पेस क्या है इट इज जनरेट बाय सीपीयू ठीक है द लॉजिकल एडर स्पेस इज बेसिकली द एड्रेस ऑफ एन इंस्ट्रक्शन और डाटा यूज्ड बाय ए प्रोसेस यानी कि एक प्रोसेस का होता है ये ठीक है एक प्रोसेस कोई हर पर्टिकुलर प्रोसेस अपना खुद का लॉजिकल एडस स्पेस यूज़ करेगी जो कि ज़ीरो से शुरू होगा एक मैक्स वैल्यू तक जाएगा व मैक्स वैल्यू क्या है मान लो मैंने प्रोग्राम बना रखा है 5 एब का तो मेरा 5 एब तक जाएगा वो ठीक है यानी कि इतने एड्रेसस होंगे मेरे पास जितने भी एड्रेस होंगे वो इतने एड्रेसस होंगे इतने एड्रेसस मैंने इंस्ट्रक्शन लिखी होगी ठीक है और ऐसा बेसिकली इस तरीके से सारे प्रोसेस जीरो से 16 के भी जीरो से 16 में भी ऐसे मतलब ऐसे लिखे क्यों हुए हैं आइसोलेशन के लिए ठीक है दो प्रोसेस चल रही है इंडिपेंडेंट चल रही है ओएस आइसोलेशन प्रोवाइड करता है तो यूजर के लिए मेरी यूजर के लिए उसकी खुद की प्रोसेस चल रही है इसलिए उसकी एड्रेस ंग भी 016 यानी कि एक ज़ीरो से स्टार्ट हो रही है इसकी भी ड्रेसिंग ज़ीरो से स्टार्ट हो रही है बट एक्चुअली जो मैपिंग है इसकी एक्चुअल मैपिंग जो है r के अंदर इस वाले p1 के ज़ीरो की कहां पे है 128 पे p2 की ज़ीरो की कहां ज़ीरो की कहां पे है 64 पे यह काम कौन कर रहा है ओस कर रहा है यूज़र को इस चीज से कोई मतलब नहीं है ठीक है यूजर कैन एक्सेस लॉजिकल एडर स्पेस ऑफ ए प्रोसेस ठीक है यूज़र लॉजिकल एड्रेस पेज एक्सेस कर सकता है यानी कि जब भी आप प्रोग्राम बनाते हो ना जैसे c+ प का प्रोग्राम है c+ प का प्रोग्राम आप ए परट करके ए बी सीडी आपने कोई वेरिएबल लिया हुआ है उसका एड्रेस प्रिंट कराते हो तो जो प्रिंटेड एड्रेस दिखता है ना वो एक्चुअल रम का एड्रेस नहीं दिख रहा होता आपको वो आपको आपका लॉजिकल एडस पेस दिख रहा होता है ठीक है आपका लॉजिकल एडस पेस दिख रहा होता है ठीक है बट एक्चुअली जो इसकी एलोकेशन है वो फिजिकल एट स्पेस में कहीं प होती है उसको उस उससे आपको कोई मतलब भी नहीं है ठीक है तो यूजर हैज इनडायरेक्ट एक्सेस टू द फिजिकल एड्रेस थ्रू लॉजिकल एड्रेस और वो किस तरीके से एड्रेस है वो ऐसे है कि मेरे पास जो यह बेस है ये मेरे पास बेस है वो स्टोर करके रखता है बेस पर उतनी वैल्यू प्लस कर देता है प्लस करके मैं बेसिकली एक्चु फिजिकल एड्रेस पर पहुंच जाता हूं ठीक है द सेट ऑफ ऑल लॉजिकल एड्रेस दैट आर जनरे बाय एनी प्रोग्राम इज रेफरड टू एज लॉजिकल एड्रेस फेस ठीक है यानी कि यह मेरा प2 प्रोग्राम था इसके अंदर कितने एड्रेसस थे तो जीरो से लेकर 16 केबी को मैं बोलूंगा कि यह p2 का वर्चुअल एड्रेस स्पेस है वर्चुअल एटस फेस भी बोल सकता हं लॉजिकल एट स्पेस भी बोल सकता हूं ठीक है और जैसे कि हमने बोला इसकी जो स्टार्टिंग है जीरो से मैक्स वैल्यू तक होती है जहां तक भी आपका आपने प्रोग्राम लिखा है जहां तक भी एड्रे सेबल है वो प्रोग्राम ठीक है अब देखते हैं फिजिकल एड्रेस स्पेस यूजर कैन नेवर एक्सेस द फिजिकल एडस स्पेस ऑफ प्रोग्राम फिजिकल एड स्पेस एक्चुअल एडर स्पेस है वो वर्चुअल है ठीक है ये चीज एक्चुअल एजिस्ट नहीं कर रही है इसके लिए भी 060 16kb है इसके लिए भी 0 16kb है बट एक्चुअली जो फिजिकली रम में स्टोर्ड है वो 64 80 128 144 इस तरीके से स्टोर्ड है ठीक है तो यूजर जो है एक्चुअल फिजिकल एड्रेस स्पेस को नहीं डायरेक्टली एक्सेस कर सकता ठीक है वो लॉजिकल एड्रेस स्पेस को देख रहा होता है बस द फिजिकल एड्रेस स्पेस इन द मेमोरी यूनिट इट्स लोकेशन इन द मेन मेमोरी ठीक है मेन मेमोरी के अंदर इसकी लोकेशन होती है ए सेट ऑफ ऑल द फिजिकल एड्रेसस कॉरस्पॉडिंग टू द लॉजिकल एड्रेस इज कॉमनली नोन एज अ फिजिकल एडस स्पेस तो फिजिकल एडस स्पेस क्या होता है कि जो भी आपका पर्टिकुलर लॉजिकल एडस स्पेस है रो से 16kb फॉर p2 ठीक है इसके कॉरस्पॉडिंग जो एक्चुअली एड्रेस स्पेस है जो एक्चुअल एड्रेस स्पेस है समझ रहे हो एक्चुअल मतलब ये रियली में यहां पर है और ये जो आपका लॉजिकल एटर स्पेस था ये वर्चुअली था ठीक है हर प्रोसेस का अलग-अलग अलग-अलग था आइसोलेशन के लिए हमने रखा हुआ था तो इसके करेस्पॉन्डिंग्ली एड्रेस स्पेस है इसको मैं बोल रहा हूं कि ये फिजिकल एड्रेस स्पेस है इसको मैं बोल रहा हूं कि ये फिजिकल एड्रेस स्पेस है ऑफ p2 ठीक है अब देखते हैं कि इट इज कंप्यूटेड बाय मेमोरी मैनेजमेंट यूनिट यह मेमोरी मैनेजमेंट यूनिट के द्वारा कंप्यूट किया जाता है मेमोरी मैनेजमेंट यूनिट क्या है यह पूरी यूनिट है जो प्लस माइनस का काम कर रही है ठीक है इसके बारे में देखते हैं आगे रेंज क्या है इसकी r प् 0 से लेकर r प्स मैक्स ठीक है ये जीरो से लेकर मैक्स थी हर प्रोसेस के लिए जीरो से लेके मैक्स होगी पर ये r प् 0 से लेकर r प् मैक्स तक होगी यह आर क्या है आर वही है हमारा बेस वैल्यू बेस वैल्यू क्या है जो एक्चुअली उस प्रोसेस के लिए एक्चुअली इस प्रोसेस के लिए जो फिजिकल रैम में एलोकेटेड स्पेस है उसका बेस एड्रेस कि कहां से ये प्रोसेस एक्चुअली स्टार्ट हो रही है ठीक है तो जो ये रन टाइम मैपिंग है ना द रन टाइम मैपिंग ऑफ वर्चुअल टू फिजिकल एटस फेस इज डन बाय हार्डवेयर डिवाइस हार्डवेयर डिवाइस के द्वारा की जाती है ये ठीक है और इसको मैं इस हार्डवेयर डिवाइस को मैं मेमोरी मैनेजमेंट यूनिट कहता हूं ठीक है एमएमयू मेमोरी मैनेजमेंट यूनिट होती है द यूजर प्रोग्राम मेनली जनरेट द लॉजिकल एडर स्पेस तो यूजर प्रोग्राम जैसे जो p1 प2 का एग्जांपल लिया यूजर प्रोग्राम है हमारा हमारा कोई मान लो मेरे एडस स्पेस जितना भी होगा जो भी मैं लिख रहा हगा ना मल एडस स्पेस में क्या कह रहा हूं जो आप कोड लिखते हो ठीक है आपने कोड में लिखा ए इक्वल टू ए इक्वल टू बी और आपने कोई हीप प एलोकेट किया मेमोरी मान लो ही प मेमोरी एलोकेट कर जो भी एड्रेसस आपको दिख रहे होंगे ना ए परसेंट करके वो सारे लॉजिकल एड्रेस होंगे ठीक है वो फिजिकल एक्चुअली रम के अंदर वाले एडस नहीं होंगे वो लॉजिकल एडस होंगे तो यूजर थिंक्स दैट प्रोग्राम इज रनिंग इन लॉजिकल एडस स्पेस ठीक है यूजर पर्सपेक्टिव से एक लॉजिकल एटर स्पेस पर रन हो रहा है ठीक है वो जिसकी रेंज जीरो से मैक्स तक है बट प्रोग्राम मेनली मेनली नीड्स फिजिकल मेमोरी इन ऑर्डर टू कंप्लीट इ एग्जीक्यूशन बट एक्चुअली वो एलोकेटेड कहां है वर्चुअली वो यहां पर प्रेजेंट है बट एक्चुअली एलोकेटेड वो रम के अंदर ही है बट यूजर को इसको जानने की कोई जरूरत नहीं है ठीक है यही बेसिकली मैं बोलूंगा कि ब्यूटी है ओएस की ठीक है वो अंडरलाइन कॉम्प्लेक्टेड वेयर की ना वो छुपा के रखता है ठीक है तो अब हम देख लेते हैं दोबारा से जो भी हमने इतना सारा डिस्कस किया इसको सब हमने यहां पे लिखा हुआ है कि ये मेमोरी मैपिंग और प्रोटेक्शन कैसे होती है हाउ ओस मैनेस द आइसोलेशन प्रोटेक्शन ओस प्रोवाइड दिस वर्चुअल एड्रेस स्पेस वर्चुअल एड्रेस स्पेस कांसेप्ट होता है कि हर प्रोसेस के लिए जीरो जीरो से लेके मैक्स तक मेरे पास एड्रेसस होंगे सबके अलग-अलग काउंट काउंट होंगे ठीक है टू सेपरेट मेमोरी स्पेस वी नीड एबिलिटी टू डिटरमाइंड द लीगल रेंज दैट ए प्रोसेस मे एक्सेस एंड टू इंश्योर द प्रोसेस कैन एक्सेस ओनली दज लीगल रेंज ठीक है जैसे कि हमने य बात करी कि इसकी लीगल रेंज क्या है 64 से 80 ठीक है और इसको एमएमयू मेरा मेमरी मैनेजमेंट यूनिट कैसे पहचान रहा है वो ऐसे पहचान रहा है वो p2 के करेस्पॉन्डिंग्ली एड्रेस एक्चुअल फिजिकल मेमोरी में फिजिकल मेमोरी में 64 से स्टार्ट हो रही है ये 64 लोकेशन से स्टार्ट हो रही है और जा कहां तक जा सकती है + 16 यानी कि 80 तक जा सकती है बस उससे जाग नहीं जा सकती चलिए बढ़िया ठीक है ठीक है और जो हमने बेस की बात करी है कि बेस बेसिकली हर प्रोसेस से रिलेटेड मैं एक बेस स्टोर करके रखता हूं जो कि एक्चुअल एड्रेस है आपका फिजिकल मेमोरी के अंदर ठीक है उसको मैं स्टोर कहां पे रखता हूं उसको मैं मेमोरी मैनेजमेंट यूनिट के अंदर रीलोकेशन रजिस्टर में रखता हूं ठीक है जैसा कि हमने बात करी कि यह जो ट्रांसलेशन का काम है ठीक है ये जो ट्रांसलेशन का काम है वर्चुअल टू ये हार्डवेयर डिवाइस करता है तो हार्डवेयर डिवाइस कैसे बना होता है रजिस्टर होता है तो उसमें एक रीलोकेशन रजिस्टर होता है जिसमें कि एक स्मले एस्ट फिजिकल एड्रेस यानी कि बेस एड्रेस स्टोर करके रखता है एंड द लिमिट रजिस्टर कंटेंस द रेंज ऑफ लॉजिकल एड्रेस ठीक है वही बात हो गई ये मेरा बी जो हो गया लोकेशन रजिस्टर के अंदर लिख दूंगा मैं इसको कि भाई 64 से स्टार्ट है ठीक है फिर ऑफसेट जो है ये 16 जो कि बेसिकली मेरा 16 लॉजिकल एटर स्पेस में था इसको मैं कहां करूंगा इसको मैं लिमिट रजिस्टर में लिख दूंगा कि भाई इतनी लिमिट है इससे आगे नहीं जाना आपको ठीक है ईच लॉजिकल एड्रेस मस्ट बी लेस दन द लिमिट रजिस्टर इसका मतलब क्या है कि जो पीट प्रोग्राम है ना मेरा ये जो प2 प्रोग्राम है यह जो प2 प्रोग्राम है इसके जितने भी एड्रेसस होंगे जितने भी इंस्ट्रक्शंस लिखी होंगी वो बेसिकली रो से लेकर 16 केब के बीच में लिखी होंगी समझ गए जीरो से लेकर 16 केब के बीच में लिखी होगी इसका मतलब क्या है कि जो मेरा प्रोग्राम है प2 प्रोग्राम है जो कि प्रोसेस में कन्वर्ट हो चुका है उसके सारा जो इंस्ट्रक्शंस डाटा ठीक है जितना भी कोड का सेक्शन है डेटा सेगमेंट है वो सारा मेरा 0 6 के बीच में लिखा हुआ है इसके बाहर इससे ज्यादा नहीं है मेरा ठीक है तो यह ऑफसेट है कि मैक्सिमम 16 केबी तक ही बेसिकली मेरे पास उसकी एड्रेस इंग है तो व कह रहा है कि जो लॉजिकल एड्रेस है वह लिमिट रजिस्टर से कम ही होना चाहिए ठीक है लिमिट रेजिस्टेंट की वैल्यू क्या है वही ऑफसेट जितनी वैल्यू रखते हैं ठीक है अब ये देखो ये मेरी एड्रेस ट्रांसलेशन है किस तरीके से वर्क करती है ये पूरा एमएमयू का यूनिट है इसको मैं एमएमयू का यूनिट बोल सकता हूं अब देखो कितनी ब्यूटीफुली काम होगा सीपीयू जो है मेरा वो लॉजिकल एड्रेस जनरेट करेगा लॉजिकल एड्रेस क्या था यहां पे 16kb तक मतलब 0 से 16 p2 के लिए सिमिलरली p1 के लिए रो से बेसिकली 16 तक ही था हमने माना हुआ था ठीक है तो ये क्या करेगा ये मान लो कोई 0 से 16 के बीच में कोई वैल्यू ले लेते हैं ज से फाइव ले लेते हैं ठीक है मेरे पास फाइव वैल्यू है दोबारा से एग्जांपल ब यहीं प ठीक है तो अब एग्जांपल ले लेते हैं सिंपली ये हमारा मान लो मेरे पास प्रोसेस है ठीक है जीरो से लेक ये 10 तक जाती है ठीक है 10 इतना 10 के बी का एड्रेस है मान लो तो और इसका जो बेस है यानी कि बेस वैल्यू है बेस वैल्यू क्या थी हमने डिस्कस किया बेस वैल्यू जो थी कि एक्चुअल मेमोरी के अंदर एक्चुअल मेमोरी के अंदर यह कहां पर एलोकेटेड है ठीक है तो यह मैं मान लेता हूं एक्चुअल मेमोरी में बेसिकली 50 पर है एक्चुअल मेमरी 50 पर है िकल एड स्पेसिंग क्या है ये इसका लॉजिकल एड स्पेस है जिसको वर्चुअल एड स्पेस भी बोल सकता हूं यह बेस मेरा है यह बेस मेरा फिजिकल मेमोरी के अंदर है ठीक है फिजिकल मेमोरी के अंदर है और ऑफसेट मेरा कितना होगा यानी कि कितनी लिमिट रजिस्टर होगा वो 10 होगा राइट तो जस्ट से की लॉजिकल एड्रेस जो है मेरा वह जनरेट हुआ मान लो फ ठीक है फ जनरेट हुआ अब क्या करूंगा लिमिट रजिस्टर क्या करेगा लिमिट रे देखेगा कि क्या यह ऑफसेट से कम है ऑफसेट क्या था 10 क्या व 10 से कम है अगर 10 से कम होगा तो मैं आगे बढ़ जाऊंगा कि भाई हां 10 से कम है तो आगे बढ़ सकते हैं यानी कि इसकी ड्रेसिंग सही होगी आगे बढ़ा आगे बढ़ने के बाद मैंने देखा रीलोकेशन रजिस्टर यानी कि बेस 10 में इस फ में बेस ऐड कर दिया तो मैंने य 5 प्लस बेस ऐड करा यह आ गया 15 ठीक है तो यह 15 अब जाके यह एक्चुअल एड्रेस निकला यह 15 मेरा एक्चुअल एड्रेस है एक्चुअल एड्रेस इन रम तो इस तरीके से एड्रेस ट्रांसलेशन वर्क करती है कि मैं लॉजिकल एड्रेस से फिजिकल एड्रेस में इस तरीके से जाता हूं ठीक है यह मेरा और अब हो सकता है मान लो वही जो एग्जांपल हमने लिया था प्रोग्रामर ने क्या करा कि लॉजिक जो सीपीयू ने लॉजिकल लेटर स्पेस पर्टिकुलर प्रोग्राम के लिए जो जनरेट किया वो मान लो इसके लिए मैं बोलता हूं 15 जनरेट कर दिया पर इसका ऑफसेट क्या है 10 कि 10 से आगे तो लीगल इंस्ट्रक्शन ही नहीं है तो अब क्या होगा ये यहां जाकर दे देखेगा कि क्या जो 15 है क्या वो लेस देन है लिमिट के 10 के लेस देन है नहीं है तो नो करके मैं यहां पे एड्रेस ंग एरर थ्रो कर दूंगा एक एक्सेप्शन थ्रू हो जाएगी एक एक्सेप्शन थ्रू हो जाएगी ठीक है तो इस तरीके चीजें वर्क करती हैं तो अब यह देखो यहां पे साफ-साफ लिखा है कि एमएमयू मैप्स द लॉजिकल एड्रेस डायनेमिक बाय एडिंग द वैल्यू इन द लॉजिकल इन द रीलोकेशन रजिस्टर इसका मतलब जब भी आप प्रोग्राम रन करते हो ना आपका सीपीयू तो आपके पर्टिकुलर प्रोग्राम से रिलेटेड अ लॉजिकल एडस जनरेट करता रहता है ठीक है अब इसके अंदर डायनेमिक रन टाइम पे ही ना आपका एमएमयू क्या करता है लिमिट रजिस्टर का यूज करके और लोकेशन रजिस्टर का यूज करके यह प्लस कर करके फिजिकल एड्रेस जनरेट करता रहता है और आपको बेसिकली एक्सेस करवाता रहता है मेमोरी ठीक है आप जब भी मान लो बोलते हो यहां पे मुझे फिफ्थ लोकेशन प चाहिए तो यहां जाके इनका यूज करता है इसका यूज करता है यूज करके फिफ्थ लोकेशन जहां पे भी अलाइड है वो बेसिकली व वो वाला डाटा आपको उठा लाता है आप बोलते हो कि मुझ मुझे मान लो सेकंड लोकेशन पर लिखनी है तो वही सेम काम लिमिट और रीलोकेशन रजिस्टर का यूज करके जो भी बेस होता है उसको ऐड करके एक्चुअल फिजिकल मेमोरी में वो पर्टिकुलर आपका जो आपने यहां टू एड्रेस है वो कहां पर एलोकेटेड है वो निकाल के लाता है आपको यहां पर एक्सेस दे देता है इस तरीके से डायनेमिक काम चलता रहता है अब दूसरा ये देखो व्हेन सीपीयू शेड्यूलर सिलेक्ट्स ए प्रोसेस फॉर एग्जीक्यूशन द डिस्पेचर लोडस द लोकेशन एंड लिमिट रजिस्टर विद द करेक्ट वैल्यूज अब अबी देखो कि मान लो अभी p1 प्रोसेस चल रही है जस्ट इमेजिन p1 प्रोसेस चल रही है p1 प्रोसेस चल रही है p1 के करेस्पॉन्डिंग्ली मिट रजिस्टर की वैल्यू होगी सिमिलरली p2 के लिए बेस आपका और लिमिट रजिस्टर की वैल्यू होगी ठीक है बेस बेस कहां पे स्टोर होता है आपका रीलोकेशन रजिस्टर में ठीक है बेस और ऑफसेट कहां स्टोर होता है आपका लिमिट में तो हर प्रोसेस से रिलेटेड आपकी रीलोकेशन रजिस्टर और लिमिट रजिस्टर की अलग-अलग वैल्यूज होगी क्योंकि हर प्रोसेस एक्चुअली आपकी रम के अंदर अलग-अलग लोकेशन पे एलोकेटेड है राइट तो अब ये काम देखने के लिए जब भी आपका कांटेक्ट स्विचिंग होती है तो डिस्पेचर ये काम करता है डिस्पेचर क्या करता है कांटेक्ट स्विच होते ही आपकी करेक्ट वैल्यू ऑफ लिमिट रजिस्टर एंड रीलोकेशन रजिस्टर कॉरेस्पोंडेंस एकली प्रोसेस जो कि रिस्टोर होके आ रही है उसकी वैल्यू स्टोर कर देता है ठीक है तो ये काम बेसिकली कांटेक्ट स्विचिंग के टाइम भी ये होता है अगर किसी का डाउट आता है कि अगर कोई एक प्रोसेस चल रही है दूसरी प्रोसेस आई तो लिमिट रजिस्टर की वैल्यू चेंज होगी कि नहीं तो वो एक्चुअली होगी क कांटेक्ट स्विचिंग चाहिए हर प्रोसेस से रिलेटेड अलग-अलग आपकी बेसिकली लिमिट और रिशन की वैल्यू होगी ठीक है बहुत ही बढ़िया इस प्रोसेस को हम एड्रेस ट्रांसलेशन बोल रहे हैं बहुत ही बढ़िया अब हम यह देखते हैं यह तो हमने समझ लिया कि एक्चुअली आइसोलेशन मेन प्रोटेक्शन प्रोवाइड कैसे कर रहा हूं लॉजिकल एड स्पेस हो गया मेरा फिजिकल एडस स्पेस हो गया अब हम पढ़ते हैं कि एलोकेशन मेथड्स क्या है फिजिकल मेमोरी के अंदर ठीक है एलोकेशन मेथड दो तरीके से होते हैं फिजिकल मेमरी में बात कर रहे हैं हम ठीक है लॉजिकल मेमोरी तो कुछ है ही नहीं मेमोरी तो बेसिकली ओएस आपको एक एब्स्ट्रेक्शन प्रोवाइड कर रहा है ठीक है कि आप अ आप सब अपनी काउंटिंग जीरो से लेक एंड तक यानी कि जितना भी आपका साइज है उतना तक आप यूज कर लो ठीक है यह तो हटा दो इस चीज को फिजिकल मेमोरी के अंदर कैसे आप एक्चुअली एलोकेट करोगे ठीक है मतलब कि आप यह सारा काम तो यूजर मोड के लिए था ठीक है बट ओस एक्चुअली मेन मेमोरी में कहां से कहां तक मेमोरी रखूं मैं कहां से कहां तक मेमोरी रखूं कहां से कहां तक p1 को एलोकेट करूं p2 को एलोकेट करूं ये सारे काम ओस कैसे कर रहा है तो उसके एलोकेशन की की दो तरीके टेक्नीक होती है एक होती है आपकी कांटीगुअस एलोकेशन कांटीगुअस मेमोरी एलोकेशन एक होती है आपकी नॉन कंटीन्यूअस मेमोरी एलोकेशन इस वीडियो में हम अ बेसिकली कंटस मेमोरी एलोकेशन के बारे में पढ़ेंगे नॉन कंटस के बारे में हम नेक्स्ट वीडियो में पढ़ेंगे तो अभी कंटिन्यू करते हैं इसको ठीक है डबल क्लिक करते हैं कंटीन्यूअस मेमोरी एलोकेशन किस क्या होती है कंटीन्यूअस से आपको समझ आ रहा होगा कि कंटस का मतलब है कि हम कंटीन्यूअसली मेमरी को एलोकेट कर रहे हैं ठीक है एक एग्जांपल देता हूं सिंपली मा मान लो मेरे पास ये रैम है ठीक है ये मेरे पास रम है जैसे कि हमने बात की जीरो से लेके कुछ मान लो 128 तक ओस है मान लो जस्ट इमेजिन ओ है ठीक है उसके बाद यहां से लेके 200 तक मान लो एक फ्री स्पेस पड़ी है अब उसके बाद मान लो ओ आता है कि भाई p1 एक प्रोसेस आई एक न्यू प्रोसेस आई p1 ठीक है अब ओस के पास रिक्वेस्ट आई कि भाई इसको ना आप हमें एड्रेस प्रोवाइड करवा दो हमें इसको बेसिकली मेमोरी में लेकर आना है तो ओस क्या करेगा ओस उठा के फ्री स्पेस देखेगा और मान लेते हैं कि ओस ने 200 लोकेशन से लेकर और 300 तक इसको एलोकेट कर दिया तो अब आप यह देख रहे हो यह कंटीन्यूअस एलोकेशन है यानी कि जो मेरा पव प्रोसेस होगी पव प्रोसेस जीरो से लेकर मान लो इसका यह 10 केबी की थी 10 की थी तो इसका जो एक एक एड्रेस है ना एक एक एड्रेस मान लो नटू 3 फर फ इस एक एक एड्रेस को उठा के ना वो कंटीन्यूअसली ही इसको उठा के इधर पुट कर देता है व ऐसा नहीं करता कि पहले इस वाले एड्रेस को उठा के तो मैं इधर लिख देता हूं इधर लिख देता हूं और इस वाले एड्रेस को उठा के मैं पर्टिकुलर इधर लिख देता हूं तो ऐसे बीच में गैप्स नहीं छोड़ रहा वो समझ रहे हो वो बीच में गैप्स नहीं छोड़ रहा वो पूरे ब्लॉक को ही उठाकर वो पूरे ब्लॉक को उठाकर कंटीन्यूअसली डाल देता है ठीक है यानी p1 के कोई पार्टीशंस करके नहीं उठा के यहां पे डाल रहा वो सिंपली p1 को उठा के पूरा पूरा डाल देता है यहां पे सिमिलरली अगर p2 प्रोसेस आई तो p2 को भी पूरा-पूरा डाल दूंगा मैं ठीक है इसको मैं कह रहा हूं कंटीन्यूअस एलोकेशन ठीक है अब आप ये देखो कंटीन्यूअस एलोकेशन करने के लिए ठीक है कंटीन्यूअस एलोकेशन में जो ईच प्रोसेस होती है ना ईच प्रोसेस इज कंटेंड इन अ सिंगल कंटीन्यूअस ब्लॉक यही डिस्कस किया हमने उठाकर इसको सिंगल कंटीन्यूअस ब्लॉक में डाल दिया ठीक है अब इसके भी दो तरीके होते हैं ठीक है अब क्योंकि मैं एक सिंगल कंटीन्यूअस ब्लॉक के अंदर डाल रहा हूं ठीक है यह मेरी रम थी मान लो इसके अंदर सिंगल कंटीन्यूअस ब्लॉक में डाल रहा हूं मैं तो मैं क्या कर सकता हूं कि दो तरीके से पार्टीशनिंग कर सकता हूं ठीक है इस रम को उठा के मैं दो तरीके से पार्टीशन कर सकता हूं कि सबसे पहले मैं फिक्स पट पशन कर दूं मान लो ये भी 4 एबी है ये भी 4 एबी ये भी 4 एब ये भी 4 एब ये भी 4 एबी ठीक है तो रम को उठा के मैंने फिक्स्ड ब्लॉक्स के अंदर डिवाइड कर दिया तो इस तरीके को मैं बोल रहा हूं फिक्स्ड पार्टीशनिंग ठीक है फिक्स्ड ब्लॉक्स में डाल दिया और दूसरा तरीका हो सकता है दूसरा तरीका यह हो सकता है कि मैं फिक्स्ड पार्टीशनिंग जो करूंगा फीज पार्टीशन जो करूंगा वो मैं ऐसे भी कर सकता हूं कि यह 4 एबी ले लिया यह मैंने 6 एबी ले लिया यह मैंने 10 एबी ले लिया यह वापस से 4 एब ले लिया ठीक है यानी कि मैंने क्या करा कंटीन्यू कंटीन्यूअस ब्लॉक्स में डिवाइड कर दिया ठीक है अब डिवाइड करने के भी दो तरीके हो सकते हैं यह मैंने इक्वल साइज में डिवाइड कर दिया यह मैंने डिफरेंट साइज में डिवाइड कर दिया ठीक है तो इस तरीके को मैं बोलता हूं फिक्स्ड पार्टीशनिंग रम को फिक्स्ड पार्टीशन में डिवाइड कर दो ठीक है और इन पार्टीशंस में जा जाके फिर मेमोरी वो बेसिकली प्रोसेस को एलोकेट करो ठीक है और ये पार्टीशनिंग दो तरीके से हो सकती है मैं फिक्स साइज कर सकता हूं यानी कि फिक्स साइज नहीं सॉरी इक्वल साइज कर सकता हूं चार च एबी ले लिया मैंने यहां मैंने वेरिएबल साइज भी ले लिया तो वेरिएबल साइज भी हो सकते हैं ठीक है वेरिएबल साइज भी हो सकते हैं अब इसका एग्जांपल देखते हैं सीधा हमने यहां पर ड्र किया है तो मेन मेमोरी डिवाइडेड इनटू पार्टीशंस ऑफ इक्वल साइज और डिफरेंट साइज ठीक है ये हमने डिस्कस किया तो यह देखो यह आपका पर्टिकुलर मेमोरी है ठीक है रम है स्टार्टिंग यहां पर जीरो से एड्रेस यहां से शुरू हो रहा है तो स्टिंग में मैंने ऑपरेटिंग सिस्टम रखा हुआ है यह तो जरूरी है ठीक है उसके बाद मैंने 44 एबी के पार्टीशंस बना दिए देख रहे हो पार्टीशन टूथ 4 4 एबी के पार्टीशन बना दी 4 ए पार्टीशन बनाने के बाद मान लो मेरे पास एक चार प्रोसेस आई p1 प2 p3 और सब 3 एमबी की प्रोसेसस है तो मैं क्या करूंगा एक ब्लॉक में उठा के एक ब्लॉक में उठा के इसको डाल दूंगा ठीक है और यहां से 3 एबी तक मैंने एलोकेट कर दिया इसको यहां से उठा के 3 एबी तक एलोकेट ट कर दिया बाकी का 1 एबी इसमें फ्री बच गया ठीक है थोड़ा सा स्ट्राइक कर रहा होगा माइंड में एक एबी फ्री कैसे बच गया डिस्कस करेंगे इस पर भी ठीक है सिमिलरली p2 को एलोट किया इस पार्टीशन में डाल दिया मैंने इस पोजीशन से लेके इस पोजीशन तक सिमिलरली p3 को इस पोजीशन से इस पोजीशन तक डाल दिया मैंने ठीक है तो यानी कि हमने पहले से ही ना बेसिकली प्रोसेस को डालने से पहले ही प्रोसेस को रैम पे एलोकेट करने से पहले ही रम के मैंने पार्टीशंस बना रखे हैं फिक्स्ड पार्टीशंस ठीक है प्रोसेस अभी लोट नहीं हुई उसे पहले ही बना रख फिक्स पार्टीशन अब फिक्स पार्टीशन बनाने से क्या हुआ है कि p1 कोई आएगी तो व किसी एक पार्टीशन को देखेगी अगर वहां पे कोई कोई प्रोसेस एलोकेटेड नहीं है तो उस पार्टीशन में मैं प्रोसेस को एलोकेट कर दूंगा वो एक पार्टीशन के अंदर एक से ज्यादा प्रोसेस नहीं हो सकती ठीक है दिस इज रूल ठीक है तो इस तरीके से मान लो 33 एब के थे 33 एब के मैंने डाल दिए यहां पे 33 m 33b 3 अब ध्यान से देखो हर पार्टीशन में ना 1 एब की स्पेस अनयूज़्ड है हर पार्टीशन में 1 एब की स्पेस अनयूज़्ड है अब इससे क्या प्रॉब्लम आती है इस प्रॉब्लम को जो मैं बोलता हूं इस इसको मैं बोलता हूं एक्सटर्नल फ्रेगमेंटेशन फ्रेगमेंट्स क्या होते हैं मतलब बेसिकली छोटे-छोटे टुकड़े राइट तो फ्रेगमेंट्स में डिवाइड हो गई मेमोरी फ्रेगमेंट्स में डिवाइड हो गई अब इससे सबसे बड़ी प्रॉब्लम यह भी आएगी कि अगर मान लो फिर से p5 आई प्रोसेस जो कि 4 एब की है ठीक है इवन दो मेरे पास यहां पर 4 एब स्पेस अवेलेबल है वो 4 एबी कैसे अवेलेबल थी हर पार्टीशन की एक एक एक एक एबी राइट पर फिर भी मैं p5 को एलोकेट नहीं कर सकता क्योंकि मैं एलोकेशन किस तरीके से करता हूं कंटीन्यूअस एलोकेशन करता हूं और कंटीन्यूअस एलोकेशन जो है वो कंट गस मेरे पास मेमोरी होनी चाहिए तभी कर पाऊंगा मैं यहां पे कंटस मेमोरी नहीं है ये एमबी अलग है ये एमबी अलग हैन सबके एड्रेसस दूर दूर है राइट इसको बोलता हूं मैं एक्सटर्नल फ्रेगमेंटेशन और दूसरा एक इंटरनल फ्रेगमेंटेशन भी है यहां पे इंटरनल फ्रेगमेंटेशन कैसे है कि ये मेरा पार्टीशन 4 एब का था बट मैंने 3mb की ही प्रोसेस एलोकेट करी है तो यह 1 एब जो बचा हुआ है यहां पर इसको मैं बोल रहा हूं इंटरनल फ्रेगमेंटेशन ठीक है यानी कि विदन पार्टीशन यानी पार्टीशन के अंदर भी फ्रेगमेंटेशन है और बहुत सारे पार्टीशंस को मिलाया ता हूं मैं तो भी फ्रेगमेंटेशन है ठीक है तो यह सबसे बड़ी प्रॉब्लम है इसके अंदर कि इंटरनल फ्रेगमेंटेशन और एक्सटर्नल फ्रेगमेंटेशन दो टाइप की फ्रेगमेंटेशन आती है इससे प्रॉब्लम क्या आती है वो हमने देख लिया कि स्पेस जो है एकदम अन यूज्ड हो गई ठीक है ऑप्टिमाइज्ड वे में मैं स्पेस को यूटिलाइज नहीं कर पा रहा हूं ठीक है एक्सटर्नल फ्रेगमेंटेशन है इस चक्कर में मेरे पास 4 एबी स्पेस तो है बट वो कंटीन्यूअस नहीं है इस चक्कर में p5 को एलोकेट नहीं कर सकता ठीक है तो यह प्रॉब्लम है मेरे पास यहां साफसाफ लिखा है हमने इंटरनल फ्रेगमेंटेशन होती है एक्सटर्नल फ्रेगमेंटेशन होती है और लिमिटेशन ऑन द लिमिटेशन ऑन द प्रोसेस साइज यह भी एक बहुत बड़ी चीज है अब आपने 4 एब के तो चंक्स बना दिए ठीक है 4 एब के पार्टीशन बना दिए ठीक है मान लो हमने तो 4 एब के पार्टीशन बना रखे हैं यहां पे ठीक है अब कोई प्रोसेस आई p6 दे देते हैं और वह मान लो 5 एब की है हमने बोला था एक पार्टीशन को मैं एक ही प्रोसेस दे सकता हूं ठीक है अब क्योंकि ये 5 एब की प्रोसेस है क्या मैं इसको एलोकेट कर सकता हूं यहां पर मैं इसको एलोकेट नहीं कर सकता क्यों क्योंकि सबसे मैक्सिमम साइज का जो पार्टीशन है वोह मेरा 4 एब का ही है तो यानी कि या तो 4 एब की प्रोसेस लोकेट अप होएगी या 4mb से कम दो पार्टीशंस को मिलाकर मैं प्रोसेस को एलोकेट नहीं कर सकता ये मैनेजमेंट है ही नहीं यहां पर ठीक है तो इसलिए फिक्स पार्टीशन का यह भी एक बड़ी प्रॉब्लम है इसके अंदर लिमिटेशन है इसमें कि एक प्रोसेस का साइज भी लिमिट हो गया इफ द प्रोसेस साइज इज लार्जर देन द साइज ऑफ मैक्सिमम साइज पार्टीशन देन दैट प्रोसेस कैन बी लोडेड कैन नॉट बी लोडेड इन टू मेमोरी ठीक है अब इसके अंदर तो हमने इक्वल पार्टीशन करी हुई है बट हमने यहां डिस्कस किया इक्वल ना हो के अनइक्वल पार्टीशन भी हो सकती है तो इसलिए वह बोल रहा है कि जो मैक्सिमम पार्टीशन अवेलेबल है मान लो 10 एब का मे पास मैक्सिमम है अगर 10 मैक्सिमम से एक ज्यादा भी आ गई ठीक है मान लो 11 एब का भी कोई प्रोसेस आ गई तो भी वो मैं लोकेट नहीं कर पाऊंगा तो यह यहां पे एक प्रॉब्लम है ठीक है यह लिमिटेशन है मे मेरे पास अब कंटस मेमोरी लशन की एक और लिमिटेशन है कि इसके अंदर जो डिग्री ऑफ मल्टी प्रोग्रामिंग है ना वो बहुत कम है ठीक है वो कैसे इसी एग्जांपल से समझते हैं डि जीरो मल्टीप्रोग्रामिंग क्या होता है कि रम के अंदर कितनी सारी नंबर ऑफ प्रोसेसेस हो सकती है एक बारे में ठीक है अब यहां पर मान लो चार पार्टीशन टूथ 4 तो क्या मैं ये बोल सकता हूं कि जितने नंबर ऑफ पार्टीशंस होंगे उतने ही नंबर ऑफ प्रोसेसस इसके अंदर हो सकती है क्योंकि एक पार्टीशन के अंदर एक से ज्यादा प्रोसेस तो हो ही नहीं सकती अब मान लो 11 एबी की भी मैं प्रोसेस ले आऊं 11 एबी की मान लो फोर प्रोसेसेस ले आऊं तो भी यहां 11 एबी तक एलोकेट हो जाएगी 1 एब 1 एब 1 एब हर पार्टीशन में 3 एबी खाली रख जाएगा पर तब भी मैक्सिमम चार ही प्रोसेस आ सकती है तो इसलिए मैं बोलता हूं यहां पे कि यहां पे डिग्री ऑफ मल्टी प्रोग्रामिंग काफी कम है ठीक है अब आता है डायनेमिक पार्टीशन यह टेक्निक ना आपकी जो आपकी फिक्स पार्टीशनिंग है ना इसकी प्रॉब्लम्स को सॉल्व करती है कैसे मैं फिक्स पार्टीशन नहीं करता मैं क्या करता हूं जितनी प्रोसेस जिस टाइप की प्रोसेस आएगी उस हिसाब से मैं उतना साइज करके उसका फ्रेगमेंट बना दूंगा ठीक है इसका मतलब द पार्टीशन साइज इज नॉट डिक्लेयर्ड इनिशियली इट इज डिक्लेयर्ड एट द टाइम ऑफ प्रोसेस लोडिंग यानी कि यह मेरे पास ऑपरेटिंग सिस्टम रम है स्टार्टिंग में ऑपरेटिंग सिस्टम है अब मान लो सबसे पहले पव प्रोसेस आई होगी ठीक है कैसे हुआ होगा ये देख लेते हैं यहां पर बना देता हूं इसको ठीक है यह ओस है सबसे पहले पव प्रोसेस आई पव प्रोसेस 5 एबी की थी यहां इसने क्या करा इस लोकेशन से लेके इस लोकेशन तक यानी 5 एमबी तक इस लोकेशन को मान लो मैं फ मान लेता हूं ठीक है तो फ से लेकर 10 तक यानी कि 10 तक 10 एबी तक यहां पर मैंने पार्टीशन बना दिया पार्टीशन वन यहां पर मैंने p1 डाल दी ठीक है अब उसके बाद p2 आई p2 क्या 2 एब की थी अब मैंने फिक्स पार्टीशन नहीं बनाया होगा फिक्स पार्टीशन होता क्या होता यह 5 एबी का है ना ठीक है तो या तो ये भी 5 एब का होता या ये 10 एब का होता फिक्स पार्टीशन नहीं है जितनी प्रोसेस को नीड है मैं उतना पार्टीशन बना रहा हूं अब प्रोसेस को नीड कितनी है 2mb की तो मैंने यहां पे 2 एब तक एलोकेट कर दिया यानी कि 12 एब तक चला जाएगा यहां पे तो ये p2 को एलोकेट हो गया ठीक है सिमिलरली 3mb की p3 आई p3 आई तो यहां पे मैंने इसको 15 कर दिया 15 एब p3 चली गई p4 आ 4 एब की तो यहां पे ये 19 m करके p4 चला गया तो आप देख रहे हो यहां पे कोई फिक्स्ड नहीं है पहले से मैंने कोई ये नहीं बोला है कि अ एक पार्टीशन 10 एब का ही होगा या फिर एक फाइव का होगा एक फोर का होगा एक थ्री का होगा ऐसे करके मैंने फिक्स फिक्स कुछ भी नहीं रखा हुआ सब कुछ डायनेमिक है एज पर नीड मैं पार्टीशनिंग बनाता जाऊंगा इसके एडवांटेज क्या है इसके अंदर इंटरनल फ्रेगमेंटेशन नहीं आ सकती क्यों नहीं आ सकती वो इसलिए नहीं आ सकती इस केस में क्या हो रहा था मेरे पास कि 3 एबी की प्रोसेस आई और 4 एबी का पार्टीशन था बट अब 3 एबी की प्रोसेस आएगी तो यहां पर 3 एबी की ही पार्टीशन बनेगी राइट यहां पे जैसे 3 एब की प्रोसेस आई थी तो ये 3 एब की ही पार्टीशन बना था ठीक है तो इंटरनल फ्रेगमेंटेशन की तो बात ही नहीं होती ठीक है तो दूसरा क्या है कि यहां पर कोई प्रोसेस की साइज पर भी कोई लिमिट नहीं है वहां पर लिमिट कैसे थी मेरे पास लिमिट इस तरीके से थी कि मान लो 10 एबी की पार्टीशनिंग है ठीक है 10 एबी की मैक्सिमम जो मैक्सिमम पार्टीशनिंग जो हमने यहां बनाई थी मान लो 10 m एब की है तो अगर 11 एब की प्रोसेस आई तो मैं उसको एलोकेट नहीं कर सकता क्योंकि पार्टीशन है ही नहीं उतना बड़ा ठीक है अब यहां क्योंकि डायनेमिक है डायनेमिक है तो अगर 11 एब की आई तो 11 एब के पार्टीशनिंग बना देंगे हम ठीक है तो डायनेमिक है चीजें तो यहां पे कोई लिमिट नहीं है कुछ खास ठीक है और यहां पर डिग्री ऑफ मल्टी प्रोग्रामिंग बेटर है बेटर कैसे है इस तरीके से कि वहां पर क्या था जितने नंबर ऑफ पार्टीशन थे उतने ही मेरे पास प्रोसेस आ पा रही थी ठीक है क्योंकि इंटरनल फ्रेगमेंटेशन के चक्कर में कोई और प्रोसेस उस पार्टीशन में आ ही नहीं सकती यहां पर िक है तो यहां पर ज्यादा नंबर ऑफ मल्टी प्रोग्रामिंग ज्यादा नंबर ऑफ प्रोसेसस एक बार में मैं मेमोरी में रख पाऊंगा तो बेटर डिग्री ऑफ मल्टी प्रोग्रामिंग है ठीक अब यहां पर एक्सटर्नल फ्रेगमेंटेशन है वो कैसे है यह देख लेते हैं अब मान लेते हैं कि य जो पव प्रोसेस है य इस पार्टीशन में थी सिमिलरली जो p3 प्रोसेस है व इस पार्टीशन पर थी ठीक है p1 यहां थी p3 यहां थी अब लेट्स सपोज कि आफ्टर t टाइम p1 और p3 दोनों ही एग्जिट हो गई p1 और p3 दोनों एग्जिट हो गई यानी कंप्लीट हो गई टर्मिनेट हो गई अब टर्मिनेट होने के बा पर p2 p4 जो है यहां पर जो कि 2 एब की पार्टीशन थी इसकी 4 एब की पार्टीशन थी वो अभी भी यहीं पे ही है ठीक है तो तो हमने ये देखा कि p2 p4 तो अभी भी यहीं पे है बट p1 जो कि 5 ए की पार्टीशन थी वो एग्जिट हो गई है प जो p3 जो कि 3 एब की पार्टीशन थी वो भी एट हो गई है एग्जिट हो गई है तो मेरे पास 5 एब का एक पार्टीशन अवेलेबल है 3 एब का एक पार्टीशन अवेलेबल है ठीक है और अब मान लो मेरे पास कोई प्रोसेस आती है p5 जो कि 8 एबी की है अब यहां पर भी वो एक्सटर्नल फ्रेगमेंटेशन वाली प्रॉब्लम आ गई मेरे पास लद मेरे पास 8 एबी अवेलेबल है 5 प् 3 इ 8 8 एब अवेलेबल है बट क्योंकि कंटस मेमोरी एलोकेशन है यहां पे प्रोसेस को कंटीन्यूअसली एलोकेट मैं यहां पे नहीं कर पाऊंगा इस चक्कर में मैं बोल सकता हूं यहां पे एक्सटर्नल फ्रेगमेंटेशन यहां पर भी अवेलेबल है तो हमने यह देखा कि कंटीन्यूअस के अंदर दो टाइप के मेमोरी लोकेशन है जिसमें कि फिक्स पार्टीशनिंग है दूसरा आपका डायनेमिक पार्टीशनिंग है फिक्स प डायनेट पार्टीशन में क्या प्रॉ क्या डिफरेंसेस है कि फिक्स्ड पार्टीशन में मैं ड्रम को पहले से ही फिक्स्ड पार्टीशन से में डिवाइड कर देता हूं वो फिक्स्ड पार्टीशन जो है वह एक फिक्स नंबर भी हो सकता है कि भाई मैं x से ही डिवाइड कर रहा हूं वो हो सकता है डिफरेंट भी हो ठीक है फिक्स पार्टीशन में डिफरेंट भी हो डिफरेंट डिफरेंट नंबर भी हो सकते हैं 5 2 10 करके जैसे हमने यहां पे किया था बट इससे प्रॉब्लम क्या है क्योंकि एक फिक्स एक पार्टीशन के अंदर एक ही प्रोसेस जा सकती है तो कोई प्रोसेस अगर चली गई और व उसने उस पूरे पार्टीशन को पूरा कंज्यूम नहीं किया तो इंटरनल फ्रेगमेंटेशन आ जाती है इंटरनल फशन हमने डायनेमिक पार्टीशन में कैसे रिमूव करी कि क्योंकि यहां पर कोई फिक्स पार्टीशन होती नहीं एज पर नीड जितनी मेमोरी बेसिकली प्रोसेस को चाहिए होती है मैं उतना बड़ा पार्टीशन बना देता हूं ठीक है तो ये दो तरीके की टेक्निक है कंटीन्यूअस में नॉन कंटीन्यूअस की टेक्निक्स इससे ज्यादा बेटर है ठीक है और यूज भी वही होती है आजकल ये यूज नहीं होती ठीक है तो नेक्स्ट वीडियो में इसको डिस्कस करेंगे मिलते हैं नेक्स्ट लेक्चर में गुड बाय हेलो जी कैसे हैं सार लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 25 पर और आज हम डिस्कस करने वाले हैं मेमोरी मैनेजमेंट मॉड्यूल के अंदर एक और नया टॉपिक जिसका नाम है फ्री स्पेस मैनेजमेंट पिछले लेक्चर में हमने पढ़ा कंटस मेमोरी लोकेशन के बारे में राइट और कंटल मेमोरी लोकेशन के अंदर दो टाइप के लोकेशंस थी ठीक है आपकी फिक्स पार्टीशनिंग डायनेमिक पार्टीशनिंग उसके अलावा हमने लॉजिकल एडर स्पेस से कैसे हम फिजिकल एडर स्पेस में जाते हैं वह पढ़ा यह कहानी सीखी कि जो एक्चुअली यूजर को दिख रहा होता है यूजर मोड में वो एक्चुअल फिजिकल एड्रेस नहीं होता वो एक लॉजिकल एडस स्पेस होता है अपना अलग ही होता है वह हर प के लिए हर यूजर प्रोग्राम के लिए वो इसलिए होता है ताकि ओस आपको आइसोलेशन और मेमोरी प्रोटेक्शन प्रोवाइड कर पाए ठीक है तो अब हम देखते हैं यार जब भी हम एलोकेशन लोकेश करते हैं ना फिजिकल मेमोरी के अंदर तो किस तरीके से फ्री स्पेस को मैनेज करता है हमारा ऑपरेटिंग सिस्टम ठीक है यह आपकी रैम है ठीक है इसमें हम मान लेते हैं जीरो से लेके 4 केब तक हमारा ऑपरेटिंग सिस्टम है ठीक है उसके बाद इनिशियल स्टेट रम की ये है है ठीक है रम की इनिशियल स्टेट बोल देता हूं मैं मान लो कि प्रोसेस आती है p1 और वो 2kb की स्पेस रिक्वेस्ट कर रही है ठीक है और जस्ट इमेजिन ओस क्या करता है सिंपली 2kb की स्पेस यहां पर इसे प्रोवाइड कर देता है अब मुझे आप बताओ कमेंट सेक्शन में कि यह जो हमने डायरेक्टली 2kb की स्पेस एलोकेट कर दी है कौन सा टाइप की एलोकेशन है यह डायनेमिक पार्टीशनिंग के अंदर आ रहा है राइट एज पर प्रोसेस नीड हम रम में एलोकेशंस कर रहे हैं तो 2 केब की नीड थी तो 2 केब एलोकेट कर दिया ठीक है अब उसके बाद जस्ट इमेजिन एक और प्रोसेस आती है p2 इस केस में वह मान लो 8kb की है ठीक है तो इस केस में क्या होगा जल्दी से ड्रॉ करते ठीक है ये हमारी p2 एलोकेट हो गई अब एज पर नीड p2 को 8kb चाहिए थी तो p2 ने 8kb एक्वायर कर ली अब उसके बाद नेक्स्ट आता हैं मान लो कोई p3 प्रोसेस आ गई p3 2kb रिक्वेस्ट कर रही है तो अब क्या डायग्राम होगा अब p3 आई तो हमारी रैम किस तरीके से दिख रही है वो हमारी रैम इस तरीके सेखी है तो अभी के लिए हमने बोल दिया कि रैम हमारी फुल हो गई तो p1 p2 p3 नाम की तीन प्रोसेस मैंने एलोकेट कर दी और कैसे एलोकेट करी है ये डायनेमिक मेमोरी एलोकेशन जो डायनेमिक पार्टीशनिंग बेसिकली डायनेमिक पार्टीशनिंग की तरीके से करी है राइट तो अब एक बात बताओ अब मान लो कुछ टाइम बाद क्या होता है ठीक है आफ्टर सम टाइम कोई ना कोई प्रोसेसेस क्या करेंगे एग्जिट करेंगी जस्ट इमेजिन p1 एग्जिट करती है और उसके बाद p3 भी एग्जिट कर जाती है ठीक है तो अब इस केस में मुझे बताओ कि अब क्या होगा अब मेरा रम का स्ट्रक्चर कैसा दिखेगा अब मेरा रम का स्ट्रक्चर दिखेगा कुछ इस तरीके से तो देखो जब p1 p2 दोनों एग्जिट कर जाएंगी एग्जिट करने के बाद रैम मेरी कुछ इस तरीके से दिखेगी जिसमें कि जो यह वाला चंक था यह हो गया फ्री सिमिलरली ये वाला चंक भी फ्री हो गया यह वाला चंक अभी भी एलोकेटेड है ठीक है तो अब इस केस में जब भी मान लो कोई नेक्स्ट नेक्स्ट प्रोसेस आएगी नेक्स्ट प्रोसेस आएगी ठीक है तो ओ क्या ट्रैक रखेगा मान लो कोई प्रोसेस आती है आपकी p4 प्रोसेस आती है और वो वापस से 2kb मानती है तो ओ क्या करेगा कि भाई ढूंढेगा 2kb की स्पेस मिलेगी उसको यहां पे p4 को एलोकेट कर देगा ठीक है बट बट अब यह सोचो कि किस तरीके से ओस ने फ्री स्पेस को मैनेज किया हुआ है कैसे स्टोर किया वह कैसे स्टोर करेगा बेसिकली डटा किस डाटा स्ट्रक्चर में स्टोर करेगा ओस की कौन-कौन सी फ्री स्पेस है तो वह क्या करता है ना कि ओस फ्री स्पेस को मैनेज करने के लिए एक फ्री लिस्ट बना के रखता है ठीक है फ्री लिस्ट फ्री लिस्ट क्या है फ्री लिस्ट एक टाइप की लिंक लिस्ट है लिंक लिस्ट है ठीक है इसकी इंप्लीमेंटेशन डबली लिंक लिस्ट भी हो सकती है कैसी भी लिंक लिस्ट हो सकती है सिंपली एक लिंक लिस्ट है मेरे पास ठीक है और अब यह देख लेते हैं कि जब भी स्टार्टिंग में ये किस तरीके से एक्ट करेगी ठीक है मतलब कि जब इनिशियल स्टेट है मेरा इनिशियल स्टेट है इसको मिटाए थे अब हम फ्री लिस्ट बनाते हैं कैसे दिखेगी इनिशियल स्टेट इनिशियल स्टेट क्या है जो फ्री लिस्ट होगी मेरी फ्री लिस्ट फ्री लिस्ट किस तरीके से दिखेगी फ्री लिस्ट कुछ ऐसे दिखेगी मेरे पास एक नोड होगी उसके अंदर उसमें स्टोर होगा मेरा स्टार्टिंग एड्रेस यानी कि 4 केब से स्टार्टेड है ठीक है 4 केब से स्टार्टेड है और यह कहां तक जा रहा है एंड ऑफ रैम तक ठीक है तो मैंने बोल दिया कि मेरे पास यह टोटल 12 केब का चंक खाली है ठीक है और उसके बाद जब आपकी p1 एलोकेट हो जाएगी तो किस तरीके से दिखेगी यह 10 के भी फ्री है राइट यहां पर 12 के भी फ्री था ठीक है तो ये 12 के भी दिख रही थी अब यहां पे फ्री लिस्ट कैसे दिखेगी जब p1 एलोकेट हो गया मेरे पास एक 10 के ंक होगा बस और आगे नल राइट ऐसे ही बनाते हैं हम कुछ लिंक लिस्ट अब इस केस में एफएल कैसा दिखेगा फ्री लिस्ट कैसे दिखेगी फ लिस्ट मुझे दिखेगी बस एक 2 केबी का चंक 2 केबी का चंक राइट नल और इस चंक के अंदर स्टोर क्या हो रहा है इस चक के अंदर स्टार्टिंग एड्रेस स्टोर हो रहा है राइट स्टार्टिंग एड्रेस तो इसके अंदर स्टार्टिंग एड्रेस स्टोर हो रहा है ठीक है उसके बाद अब इस केस में एल कैसा दिखेगा इस केस में नल फ्री लिस्ट है ही नहीं कुछ फ्री नहीं है ठीक है अब यह देखते हैं जब पव और प2 एग्जिट कर गई थी अब यहां पर मुझे फ्री लिस्ट कैसे दिखेगी अब फ्री लिस्ट मुझे दिखेगी एक य 2 केबी का चंक था और एक य दोबारा से 2 केबी का चंक था तो मेरे पास दो ू केबी के चंक्स होंगे ठीक है नल अब ध्यान से देखो यह दोनों ू केबी के चंक्स ना य दोनों ू केबी के दूर दूर है ठीक है कंटस नहीं है ठीक है कंटस नहीं है एक चक इधर है एक चक इधर लोकेटेड है इसलिए मैंने दो नोड्स बनाई अलग-अलग ठीक है जस्ट इमेजिन जस्ट इमेजिन अग p3 भी एग्जिट कर जाएगा जब p3 एग्जिट कर जाएगा तो इनके बीच में एक और नोट आ जाएगी मेरे पास 8 केबी की बट ओस क्या देखेगा कि यार ये तो कंटस एलोकेशन है सबके एड्रेस चेक करेगा एड्रेस देखेगा तो कनूस कंटीन्यूअस एड्रेस है कंटस एड्रेस है बेसिकली तो इस केस में इन सबको मर्ज कर देगा और उठा के एक सिंपल 12 केब की फ्री लिस्ट बना देगा मतलब एक नोट बता देगा 12 केब की ठीक है ये हमें समझ आ गया है तो सिंपली जो ओएस फ्री स्पेस की मैनेजमेंट के लिए लिंकलिस्ट का डेटा स्ट्रक्चर यूज करता है और लिंकलिस्ट डेटा स्ट्रक्चर यूज करके इस तरीके से नोड्स बना के रखता है बहुत सारे और हम आइट करते हैं जस्ट टू फाइंड कि कौन सी पर्टिकुलर नोड बेसिकली फ्री है कौन सी मेमोरी एरिया फ्री है जब हम एलोकेशंस कर रहे होते हैं ठीक है तो अब इस केस में ना यार एक प्रॉब्लम है अब इस केस में एक प्रॉब्लम हुई है वो प्रॉब्लम क्या है वो प्रॉब्लम क्या है अब एक केस देखते हैं हम कि p3 अभी भी मेमोरी के अंदर है जस्ट इमेजिन p3 अभी भी मेमोरी के अंदर है कोई प्रोसेस आती है p4 और उसको 3kb चाहिए ठीक है इवन दो दिस इज डायनेमिक पार्टीशनिंग बट स्टिल क्या मैं 3kb की ये p4 प्रोसेस एलोकेट कर पाऊंगा एलोकेट कर पाऊंगा मैं नहीं एलोकेट कर पाऊंगा रीजन बीइंग कि मेरे पास 2 केब की कंट मेमरी है 2kb की कंटीन्यूअस मेमरी है नहीं मिल पाएगी तो ओ क्या करेगा ओ क्या करेगा 3kb को उठा के यहां रिक्वेस्ट करेगा यहां दे देखा कैन इट बी अकोमोडेटेड नहीं हो पाएगी सिमिलरली यहां पर भी नहीं हो पाएगी ये नल पर पहुंच जाएगा तो अल्टीमेटली मैं यह रिक्वेस्ट को फुलफिल नहीं कर सकता बट आपको देखने से तो लग रहा होगा कि मेरे पास टोटल टोटल फ्री मेमरी रम में कितनी है टोटल फी मेमोरी रम में मेरी 4 केबी और रिक्वेस्टेड कितनी है रिक्वेस्टेड है 3 केबी बट स्टिल मेरे पास टोटल अवेलेबल मेमरी 4kb है बट स्टिल मैं 3kb की रिक्वेस्ट नहीं कर पा रहा फुलफिल फुलफिल तो यार एक एक एक टाइप की प्रॉब्लम है राइट तो इस प्रॉब्लम को मैंने फ्रेगमेंटेशन भी बोलता हूं मतलब चीजें फ्रेगमेंटेड हो गई ठीक है फ्रेगमेंटेड हो गई इधर उधर पड़ी हुई है अब 2kb यहां पर है मेरे पास 2kb यहां पर है टोटल मिला के 4kb अवेलेबल है बट स्टिल मैं 3kb की प्रोसेस को एलोकेट नहीं कर सकता तो यह प्रॉब्लम है ठीक है तो इस प्रॉब्लम को सॉल्व करने के लिए इस प्रॉब्लम को सॉल्व करने के लिए हमारे पास एक तरीका होता है ठीक है हमारे पास तरीका होता है जिसका नाम होता है डी फ्रेगमेंटेशन या इसको मैं कंपैक्स भी बोलता हूं कंपैक्स ठीक है अब ये क्या चीज है तो यह हमारे रैम की सिचुएशन थी राइट यह हमारी रैम की सिचुएशन थी ये रम की सिचुएशन कब बनी थी जब p1 p2 p3 आके p1 और p2 एग्जिट कर गए थे p3 हमारे पास यहीं पे पड़ा हुआ है अभी ठीक है तो ये मेरी रम की सिचुएशन थी मैंने यहां पे ड्रा कर दीया है अभी सोचो क्या मैं ऐसा कुछ ना करूं कि ये जो फ्री स्पेस है ठीक है ये जो फ्री स्पेस है इसको उठा के मैं बेसिकली फ्री स्पेस को एक साइड कर दूं ठीक है फ्री स्पेस को उठा के मैं एक साइड कर दूं और जितनी एलोकेशंस है उसको उठा के एक साइड कर दूं समझ रहे हो मतलब कि एक टाइप की सर्टिंग हो गई कि फ्री स्पेस सारी एक एक साइड प होंगी सिमिलरली जो भी एलोकेटेड स्पेस है वो सारी एक साइड प होंगी तो ओस क्या करेगा ओस क्या करेगा इस डाटा को उठा के जो डाटा है मेरा इसको शिफ्ट कर देगा नीचे मान लेते हैं यहां पर यहां पर 14 केब का एड्रेस था ठीक है तो मैं क्या करूं इसको दो दो के ब नीचे शिफ्ट कर देता हूं अगर मैं इसको दो दो केब नीचे शिफ्ट कर दूं तो 14th 12थ पे शिफ्ट हो जाएगा यह स्टार्टिंग ये स्टार्टिंग कहां से था सिक्स से तो सिक्स शिफ्ट हो जाएगा फोर पे सिक्स शिफ्ट हो जाएगा फोर पे 14th 12थ पे कहीं पे 12थ होगा यहां पे 12थ पे शिफ्ट हो जाएगा तो इस तरीके से मैं कंपैक्स कर दे रहा हूं डी फ्रेगमेंटेशन जैसे प्रोसेस करूंगा तो डी फ्रेगमेंटेशन करने के बाद जब रैम डी फ्रेगमेंट हो जाएगी तो उसके बाद मुझे कैसी दिखेगी ठीक है अब रैम देखते हैं डी फ्रेगमेंट होने के बाद कैसे दिखेगी अब ये देखो डी फ्रेगमेंटेड रैम मुझे इस तरीके से दिखेगी तो मैं इसको बोल रहा हूं डी फ्रैग रैम तो मैंने क्या किया है सिंपली मैंने नहीं बेसिकली ओ ने क्या किया है ओस ने देखा कि मेरे पास फ्रेगमेंटेशन ज्यादा हो गई है ठीक है ओस क्या करता है ना कि हमारे पास बेसिकली वो वच करता रहता है कि फ कुछ पर्टिकुलर किस अमाउंट की फ्रेगमेंटेशन हो रखी है अगर कुछ परसेंटेज से ज्यादा फ्रेगमेंटेशन हो जाती है मेरे पास छोटे-छोटे चंक्स बन चुके हैं तो वो क्या करता है इसको डी फ्रेगमेंट कर देता है कंपैक्स अप्लाई करने के बाद इस तरीके से रैम को बना देता है वो रैम कैसे बनाता है जो लाइव जो डाटा है मेरा जो फिजिकल एड्रेस बेसिकली एलोकेटेड है किसी प्रोसेस को रम रम में उसको ओस क्या करता है सिंपली शिफ्ट कर देता है तो इसने क्या करा यहां पर यह पर्टिकुलर बेसिकली 8kb एलोकेटेड था p3 तो p3 इसने यहां पर शिफ्ट करता गया दो दो केब नीचे शिफ्ट कर दिया ठीक है ओस कर सकता है ऐसा अब एक छोटा सा क्वेश्चन बनता है कि जब ये शिफ्टिंग हो रही है या फिर डी फ्रेगमेंटेशन हो रही है क्या यूजर को पता चले ये चीज क्या यूजर ये प्रोसेस p3 मान लो यूजर की प्रोसेस है तो यूजर की प्रोसेस चल रही है और पीछे से डी फ्रेगमेंटेशन हो रही है तो क्या इस इस वजह से बेसिकली यूजर की प्रोसेस तो करप्ट नहीं हो जाएगी ऐसा कुछ होगा तो ऐसा कुछ नहीं होगा बिकॉज यूजर तो लॉजिकल एटर स्पेस में काम कर रहा है हमने सबने पढ़ा है ठीक है यूजर तो लॉजिकल एटर स्पेस में काम कर रहा है ये फिजिकल एटर स्पेस है तो ज्यादा से ज्यादा ओएस क्या करेगा जो आपके रीलोकेशन रजिस्टर थे ना हमारा रीलोकेशन रजिस्टर रीलोकेशन रजिस्टर जिसके अंदर हम बेस स्टोर कर रहे थे ठीक है उसको यह शिफ्ट कर देगा इस पोजीशन पे मान लो रीलोकेशन रजिस्टर यहां पर क्या होता रीलोकेशन रजिस्टर की यहां पे वैल्यू होती है सिक्स अब क्या करेगा व रीलोकेशन रजिस्टर की वैल्यू वो फोर कर देगा ठीक है आपकी ऑफसेट जो है आपकी लिमिट जो है वो तो 8 ही रहेगी ठीक है लिमिट 8 ही रहेगी बट हमने क्या करा पीछे से ओस ने लॉजिकल एटर स्पेस में कोई चेंज नहीं किया लॉजिकल एटर स्पेस तो वैसे भी रो से लेकर 8 केब तक ही होगा है ना तो उसने क्या किया सिंपली फिजिकल एट्र स्पेस के अंदर इसका बेस चेंज कर दिया बेस चेंज कर दिया सिक्स से लेके फोर तक ठीक है तो ये सिंपल सा क्वेश्चन बनता है क्या इससे यूजर प्रोग्राम को कोई प्रॉब्लम होगी उसको कोई प्रॉब्लम नहीं होगी क्योंकि एब्स्ट्रेक्शन जो ओएस ने प्रोवाइड करी हुई है जो वो अंडरलाइन कॉम्प्लेक्टेड कर रहा है उस वजह से यूजर प्रोग्राम को कोई फर्क नहीं पड़ेगा इससे सिंपली कॉम्पेक्शन अप्लाई हो जाएगी ठीक है तो अब आप ये देखो कि कंपैक्स अप्लाई करने के बाद रैम कुछ इस तरीके से दिख रही है मुझे क्या अब ये वो वाली प्रॉब्लम सॉल्व होगी अब मान लो p4 आता है p4 3kb का था ठीक है 3kb को एलोकेट करने के लिए अब ओ को य रिक्वेस्ट करेगा ओ को बोलेगा कि भाई मेरे को बेसिकली एलोकेशन चाहिए ओस क्या करेगा ओस जाके देखेगा अब फ्री लिस्ट कैसी दिख रही है ठीक है फ्री लिस्ट कैसे दिख रही है फ्री लिस्ट मेरी दिख रही होगी एक 4 केब का नोड होगी एक ठीक है 4 केब की नोड होगी 4kb क्यों कर दिया हमने ठीक है ओस ने क्या देखा था ये 2 केब की नोड थी इस 2 केब की नोड को इधर शिफ्ट किया शिफ्ट करने के बाद दोनों को मर्ज कर दिया क्योंकि कंटस एड्रेस था ठीक है ये इंटेलिजेंस ओ के पास है तो अब वोक जाके चेक करेगा कि क्या 3kb की एलोकेशन मैं कर पाऊंगा यस मैं कर पाऊंगा तो बेसिकली अब वो 3 केब की एलोकेशन सक्सेसफुल हो जाएगी तो मैं यहां पर कुछ एलोकेशन कर देता हूं ऐसे ठीक है इसको हटा देते हैं p4 आ गई यहां पे 3 केब की और यहां पर फ्री स्पेस बच गई मेरी 1 केब की ठीक है अब मेरी जो एफएल लिस्ट है वो कैसी दिखेगी 1 केब की एक नोड होगी बस दैट इट तो कुछ इस तरीके से ना ओस डिफरेंट डिफरेंट चीजें अप्लाई करता है और फ्री स्पेस की मैनेजमेंट करता है हमने यह देखा कि स्टार्टिंग में डायनामिक पार्टीशनिंग के यूज करते हुए कैसे व एलोकेशन करता जा रहा है और किस तरीके से फली लिस्ट को मैनेज कर रहा है ठीक है उसके बाद हमने यह देखा कि जब p1 प2 दो प्रोसेस एग्जिट कर गई तो फ्रेगमेंटेशन हो गई ठीक है रम के अंदर फ्रेगमेंटेशन हो गई बेसिकली इस प्रॉब्लम से बाहर निकलने के लिए ओएस ने क्या किया डी फ्रेगमेंटेशन अप्लाई करी डी फ्रेगमेंटेशन क्या होता है है सिमिलर सिंपली जो भी फ्री स्पेस है उसको मैं एक साइड मूव कर दूंगा और जो भी यूज स्पेस है लोकेटेड स्पेस है उसको मैं एक साइड मूव कर दूंगा और इससे क्या होगा इससे फायदा यह होगा कि मेरे पास फ्री स्पेस कंटीन्यूअस मिल जाएगी और अगर कोई एलोकेशन आती है जैसे हमने यहां एग्जांपल लिया 3kb के एलोकेशन अब मैं 3kb के एलोकेशन कर सकता हूं जो कि पहले नहीं कर पा रहा था ठीक है तो ये हमारा हो गया डी फ्रेगमेंटेशन इसके बारे में नोट्स में देख लेते हैं जल्दी से डायनेमिक पार्टीशन सफर्स फ्रॉम एक्सटर्नल फ्रेगमेंटेशन ठीक है ये मेरी एक्स एक्सटर्नल फ्रेगमेंटेशन ही थी मेरे पास अवेलेबल स्पेस तो थी बट फ्रेगमेंटेड थी वो इसी को बोलते हैं एक्सटर्नल फ्रेगमेंटेशन क्यों क्योंकि अब 3kb आया p4 आया था वो यहां पर लोकेट नहीं हो पा रहा था तो यही होता है एक्सटर्नल फ्रेगमेंटेशन का नतीजा ठीक है डायनामिक पार्टीशन स एक्सटर्नल फ्रेगमेंटेशन कंपैशन टू मिनिमाइज द प्रोबेबिलिटी ऑफ एक्सटर्नल फ्रेगमेंटेशन कंपैशन एक प्रोबेबिलिटी को मिनिमाइज कर देता है लद अभी भी यहां पर 1 केबी इसने छोड़ दिया है बट ठीक है एक प्रोसेस तो मैं अमेट कर पाया एटलीस्ट ठीक है तो ये अप्लाई ये कैसे होता है ऑल द पार्टीशन आर मेड कंटीन्यूअस एंड ऑल द लोडेड लोडिंग का मतलब एलोकेटेड पार्टीशन आर ब्रॉट टुगेदर सिंपल मीनिंग है इसका ठीक है इसको डी फ्रेगमेंटेशन भी कहता हूं मैं बट इसमें एक प्रॉब्लम होती है इसकी लिमिटेशन देख लेते हैं लिमिटेशन इसकी लिमिटेशन इस तरीके से है अभी आप ये सोचो अभी मैंने बोला था कि डी फ्रेगमेंटेशन ओस क्या करता है जैसे एलोकेशन लोकेशन हो रही होती है एक पॉइंट से ज्यादा जब फ्रेगमेंटेशन हो हो जाती है कुछ परसेंटेज से ज्यादा फ्रेगमेंटेशन जब हो जाती है तो सिंपली ओस क्या करता है बेसिकली एक प्रोग्राम रन करता होगा कर्नल में एक प्रोग्राम रन होता होगा और इस तरीके की डी फ्रेगमेंटेशन अप्लाई हो जाती होगी तो डी फ्रेगमेंटेशन इट सेल्फ इज ए टाइम कंजूमिंग प्रोसेस ठीक है यानी अब ओवरहेड ड हो गया ये सोच रहे हो कि आप एलोकेशन डी एलोकेशन करे जा रहे हो आफ्टर सम टाइम ओस क्या कर रहा है डी फ्रेगमेंटेशन अप्लाई कर रहा है इससे बेसिकली सीपीयू का टाइम डी फ्रेगमेंटेशन करने में भी जा रहा होगा तो इस चक्कर में ये एक सिंपली एक ओवरहेड है इससे सिस्टम की ओवरऑल एफिशिएंसी डाउन होती है यानी कि पीछे जिस टाइम डी फ्रेगमेंटेशन चल रही हो होगी उस टाइम सीपीयू डी फ्रेगमेंटेशन में बिजी होगा तो यूजर प्रोसेस काम नहीं कर पाएंगी ठीक है तो इसलिए सिंपली द एफिशिएंसी ऑफ़ सिस्टम इज डिक्रीज इन केस ऑफ कंपैक्स सिंस ऑल द फ्री स्पेस विल बी ट्रांसफर्ड फ्रॉम सेवरल प्लेसेस टू सिंगल अब ये तो हमने छोटा सा एग्जांपल लिया 2kb 2kb का जो रैम तो बहुत बड़ी होती है आजकल 16gb रम थोड़ी ना यूज़ करते हो बहुत बड़ी रैम यूज़ करते हो 16 16 गिग्स की रैम यूज़ कर रहे होते हैं आप तो 16gb की रम में अगर छोटे छोटे छोटे-छोटे आपके बेसिकली होल्स बने होंगे उन होल्स को जब मुझे कंपैक्स करके साथ मिलाना होगा तो इट सेल्फ इज अ टाइम कंजूमिंग प्रोसेस ठीक है तो टाइम कॉप्लेक्स टी इसकी ज्यादा होती है तो ये प्रॉब्लम हो गई ये हमने समझ लिया डी फ्रेगमेंटेशन के बारे में ठीक है कैसे एक्सटर्नल फ्रेगमेंटेशन हटती है डी फ्रेगमेंटेशन के द्वारा अ डी फ्रेगमेंटेशन से मुझे एक और चीज याद आ रही है कि हम जो विज का पीसी यूज करते हैं उसके अंदर हार्ड डिस्क होती है ठीक है हार्ड डिस्क में सी ड्राइव वी ड्राइव इस तरीके से चीजें होती हैं तो बहुत टाइम ऐसा होता था ना मेरे साथ हुआ है कि जब मैं गेम्स वगैरह बहुत ज्यादा इंस्टॉल करके रखता था और बहुत सारे प्रोग्राम्स बेसिकली रन करता रहता था तो इससे क्या होता था मेरे डिस्क का एक्सेस स्लो हो जाता था यानी डिस्क प पेस्ट कर रहा हू ना वो बहुत स्लो हो गया टिकट कुछ डिलीट कर रहा हूं वो तक चीज भी स्लो हो गई है तो यह क्यों होता था यह मैं सर्च किया तो यह इसलिए होता है क्योंकि आपकी जो डिस्क है वो भी फ्रेगमेंटेड हो जाती है ठीक है जैसे कि यहां पर आपकी रम फ्रेगमेंटेड हो गई ऐसे डिस्क भी फ्रेगमेंटेड हो जाती है तो डिस्क फ्रेगमेंट होने की वजह से क्या होता है आपके फ्री स्पेस बहुत ज्यादा क्लट हो जाते हैं उनको बेसिकली पासपास लाना होता है डाटा को डी फ्रेगमेंट करना होता है तो बेसिकली विज भी आपको ये डी फ्रेगमेंटेशन का प्रोसीजर प्रोवाइड करता है कभी राइट क्लिक करके सी ड्राइव पे और प्रॉपर्टीज में जाके देखना मजा आएगा आपको करके देखना कि आप कैसे यह डिफगमेंटेशन प्रोसेस जो है वह डिस्क के अंदर भी हो रही होती है ठीक है तो ठीक है अब आगे बढ़ते हैं तो दूसरा था कि हाउ हाउ फ्री स्पेस इ स्टोर्ड इन ओस फ्री स्पेस हम सिंपली लिंकलिस्ट डटा सेर का यूज कर रहे हैं ठीक है उसके बाद अब दूसरी चीज देखते हैं कि अब आप ये देखो हमने समझ लिया कि हमारे पास ना ओस क्या करता है एक फ्री लिस्ट मैनेज करता है मान लेते हैं 50kb की लिस्ट है फिर उसके बाद 30kb फिर उसके बाद 10kb ठीक है 5kb ऐसे लिस्ट बेसिकली उसने मेंटेन करी होगी है नल ऐसे लिस्ट मेंटेन करी हुई है अब यह सोचो कि लिस्ट मेंटेन करी है अब इसमें मुझे एलोकेशन किस तरीके से करूंगा तो मैं बोल सकता हूं ना कि मेरे पास 1 2 3 4 फोर होल्स हैं ठीक है फ्री होल्स है बेसिकली फ्री होल्स बोल देता हूं इनको फ्री होल्स है और अब मान लो कोई रिक्वेस्ट आती है p4 प्रोसेस की p4 प्रोसेस की वो बोलती है कि मुझे बेसिकली 20 केब चाहिए 20 केब का स्पेस चाहिए तो मैं कौन से होल में उसे डालूं ठीक है आप 50 में भी डाल सकते हो यह भी एलोकेट कर सकते हो यह एलोकेट नहीं कर सकते सिमिलरली यह भी एलोकेट नहीं कर सकते तो हम दो चॉइस है कि हम 50 को एलोकेट करें 30 को एलोकेट करें तो इस एलोकेशंस की भी ना चार एल्गोरिथम है जो कि ओस यूज करता है ठीक है तो वो चार एल्गोरिथम कौन सी है यहां पर देखते हैं सो हाउ टू सेटिस्फाई अ रिक्वेस्ट ऑफ n साइज फ्रॉम अ लिस्ट ऑफ फ्री होल्स ठीक है तो हमारे पास ओस होता है ओ क्या करता है ओस के बाद वेरियस एल्गोरिथम यूज़ करता है इन ऑर्डर टू फाइंड होल्स इन द लिंक लिस्ट एलोकेटेड टू द प्रोसेस यही बात मैंने आपको बेसिकली नोट्स में बताई तो सबसे पहला बेसिकली सबसे पहला प्रोसीजर जो है वोह है मेरा फर्स्ट फिट इसको फर्स्ट फिट बोलता हूं मैं ठीक है फर्स्ट फिट क्या है इसका एग्जांपल देख लेते हैं ठीक है अब मान लेते हैं यह मेरी फ्री लिस्ट है ठीक है यह मेरी फ्री लिस्ट है अब मान लो कोई रिक्वेस्ट आती है कोई रिक्वेस्ट आती है उसको मैं बोल देता हूं 90 केब की रिक्वेस्ट आई है अब 90 केब की रिक्वेस्ट जो आई है मान लो कोई p4 p1 प्रोसेस आई है 90 केब की रिक्वेस्ट करके आ तो फर्स्ट फिट एल्गोरिथम कैसे वर्क करती है इसमें एकदम सिंपल एल्गोरिथम है इसमें क्या होता है सिंपली मैं उठाता हूं 90 केब जो भी फर्स्ट होल मुझे मिलेगा जो कि इतना बड़ा होगा कि इसको अकोमोडेट्स होल दैट इज बिग एनफ ठीक है सिंपल सी स्टेटमेंट तो फर्स्ट ल जो भी इतना बड़ा होगा कि 90 को एलोकेट कर पाएगा तो मैं इसको एलोकेट कर दूंगा तो इस केस में मेरा कैसे एलोकेट हो जाएगा इधर मैं इस पोजीशन पर इसको 90 के भी एलोकेट कर दूंगा ठीक है तो 90 के भी यहां लोकेट कर दिया अब यहां पर 10 के भी फ्री फ्री बच चुका होगा तो अब मेरी फ्री लिस्ट कैसी बन गई होगी ठीक है फ्री लिस्ट अब मेरी 50 10 90 200 50 इस तरीके से बन गई होगी ठीक है एलोकेटेड के बाद कैसी ऐसी कुछ मुझे फ्री लिस्ट दिखेगी तो 90 हमने इसे एलोकेट कर दिया तो फर्स्ट फिट में में बेसिकली हम क्या कर रहे हैं एलोकेट द फर्स्ट होल दैट इज बिग एनफ सिंपल अब दूसरा देखते हैं दूसरा हमारा नेक्स्ट फिट नेक्स्ट फिट के अंदर भी हम सेम एग्जांपल ले लेते हैं ठीक है अब इसमें भी मान लो 90kb की रिक्वेस्ट आई है 90kb की रिक्वेस्ट आईए तो नेक्स्ट फिट में मैं क्या करता हूं सबसे पहले तो मैं ट्रेड करता हुआ इतना बड़ा होल ढूंढूं जो कि इसको इजली अम अकोमोडेट्स ली जो भी पहला होल मिलेगा इधर से मैं ट्रेड करता हुआ जाऊंगा तो हमारे पास सेकंड हो होल मिला इसको मैं बेसिकली एलोकेट कर सकता हूं तो यहां पर बेसिकली मैं 90kb एलोकेट कर दूंगा 90kb यहां पर एलोकेट हो जाएगा ठीक है 10 के भी यहां पे फ्री बचेगा ठीक है नेक्स्ट फिट ये बेसिकली क्या करता है अब जब दूसरी कोई रिक्वेस्ट आएगी अब मान लो 10kb की कोई रिक्वेस्ट आई p2 p2 ने 10kb की रिक्वेस्ट करी अब जो सेकंड रिक्वेस्ट आएगी वो मैं स्टार्टिंग से इटरेट नहीं करूंगा वो मैं यहां से इटरेट नहीं करूंगा वो बेसिकली मैं इस पोजीशन से आइ ट्रेट करूंगा यानी कि जो भी पिछला पॉइंट जहां पर सेव्ड था यानी कि जहां पर भी पिछले एलोकेशन हुई थी उसके नेक्स्ट पॉइंट से मैं शुरू करूंगा स्टार्टिंग से लिस्ट में ट्रेट नहीं करूंगा मैं जहां पर पिछली बार एलोकेट हुआ था उसके नेक्स्ट से एलोकेट करूंगा ठीक है यहां से एलोकेट करना शुरू किया तो अब प2 कहां प p210 को मिल जाएगा इसके बाद फ्री लिस्ट कैसे दिखेगी वह आप बना सकते हैं ठीक है तीसरा देखते हैं तीसरा मेरा है बेस्ट फिट बेस्ट फिट बेस्ट फिट कैसे दिखेगा बेस्ट फिट में हम क्या करते हैं वी एलोकेट द स्मालेस्ट होल इज बिग एनफ ठीक है इसका मतलब हम चाहते हैं कम से कम इंटरनल फ्रेगमेंटेशन छोड़े ठीक है जो 90 केब मान लो रिक्वेस्ट आती है मेरे पास p1 की 90 केब की रिक्वेस्ट आती है तो मैं ऐसा होल ढूंढू जो कि जस्ट इससे बड़ा हो ठीक है जस्ट से बड़ा मतलब बेस्ट फिट करें कम से कम स्पेस हमें छूट हमारे पास छूट नहीं चाहिए ऐसा नहीं है मैं उठा के सिंपली 100 100 पे एलोकेट कर दूंगा जैसे फर्स्ट में जो भी बिगनर स्पेस मिल रहा था उसमें मैं एलोकेट कर दे रहा था इसमें मैं क्या करूंगा इसमें ना एलोकेट कर करके नेक्स्ट मूव करूंगा नेक्स्ट मूव करके देखूंगा कि क्या यह कम से कम इंटरनल फ्रेगमेंटेशन छोड़ रहा है यानी कि कम से कम स्पेस लेफ्ट कर रहा है यानी कि 90 - 90 एलोकेट कर लूंगा तो 0 के भी आ रहा है तो यह सबसे स्मालेस्ट है राइट तो मैं सिंपली क्या करूंगा इस वाली प्रोसेस को बेस्ट फिट एल्गोरिथम के अकॉर्डिंग मैं यहां पर एलोकेट कर दूंगा तो 90 केब यानी कि p1 यहां पर एलोकेट हो जाएगी तो सिंपली यह नोड मेरी आउट हो गई फ्री लिस्ट से ठीक है तो ये हो गया आपका बेस्ट फिट सिंपल अब आते हैं फोर्थ फोर्थ है मेरा वर्स्ट फिट थोड़ा सा आईडिया लग रहा होगा आपको बता देते हैं इसमें हम क्या करेंगे इसमें हम एलोकेट करेंगे एलोकेट करेंगे लार्जेस्ट होल लार्जेस्ट होल समझ रहे हो आप इसका मतलब जब रिक्वेस्ट मेरी क्या थी रिक्वेस्ट मेरी 90 केब की थी तो सबसे लार्जेस्ट होल ढूंढूं मैं मैं आइ ट्रेट करूंगा और सबसे लार्जेस्ट होल ढूंढू सबसे से लार्जेस्ट होल 200 केबी का है तो इस केस में मेरा क्या होगा यह 200 केबी का जो टोटल मेरा होल है इसमें मैं बेसिकली स्टार्टिंग की 90 केबी को एलोकेट कर दूंगा ठीक है तो जो 11 10 केबी बचेगा यहां पे वह फ्री लिस्ट का पार्ट होगा यहां पे फ्री लिस्ट का पार्ट होगा ठीक है तो मैंने क्या करा मैंने वर्स फिट में क्या करा सबसे बड़ा होल ढूंढा मैंने 100 को भी नहीं दिया मैंने 90 को भी नहीं दिया मैंने सबसे बड़ा होल अगर इसके अलावा एक 300kb का होल होता तो मैं 300 को डाल देता इसमें मेरा एम क्या होता है मैं सबसे ज्यादा इंटरनल फ्रेगमेंटेशन छोड़ना चाहता हूं यानी कि सबसे ज्यादा स्पेस मैं छोड़ना चाहता हूं ये ती चार तरीके की एल्गोरिथम होती है मेरे पास अब इसको एक बार कंपेयर कर लेते हैं ठीक है एक बार इसको कंपेयर कर लेते हैं किसमें क्या बेसिकली प्रोज एंड कॉन्स है तो अगर मैं इसमें देखूं फर्स्ट फिट में देखूं तो ये फास्ट होगी राइट फास्ट होगी मतलब मैं पूरी लिस्ट को आइ डरेट नहीं करूंगा मैं पूरी लिस्ट को आइडेंट नहीं करूंगा अब ऐसा पॉसिबल है कि जब मैं फर्स्ट फीट यूज़ कर रहा हूं तो स्पेस जो है लास्ट वाले नोड पे ही मिले मुझे ऐसा पॉसिबल है तो वर्स्ट केस कॉम्प्लेक्शन जो होगी इसकी एही होगी ठीक है तो ऑफ एनी होगी तो इस केस में मैं क्या कर रहा हूं इसमें मैं पूरे इसको अल्टरेट ना करके जो भी फर्स्ट होगा जो भी फर्स्ट मिलेगा इस केस में हम ये फर्स्ट मिल गया था जो भी फर्स्ट बिग एनफ मिलेगा उस पे मैं एलोकेट कर दूंगा ठीक है मैं कोई कंपैरिजन नहीं कर रहा सिंपली मैं जो भी फर्स्ट मिलेगा मुझे मैं उसमें एलोकेट कर दूंगा तो इस केस में बोल सकता हूं कि ये फास्ट है ठीक है फास्ट है और दूसरा ये सिंपल है सिंपल एकदम सिंपल इजी टू इंप्लीमेंट बोल सकता हूं मैं सिंपल इजी टू इंप्लीमेंट है सिंपली आइ डरेट करना है देखना है कोई भी जो भी पहला ब्लॉक मिलेगा मुझे जो कि बिग इनफ होगा उसमें उठा के एलोकेशन कर दूंगा ठीक है फास्ट है फास्ट है तो टाइम कॉम्प्लेक्टेड वांटेज होती है इसकी अब देखते हैं कि नेक्स्ट फिट की क्या एडवांटेज है तो नेक्स्ट फिट जो है ना ये एनहैंसमेंट है एनहैंसमेंट भी नहीं बोलूंगा मैं ट्वीकन्यूज फर्स्ट फिट का ही टक है तो बेसिकली जो इस पर अप्लाई हो रहा होगा एडवांटेज वो इसी पर भी अप्लाई हो रहे होंगे रीजन बीइंग इसमें बस हम एक ही चीज की अनाउंसमेंट है वो यह है कि अब जो पॉइंटर मेरे को सेव करना पड़ता है ठीक है जहां भी लास्ट एलोकेशन हुई थी उसके नेक्स्ट से मैं लिस्ट को बेसिकली सर्च करना शुरू करूंगा सिंपली यह एक्स्ट्रा चीज यहां पर ऐड हुई है इसमें देखते हैं इसके एडवांटेज डिसएडवांटेज क्या है सबसे पहले तो इसमें ना सबसे कम इंटरनल फ्रेगमेंटेशन आती है सबसे कम इंटरनल फ्रेगमेंटेशन आती है क्यों क्योंकि मैं बेस्ट फिट ढूंढता हूं ठीक है सबसे पहले मैं बेस्ट फिट ढूंढता हूं तो 90 को बेसिकली मैंने 100 पे बिग एनफ 100 वाज बिग एनफ टू अकोमोडेट्स होल को सर्च किया है स्मॉलेट होल दैट वाज बिग एनफ ठीक है तो सबसे स्मॉलेट होल जो कि बिग एनफ था जो 90 को अमरेट कर पाया बेसिकली 90 पे एलोकेट कर दिया तो यह मेरा बेस्ट फिट हुआ अब इसके एक और एडवांटेज यह हो सकती है अब दूसरा पॉइंट इसमें यह हो सकता है कि यह ना थोड़ी स्लो है स्लो इसलिए होगी क्योंकि अभी मैं क्या कर रहा हूं या तो मैं पूरी लिस्ट को सॉर्ट कर लूं ठीक है सॉर्ट करके इधर बेसिकली इसके अकॉर्डिंग में सॉर्ट कर लूं जो सबसे छोटा होगा जो कि बिग एनफ होगा जो इसको अमरेट कर पाएगा राइट या फिर मुझे पूरी ही लिस्ट एट करनी पड़ेगी मुझे पूरी ही लिस्ट आइ ट्रेट करनी पड़ेगी हो सकता है यह 90 ब्लॉक जो है एंड प एंड पर पड़ा होता तो ठीक है इसके इसके कॉम्लेक्स टी जो है ज्यादा है तो स्लो है बेसिकली ये ठीक है दूसरा क्या है कि यह मेजर एक्सटर्नल फ्रेगमेंटेशन क्रिएट कर सकता है अब ये मेजर एक्सटर्नल फ्रेगमेंटेशन कैसे क्रिएट करेगा अब इमेजिन करो कि हम क्या कर रहे हैं हम हम एक ऐसा होल ढूंढ रहे हैं जो कि स्मॉलेट बिग एनफ हो स्मॉलेट बिग एनफ हो अब मान लो इस केस में इस केस में मान लो ये 90 था ठीक है 90 था मेरे पास 90 ये 90 केवी था अब मान लो कोई 85 केबी की प्रोसेस आती कोई 85 केबी की तो बेसिकली मैं 85 तक कलकुट कर देता 85 केब तक तो मेरे पास कितना 5 केब लेफ्ट होता अब मान लो सिंपल ऐसे ही बहुत सारी प्रोसेसेस आ गई ऐसी बहुत सारी प्रोसेसस आ गई बेस्ट फिट के अकॉर्डिंग वो सब एलोकेट हो गए इस लिस्ट पे ठीक है वो सब एलोकेट हो गए इस लिस्ट प बट सब सब प्रोसेस एलोकेट होने के बाद 2 के बी 3 के बी 5 केबी 1 केबी ठीक है इस तरीके की फ्री लिस्ट बन गई अब अब यह देखो कि सिंपल वही वाली एक्सटर्नल फ्रेगमेंटेशन वाली प्रॉब्लम आ रही है कि मेरे पास छोटे छोटे छोटे छोटे होल्स पड़े हुए हैं अगर मान लो मेरे पास कोई 7 केब की एलोकेशन आती है 7 केब की एलोकेशन आती है तो मैं इवन दो मेरे पास सेवन से तो ज्यादा ही स्पेस है इसमें ठीक है सेवन से तो ज्यादा ही स्पेस है परट फिर भी मैं क्वांटस लोकेशन 7 केब की 7 केब की कोई भी प्रोसेस की मैं नहीं कर पाऊंगा तो बेसिकली इसकी वजह से ना एक्सटर्नल फ्रेगमेंटेशन मेजर एक्सटर्नल फ्रेगमेंटेशन आ सकती है ठीक है तो ये इसमें एक प्रॉब्लम है बेस्ट फिट में जो ये बेस्ट फिट में प्रॉब्लम है ना कि मेजर एक्सटर्नल फ्रेगमेंटेशन इसमें आ सकती है यहां पर वर्स्ट फिट में इसका उल्टा है ठीक है यहां पे लेसर एक्सटर्नल फ्रेगमेंटेशन होगी ऐसा इसलिए क्योंकि मैं क्या कर रहा हूं मैं लार्जेस्ट होल ढूंढ रहा हूं जो कि बिग एनफ हो ठीक है लार्जेस्ट होल तो मैं 200 पे एलोकेट कर रहा था 200 पे एलोकेट करने के बाद ग्रीडी मैं ये सोच रहा हूं कि मैं सबसे बड़ी फ्री स्पेस मैं लेफ्ट छोडूं समझ रहे हो तो मैंने क्या करा सिंपल 90 पे 100 पे लोकेट ना करके 200 पे लोकेट करा और 110 इतनी फ्री स्पेस छोड़ी तो इससे मैं ग्रेडली ऐसा सोच रहा हूं कि बेसिकली मैं ज्यादा से ज्यादा स्पेस छोड़ना चाहता हूं ताकि ज्यादा से ज्यादा बेसिकली प्रोसेसेस आ पाए बड़ी प्रोसेस भी कोई भी आ पाए ठीक है तो इसके अंदर लेस एक्सटर्नल फ्रेगमेंटेशन बोल सकता हूं मैं दूसरा स्लो तो यह भी है क्यों क्योंकि बेस्ट जिस तरीके से बेस्ट फिट में मैं स्मॉलेट बिग एनफ ढूंढ रहा था यहां पर मैं लार्जेस्ट ब बिग एनफ ढूंढ रहा हूं तो हो सकता था 200 जो है वह एंड पे हो एंड पे हो तो इसकी कॉप्लेक्स टी ज्यादा मुझे पूरी ही आइ ट्रेट करनी पड़ेगी टू फाइंड दिस 200 राइट ठीक है तो इस तरीके से यह चीजें चलती है यहां पर ठीक है चार हमारे पास लोकेशन की अ बेसिकली मेरे पास जो लिस्ट ऑफ होल्स है लिस्ट ऑफ फ्री लिस्ट बेसिकली फ्री लिस्ट में जो लिस्ट ऑफ होल्स है इसमें मैं किस तरीके से लोकेशन करूं तो यह मेरे कुछ तरीके होते हैं फर्स्ट फिट हो गया आपका नेक्स्ट फिट हो गया आपका बेस्ट फिट हो गया और वर्स्ट फिट हो गया इसका कंपैरिजन हमने कर लिया है ठीक है मोस्टली कंटस एलोकेशन में काम आते हैं अभी तक हम कंटस एलोकेशन ही पढ़ रहे हैं तो नॉन कंटस हम नेक्स्ट लेक्चर में डिस्कस करेंगे आई होप आपको सब समझ आ रहा होगा ठीक है कमेंट सेक्शन में कमेंट्स करो यार समझ आ रहा या नहीं आ रहा थोड़ा सा मेमोरी मैनेजमेंट ना थोड़ा सा टिपिकल है ठीक है समझने में प्रॉब्लम होती है मुझे भी होती थी अपने टाइम पे काफी ज्यादा टाइम मेमोरी मैनेजमेंट मॉड्यूल को समझने में दिया था मैंने ठीक है तो आप भी वीडियोस को बार-बार देखो थोड़ा सा इंटरनेट प जाकर सर्च करो कोई भी टॉपिक आपको लगे जो आपको थोड़ा सा और लबरेट कर होकर पढ़ना है डबल क्लिक करके पढ़ना है तो आप इंटरनेट पर जाओ सर्च करो और पढ़ो तो मिलते हैं नेक्स्ट लेक्चर पे तब तक के लिए गुड बाय हेलो जी कैसे स दिस लक्ष तो हम आ चुके हैं हमारे ओस के लेक्चर नंबर 26 पर और आज हम डिस्कस करने वाले हैं नॉन कंटस मेमोरी एलोकेशन के बारे में यार पिछले लेक्चर में हमने पढ़ा कि हमारे पास रम होती थी ठीक है रम के अंदर हम जब कंटस एलोकेशन करते थे जिसके अंदर डायनेमिक पार्टीशनिंग अगर यूज कर भी लेते थे तब भी उस केस में हमें एक्टल फ्रेगमेंटेशन की प्रॉब्लम आती थी जिसको ठीक करने के लिए हमने डी फ्रेगमेंटेशन या कंपैक्स मेथड का यूज किया ठीक है बस उसमें प्रॉब्लम भी बहुत ज्यादा थ कि हर थोड़ी-थोड़ी दे बाद डीफ फ्रेगमेंटेशन करनी पड़ेगी जिसकी वजह से कॉम्प्लेक्शन बढ़ जाएगी एक एक टाइप का ओवरहेड है ये राइट तो एक बार इस चीज को रिवाइज करते हैं और देखते हैं कि किस तरीके से हम इस चीज को सॉल्व कर सकते हैं ठीक है अब ये देखो हमारे पास ये ये एग्जांपल था पिछले लेक्चर में ठीक है ऐसा कुछ एग्जांपल था हमारे पास ये रम की सिचुएशन है मेरी ठीक है ये रम की सिचुएशन है जिसमें कि 4k भी भी मेरा ओएस है 2kb p1 ने ले रखा है बा बाकी ए के भी p3 ने 2 के भी p2 ने तो इसमें क्या प्रॉब्लम आती थी प्रॉब्लम इसमें यह आती थी अब मान लो कि p1 p2 एग्जिट कर गई p1 भी एग्जिट कर गई और p2 भी एग्जिट कर गई राइट तो मेरे पास कुछ इस तरीके सिचुएशन होगी ठीक है यह दोनों ही प पार्टीशन जो है मेरे ये 2kb के 2kb के 2kb के दो चंक मेरे पास फ्री है तो इसमें फ्री लिस्ट कैसी बन रही थी हमारी 2kb की फिर 2kb की ठीक है नल इस तरीके से कुछ बन रहा था अब इमेजिन p4 नाम की कोई प्रोसेस आती है p4 नाम की प्रोसेस आती है वो मेरी 3 केबी की है ठीक है तो 3 केब की एलोकेशन 3 केबी की एलोकेशन मैं नहीं कर पा रहा था रीजन बीइंग जब भी मेरा ओस सर्च करने जाता है कि कौन सा नोड खाली है ये वाली नोड खाली है ये वाली नोड खाली है तो नोड हमें खाली नहीं मिलती कंटस एलोकेशन मैं इस केस में नहीं कर पाता राइट ये हमने पढ़ा है सब कुछ ठीक है दोबारा से एक बार रिवाइज कर लिया अब इमेजिन करो कुछ ऐसा मैं ना करूं कुछ ऐसा मैं ना करूं कि कुछ पार्ट मैं इधर एलोकेट कर दूं और कुछ पार्ट इधर एलोकेट कर दूं ऐसा कुछ मतलब सो सोच सकते हैं तो पेजिंग ऐसा ही कुछ एक मेथड मेथड है जिसमें कि हम नॉन कंटीन्यूअस एलोकेशन कर सकते हैं यानी कि कुछ पार्ट इधर डाल दिया कुछ पार्ट इधर डाल दिया ठीक है वो हम कैसे करते हैं इस चीज को देखते हैं लेट्स सपोज मेरे पास एक लॉजिकल एडर स्पेस है वो कुछ इस तरीके से दिखता है ठीक है तो देखो ऐसा कुछ सिनेरियो हमने बना लिया जिसमें कि हमारे पास ये मेरे पास एक प्रोसेस है ठीक है और यह मेरा रम है तो देखो ध्यान से सुनना क्या किया हमने हमने किया है कि प्रोसेस को हमने कुछ डिवीजन में डिवाइड कर दिया ठीक है एक फिक्स साइड डिवीजन में डिवाइड कर दिया जिसकी अभी डिवीजन मैंने ली 16 केबी 16 केबी साइज की डिवीजन कर दी मैंने किसकी करी है प्रोसेस की और प्रोसेस क्या है आपका लॉजिकल एट स्पेस ठीक है प्रोसेस आपका लॉजिकल ड स्पेस है तो अब इससे क्या होगा मैंने एक प्रोसेस को डिवाइड कर दिया 16 केब में और इस इसको मैं बोल रहा हूं पेज ठीक है तो जो भी लॉजिकल एड्रेस स्पेस जो भी लॉजिकल एड्रेस स्पेस जो फिक्स्ड साइज में डिवाइडेड होती है उसको मैं एक पेज बोल देता हूं ठीक है तो ये मेरे पेजेस हो गए तो इसको मैं बोल रहा हूं पेज जीरो पेज वन पेज टू पेज थ ठीक है अब ये सोच के देखो ये हमने देखा है कि लॉजिकल लेटर्स पे जो हम कंटस एलोकेशन कर रहे थे कंट एलोकेशन हो रहा होता तो क्या होता यह पूरे 64 केबी मालो मैं इस पोजीशन से डालना शुरू करता इस पोजीशन से तो यह पूरे इस तरीके से यहां पर डल जाते राइट इस तरीके से य पर डल जाते अब मैं ना ऐसा कुछ नहीं करूंगा अब मैं क्या करूंगा कि इन पेजेस को ना यह छोटे-छोटे जो चंक्स बनाए हैं मैंने छोटे छोटे जो चंक्स फिक्स साइज के चंक बनाए हैं इन चंक्स को मैं बेसिकली इन इ पोजीशन पर एलोकेट करूंगा ठीक है इस पर एलोकेट करूंगा ठीक है अब ध्यान से देखो जो इसका साइज है ना ये 16 केब का साइज है एक चंक मेरा लॉजिकल एटर स्पेस में जिसको मैं पेज बोल रहा हूं वो 16kb का है ठीक है तो 16 जैसे जैसे कि 64kb को कंटस में एलोकेट करने के लिए मुझे यहां पे 64 ही केब चाहिए थे सिमिलरली लॉजिकल लेटर स्पेस में जो हमने पेजेस बनाए हैं किसी प्रोसेस के उस पेजेस को भी यहां पर 16kb ही चाहिए होगा इसलिए आप ध्यान से देखो रम को भी हमने 16 16 16kb में डिवाइड किया हुआ है एंड वी आर अजूम मिंग कि फर्स्ट 16kb में हमने ओ को डाला हुआ है ठीक है तो ओ तो भी हट जाएगा हमारे पास फ्री अवेलेबल यहां पे यहां से यहां तक है ठीक है तो अब ध्यान से देखो जो पेज साइज है मेरा वह इक्वल है मेरा किस चीज से यहां पर जो पार्टीशन बनाई मैंने उससे और इस पार्टीशन को जो कि एक्चुअल पार्टीशन है लॉजिकल एड्रेस तो आपको हम सबको पता है कि इमेजिनरी एड्रेस है वर्चुअल है राइट यह जो एक्चुअल एड्रेस है मेरा यानी कि एक्चुअल जो रम है रम के अंदर जो मैंने पार्टीशंस करी है इस जो पार्टीशंस करी है इनको मैं क्या बोलता हूं फ्रेम ठीक है दो टर्म्स हमने यूज़ करी एक मैंने टर्म यूज करी पेज एक टर्म यूज करी फ्रेम पेज और फ्रेम क्या है पेज कुछ नहीं है वही फिक्स पार्टीशन जो कि लॉजिकल एडर स्पेस में है किसी प्रोसेस का ठीक है और उस फिक्स पार्टीशन को जब हम एलोकेट करेंगे यहां पर जाके एलोकेट करेंगे जो मैंने रैम को जो फिक्स पार्टीशन में डिवाइड किया है मैं उसको फ्रेम बोल रहा हूं ठीक है बस टर्म लॉजी डिफरेंस है ठीक है फ्रेम बोल रहा हूं तो अब यह देखो अब मैं करता कैसे हूं मैं लोकेशन इस तरीके से करता हूं अब जस्ट इमेजिन अब अ ये देखो ये मान लो मेरी रम की सिचुएशन है ठीक है रम को हमने फ्रेम्स में डिवाइज किया डिवाइड किया था 16kb के फ्रेम्स डिवाइड किए थे ठीक है हमने लॉजिकल एटर स्पेस को भी पेजेस में डिवाइड किया हुआ है वो भी 16kb के है ठीक है अब मान लो मेरी ये सिचुएशन है जिसके अंदर कि ये जो आपको एरिया दिख रहा है जो अलग पैटर्न का एरिया दिख रहा है ये सब मैं बोल देता हूं ये ऑक्यूपाइड स्पेस है ठीक है ये ऑक्यूपाइड स्पेस है इसका मतलब ये किसी और प्रोसेस ने लिए हुए हैं ठीक है अब आप ये देखो कि अगर कंटस एलोकेशन के हिसाब से मैं चल रहा होता तो मैं क्या करता मैं ये 64kb पूरे पूरे एलोकेट करने की कोशिश करता मेरे पास कुछ फ्री लिस्ट होती फ्री लिस्ट कैसी होती मेरी एक फी लिस्ट में ये नोड होती ये नोड होती ये नोड होती ये नोड होती राइट और मैं चेक करता क्या 64 केब कंटस 64 केबी कांटीगुअस मुझे अवेलेबल है मेरे पास अवेलेबल है मेरे पास क्या मेरे पास कंटस अवेलेबल है नहीं है मेरे अवेलेबल सब स्कैटर्ड है ठीक है देख रहे हो सब स्कैटर्ड है तो इस केस में अगर कंटस एलोकेशन स्कीम होती और डायनेमिक पार्टीशनिंग होती बेसिकली तो हम इसको एलोकेट नहीं कर पाते यह प्रोसेस इधर एलोकेट नहीं हो पाती ठीक है तो मुझे क्या करना पड़ रहा था मुझे डीफ फ्रेगमेंटेशन करनी पड़ती डी फ्रेगमेंटेशन मतलब मैं इन चंक्स को उठा के ये जो तीन चंक्स दिख रहे हैं आपको जो फीड चंक्स है इसको उठा के मैं वापस से अ बेसिकली इधर अ शिफ्ट कर देता शिफ्ट करने के बाद मुझे यह जगह मिल जाती और मैं लोकेट कर देता ये सब कंटस की कहानी है अभी कंटस कीम नहीं है ठीक है नॉन कंटस है तो अब ध्यान से देखो इस रैम पे जो कि मेरे पास चार चंक्स ऐसे खाली पड़े हुए हैं कैसे मैं नॉन कंटस एलोकेशन कर सकता हूं ठीक है अब देखो अब मैं क्या करूंगा ये छोटे-छोटे पार्टीशन है एक प्रोसेस के उसको मैं एक पार्टीशन को उठा के यहां पुट कर दूंगा एक पार्टीशन को उठा के यहां पुट कर दूंगा एक पार्टीशन को उठा के यहां पुट कर दूंगा एक पार्टीशन को उठ यहां पुट कर दूंगा ठीक है देखो किस तरीके से अ ये देखो मैंने क्या करा p3 को उठा के यहां पुट कर दिया p2 को उठा के यहां पुट कर दिया p1 को उठा के यहां पुट कर दिया ठीक है p1 को उठा के यहां पुट कर दिया p0 को उठा के यहां पुट कर दिया अब देखो क्या मुझे एक सेंस या फिर मैं ऐसा बोल सकता हूं क्या एक टाइप की नॉन कंटीन्यूअस एलोकेशन मैं कर रहा हूं ठीक है कोई कंटीन्यूअस एलोकेशन यहां पे नहीं हो रही है मैं नॉन कंटीन्यूअस एलोकेशन कर रहा हूं कुछ पार्ट इधर एलोकेट कर रहा हूं कुछ पार्ट इधर एलोकेट कर रहा हूं कुछ इधर कुछ इधर तो रम में मुझे कंटीन्यूअस फ्री स्पेस मिलने की जरूरत नहीं है ठीक है अगर मुझे फिक्स्ड फ्रेम्स मिल जाएंगे जो कि दूर-दूर भी होंगे तो भी मैं प्रोसेस को एलोकेट कर पा रहा हूं रीजन बीइंग क्योंकि मैंने प्रोसेस को भी पेजेस में डिवाइड किया हुआ है और ये पेजेस में जो डिवाइड किया हुआ है यह कितने साइज के पेजेस होंगे इसको मैं बोलता हूं पेज साइज और जो पेज साइज है व ऑलवेज इक्वल होगा आपके फ्रेम साइज के पेज साइज ऑलवेज इक्वल होगा आपके फ्रेम साइज के पेज साइज डिसाइड कौन करता है पेज साइज डिसाइड होता है आपका डिपेंडिंग अपॉन आपका प्रोसेसर का आर्किटेक्चर कैसा है आपका सिस्टम का आर्किटेक्चर कैसा है ठीक है नॉर्मली 4 के भी बेसिकली य यूज होता है मतलब ट्रेडिशनल सिस्टम 4 के भी यूज होता था बट आज की डेट में यह जो पेज साइज हैय य डायनामिक भी हो सकते हैं अलग-अलग पेज साइज भी हो सकते हैं और फिक्स्ड भी हो सकते हैं अभी आप दिमाग में रखो कि ये पेज साइज फिक्स्ड ही होते हैं ठीक है और ये कैसे डिटरमाइंड होता है ये डिटरमाइंड होता है सिस्टम के आर्किटेक्चर से ठीक है डिटरमाइंड कैसे होता है ये कंप्यूटर सिस्टम आर्किटेक्चर का पार्ट है इस पर अभी नहीं जा रहे हम अब आप यही रखो बस कि पेज साइज कुछ होता है जो कि सिस्टम डिसाइड करता है प्रोसेसर का आर्किटेक्चर डिसाइड करता है और उतना ही साइज मेरा फ्रेम साइज का होता है ठीक है तो हमने समझ लिया ये जो प्रोसेस है ना आपकी पूरी आपके लॉजिकल एड्रेस स्पेस को पेजेस में डिवाइड करना सिमिलरली फिजिकल एडस स्पेस को फ्रेम्स में डिवाइड करना यह जो प्रोसेस है इसको मैं बोलता हूं पेजिंग इसको मैं बोलता हूं पेजिंग इस स्कीम को मैं बोलता हूं पेजिंग ये पेजिंग यानी कि क्या है पेजिंग एक नॉनकंटीगुअस मेमोरी मैनेजमेंट स्कीम है जिसके अंदर मैं क्या करता हूं मैं एक प्रोसेस को फिक्स्ड साइज ऑफ पार्टीशन में डिवाइड करता हूं फिक्स्ड साइज को मैं क्या बोलता हूं फिक्स साइज को मैं बोलता हूं पेज ठीक है पेज और सिमिलर फिक्स साइज के पार्टीशन जितना ही मैं रम को बेसिकली अ पार्टीशन में डिवाइड कर देता हूं और रम के पार्टीशन को क्या बोलता हूं मैं फ्रेम ठीक है तो हम पास दो टर्म लॉजी है पेज और फ्रेम अब हमारा काम क्या है हमारा क्या अब बेसिकली आपको दिमाग में स्ट्राइक कर रहा होगा कि अब बेसिकली हमारा काम क्या है ठीक है कंटस के अंदर हम क्या कर रहे थे कुछ एड्रेस ट्रांसलेशन कर रहे थे राइट एडस ट्रांसलेशन हमने देखी थी हमारे पास बेस होता था बेस के अंदर हम बेसिकली बेस जो है वो रीलोकेशन रजिस्टर में स्टोर होता था बेस के अंदर हम कुछ ऑफसेट ऐड करते थे ऑफसेट ऐड करने के बाद ऑफ ऑफसेट ऐड करने के बाद मैं रम पे उस फिजिकल एड्रेस को लोकेट करता था यानी कि एड्रेस ट्रांसलेशन में करता था लॉजिकल एड्रेस टू फिजिकल एड्रेस यूजिंग रीलोकेशन रजिस्टर लिमिट रजिस्टर यह कर रहा था मैं कंटस मैशन के अंदर अब यहां पर एमएमयू कैसे ट्रांसलेशन करेगा मेमोरी मैनेजमेंट यूनिट जो लॉजिकल एड्रेस है आपका उसको फिजिकल एड्रेस में कैसे ट्रांसलेट करेगा कैसे यह जो आपका प्रोसेस है यह आपको 64 केबी की है जिसको आपने की पेजेस में डिवाइड किया हुआ है पेजेस में डिवाइड किया हुआ है आपके जो रम है तो काफी बड़ी है राइट यह 64 केब थी रैम आपकी 128 केब की है तो मैं किस तरीके से मैपिंग करूंगा ना किस तरीके से मैपिंग करूंगा इसको समझते हैं ठीक है चलिए तो लॉजिकल एटर स्पेस को फिजिकल एटर स्पेस में कन्वर्जन के लिए आपका जो एमएमयू होता है ना वो एक टाइप के टेबल डाटा स्ट्रक्चर का यूज करता है उस टेबल को मैं बोलता हूं पेज टेबल ठीक है मतलब कि हमने अब देखा कि जो पेज जीरो था पेज जीरो वो कहां पर एलोकेटेड था वो फ्रेम थ्री प एलोकेटेड था ठीक है तो यह निकालने के लिए ये निकाल ने के लिए क्या मैं अपनी मेमोरी में एक पे टेबल नाम का डेटा स्टर स्टोर कर सकता हूं यानी टेबल जैसा डेटा स् स्टोर कर सकता हूं ये टेबल कुछ इस तरीके से दिखेगी जिसमें कि मेरी पहली एंट्री क्या होगी पहले कॉलम क्या होगा आपका लॉजिकल पेज नंबर जिसमें कि हमने लिख दिया पेज जीरो जो है वो फ्रेम थ पे एलोकेटेड है पेज वन जो है वो फ्रेम सेवन पे है पेज टू जो है वो पेज फाइव पे है पेज थ्री जो है पेज टू पे एलोकेटेड है ठीक है जैसे कि यहां पे पेज टू आपका कहां लोकेटेड है फ्रेम फाइव पे पेज टू कहां पे लोकेटेड है फ्रेम फाइव पे तो इस तरीके से मैंने टेबल ड्रॉ कर ली ठीक है तो यह टेबल जो है ना पेज टेबल यह आपकी मेमोरी के अंदर होती है ठीक है यह मेमोरी के अंदर होती है और ईच प्रोसेस हैज इट्स ओन पेज टेबल ईच प्रोजेस प्रोसेस शुड हैव इट्स ओन पेज टेबल ऐसा क्यों यार आपका लॉजिकल एटर स्पेस तो हर हर प्रोसेस का अलग-अलग होता है राइट ये हमने पढ़ा पहले से अगर कोई p1 प्रोसेस आएगी तो उसका लॉजिकल एटर स्पेस कुछ अलग दिखेगा ठीक है वो हो सकता है आपकी 64kb की ना हो ठीक है वो 64 से ज्यादा बड़ी हो थोड़ी सी तो अगर बड़ी होगी तो उसके अंदर एक और पेज हो सकता है राइट थोड़ी बड़ी प्रोसेस हो सकती है तो हर बेसिकली लॉजिकल एटर स्पेस हर प्रोसेस का अलग होता है इसीलिए आपका पेज टेबल भी हर प्रोसेस का अलग होगा हो सकता है मान लो मेरे पास कोई अभी यहां पर मेरे पास कोई और प्रोसेस आ जाए ठीक है जिसके तीन पेजेस हो ठीक है तीन पेजेस हो ये मान लो मान लो मेरी p1 प्रोसेस है और ये जो तीन पेजेस है वो यहां ऐसे ऐसे एलोकेटेड हो इसका पीज पेज जीरो है जो वो यहां पर एलोकेटेड हो इसका पेज वन जो है वो यहां पर एलोकेटेड हो इसका पेज टू जो है वो यहां पर एलोकेटेड हो ठीक है तो अब देख रहे हो ध्यान से कि अ इसका मैं अगर पेज टेबल बनाऊंगा तो वो इससे डिफरेंट बनेगा इसलिए हर पेज का अलग डिफरेंट बेसिकली मेरा पेज टेबल होता है ठीक है तो अब ये देखते हैं या एड्रेस ट्रांसलेशन कैसे होगी मैं किस तरीके से एड्रेस को ट्रांसलेट करूंगा ठीक है अब एक छोटा सा एग्जांपल लेते हैं आपके पास जो लॉजिकल एड्रेस स्पेस है लॉजिकल एटर स्पेस जो है आपका प0 प्रोसेस का मैं इस प्रोसेस की बात कर रहा हूं ठीक है जो प0 प्रोसेस है मेरी वह 64 बाइट्स की है राइट 64 बाइट्स की तो अगर इन 64 बाइट्स को इन 64 बाइट्स को मुझे यूनिक आइडेंटिफिकेशन पे पोजीशन पर मान लो 25 बाइट यानी 25 देखनी है तो यहां पर कुछ 25 होगा मेरा अवेलेबल ठीक है यहां पर मान लो 25 लेबल होगा तो इसको मैं एलोकेट इसकी बटर प्रेजेंटेशन कैसे होगी 25 मैं कैसे लिख सकता हूं 0 राइट तोब ध्यान से देखो इसका जो यह वाला पार्ट है जो पहली एमएसबी पहली जो दो बिट्स है यह जो बिट्स है क्या मैं इसको बोल सक हं यह पेज नंबर है ठीक है पेज नंबर है 01 क्या होता है मेरा टू तो इधर से ध्यान से देखो यह सेकंड पेज नंबर है राइट सेकंड पेज है यह जीरो पेज है यह फर्स्ट पेज है तो यानी कि जीरो इंडेक्स ना बोलू तो मैं वन इंडेक्स से बोल तो ये सेकंड पेज है राइट तो जीरो व आपका इसको वन ही बोल देता हूं पेज नंबर वन है ठीक है क्योंकि पेज नंबर हमने जीरो इंडेक्स बोल रहे तो कंफ्यूजन ना हो तो वन सेही बोलते हैं तो 01 मैं बोल सकता हूं यह पेज नंबर होगा ठीक है अगर मैं यहां पर लिख दूं तो य 01 101 1 ठीक है और जो यह वाला पार्ट है इसका जो इसका यह वाला पार्ट है यह मेरा है ऑफसेट इसको मैं डी भी बोल देता हूं तो मैं बोल सकता हूं कि जो सि बिट से मैंने लॉजिकल एड्रेस स्पेस को जो रिप्रेजेंट किया इसके अंदर जो 25th बाइट होगी 25th बाइट होगी उसको मैं 01 1 001 बोल सकता हूं और इसकी मैं फर्द डिवीजन कर सकता हूं जिसमें कि पहली जो लेफ्ट से जो पहली दो बिट्स है वह मेरा होगा पेज नंबर ठीक है वह मेरा होगा पेज नंबर ठीक है और यह जो होगा यह मेरा ऑफसेट होगा ठीक है यह कैसे अब इसको एक बार दोबारा से समझते हैं 25 मेरा यहां पे था ठीक है 16 से मेरा पेज नंबर वन शुरू हो चुका है राइट पेज नंबर वन शुरू हो चुका है तो इस केस में अगर मैं 25th को एलोकेट करना चाहूं तो मैं बोल रहा हूं कि ये पेज नंबर वन पर है ठीक है और पेज नंबर वन वन की जो स्टार्टिंग है उससे कितना दूर है उससे वो 1001 इतना दूर है उससे वो 1001 इतना दूर है ये ऑफसेट हुआ मेरा ऑफसेट किससे बेस एड्रेस से और ये कितना होता है मेरा नाइन राइट डेसीमल में नाइन होता है तो मैं बोल सकता हूं कि इसका जो इस पेज का जो बेस है इस पेज का जो बेस है इस पेज का बेस क्या है मेरा पेज नंबर वन का मेरा बेस क्या है बेस है मेरा 16 प्लस ऑफसेट कितना है मेरा ना ठीक है 16 प् 9 25 तो मैं 25 लोकेशन पर 25 बाइट पर मैं कैसे पहुंचा मैं इस तरीके से पहुंच सकता हूं कि जो मेरा 25 है उसको मैं डिवाइड कर सकता हूं किसम दो पार्ट्स में इस पार्ट को मैं बोलता हूं प इस पार्ट को बोलता हूं डी यानी कि जो मेरा लॉजिकल लेटर स्पेस है उसको मैंने दो पार्ट में डिवाइड कर दिया इसकी जो बिट रिप्रेजेंटेशन होगी जैसे पहला होगा आपका p दूसरा होगा डी वो हमने देख लिया कैसे वर्क कर रहा है कि जो पहले दो बिट्स होंगी वो मेरा पेज नंबर बताएंगे जो कि पेज नंबर वन है ये जो मेरा ऑफसेट बताएगी कि जो पेज नंबर वन का बेस एड्रेस है मैं उससे कितना प्लस करूं कि मैं 255th लोकेशन पे पहुंच जाऊं तो बेस एड्रेस मेरा 16 था उससे कितना प्लस करूं उससे नाइन प्लस करूंगा मैं तो मेरे को 25 मिल जाएगा ये हमें सिंपल समझ आ गया ठीक है अब फ्रेम में मैं फ्रेम को कैसे डिवाइड कर सकता हूं फ्रेम में भी आपके पास 1 2 3 4 करके आठ फ्रेम्स है ठीक है और मैंने देखा जो मेरा पेज नंबर वन है व पेज नंबर वन जो है वह मेरा फ्रेम नंबर सेन पर एलोकेटेड है ठीक है मुझे पता है यह भी 16 केबी का है यह भी 16 केबी का है इसका ऑफसेट कितना था ना ठीक है तो सिमिलरली जब यह फ्रेम उठके यहां पर मैंने डाला होगा तो 25 लोकेशन जो है वह किस लोकेशन पर होगी ठीक है वो मेरी किस लोकेशन पर होगी वो होगी 11 प्स ना दैट वुड बी इक्वल टू 1 2 1 ठीक है ट 1 तो मैं बोल रहा हूं कि 25th लोकेशन है यह हमने सिंपल कैलकुलेशन करी है 25 लोकेशन वह मेरी टू व लोकेशन पे है यहां पर यहां पर टूव लोकेशन पे है यह 25th बाइट ठीक है अब मैं इससे 25 से इस पर कैसे ट्रांसलेट करूंगा तो इसको ट्रांसलेशन से पहले हम यह समझते हैं कि फिजिकल एड्रेस स्पेस में टूव को मैं कैसे लिखूंगा टूव को मैं लिख सकता हूं 1 1 1 001 राइट अब आप ध्यान से देखो आपका जो यह डी था आपका जो यह डी था यही इसकी लास्ट की चार बिट्स बन रही है ठीक है यह इसकी लास्ट की चार बिट्स बन रही है यह यह आपका वही डी है जो लॉजिकल लेडर स्पेस में डी था ऑफसेट था तो ऑफसेट तो यहां पर सेम हो गया बस चेंज क्या हुआ मेरा फ्रेम नंबर चेंज हो गया यहां पर यह फ्रेम नंबर जो है यह थ्री बिट्स में रिप्रेजेंट हो रहा है थ्री बिट्स में क्यों रिप्रेजेंट हो रहा है फ्रेम नंबर क्योंकि य पास आठ है 2 रे टू द पावर 3 इज 8 तो थ्री बिट्स चाहिए मुझे 0 टू से को बेसिकली यूनिक आइडेंटिफिकेशन ट करा दिया वनटू व पर यानी कि पेज नंबर वन जहां पर लोकेटेड था और ये जो इसके बिट एड्रेस देख रहे हो आप जो एड्रेस वो किस तरीके से उसका जो ऑफसेट है यानी लास्ट के चार बिट्स है वो सेम है लॉजिकल एड्रेस स्स से ठीक है बस पेज नंबर डिफरेंस है यहां पे पेज नंबर दो बिट में है यहां पर फ्रेम नंबर तीन बिट में है तो आईडियली मुझे क्या चाहिए मुझे एड्रेस ट्रांसलेशन के लिए कुछ कोई यह तरीका चाहिए कि मैं किस तरीके से 01 को 11 में बेसिकली ट्रांसलेट कर सकता हूं तो मैं क्या करता हूं मैं एक लॉजिक लिख लेता हूं कि कैसे कर सकते हैं हम इसको तो मैं बोल सकता हूं यह आपका लॉजिकल एड्रेस स्पेस था कितना था हमारा 01001 तो अब ध्यान से देखो हमने क्या करा हमने क्या करा लॉजिकल एड्रेस को फिजिकल एड्रेस में चेंज करने के लिए कुछ इस तरीके चीज बनाई कि मेरे पास सिक्स बिट्स थी मेरे पास सिक्स बिट्स ी लॉजिकल एडस में थी ठीक है और मेरे पास मेरे पास सेवन बिट्स थी आपकी फिजिकल एड्रेस में सेवन बिट्स ठीक है तो मैंने क्या करा सबसे पहले हमने खुद ही देखा जो डी मेरा पार्ट है डी यानी कि ऑफसेट जो पार्ट है वो तो सेम ही रहता है तो ऑफसेट यहां पे 00 1 हो जाएगा ठीक है बस चेंज क्या हुआ मेरा कि जो फे पेज नंबर है वो किस फ्रेम नंबर पे है यह चीज मुझे पता लगानी है ये चीज मुझे पता लगानी है और यह चीज कैसे पता लगाएंगे हम ये पता लगाएंगे हम पेज टेबल से तो पेज टेबल में आप देखो कि 01 की जो एंट्री है 0 व की एंट्री है उसके करेस्पॉन्डिंग्ली है वैसे की वैसे क्यों डाल रहे थे हम क्यों डाल ते कोई कंफ्यूजन नहीं आनी चाहिए क्योंकि मैं इस पेज को उठाकर पूरा पूरा इधर डाल रहा हूं यानी कि इसकी जो बेस एड्रेस है 16 उसको मैं किधर मैप कर रहा हूं 112 पर यानी कि उसका जो ऑफसेट होगा कोई भी जो ऑफसेट होगा जैसे कि यहां पे नाइन ऑफसेट था तो 16 + 9 पे जो 25th लोकेशन आती थी वो भी यहां पर 11 2 + 9 12 2 1 लोकेशन पे आ जाएगी तो इससे हमें कोई इसमें कोई डिफ कोई कंफ्यूजन नहीं होनी चाहिए हमें किस तरीके से हम बेसिकली यहां से इधर ट्रांसलेट कर रहे हैं तो इसके ट्रांसलेशन के लिए जो ऑफसेट है मेरा जो मेरा ऑफसेट है वह तो मेरा सेम है ऑफसेट मेरा सेम है बस मुझे किस चीज की ट्रांजीशन की जरूरत थी कि मैं पेज नंबर को कैसे फ्रेम नंबर सेलो वो ट्रांसलेट करूं वो करने के लिए मैंने पेज टेबल का इस्तेमाल कर लिया क्योंकि पेज टेबल में लिखा है कि 0 व के कॉरेस्पोंडेंस में कि हम लॉजिकल एटर स्पेस को डिवाइड करते हैं फिक्स्ड पार्टीशन में जिसको मैं पेज बोलता हूं ठीक है और हम फिर कॉरस्पॉडिंग रैम को भी डिवाइड कर देते हैं फिक्स्ड पार्टीशन में जिसको मैं फ्रेम बोलता हूं ठीक है क्योंकि रैम बड़ी है क्योंकि रैम बड़ी है तो रम के अंदर ज्यादा नंबर ऑफ पार्टीशंस हो सकते हैं ठीक है पर पार्ट पार्टीशन का साइज 16 ही रहेगा ठीक है तो इससे मुझे अगर इस पे ट्रांसलेट करना है जो एड्रेस ट्रांसलेशन करनी है वो मैं किस तरीके से करूंगा वो मैं किस तरीके से करूंगा कि मेरा ऑफसेट तो सेम रहेगा ऑफसेट मेरा सेम रहेगा बस मैं पेज टेबल का यूज करके यहां पर मैं फ्रेम नंबर निकाल लूंगा तो पेज टेबल यहां पे एक इंपॉर्टेंट डाटा स्ट्रक्चर है जो कि क्यों यूज़ होता है किसी भी अ प्रोसेस के करेस्पॉन्डिंग्ली से नजर डालते हैं नोट्स पे हमने क्या लिखा है ठीक है जो जो हमने डिस्कस किया कि आईडिया बिहाइंड पेजिंग क्या है वो हमने यहां लिखा है उसके अलावा और डाइनिंग पार्टीशन की जो प्रॉब्लम थी एक्सटर्नल फ्रेगमेंटेशन की वो पेजिंग ने कैसे सॉल्व करी है वो हमने देखा कि यहां पर मेरे ये ये ये ये जोरी यानी कि फ्रेम नंबर वन फ्रेम नंबर फोर फ्रेम नंबर सिक्स ये तीनों के तीनों फ्रेम बिजी थे कहीं ना कहीं एलोकेटेड थे ठीक है 64 केब की एक प्रोसेस आती है जो कि एलोकेट हो सकती है यहां पे क्योंकि जो मेरी फ्री लिस्ट है वोह बेसिकली फ्री है है ना तो मैंने क्या करा मैंने एक प्रोसीजर अपनाया कि मैंने नॉन कंटस एलोकेशन कर दी कुछ पार्ट यहां डाल दिया कुछ पार्ट यहां डल दिया कुछ पार्ट यहां डाल दिया कुछ पार्ट यहां डाल दिया और इससे क्या हुआ एक्सटर्नल फ्रेगमेंटेशन इस केस में नहीं आई तो पेजिंग के अंदर एक्सटर्नल फ्रेगमेंटेशन नहीं होती ठीक है चलिए आगे बढ़ते हैं ठीक है पेज टेबल हमने डिस्कस किया द पेज टेबल कंटेंस द बेस एड्रेस ऑफ ईच पेज इन द फिजिकल मेमोरी यानी कि जो हर एक पेज होगा हर एक पेज होगा वह फिजिकल मेमोरी में कहां पर एलोकेटेड होगा कौन से बेस एड्रेस पर एलोकेटेड होगा उसके बारे में निकाल रहे हैं कंटस मेमोरी एलोकेशन में हम क्या कर रहे थे इस पूरे 64 को उठा के मैं यहां से यहां तक डाल देता ठीक है तो रीलोकेशन रजिस्टर में क्या डालता इस जीरो के करेस्पॉन्डिंग्ली बढ़िया ये एक लॉजिकल डायग्राम बनाया हमने सिंपल सा डायग्राम है पेज नंबर वन सॉरी प्रोसेस वन जो है इसको मैंने 1 2 3 फर पेजेस में डिवाइड किया है 0 2 3 इंडेक्स ये मेरी फिजिकल मेमोरी है एज्यूमंगा इस तरीके से मैंने एलोकेट कर दिया कि जो जीरो थ आपका पेज है वो फर्स्ट फ्रेम पे चला गया फर्स्ट जो पेज है आपका वो ये रहा फोर्थ फ्रेम पे चला गया तो इस तरीके से वर्क कर रहा है ये हमने पढ़ा भी अभी ठीक है ये हमने देखा कि पेज टेबल इ स्टोर्ड इन मेमोरी एट द टाइम ऑफ प्रोसेस क्रिएशन ठीक है इट्स बेस एड्रेस इज स्टोर्ड इन पीसीबी अब आप ये देखो कि हर प्रोसेस का अपना अलग पेज टेबल होता है अब क्योंकि हर प्रोसेस का अपना अलग पेज टेबल होता है और हर प्रोसेस से रिलेटेड जो ओएस आपका डाटा स्ट्रक्चर स्टोर करके रखता है वो मेरा पीसीबी होता है राइट पीसीबी के अंदर हमने पढ़ा कि बहुत सारे रजिस्टर्स की वैल्यू ठीक है आपका जो प्रोग्राम काउंटर की वैल्यू सब स्टोर करता है तो हर प्रोसेस का अलग पीसीबी होता है तो हर पसी हर एक पीसीबी के अंदर हर प्रोसेस के पीसीपी के अंदर उसकी पेज टेबल की जो कि मेमोरी में स्टोर्ड है उसकी लोकेशन होती है ठीक है उसकी लोकेशन होती है कि वो मेमोरी में किस पोजीशन पर यह जो आपका जो यह ओस का पार्ट था ना हमने देखा इस का पार्ट था ये जो कर्नल भी इसी के अंदर होगा तो कर्नल के अंदर जो पीसीबी होता है पीसीबी के अंदर हम स्टोर करके रखते हैं कि हर प्रोसेस का जो पेज टेबल है उसका बेस एड्रेस क्या है ठीक है तो यही हमने यहां लिखा ए पेज टेबल बेस रजिस्टर पीटीबीआर इज प्रेजेंट इन द सिस्टम दैट पॉइंट्स टू द करंट पेज टेबल ठीक है जो करंट पेज टेबल का मतलब क्या है जो भी प्रोसेस अभी शेड्यूल्ड है ठीक है चेंजिंग पेज टेबल रिक्वायर्स ओनली दिस रजिस्टर एट द टाइम ऑफ कं स्विचिंग अब आप ये देखो जब भी कांटेक्ट स्विचिंग होगी ठीक है अभी मान लो यह पर्टिकुलर p1 प्रोसेस चल रही है ठीक है जैसे ही कांटेक्ट स्विचिंग होगी यानी कि मान लो p1 चली जाती है आपकी आईओ करने आओ करने जैसे जाएगी तो किसी और प्रोसेस को सीपीयू का एक्सेस मिल जाएगा जब कोई और प्रोसेस आएगी तो पेज टेबल भी चेंज होना चाहिए ठीक है पेज टेबल भी चेंज होना चाहिए तो पेज टेबल चेंज होने के रिगार्डिंग मैं क्या करता हूं ओस अपना एक पीटीबीआर एक रजिस्टर होता है उसके पास सिस्टम के अंदर एक रजिस्टर होता है उस रजिस्टर की वैल्यू चेंज कर देता हूं क्योंकि कैसे करेंगे हम इसको यह मेरी मान लो p प्रोसेस है इसका यह पीसीबी है ठीक है पीसीबी के अंदर बेसिकली पेज टेबल का एड्रेस टड है ठीक है और पेज टेबल कहां स्टोर्ड है पेज टेबल रम में स्टोर्ड है ठीक है और अब जैसे कांटेक्ट स्विचिंग होती है कांटेक्ट स्विचिंग जैसे ही होती है तो ओ क्या करेगा ओस क्या करेगा वो जो नई प्रोसेस आ रही है जो रिस्टोर होके प्रोसेस आ रही है मान लो ये मान लो p1 है तो ये p2 लगा लेते हैं इसको ठीक है तो मान लो p1 अभी चल रही थी और ये p2 मेरी प्रोसेस आई तो p2 का जो पीसीबी होगा उसके अंदर पेज टेबल एड्रेस स्टोर होगा कि इसका पर्टिकुलर पेज टेबल कहां पड़ा हुआ है तो जैसे ही कंटक्ट स्विचिंग होगी तो क्या होगा पीटीबीआर जो रजिस्टर है ठीक है ये मेर मा लो पीटीबीआर रजिस्टर है इसके अंदर जो एड्रेस स्टोर्ड होगा एड्रेस स्टोर्ड होगा अभी p1 स्टोर्ड होगा इनिशियली कंटक्ट ूजिंग से पहले p1 स्टोर्ड होगा अब जैसे ही आपकी कंटक्ट स्विचिंग होगी तो p1 की जगह यहां पर p2 की वैल्यू आ जाएगी वो कैसे आएगी वो p2 के पीसीबी के अंदर जो स्टोर्ड पेज टेबल का एड्रेस है वो ऐसे आ जाएगी तो कांटेक्ट स्विचिंग हो सकती है इस केस में भी कांटेक्ट स्विचिंग में क्या एडिशन हुआ है एडिशन हुआ है हमारा पेज टेबल के पेज टेबल को चेंज करना पेज टेबल चेंज कैसे होगा जो नई प्रोसेस आ रही है रिस्टोर होके उसके पीसीबी के अंदर पेज टेबल का एड्रेस स्टोर होगा ठीक है और जोब सिस्टम है सिस्टम के अंदर पीटीबीआर रजिस्टर होता है उस रजिस्टर के अंदर पहले ओल्ड वैल्यू होगी यानी कि p1 p1 के कॉरस्पॉडिंग पेज टेबल की वैल्यू होगी अब किसकी वैल्यू होगी अब मेरी p2 के कॉरेस्पोंडेंस ये वो कह रहा है कि चेंजिंग पेज टेबल रिक्वायर्स ओनली दिस वन रजिस्टर एट द टाइम ऑफ कांटेक्ट स्विचिंग बहुत ही बढ़िया हाउ पेजिंग अवॉइड एक्सटर्नल फ्रेगमेंटेशन ये हमने पढ़ लिया ठीक है कितनी ब्यूटीफुली अवॉइड हुआ है क्योंकि हम नॉन कंटस एलोकेशन कर पा रहे हैं तो इस केस में एक्सर्नल फ्रेगमेंटेशन नहीं आगी अब एक इंपॉर्टेंट चीज डिस्कस करते हैं वह है कि व्हाई पेजिंग इज स्लो इतना जो हमने सब किया इतना जो हमने समझा इस चीज में आप देखोगे कि बहुत ज्यादा ना मेमोरी रेफरेंसेस हो रहे हैं मेमोरी रेफरेंसेस कैसे हो रहे हैं हमने सबसे पहले देखा जो पेज टेबल है ये पेज टेबल कहां स्टोर है पेज टेबल खुद आपका ओस के अंदर स्टोर है यानी रम के अंदर स्टोर है पेज टेबल आपका रम के अंदर स्टोर है ठीक है और आपका लॉजिकल एड्रेस स्पेस जो है उससे जब मैं फिजिकल एड्रेस पेस में ट्रांसलेट करता हूं तो आपका एक एक लॉजिकल एड्रेस स्पेस के अंदर जो एक एक चंक है यानी कि एक एक पेज जो है वो आपका एक एक पेज यहां पर फ्रेम की फॉर्म में यहां पर एलोकेटेड है यहां पर एलोकेटेड है ठीक है तो अब मान लो मुझे किसी 25 लोकेशन पर भी जाना होता है तो सबसे पहले मुझे एक रेफरेंस डालना पड़ता है पेज टेबल प ठीक है एक पेज टेबल पर रेफरेंस डालना पड़ता है फिर मुझे पेज टेबल बताता है कि भाई मेरा कौन से फ्रेम पर जाना है मुझे ठीक है फिर मैं क्या करता हूं मैं उसके करेस्पॉन्डिंग्ली 121 लोकेशन पर पहुंच पा रहा था तो इसमें आप देख रहे हो कितने ज्यादा मेमोरी मेमोरी रेफरेंसेस है कि मुझे रम के अंदर 121 पोजीशन पर पहुंचना था तो मैं डायरेक्ट ना पहुंच कर मुझे पहले पेज टेबल की मदद लेनी पड़ रही है उस पेज टेबल की मदद लेके मैं यहां पहुंच पा रहा हूं तो इसकी वजह से ओवरहेड आ गया है यहां पर और इस ओवरहेड की वजह से आपकी पेजिंग थोड़ी सी स्लो हो जाती है बेसिकली आप देखो सिस्टम के अंदर बहुत सारी प्रोसेसेस होती हैं बहुत सारी प्रोसेस लगातार कांटेक्ट स्विच करती रहती है कंटक्ट स्विचिंग के अंदर जब भी कंटक्ट स्विचिंग होगी नया पेज टेबल आ जाएगा नया पेज टेबल आने के बाद जब नया पेज टेबल आता है तो वो भी आपका बेसिकली रम से ही आता है क्योंकि पेज टेबल रम में स्टोर होता है ठीक है पेज टेबल आ भी गया उसके बाद भी अगर मुझे लॉजिकल ट स्पेस से फिजिकल टर स्पेस में जाना है तो उस केस में मुझे पेज टेबल का यूज करना पड़ता है 121 लोकेशन प जाने के लिए भी पहले मैं पेज टेबल प जाके उसको बेसिकली एक रेफरेंस देता हूं ये रेफरेंस नंबर वन हो गया फिर जाके मुझे यहां मिलता है तो रेफरेंस नंबर टू हो गया तो एक फालतू का बेसिकली टेबल की वजह से ओवरहेड आ गया है तो इस चीज को फास्ट करने के लिए ठीक इस चीज को फास्ट करने के लिए क्या हम कैशिंग का यूज कर सकते हैं क्या हम कैशिंग का यूज कर सकते हैं तो इस केस में हम क्या करते हैं कि पेजिंग को फास्ट करने के लिए मैं एक नई चीज यूज करता हूं जिसको मैं बोलता हूं ट्रांसलेशन लुक अहेड बफर कुछ नहीं है नाम ही इसका बहुत ज्यादा बेसिकली मैं बोल सकता हूं टिपिकल है बट ऐसा कुछ नहीं है बहुत ही सिंपल चीज है ये बस एक ना हार्डवेयर सपोर्ट है ये कोई सॉफ्टवेयर सपोर्ट नहीं है यह खुद एक हार्डवेयर है यानी कि बेसिकली खुद आपको एक हार्डवेयर एक टेबल जो आप मेमोरी में स्टोर करते हो यह मेमोरी में स्टोर्ड चीज नहीं है यह खुद एक हार्डवेयर है एक हार्डवेयर के अंदर टेबल होता है ये ठीक है वो एक कैसे है हाई स्पीड मेमोरी से बनी हुई है इसके अंदर की वैल्यू पेयर होता है की वैल्यू पेयर होता है बहुत ही कंफ्यूजन हो गई है यहां पर समझते हैं टी एल बी ट्रांसलेशन लुक अहेड बफर इसके अंदर क्या होता है आपका पेज टेबल में क्या होता है पेज टेबल में मेरा पेज नंबर होता है वो फ्रेम नंबर होता है जब भी कोई लॉजिकल एडर स्पेस जब भी कोई लॉजिकल एडर स्पेस जनरेट होता है लॉजिकल एड्रेस पे जनरेट होता है तो मैं पहले इसको एक्सेस करता हूं कि पेज नंबर क्या है फिर मैं जाता हूं उसके कस्प मुझे फ्रेम नंबर मिलता है उस पेज नंबर के कस्प फ्रेम नंबर मिलता है तब जाकर मैं रम पर एलोकेट कर पाता हूं इस चीज को इस ओवरहेड को बचाने के लिए मैंने एक हार्डवेयर सपोर्ट का यूज किया है ठीक है वह देखो कैसे दिखता है सीधा नोट्स पर देखते हैं यह देखो बड़ा सा डायग्राम है ठीक है यह मेरा सीपीयू है सीपीयू क्या करेगा लॉजिकल एडर स्पेस बनाता है हर बार लॉजिकल एटर स्पेस हमने देखा पीडी हमने इसमें इसको ब्रेक किया था ठीक है ब्रेक किया था भूल गए तो यहां जाके देखो हमने इसको ब्रेक किया था यह मेरा क्या था इनिशियली यह 25 था तो मैंने इसको ब्रेक किया यह आपका इतना पार्ट क्या था p इतना पार्ट क्या था आपका डी इसी को हमने यहां पर लिख दिया है p और डी ठीक है अब आप यह देखो जो सिंपल चल रहा है यह जो टीएलबी आपको यहां दिख रहा है अभी के लिए इसको आपकी स्क्रीन से सोचो है ही नहीं है इसको ना डिलीट मारो अभी के लिए इसको हटा दो सोचो है ही नहीं तो नहीं है तो लॉजिकली जो अभी क्या चल रहा था जो बेसिकली पेज टेबल है मेरा पेज टेबल से कैसे कर रहा था मैं कि ये इधर जाता था मैं लॉजिकल एड्रेस प इसको दो पार्ट में डिवाइड करता था पेज नंबर देखता था यहां पर गया मैं यहां पर जाके मैं देखता था पेज नंबर पेज जो आपका पेज टेबल है यह कुछ इस तरीके से दिखती है ठीक है ये असली में ऐसी नहीं दिखती कि आपको आपके पास दो कॉलम नहीं होते दो कॉलम नहीं होते रियल मेमोरी में आपके पास ये सिंपल यहां से जीरो से शुरू हो रही होती है ठीक है और यहां पे n तक जाती है ठीक है तो जो आपका एक एरे होती है ना आपकी सिंपल एरे जिसको मैं बोलता हूं एरे पे आप कैसे एरे को कैसे एक्सेस करते हो a ऑफ 0 करके a ऑफव करके ठीक है ऐसा ही कुछ मान लो तो जो यहां पर एड्रेस आता है जैसे कि मैं य 25 मान लेता हूं 25 था ना मेरा 25 p की वैल्यू क्या थी मेरी 01 01 इज वाज वन तो जस्ट इमेजिन यहां पे p की वैल्यू 0 व आई तो यहां पे वन आया वन आने के बाद यह कहां पर जाके सर्च करेगा ये जीरो लोकेशन है ये मेरी जीरो लोकेशन है वन लोकेशन है तो p के कॉरस्पॉडिंग मैं यहां पर जाऊंगा यहां पर जाकर मुझे कोई फ्रेम एड्रेस मिलेगा और वह फ्रेम एड्रेस मैं यहां पर जाके बेसिकली डाल दूंगा ठीक है यह हमने सिंपल पढ़ा यह ऐसा कुछ होता था ठीक है दोबारा से रिवाइंड करा देता हूं ऐसा कुछ यहां हो रहा था यह प के करेस्पॉन्डिंग्ली मेरा सेम होता था डी को ऐसे रखा तो प और डी से मैंने पेज टेबल की मदद से f और d निकाल लिया तो f एफ के करेस्पॉन्डिंग्ली एक्चुअल पोजीशन पे पहुंच जाऊंगा यह मेरा सिंपल प्रू था फिर से रिपीट कर दिया मैंने ठीक है अब टी एल बी इस केस में कैसे काम आएगा अब मैं चाहता हूं कि मैं कम से कम पेज टेबल का यूज करूं ठीक है पेज टेबल क्योंकि इसमें एक ओवर हेड है ओवरहेड है इसको एक्सेस करना इट सेल्फ क्योंकि ये खुद ही मेमोरी में पड़ा हुआ है खुद ही मेमोरी में पड़ा हुआ है तो इसका एक्सेस जो है ना स्लो है तो मैंने मेमोरी से भी फास्ट एक हार्डवेयर सपोर्ट डाल दिया टीएलबी जो है टीएलबी का जो एक्सेस टाइम है वो मेमोरी से भी कम होता है यानी कि कॉस्ट वाइज भी टीएलबी का जो हार्डवेयर है वो रम से भी महंगा होगा ठीक है तो मैंने क्या करा जब भी मान लो मेरे पास फर्स्ट कोई पीओ डी का पेयर आया होगा तो मैंने जो भी फ्रेम नंबर निकाला होगा ठीक है निकाल के पहले यू यूज कर लिया पर निकाल के यूज करने से पहले मैंने क्या करा उसकी एक एंट्री ना यहां पर भी डाल दी ठीक है कि भाई 0 व पेज के कॉरस्पॉडिंग जो 11 फ्रेम नंबर आ रहा है वो मैंने यहां डाल दिया अब जो मान लो नेक्स्ट टाइम फिर से नेक्स्ट टाइम फिर से अभी मान लो स्टार्टिंग में आपका जो लॉजिकल एड्रेस था वो 01 01111 आया था जस्ट इमेजिन ठीक है तो उसके कॉरस्पॉडिंग मैंने क्या करा था 01 को लोकेट करा 01 के कॉरस्पॉडिंग मैंने यहां पर एंट्री डाल दी तो यानी कि जब सबसे पहले बार ये एड्रेस आया होगा जब सबसे पहली बार ये एड्रेस आया होगा तो सबसे पहली बार मैंने पेज टेबल से रिजॉल्व किया होगा पेज टेबल से जब रिजॉल्व किया होगा तो मैंने एक एंट्री उठा के यहां भी डाल दी कि भाई नेक्स्ट टाइम जब आएगा नेक्स्ट टाइम जब य 0 व की स्टार्टिंग आएगी ना तो मैं फ्रेम नंबर जल्दी से निकाल लूंगा मुझे फिर से पेज टेबल को एक्सेस करने की जरूरत नहीं पड़ेगी तो नेक्स्ट टाइम मान लो एड्रेस आता है आपका नेक्स्ट टाइम एड्रेस आता है आपका 0111 जस्ट इमेजिन तो ये 01 है अब ये क्या करेगा अब आपका सीपीयू क्या करेगा अब वो सीधा पेज टेबल के पास नहीं जाएगा रिजॉल्व करने के लिए पेज टेबल के पास नहीं जाएगा कि भाई इस पेज इस पेज नंबर के कस्प कौन सा फ्रेम नंबर है वो क्या करेगा वो मैं वो बोलेगा कि सबसे पहले मैं टीएलबी में देख लेता हूं जाके ठीक है टीएलबी में उसे मिल जाएगी एंट्री कि भाई 01 के कॉरस्पॉडिंग व व है तो देख रहे हो कितना फास्ट हो गया मुझे पेज टेबल पे नहीं जाना पड़ा मैं सिंपली यहां से जाके मुझे टीएलबी हिट मिल गई जब भी कैश में कोई चीज मिल जाती है एंट्री मिल जाती है तो उसको मैं बोलता हूं हिट और जब एट्र एंट्री नहीं मिलती तो उसको मिस उसको मैं बोलता हूं मिस तो यानी कि ये सिंपल सी टर्मल जीी है तो जैसे ही मुझे यहां मिल जाएगी फर्स्ट टाइम नहीं मिली थी तो फर्स्ट टाइम क्या हुआ होगा मिस मिस करने के बाद उसने रिजॉल्व किया होगा और यहां एड्रेस दिया होगा और जब रिजॉल्व एड्रेस रिजॉल्व करके एड्रेस दे रहा होगा उसी टाइम पे इसने टीएलबी में एक एंट्री भी डाल दी होगी ठीक है अब इस केस में क्या होगा जब नेक्स्ट टाइम आया होगा तो 01 के कॉरस्पॉडिंग मुझे यहां पे फ्रेम नंबर मिल गया तो यह हो गई टीएलबी हिट तो मैं रो के कॉरस्पॉडिंग फ्रेम नंबर यहां पे फ्रेम नंबर की जो तीन बिट्स थी वो यहां डाल दूंगा मैं डी तो सिंपल वही वाला कॉपी होता है और मुझे मिल जाएगा तो आप देख रहे हो कि एक हार्डवेयर सपोर्ट मैंने डाला ठीक है एक हार्डवेयर सपोर्ट मैंने डाला जिसको मैं टीएल भी बोल रहा हूं जिसकी एक्सेस टाइम जो है वह बहुत ज्यादा कम है एक्चुअल मेमोरी से ठीक है तो इसका यूज करके मैंने एक बेसिकली एक आर्किटेक्चर बनाया है जिससे मैं पेजिंग को फास्ट कर पा रहा हूं ठीक है इसलिए मैं इसको बोल रहा हूं पेजिंग हार्डवेयर विद टीएलबी ठीक है तो नॉर्मली आजकल के पीसेज में टीएलबी होता है ठीक है पेजिंग इट सेल्फ इज अ वेरी कॉस्टली प्रोसेस तो इसको फास्ट करना मुझे बहुत ज्यादा जरूरी हो जाता है तो इसको फास्ट करने के लिए मैं ची यूज करता हूं बहुत ही बढ़िया अभी हमने थोड़ी देर पहले पढ़ा अभी हमने पहले पढ़ा कि पेज टेबल जो होती है ना वह हर प्रोसेस की अलग होती है इसकी मान लो पेज टेबल जीरो होगी इसकी पेज टेबल वन होगी पव की इसकी पेज टेबल टू होगी तो हर प्रोसेस की अलग पेज टेबल होती है ठीक है अब इमेजिन करो कि जब कांटेक्ट स्विचिंग होगी जब कांटेक्ट स्विचिंग होगी तो इस पोजीशन पर जो मेरा पेज टेबल है यह चेंज हो जाएगा ये चेंज हो जाएगा मान लो अभी ये प0 के कॉरस्पॉडिंग था जैसे ही कांटेक्ट स्विचिंग हुई तो ये पेज वन के करेस्पॉन्डिंग्ली ही चेंज हो गया तो अब मैं इस टीएलबी का क्या करूंगा इस टीएलबी के अंदर जो एंट्रीज पड़ी थी वो तो मान लो कि प्रीवियस पेज प्रीवियस बेसिकली प्रोसेस की पड़ी थी तो यानी कि जब भी कांटेक्ट स्विचिंग होगी तो क्या मुझे टीएलबी भी चेंज करना पड़ेगा टीएलबी चेंज एज इन कि टीएलबी के अंदर जो एंट्रीज है उनको मुझे डिलीट करना पड़ेगा ठीक है इसको देखते हैं यह चीज कैसे हैंडल होती है ठीक है तो अब आप यह देखो मान लो टीएलबी कुछ इस तरीके से दिख रहा है मेरा p0 प्रोसेस है पेज नंबर यह मेरा है फ्रेम नंबर यह टीएलबी टीएलवी है ठीक है तो इसके अंदर पहले p0 प्रोसेस के लिए यहां पे एंट्री 10 पड़ी थी और 10 के कॉरस्पॉडिंग मेरा फ्रेम नंबर क्या था 100 ठीक है यह मेरा टीएलबी है ठीक है टीएलबी मेरा यहां पे ऐसा है अब मान लो कांटेक्ट स्विचिंग हुई कांटेक्ट स्विचिंग हुई कांटेक्ट स्विचिंग होने के बाद कांटेक्ट स्विचिंग होने के बाद p1 प्रोसेस आ गई अब टीएलबी के अंदर पेज नंबर फ्रेम नंबर यहां पे 10 और 100 य p0 के कॉरस्पॉडिंग पढ़ा था तो अब देखो जब कांटेक्ट स्विचिंग हो गई है तो अब भी टीएलबी के अंदर अब भी टीएलबी के अंदर p0 के कॉरस्पॉडिंग 10 की वैल्यू पड़ी है और यहां पे 100 फ्रेम नंबर पड़ा हुआ है अब क्या ऐसा हो सकता है अब मान लो p1 प्रोसेस आई p1 प्रोसेस आई वो भी ढूंढ रही है कि 10 पेज नंबर के कॉरस्पॉडिंग कौन सा फ्रेम है ठीक है p1 प्रोसेस ढूंढ रही है तो क्या करेगी सबसे पहले इधर जाके ढूंढे गी टीएलबी में जाके सबसे पहले टीएलबी को चेक करते हैं क्योंकि वो फास्ट है टीएलबी के अंदर जाके देखोगे तो आपके पास 10 की एंट्री मिल जाएगी 10 की एंट्री मिल जाएगी बट ये 10 की एंट्री प्रीवियस प्रोसेस की है p0 की है ठीक है अब मान लो यह जाता है p1 और 10 को रीड कर लेता है कि भाई हां इसके कस्प 100 फ्रेम है पर ध्यान दो यह जो 100 फ्रेम था 10 के करेस्पॉन्डिंग्ली कर रहे हो फिर से आप दूसरी प्रोसेस को बोल रहे हो कि जो दूसरी प्रोसेस की लोकेशन है यानी कि आप पव प्रोसेस को बोल रहे हो कि प0 प्रोसेस की लोकेशन जो है वहां जाक आप एक्सेस कर लो दिस इ वेरी रंग तो इस चीज को सॉल्व करने के पास दो तरीके हैं पहला तरीका क्या है कि मैं फ्लश कर दू लवी वेन कांटेक्ट स्विचिंग अकर्स तो जैसे ही कंटक्ट स्विचिंग होगी प0 से मैं पव पर चेंज कर करूंगा कांटेक्ट स्विचिंग होगी तो मैं क्या करूंगा इसकी एंट्रीज डिलीट कर दूंगा यानी कांटेक्ट स्विचिंग हुई मैंने टीएलबी को रिसेट कर दिया ठीक है यह मैं कर सकता हूं बट यह जो रिसेट का प्रोसीजर है ना कि मैं बार-बार टीएलबी को रिसेट कर दूं अब ध्यान से देखो जो यह कंटक्ट स्विचिंग का काम है ना यह बहुत ही फास्ट होता है बहुत ही फास्ट और बहुत ही फ्रीक्वेंसी आपकी स्केड्यूल हुई स्केड्यूल होने के बाद ही उसकी नेक्स्ट इंस्ट्रक्शन लिखी थी कि उसे आईओ करने जाना है जैसे ही वो आईओ करने जाएगी तभी की तभी दूसरी प्रोसेस कंटक्ट स्विचिंग करके आएगी जैसे ही दूसरी कंटक्ट स्विचिंग करके आई आप सोचो दूसरी प्रोसेस भी कुछ इंस्ट्रक्शन एग्जीक्यूट करती है एकदम से वो भी आयो करने चली जाती है तो आप देखो बहुत ही फास्ट ये काम हो रहा होता है तो अगर मैं बार-बार टीएलबी फ्लश कॉल करता रहूंगा टीएलबी फ्लश टीएलबी फ्लश टीएलबी फ्लश तो इससे क्या होगा टीएलबी कैश का तो पूरा पर्पस ही बेसिकली वेस्ट हो गया इसके अंदर इनफ इट्री ना तो डल पाएंगी ठीक है बार-बार मैं इसे रिसेट कर दूंगा रिसेट की अपनी खुद के कॉस्ट होती है बार-बार टीएलबी को रिसेट करता हूं एक हार्डवेयर डिवाइस है ये ठीक है एक हार्डवेयर है तो इसकी खुद की भी कॉस्ट है बारबार रिसेट करने की तो टीएलबी रिसेट करना ड्यू टू कॉस्ट यह एक फीजिबल सलूशन नहीं है दूसरा क्या है कि मैं यूनिक आइडेंटिफिकेशन टीएलबी कुछ ऐसा बनाता हूं यह मेरा अब नया टीएलबी है ठीक है इसके अंदर मैं एस आईडी डाल देता हूं इसको मैं बोलता हूं एड्रेस स्पेस आइडेंटिफिकेशन फिर से वही वाला सिनेरियो लेते हैं पहले p0 एग्जीक्यूट हो रही थी तो p0 जब एग्जीक्यूट हो रही थी वो उसने अपनी एंट्री यहां डाल दी होगी ठीक है उसने अपनी यहां एंट्री डाल दी p0 इसकी एंट्री क्या है 10 के कॉरस्पॉडिंग 100 अब मान लो p1 आती है कंटक्ट स्विच होके ठीक है वह फिर से 10 के करेस्पॉन्डिंग्ली वो जाके देखेगी कि 10 की एंट्री तो है 10 की एंट्री तो है बट यह दूसरे एड्रेस स्पेस की है यानी कि यह दूसरी प्रोसेस की है तो इस केस में मैं इस को यूज करके मेमोरी प्रोटेक्शन कर पा रहा हूं तो मैं क्या करूंगा अब वह जाके जब इसमें देखेगा कि क्या मुझे एंट्री मिल रही है तो यहां पर टीएलबी हिट नहीं होगा इस केस में p1 के लिए टीएलबी मिस हो जाएगा व्हेन ट्राइज नंबर 10 तो पेज नंबर 10 के लिए पेज नंबर 10 के लिए अब यहां पर टीएलबी मिस होगा टीएलबी मिस होगा तो यह जाके इस अपने पेज टेबल को जाएगा पेज टेबल से रिजॉल्व करेगा वहां से निकाल के लाएगा फ्रेम फ्रेम वैल्यू जब वहां से फ्रेम वैल्यू मिल जाएगी मुझे तो p1 के लिए यहां पे मैं लिख दूंगा कि p1 प्रोसेस है भाई और पेज नंबर इसका 10 है इसके कॉरस्पॉडिंग फ्रेम मान लो 45 है ठीक है तो बहुत ही बढ़िया टीएलबी के अंदर जो एक इशू था यह भी हमने सॉल्व कर दिया ठीक है फ्लश करके भी सॉल्व कर सकते थे बट यह एक सही तरीका है नहीं हमें सब कुछ फास्ट चाहिए ठीक है तो यह हमारा एक तरीका हो सकता है इसको नोट्स में जाके देख लेते हैं ठीक है बहुत ही बढ़िया से लिखा है हमने यस एड्रेस पे टफर इज स्टोर्ड इन ईच एंट्री ऑफ टीएलबी ठीक है हमने हर एंट्री में स्टोर किया इसको ठीक है एस आईडी यूनिक आइडेंटिफिकेशन कैसे प्रोवाइड करता मान लो p1 आप p1 आपका आया टीएलबी पे टीएलबी पे आके देखता है 10 की तो एंट्री है 10 की एंट्री है तो आप 10 के कॉरस्पॉडिंग 100 फ्रेम प चले जाओ p1 भी 100 फ्रेम प चला जाता जब p1 100 फ्रेम प जाके देखता तो ये देखता है ये तो p0 की एंट्री है ये तो p0 की एंट्री है तो इस तरीके से वो एड्रेस स्पेस प्रोटेक्शन हम प्रोवाइड कर रहे हैं कैसे प्रोवाइड कर रहे हैं हम मल्टीपल एंट्री अ बेसिकली स्टोर कर रहे हैं टीएलबी के अंदर ये मल्टीपल एंट्री स्टोर कर रहे हैं ठीक है व्हेन टीएलबी अटेम्प्ट्स टू रिजॉल्व वर्चुअल पेज नंबर इट एश्योर्स दैट एएस आईडी ऑफ करंट प्रोसेस मैचेस द एएस आईडी ऑफ द वर्चुअल पेज ठीक है यानी कि ये इसी प्रोसेस के कॉरस्पॉडिंग होना चाहिए ठीक है तो इस तरीके से मैं टीएलबी के अंदर अ बेसिकली एक से ज्यादा प्रोसेसेस की इंफॉर्मेशन स्टोर करता हूं तो अगर आपसे कोई क्वेश्चन पूछे जो आपका पेज टेबल होता है वो क्या हर प्रोसेस का अलग-अलग होता है तो इसका आंसर क्या होगा यस पेज टेबल हर प्रोसेस का अलग-अलग होता है क्यों अलग होता है क्योंकि लॉजिकल एडर स्पेस जो फिजिकल एडर स्पेस में मैप्ड है वो अलग-अलग है ठीक है p1 कहीं और मैप्ड होगी रम के अंदर p2 कहीं और मैप्ड होगी किन्हीं और फ्रेम्स के अंदर मैप होगी तो इसलिए पेज टेबल डिफरेंट होता है पेज टेबल स्टोर कहां पे होता है मेमोरी के अंदर पेजिंग को फास्ट करने के लिए हम क्या यूज़ करते हैं हम टीएलबी हार्डवेयर सपोर्ट का यूज़ करते हैं जो कि मेमोरी से फास्ट होता है टीएलबी के अंदर क्या मल्टीपल एंट्रीज हो सकते हैं यस टीएलबी के अंदर मल्टीपल एंट्रीज हो सकती हैं डिफरेंट प्रोसेसेस की एंट्रीज भी हो सकती हैं इस चीज को संभालने के लिए एक और आइडेंटिफिकेशन के बारे में हमने बहुत सार डि चीजें डिस्कस कर रही है पेजिंग को फास्ट कैसे करते हैं हम टीएलबी के द्वारा फास्ट करते हैं पेजिंग जो है इंटरव्यू पर्सपेक्टिव से बहुत ही इंपॉर्टेंट टॉपिक है इसको जरूर बढ़िया से पढ़ के जाना ठीक है जो आपकी ये वाली एक्सप्लेनेशन थी ना जो ये बिट्स वाली एक्सप्लेनेशन थी यह जो बिट्स वाली एक्सप्लेनेशन थी इसको भी पूछ सकते हैं डायरेक्टली कि कैसा पेज टेबल दिखता है कैसे पेज टेबल टू बेसिकली कैसे पेज टेबल का यूज करके मैं लॉजिकल एडस स्पेस से फिजिकल एड्रेस स्पेस में जाता हूं ठीक है इस डायग्राम को आप याद रख सकते हैं ठीक है तो ठीक है इस वीडियो के लिए इतना ही पेजिंग इज वेरी इंपोर्टेंट इंटरव्यू पर्सपेक्टिव से अब नेक्स्ट वीडियो में हम डिस्कस करेंगे इसी में ही थोड़ा सा आगे वर्चुअल मेमोरी के बारे में डिस्कस करेंगे तो मिलते हैं नेक्स्ट लेक्चर में तब तक के लिए गुड बाय हेलो जी कैसे हैं सारे दिस लक्ष तो हम आ चुके हैं हमारे के लेक्चर नंबर 27 पर और आज हम डिस्कस करने वाले हैं नॉन कंटीन्यूअस मेमोरी एलोकेशन में ही एक और बढ़िया सा टॉपिक तो यार पिछले लेक्चर में हमने पढ़ा पेजिंग के बारे में राइट पेजिंग बहुत ही इंपॉर्टेंट टेक्नीक है ठीक है कैसे हमने देखा पेजिंग ने एक्सटर्नल फ्रेगमेंटेशन को बिल्कुल ही रिमूव कर दिया था राइट बट पेजिंग में ना एक प्रॉब्लम है पेजिंग में एक प्रॉब्लम है वो प्रॉब्लम क्या है वो डिस्कस करते हैं पेजिंग में हम क्या कर रहे थे हमारा यह यूजर प्रोग्राम था ठीक है यूजर प्रोग्राम जिसको मैं लॉजिकल एड्रेस स्पेस भी बोल रहा था एड्रेस स्पेस भी बोल रहा था राइट इसको हमने फिक्स्ड पेजेस में डिवाइड कर दिया था यह फिक्स्ड लेंथ थी इनके राइट फिक्स्ड जैसे यह 2 केबी का है तो यह भी 2 केबी का होगा यह भी 2 केबी का होगा तो सब सब बेसिकली 2 केबी के होंगे इसी के कॉरस्पॉडिंग फम में फ्रेम एलोकेट कर रहे थे यानी कि रम को भी 2 केब 2 केबी के चंक्स में डिवाइड कर रहा था उनको हम फ्रेम कह रहे थे ठीक है अब इसमें छोटी सी दिक्कत ये हो सकती है अब ध्यान से सोचो मान लो आपने मान लो आपने कोई कोड लिखा है ठीक है आपका कोड है उसके अंदर कोई फंक्शन है फन ठीक है फंक्शन है फन अब वो बेसिकली किसी पार्ट ऑफ आपके लॉजिकल एड्रेस में ही होगा किसी पार्ट ऑफ लॉजिकल एड्रेस में होगा यहां से शुरू यहां पर खत्म ठीक है अब जो आप पेजिंग कर रहे हो आपने बोल दिया कि 2 केबी के पेजेस होंगे यानी कि 2kb मेरा पेज साइज हो होगा राइट अब जस्ट इमेजिन यह जो आपका कोड है ये जो आपने फन फंक्शन लिखा है यह आपका 4 केब पे आ रहा है यानी आपके लॉजिकल एड्रेस में यह जो आपका लॉजिकल एड्रेस है इसमें 4kb में आ रहा है ये ठीक है बट तब भी आपका ओ क्या करेगा इसको दो दो केब के चंक्स में डिवाइड कर देगा ये 2kb ये 2kb यानी तब भी आपका ओएस दो पेजेस बना देगा यह पेज जीरो यह पेज वन राइट बल्कि आपको पता था कि आपका यह फंक्शन एक ही फंक्शन है यह टोटल ठीक है इसके फंक्शन के अंदर जो इंस्ट्रक्शंस लिखी होंगी वो एक ही फंक्शन की इंस्ट्रक्शंस है राइट बट तब भी आपके ओस ने क्या किया इसको दो पेजेस में डिवाइड कर दिया अब ऐसा हो सकता है कि आपकी मान लो यह रम है ठीक है रम के अंदर बहुत सारे फ्रेम है दो केब के ठीक है कुछ फील्ड है कुछ फील्ड नहीं है राइट इस तरीके से तो आपका यह वाला पर्टिकुलर पेज तो यहां पर लोकेट हो जाए और यह वाला पर्टिकुलर पेज आपका य इस फ्रेम में लोकेट हो जाए समझ रहे हो आप इसका मतलब मैं बोलता हूं कि यह वाला पर्टिकुलर पेज फ्रेम फाइव पे एलोकेट हो जाए यह वाला पर्टिकुलर पेज फ्रेम अ टू पे एलोकेट हो जाए ठीक है इट इज पॉसिबल वहां तो नॉन कंटीन्यूअस एलोकेशन चल रही है ठीक है अब इसमें एक प्रॉब्लम है वो प्रॉब्लम क्या है अब ये देखते हैं जैसा कि मैंने कहा था पेज जीरो फ्रेम फाइव में है पेज वन फ्रेम टू में है और ये एक ही फंक्शन है ये टोटल पूरा एक ही फंक्शन है 4 केबी का तो तो ये किस तरीके से रम प एलोकेट हो गया होगा ठीक है फ पेज जीरो फ्रेम फाइव पे है तो यहां पे फन का जो इनिशियल पार्ट होगा बोल देता हूं उसको इनिशियल पार्ट इनिशियल हाफ जो होगा वो फ्रेम फाइव प होगा और फन का सेकंड हाफ सेकंड हाफ फ्रेम टू पर होगा ठीक है अब इससे प्रॉब्लम क्या आएगी प्रॉब्लम ये आएगी जो आपका ये सीपीयू यहां पर बैठा है सीपीय बेसिकली लॉजिकल एड्रेस जनरेट कर रहा है ठीक है लॉजिकल एड्रेस जनरेट कर रहा है ड्यू टू ड्यू टू आपका लॉजिकल एड्रेस पे सीपीय को क्या लग रहा होगा सीपीयू को लग रहा होगा वो कैसे एड्रेस जनरेट करेगा वैसे एस्ट जनरे करता चला जाएगा करता चला जाएगा करता चला जाएगा करता चला जाएगा फिर एक पॉइंट के बाद जाके वोह इसके सेकंड हाफ में चला जाएगा यानी दूसरे पेज प चला जाएगा सीपीयू को लग रहा है कि मैं अभी उसी फंक्शन पर हूं सीपीयू को ऐसा लग रहा होगा कि मैं फन फंक्शन के ही इंस्ट्रक्शन एग्जीक्यूट कर रहा हूं बट एक्चुअली इसके इंस्ट्रक्शन जो स्टोर्ड है एक्चुअल रम में वो दो जगह पर स्ट्रंग है स्टोर्ड है पहली जगह आपकी f5 दूसरी है f2 तो एक्चुअली क्या हो रहा होगा एक्चुअली जैसे ही फर्स्ट हाफ ऑफ फन ओवर होगा जैसे ही फर्स्ट हाफ ऑफ फन ओवर होगा ठीक है जैसे ही ओवर होगा मेरा एमएमयू क्या करेगा एमएमयू अब जो एमएमयू ट्रांसलेशन करेगा एड्रेस ट्रांसलेशन वह दूसरे फ्रेम पे शिफ्ट हो जाएगा और इसके लिए दूसरा फ्रेम कौन सा था सॉरी यहां पर f2 यानी कि वह f5 से f2 पे शिफ्ट हो गया लद फंक्शन मेरा एक ही है पूरा 4kb के अंदर लिखा हुआ बट फंक्शन डिवाइड हो गया दो पेजेस में और इस पेजेस में डिवाइड होने की वजह से फ्रेम में भी दूर-दूर एलोकेट हो गया नॉन कंटीन्यूअसली दूर-दूर एलोकेट हो गया अब इस चक्कर में क्या हुआ स्टार्टिंग में तो आपका इधर इसी इसी फ्रेम पे चल रहा होगा तो जब सेम फ्रेम पे आप चल रहे होते हैं ना तो आपका फास्ट मेमोरी एक्सेस होता है यानी कि एफिशिएंटली काम कर रहे हो आप वहीं पे तो एक ही फ्रेम में तो अब जैसे ही आप दूसरे फ्रेम में जंप हुए तो बेसिकली हुआ क्या होगा जब भी आप बेसिकली मेमोरी में जंप करते हो किसी और स्टेटमेंट में तो क्या हुआ होगा आपका जो रम मान लो जीरो यहां से शुरू हो रही है तो वो यहां पर जंप होएगी नए ऑफसेट प जाएगी पहले दूसरे ऑफसेट प जा रही थी यहां से यहां से एक्सेस चल रहा था अब ये इधर एक्सेस चल रहा है तो इस वजह से आपका जो एक्सेस है वो थोड़ा सा इनएफिशिएंट हो जाता है समझ गए हो एक ओवरहेड आ गया बे फालतू में ये सारा जो फंक्शन है इधर ही एग्जीक्यूट हो सकता था बट हमने नहीं किया हमने दो फ्रेम्स में डिवाइड कर दिया इसकी वजह से यह एक प्रॉब्लम आ जाती है एक छोटा सा इशू है ज्यादा बड़ा भी इशू नहीं है ठीक है ज्यादा बड़ा एज इन क्योंकि पेज पेजिंग जो है इससे बड़ा इशू सॉल्व करती है और वो सबसे बड़ा इशू क्या है आपका एक्सटर्नल फ्रेगमेंटेशन एक्सटर्नल फ्रेगमेंटेशन सबसे बड़ा इसलिए है क्योंकि उसके अंदर आपकी यूटिलाइजेशन स्पेस की अच्छी तरीके कर पाते हो राइट तो यह एक छोटा सा इशू है जो कि पेजिंग में है ठीक है इस पेजिंग के इशू को कैसे सॉल्व करते हैं किस टेक्निक से सॉल्व करते हैं वो देख चलिए तो जो टेक्निक ये प्रॉब्लम सॉल्व करती है उसको मैं मिलता हूं सेगमेंटेशन अब मैं क्या करूंगा अब मैं क्या करूंगा जो मेरा यह फंक्शन था 4kb का फन अब इसको मैं क्या करूंगा इसको मैं दो पेजेस में ना डिवाइड करके ठीक है अब मैं बोलता हूं कि मेरे पास ना डिफरेंट सेगमेंट्स होते हैं डिफरेंट सेगमेंट्स होते हैं और यह वरिंग साइज के होते हैं समझ रहे हो मतलब डिफरेंट डिफ साइज के होते हैं यानी कि यूजर व्यू के हिसाब से यूजर यूजर यहां पर कौन है यूजर आपका प्रोग्रामर यूजर प्रोग्रामर है तो वो हर फंक्शंस को एक सेगमेंट्स में डिवाइड करेगा अगर उसको लगेगा ना कि ये कंटस ये तो कंटस फंक्शन है यार ये तो कंटस है तो एक ही बेसिकली पार्ट ऑफ मेमोरी में होना चाहिए तो क्या करेगा उसको उठा के एक सेगमेंट बना देगा सिमिलरली उसको लगेगा कि नहीं यार ये वाला पर्टिकुलर फंक्शन तो इस पार्ट में होना चाहिए कोई ऐसा फंक्शन मिलेगा जो कि फन से अलग होगा मान लो एक फन फंक्शन था एक मान लो फन टू था ठीक है अभी फन और फनटू दोनों अलग है तो इसको अलग सेगमेंट में डाल दिया हमने ठीक है तो इस तरीके से हम सेगमेंट्स में डिवाइड कर देते हैं तो मैं बोल सकता हूं यहां पर वेरिएबल पार्टीशनिंग कर दी मैंने एडस स्पेस की वेरिएबल पार्टीशनिंग ऑफ लॉजिकल एटर स्पेस ठीक है यहां पर वेरिएबल पार्टीशनिंग कर द अब वो पार्टीशन दिखेगी कैसे एक बार वो देखते हैं सपोज ये आपका प्रोग्राम था ठीक है अब इस प्रोग्राम के आपने आपका एक सेगमेंट आपने बना दिया मेन फंक्शन का इसको अपने बोल दिया जी एक सेगमेंट आपने बना दिया ऐड फंक्शन का इसको हमने s1 बोल दिया एक सेगमेंट आपने बना दिया मान लो डिवाइड फंक्शन का इसको आपने s2 बोल दिया एक आपने स्टैक बना दी आपके की जो प्रोसेस होती है उसके अंदर स्टैक का जो एरिया होता है उसको आपने थर्ड सेगमेंट बोल दिया ठीक है एक फंक्शन आपने मान लो कोई प्रिंट का फंक्शन बना दिया उसको आपने ए4 सेगमेंट दे दिया ठीक है अब यहां पर जो सेगमेंट्स का साइज है सेगमेंट्स का जो साइज है वो डिफरेंट है हर सेगमेंट के लिए ठीक है इसका एक एग्जांपल भी देखेंगे तो बहुत ही बढ़िया तो यहां पर हमने डिफरेंट सेगमेंट्स में इसको डिवाइड कर दिया और पेजिंग में हम क्या कर रहे थे पेजिंग में हम फिक्स्ड फिक्स्ड बेसिकली पार्टीशन में डिवाइड कर रहे थे यहां पे वेरिएबल पार्टीशनिंग होंगी डिपेंडिंग अपन सेगमेंट मेरा कैसा दिख रहा है और सेगमेंट कौन डिसाइड करेगा सेगमेंट यहां पे कंपाइलर डिसाइड करता है वो देखता है कि यूजर व्यू के हिसाब से कौन सा फंक्शन आपका इसी एक ही सेगमेंट में आना चाहिए कौन सा फंक्शन मैं बेसिकली सेगमेंट में डिवाइड कर सकता हूं कौन से बेसिकली अलग-अलग फंक्शन होंगे इस टाइप से मैं कर सकता हूं ठीक है चलो अब इसमें देखते हैं कि इसके अंदर एमएमयू जो है मेरा एमएमयू एमएमयू याद करो क्या काम करता था एमएमयू एड्रेस ट्रांसलेशन का लॉजिकल एटर स्पेस से फिजिकल एलेटर स्पेस में क्योंकि अल्टीमेटली सारा कोड तो मेरा फिजिकल एटर स्पेस में पड़ा होता है तो एमएमयू मेरा यहां पे ट्रांसलेशन कैसे करेगा ट्रांसलेशन कैसे करेगा ट्रांसलेशन कैसे करेगा लॉजिकल एड्रेस स्पेस से फिजिकल एड्रेस स्पेस में फिजिकल एड्रेसस कैसे होगी ट्रांसलेशन तो ट्रांसलेशन देखने के लिए हम सीधा नोट्स पर चलते हैं नोट्स पर देखते हैं पेजिंग जैसा ही कुछ मेथड है ठीक है पेजिंग जैसा ही कुछ मेथड है और वह कैसे काम करेगा यह देखते हैं सबसे पहले यह देखो जैसे पेजिंग में आपका पेज टेबल यूज होता यहां पर सेगमेंट टेबल यूज होगा ठीक है यानी कि अब क्या होगा मान लो सिंपली मेरे पास जो लॉजिकल एड्रेस स्पेस है ना लॉजिकल एडस स्पेस उसको मैं क्या करूंगा दो पार्ट्स में डिवाइड करूंगा दो पार्ट्स में डिवाइड करूंगा पहला मेरा होगा सेगमेंट सेगमेंट नंबर जिसको मैं एस भी बोल दूंगा दूसरा मेरा होगा ऑफसेट ठीक है दूसरा मेरा होगा ऑफसेट जिसको मैं डी बोल दूंगा यानी कि जो भी लॉजिकल एड्रेस आपका सीपीयू सीपीयू जनरेट करेगा वो लॉजिकल एड्रेस की स्टार्टिंग की कुछ बिट्स मेरी जो है वो सेगमेंट नंबर को बताएंगे सेगमेंट नंबर को बताएगी बाद के कुछ बट मुझे ऑफ मुझे ऑफसेट बताएंगे कि बेसिकली कहां जाना है किस बेस से कहां तक जाना है ठीक है पेजिंग जैसा ही कुछ कुछ है पेजिंग और साथ में जो क्वांटिक लोकेशन कर करते थे ना जिसके अंदर आपका रीलोकेशन रजिस्टर और लिमिट रजिस्टर होता था इसी को मेलजोल करके हमने बनाया हुआ है ये तो देखो कैसे वर्क करेगा आपने सीपीयू लिया सीपीयू लॉजिकल एड्रेस जनरेट करता है लॉजिकल एड्रेस में s और डी दो दो वैल्यूज होंगी ठीक है अभी सोचते सपोज जो लॉजिकल एड्रेस जनरेट हुआ वो आपका हुआ 01 ठीक है 1 1 1 ठीक है लेट्स सपोज ये हमने बेसिकली जनरेट कर दिया तो इसके अंदर जब मैं इसके एओडी पार्ट को निकालू एओडी पार्ट को निकालू तो s मैं बोल देता हूं वन और डी मैं बोल देता हूं मेरा सेन राइट ठीक है तो अभी इसके कॉरस्पॉडिंग सेगमेंट टेबल क्या होगा जैसे वहां पर आपका कंटस मेंब्रेन लोकेशन के अंदर हमारे पास रीलोकेशन रजिस्टर लिमिट रजिस्टर होता था ऐसे हर सेगमेंट के कॉरस्पॉडिंग मेरा लिमिट होगा और बेस होगा ठीक है क्योंकि यहां पर सेगमेंट जो है यहां पर जो सेगमेंट्स है वो वेरिएबल साइज के हैं तो वेरिएबल साइज के हैं तो हर सेगमेंट की इंफॉर्मेशन अलग-अलग होगी हर सेगमेंट का बेस अलग होगा बेस अलग होगा तो उसका लिमिट भी अलग होगी क्योंकि हो सकता है कि कोई एक सेगमेंट की लिमिट ज्यादा हो किसी सेगमेंट की लिमिट कम हो तो इसी चक्कर में आपका यह यहां पर कॉरेस्पोंडेंस इमेजिन लिमिट लिखी है मेरी अ 15 और मेरा बेस इसका शुरू होता है 20 से ठीक है लेट्स सपोज हमने ऐसी वैल्यू ले ली अब आप इधर देखो यह कैसे वर्क करेगा वह जाएगा वन व देखेगा वन s s निकालेगा वन वन जाएगा तो सेगमेंट टेबल के अंदर 0 1 इस पोजीशन पे चला जाएगा इस पोजीशन में जाके देखिएगा कि लिमिट कितनी है लिमिट कितनी है लिमिट निकालेगा इस कंडीशन पे पहुंचेगा अब यहां पर क्या होगा यह जो डी वैल्यू आपने दी है t7 ये जो सेवन वैल्यू आई है ये इधर जाएगी और इस बेसिकली चेक पे हम ये चेक करेंगे क्या 7 15 से कम है यानी कि जो सीपीयू ने एड्रेस जनरेट किया है किसी पर्टिकुलर सेगमेंट के अकॉर्डिंग उस जो एड्रेस जो ऑफसेट उसने जनरेट किया है वो ऑफसेट क्या लिमिट से बाहर तो नहीं जा रहा अगर वह लिमिट से कम है अगर वो लिमिट से कम है तो हम आगे निकल जाएंगे यस इसमें लिमिट से कम है क्योंकि यहां पर से था ठीक है अब आप क्या क्या करोगे जैसे याद करो फिर से लोकेशन और लिमिट वाली चीज कंटस लोकेशन में क्योंकि इसमें एक सेगमेंट तो कंटस है ना तो मैं क्या करूंगा अब यहां पर मेरे पास बेस निकल गया बेस है इसका 20 प् 7 यानी कि 27 लोकेशन पर जाना है मुझे तो इसका मतलब मान लो यहां से बेसिकली मेरा सेगमेंट वन एव शुरू हो रहा है ठीक है और लिमिट क्या होगी 20 से शुरू हो रहा है लिमिट होगी इसकी + 15 20 + 15 आपका कितना होगा 35 ठीक है तो यहां से 35 तक आपका यह s1 सेगमेंट होगा इसके अंदर आपने 27th लोकेशन डिनोट करी है इस वैल्यू से अब इससे आप 27th लोकेशन पे पहुंच जाओगे 27th लोकेशन आपकी इधर कहीं होगी जहां पे भी 27 लोकेशन होगी आप इस तरीके से पहुंच जाओगे तो इस तरीके से आपका सेगमेंटेशन का पूरा हार्डवेयर वर्क करता है ऐसे एड्रेस ट्रांसलेशन यहां पे होती है ठीक है बहुत ही सिंपल है ठीक है पेजिंग जैसा सा ही कुछ है यहां पे यह वाला पोर्शन आपको पेजिंग जैसा लग रहा होगा बट जो ये लिमिट और बेस वाली चीज है ये यहां पर आपका क्वांटस मेमोरी एलोकेशन जैसा लग रहा होगा आपको ठीक है जैसे कंटस मेमोरी एलोकेशन में एक बेस होता था एक लिमिट तक होता था ऐसे ही यहां पे हर सेगमेंट के लिए एक बेस है हर सेगमेंट के लिए एक लिमिट है क्योंकि हर सेगमेंट वेरिएबल साइज का है समझ गए इसका एक बार और बढ़िया सा एग्जांपल देते हैं ठीक है और बढ़िया सा एग्जांपल देखते हैं एक बार ठी ये एग्जांपल देखो इसका इस एग्जांपल में क्या है ये आपका लॉजिकल एडस स्पेस है ठीक है लॉजिकल एटर स्पेस में क्या है एक सब रूटीन है ठीक है एक आपका स्टैक अलग से सेगमेंट है सिंबल टेबल है आपका मेन प्रोग्राम है एक एक एक्स आपका स्क्वायर रूट का फंक्शन है ठीक है आपका सेगमेंट टेबल कुछ इस तरीके से दिख रहा है यहां पर ठीक है सेगमेंटेशन सिंपल देखेंगे सेगमेंट टेबल यहां पे इस तरीके से दिख रहा है आपका लिमिट है बेस है ठीक है सेम चीज सेम चीज जो यहां पे यहां थोड़ा हम बेसिकली बिट्स में खेल रहे थे यहां पे एक बार थोड़ा डेसीमल में खेल के देख लेते हैं तो अब इसमें क्या एग्जांपल लिया गया है कि यह आपकी फिजिकल मेमरी है राइट ये आपकी फिजिकल मेमरी है ठीक है अब इस फिजिकल मेमरी के अंदर यह वाला चंक यह वाला चंक यह वाला चंक जस्ट इमेजिन कहीं पे एलोकेटेड है ठीक है और ये सेगमेंट्स आपके आपके इस पर्टिकुलर प्रोग्राम से रिलेटेड है ठीक है सेगमेंट जीरो आपका कहां पर है सेगमेंट रो आपका इधर स्टोर्ड है ठीक है अब ध्यान से देखो सेगमेंट रो जो है वो कितने एरिया में स्टोर्ड है ठीक है 1000 इसकी लिमिट बेसिकली 1000 है सेगमेंट रो की सेगमेंट वन की लिमिट कितनी है सेगमेंट वन की लिमिट 400 है सेगमेंट टू की लिमिट कितनी है इसकी भी 400 है सेगमेंट थ्री की लिमिट कितनी है इसकी 1100 है इसकी 1000 है तो बेसिकली आप देख रहे हो वेरिएबल साइज के हैं इसलिए हमें हर सेगमेंट के लिए डिफरेंट बेस डिफरेंट रजिस्टर की जरूरत पड़ रही है यहां पर ठीक है बहुत ही बढ़िया एक एग्जांपल जो इन्होंने लेही रखा वो देख लेते हैं हम अब मान लो लॉजिकल एट्रेस जनरेट हुआ लॉजिकल एंडस जनरेट हुआ कुछ 53 ठीक है 53 तो 53 पोजीशन प जाने के लिए मुझे क्या करना पड़ेगा मुझे सबसे पहले 53 सेगमेंट टू के करेस्पॉन्डिंग्ली प्लस मैंने 53 ऐड कर दिया 4359 आ गया तो मैं सेगमेंट टू के अंदर कहीं पे 4359 पे आ चुका हूंगा यहां से ठीक है यहां पे ऐसे शुरू हो रही हैकी एड्रेस ंग तो ये सेम केस है सेम केस हमने यहां पे समझा था इस वाले एग्जांपल से सेम चीज यहां पे हो रही है य हमने डेसीमल से समझा यहां पे हमने अब बेसिकली बिट्स से समझ लिया था इंटरनली ऐसा ही कुछ हो रहा होगा आपका ये पहले चेक करता होगा लिमिट के अंदर है कि नहीं क्या यहां पे लिमिट के अंदर थे हम 53 यस 53 लिमिट के अंदर था लिमिट तो यहां पे 400 है ठीक है तो ये लिमिट के अंदर था तो हम यहां पे आगे बढ़ पा रहे हैं कोई दिक्कत नहीं आ रही है अब इसमें ध्यान से सोचो क्या इसके अंदर क्या इसके अंदर एक्सटर्नल फ्रेगमेंटेशन है ध्यान से सोचो इसके अंदर एक्सटर्नल फ्रेगमेंटेशन है ठीक है इट हैज एक्सटर्नल फ्रेगमेंटेशन वो कैसे एग्जांपल देखते हैं ठीक है चलो एक नया एग्जांपल बनाते हैं वहां पर देखते हैं ठीक है अब मान लो कुछ ऐसी सिचुएशन है ठीक है य हम क्या देख रहे हैं ये हम देख रहे हैं कि एक्सटर्नल फ्रेगमेंटेशन फ्रेगमेंटेशन इन सेगमेंट टेशन तो यह देखो यह हमारे पास मान लो एक सिचुएशन है यह रम की एक सिचुएशन है अब मान लो यह किसी प्रोग्राम का p0 प्रोग्राम का सेगमेंट है p0 और यह p0 प्रोग्राम का सेगमेंट वन है तो यानी कि यह लोकेशंस तो बिजी है ठीक है अब मान लो मेरे पास कोई p1 प्रोग्राम आया ठीक है जिसके पास दो सेगमेंट है जिसका सेगमेंट रो आपका है जस्ट इमेजिन 2kb का और सेगमेंट वन आपका है 3kb का ठीक है सेगमेंटेशन के अंदर पूरा पूरा सेगमेंट एलोकेट होगा रम के अंदर पूरा पूरा सेगमेंट एलोकेट होगा अब आप यह देखो क्या s0 सेगमेंट में एलोकेट कर पाता हूं s0 तो मैं कर पाऊंगा एलोकेट ठीक है य यहां कर दूंगा या फ यहां कर दूंगा बट s1 को मैं एलोकेट नहीं कर पाऊंगा s1 को एलोकेट नहीं कर पाऊंगा यहां पर यह एलोकेशन नहीं हो पाएगी क्योंकि मेरे पास यहां 2 के भी है यहां 2 के भी यहां व ही के भी बचा हुआ है 3 कंटस 3 के भी मुझे कंटस चाहिए 3 के भी मुझे कंटस चाहिए तो इस केस में यहां पर एक्सटर्नल फ्रेगमेंटेशन आ गई लद मेरे पास 2 प् 2 प् 1 दैट इज 5kb अवेलेबल था 5 5kb अवेलेबल था नॉन कंटस अवेलेबल था बट स्टिल मैं एक 5kb की p1 प्रोसेस को एलोकेट नहीं कर पा रहा हूं इसका मतलब सेगमेंटेशन के अंदर भी फ्रेगमेंटेशन है एक्सटर्नल ठीक है बट यहां पर इंटरनल फ्रेगमेंटेशन नहीं है इंटरनल फ्रेगमेंटेशन क्यों नहीं है क्योंकि आपका जितना सेगमेंट होगा ठीक है जितना सेगमेंट होगा आपने वो सेगमेंट सेगमेंट को निकाला उस सेगमेंट को निकाल के आपने उतना ही सेगमेंट उठा के एलोकेट कर दिया कर सकते हो आप तो इसके अंदर इंटरनल फ्रेगमेंटेशन इंटरनल फ्रेगमेंटेशन नहीं होती ठीक है चलो आगे बढ़ते हैं अब एक बार ये देखते हैं यार इसकी एडवांटेज डिसएडवांटेज क्या है सबसे पहले तो हमने देखा एडवांटेज ही सबसे बड़ी यह है कि इसमें इंटरनल फ्रेगमेंटेशन नहीं है ठीक है दूसरा एडवांटेज यह है कि इसके अंदर हम कांटीगुअस एलोकेशन करते हैं एक सेगमेंट को एक सेगमेंट की कंटस लोकेशन होती है जैसे हमने देखा पूरा फन फंक्शन जो है ये वाला एग्जांपल देखते हैं इसके अंदर जो आपका मान लो पूरा एसक्यूआरटी फंक्शन जो है आपने पूरा एसक्यूआरटी फंक्शन आपने यहां पर एलोकेट किया है यानी कि जब इसके अंदर मैं काम कर रहा होगा तो ये एफिशिएंट काम वर्क हो रहा होगा मेरा ठीक है तो इसका मतलब विद इन सेगमेंट आपका एफिशिएंट काम हो रहा होता है द साइज ऑफ़ सेगमेंट टेबल इज जनरली लेस दन द साइज ऑफ़ पेज टेबल इसमें क्या होता है जो सेगमेंट टेबल होता है ना आपका ठीक है एक प्रोग्राम है मान लो एक प्रोग्राम है मान लो वो 100kb का प्रोग्राम है तो 100kb का प्रोग्राम मान लो 2 2kb के अ बेसिकली पेजेस में डिवाइड हुआ तो उसमें 50 पेजेस आ जाएंगे राइट तो इसमें जो इसका पर्टिकुलर पेज टेबल होगा वो 50 लेंथ का हो जाएगा इतना बड़ा पेज टेबल होगा बट ऐसा हो सकता है उसी 100kb के प्रोग्राम के अंदर दो ही सेगमेंट हो दो 50 50 केब के सेगमेंट हो तो उसके अंदर पेज आपका सेगमेंट टेबल कितने बड़ा बनेगा उसका अंदर आपका सेगमेंट टेबल सिर्फ दो ही एंट्रीज होंगी उसके अंदर तो इसका मतलब जनरली क्या होता है ना क्योंकि पेज टेबल के अंदर आपने क्या करा है क्योंकि वो पेज साइज के हिसाब से डिवाइडेड है तो उसमें ज्यादा नंबर ऑफ पेजेस होते हैं तो ज्यादा नंबर ऑफ़ एंट्रीज होती है तो पेज टेबल बड़ा होता है जनरली सेगमेंट टेबल से ठीक है सेगमेंट टेबल छोटा होता है तो ये भी एक एग्जांपल है क्योंकि सेगमेंट टेबल छोटा है तो मुझे कम मेमोरी लगेगी इसको स्टोर करने के लिए ठीक है द रिजल्ट इज मोर एफिशिएंट सिस्टम बिकॉज कंपाइलर कीप्स द सेम टाइप ऑफ फंक्शन इन द सेम सेगमेंट इसमें भी बड़ा डिपेंड करता है यार कि आपने सेम नेचर के फंक्शन सेम एरिया को एक्सेस करने वाले सेम काम करने वाले फंक्शन आपने एक जग एक सेगमेंट में डाल रखे हैं दूसरे आपका जो दूसरे नेचर के फंक्शन आपने दूसरे सेगमेंट में डाल रखे हैं तो इससे क्या होता है एक मोर एफिशिएंट सिस्टम बनता है यूजर पर्सपेक्टिव से ठीक है इसकी डिसएडवांटेज क्या है एक्सटर्नल फ्रेगमेंटेशन अभी हमने जस्ट डिस्कस किया एक्सटर्नल फ्रेगमेंटेशन इसके अंदर है द डिफरेंस डिफरेंट साइज ऑफ सेगमेंट इज नॉट गुड फॉर टाइम ऑफ स्वैपिंग अब यह वाला जो पार्ट है ना स्वैपिंग यह याद करो हमने किसी लेक्चर में पढ़ा था जहां हमने मीडियम टर्म शेड्यूलर पढ़ा था एमटीएस याद करो और मुझे कमेंट सेक्शन में लिख के बताना कौन से लेक्चर के अंदर हमने मीडियम टर्म शेड्यूलर पढ़ा था उसके अंदर हमने स्वैपिंग के बारे में पढ़ा था तो जनरली क्या होता है ना अभी हम आगे भी पढ़ेंगे ठीक है इसमें यह पॉइंट आपको थोड़ा कम भी समझ आए तो थोड़ा स्किप करना इस वीडियो के लिए नेक्स्ट वीडियो में समझेंगे स्वाइपिंग के बारे में कि डिफरेंट साइज ऑफ सेगमेंट्स है ये गुड नहीं होते एट द टाइम ऑफ स्वाइपिंग इसका मतलब क्या है थोड़ा समझाने की कोशिश करता हूं आपके बहुत सारे सेगमेंट्स हैं ठीक है एक चीज होती है कि हमने स्वैपिंग में पढ़ा था याद करो और मुझे ना कमेंट में लिख के बताना कि कौन से पर्टिकुलर लेक्चर में हमने स्वैपिंग के बारे में पढ़ा था जहां पे हमने मीडियम टर्म शेड्यूलर पढ़ा था ठीक है उसमें हम क्या करते हैं जब भी डिग्री ऑफ मल्टी प्रोग्रामिंग बढ़ती चली जाती है ना बढ़ती चली जाती है और प्रोसेसेस को अकोमोडेटिव प्रोसेस को अमेट करने के लिए मैं क्या करता हूं कि किसी एक पर्टिकुलर प्रोसेस को प्रीमप्टिव करने का मतलब उसके कुछ सेगमेंट्स उठा के कुछ सेगमेंट उठा के और ये प्रीमन भी मतलब ऐसे ही पूरी पूरी प्रीमन नहीं होती यानी पूरी पूरी प्रोसेस नहीं उठा के बेसिकली मैं वापस ले गया मैं क्या करता हूं कुछ पर्टिकुलर मान लो अभी जो प्रोसेस चल रही है यह प0 प्रोसेस है मान लो इस प्रोसेस का नाम है p1 जस्ट इमेजिन इस प्रोसेस का नाम है p1 व और अभी ये प्रोसेस चल रही है इसके अंदर सिर्फ यह वाला सेगमेंट काम का है यह वाला सेगमेंट काम का है और यह वाला सेगमेंट काम का है इसका मतलब अभी जो आपका पर्टिकुलर प्रोसेस p1 है ये इन्हीं सेगमेंट्स में काम कर रहा है बहुत टाइम से इन्हीं सेगमेंट्स में काम कर रहा है तो ओ क्या करेगा रैंक करता है रैंक करते हुए देखता है कि सेगमेंट फोर सेगमेंट वन जो है ना ये वे फालतू में पड़े हैं मेन मेमरी में लद p1 को हो सकता है कभी जरूरत पड़ेगी सेगमेंट फोर और सेगमेंट फाइव की बट फॉर टाइम बंग उसको लग रहा है क्योंकि बहुत टाइम से यूज नहीं हो रहा है तो मैं क्या करता हूं इसको उठा है ना इसको उठा के किसी स्वप एरिया में डाल देता हूं स्वैप एरिया स्वप एरिया जनरली आपका हार्ड डिस्क के अंदर होता है हार्ड डिस्क के अंदर ऐसा एरिया जो कि बेसिकली कुछ सेगमेंट स्टोर कर रहा है आपके मेन मेमोरी के ठीक है मेन मेमोरी के कुछ सेगमेंट स्टोर कर रहा है और वो सेगमेंट इस तरीके स्टोर कर रहा है कि जब भी मेन मेमोरी को इन सेगमेंट्स की वापस जरूरत पड़ेगी ना ऐसा हो सकता है कि एकदम से जैसे आपने इनको आपको ले गए आप हार्ड डिस्क के अंदर बैकिंग स्टोरेज भी बोलते हैं उसको बैकिंग स्टोरेज बैकिंग स्टोरेज के अंदर ले गए तभी आपका ऐसी कोई इंस्ट्रक्शन आई कि वो इंस्ट्रक्शन सेगमेंट फोर में जाना था आपकी प्रोसेस p1 को तो क्या होगा कि ओ जल्दी से फिर पेज फॉल जनरेट करके और जल्दी से बैकिंग स्टोरेज से आपका स्वैप एरिया से आपका वापस से यह वाला सेगमेंट लाके दे देगा तो यानी कि जो अब मैं जिस एरिया की बात कर रहा हूं उस एरिया में सेगमेंट फोर जो है वो इस तरीके से स्टोर होगा कि वो रेडी टू यूज़ बाय अ प्रोसेस होगा यानी कि हार्ड डिस्क में एक ऐसा एरिया जो कि रम जैसा बिहेव करता है वर्चुअल मेमोरी भी बोलता हूं मैं इसको नेक्स्ट वीडियो में डिस्कस करेंगे ठीक है बहुत ही बढ़िया कुछ-कुछ समझ आया होगा आई होप तो जब ऐसा काम हो रहा होता है ना जब स्वाइपिंग हो रही होती है अगर सेगमेंट का साइड डिफरेंट है तो हर बार डिफरेंट डिफरेंट साइज के सेगमेंट्स को मुझे बेसिकली स्वप इन स्वाइप आउट स्वप इन स्वप आउट करना पड़ेगा ठीक है यह टर्म भी हमने जिस जिस लेक्चर में एमटीएस डिस्कस किया था मीडियन नो स् उसमें यूज़ की थी स्वाइप इन स्वाइप आउट तो डिफरेंट डिफरेंट साइजेस के सेगमेंट को स्वप इन स्वप आउट करना पड़ेगा तो ऐसा होगा जो बड़े सेगमेंट्स होंगे उनको स्वप इन करने में या स्वप आउट करने में ज्यादा टाइम लगेगा जो छो छोटे होंगे उनको कम टाइम लगेगा तो इस तरीके से मतलब एक एफिशिएंट सिस्टम नहीं बनेगा हर हर सेगमेंट अलग-अलग टाइम ले रहा होगा इस तरीके से एस्टिमेशन गड़बड़ होएगी ठीक है समझ रहे हो बहुत सारी चीजें खराब हो जाएंगी तो इसी चक्कर में आपका ये सही नहीं है ये एक डिसएडवांटेज है इसके अंदर ठीक है अब आप एक क्वेश्चन है ये क्वेश्चन आ सकता है कि आप सेगमेंटेशन यूज करें या पेजिंग यूज करें तो तो देखो यार जो भी हम कंसेप्ट यूज कर रहे हैं ना जो ये कांसेप्ट बेसिकली पढ़ रहे हैं ओस के अंदर वो ना बहुत एक थोरेट्स है ठीक है इंडिविजुअली ये यूज नहीं होते इंडिविजुअली कि कि आपका सिस्टम है इसके अंदर सिर्फ सेगमेंट आप जो सिस्टम यूज़ कर रहे हो जैसे मैं अभी एक मैकबुक यूज़ कर रहा हूं इसके अंदर सेगमेंटेशन वाली बेसिकली प्रोसीजर यूज है रम के अंदर लॉजिकल लेटर्स और फिजिकल एलेटर स्पेस के ट्रांसलेशन के लिए ऐसा नहीं हो सकता मॉडर्न कंप्यूटर से इतना आगे बढ़ चुके हैं उस केस में हम सेगमेंटेशन पेजिंग दोनों ही इंप्लीमेंट करते हैं दोनों इंप्लीमेंट होते हैं कि हाइब्रिड अप्रोच बेसिकली चूज की जाती है ठीक है हाइब्रिड अप्रोच जैसे कि हमने डिस्कस किया था ना पेज पेजिंग में हमने डिस्कस किया कि पेज साइज जो है वो सेम रहेगा बट आजकल पेस साइज सेम नहीं होता पेस साइज दो-तीन टाइप के पेस साइज डिफाइंड होते हैं ठीक है समझ रहे हो तो इस तरीके से चीजें वर्क करती है तो मॉडर्न आर्किटेक्चर में बोथ सेगमेंटेशन पेजिंग दोनों यूज़ होता है हमने एडवांटेज डिसएडवांटेज पढ़ ली और एक और चीज अभी मेरे दिमाग में आ रही है कि जो पेजिंग आपका होता है ना पेजिंग पेजिंग के अंदर इंटरनल फ्रेगमेंटेशन होती है यहां पर इंटरनल फ्रेगमेंटेशन नहीं होती सेगमेंटेशन के अंदर ब पेजिंग के अंदर इंटरनल फ्रेगमेंटेशन होती है वो कैसे है वो मैं बताता हूं यह देखो इंटरनल फ्रेगमेंटेशन इन पेजिंग ठीक है मान लो का कोई प्रोग्राम है ठीक है प्रोग्राम है मान लो 15kb का है और पेज साइज जो आपके आर्किटेक्चर ने डिसाइड किया हुआ है सिस्टम ने वो 2kb का डिसाइड किया हुआ है अब आप इसको कैसे डिवाइड करोगे ठीक है डिवाइड तो कर नहीं सकते अगर ये 16kb का होता 16kb का होता तो मैं डिसाइड कर सकता था बट ये 15 ही केब का है तो इसमें मुझे क्या करना पड़ेगा जो लास्ट वाला पेज होगा ना जो इसके लास्ट वाले इसको स्टोर कर रहा होगा तो लास्ट वाला पेज ना कुछ ऐसा दिखेगा लास्ट वाला पेज जो कि 2 केब का होगा टोटल वो 1 केब की ही स्टोरेज को स्टोर करेगा बाकी जो यह वाली स्टोरेज है यह एमटी पड़ी रहेगी जो लास्ट पेज होगा अब क्योंकि यह इस पेज में ही ऐसी कन्फेशन है जो इसके करेस्पॉन्डिंग्ली रैम के अंदर जो 2kb का फ्रेम होगा उसमें भी ऐसी ही एलोकेशन होगी कि इतना इतना पार्ट ही यूज्ड होगा और यह पार्ट आपका फ्री होगा तो देख रहे हो इस वजह से मेरा जो रम है मेरी जो मेरी रम है रम के अंदर एक इंटरनल फ्रेगमेंटेशन की सिचुएशन अराइज हो गई है 1 केबी की इंटरनल फ्रेगमेंटेशन है यहां पर जिसको मैं अवॉइड ही नहीं कर सकता तो यह पर्टिकुलर एक प्रॉब्लम है पेजिंग के अंदर ठीक है तो इसको हम ऐसे मान के चलते हैं कोई यह प्रॉब्लम है ही नहीं जब पेजिंग को इंप्लीमेंट कर रहा है तो यह प्रॉब्लम तो है ही यह हमें एक्सेप्ट करनी पड़ेगी यह प्रॉब्लम बट सेगमेंटेशन में नहीं है तो बेसिकली इंटरव्यू में सीधा क्वेश्चन पूछा जा सकता है आपका प्रेजिंग सम समझा दो सेगमेंटेशन समझा दो दोनों को कंपेयर कर दो ठीक है तो ये सिंपल सा क्वेश्चन बनता है इस पर डिस्कशन बन सकती है मिलते हैं नेक्स्ट लेक्चर पे नेक्स्ट लेक्चर में डिस्कस करेंगे और भी ज्यादा इंटरेस्टिंग टॉपिक माय फेवरेट टॉपिक तो मिलते हैं नेक्स्ट क्लास में गुड बाय हेलो जी कैसे सार से लक्ष्य तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 28 पर और आज हम डिस्कस करने वाले हैं एक बहुत ही इंपॉर्टेंट टॉपिक इंटरव्यू पर्सपेक्टिव से काफी इंपॉर्टेंट टॉपिक है ये और काफी कन्फ्यूजिंग भी है ठीक है मेरे को भी मेरे टाइम पे जब कॉलेज टाइम प मुझे काफी प्रॉब्लम हुई थी इसको समझ ने में काफी डिस्कशंस के बाद मुझे ये चीज समझ आई थी काफी सर्चस के बाद तो इसको डिस्कस करते हैं बहुत ही बढ़िया से कांसेप्ट का नाम है वर्चुअल मेमोरी मैनेजमेंट तो या हमने यह पढ़ा हमारे पास क्याक होता था हमारे पास एक फिजिकल मेमरी है ठीक है फिजिकल मेमोरी है इसके अंदर क्या होता है आपका फिजिकल डरर स्पेस ठीक है आपका एक लॉजिकल मेमोरी है जिसमें लॉजिकल एटर स्पेस होता है राइट हम हर प्रोसेस में एक लॉजिकल एटर स्पेस बना के रखते हैं ठीक है अब ये वर्चुअल मेमरी क्या है यह कांसेप्ट क्या है इसको एक बार बढ़िया से डिस्कस करते हैं अब एक सिनेरियो समझो कि हमारे पास यह रम है ठीक है यह एक रैम है जिसको फिजिकल ट स्पेस बोला मैंने ये 12 केब की रैम है ठीक है ऐसी कुछ दिख रही है ये इसमें कितने 12 फ्रेम्स होंगे ठीक है मैंने माना है कि यहां पे पेज साइज आपका 1kb का है ठीक है 1 केब का है तो इसके अंदर 12 फ्रेम्स है पास सिमिलरली मेरे पास एक p1 प्रोसेस है एक p2 प्रोसेस है ठीक है अब ये दो प्रोसेस ही है मान लो ये वन ये टू इसको भूल जाओ अभी के लिए अब जब ये दोनों प्रोसेस आई आपकी अभ ये दोनों प्रोसेस जैसे ही आपकी मेमोरी में आई ओएस ने जैसे ही इनको बेसिकली न्यू स्टेट प लेके आया रेडी स्टेट में जाने से पहले वो क्या होएगी इसको बेसिकली इसके हर पेज को इसके हर पेज को एक फ्रेम एलोकेट होगा एक फ्रेम एलोकेट होगा अभी इनिशियली सोचते हैं सब खाली पड़ा हुआ है तो क्या इसको को p1 को कुछ कुछ फ्रेम्स एलोकेट कर देते हैं मान लो इसको एक ये वाला फ्रेम मिल गया एक यह वाला फ्रेम मिल गया एक ये वाला फ्रेम मिल गया कैसे छ फ्रेम मिलेंगे इसको राइट इस तरीके से मान लो मैं छह फ्रेम एलोकेट कर देता हूं इसको टूथ फर 5 और एक और फ्रेम सि ठीक है तो मैंने क्या करा p1 को पव के हर पेज को एक एक फ्रेम दे दिया दोनों वव के भी है ठीक है अब प2 जब आई प2 को भी हमने दे दिया पट कितने 5 केबी का तो फ फ्रेम चाहिए होंगे इसको पट को दे देते फ्रेम एक मान लो मैंने यह दे दिया एक य दे देता हूं ू ्र फोर फ ठीक है अभी के लिए यह वाला फ्रेम मेरा खाली हो गया तो यह मेरे को फ्री स्पेस लिस्ट जो होगी मेरी उसके अंदर एक नोड मिलेगी मुझे ठीक है न केबी की बहुत ही बढ़िया यहां तक हमें सब समझ आ गया है ठीक है तो हमने क्या करा है पेज के थ्रू हमने p1 प2 दोनों प्रोसेसस को एलोकेट कर लिया अब इमेजिन करो सिस्टम में अब तीसरी प्रोसेस आती है जिसका नाम है p3 और ये 5 केबी की प्रोसेस है 5 केबी की प्रोसेस इसको एलोकेट करने के लिए मुझे फ फ्रेम्स खाली चाहिए होंगे कितने फाइव फ्रेम्स चाहिए होंगे मुझे ठीक है अब क्या मेरे पास यहां पर फाइव फ्रेम्स अवेलेबल है मान लो ओस ट्राई करता है इसको एलोकेट करने की तो यह क्या करेगा ओस एक फ्रेम तो ये दे सकता है इसी तरीके से इस फ्रेम को बट बाकी चार फ्रेम का क्या इस फ इन पेजेस का क्या बेसिकली इन पेजेस का क्या इसको कैसे एलोट करेंगे तो अभी के केस में अगर ये सिनेरियो हम समझे कि हम सारे सारे पेजेस बेसिकली लोड कर रहे हैं हर प्रोसेस के इसके भी सारे पेज लोड किए हमने हम इसके भी सारे पेजेस को लोड करना चाहते हैं ठीक है बट नहीं कर पा रहे हैं इसमें एक प्रॉब्लम है कि हम दो से ज्यादा बेसिकली प्रोसेसेस को एलोकेट नहीं कर पा रहे रम रम 12kb की है मैंने माना ठीक है 11 केब की बेसिकली मैंने ने प्रोसेसेस एलोकेट कर दी हैं ठीक है 1kb मेरा फ्रेम एक खाली पड़ा हुआ है एमटी पड़ा हुआ है ठीक है और 5kb की प्रोसेस आई है इसको मैं कैसे एलोकेट करूं राइट इसको कैसे एलोकेट करूं तो ये एक प्रॉब्लम है तो मैं बोल सकता हूं अभी के केस में 12kb की रैम में दो ही प्रोसेस एग्जीक्यूट हो सकती हैं एक p1 एग्जीक्यूट हो जाएगी p2 एग्जीक्यूट हो जाएगी p3 एग्जीक्यूट होगी ही नहीं ये बेसिकली एलोकेट ही नहीं हो पाएगी इसको मैं एग्जीक्यूट ही नहीं कर पाऊंगा बट मॉडर्न पीसी में ऐसा नहीं होता मॉडर्न पीसी में ऐसा बिल्कुल भी नहीं होता आप इमेजिन करो आपके पास एक 16gb की रैम होती है 16gb की रैम जिसके अंदर आपको ओस भी चल रहा है ठीक है बाकी प्रोग्राम्स भी चल रहे हैं जो आपको दिख भी नहीं रहे होते ओस से रिलेटेड प्रोग्राम्स ही चल रहे हैं बेसिकली कुछ कुछ आपने कुछ बेसिकली कोई प्लेयर खोल के रखा हुआ है जिसमें म्यूजिक सुन रहे हो तीसरा आपका आपने जीटीए 5 भी खोल रखा है जीटीए 5 सबको पता है बहुत ही हैवी गेम है ठीक है 30 40gb का बेसिकली गेम है ये इफ आई एम राइट तो अब उसको लोड करने के लिए मैं 16gb की रम मैं कैसे लोड करूंगा 16gb की रम उसकी रिक्वायरमेंट होती है वो चल जाता है 16gb की रम में बट वो 30gb का गेम है व 16gb की रम में कैसे चल पा रहा है ठीक है कैसे चल पा रहा है इसको मैं बोलता हूं कि हम वर्चुअल मेमोरी का एक कांसेप्ट यूज करते हैं वर्चुअल मेमोरी क्या है वर्चुअल मेमोरी क्या है क्योंकि हमारे पास लिमिटेड फिजिकल मेमोरी है लिमिटेड फिजिकल मेमोरी है एक फाइना इट फिजिकल मेमोरी है और मुझे पता है कि मेरे पास एक डिस्क जैसे कोई चीज होती है है ना डिस्क होती है डिस्क आपने देखा है 1 टीवी 2tb इतनी ज्यादा बड़ी-बड़ी डिस्क्स होती हैं हमें सबको पता है और रम कितनी होती है आज के मॉडर्न पीसी की बात करूं 16gb डाल ली मैंने 32gb डाल ली ठीक है प्रोग्राम्स तो इससे बड़े-बड़े होते हैं तो मैं कुछ ऐसा प्रोसीजर ना कर लूं कुछ ऐसा प्रोसीजर कि मैं जब प्रोसेसेस को बेसिकली रेडी स्टेट में लेके आऊं जब मैं एग्जीक्यूशन स्टेट प लेके आऊं तो मैं क्या करता हूं मैं कुछ प्रोसेसेस के कुछ ही पेजेस को मैं प्रोसेसेस के कुछ ही पेजेस को बेसिकली एलोकेट करूंगा कुछ ही पेजेस को एलोकेट करूंगा और वो पेजेस कौन से होंगे वो वो वाले पेजेस होंगे जो कि अभी जस्ट जिनकी नीड है ठीक है इसको समझते हैं अब देखो आप कोई प्रोग्राम रन करते हो ठीक है अब उस प्रोग्राम मान लो वो 10 20gb का प्रोग्राम है जस्ट इमेजिन इतना बड़ा प्रोग्राम है तो हर टाइम सारा ही कोड तो यूज नहीं हो रहा होता सारा लॉजिकल एडस स्पेस तो यूज नहीं हो रहा होता जब एग्जीक्यूशन हो रही है तो कुछ-कुछ पेजेस यूज हो रहे होंगे कुछ-कुछ एग्जीक्यूशन यूज हो रहा होगा मान लो इसका भी मैं एग्जांपल लूं तो ये p1 प्रोसेस है मान लो ठीक है इसके अंदर कुछ कुछ मतलब यहां से पेज शुरू होता है मेन शुरू होता है उसके बाद ज्या से ज्यादा ये वाले फंक्शन कॉल हो रहे हैं ये वाले फंक्शन को कॉल हो रहे हैं मैं बोल सकता हूं कि तीन ही पेज कॉल हो रहे हैं और मान लो कुछ यूजर इनपुट आउटपुट का फंक्शन है ये कुछ स्विच केसेस लगे हुए हैं तो हो सकता है यूजर कुछ ही स्विचेबल इस एरिया में लिखा हुआ है इन एरियाज में लिखा हुआ है वो कभी एग्जीक्यूट ही ना हो उसकी नीड ही ना हो राइट उसकी नीड ही ना हो तो मैं कुछ ऐसा ना कर लूं कि जो जो नीडेड पेजेस हैं जो जो नीडेड पेजेस है मैं उनको लोड कर लेता हूं बस ठीक है इसके भी नीडेड पेजेस को लोड कर लेता हूं बस ठीक है इससे क्या होगा जस्ट इमेजिन कि इसके तीन पेजेस ही नीडेड है ठीक है इसके मान लो एक ही पेज नीडेड है तो इससे क्या होगा अब मैं इसकी एलोकेशन जब करूंगा इसकी एलोकेशन दोबारा से करूंगा इसको मिटा देता हूं जल्दी से एक बार ठीक है तो मैं कुछ ऐसा ना करूं कि मैं नीडेड पेजेस को ही लोड करूं नीडेड पेजे इसमें कितने थे इनिशियली ड पेजेस 1 2 3 थ्री पेजेस थे तो मान लो मैं इसके तीन पेजेस एलोकेट कर देता हूं ठीक है ऐसे मैंने एलोकेट कर दिए इसका एक ही पेज नीडेड था इसका एक ही पेज नीड कर दि एलोकेट कर दिया ठीक है और जो p0 थी p3 जो p3 नई 5kb की आई थी जस्ट इमेजिन इसके ये दो पेजेस नीडेड है ठीक है तो मैं क्या करता हूं इसके मान लो ये दो पेजेस मैंने एलोकेट कर दिए यहां फ्रेम्स एलोकेट कर दिया इसको तो आप देखो मेरे पास 12 फ्रेम्स थे ठीक है मैंने क्या करा 3 4 5 6 सिक्स फ्रेम्स में काम चला लिया अपना ठीक है सिक्स फ्रेम्स में काम चला लिया और अगर मान लो अब कोई और नई प्रोसेस भी आती है ना मान लो मेरे पास एक प्रोसेस आती है p4 नाम से और इसके अंदर मान लो थ्री पेजेस है ठीक है थ्री पेजेस है तो मैं p4 को भी एलोकेट कर सकता हूं क्योंकि अभी भी मेरे पास अभी भी मेरे पास छ पेजेस खाली पड़े हुए हैं ठीक है तो यानी कि तो अभी तक तो मैं दो ही प्रोसेस चला पा रहा था p1 और p2 ठीक है अब मैंने क्या करा एक कंसेप्ट का यूज़ करा मैंने अपने दिमाग में रखा कि यार एक बारी में जो प्रोसेस है वह सारे कोड को तो यूज़ करता नहीं है तो जो जो पेजेस नीडेड हैं जो जो पेजेस नीडेड है मैं उन्हीं को ही लोड कर लेता हूं बस तो मैंने निकाला ओस ने निकाला भाई नीडेड पेजेस कौन-कौन से हैं p1 के ये वाले पेजेस नीडेड है तो मैंने इनको यहां लोकेट कर दिया ठीक है p2 का एक ही पेज नीडेड था इनिशियली तो मैंने इसको य एलोकेट कर दिया इसके दो पेज नीडेड थे इसको एलोकेट कर दिया अब इससे मेरे छह फ्रेम्स अभी भी फ्री बच गए छह फ्रेम्स अभी भी फ्री बच गए ठीक है और ये फ्री फ्रेम छह बचे हुए हैं तो कोई p4 आती है मान लो p4 के अंदर मान लो तीनों के तीनों पेजेस ही नीडेड है ठीक है तीनों के तीनों पेज नीडेड है तो मैं क्या करूंगा तीनों के तीनों एलोकेट कर दूंगा इसको ठीक है तो आप देख रहे हो मैंने कंसेप्ट का यूज करा वो कांसेप्ट क्या था उसको मैं लोकैलिटी ऑफ रेफरेंस भी बोलता हूं ठीक है ओनली नीडेड पेजेस को आप जो जो आसपास के पेजेस हैं इनिशियली उनको लोड करो बाकी पेजेस का क्या करेंगे अब हम ठीक है अब दिमाग में आ रहा होगा सबके कि इन बाकी पेजेस का क्या करेंगे प्रोसेस तो एज ए होल रेडी स्टेट में आती है हम सबको पता है प्रोसेस तो पूरी ही रम के अंदर आती है राइट तो इसमें आपका जो ओस है ठीक है वो क्या करता है थोड़ी इंटेलिजेंस अप्लाई करता है यूजर को तो यही लग रहा है कि सारी की सारी प्रोसेस आ चुकी है रम के अंदर बट वो रम में सारी प्रोसेस को रख ही नहीं रहा है वह आपको बेवकूफ बनाते हुए क्या कर रहा है यूजर को ट्रिक ट्रिक करते हुए क्या कर रहा है उसने यह आपकी हार्ड डिस्क थी ठीक है यह आपकी हार्ड डिस्क थी इसके अंदर एक यह डिस्क इसके अंदर एक एरिया निकाला छोटा सा एरिया ठीक है इसको रिजर्व कर लिया ठीक है और डिस्क के अंदर मैं रिजर्व क्यों कर पा रहा हूं क्योंकि डिस्क होती है बहुत बड़ी राइट रम से तो काफी बड़ी होती है हम सबको पता है तो डिस्क के अंदर अगर मैं और मान लो डिस्क के अंदर मैं मान लो कि यह 12 केबी की रम थी ना मान लो मैं यहां पर 1 जीबी टीबी की रैम में से 1 जीब अगर मैं अलग से रिजर्व भी कर लू ठीक है अल से रिजर्व भी कर लूं तो इससे कोई फर्क पड़ेगा नहीं यूजर को ठीक है यूजर बाकी की जो डिस्पेस है उसमें काम चला सकता है अपना ठीक है यह अजूम कर रहे हैं हम तो 1 जीबी स्पेस को वो बेसिकली क्या करता है वह रिजर्व करता है और रिजर्व करके जो भी प्रोसेसेस जो भी प्रोसेसेस के नॉट नीडेड पेजेस है नॉट नीडेड पेजेस है इसके इतने नॉट नीडेड पेजेस थे इसके इतने पेजेस थे जो कि नॉट नीडेड थे अभी के लिए ठीक है नॉट नीडेड थे मैं उन सबको यहां पर स्टोर कर लूंगा ठीक है यानी कि इसके नटू 3 फोर नहीं थ्री टूथ थ्री पेजेस थे तो मैंने यहां पे टूथ थ्र पेजेस यहां पे स्टोर कर लिए इसके फोर पेजेस थे इसके फोर मैंने यहां स्टोर कर लिए टूथ 4 ठीक है इसके टू थ्री पेजेस थे बेसिकली जो नॉट नीडेड थे न टू थ इसके यहां पर डाल लिए तो अब देखो ये जो पूरा सिनेरियो बनाया है ऑपरेटिंग सिस्टम ने वो एक यूजर के लिए बनाया है यूजर को बेसिकली हम ट्रिक कर रहे हैं किस तरीके के कि यूजर को लग रहा है कि मेरा p1 के सारे पेजेस एलोकेट हो चुके हैं सिमिलरली p2 के भी सारे पेजेस लोकेट हो चुके हैं p3 के भी सारे लोकेट हो चुके हैं बट इंटरनली चल क्या रहा है सिर्फ नीडेड पेजेस बेसिकली किसी भी प्रोसेस के ओस ने एलोकेट किए हैं एक्चुअल रैम को और जो बाकी बचे पेजेस हैं वह एक एरिया में स्टोर कर लिए हैं ठीक है और वह एरिया किस तरीके का है वह ऐसा एरिया है जो कि उसने रिजर्व करा हुआ है इसको कोई यूजर प्रोग्राम नहीं छेड़ सकता एक रिजर्व्ड एरिया है ऑपरेटिंग सिस्टम के द्वारा और रिजर्व्ड एरिया में ये सारी पेजेस स्टोर्ड हैं और ये पेजे इस तरीके से स्टोर्ड है कि ये रेडी टू यूज है मतलब कि जैसे ही अब इमेजिन करो ये पर्टिकुलर आपका जो ओएस स्टार्टिंग में ये तीन पेजेस यूज कर रहा था मान लो उसने इंस्ट्रक्शन शुरू करी शुरू करी करते करते वो एकदम थर्ड पेज पे आया ठीक है थर्ड पेज पे आने के लिए अब सीपीयू को तो लग रहा है कि थर्ड पेज तो अवेलेबल होगा क्योंकि यूजर को तो ट्रिक किया हुआ है हमने कि थर्ड पेज तो रम के अंदर है बट एक्चुअली ओस को पता है यह थर्ड पेज जो रम पे है नहीं यह रम पे नहीं है यह थ्री पेज तो रम पे नहीं है तो व क्या करता है एकदम से एक ट्रैप जनरेट करता है एक एक्सेप्शन जनरेट करता है और ओ को जल्दी से नोटिफाई करता है कि आपके प्रोग्राम ने थर्ड फ्रेम मांगा है p1 का तो जल्दी से इसको ना रैम पे लोड करो जल्दी से इसको रैम पे लोड करो तो जल्दी से र रम पे लोड करने के लिए क्या करता है वोह वो करता है कोई फ्री फ्री फ्रेम एलोकेट करता है फ्री फ्रेम देखता है जस्ट इमेजिन सारे फ्रेम्स भरे पड़े हैं सारे फ्रेम भड़े पड़े हैं तो ऐसा तो होगा कि इसका जीरो फ्रेम जो है मान लो जो कि इसी प्रोग्राम को एलोकेटेड था इसी प्रोसेस को एलोकेटेड था p1 को वो अब नॉट नीडेड है मान लो तो इसको मैं फ्री कर दूंगा इसको फ्री करने के बाद जो थर्ड वाला पेज है p1 का उसको मैं लाके रख दूंगा तो p1 का थर्ड पेज मैं यहां पे एलोकेट कर सकता हूं ठीक है तो किस तरीके से ट्रिक करके आपका जो ऑपरेटिंग सिस्टम है वो ऐसा बिहेव करा रहा है बेसिकली ऐसा इल्यूजन क्रिएट कर रहा है कि आपके जो p1 p2 p3 है तीनों प्रोसेसस को पूरी पूरी रैम एलोकेटेड है कोई दिक्कत नहीं है ठीक है ऐसा बेसिकली ओएस आपको ऐसा ट्रिक कर रहा है बट एक्चुअल क्या है नीडेड पेजेस ही एलोकेटेड है नीडेड पेजेस ही एलोकेटेड है नॉट नीडेड पेजेस जो है वो भी के लिए मैंने कि पैकिंग स्टोरेज में स्टोर करके रखे हुए हैं और अब इस स्टोरेज का नाम मैं बताता हूं इसको मैं बोलता हूं स्वैप स्पेस ठीक है स्वैप स्पेस तो मैं क्या कर रहा हूं स्टार्टिंग में सिर्फ नीडेड को एलोकेट कर रहा हूं और जो नॉट नीडेड है उनको यहां पर डाल दे रहा हूं ठीक है फिर जब भी कोई ट्रैप जनरेट होगा कि भाई थ एक पेज चाहिए मान लो थर्ड पेज चाहिए जो थर्ड चाहिए था यहां पे तो मैं जो नीडेड पेज है यहां से मैं स्वैप इन कर दूंगा स्वैप इन कर दूंगा और जो नॉट नीडेड पेज होगा मान लो p1 का कोई तो उसको मैं क्या करूंगा स्वैप आउट कर दूंगा ठीक है तो इसको मैं स्वैप स्पेस बोलता हूं तो यह हार्ड डिस्क के अंदर एक ऐसा एरिया है डिस्क के अंदर एक ऐसा एरिया है पूरी डिस्क नहीं है ये एरिया डिस्क के अंदर एक छोटा सा रिजर्व्ड एरिया है जिसको मैं स्वैप स्पेस बोल रहा हूं अब इस पूरे सिनेरियो से यह जो पूरा हमने सिनेरियो बनाया है इससे क्या फायदा हो रहा है इससे दो फायदे हो रहे हैं सबसे पहला क्या फायदा है कि यूजर को ऐसा लग रहा है कि वह मल्टीपल प्रोग्राम्स रन कर पा रहा है यानी कि मान लो यह 12kb का प्रोग्राम था ठीक है और यह कितने केब का था 6 केब का यह 5kb का इवन यह भी 5kb का अगर मैं तीन प्रोग्राम को प्लस करूं तो मेरा यह टोटल 16kb आता है 16kb प्लस अगर मान लो p4 भी आता है यह भी 3kb का था ठीक है तो 16 17 18 19 तो टोटल मे पास 19 केब के प्रोग्राम्स हैं वो एक 12 केब की रैम में रन हो रहे हैं देख रहे हो 19 केबी के टोटल प्रोग्राम्स वो एक 12 केब की रैम में रन हो रहे हैं और यह रन कैसे हो रहे हैं यह रन ऐसे हो रहे हैं कि सिर्फ नीडेड पेजेस ही रम के अंदर हैं बाकी सारे पेजेस आपके स्वैप स्पेस के अंदर है और स्वैप स्पेस के अंदर होने की वजह से ठीक है यूर को ऐसा लग रहा है कि सारे प्रोग्राम्स बेसिकली आपका मेमोरी के अंदर है तो अब यह देखो कि इससे जो पहला फायदा हुआ वह हमने देखा कि बेसिकली मैं ज्यादा नंबर ऑफ प्रोग्राम्स बेसिकली रन कर पाता हूं यानी कि डिग्री ऑफ मल्टी प्रोग्रामिंग बढ़ा सकता हूं मैं इतनी बढ़ा सकता हूं कि रम से ज्यादा भी टोटल बेसिकली प्रोसेसेस की स्पेस इतनी बड़ी प्रोसेसेस टोटल अगर हो जाए तब भी व रम से ज्यादा हो तब भी मैं उनको रन कर पाता हूं ठीक है दूसरा यह है कोई भी प्रोग्रामर ना उस उसको अब इस चीज की टेंशन नहीं है कि यार मैं जो पीसी रन कर रहा हूं ना उसके अंदर सिर्फ एक ही जीब की रैम है तो मैं कोई ऐसा ही प्रोग्राम लिख सकता हूं जो कि एक ही जीब का होगा ऐसा नहीं है आप 10gb का प्रोग्राम लिख दो आपका ओस इतना इंटेलिजेंट है कि वो हमेशा वही वही पेजेस यूज करता है जो जो उसको जरूरत होती है ठीक है बाकी पेजेस को व स्वैप एरिया में स्टोर कर लेता है ठीक है और जैसे ही वो पेज जो उसकी स्वैप एरिया में स्टोर्ड है वो चाहिए होता है उसको वापस रैम में ले आता है और जो नहीं चाहिए उसको रैम से स्वप आउट कर देता है ठीक है तो इतना इंटेलिजेंट ये वर्क करता है तो इससे दो फायदे क्या हुआ एक डिग्री प्रोग्रामिंग हाई हो गया इससे दूसरा फायदा क्या हुआ यूजर कैन रन लार्ज एप्स विद लेस रियल मेमोरी ठीक है वही वाला केस 16gb की आपकी रैम थी जीटीए 5 आपका 30gb का था 30gb का आपका जीटीए 5 था ठीक है जीटीए 5 आप रन कर पाते हो तो इफेक्टिवली मैं देखूं तो gta5 क्या होता है स्टार्टिंग में 34gb यूज कर रहा होता है यानी कि 34gb के जो बेसिकली रिलेटेड पेजेस होते हैं जो कि इंपोर्टेंट पेजेस होते हैं उनको वो बेसिकली एक्चुअल रैम में रख लेता है बाकी सारे एरिया को स्वैप स्पेस में डाल देता है ठीक है और इस तरीके आपका फिर काम चल रहा होता है स्वप इन स्वप आउट करते हुए ठीक है बहुत ही बढ़िया तो अब यह जो पूरा अरेंजमेंट है ना जिसमें रम प्लस डिस्क का स्वप एरिया ठीक है यहां पर लिखते हैं हम रम प्लस स्वैप एरिया स्वप स्पेस भी कहता हूं मैं इसको यह टोटल मिला के एक वर्चुअल मेमोरी की अरेंजमेंट बनाता है इसका मतलब क्या हुआ इसका मतलब हुआ कि रम आपका क्या था फिजिकल मेमोरी ठीक है फिजिकल मेमोरी थी आपकी जो कि एक्चुअल में है आपने क्या किया एक इल्यूजन क्रिएट करा वर्चुअल मेमोरी का कि आपने रम में एक स्वैप एरिया ऐड कर दिया और उस रैम प्लस स्वैप एरिया मिलके एक रम की तरह ही बिहेव कर रहा है बट वो रैम तो एक्चुअली है नहीं रैम तो एक्चुअली है नहीं वो एक वर्चुअल मेमोरी इसलिए मैं उसका नाम देता हूं इसका मतलब इसका मतलब ये हुआ यहां थोड़ी कंफ्यूजन हो गई होगी दोबारा से बोलता हूं रैम आपके 12kb की थी इसके अंदर क्या थे पेजेस फ्रेम की फॉर्म में डले हुए थे ठीक है सारे फ्रेम्स एलोकेटेड थे पेजेस सारे यहां पे थे मेरे ठीक है पेजेस रम के अंदर भी है और पेजिंग कुछ स्वैप एरिया में भी है तो मैं बोल सकता हूं कि स्वैप एरिया भी एक टाइप की रैम ही है और वह डिस्क के अंदर स्टोर्ड है ठीक है तो इसलिए यूजर पर्सपेक्टिव से देखें तो एक इल्यूजन बना हुआ है कि रम मेरी 12kb की नहीं है रम मेरी 12kb प्लस 1gb का स्वप एरिया इतनी बड़ी रैम है मेरी यूजर को ऐसा लग रहा है एक्चुअली नहीं है ऐसा तो यही है कि वर्चुअल मेमोरी का एक कांसेप्ट जो है आपका एक इल्यूजन क्रिएट करता है कि आपकी जो मेन मेमोरी है वो बहुत बड़ी है यूजर को लगता है बहुत बड़ी मेन मेमोरी है ठीक है 12 केब की मेमोरी नहीं है मेरी मेरी तो इतनी बड़ी मेमोरी है कि मैं p1 p2 p3 इन तीनों का प्लस p4 जो 19 केब के टोटल प्रोग्राम्स थे मैं उनको 12 केब की रैम से रन कर पा रहा था तो यूजर को ऐसा लग रहा है कि 12 केब की रैम नहीं है रम बहुत बड़ी है ठीक है तो एक बार नोट्स प चलते हैं और देखते हैं क्या कहना चाह रहे हैं हम वर्चुअल मेमोरी इज अ टेक्निक दैट अलाउ द एग्जीक्यूशन ऑफ प्रोसेसेस दैट आर नॉट कंपलीटली इन द मेमोरी ठीक है वो हमने देखा कंप्लीट नहीं थी नीडेड को जाल रहा था है राइट इट प्रोवाइड्स यूजर एन इल्यूजन ऑफ हैविंग वेरी बिग मेन मेमोरी ठीक है यह हमने देखा कि बहुत बड़ उसको लग रहा है कि बहुत बड़ी मेन मेमोरी है ब मेमोरी बहुत बड़ी नहीं है दिस इज डन बाय ट्रीटिंग ए पार्ट ऑफ सेकेंडरी मेमोरी एज ए मेन मेमोरी ठीक है तो उसको मैं स्वप स्पेस बोलता हूं तो रम प्लस स्वप स्पेस को मिला के मैं बोलता हूं यह पूरा अरेंजमेंट एक वर्चुअल मेमोरी है ठीक है यानी कि रम मेरी एक्सटेंड हो गई है ठीक है एडवांटेज क्या है इस बात की इसकी एडवांटेज है प्रोग्राम प्रोग्राम्स कैन बी लार्जर देनन फिजिकल मेमोरी ठीक है फिजिकल मेमोरी से बड़े प्रोग्राम्स हो सकते हैं जैसे कि हम यहां देख रहे थे टोटल प्रोग्राम जो है टोटल प्रोग्राम का अकाउंट 19 केब था तो इसमें मैं यह भी कर सकता था अगर मान लो कोई एक ही प्रोग्राम आता मेरा एक ही प्रोग्राम कोई p5 आता ठीक है p5 आता और वह आपका होता मान लो 20 केबी का ठीक है 20 केब का अब टेक्निकली देखें तो 20 केब मान लो इसमें 20 पेजेस होते 20 पेजेस को मैं 20 फ्रेम तो एलोकेट कर ही नहीं पाता जस्ट इमेजिन यह सारी प्रोसेस नहीं है अभी ठीक है पूरी रैम खाली है मैं तब भी पूरी टाम खाली है तब भी मैं 12kb के अंदर 20kb नहीं चला सकता तो मैं क्या करता हूं मैं कुछ नीडेड पेजेस ही एलोकेट करता हूं ठीक है नीडेड पेजेस एलोकेट कर लेता हूं मान लो शुरू के पांच ही पेजेस नीडेड होते हैं इसके अंदर ओएस डिटरमाइंड करता है और पांच पेजेस ही बेसिकली मैं पांच पेजेस पांच फ्रेम्स में एलोकेट कर देता जो जो खाली फ्रेम्स होते उसमें एलोकेट कर देता और चला ता इसका मतलब मैं प्रोग्राम्स रन कर पा रहा हूं दैट आर लार्जर देन द फिजिकल मेमोरी ठीक है बहुत ही बढ़िया तो इसमें हम क्या कह रहे हैं द एंटायस इज नॉट नीडेड एट द सेम टाइम सो वी वांट एन एबिलिटी टू एग्जीक्यूट अ प्रोग्राम दैट इज ओनली पार्शियल इन द मेमोरी वुड मेनी बेनिफिट्स यानी कि सेम बात है कि हम सारे प्रोग्राम को एलोकेट नहीं कर रहे हैं हम पार्शियली जो जो नीडेड है उसी को एलोकेट कर रहे हैं इस पूरी अरेंजमेंट को मैं क्या बोलता हूं ये वर्चुअल मेमोरी कांसेप्ट बोलता हूं ठीक है बहुत ही बढ़िया इससे क्या फायदे हो रहे हैं वो हमने देखा इसमें एक और फायदा है कि बिकॉज ईच यूजर कुड टेक लेस फिजिकल मेमोरी मोर प्रोग्राम्स कैन बी रन ठीक है जैसा यहां पे हो रहा था कि सब टोटल पूरी पूरी मेमोरी ना लेके कुछ-कुछ मेमोरी का पार्टी ले रहे थे कुछ-कुछ मेमोरी का पार्टी ले रहे थे राइट कुछ-कुछ मेमोरी में पार्ट लेने की वजह से क्या हो रहा था मैं ज्यादा नंबर ऑफ प्रोग्राम रन कर पाता हूं तो डिग्री ऑफ मल्टी प्रोग्रामिंग में बढ़ा सकता हूं इस केस में राइट बहुत ही बढ़िया तो बेसिकली रनिंग ए प्रोग्राम दैट इज नॉट एंटायस प्रोग्राम रन करना है जो कि पूरा ही मेमोरी के अंदर नहीं है कुछ मेमोरी के अंदर है कुछ पेजेस जो कि नीडेड है वो मेमोरी के अंदर है बाकी सब स्वप्स इसके अंदर है ठीक है यूजर को लग रहा है सब कुछ मेमोरी के अंदर है ठीक है ऐसा इल्यूजन क्रिएट हो रहा है तो इससे बेनिफिट सिस्टम को भी बेनिफिट हो रहा है यूजर को भी बेनिफिट हो रहा है यूजर को कैसे बेनिफिट हो रहा है यूजर ऐसा प्रोग्राम रन कर सकता है जो कि फिजिकल मेमोरी से भी बड़ा है ठीक है तो यूजर का फायदा है सिस्टम का क्या फायदा है सिस्टम ज्यादा सीपीयू यूटिलाइजेशन और थ्रू पुट निकाल सकता है कैसे बहुत सारी प्रोसेसेस को मेमोरी में रखेगा वो कुछ-कुछ पेजेस को मेमोरी में रखेगा अगर कोई एक पर्टिकुलर प्रोसेस आपकी आईओ करने चली भी गई तो दूसरी प्रोसेस को तुरंत वो सीपीयू प्रोवाइड कर सकता है तो इस केस में सीपीय लेशन भी हाई हो जा रही है डी मल्टी प्रोग्रामिंग बढ़ जा रही है तो ओवर एंड ओवर यह पूरा जो कांसेप्ट है यह बहुत ही बढ़िया है और आजकल यही कांसेप्ट यूज़ होता है आपके सिस्टम में ठीक है तब भी आप इतनी मल्टीपल अ बेसिकली प्रोग्राम्स रन कर पाते हो ठीक है तो यह जो पूरी स्कीम है ना ये जो पूरी स्कीम हमने डिस्कस करी ये जो पूरी स्कीम मैंने डिस्कस करी इसको अप्लाई करने का एक पॉपुलर मेथड है यानी कि वर्चुअल मेमोरी मैनेजमेंट का एक पॉपुलर मेथड है उसको मैं बोलता हूं डिमांड पेजिंग ठीक है डिमांड पेजिंग इसको पढ़ते हैं हम डिमांड पेजिंग कुछ कुछ डिमांड पेजिंग के कांसेप्ट मैं आपको बता ही चुका हूं यहां पे ठीक है ऑन डिमांड चीजें आ रही है ऑन डिमांड पेजेस को लोड कर रहा हूं मैं ठीक है ऐसा कुछ है यहां पे तो इसमें देखते हैं इन डिमांड पेजिंग द पेजेस ऑफ ए प्रोसेस व्च आर लीस्ट यूज गेट स्टोर्ड इन द सेकंड मेमोरी यही हमने देखा कि जो कि यूज नहीं होने हैं उनको मैंने सेकेंडरी मेमोरी में स्टोर कर दिया ठीक है ए पेज इज कॉपी टू द मेम मेमोरी व्हेन इट्स डिमांड इज मेड ठीक है एक पेज को मान लो थर्ड पेज जो हमने एग्जांपल लिया था थर्ड पेज कब लोड होगा जब सीपीयू इसकी डिमांड करेगा जब इसकी डिमांड करेगा तो ओस के पास एक इंटरप्ट जाएगा उसको मैं पेज फॉल्ट भी बोलता हूं यानी कि पेज एक्चुअल मेमोरी में नहीं है वो स्वैप एरिया में है तो इस केस में थर्ड पेज को मुझे यहां से स्वैप इन करना पड़ेगा तो मैं ऑन डिमांड बेसिकली मैं थर्ड पेज को लेकर आ रहा था ठीक है इसलिए मैं इसको डिमांड पेजिंग बोलता हूं ठीक है बहुत ही बढ़िया देयर आर वेरियस पेज रिप्लेसमेंट एल्गोरिथम विच आर यू टू डिटरमाइंड इसको समझते हैं अब इसमें थर्ड पेज जो आ रहा था थर्ड पेज जो यहां से मुझे स्वप इन करना था स्वप इन करना है अब इमेजिन करो मेरे बहुत सारे पेजेस जो इसमें एलोकेटेड है इमेजिन करो यह 12 केब की पूरी रैम जो है ना फीड है पूरी रैम फीड है पूरी रैम ये फीड है मेरी फिड है तो मैं थर्ड पेज को कहां एलोकेट करूंगा कहां एलोकेट करूंगा तो वो एलोकेशन का फ्रेम निकालने का तरीका है पेज रिप्लेसमेंट एल्गोरिथम इसको हम नेक्स्ट क्लास में पढ़ेंगे कितने टाइप के एल्गोरिथम होती है बट समझ लो अभी कि पेज रिप्लेसमेंट एल्गोरिथम होती क्या है ठीक है तो जब मुझे थर्ड पेज के लिए कोई फ्रेम खाली ढूंढना होगा तो मुझे एक फ्रेम ढूंढने के लिए क्या करना पड़ेगा मुझे कुछ ऐसा मैकेनिज्म चाहिए कुछ एल्गोरिथम चाहिए कि अगर इवन दो पूरी रैम फील्ड भी है सारे पेजेस के अंदर है भी यानी कि सारे फ्रेम्स बेसिकली मेरे फीड भी हैं तब भी भी मैं कौन सा फ्रेम को कौन से फ्रेम को खाली करूं किसको स्वप आउट करके मैं बेसिकली स्वप स्पेस में ले आऊं कौन से बेसिकली पर्टिकुलर अ पेज को मैं स्वप आउट कर दूं ठीक है ताकि मेरा जो थर्ड अ बेसिकली पेज है वो एलोकेट हो जाए किस तरीके से ठीक है तो इसको मैं बोलता हूं तो बेसिकली हम क्या कर रहे हैं हम इस केस में जैसा हमने डिस्कस किया हम पूरी प्रोसेस को रम को एलोकेट नहीं कर रहे हैं सिर्फ नीडेड पेजेस को एलोकेट कर रहे हैं तो यह काम कौन करता है ये लेजी स्वीपर काम करता है लेजी स्वीपर ऐसा काम करता है कि वो क्या करता है एंटायस स्पर नेवर स्वप्स अ पेज इन टू मेमोरी अनलेस द पेज विल बी नीडेड सिर्फ नीडेड पेजेस को ही हम डालते हैं स्टार्टिंग में ठीक है ओ डिटरमाइंड करता है स्टार्ट स्टार्टिंग में मैंने क्या करा सबसे पहले जहां पर मेन लिखा होता है मेन फंक्शन लिखा है उसको स्वप इन करा बेसिकली मेन मेमोरी में ले आया मैं ठीक है और बाकियों को मैंने आपका बैकिंग स्टोरेज यानी कि स्वप स्पेस में रख दिया और जैसे नीड बेसिस पे मैं लेजली डिमांड पेजिंग के मेथड से बेसिकली पेज को मैं स्वप इन करता रहूंगा ठीक है अब यहां पर एक छोटी सी करेक्शन है कि जो स्वैपर मैं वर्ड यूज कर रहा हूं ना स्वैपर तो हम स्वैपर वर्ड यूज नहीं करेंगे रीजन बीइंग स्वैपर वहां पर यूज होता है जब मैं पूरी की पूरी प्रोसेस को स्वप इन कर रहा होता हूं यानी कि पूरी की पूरी प्रोसेस को जब मैं उठा के यहां ला रहा हूं ना तो मैं उसके उस उसको मैं बोल देता हूं स्वेप स्विपर उस प्रोग्राम को मैं स्वाइपर बोलता हूं याद करो हमने जो एक लेक्चर में पढ़ा था एमटीएस जहां में पढ़ा था मीडियम टर्म शेड्यूलर उसमें हम क्या कर रहे थे हमारा डिग्री ऑफ मल्टीप्लग जब बहुत हाई हो जाती है तो हम पूरी प्रोसेस को उठा के स्वप आउट कर रहे हैं कर रहे थे राइट पूरी प्रोसेस को उठा के पूरी प्रोसेस को उठा के स्वाइप आउट कहां कर रहे थे इसी स्वाइप एरिया में कर रहे थे अब क्योंकि यहां पर पूरी प्रोसेस को स्वाइप आउट नहीं कर रहे तो यहां पर स्वाइपर वर्ड यूज नहीं करेंगे हम पेजर वर्ड यूज करेंगे ठीक है हम पेजर वर्ड यूज करेंगे पेजर पेजर हम वर्ड यूज क्यों कर रहे हैं क्योंकि वो किसी प्रोसेस के इंडिविजुअल पेज को स्वाइप इन स्वाइप आउट करता है ना कि पूरी प्रोसेस को स्वाइप इन स्वप आट करता है ठीक है तो ये टर्म यहां पे थोड़ी सी मिस लीडिंग है अगर मैं स्विपर यूज़ करूंगा तो इसलिए मैं यहां पे एक नई टर्म लेके आ रहा हूं जिसका नाम है पेजर तो पेजर यूज़ करूंगा मैं क्योंकि इंडिविजुअल पेज को स्वाइप इन स्वाइप आउट कर रहे हैं जो पहले लेक्चर में पढ़ा था एमटीएस जो कि पूरी प्रोसेस को स्वाइप आउट कर रहा था यहां पूरी प्रोसेस स्वाइप आउट नहीं हो रही है यहां पे कुछ पेजेस किसी पर्टिकुलर प्रोसेस के स्वाइप आउट होंगे ठीक है बहुत ही बढ़िया अब हम देखते हैं कि डिमांड पेजिंग वर्क कैसे करती है ठीक है डिमांड पेजिंग जो अभी कांसेप्ट पढ़ा हमने ठीक है यह वर्क कैसे करती है इसकी वर्किंग पढ़ते हैं बहुत ही इंटरेस्टिंग वर्किंग है इसकी तो सबसे पहला स्टेप क्या होता है सबसे पहला जब भी कोई एक प्रोसेस स्वाइप इन होती है जब भी कोई प्रोसेस स्वाइप इन होती है तो हम क्या करते हैं द पेजर गैसेस व्हिच पेजेस विल बी यूज्ड तो यह पेजर का काम है कि कौन सी पेजेस यूज होंगे ठीक है तो पेजर का काम क्या है यही कि व्हिच पेजेस विल बी यूज्ड यह गेस करना किसी भी पर्टिकुलर प्रोसेस के लिए ठीक है जो कि हम यहां पर कर रहे थे इसके अंदर हमने गेस किया मान लो कि तीन पेजेस यूज होंगे ठीक है बहुत ही बढ़िया इंस्टेड ऑफ स्वाइपिंग द होल प्रोसेस द पेजर ब्रिंग्स ओनली दोज प्रोसेस इन टू मेमोरी दिस बाय दिस इट अवॉइड रीडिंग इन टू मेमोरी पेजेस दैट विल नॉट बी यूज्ड एनीवे ठीक है इसका मतलब क्या है कि अब यह देखो कि हम ऑन डिमांड हम यही तीन बेसिकली पेजेस को लोड कर रहे थे राइट अब इमेजिन करो ऐसा हो सकता है कि यूजर जो उस प्रोग्राम से इंटरेक्ट कर रहा है उसके अंदर एक कोड का पार्ट है मान लो ये एक फिफ्थ इसमें लिखा हुआ है ठीक है फिफ्थ पेज में लिखा हुआ है यह कभी यूजर इसको एक्सेस ही नहीं करता एक्सेस ही नहीं करता अब जब यूजर इसको कभी एक्सेस नहीं करता तो मैं इस पर्टिकुलर पेज को क्यों एलोकेट करूं फ्रेम ठीक है क्यों एलोकेट करूं फ्रेम हो सकता है ना कोई ऐसा प्रोग्राम हो जिसके अंदर एक ऐसा फ्लो है जो कभी यूज ही नहीं कर रहा प्रोग्राम मान लो कोई ऐसा आपके पास इसका एग्जांपल देता हूं मान लो आपके पास एक गेम है ठीक है उस ग जीटीए 5 की एग्जांपल लेते हैं जीटीए 5 का एक गेम है उसके अंदर बहुत सारी सिटीज होती हैं सिटीज का एरिया होता है मान लो सिटी का एक नॉर्थ वेस्ट एरिया है वो आप उसके अंदर हो उसको यूज कर रहे हो तो आपका ओएस क्या करेगा सिर्फ नॉर्थ वेस्ट एरिया जहां जहां जिन जिन पेजेस में लिखा होगा उन्न पेजेस को आपका मेमोरी के अंदर या स्वैप एरिया के अंदर डाल देगा ठीक है नीट बेसिस पे ऐ स्वप इन स्वप आउन चलता रहेगा बट आपका एक साउथ वेस्ट का एरिया है आपका मैप के अंदर वो आप कभी उसके अंदर पूरी लाइफ साइकिल में गए ही नहीं वहां पे आप अपनी गाड़ी में बैठ के गए नहीं ठीक है जीटीए 5 के अंदर तो वो वाले पेजेस को लोड करके क्या फायदा वो वाले पेजेस को लोड करके क्या फायदा तो वो यही बात बोल रहा है कि हम पेजेस को जो कि यूज ही नहीं होने पूरी लाइफ साइकिल में उन्हें कभी लोड ही नहीं करते ठीक है तो इससे क्या होता है इससे ओस डिक्रीजस द स्वप टाइम एंड द अमाउंट ऑफ फिजिकल मेमोरी नीडेड ठीक है तो स्वप टाइम हम डिक्रीज कर पाते हैं कि जितने नीडेड है उतने ही बेसिकली लोड करने हैं जितने नीडेड है उतने ही लोड करने हैं ठीक है अब इस काम को कैसे मैं करूंगा अब इस काम को मैं कैसे करूंगा कि एक्चुअली p1 प्रोसेस के कितने पेजेस जो हैं वो एक्चुअल रम के अंदर एलोकेटेड हैं और कितने पेजेस जो हैं वह स्वैप एरिया के अंदर एलोकेटेड है इस चीज को मैं कैसे डिस्टिंग्विश करूंगा इस चीज को डिस्टिंग्विश करने के लिए मैं वैलिड इनवैलिड बिट स्कीम का यूज़ करता हूं पेज टेबल के अंदर एक और एंट्री है जिसको मैं बोल रहा हूं वैलिड इनवैलिड बिट ठीक है जब वो वन होगी इसका मतलब आपका वैलिड है लीगल एड्रेस है लीगल एड्रेस मतलब वो एड्रेस वो लोकल लॉजिकल एडर स्पेस जो कि उसी प्रोसेस का है ठीक है याद करो आइसोलेशन मेमोरी प्रोटेक्शन राइट और इन मेमोरी है यानी कि एक्चुअल रम के अंदर एलोकेटेड है जब एक्चुअल रम के अंदर एलोकेटेड होगा तो मैं क्या बोलूंगा आपकी वैलिड बिट वन है जब वह एक्चुअल रम के अंदर नहीं एलोकेटेड होगा तो वैलिड बिट ज़ीरो होगी या फिर वह एक ऐसा पेज है इज नॉट वैलिड नॉट इन द लॉजिकल एटर स्पेस अब वैलिड इनवैलिड बिट ज़ीरो का मतलब है कि वह पर्टिकुलर पेज या तो उस पर्टिकुलर प्रोसेस से वैलिड नहीं है या फिर वह डिस्क के अंदर पड़ा हुआ है यानी स्वैप एरिया के अंदर पड़ा हुआ है ठीक है यानी कि अभी वोह मेमोरी में नहीं है वह स्वैप स्पेस में पड़ा हुआ है ठीक है अब देखो यह एक्चुअली वर्क कैसे करती है इसको समझते हैं ठीक है अब मान लो मेरे पास ये लॉजिकल मेमोरी है लॉजिकल एटर स्पेस है इसके अंदर मेरा ए बी सीडी ए से लेके h तक एट मेरे पर्टिकुलर पेजेस है ठीक है एट पेजेस है तो अब मैं क्या करूंगा अब इसमें देखो यह जो पेज टेबल आपको दिख रहा है इस पेज टेबल के अंदर मुझे क्या दिख रहा है कि जो जीरो पेज है जीरो पेज है वो फोर्थ फ्रेम के अंदर है तो जीरो पेज पे ए है तो ए यहां पर मेरा एलोकेटेड है राइट और इसकी वैलिड बिट वैलिड इनवैलिड बिट की एंट्री क्या है वन इसकी वैलिड इनवैलिड बिट की एंट्री वन क्यों है क्योंकि ये एक्चुअली रम के अंदर एलोकेटेड है दिस इज एक्चुअली इन द रम ठीक है सिमिलरली जो ये पर्टिकुलर वैलिड बिट है यानी कि ये भी एक्चुअली रम के अंदर होगा ये भी एक्चुअली रम के अंदर है सिमिलरली आपका जो एफ फ्रेम है एफ फ्रेम जो है ये भी रम के अंदर नाइंथ फ्रेम के अंदर अवेलेबल है ठीक है तो जो जो एक्चुअली रम के अंदर एलोकेटेड है उसको मैं वन पास कर दे रहा हूं यानी कि वन बट वन है और जो जो नहीं है उनके लिए जीरो ठीक है फर्स्ट फ्रेम जो है ये पर्टिकुलर फर्स्ट फ्रेम जो है यह नहीं है तो इसलिए ज़ीरो लिखा हुआ है तो यह b कहां पर है b आपका स्वैप एरिया में पड़ा हुआ है ठीक है सिमिलरली c कहां पे है c सी तो आपका बेसिक रैम के अंदर ही है d कहां पे है डी आपका स्वैप एरिया में पड़ा हुआ है तो आप देख रहे हो किस तरीके से मैंने एक अरेंजमेंट बनाई हुई है ठीक है स्वैप एरिया को मिलाके फिजिकल मेमोरी को मिला के और पेज टेबल को मिला के किस तरीके से मैं यह मैनेज कर रहा हूं सिस्टम मेरा यह मैनेज कर रहा है यह पता लगा रहा है कि पर्टिकुलर पेज जो है वह एक्चुअली फिजिकल मेमोरी में है या स्वैप एरिया में है और यह वैलिड इनवैलिड बिट का क्या काम है इसका बहुत ही इंपॉर्टेंट काम है जब भी पेज फेज फॉल्ड अकर होगा जब भी पेज फॉल्ड अकर होगा तो वो पेज टेबल के अंदर जाकर देखेगा कि क्या उसकी वैलिड इनवैलिड बिट जीरो है अगर जीरो है तो वो स्वैप एरिया के अंदर पड़ा होगा तो स्वैप एरिया के अंदर होगा तो मुझे स्वैप इन करना है स्वैप इन करेगा तो क्या करेगा इसको फिर इसके अंदर एंट्री डाल देगा जस्ट इमेजिन मुझे ई पेज चाहिए था ई पेज चाहिए था तो ई तो स्वप एरिया के अंदर है जब वो ई को चेक करने जाएगा इस फोर्थ को यहां पे चेक करने जाएगा तो क्या देखेगा यहां पे जीरो लिखा हुआ है जीरो लिखा हुआ है तो क्या करेगा को उठाएगा स्वप एरिया से उठाने के बाद यहां पर एलोकेट कर देगा मान लो 14 के अंदर ई को एलोकेट कर दिया ई को एलोकेट करने के बाद वो क्या करेगा पेज टेबल के अंदर फोर्थ पेज की एंट्री को बोल देगा कि इसको 14 फ्रेम मिल चुका है और इसकी जो यह वैलिड इनवैलिड बीट है इसको वन कर दो ठीक है तो इस तरीके से वर्क करेंगी सारी चीजें बहुत ही बढ़िया अब देखते हैं आगे तो हम देखते हैं कि व्हाट हैपेंस इफ प्रोसेस ट्राई टू एक्सेस पेज दैट वाज नॉट ब्रॉट इन टू मेमोरी यानी कि वही जो हमने अभी देखा कि मान लो वो ई पेज को एक्सेस करने की कोशिश कर रहा है जो कि मेमोरी के अंदर नहीं है तो इस केस में कैसे चीजें वर्क करेंगी अगर ऐसा नहीं होता तो इस केस को मैं क्या बोलता हूं पेज फॉल्ट यानी कि वो पर्टिकुलर पेज आपका रम के अंदर नहीं है तो पेज फॉल्ट अकर होता है और पेज फॉल्ट की कैसे वर्किंग पूरी कंप्लीट होती है इसको समझते हैं एक बार ठीक है कैसे बेसिकली ओस जो है पेज फोल्ड को जनरेट करता है कैसे हैंडल करता है कैसे पर्टिकुलर एक पेज जो है वो स्वैप एरिया से फिजिकल मेमोरी में लाया जाता है इसको एक देखते हैं तो यह हमारा डायग्राम है इस तरीके चीजें वर्क करती है लेट्स सी ये क्या यह आपका लॉजिकल टर स्पेस है ठीक है लॉजिकल टर स्पेस में मान लो सीपीयू काम कर रहा है सीपीय लॉजिक एड्रेस जनरेट करता है एड्रेस पे जनरेट करते करते उसने एक ऐसा एड्रेस जनरेट किया जो कि वह वाला पेज है वह पेज स्वप एरिया के अंदर पड़ा हुआ है स्वप स्पेस के अंदर पड़ा हुआ है वह फिजिकल मेमोरी वोह पर्टिकुलर पेज नहीं है यानी कि सीपीयू ने ऐसी इंस्ट्रक्शन एग्जीक्यूट करी ऐसा एड्रेस जनरेट किया वो एड्रेस फ्रेम के अंदर है ही नहीं यानी कि आपका फिजिकल मेमोरी में वो पर्टिकुलर पेज है ही नहीं उसके करेस्पॉन्डिंग्ली प्रोसेस थ्रोज एक्सेप्शन अगर रेफरेंस इनवैलिड है इनवैलिड का मतलब बेसिकली ऐसा एड्रेस जनरेट हो गया जो कि उस प्रोसेस का था ही नहीं ठीक है ऐसा हो सकता है हमने देखा ऐसा एड्रेस जल् प्रोग्राम ने इतना प्लस कर दिया इतना एड्रेस चला गया कि वो दूसरी प्रोसेस का बेसिकली एड्रेस है ऐसा हुआ तो हम क्या करेंगे पहले ही एक ट्रैप जनरेट कर देंगे ठीक है पहले एक ट्रैप जनरेट कर देंगे ठीक है बट ऐसा नहीं है हम एज्यूम करते हैं कि उसने एक वैलिड एड्रेस जनरेट किया है एक ऐसे फ्रेम का एम पेज का एक ऐसा एड्रेस जनरेट किया है ठीक है जो कि आपका स्वप एरिया में पड़ा है यहां पर ए पड़ा हुआ है मान लो तो अब कैसे होगा सबसे पहले रेफरेंस करेगा वो पेज टेबल में जाकर देखेगा पेज टेबल में जाकर देखेगा कि एम पेज के करेस्पॉन्डिंग्ली लिड बिट क्या है स्टार्टिंग में वो जीरो है जीरो है इसका मतलब क्या है कि यह पर्टिकुलर पेज जो है फ्रेम में लोडेड नहीं है ठीक है और कहां पर होगा यह पेज स्वप एरिया में होगा तो एक ट्रैप जनरेट होगा सेकंड स्टेप ट्रैप जनरेट होगा तो ओस को एक ट्रैप जाएगा एक एक्सेप्शन थ्रू होगी ओस क्या करेगा ओस देखेगा पहले चेकिंग क्या करेगा कि आपका जो एड्रेस है वो वैलिड है कि नहीं एड्रेस वैलिड है कि नहीं एड्रेस तो वैलिड है दूसरा क्या करेगा वो देखेगा कि पे ऑन बैकिंग स्टोरेज वो बोलेगा कि भाई जो आपका पर्टिकुलर पेज है वो बैकिंग स्टोरेज के अंदर तो हमारा तीसरा स्टेप क्या होगा तीसरा स्टेप होगा वो बैकिंग स्टोर में जाकर इसको लोकेट करेगा लोकेट कैसे करेगा लोकेट करने के लिए स्केड्यूल अ डिस्क ऑपरेशन टू रीड द डिजायर्ड पेज इनटू द न्यूली एलोकेटेड फ्रेम यानी कि जब य लोकेट करेगा इसको कि हां भाई यह स्वैप एरिया में है तो चौथे स्टेप में व क्या करेगा सबसे पहले वो एक फ्री फ्रेम ढूंढेगा ठीक है जब यहां पर लोकेट करेगा उसी बीच में एक फ्री फ्रेम को ढूंढेगा फ्री फ्रेम ढूंढने के लिए क्या करेगा फ्री फ्रेम की लिस्ट होगी ठीक है यहां पर जैसे कि लिखा भी हुआ है हमने कि वी फाइंड अ फ्री फ्रेम फ्रॉम फ्री फ्रेम लिस्ट ठीक है फ्री फ्रेम लोकेट कर लिया मैंने फ्री फ्रेम मैंने यहां पे लोकेट कर लिया फ्री फ्रेम अवेलेबल है तो अब क्या होगा अब वो क्या करेगा एम पेज को फ्रेम एलोकेट कर देगा यहां पर एम एलोकेट हो जाएगा एलोकेट होने के बाद हम पेज टेबल की एंट्री को रिसेट कर देंगे यानी कि यहां पर मैं लिख दूंगा मान लो ये 01 2 सेकंड फ्रेम है तो सेकंड फ्रेम के अंदर आपका पर्टिकुलर जो यह एम पेज है यह आ चुका है यानी कि एम को जो कि एम पेज को जो कि स्वप एरिया में पढ़ा था तो स्वप एरिया से बाहर आ चुका है स्वप एरिया से बाहर आ चुका है उसको मैं फिजिकल मेमोरी में डाल चुका हूं और मैंने इस करेस्पॉन्डिंग्ली पेज टेबल भी अपडेट कर दिया अब जब मुझे मिल चुका है ये तो अब क्या होगा अब मैं जो पर्टिकुलर इंस्ट्रक्शन बेसिकली रीड करना चाह रहा था उसको इंस्ट्रक्शन को दोबारा से एग्जीक्यूट कर दूंगा अब पर्टिकुलर जो इंस्ट्रक्शन की वजह से ट्रैप जनरेट हुआ था जो इंस्ट्रक्शन की वजह से वो इसको को ये पता लगा था कि जो पर्टिकुलर पेज है वो आपका स्वैप एरिया में पड़ा हुआ है वो फिजिकल मेमोरी में नहीं है अब उस पर्टिकुलर इंस्ट्रक्शन को मैं दोबारा से रन कर दूंगा और पर्ट प्रोग्राम प्रोग्राम आपका एग्जीक्यूट होता रहेगा और ये सारी प्रोसेस ना ये सारी प्रोसेस जो ट्रैपिंग की है और स्वप स्वैप एरिया से पर्टिकुलर पेज को उठा के मुझे यहां पे लाना डिमांड पेजिंग जो मैं कर रहा हूं ये बैक में चलता रहता है तो यूजर को ये सब पता नहीं लगता यूजर को ऐसा कुछ पता नहीं लग रहा होता है बैठे-बैठे कि कौन सा पेज कहां पे पड़ा है कब लोड हुआ उसको तो लगता रहता है मेरा जो पर्टिकुलर प्रोग्राम है वो चले ही जा रहा है चला जा रहा उसको तो लग रहा है कि य सारा प्रोग्राम मेरा रम मेंही पड़ा हुआ था बट पीछे से कितनी सारी कहानी हो रही है ठीक है कहानी कितनी बड़ी कहानी हो रही है ठीक है पीछे से बहुत ही बढ़िया अब देख लेते हैं एक छोटी चीज है प्योर डिमांड पेजिंग क्या होता है प्योर डिमांड पेजिंग एक एक्सट्रीम केस है एक एक्सट्रीम केस है इसके अंदर हम क्या कर रहे हैं कि हम किसी भी पेज को ना मेमोरी के अंदर नहीं रखेंगे ठीक है यानी कि मान लो मेरे पास यह पर्टिकुलर रम है और यह मेरे पास यहां पर लॉजिकल लेटर स्पेस है किसका p1 प्रोसेस का तो मैं स्टार्टिंग में जब भी प्रोसेस को लेके आऊंगा ना प्रोसेस को मैं स्टार्टिंग में ही आपका स्वप एरिया में लेके आऊंगा जैसे ही रेडी स्टेट में हुई तो मैंने पहले क्या करा इसको स्वप एरिया में डाल दिया स्वप एरिया में डाल दिया स्वप एरिया में यानी कि p1 के सारे पेजेस ऑल पेजेस जो सारे पेजेस हैं ऑल पेजेस आपके स्वैप एरिया के अंदर पड़े हुए हैं स्टार्टिंग में ठीक है अब जैसे ही नीड आएगी जैसे ही सबसे पहले नीड आएगी यानी कि मेन एग्जीक्यूट होगा तो पेज फॉल्ट जनरेट होगा ठीक है पेज फॉल्ट जनरेट होगा पेज फॉल्ट जनरेट होगा पेज फॉल्ट जनरेट हो के बा वो पर्टिकुलर पेज जो कि नीडेड है उसको मैं लोकेट कर दूंगा और उसके बाद मान लो थोड़ा सा एग्जीक्यूट हुआ एकदम से उसे सेकंड पेज की जरूरत पड़ी तो एकदम से फिर से पेज फॉल्ट जनरेट होगा पेज फॉल्ट जनरेट होने के बाद सेकंड पेज जाएगा तो इस चीज को तो मैं बोलता हूं प्योर डिमांड पेजिंग ठीक है पढ़ भी लेते हैं इन एक्सट्रीम केसेस वी कैन स्टार्ट एग्जीक्यूटिंग अ प्रोसेस विद नो पेज इन मेमोरी व्हेन ओ सेट्स द इंस्ट्रक्शन पॉइंटर द फर्स्ट इंस्ट्रक्शन ऑफ द प्रोसेस व्हिच इज नॉट इन द मेमोरी द प्रोसेस इमीडिएट फॉल्स फॉर द पेज एंड पेज इज ब्रॉट इन टू द मेमोरी सेम बात जो मैं आपसे कही इसमें क्या कर रहे हैं हम नेवर ब्रिंग ए पेज इन टू मेमोरी अंट्स मैं डिमांड पेजिंग बोल रहा हूं प्योर डिमांड पेजिंग स्टार्टिंग में बट इससे ना एक प्रॉब्लम आती है प्योर डिमांड पेजिंग से इसमें क्या है कि मैं स्टार्टिंग में सब कुछ स्वैप एरिया में डाल रहा हूं कुछ भी एलोकेट नहीं कर रहा हूं तो इनिशियली है ना आपको बहुत सारे पेज फॉल्ट जनरेट होंगे जो पेज फॉल्ट जनरेट होते हैं ना तो जो स्वैप इन का टाइम होता है स्वैप इन और स्वाइप आउट का टाइम होता है डिस्क का एक्सेस रैम से स्लो होता है हम सबको पता है तो इसलिए जो स्वाइप इन स्वाइप आउट है ना एक ओवरहेड है और ये बहुत ज्यादा कॉस्टली प्रोसेस है ठीक है तो प्योर डिमांड पेजिंग इस तरीके से थोड़ी सी बेकार है तो प्योर डिमांड पेजिंग ना करके मैं क्या करता हूं लोकैलिटी ऑफ रेफरेंस का यूज करता हूं लोकैलिटी ऑफ रेफरेंस का यूज करता हूं इसका मतलब क्या है वो वाले पेजेस जो कि पेजर को लग रहा है कि ये नीड होंगी जिनकी यानी कि मैं सिर्फ मेन फंक्शन को नहीं लाऊंगा मेन के अंदर हो सकता है तीन-चार फंक्शन और लिखे हो तो उनके कॉरेस्पोंडेंस तो ये एक इसकी भी एक एल्गोरिथम होगी पीछे जो स किस तरीके से डिसाइड करता है इसको लोकैलिटी ऑफ रेफरेंस की एल्गोरिथम बोलते हैं ठीक है तो लोकैलिटी ऑफ का यूज करकर मैं रीजनेबल परफॉर्मेंस भी ब्रिंग आउट कर सकता हूं डिमांड पेजिंग से कैसे मैं ये वाली प्योर डिमांड पेजिंग यूज नहीं करूंगा मैं क्या करूंगा लोकैलिटी रेफरेंस का यूज करूंगा और कुछ-कुछ रिलेटेड पेजेस को मैं लोड कर लूंगा ठीक है तो इससे क्या होगा पेज फॉल्ट्स कम होंगे पेज फॉल्ट कम होंगे तो मैं रीजनेबल परफॉर्मेंस ला पाऊंगा ठीक है बहुत ही बढ़िया तो ये पूरा सिस्टम जो हमने पढ़ा डिमांड पेजिंग का वर्चुअल मेमोरी का ठीक है इसकी एडवांटेज क्या है एडवांटेज डिस्कस कर चुके हैं हम फिर से एक बार फॉर्मली रिपीट कर देता हूं पहला है आपका डियो मल्टी प्रोग्रामिंग बढ़ चुकी है डिग्री ऑफ मल्टी प्रोग्रामिंग कैसे बढी है दोबारा से याद दिला देते हैं आपकी 12kb की रैम थी ठीक है आप इनिशियली पहले क्या कर पा रहे थे p1 प2 यही दो प्रोसेस को एलोकेट कर पा रहे थे ठीक है क्योंकि 6 प् 5 अगर पूरे पूरे सारे पेजेस लोड करता हूं तो 11 के भी तो 11 के भी तो ये टोटल रम के ले ही जाएंगे तो 1 के भी बचेगा अगर 1 के भी बचा है तो मैं p3 को कैसे लोड करूंगा p3 को कैसे लोड लोड करूंगा ठीक है तो मैं क्या करता हूं कुछ-कुछ पर्टिकुलर पेजेस को ही लोड करता हूं बाकी सारे पेजेस जो है मैं वो स्वैप एरिया में डाल देता हूं ठीक है इस पूरे कांसेप्ट को रम और स्वैप एरिया को मिला के मैं इसको वर्चुअल मेमोरी बोल रहा था वर्चुअल मेमोरी किस टर्म में है ये यूजर पर्सपेक्टिव से वर्चुअल मेमोरी है यूजर को लग रहा है कि मेमोरी 12kb की नहीं है मेमोरी बहुत बड़ी है ठीक है यह हो गया इस तरीके से मैं डिग्री में मल्टीप में बढ़ा पा रहा हूं यूजर कैन रन लार्ज एप्स विद लेस रियल मेमोरी ठीक है ये हमने देखा लार्ज ए बेसिकली मान लो एक 19 केब की एक सिंगल प्रोसेस होती सिंगल प्रोसेस होती तो मैं 12kb में रन कर पाता नहीं कर पाता ठीक है बट मैं वर्चुअल मेमोरी के कांसेप्ट से मैं क्या कर पा रहा हूं मैं कुछ ही पेजेस कुछ ही जो नीडेड पेजेस है नीडेड पेजेस है मान लो 1kb का पहला पेज 1 केब का दूसरा पेज दो ही पेजेस बेसिकली इन 19 केब में जरूरत थी मैं दो के दो ही पेजेस को लोड कर दूंगा ठीक है बाकी बचे 17 पेजेस जो है वोह मैं यहां पर डाल दूंगा ठीक है तो इससे मैं क्या कर पा रहा हूं जो रम के साइज से बड़ी प्रोसेसस भी है उनको भी मैं चला पा रहा हूं बहुत ही बढ़िया इसकी डिस क्या है डिसएडवांटेज तो एक यही है कि द सिस्टम कैन बिकम स्लोअर एस स्वाइपिंग टेक्स टाइम ठीक है तो सबसे बेस्ट काम जो होता है ना सबसे बेस्ट तो यही होता है अगर आपको डिग्री ऑफ मल्टीप बहुत ज्यादा हाई करनी है तो आप ज्यादा से ज्यादा रम ही लो समझ रहे हो आप पैसे खर्च करो महंगी रम रम को अपग्रेड करो आजकल जो मैं देख रहा हूं य कि आप रम को अपग्रेड करो रम बढ़ाओ ठीक है बट क्योंकि सब इतने एक्सपेंसिव रम का स्टोरेज इन सबको अफोर्ड नहीं कर सकते तो उस केस में यह हमारा जो ओस है इतनी बढ़िया टेक्निक प्रोवाइड करता है वर्चुअल मेमोरी की उस टेक्निक से क्या होता है नीडेड पेजेस को मैं डालता हूं इससे मैं नीडेड पेजेस को मैं डालता हूं बाकी सबको स्वैप एरिया में रखता हूं बट इससे प्रॉब्लम क्या आती है प्रॉब्लम यह आती है कि मान लो मैंने बहुत सारे प्रोग्राम्स डाल दिए बहुत सारे प्रोग्राम स्वप एरिया में पड़े हुए हैं तो बार-बार स्वाइप इन स्वाइप आउट जब होगा ना बहुत सारे प्रोग्राम में रन कर रहे हैं तब भी आपको थोड़ा लैग में महसूस होगा ठीक है आपकी जो आप मल्टीटास्किंग कर रहे हो उसमें आपको लैग महसूस होगा कि बहुत सारे पेजेस जब लोड हो रहे होंगे तो सिस्टम तो क्या चाहता है सिस्टम चाहता है कि प्रोग्रामर जो या यूजर जो सामने बैठा है उसको तो ऐसे लगे सीमलेसली काम हो रहा है बट क्योंकि डिस्क की स्पीड स्लो होती है तो थोड़ा सा लैग आपको महसूस वहां पे होगा तो य ये बोल रहा है कि सिस्टम कैन बिकम स्लोअर ए स्पिंग टेटेक्स टाइम ठीक है दूसरा जो ये काफी इंपॉर्टेंट डिसएडवांटेज है उसको मैं बोलता हूं थ्रेशिंग थ्रेशिंग भी हो सकती है इस केस में यार थ्रेशिंग क्या है ठीक है इस चीज को मैं नेक्स्ट वीडियो के लिए छोड़ता हूं नेक्स्ट वीडियो में हम थ्रेशिंग के बारे में डिस्कस करेंगे ठीक है ऑलरेडी ये वीडियो काफी लंबी हो चुकी है आई होप आपको एक कांसेप्ट काफी बढ़िया से समझ आया होगा अगर नहीं समझ आया है तो एक बार दोबारा से वीडियो को रिपीट करके देखना ठीक है पूरी कोशिश करिए मोस्ट ऑफ द इंफॉर्मेशन आपको इसके अंदर हो आपसे इंटरव्यू पूछे पेज फॉल्ट क्या होता है ठीक है पेज रिप्लेसमेंट एल्गोरिथम कहां जरूरी होती है पेज रिप्लेसमेंट एल्गोरिथम कौन-कौन सी होती है ये हम नेक्स्ट वीडियो में डिस्कस करेंगे बट कहां जरूरी होती है ये हमें पता लग गया लेजी स्वैपर क्या होता है ठीक है यहां पर स्वैपर टर्म यूज करेंगे कि नहीं यहां पर पेजर टर्म यूज करेंगे ठीक है डिमांड पेजिंग कैसे वर्क करती है ठीक है कैसे हम वैलिड इनवैलिड बिट की एक एंट्री डाल दी हमने पेज टेबल के अंदर ठीक है नया कॉलम ऐड किया बहुत ही बढ़िया और किस तरीके से पेज फॉल्ट होता है पेज फॉल्ट कैसे हैंडल होता है कैसे मैं एक पर्टिकुलर पेज जो कि स्वप एरिया के अंदर है वो मैं अ फिजिकल मेमोरी में लेके आता हूं और कैसे रिसेट करता हूं मैं पेज टेबल को प्योर डिमांड पेजिंग क्या होता है लोकैलिटी और रेफरेंस क्या होता है ज हमने डिस्कस किया आई होप आपको वीडियो पसंद आई होगी कमेंट्स में लिख के जाओ वर्चुअल मेमोरी समझ आई कि नहीं आई ठीक है मिलते हैं किसी नेक्स्ट लेक्चर में गुड बाय तबतक के लिए हेलो जी कैसे स लक्ष तो हम आ चुके हैं हमारे ओ के लेक्चर नंबर 29 पर और आज हम डिस्कस करने वाले हैं पेज रिप्लेसमेंट एल्गोरिदम के बारे में ठीक है आज हम डिस्कस करेंगे पेज रिप्लेसमेंट एल्गोरिदम के बारे में वीडियो को शुरू करने से पहले मैं आपसे रिक्वेस्ट करना चाहूंगा आपको डि डिशन में एक ईमेल आईडी मिलेगी ठीक है आपको क्या करना है 1 मिनट की वीडियो शूट करनी है छोटा शॉर्ट शूट करना है उसमें आपको क्या करना है उसमें आपको रिकॉर्ड करना है टेस्टिमोनियल कि आपको यह ओस का हमारा कोर्स कैसा लगा ओस का प्लेसमेंट सेंट्रिक कोर्स आपको कैसा लगा समझ आया कि नहीं जो भी आपका नेस फीडबैक होगा आप उस वीडियो में शूट करो शूट करके इस ईमेल आईडी पे मेल कर दो और हम क्या करेंगे उसमें से कुछ टेस्टिमोनियल्स वीडियोस हम अपने हैंडल्स पर उनको फीचर करेंगे ठीक है तो इसको कर देना यार ठीक है ये हम क्यों करा रहे हैं क्योंकि यह कोर्स बस दो या चार वीडियोस में खत्म होने वाला है ठीक है उसके बाद किसी और कोर्स में मिलेंगे आपसे हम ठीक है तो अब से आपको वीडियो में एक ईमेल आईडी मिलेगी आपको जाकर एक मिनट की वीडियो शूट करनी है और हमें फीडबैक देना है ठीक है डन करते हैं तो चलिए वीडियो को और आगे बढ़ाने से पहले एक बार शाउट आउट देते हैं हमारे स्पनर को तो चलिए कंटिन्यू करते हैं तो या पेज रिप्लेसमेंट एल्गोरिदम के बारे में पढ़ने से पहले हमें पता होना चाहिए पेज फॉल्ट क्या होता है ठीक है पेज फॉल्ट क्या होता है पेज फॉल्ट क्या होता है इसके बारे में डिस्कस हम कर चुके हैं लास्ट वीडियो में हमारे पास रम होती है ठीक है रम के अंदर बहुत सारे फ्रेम्स होते हैं फ्रेम्स के अंदर प्रोसेसेस पड़ी हुई है यानी कि प्रोसेसेस के पेजेस पड़े हुए हैं ठीक है मान लो ये p2 के पेज है ये p3 के पेज हैं ठीक है ऐसे बहुत सारे पेजेस पढ़े हुए हैंस तो यानी कि डिग्री ऑफ मल्टी प्रोग्रामिंग हाई रखने के लिए मैं क्या करता हूं एक प्रोसेस को मल्टीपल पेजेस में डिवाइड करता हूं उसके कुछ पेज जो कि इंपॉर्टेंट है उनको लोड कर लेता हूं और ऐसे ही मैं सारी प्रोसेसेस के साथ करता हूं तो इन इस केस में सारी पूरी रम जो मेरी है वोह फीड है रम मेरी फीड है तीन प्रोसेसस है इसके अंदर ठीक है बट ऐसा पॉसिबल है कि एकदम जब आपका कोड चल रहा है यानी कि जब आपका कोड रन हो रहा है तो उस केस में इस पर्टिकुलर पेज में कुछ ऐसे इंस्ट्रक्शन लिखी हो कि मुझे अब पेज नंबर थ्री पर जाना है बेसिकली पीव प्रोसेस की पेज थ्री पर जाना है बट पेज थ्री कहां पर पड़ा होगा ये हमने लास्ट वीडियो में डिस्कस किया था यह पेज थ्री मेरा स्वैप एरिया में पढ़ा होगा राइट तो मुझे क्या करना पड़ेगा p1 के करेस्पॉन्डिंग्ली पड़ाओ ठीक है जो कि इस केस में नहीं है अगर कोई रम का फ्रेम खाली होगा तो मैं क्या करूंगा वो जो नया पेज आएगा यानी कि p1 का पेज थ आएगा मैं उस खाली जगह पे डाल दूंगा खाली फ्रेम पे एलोकेट कर दूंगा बट इस केस में हम देख पा रहे हैं कि हमारे पास सारे फ्रेम्स जो हैं फिल्ड हैं तो उस मुझे क्या करना पड़ेगा मुझे एक ऐसा फ्रेम सर्च करना पड़ेगा ठीक है जिसको मैं डी एलोकेट कर पाऊं जिसको मैं डी एलोकेट कर सकूं यानी कि मुझे कोई किसी प2 प्रोसेस का या पी3 प्रोसेस का कोई फ्रेम या पव प्रोसेस का कोई फ्रेम मुझे यहां सर स्वप आउट करना पड़ेगा तभी नया पेज स्वप इन होगा ठीक है यह हमें समझ आता है तो यह जो पूरा प्रोसीजर है इस प्रोसीजर को कि जब भी आपका ओस यह एनकाउंटर करता है कि बेसिकली मुझे एक नया पेज चाहिए न्यू पेज चाहिए क्योंकि वो पेज मेरा रम में अभी नहीं है वो स्वैप एरिया में है इस प्रोसेस को मैं क्या बोलता हूं इस प्रोसेस को करने के लिए सीपीयू जो है बेसिकली ओस बेसिकली इस केस में ओस जो है पेज फॉल्ट जनरेट करता है पेज फॉल्ट बेसिकली कुछ नहीं है एक इंटरप्ट है पेज फॉल्ट जनरेट करता है कि हां भाई ये पर्टिकुलर पेज जो है रम के अंदर तो अवेलेबल है नहीं वो स्वैप एरिया में अवेलेबल है तो स्वैप एरिया से मुझे रम के अंदर लाना पड़ेगा ठीक है और जो करंट कोई पर्टिकुलर पेज है वो मुझे स्वप आउट करना पड़ेगा तो ये चीज मुझे करनी पड़ती है किसी भी पेज फोल्ड को सर्विस करने के लिए ठीक है और जो यह पूरा प्रोसेस होता है ना मान लो यह स्वप एरिया आपका और कोई एक पेज यहां से स्वप आउट होगा यहां से कोई स्वैप इन होगा इस पूरे के अंदर ना आपका टाइम ज्यादा लगता है ठीक है इसको मैं ओवरहेड भी बोलता हूं एक ओवरहेड होता है इस और जितना टाइम लगता है ना इस केस में उसको मैं बोलता हूं पेज फॉल्ट सर्विस टाइम ठीक है पेज फॉल्ट सर्विस टाइम बहुत ही बढ़िया तो अब अभी हमने देखा कि हमें चूज करना है कि कौन सा पर्टिकुलर पेज अभी जो एलोकेटेड पहले से ही है रम के अंदर मुझे स्वप आउट करना है तो यह ढूंढने के लिए मेरे पास एल्गोरिथम्स होती हैं जिसको मैं बोलता हूं पेज रिप्लेसमेंट एल्गोरिथम कि भाई रम के अंदर से कौन सा पेज रिप्लेस करना है क्योंकि नया पेज तो मुझे एट एनी कॉस्ट लेके आना ही है रम के अंदर ठीक है तो कौन सा पेज मैं लोकेट करूं यहां से इसको ढूंढने के लिए हम पेज रिप्लेसमेंट एल्गोरिथम का यूज करते हैं ठीक है तो सबसे पहले एल्गोरिथम देखते हैं बहुत ही सिंपल एल्गोरिदम है हमारी उसका नाम है फीफो फर्स्ट इन फर्स्ट आउट ठीक है इसके अंदर मैं क्या करता हूं सीधा नोट्स पे देख लेते हैं इसके अंदर हम क्या करते हैं एलोकेट फ्रेम टू पेज एज इट कम्स इन टू द मेमोरी बाय रिप्लेसिंग द ओल्डेस्ट पेज यानी कि मैं क्या करूंगा मैं ओल्डेस्ट पेज जो होगा उसे रिप्लेस कर दूंगा और जो भी नया आ रहा होगा लाइन बाय लाइन मैं उसे एलोकेट करता जाऊंगा ओल्डेस्ट को रिमूव करूंगा न्यू को ला दूंगा और बट इस केस में ये भी ध्यान रखना अगर कोई खाली फ्रेम है तो ओबवियसली खाली फ्रेम है तो खाली में तो मुझे एलोकेट करना ही है डायरेक्टली उसके इसमें किसी और पेज को मुझे बेसिकली फ्री करने की जरूरत नहीं है राइट तो इस यह चीज कैसे वर्क करती है इसका एग्जांपल देख लेते हैं एक रेफरेंस स्ट्रिंग रेफरेंस स्ट्रिंग में अजूम करता हूं व रेफरेंस स्ट्रिंग कैसी होगी तो हमने क्या एक रेफरेंस स्टिंग अजूम करिए ये रेफरेंस स्ट्रिंग क्या है रेफरेंस स्ट्रिंग बेसिकली कुछ नहीं है अजूम करो आपकी बहुत बड़ी सी रम है ठीक है बहुत बड़ी सी रम है उसके अंदर ये कुछ तीन ब्लॉक्स खाली है ठीक है ये तीन ब्लॉक्स है बेसिकली ये तीन ब्लॉक है टूथ ट थ्र ये तीन फ्रेम जो है खाली है ठीक है यही मानते हैं बाकी फ्रेम बेसिकली हाइपोथेटिकली मान लो कि वो भरे ही हुए हैं ठीक है तो इस केस में क्या होगा ये रेफरेंस टिंग है कि कौन-कौन से पेजेस आ रहे हैं ठीक है ये लाइन बाय लाइन आ रहे हैं लाइन बाय लाइन आ रहे हैं और आपको इनको सर्विस करना है ठीक है किस तरीके से बेसिकली एल्गोरिथम जो है एलोकेट करेगी ये देखना है तो इनिशियली देखो मान लो सेवन पेज आया ठीक है इनिशियली सेवंथ पेज आया ये मेरे पेज फ्रेम्स है इनिशियल सेवन पेज आया तो इनिशियली तो ये यहां पे नहीं होगा ठीक है तो इनिशियली क्या करा हमने सेवन पेज को डाल दिया और रिजूम कर ये एक ही बेसिकली प्रोसेस के पेजेस है ठीक है तो बहुत सिंपल रखते हैं समझने के लिए बस एल्गोरिथम वर्क कैसे करती है और आपका होमवर्क क्या होगा इसमें आपको जाना है एस इसको इनपुट मानना है ठीक है और कुछ एज्यूम करके इसको इंप्लीमेंट करना है ठीक है इसको इंप्लीमेंट करना है ये आपका होमवर्क होगा स्टार्टिंग में बोल दिया मैंने ठीक है तो सबसे पहले सेवन आया तो सेवन में क्या होगा फर्स्ट इन फर्स्ट आउट स्टार्टिंग में सेवन डाल दिया क्योंकि ये फ्रेम पर्टिकुलर खाली पड़ा था तो हमने सेवन को सीधा ही लोकेट कर दिया ठीक है फिर आया आपका रो जीरो भी हमने सीधा लोकेट कर दिया व वन भी सीधा लोकेट करते अब यहां से मेन कहानी शुरू हो गई देखो अब इस केस में ऑल फ्रेम्स आर फ्रेम्स आर फीड ठीक है सारे फ्रेम फील्ड है अब जब टू आएगा तो टू क्या करेगा हमने क्या पढ़ा था हमें क्या करना है हमें क्या करना है हमें रिप्लेस करना है ओल्डेस्ट पेज ठीक है ओल्डेस्ट पेज क्या होगा अब जब इस ये टू आया होगा तो ओल्डेस्ट पेज क्या था सबसे पहले सेवन इन हुआ था तो सेन इज ओल्ड स्पेस तो मैंने क्या करा यहां से सेवन को हटाया और टू यहां पर डाल दिया ठीक है जब जीरो आया तो जीरो तो यहां पे ऑलरेडी था जब थ्री आया थ्री के केस में क्या होगा अब सबसे ओल्डेस्ट कौन था है सेन के पास जीरो आया था तो अब जीरो ओल्डेस्ट था तो जीरो की जगह यहां पे थ्र डाल दिया हमने ठीक है अब जीरो आया जब दोबारा जीरो आया अब कौन सा ओल्डेस्ट था अब वन ओल्डेस्ट था तो वन की जगह हमने जीरो डाल दिया ठीक है अब जब फोर आया अब इस केस में टू ओल्डेस्ट था तो हमने क्या करा फोर डाल दिया टू की जगह तो ऐसे करते करते करते करते यह पूरे सीक्वेंस मैंने बना दिए ठीक है आप एक बार वीडियो को पॉज करके खुद से सारी सीक्वेंस बना के देखना ठीक है फिर मैच कर लेना ठीक है कि नहीं अब इसमें देखो कि जितनी बार भी मैं देख रहा हूं तो मैं बोल सकता हूं जब सबसे पहले सबसे पहले सेवन आया होगा और और बेसिकली ये पर्टिकुलर जो फ्रेम है ये पर्टिकुलर फ्रेम जो है जब सबसे पहले सेवन आया होगा ये पर्टिकुलर फ्रेम खाली होगा ठीक है एमटी होगा तो एमटी होगा तो सबसे पहला पेज फॉल्ट तो यहीं पर जनरेट हो गया होगा राइट सबसे पहला फेज फॉल्ट यहीं पे जनरेट हुआ होगा तो फेज फॉल्ट वन यहां जनरेट हुआ फिर जब जीरो आया तो सेकंड पेज फल्ट फिर जब वन आया तो थर्ड पेज फल्ट ठीक है जब टू आया तो फोर्थ पेज फल्ट ऐसे ही जीरो आया जब जीरो आया तो यहां पर कोई पेज फोल्ड नहीं है ठीक है जब थ्री आया तो फिफ्थ पेज फोल्ड ऐसे सिक्स सेवंथ एथ ना 10थ 11थ 12थ 13 14 15 तो आप यह ध्यान दो कि फीफो के अंदर मेरे पास 15 पेज फॉल्ट्स आए और जैसा कि अभी पहले हमने डिस्कस किया कि जब भी पेज फॉल्ट आता है तो मेरे को एक ओवरहेड लगता है जिसको मैं पेज फोल्ड सर्विस टाइम कहता हूं क्यों क्योंकि मुझे पर्टिकुलर पेज कहां से लेके आना है मुझे स्वप एरिया से ले क्या ना स्वप एरिया कहां पे होता है एक ऐसे जगह पर जहां जिसका एक्सेस टाइम बहुत ज्यादा है ठीक है यानी कि डिस्क से तो डिस्क से लेके आता हूं मैं डिस्क से लेके आता हूं सर्विस टाइम ज्यादा है तो जितने ज्यादा पेज फॉल्ट होंगे उतनी ही बेकार एल्गोरिथम होगी राइट तो ध्यान दो फीफो के अंदर 15 पेज फॉल्ट्स आ रहे हैं ठीक है 15 पेज फॉल्ट सर्व करने पड़ रहे हैं मुझे ठीक है तो हमारा एम क्या है हम चाहते हैं एक ऐसी एल्गोरिथम डेवलप करना ऐसी एल्गोरिथम इंप्लीमेंट करना जिसके अंदर पेज फोल्ड कम से कम हो क्योंकि पेज फोल्ड कम होंगे तो ओवरहेड कम होंगे ओवरहेड कम होंगे तो हमारी जो ये पूरा पेज फोल्ड सर्विस टाइ टाइम है वो कम होगा और पेज फॉल सर्विस टाइम कम होगा तो सब कुछ फास्ट होगा ठीक है हमारा तो एम ही शुरू से य रहा है हम सब कुछ फास्ट करना चाहते हैं बहुत ही बढ़िया तो पेज फोल्ड यहां पे 15 है इसको ध्यान रखेंगे अभी हम अब देखते हैं इस एल्गोरिथम के क्या प्रोज एंड कौंस है ठीक है सबसे पहले देखते हैं इजी टू इंप्लीमेंट है ठीक है सिंपल फीफो हमेशा से इजी टू इंप्लीमेंट रहा है राइट उसके अलावा परफॉर्मेंस इसमें नॉट ऑलवेज गुड यानी परफॉर्मेंस जो है इसमें वेरिएबल है कभी अच्छी भी होगी कभी बुरी भी होगी ठीक है वो क्यों क्योंकि ये क्या कर रहा है क्योंकि ये क्या कर रहा है बिना देखे को बिना देखे मान लो सिंपली यहां टू आया था तो उसने बिना देखे सेवन को रिप्लेस कर दिया राइट जैसे ही टू आया था इसने सेवन को रिप्लेस कर दिया ठीक है बट ऐसा हो सकता है ना सेवन एक ऐसा मॉड्यूल हो सेवन एक ऐसा मॉड्यूल हो जो कि इनिश इजेशन का मॉड्यूल हो और वो कभी फिर आगे यूज ही ना हो रहा हो यानी कि सेवन यहां पे कभी आए ना अब ध्यान से देखो सेवन इसके बाद कब आ रहा है सीधा सीधा यहां पर आ रहा है ठीक है इस केस में तो अच्छे एल्गोरिथम है कि भाई अब टू मैंने डाल दिया है अब सेवन क्योंकि कभी यूज नहीं होगा तो सेवन को एक्चुअली मैं हटा सकता था राइट क्योंकि यहां से यहां तक सेवन का कोई वजूद ही नहीं है तो सेवन में हटा सकता था यही हम यहां पे लिख रहे हैं द पेज रिप्लेस मे बी एन इनिला इजेशन मॉड्यूल दैट वाज यूज लॉन्ग टाइम अगो यानी कि बहुत टाइम पहले ऐसा पेज जो कि एक बार यूज हुआ स्टार्टिंग में उसके बाद कभी यूज ही नहीं हुआ तो एक अच्छा कैंडिडेट है वो टू बी रिप्लेस राइट टू बी रिप्लेस करने का एक अच्छा कैंडिडेट है रीजन बीइंग वो पेज स्टार्टिंग में यूज हुआ है उसके बाद कभी यूज ही नहीं होगा आगे तो उसको मैं रैम में रख के क्या करूंगा ठीक है बहुत ही बढ़िया बट ऐसा भी हो सकता है कि जो ये सेवंथ पेज जो मैंने रिप्लेस किया है वो थोड़ी देर बाद ही थोड़ी देर बाद ही इस पोजीशन पर आ जाए यानी कि जैसे आपने मान लो टू को रिप्लेस किया था तभी नेक्स्ट सेवन लिखा होता ठीक है ये स्ट्रिंग तो आपको दिख रही है कि ऐसी आ रही है बट एक्चुअली जब रियल टाइम में चीजें चल रही होंगी तो आपको पता थोड़ना है कि कौन सा पेज आएगा कौन सा पेज फॉल्ड मारेगा बहुत सारी प्रोसेस चल रही है कोई भी पेज वो बेसिकली एक्सेस करने के लिए रिक्वेस्ट कर सकता है ओ को ठीक है तो अगर टू के बाद इधर सेवन लिखा होता ठीक है इधर अगर सेन लिखा होता तो मैं क्या करता इसके केस में मैं वापस से जीरो को रिप्लेस कर देता यानी कि मैंने एक स्टेप पहले ही सेवन को हटाया था यहां से तो इससे बेटर होता ना कि मैं सेवन को हटाता ही नहीं ठीक है नहीं हटाता तो सेवन पड़ा ही रहता तो पेज जनरेट ही नहीं होता है एक पेज फोल्ड बचा लेता मैं तो इस एल्गोरिथम में कु जता पता नहीं है कि किस तरीके से काम होगा ठीक है तो सेकंड पॉइंट हमारा यही है द पेज मे कंटेन ए हैवी यूज वेरिएबल दैट वाज इनिश इज अर्ली एंड इज इन कांस्टेंट यूज अगर कोई ऐसा पेज है जो बार-बार यूज में आया जा रहा है बार-बार यूज में आया जा रहा है तो उसको हटाना नहीं चाहिए हमें बट फीफो एल्गोरिथम ऐसा कुछ नहीं कंसीडर करती ठीक है जैसे हमने सेवन के एग्जांपल से देख लिया यहां पे तो इसका मतलब परफॉर्मेंस वेरिएबल है कुछ नहीं पता कभी अच्छी भी हो जाए डिपेंड करता है कैसे बेसिकली रेफरेंस स्ट्रिंग मेरी आ रही है रेफरेंस स्ट्रिंग जैसे जिस तरीके से आ रही है हो सकता है अच्छी परफॉर्मेंस हो भी ना भी हो तो कोई गारंटी नहीं है ठीक है अब इसमें ना एक प्रॉब्लम होती है उसका नाम बोलते हैं उसको हम बोलते हैं बैलेडी एनम अब लिडीज एनम है क्या यह है बेसिकली जब भी आप अगर ध्यान से देखो अभ यहां पर मेरे पास तीन फ्रेम्स थे तीन फ्रेम्स थे इमेजिन करो मैं फ्रेम्स के काउंट बढ़ा दूं अगर फ्रेम के काउंट बढ़ा दूं अगर तीन की जगह यहां पर मेरे पास फाइव फ्रेम्स होते फाइव फ्रेम्स होते तो नॉर्मल एल्गोरिथम में होना क्या चाहिए अगर फ्रेम्स बढ़ते जा रहे हैं तो आपकी पेज फॉल्ट्स भी घटते चले जाएंगे ठीक है क्योंकि उतने कम पेज फल्ट होंगे ठीक है क्योंकि ज्यादा से ज्यादा मैं पेजेस को अकोमोडेट्स है नंबर ऑफ फ्रेम्स है और यहां पे नंबर ऑफ पेज फॉल्ट्स y एक्सिस पे एक्स एक्सिस पे तो कुछ इस तरीके से ग्राफ होता है क्यों जैसे-जैसे नंबर ऑफ फ्रेम्स नंबर ऑफ फ्रेम्स बढ़ेंगे तो पेज फॉल्ट्स कम होते चले जाएंगे ठीक है ऐसा होता है नॉर्मली बट एफसीएफएस में यह बैलेडी बैलेडी साहब ने क्या ढूंढा कि इसके अंदर हमेशा ऐसा नहीं होता ठीक है इसके अंदर हमेशा से ऐसा नहीं होता इसके अंदर बीच में ना कई बार नंबर ऑफ फ्रेम जब बढ़ भी रहे होते हैं तो पेज फॉल्ट्स बढ़ जाते हैं ठीक है इसका एक एग्जांपल देखते हैं जल्दी से बनाता हूं मैं ठीक है फो में ही होता है यह अब इसका ग्राफ देखो कैसा होता है अब मान लो मैं एक रेफरेंस स्ट्रिंग है मेरे पास अब अब यह भी ध्यान देना यह हमेशा नहीं होता एफसीएफएस में भी यह हमेशा नहीं होता कुछ रेफरेंस स्ट्रिंग्स में ऐसा हो जाता है यानी कि कभी-कभी ऐसा होता है वह कभी-कभी एक एग्जांपल देख रहे हैं एक रेफरेंस स्ट्रिंग है मान लो मेरी 1 2 3 4 1 2 5 1 2 3 4 5 ठीक है अब इसके केस में कैसा ग्राफ बनता है वो देखते हैं यहां पर ध्यान से देखो हमारे पास ये रेफरेंस टंग है ठीक है अब बैठ के अभी हमने सारे ये अगर ड्र करें और हम पेज फोल्ड्स निकाले पेज फॉल्ट्स अगर फाइंड करें इस रेफरेंस स्ट्रिंग के लिए इस रेफरेंस स्ट्रिंग के लिए तो जब मैं नंबर ऑफ फ्रेम्स टू रखूंगा एमटी फ्रेम्स टू रखूंगा ठीक है तो उस केस में मेरे पास 12 12 बेसिक बेसिक बिकली पेज फॉल्ट्स आते हैं 12 पेज फॉल्ट्स आते हैं ठीक है तो यानी कि टू के केस में 12 आ रहे हैं थ्री के केस में देखो आपके नाइन आ रहे हैं ठीक है लिख लेते हैं टू के केस में आपके 12 आ रहे हैं थ्री के केस में आपके नाइन आ रहे हैं और फोर के केस में देखो एकदम से बढ़ गए 10 हो गए और फाइव के केस में आपके फ आए सिक्स के केस में भी फ आए तो अब ध्यान से देख रहे हो इसी को हमारे जो बैलेडी साहब है वो बोल रहे हैं कि नॉर्मली होना ऐसा चाहिए ऐसा होना चाहिए कि नंबर ऑफ फ्रेम्स जब बढ़ते जाए तो पेज फॉल्ट्स कम होते जाए बट हो क्या रहा है हो यह रहा है कि नंबर ऑफ फ्रेम्स बढ़ रहे हैं बट बीच में आपको एक ऐसा इरेगुलेरिटी दिखाई दे रही है ठीक है आपका इधर से कम हुआ ठीक है जैसे ही इधर गया तो बढ़ गया अब एकदम ड्रास्ट्रिंग कली कम हो जाता तो इसी को मैं बोल रहा हूं इसी ग्राफ को मैं बोल रहा हूं कि य बेलोज एमले है जो कि मुझे फीफो के अंदर देखने को मिलती है ठीक है चलो अब नेक्स्ट एक बहुत ही बढ़िया एल्गोरिथम डिस्कस करते हैं इसको मैं बोलता हूं ऑप्टिमल पेज रिप्लेसमेंट अब यह ना सबसे बेस्ट एल्गोरिथम है सबसे बेस्ट और इसके अंदर जो पेज फॉल्ट्स भी होते हैं ना अब सबसे बेस्ट क्यों है क्योंकि इसके अंदर पेज फॉल्ट जो होते हैं मिनिमम होते हैं मिनिमम पॉसिबल मिनिमम एवर ठीक है इससे बेटर कोई एल्गोरिथम हो ही नहीं सकती यानी कि सबसे आइडियल एल्गोरिथम है ठीक है अब इतनी बड़ाई हो गई है इसकी सबसे आइडियल है बट प्रॉब्लम यह है कि यह ऑलमोस्ट इंपॉसिबल टू इंप्लीमेंट है इंपॉसिबल टू इंप्लीमेंट और ऐसा है क्यों वो देख लेते हैं इसके अंदर हम क्या करना चाह रहे हैं इसके अंदर करना चाह रहे हैं हम फाइंड इफ अ पेज दैट इज नेवर रेफरेंस इन द फ्यूचर ठीक है हम प सबसे पहले करेंगे कि ऐसा पेज ढूंढेंगे यानी कि कोई न्यू पेज आया जब न्यू पेज आया तो आपको क्या करना है आपको करना है कि ऑलरेडी कोई पेज है उसको रिमूव करना है और नए पेज को अमेट करना है तो या तो आप ढूंढो कि ऐसा पेज जो कि कभी रेफरेंस ही ना हो फ्यूचर के अंदर यानी कि इस केस में आपको फ्यूचर की स्ट्रिंग्स पता होनी चाहिए आपको फ्यूचर पता होना चाहिए तो इसलिए कह रहे हैं कि फाइंड इफ ए पेज दैट इज नेवर रेफरेंस इन द फ्यूचर यानी फ्यूचर में कभी रेफरेंस ही ना हुआ हो इफ ऐसा कोई पेज है तो उस पेज को उठाकर रिप्लेस कर दो ठीक है यानी कि ऐसा पेज ढूंढो जो कि फ्यूचर में कभी रेफरेंस ही ना हो अगर वो फ्यूचर में कभ रेफरेंस नहीं होगा तो इसका मतलब वो फालतू में रम में पड़ा है अगर वो फालतू में रम में पड़ा है तो उसको रिमूव कर दो बेस्ट ठीक है या फिर अगर कोई ऐसा पेज नहीं है तो एक ऐसा पेज ढूंढो जो कि रेफरेंस फारेस्ट इन द फ्यूचर यानी कि सबसे एंड में रेफर हो रहा होगा सबसे राइट मोस्ट पार्ट में रेफर हो रहा होगा ठीक है और ऐसे पेज को रिप्लेस करो थोड़ी सी कंफ्यूजन हो गई चलो एक एग्जांपल सॉल्व कर लेते हैं सेम एग्जांपल लेते हैं जो फिफा में लिया था और कंपेयर करते हैं इसमें कितने पेज फॉल्ट्स आते हैं ठीक है तो यह हमारी सेम रेफरेंस टंग है सेम रेफरेंस ठीक है अब इसमें देखते हैं कैसे वर्क कर रहे हैं हमें क्या करना है हमें एक ऐसा पेज ढूंढना है रिप्लेस करने के लिए जो कि फारेस्ट हो टू बी यूज्ड यानी कि सबसे लेट में यूज हो रहा हो ठीक है फ्यूचर में तो इस केस में ध्यान से देखो हमें फ्यूचर का पता होना चाहिए बट क्या प्रैक्टिकली ऐसा पॉसिबल है जब ओस चल रहा है प्रोग्राम्स बहुत सारे चल रहे हैं क्या मैं ऐसा बोल सकता हूं एगजैक्टली कौन सा पेज अब नहीं यूज होगा बहुत टाइम तक मैं ऐसा नहीं बोल सकता मैं प्रिडिक्ट नहीं कर सकता यह नहीं बोल सकता कि टू इस पोजीशन पर यूज हुआ था अब इस पोजीशन पर यूज होगा ये इंपॉसिबल है टू फिगर आउट ठीक है यह सिमिलर है आपका एसजेएफ की तरह ठीक है जो हमने स्केड्यूल अम पढ़ी थी उसके अंदर एसजेएफ पढ़ा था एसजेएफ में क्या था शॉर्टेस्ट जॉब फर्स्ट यानी कि जो सबसे जिसका स्मॉलेट बर्स टाइम होगा मैं उसको शेड्यूल कर दूंगा बट क्या मैं बर्स टाइम निकाल सकता हूं ऐसे आप हो सकता है प्रोग्रामर ने कोई ऐसी अ बेसिकली प्रोग्राम लिखा हो कि जो कि वाइल लूप में फस जाए व इनका इंफाइटिंग लगाने पड़ेंगे ठीक है तो सेम इस केस में भी है कि यह एक रेफरेंस के लिए एल्गोरिथम यूज़ होती है ठीक है यानी कि आइडियल एल्गोरिथम है ये ठीक है एक आइडियल एल्गोरिथम में और इसी को एज ए रेफरेंस मान के बाकी एल्गोरिथम्स को कंपेयर करते हैं तो इसके अंदर सबसे मिनिमम पॉसिबल पेज फॉल्ट मिलेंगे देखते हैं कैसे सबसे पहले सेवन उठाया तो सेवन तो पेज फोल्ड करेगा ही ठीक है सेवन तो पेज फोल्ड करेगा ही तो ये पेज फोल्ड वन हो गया उसके बाद जीरो आया दोबारा से ये भी पेज फोल्ड करेगा ठीक है उसके बाद वन आया ये भी पज फोल्ड करेगा थ्री लिखना था यहां पे ठीक है अब मेरे पास क्या आया है अब मेरे पास टू आया है ठीक है अब मेरे पास टू आया है तो टू आएगा तो अब मैं क्या करूंगा अब मैं ढूंढू कि ऐसा कौन सा पेज है जो कि एलोकेटेड है ऐसा कौन सा पेज है जो कि अब सबसे लेट में यूज होगा तो ध्यान से देखो जो मेरे पास सेवन है सेवन अब कहां पे यूज़ हो रहा है सबसे एंड में देख रहे हो थर्ड लास्ट पोजीशन पे सेवन यूज़ हो रहा है ठीक है तो अगर मैं इधर से चलूंगा तो मुझे दिखेगा कि जो सेवन है वो सबसे लेट में यूज़ हो रहा है क्योंकि मैं ध्यान से देखूं तो जीरो भी यूज़ हो रहा है ठीक है रो भी अभी यूज़ हो जा रहा है जीरो तो बहुत बार यूज़ हो रहा है वन है वन भी सिंपली यूज हो जाएगा यहां पे सेवन से तो पहले ही यूज होगा ठीक है तो सेवन है जो सबसे लेट में यूज़ हो रहा है तो सेवन क्योंकि लेट में यूज हो रहा है तो ऐसा मैं अजूम कर रहा हूं कि ऑप्टिमली ग्रीली मैं सेन को रिमूव कर सकता हूं क्योंकि सबसे लेट में यूज होगा लेट में यूज होगा तो अभी इसका रम में रहने का कोई फायदा नहीं है राइट तो इस केस में मैंने क्या करा सिंपली सेवन को रिप्लेस कर दिया सेवन को रिप्लेस करने के बाद थर्ड पेज फोल्ड यहां पर हुआ तो टू की जगह सॉरी सेन की जगह टू आ गया जब जीरो आया तो जीरो तो पहले से ऑलरेडी था ्र आया अब थ में मैं दोबारा देखूंगा जब थ्र आएगा तो थ के केस में मैं देखूंगा 0 और व ठीक है इन तीनों में से सबसे लेट में कौन सा यूज हो रहा है टू को देखें अगर मैं टू को देखें तो टू भी मेरा यूज हो रहा है और जीरो भी मेरा यहीं पर यूज हो रहा है सबसे लेट में यूज हो रहा है वन यहां पर तो मैंने क्या करा वन को रिमूव कर दिया ठीक है वन को रिमूव कर दिया वन की जगह थ्री डाल दिया तो ये मेरी सिचुएशन बन गई दोबारा जीरो रेफरेंस हुआ अब फोर की बारी आई जब फोर आया तो मैं देख रहा हूं 2 0 और 3 ठीक है 0 और 3 में सबसे लेट कौन सा यूज हो रहा है फोर के केस में देखें तो टू तो एकदम ही इसके बाद ही टू है ठीक है जीरो देखें तो जीरो भी यहां पे है थ्री देखें तो थ्री भी यहां तो सबसे लेट में अभी के हिसाब से जीरो यूज हो रहा है तो ऑप्टिमली मैं क्या करूंगा जीरो को यहां से रिमूव कर दूंगा और फोर डाल दूंगा तो यहां पर सिचुएशन मेरी 243 बन गई सिमिलरली करते करते करते करते मेरे यहां पर इस तरीके से सर्विस हो जाएगी इस तरीके से मेरा कुछ यहां पर पेज फॉल्ट्स आएंगे तो अगर मैं काउंट करूं तो मेरे पास कितने पेज फोल्ड्स बनेंगे 1 2 3 4 5 6 7 8 9 तो ओप आर के अंदर मेरे पास नाइन पेज फॉल्ट्स बन रहे हैं ठीक है नाइन पेज होड ये मिनिमम मिनिमम पॉसिबल है ठीक है ठीक है इसलिए मैं इसे बेस्ट एल्गोरिथम बोल रहा हूं हाइपोथेटिकल एल्गोरिथम है ठीक है बेस्ट एल्गोरिथम है इसको एज अ रेफरेंस यूज करते हैं हम तो ऑप्टिमल पेज रिप्लेसमेंट कोई आपसे पूछे कि क्या ये इंप्लीमेंट हो सकती है तो इंप्लीमेंट ये नहीं हो सकती अगर करेंगे भी तो हम क्या करेंगे हम थोड़ा ह्यूरिस्टिक अप्लाई करेंगे रिस्टस क्या होता है बेसिकली कुछ ऐसी तुक्के टाइप मार दिए हमने कि खुद से ह्यूरिस्टिक लिखी हुई है कि सेवन शायद से ना सबसे एंड में यूज होगा बट इसको गेस करना एक रियल वर्ल्ड में पॉसिबल इतना नहीं है तो इसलिए एक रेफरेंस के लिए यूज होते है एल्गोरिदम ये चीज हमने यहां पर लिखी है दिस इज डिफिकल्ट टू इंप्लीमेंट ए ओस रिक्वायर्स फ्यूचर नॉलेज यानी फ्यूचर की नॉलेज चा कि फ्यूचर में क्या आएगा नहीं सर्च कर सकता मैं सिमिलर टू एसजीएफ शेड्यूलिंग ठीक है बट इसमें लोएस्ट पेज फॉल्ट होता है एस रेफरेंस एल्गोरिथम को यूज करते हैं ठीक है बहुत ही बढ़िया अब नेक्स्ट एल्गोरिथम प चलते हैं लीस्ट रिसेंटली यूज्ड एल आर यू ठीक है इसको मैं बोलता हूं लीस्ट रिसेंटली यूज्ड इस एल्गोरिथम को ध्यान से पढ़ना ठीक है इसलिए ध्यान से पढ़ना क्योंकि यह एक एल्गोरिथम ही नहीं है ये सिंपल है डीएसए का क्वेश्चन भी है ठीक है एलआर यू कैसे एल आरयू कैसे या कि या फिर एल आरयू पेज रिप्लेसमेंट को इंप्लीमेंट करके दिखा दो इसका कोड लिख के दिखाओ किस तरीके से सॉल्व करोगे ठीक है इस सब की डिस्कशन हो जाती है हो सकता है आपसे कोई इंटरव्यू पूछे कि पेज प एल्गोरिथम कौन-कौन सी होती है आपने भाग के बोला है फीफो होती है ओ पीआर होती है और एल आरयू होती है जब अपने एल आरयू बोला उसने पूछा अच्छा ठीक है एल आरयू बता दो और इसको किस तरीके से इंप्लीमेंट कर सकते हैं य बता दो और थोड़ा कोड लिख के दिखा दो इसका ठीक है ऐसा कुछ आपसे पूछा जा सकता है तो इसको ध्यान से पढ़ना ठीक है बहुत ही सही एल आरयू देखते हैं एलआर यू में क्या होता है ओपीआरओ पीआर में मैं फ्यूचर को देख रहा था कि फ्यूचर के अंदर कौन सी ऐसी बेसिकली ऐसा पेज है जो कि सबसे लेट में सबसे लेट में रेफर होगा ठीक है फ्यूचर को देख रहा था तो इसको अगर मैं इसको अगर मैं ऑप्टिमाइज करूं इस चीज को इस थॉट को ऑप्टिमाइज करूं तो मैं जो एप्रोक्सीमेशन है मेरी एप्रोक्सीमेशन है मैं मैं पास्ट के बेस पर तो कर सकता हूं पास के पेज पर तो कर सकता हूं इसका मतलब मैं क्या करूंगा इसका मतलब मैं ऐसा पेज रिप्लेस करूंगा जो कि लीस्ट रिसेंटली यूज्ड होगा यानी कि रिसेंट पास्ट में सबसे कम यूज हुआ है यानी सबसे पहले यूज हुआ था पास्ट में सबसे ओल्डेस्ट है वो यूज में ठीक है थोड़ा सा कन्फ्यूजिंग हो रहा है एक बार नोट्स प देख लेते हैं वी कैन यूज रिसेंट पास्ट एज एन एप्रोक्सीमेशन फॉर द नियर फ्यूचर ठीक है हम ऐसा सोच रहे हैं क्यों रिसेंट में जो हुआ है ना इसमें एल्गोरिथम मेरी ये इस माइंडसेट से लिखी हुई है कि जो रिसेंट में हुआ है यानी कि पास्ट में जो हुआ है ना अभी नियर पास्ट में जो हुआ है ऐसा ही शायद फ्यूचर में होगा ठीक है ऐसे ही कुछ एंप्शन लेके चल रहे हैं सो वी कैन रिप्लेस द पेज दैट हैज नॉट बीन यूज इन द लांगेस्ट पीरियड ठीक है सबसे लेट ऐसा कोई पेज जो सबसे लेट मतलब लांगेस्ट पीरियड तो यूज़ ही नहीं हुआ है यानी कि ऐसा कोई पेज जो कि बहुत टाइम से यूज़ नहीं हुआ है बहुत ही बढ़िया इसका एक एग्जांपल देख लेते हैं सिंपल एग्जांपल से ज्यादा बढ़िया से समझ आएगा सेम स्ट्रिंग लेते हैं फिर निकालते हैं कितने नंबर ऑफ पेज फॉल्ट्स इसमें आते हैं ठीक है तो यहां पर रेफरेंस स्ट्रिंग कुछ इस तरीके से पेज फॉल्ट्स देगी तो देखते हैं कैसे वर्क कर रहा है ये ठीक है इनिशियली सेम चलेगा इनिशियली सेवन मैंने पुट किया फिर जीरो पुट किया फिर वन पुट किया ठीक है अब गेम शुरू होता है जब टू आया तो टू आते हुए मैं यह देख रहा हूं अब कि कौन सा पेज रिप्लेस करूं वो रिप्लेस करने के लिए मैं ढूंढ रहा हूं कि कौन सा ऐसा पेज था जो कि सबसे ओल्डेस्ट पड़ा है यहां पे ठीक है जिसको सबसे सबसे बूढ़ा हो चुका है जो सबसे बहुत टाइम से पड़ा हुआ है यहां पे और मैं अजूम कर रहा हूं जो कि यहां पे चीज बहुत टाइम से पड़ी हुई है वो शायद आगे कभी यूज भी नहीं होगी ठीक है ऐसा मैं एज्यूम कर रहा हूं ठीक है तो बहुत ही बढ़िया टू आया तो सबसे ओल्डेस्ट कौन सा था सेवन सेवन ओल्डेस्ट था तो सेवन को रिमूव कर दिया सेवन को रिमूव करके यहां टू लिख दिया बहुत ही सही जब जीरो आया जीरो पहले से था ठीक है यहां पे पेज हिट मिलेगा मुझे पेज मिस नहीं मिलेगा ठीक है पेज हिट पेज मिस याद करो जब थ्री आया थ्री के केस में देखा 201 था तो पेज मिस पेज मिस तो थ्री मिस थ्री नहीं है तोब थ्री को मुझे बेसिकली स्वप स्पेस से लाना पड़ेगा थ्री जब स्वप स्पेस से आ गया तो आके मुझे ढूंढना पड़ेगा कौन सा पेज रिप्लेस करना है तो पोज रिप्लेस करने के लिए मुझे देखना पड़ेगा यहां पर कौन सा सबसे बूढ़ा पेज है ओल्डेस्ट कौन सा है तो सबसे पहले इधर से देखूंगा 201 में सबसे ओल्डेस्ट कौन सा है इधर से देखता हूं मैं इधर से देखता हूं सेवन सेवन तो यहां ही नहीं जीरो क्या जीरो ओल्डेस्ट है लग रहा होगा रो डस्ट है ़ डस्ट नहीं है अभी रिसेंटली तो ये रेफर हुआ है अभी जीरो रेफर हुआ था ना अभी थोड़ी देर पहले तो क्योंकि अब रो रेफर हुआ था रो अब न्यू हो चुका है तो इस केस में वन मेरा ओल्डेस्ट है ठीक है अब वन मेरा ओल्डेस्ट है तो मैंने वन को उठा के रिप्लेस कर दिया तो यहां क्या बन गया 203 तो जो पेज वापस से रेफर हो रहा है ना मैं उसको वापस से न्यू कर दे रहा हूं क्योंकि वो रेफर हो रहा है रेफर होने के केस में वो न्यू हो रहा है ठीक है इसको मैंने वापस से रेफर कर दिया मैंने यहां पे अब जीरो आया जीरो को दे दिया जीरो न्यू हो गया अब फोर आया अब फोर के केस में मैं दोबारा से देखूंगा कौन सा सबसे पुराना है अब इधर से देख लेते हैं जीरो तो अभी यूज हुआ था ठीक है फिर थ्री यूज हुआ था टू है सबसे पुराना तो टू को उठा के मैंने यहां पे रिप्लेस कर दिया तो यहां पे 40 3 बन गया अब टू आया अब जब टू आया टू के केस में फिर से देखूंगा फोर तो अभी-अभी आया है फिर जीरो आया है ठीक है फिर थ्री सबसे पुराना है यानी कि इधर से देखूं तो मैं सी सबसे ओल्डेस्ट है यहां पे अब सबसे ओल्डेस्ट है तो मैं इसको रिमूव कर देता हूं तो थ्री को रिमूव कर दिया तो 402 आ गया अब वापस से थ्री आ गया ठीक है इस केस में देखो यहां पे चार-चार पेस फोल्ड एक साथ आ गए हैं ठीक है दोबारा से थ्री आया अब थ्री आया तो अब मैं देखता हूं 4 0 2 में सबसे ओल्ड कौन सा है टू अभी यूज हुआ है फोर अभी यूज हुआ है जीरो सबसे ओल्डेस्ट है तो जीरो को रिप्लेस कर दिया 4 3 0 सॉरी 4 3 2 बन गया 4 3 2 बन गया ठीक है तो बहुत ही सही इस तरीके से कुछ हमारे यहां पर अ पेज फोल्ड सर्विस होंगे और अब इसमें हम काउंट करें कितने पेज फोल्ड है तो 1 2 3 4 5 6 7 88 9 10 11 12 तो यहां पर मेरे एल आरयू के अंदर 12 पेज फोल्ड्स है अब ध्यान से देखो इसमें कितने थे नाइन फ फ में कितने थे फीफो में कितने थे फीफो में मेरे 15 थे सेम एग्जांपल के लिए तो अभी के हिसाब से देखने में लग रहा है सबसे बेस्ट एल्गोरिथम मेरी कौन सी है सबसे बेस्ट एल्गोरिथम मेरी ओ आर है बट यह हाइपोथेटिकल है मैं फ्यूचर की नॉलेज नहीं जानता बट इसी से इंस्पायर होके हमने देखा कि फ्यूचर की नॉलेज तो नहीं जान पाते बट हम पास्ट की नॉलेज तो देख सकते हैं पास्ट के बेस पर तो हम सोच सकते हैं कि जो पास्ट में हुआ है मे बी वो फ्यूचर में भी होगा बोलते है ना कि हिस्ट्री रिपीट इट सेल्फ ऐसा ही कुछ यहां पे सोचा हुआ है कि जो कि पास्ट में जो सबसे ओल्डेस्ट है इसका मतलब शायद नहीं होगा आगे यूज ठीक है तो ऐसे यूज करके मैंने एल आरयू बना दिया एल आरयू मैंने 12 निकाले तो 12 पच फल्ट तो तीनों में से देख पा रहा हूं मैं सबसे बेस्ट तो ओ पीआर थी बट ओपीआरपी है तो प्रैक्टिकली देखा जाए तो एलआर यू इज द बेस्ट ठीक है एलआर बेस्ट है अब क्वेश्चन आता है एल आरयू के अंदर आपसे क्वेश्चन पूछा जा सकता है कि एल आरयू को इंप्लीमेंट कैसे करोगे ठीक है इंप्लीमेंट कैसे करोगे तो इंप्लीमेंट करने के लिए सबसे पहला तरीका मेरा है काउंटर काउंटर लगा सकता हूं काउंटर का एग्जांपल देखते हैं अभी हम य क्या कर रहे थे सिंपली ओल्ड ढूंढ रहे थे तो हमारा यहां पर काम क्या है हमें ओल्डेस्ट ढूंढना है ठीक है तो ओल्डेस्ट ढूंढने के लिए क्या हमें काउंट वेरिएबल का यूज नहीं कर सकता सिंपल मैं काउंट यूज करता हूं वो काउंट कैसे वर्क करेगा वो देखते हैं कि हम क्या करेंगे टाइम फील्ड विद ईच पेज टेबल एंट्री हर पेज टेबल के साथ एक टाइम फीड डाल देंगे ठीक है और रिप्लेस करेंगे वो वाला पेज जो जिसकी स्मॉलेट टाइम वैल्यू होगी ठीक है जिसकी स्मॉलेट टाइम वैल्यू यानी काउंट को इंक्रीज करते जाएंगे जो सबसे स्मॉलेट होगा तो उसको मान लूंगा सबसे ओल्डेस्ट है वो देख लेते हैं एक बार कैसे वर्क करेगा ये यही वाला एग्जांपल लिख लेते हैं तो मैं ऐसा कुछ मान लेता हूं कि ये मेरे पास जीरो है ठीक है ये जीरो पेज है ये फर्स्ट पेज ये सेकंड पेज ये थर्ड पेज ये फोर्थ पेज और ये सेवंथ पेज इतने ही पेज है मेरे पास यहां पे ठीक है काउंट की वैल्यू मैं इनिशियल से शुरू करता हूं ठीक है एक काउंट वेरिएबल ले लिया मैंने c और मैं यहां पर असाइन करूंगा काउंट ध्यान से देखना इसको इंप्लीमेंट कर सकते हो और यह होमवर्क है आपका इसको इंप्लीमेंट करोगे इंप्लीमेंट करने के बाद आप चैट बॉक्स में लिखोगे लिख के बताना मुझे कि आपने इंप्लीमेंट कर लिया है और बहुत मजा आया ठीक है बहुत ही सही तो अभी बता बनाते हैं हम यहां पे सबसे पहले यहां पे इनिशियली जब मैं यहां पे सेवन पुट करूंगा सेवन पुट करते हुए मैं इसका काउंट कर दूंगा वन इसको वन डाल दूंगा ये जो काउंटर यूनिवर्सल काउंटर हैय यूनिवर्सल काउंटर इंक्रीमेंट होता रहेगा ठीक है वन अब जब जीरो आया तो जीरो के करेस्पॉन्डिंग्ली मैं देखता हूं कि अभी जो मेरे पास तीन यहां पर पड़े हुए हैं जीरो वन और सेन इसमें सबसे स्मालेस्ट काउंट किसका है सबसे स्मालेस्ट काउंट ध्यान से देखो आपका सेवन का है और सेवन ही सबसे मेरा ओल्डेस्ट है तो मैं क्या करूंगा जिसका सबसे स्मले काउंट है यानी कि यहां पर सेवन का सबसे स्मले काउंट था वन उसको मैं उठा के रिप्लेस कर दूंगा ठीक है सेवन को उठा के मैंने रिप्लेस कर दिया और यहां टू डाल दिया टू डाल दिया इसका जीरो डाल दिया वन अब जब टू डाल दिया तो यहां पर मैं इसका काउंटर फोर कर देता हूं और सेवन का काउंटर मैं रिमूव कर देता हूं यहां से ठीक है सेन का काउंटर रिमूव कर देते हैं ये रिमूव कर दिया बहुत सही अब जीरो आया अब जीरो आया तो मैंने देखा जीरो को जब सर्विस करूंगा मैं तो 20 जी पहले से ही है जीरो पहले से है तो जीरो को रिन्यू करना है हमें जीरो को रिन्यू कर देते हैं जीरो के केस में यहां से मैं टू हटाता हूं और काउंटर मेरा फाइव कर देता हूं कितने हो गए 1 2 3 4 5 ठीक है फाइव अब आता है मेरा थ्री थ थ्री मेरे पास है नहीं थ्री को मुझे सर्विस करना पड़ेगा अब थ्री को सर्विस करने से पहले मुझे ढूंढना पड़ेगा कि कौन सा ओल्डेस्ट है ओल्डेस्ट मैं देखूंगा कि इन तीनों में से जो भी मेरे पास एंट्री पड़ी है सबसे ओल्डेस्ट कौन सा है थ्री स्मालेस्ट को मैं ओल्डेस्ट मान रहा हूं तो थ्री को मैं रिप्लेस कर दूंगा थ के रेस्पॉन्डिंग क्या वन यानी वन रिप्लेस होगा तो यहां क्या आ जाएगा 20 3 ठीक है बहुत सही अब जब थ्री को डाला है तो हमने थ्री के केस में मैं यहां पे सिक्स लिख दूंगा और यहां से वन हट चुका है वन हट चुका है तो वन की एंट्री यहां से रिमूव कर दूंगा तो इसी तरीके से यह आगे चलता रहेगा चलता रहेगा और मैं काउंट का यूज करके एक ग्लोबल काउंट का यूज करके ग्लोबल शेयर्ड काउंट कुछ भी बोल लो ग्लोबल शेयर काउंट वेरिएबल का यूज करके मैं एल आरयू को इंप्लीमेंट कर सकता हूं ठीक है बहुत ही बढ़िया अब आपसे इंटरव्यू पूछेगा ठीक है काउंटर वेलेबल ठीक है बट काउंटर से प्रॉब्लम क्या है काउंटर से एक प्रॉब्लम ये होगी कि काउंटर आप डिक्लेयर करोगे तो कैसे डिक्लेयर करोगे आप डिक्लेयर करोगे कुछ इंट 32 वैल्यू ठीक है इंट 32 तो 2 की पावर 32 इतनी रेंज हो सकती है इसकी वन से लेके अगर साइंड में जाऊं तो मैं अनसाइंड भी कर दोगे तब भी एक लिमिट तो है अगर इं 64 भी यूज़ कर रहे हैं तो भी एक लिमिट तो है बेसिकली प्लस पे होता जाएगा हो सकता है काउंट ओवरफ्लो हो जाए ठीक है तो काउंट ओवरफ्लो हो सकता है इस केस में एक 32 बिट के सिस्टम में काउंट ओलो हो सकता है 64 बिट के सिस्टम में भी हो सकता है बट उसमें कम चांसेस है क्योंकि काफी बड़ी रेंज मिल जाती है मुझे ठीक है 64 बिट का अगर मैं इंट वेरिएबल यूज करता हूं तो तो इससे बेटर है कि एक और सेकंड अप्रोच है उस वो है स्टैक बेस्ड अप्रोच ठीक है इसको इंप्लीमेंट करने की एक स्टैक बेस्ड अप्रोच है अभी स्टैक बेस्ड अप्रोच क्या है ये देख लेते हैं इसमें क्या करना है हमें कीप ए स्टैक ऑफ पेज नंबर ठीक है हम स्टैक एक स्टैक मेंटेन करेंगे और ये स्टैक कैसी होगी ना ये आपकी नॉर्मल जो आप नॉर्मल एचटीएल वाली स्टैक होती है नॉर्मल जो भी आपने पड़े उस टाइक भी स्टैक नहीं होगी इसके अंदर मैं ऊपर नीचे दोनों से और बीच से एंट्रीज इंशन डिशन कर सकता हूं बट मैं इस एक्सेस जो है मैं स्टैक की तरह करूंगा ठीक है थोड़ा सा मॉडिफाई स्टैक मॉडिफाइड स्टैक है ये ठीक है तो हम क्या करेंगे कीप ए स्टैक ऑफ पेज नंबर व्हेन एवर ए पेज इज रेफरेंस जब भी कोई एक पेज नया पेज रेफरेंस होता है इट इज रिमूव्ड फ्रॉम द स्टैक एंड पुट ऑन द टॉप यानी स्टैक में कहां जहां भी कहीं पड़ा होगा हो सकता है नीचे पड़ा हो बीच में पड़ा हो सबसे नीचे पड़ा हो जहां भी पड़ा होगा उठा के मैं उसको रिमूव करके टॉप प डाल दूंगा और टॉप पे मैं क्यों डाल रहा हूं टॉप पे इसलिए डाल रहा हूं कि मैं मैं बोल रहा हूं कि जो सबसे टॉप पे जो एलिमेंट पड़ा है ना सबसे टॉप पे जो फ्रेम पड़ा है वो मोस्ट रिसेंटली यूज्ड है ठीक है और एल आरयू के अकॉर्डिंग हमें मोस्ट रिसेंटली यूज को नहीं डिलीट करना हमें कौन सा पेज रिप्लेस करना है जो कि ओल्डेस्ट हो यानी लीस्ट रिसेंटली यूज्ड हो ठीक है तो इस केस में लीस्ट रिसेंटली यूड कहां पड़ा होगा बॉटम के अंदर दोबारा समझते हैं एक स्टैक मेंटेन करना है स्टैक के अंदर जैसे-जैसे आपके पेज नंबर आते जाएंगे मैं इनपुट करता जाऊंगा और जब भी कोई पेज नंबर रेफरेंस होगा मैं उसको स्टैक के बीच में से निकाल के सबसे टॉप पर डाल दूंगा थिंकिंग दैट कि वो जो सबसे टॉप पे एलिमेंट पड़ा हुआ है वो मेरा मोस्ट रिसेंटली यूज है यानी कि अभी सबसे अभी जस्ट ही यूज हुआ है ठीक है तो उस केस में उसको मुझे नहीं रिप्लेस करना जो लीस्ट रिसेंटली यूज़ होगा वो अल्टीमेटली सबसे लोअर में चला जाएगा बॉटम में चला जाएगा स्टैक के तो मैं बॉटम से उसको पिक कर लूंगा बॉटम से रिमूव करता रहूंगा ठीक है बहुत ही बढ़िया तो हमारा गोल यही था काउंटर के अंदर भी हमारा गोल ये था कि काउंटर की जो स्मॉलेट वैल्यू थी मैं उसको बोल रहा था कि ये ओल्डेस्ट है एंड दिस इज द कैंडिडेट टू जिसको हमें रिप्लेस करना है बेसिकली ठीक है इसके केस में भी मैंने सबसे बॉटम वाला निकाल लिया कि कि ये लीस्ट रिसेंटली यूज्ड है इसको मैं यहां से हटा सकता हूं क्योंकि हो सकता है फ्यूचर में भी यूज ना हो ठीक है बहुत ही बढ़िया एज एंट्री माइट बी रिमूव्ड फ्रॉम द मिडल ऑफ़ द स्टैक क्योंकि मिडल से भी मैंने बताया मिडल से भी रिमूव हो सकती है क्योंकि हो सकता है जो अभी पेज रेफरेंस हुआ हो कहीं मिडल में पड़ा हो मिडल से उठा के मुझे टॉप पे डालना है तो इस केस में क्या है मुझे डबल ई लिंक लेज यूज करूंगा मैं ठीक है एक डबल लिंक लेज यूज़ करता हूं क्योंकि इसके अंदर मुझे पॉइंट्स इधर से उधर करने है और मैं बेसिकली एक अच्छे इंप्लीमेंटेशन समझता हूं इसको और कम से कम टाइम कॉप्लेक्स टी के साथ ये चीज हो जाएगी डबल लिश सम यूज करनी है यहां पे ठीक है ज्यादा डिटेल में नहीं जाएंगे डीएससी डीएससी की क्लास नहीं है ये ठीक है बहुत ही बढ़िया एक बार इसका सिमुलेशन भी देख लेते हैं ताकि दिमाग में बैठ जाए ठीक है सेम एग्जांपल लेंगे ठीक है तो ये हमारी कुछ रेफरेंस स्ट्रिंग हो गई सेम रेफरेंस स्ट्रिंग ले लिया हमने एंड का नहीं देखते स्टार्टिंग का देख लेते हैं बस ये स्टार्टिंग में इनिशियली फ्रेम्स तीन खाली है स्टैक भी स्टार्टिंग में खाली है ठीक है तो स्टार्ट करते हैं यहां से तो सबसे पहले सेवन मेरा आएगा ठीक है सबसे पहले सेवन मेरा आएगा सेवन मैंने डाल दिया और सेवन मैंने सबसे ऊपर लिख दिया स्टैक के टॉप प मैंने सेवन लिख दिया अब उसके बाद क्या होगा अब उसके बाद क्या होगा अब उसके बाद रो आएगा रो आएगा तो 7 0 डाल देंगे यहां पे और सेन और रो को ऊपर डाल दूंगा मैं टॉप पे तो जो जो रिसेंटली रेफरेंसेड है वो मैं टॉप पे पुश करता रहूंगा ठीक है फिर वन आएगा वन आएगा तो 701 बन जाएगा 701 बन जाएगा तो मैं वन को टॉप प डाल दूंगा ठीक है अब आएगा टू तो जब भी टू आएगा तो मैं क्या मेरे को क्या करना है टू के केस में पेज मिस हुआ है पेज मिस हुआ है तो मुझे कौन सा पेज रिप्लेस करना होगा एल आरयू लीस्ट एसेंशियल यूज कौन सा है वो मुझे स्टैक के बॉटम पे मिलेगा ठीक है बॉटम पर कौन सा मिलेगा मुझे लीस्ट रिसेंटली यूज और टॉप पर कौन सा मिलेगा मुझे मोस्ट रिसेंटली यूज राइट तो मैं क्या करूंगा सेवन को रिमूव करूंगा तो सेन को मैं रिमूव कर देता हूं और टू को ऊपर पुश कर देता हूं ठीक है तो सेन को रिमूव करा टू को पुश किया तो 20 आ गया यहां पर ठीक है बहुत ही सही अब वापस से जीरो आया अब जीरो दोबारा से रेफरेंस हुआ है तो मुझे क्या करना पड़ेगा मुझे जीरो को उठा के के टॉप पे पुश करना पड़ेगा तो अब कैसी हो जाएगी कुछ स्टैक मेरा कुछ कैसा दिखेगा स्टैक मेरा दिखेगा रो 2 1 ठीक है बहुत ही बढ़िया अब आता है थ्री थ्री के केस में मुझे पेस मेंस मिलेगा तो थ्री के केस में मेरा एलआर यू कैंडिडेट कौन सा होगा यहां पे वन वन होगा तो वन की जगह मैं क्या लिख दूंगा थ्र 0 2 ऐसे ही हो जाएगा ठीक है और थ्री मुझे ऊपर टॉप पे पुश करना पड़ेगा ठीक है ी टॉप पे पुश करूंगा तो वन यहां से रिमूव हो गया है तो अब स्टैक कैसे दिखेगी 30 2 अब फिर से ज़ीरो आया फिर से ज़ीरो आया ठीक है अब ज़ीरो के केस में क्या होगा ज़ीरो को मुझे उठा के ऊपर डालना पड़ेगा तो अब कैसे हो जाएगी स्ट्रैक 0 3 2 ठीक है अब आता है फर ठीक है फोर अब जब फोर आएगा तो अब मेरे को कौन सा कैंडिडेट रिमूव करना है एल आरयू कौन सा है यहां पे टू तो टू को रिमूव कर दूंगा मैं फोर को ऊपर पुश कर दूंगा तो मेरा कैसे दिखेगा 4 0 3 और मेरा टू कैसा हो जाएगा अब टू रिप्लेस हो जाएगा टू रिप्लेस हो गया यहां क्या आ जाएगा 4 403 तो कुछ इस तरीके से आपका बेसिकली स्टैक बेज अप्रोच चलेगी ठीक है ज्यादा कन्फ्यूजिंग नहीं है खुद से करके देखो तो हो जाएगा बट इसको इंप्लीमेंट जरूर कर लेना एल आरयू इज मोस्ट इंपोर्टेंट एल्गोरिथम ठीक है नॉट फॉर पेज रिप्लेसमेंट ये बेसिकली यही एल्गोरिथम कैश में भी यूज होती है जो हम कैशे को डिजाइन करते हैं तो उस केस में क्या होता है मुझे मोस्ट रिसेंटली यूज सबसे आगे रखना होता है यानी मोस्ट रिसेंटली यूज पेजेस या मोस्ट रिसेंटली यूज डाटा मुझे आगे रखना है और जो कि लीस्ट रिसेंटली यूज है वो मुझे रिमूव कर देना है या पीछे रखना है ठीक है तो इसी को एलआर यू कहते हैं एल आरयू कैसे ऐसे ही वर्क तो एलआर यू इज मोस्ट इंपॉर्टेंट इन दैट केस ठीक है अब लास्ट की दो एल्गोरिथम भी है काउंटिंग बेस्ड पलेज रिप्लेस एल्गोरिथम ये बहुत ज्यादा इंपॉर्टेंट नहीं है ठीक है इंटरव्यू में हो सकता है अब ये तीन भी बोलोगे ना फीफो भी बोलो फीफो ऑप्टिमल और लीस्ट बोलोगे तो भी कोई दिक्कत नहीं है काउंटिंग बेज फिर भी हम देख लेते हैं इसके अंदर हम क्या करते हैं रेफरेंस काउंटिंग का यूज करते हैं कीप ए काउंट फॉर द नंबर ऑफ रेफरेंसेस दैट हैज बीन मेड टू ईच पेज ठीक है तो हम क्या करते हैं जो जो पेज आता जा रहा है हम उसके अंदर हर पेज के अंदर एक काउंट एक रेफरेंस काउंट मेंटेन कर रहे हैं उस काउंट को इंक्रीमेंट करते जा रहे हैं इंक्रीमेंट करते जा रहे हैं ठीक है इसके दो होते हैं हम बोलते हैं लीस्ट फ्रीक्वेंसी ही बता रहा हूं आपके दिमाग में हो क्या पता आपको याद हो उस टाइम तो सामने इंटरव्यू वाले को भी याद नाना हो और आप बता दो वो खुश हो जाए ठीक है तो लीस्ट फ्रिक्वेंटली यूज में क्या कर रहा हूं एक्टिवली यूज पेज शुड शुड हैव ए लार्ज रेफरेंस काउंट यानी कि जो पेजेस सबसे ज्यादा यूज हो रहे होंगे उसके अंदर लार्ज पेज काउंट होगा क्योंकि मैं क्या कर रहा हूं हर पेज का पेज काउंट बढ़ाता जा रहा हूं बढ़ाता जा रहा हूं बढ़ाता जा रहा हूं तो जो कि एक्टिवली यूज़ हो पेज हो रहे होंगे जो सबसे ज़्यादा पेज यूज़ हो रहे होंगे उसका पेज काउंट सबसे हाई होगा उसका रेफरेंस काउंट सबसे हाई होगा पेज काउंट नहीं रेफरेंस काउंट रेफरेंस काउंट सबसे हाई होगा तो हम क्या करेंगे उन पेजेस को रिप्लेस कर देंगे जो कि जिनका स्मॉलेट काउंट होगा ठीक है तो स्मॉलेट रेफरेंस काउंट वाले पेजेस को रिमूव करो और जो लार्जेस्ट पेज अ रेफरेंस काउंट वाले हैं उनको बेसिकली हम अ एक्टिवली यूज़ करेंगे उनको रिमूव हम नहीं करेंगे ठीक है तो इसको मैं बोलता हूं लीस्ट फ्रीक्वेंसी यूज़ में क्या करते हैं हम हम लीस्ट फ्रिक्वेंटली यूज़ का उल्टा करते हैं इसके अंदर हम क्या कर रहे थे कि जिसका स्मॉलेट काउंट होगा उसको मान रहा हूं कि हम कम से कम यूज हो रहा है तो उसको रिप्लेस करना है इसमें क्या करना है हमें कि जो कि स्मॉलेट काउंट जिसका भी है ना उसको हम सोच रहे हैं कि वो शायद अभी अभी आया है ठीक है वो अभी अभी आया है और उसको यूज करना बाकी है तो यानी कि मैं उल्टा कर रहा हूं यहां पे ठीक है उल्टा कर रहा हूं मोस्ट फ्रिक्वेंटली उसके अंदर मैं लीस्ट फट यूज का उल्टा कर रहा हूं इसके अंदर मैं स्मॉलेट काउंट वाला जो है उसको मैं रख रहा हूं यह सोचते हुए कि उसको भी यूज करना है उसको रिमूव नहीं कर रहा हूं मैं वो लार्जेस्ट काउंट वाले को रिमूव कर दे रहा हूं ठीक है तो यहां पे थोड़ा उल्टा है ज्यादा इंपोर्टेंट नहीं है ये एल्गोरिथम बस ऐसे रेफरेंस के लिए डाल दिए यहां पर तो यह साफसाफ लिखा हुआ है नीदर एमएफ यू नॉर एलएफ यू रिप्लेसमेंट इज कॉमन इसको यूज भी नहीं करते हम बस एक कांसेप्ट है यूज होना चाहिए आपके दिमाग में होना चाहिए इसलिए बता दिया बहुत ही बढ़िया एक बार रिवाइज कर लेते हैं रिवाइज कर लेते देख लेते हैं हमने क्या-क्या पढ़ा सबसे इंपॉर्टेंट पेज फॉल्ट क्या होता है पता होना चाहिए पेज रिप्लेसमेंट एल्गोरिथम का एम क्या है यह पता होना चाहिए एम मेरा क्या है मिनिमम पेज फॉल्ट चाहता हूं मैं ठीक है फीफो मेरा पहला है इसके अंदर बिलज एनिमली होती है फिर आपका ऑप्टिमल पेज रिप्लेसमेंट ये क्या है यह एक आइडियल एल्गोरिथम है और ये इंप्लीमेंट नहीं हो सकती बट एक रेफरेंस के लिए यूज होती है बाकियों के लिए ठीक है एल आरयू आपकी बहुत इंपॉर्टेंट है ठीक है एप्रोक्सीमेशन का यूज़ कर रहा हूं मैं कि भाई मैं नियर फ्यूचर एप्रोक्सीमेशन तो यूज़ कर नहीं सकता फ्यूचर का मैं प्रिडिक्ट कर नहीं सकता ब पास्ट के हिसाब से मैं कर सकता हूं राइट इसको इंप्लीमेंट कैसे करते हैं यह मोस्ट इंपॉर्टेंट चीज है मोस्ट इंपॉर्टेंट मैं फिर से बोल रहा हूं स्पेलिंग गलत हो गई क्या लिखा गया है मैं फिर से बोल रहा हूं कि आपके एल आरयू को कैसे इंप्लीमेंट करते हैं दिस इज मोस्ट इंपॉर्टेंट इस को जरूर देख लेना ठीक है बहुत ज्यादा इंपॉर्टेंट है ये एलआर यू कैसे इसको इंप्लीमेंट कैसे करते हैं इसको खुद से इंप्लीमेंट करना और कमेंट सेक्शन में लिख के बताना कि हां मैंने भैया इंप्लीमेंट कर लिए तो इस वीडियो को यहीं पर खत्म करते हैं ठीक है एंड करते हैं इस वीडियो को और नेक्स्ट वीडियो में हम पढ़ेंगे थ्रेशिंग के बारे में ठीक है उससे पहले मैं आपको फिर से याद दिला देता हूं बाय करने से पहले कि आपको डिस्क्रिप्शन में एक ईमेल आईडी मिलेगी ईमेल आईडी पे आपको टेस्टिमोनियल यानी कि एक मिनट की वीडियो शूट करनी है आपको रिव्यू देना है कि ये जो पर्टिकुलर कोर्स है पूरा प्लेसमेंट स्पेसिफिक जो प्लेसमेंट ओरिएंट हमने ओएस का कोर्स निकाला आपको कैसा लगा इसके बारे में आप एक मिनट में बताइए एक ऑनेस्ट रिव्यू दीजिए हो सकता है उनमें से कुछ रिव्यूज कुछ टेस्टिमोनियल्स हम फीचर करें अपने [संगीत] ने पेजिंग के बारे में जो डिस्कस किया और वर्चुअल मेमोरी के बारे में डिस्कस किया उसी से रिलेटेड ये टॉपिक है ठीक है तो इंटरव्यूअर आपसे पूछेगा व्हाट इज थ्रेशिंग तो थ्रेशिंग बताने से पहले आपके पास पेजिंग की जानकारी होनी चाहिए ठीक है वर्चुअल मेमोरी की जानकारी होनी चाहिए ठीक है इसी में आपको स्वैप स्पेस की जानकारी होनी चाहिए ठीक है पेज सर्विस टाइम की जानकारी होनी चाहिए बेसिकली लास्ट जो दो-तीन वीडियो हमने पढ़ी है और पेज रिप्लेसमेंट एल्गोरिथम के बारे में पता होना चाहिए आपको ठीक है तो लास्ट जो हमने दो-तीन वीडियोस कवर करी हैं उसके बारे में सारी जानकारी होनी चाहिए तो यानी कि इंटरव्यू अगर आपसे सिंपल क्वेश्चन पूछता है व्ट इज थ्रेशिंग तो इसका मतलब आपसे आपके पेजिंग की जो नॉलेज है उसको भी टेस्ट करना चाह रहा है वीएम की जो नॉलेज है उसको टेस्ट करना चाह रहा है पेज फॉल्ट की नॉलेज टेस्ट करना चाह रहा है बेसिकली पेजिंग के अराउंड सारी नॉलेज को टेस्ट करना चाह रहा है तो थ्रेशिंग को पूछना एक काफी इंटरेस्टिंग और इंपॉर्टेंट क्वेश्चन है आपका इंटरव्यू पर्सपेक्टिव से देखा जाए तो ठीक है तो चलो डिस्कस करते हैं तो यार एक सिचुएशन डिस्कस करते हैं तो थ्रेशिंग पढ़ने से पहले आप लेक्चर नंबर 26 20 7 और 28 यह तीनों लेक्चर दोबारा से देख लेना ठीक है तभी आपको बढ़िया से समझ आएगा ठीक है तो चलो शुरू करने से पहले एक बार शाउट आट दे देते हैं हमारे स्पनर को ताकि आपका फ्लो ना बिगड़े ठीक है तो चलो यार एक सिचुएशन डिस्कस करते हैं ठीक है जस्ट इमेजिन कि हमारे पास एक सिचुएशन यह है ठीक है कि हमारे पास एक रम है सिमिलरली एक और रम है अब ध्यान से देखो हमारे पास इसके अंदर मान लेते हैं हमारे पास टूथ 4 5 सिक्स पेजेस है इसमें भी सिक्स ही बना देते हैं 1 2 3 4 5 6 सेन हो गए इसमें सिक्स 1 2 3 4 5 6 ठीक है सिक्स पेजेस हो गए हमारे पास तो ये दो रम की सिचुएशन है ठीक है और अब इमेजिन करो कि जो मैंने एलोकेशन करी है ना पेजेस की वो इस तरीके से करी है कि इसको मैंने p1 के पेज वन को दे दिया ठीक है ऐसे नोटेशन डाल रहा हूं p1 का पेज वन ठीक है और इसमें डाल दिया मैंने p1 के पेज टू को इसमें पीव के पेज थ्री को इसमें पीट को प2 के पेज वन को इसमें पीट के पेज टू को इसमें प2 के पेज थ को ठीक है यह हो गई आपकी सिचुएशन नंबर वन अब सेकंड सिचुएशन डिस्कस करते हैं इसके अंदर जस्ट इमेजिन एलोकेशन कुछ इस तरीके से करी है इसमें पव का पेज वन इसमें प2 का पेज वन पी3 का पेज वन प फ का पेज वन p5 का पेज वन p6 का पेज वन ठीक है तो ये हमारी दो सिचुएशन हो गई ठीक है अब थोड़ा दिमाग लगाओ हमने जो पेज फॉल्ट के बारे में पढ़ा पेज फॉल्ट कब आता है पेज फोल्ड तब आता है जब आपकी इंस्ट्रक्शन चल रही है किसी प्रोग्राम की इंस्ट्रक्शन चल रही है और कोई ऐसी इंस्ट्रक्शन हिट हुई कि जिसके करेस्पॉन्डिंग्ली और वह कैसे होता है व आपका टोटल जो हमने डायग्राम बना के सीखा था कि आपका इंटरप्ट जाएगा इंटरप्ट जाने के बाद आप पेज निकाल के लाओगे स्वप स्पेस से स्वाब स्पे से पेज लाके एक फ्री फ्रेम ढूंढोगे फ्री फ्रेम ढूंढोगे रम के अंदर और उसके अंदर एलोकेट कराओ तो हो सकता है फ्री फ्रेम अवेलेबल हो और फ्री फ्रेम अवेलेबल ना हो जब फ्री फ्रेम अवेलेबल होगा तो सिंपली एलोकेट कर देंगे जब फ्री फ्रेम अवेलेबल नहीं होगा ठीक है और हमें p1 का कोई किसी प्रोसेस का बेसिकली वो पर्टिकुलर इंस्ट्रक्शन तो एग्जीक्यूट करनी ही करनी है तो इसके इसमें क्या होगा कि जो ऑलरेडी एलोकेटेड पेजेस है जैसे इसके अंदर p2 का पेज वन पहले से ऑलरेडी एलोकेटेड है तो मुझे इसको रिमूव करना पड़ेगा और रिमूव करके मैं क्या करूंगा स्वैप आउट करूंगा ठीक है रिमूव नहीं टर्म क्या यूज होती है स्वैप आउट और जो न्यू पेज आया होगा ठीक है जो डिस्क से आपका न्यू पेज आया होगा p1 के कॉरस्पॉडिंग जस्ट इमेजिन वो मुझे क्या करना पड़ेगा स्वैप इन ठीक है तो ऐसा को स्वैपर स्वैप इन चलता रहता है ठीक है अब मेरा यह क्वेश्चन है आपके पास दो सिचुएशन है एक रम की सिचुएशन यह है एक रम की सिचुएशन यह है तो इसमें मुझे बताओ किसमें सबसे ज्यादा पेज फॉल्ट्स होंगे च हैज मोर नंबर ऑफ पेज फॉल्ट्स और जैसा कि याद करो मैंने कहा था कि पेज फॉल्ट जो है वह सिंपली एक ओवरहेड है ठीक है और वो ओवरहेड क्या है उस टाइम जब वो ओवरहेड एग्जीक्यूट हो रहा होता है वो पेज फॉल्ड बेसिकली सर्विस हो रहा होता है उस टाइम सीपीयू कोई इंपोर्टेंट काम नहीं कर रहा होता यानी कि सीपीयू बैठ के कुछ आपका यूजफुल वर्क नहीं कर रहा होता यूजफुल वर्क मैं किसे कह रहा हूं प्रोसेस से रिलेटेड कोई एग्जीक्यूशन नहीं चल रही होती सिंपली वो पेज फॉल्ट का जो तिगड़म में लगा होता है ठीक है तो सिंपली पेज फॉल्ट इज एन ओवरहेड ठीक है अब मुझे बताओ दोनों में से किसमें सबसे ज्यादा ज्यादा पेज फॉल्ट्स होंगे ठीक है सोचो थोड़ा वीडियो को पॉज करो सोचो तो यार इसमें सबसे ज्यादा पेज फॉल्ट्स ना मेरे इस केस में होंगे तो इसका आंसर क्या होगा सिंपल इसका आंसर होगा सिचुएशन टू सिचुएशन टू में ज्यादा पेज फोल्ड्स होंगे अब ऐसा होगा क्यों यह देखते हैं सिंपल सा रीजन है यार मैं यहां देख पा रहा हूं कि मेरे पास यहां पर p1 से करेस्पॉन्डिंग्ली से लेके p6 के करेस्पॉन्डिंग्ली प्रोग्रामिंग तो हाई है डिग्री ऑफ मल्टी प्रोग्रामिंग क्या है नंबर ऑफ प्रोसेसेस बीइंग इन द मेमोरी वो सबसे ज्यादा है कि यहां पर सिक्स प्रोसेसेस जो है सिक्स प्रोसेसेस जो है वो रम के अंदर है और यहां पर सिर्फ दो ही प्रोसेस रम के अंदर है बट स्टिल इसकी परफॉर्मेंस जो होगी ना इसकी जो परफॉर्मेंस होगी वो बेटर होगी इससे वो देखते हैं कैसे क्योंकि इसके अंदर सबसे ज्यादा पेस फॉल जनरेट होंगे इसमें सबसे कम पेस फॉल जनरेट होंगे ऐसा क्यों ये देखो तो यार कोई भी प्रोसेस जब स्टार्ट होती है ना उसका मेन कोड जाता है मेन कोड के कॉरस्पॉडिंग जो भी आपका अ बेसिकली पेज होगा वो एलोकेट होगा रम के अंदर ठीक है वो स्वप इन होगा सिमिलरली उसके करेस्पॉन्डिंग्ली से रिलेटेड उसके आसपास के जो कोड एरिया के पेजेस भी आपके रम के अंदर लोड होते हैं ठीक है और इसका क्या बेनिफिट होता है इसका बेनिफिट ये होता है जब प्रोग्राम चल रहा होता है तो अगर एक ही पेज आपका रम के अंदर लोडेड होगा ठीक है एक ही पेज अगर एलोकेटेड होगा तो उस केस में क्या होगा उस केस में जैसे ही एक पेज का कंटेंट खत्म होगा उसकी एग्जीक्यूशन खत्म होगी ठीक है जस्ट इमेजिन जैसे ही इसकी एग्जीक्यूशन खत्म हुई एशन खत्म होने के बाद जैसे ही वो पेज टू को पेज टू को रिक्वेस्ट करेगा रिक्वेस्ट करते ही एक पेज फॉल्ट आ जाएगा ठीक है पेज फॉल्ट आ जाएगा और जैसे ही पेज फॉल्ट आएगा तो क्या होगा वही आपका पेज फॉल्ट सर्विस टाइम एक ओवरहेड आ जाएगा दोबारा से रिपीट करता हूं अगर आपने एक ही पेज लोड किया हुआ है ठीक है एक ही पेज तो क्या होगा जल्दी से वो एक पेज एग्जीक्यूट होगा एग्जीक्यूट होने के बाद आपका पेज फॉल जनरेट हो जाएगा कि मुझे आगे का कोड चाहिए पेज टू चाहिए पेज थ्री चाहिए ठीक है तो क्या होगा एकदम से पेज फॉर जनरेट होंगे और जनरेट होने के बाद ओस के पास इंटरप्ट जाएगा इंटरप्ट होने के बाद आपका ओवरहेड जनरेट होगा और पेज फॉर सर्विस टाइम ब्ला ब्ला इस तरीके से ओवरहेड जनरेट हो जाएगा ठीक है तो इस सिचुएशन में मैं देखूं तो p1 के कॉरस्पॉडिंग मैंने थ्री पेजेस एलोकेट करे हुए हैं तो इसका मतलब इसके अंदर पेज फॉल्ड कम जनरेट होंगे क्योंकि आपका कोड पहले इधर रन करेगा रन करते करते करते करते उसे टाइम लगेगा तीन पेजेस का कोड रन करने के लिए ठीक है बट इस केस में क्या होगा इस केस में देखो p1 के केस में कोड रन हुआ जैसे ही रन हुआ उसने क्या करा उसने पेज फॉल जनरेट कर दिया पेज फॉल जनरेट होने के बाद क्या होगा कि मुझे p1 के कॉरस्पॉडिंग p1 के करेस्पॉन्डिंग्ली और लोड करने के लिए मुझे कोई ना कोई यहां से बेसिकली फ्रेम्स फ्री करने पड़ेंगे पेजेस स्पप आउट करने पड़ेंगे ठीक है बट ये तो पहले से ही पड़े हुए हैं जैसे p5 का वन पड़ा हु तो p5 को मुझे स्वप आउट करना पड़ेगा ठीक है तो मैं p5 को स्वप आउट करूंगा इसमें टाइम जाएगा फिर उसके बाद जो नए नए p1 के कॉरस्पॉडिंग पेजेस आएंगे उसमें टाइम लगेगा और मान लो p1 एकदम से इनपुट आउटपुट ऑपरेशन करने चला गया तो क्या होगा आपका मान लो p3 एग्जीक्यूट होने लगी p3 एग्जीक्यूट होने लगी ई थोड़ा सा एग्जीक्यूट होगी फिर से पेज फॉल जनरेट हो जाएगा तो इस तरीके से देखो इस केस के अंदर सिचुएशन के अंदर आपके बहुत सारे पेज फॉल्ट लगातार जनरेट होते चले जाएंगे ठीक है और इससे क्या होगा अल्टीमेटली आपका जो सीपीयू होगा सीपीयू होगा वो यूजफुल वर्क को अवॉइड करके यूजफुल वर्क क्या था आपका प्रोसेस एग्जीक्यूशन प्रोसेस एग्जीक्यूशन को अवॉइड करके व पेज फोल्ड को ही सर्विस करता रहेगा ठीक है तो मैं लिख देता हूं यहां पर इसमें क्या होगा इस सिचुएशन में क्या होगा सीपीयू विल बी मोर बिजी सर्विसिंग पेज फॉल्ड्स ठीक है तो आपकी सीपीयू साइकिल्स तो जाती ही है पेज फॉल्ड को सर्विस करते हुए ठीक है तो सीपीयू साइकिल यहां पर बिजी हो जाएंगी सीपीयू साइकिल यहां पे पेज फॉल्ड सर्विस करने में चली जाएंगी तो आपका मोस्टली जो सीपीयू है वो पेज फॉल्ड को सर्विस करने में जा रहा है ठीक है यूजफुल वर्क आपका हो नहीं रहा तो इससे क्या होगा ड्रास्ट्रिंग और थ्रू पुट कम आएगा ठीक है प्रोसेस बहुत स्लो स्लो स्लो स्लो चल रही होंगे क्योंकि स्वाइप इन स्वाइप आउट स्वाइप इन स्वाइप आउट इसी में लगा हुआ है सब कुछ इस सिचुएशन में क्या होगा p1 के आपके तीन पेजेस एग्जीक्यूट होंगे p2 के तीन पेज एग्जीक्यूट होंगे और जब p1 p2 के तीन पेज एग्जीक्यूट हो जाएंगे जस्ट इमेजिन आपका ये भी एग्जीक्यूट हो गया ये भी एग्जीक्यूट हो गया p3 एग्जीक्यूट हो रहा था और इस पॉइंट पे आया कि भाई मुझे पेज p1 का पेज फोर ला दो ठीक है इसकी रिक्वेस्ट चली गई जब इसकी रिक्वेस्ट जाएगी तो p1 p2 मैं ऑलरेडी एग्जीक्यूट कर चुका हूंगा तो क्या होगा जब एप एरिया से p1 का पेज फोर आएगा p1 का पेज फोर आएगा यहां पर p1 का पेज फोर तो वो इजली इसको डिएलोकेट करके मैं इसको लोड कर दूंगा ठीक है तो इस तरीके मेरे पास फ्री स्पेसेस भी रहेंगी ठीक है तो सिचुएशन वन के अंदर मैंने क्या बोला कम पेज फॉल्ट्स होंगे तो ज्यादा थ्रू पुट आएगी ठीक है ज्यादा एफिशिएंटली सिस्टम चल पाएगा सीब लेशन हाई रहेगी इस केस में क्या होगा इस केस में डिग्री ऑफ मल्टी प्रोग्रामिंग तो हाई है डिग्री ऑफ मल्टी प्रोग्रामिंग तो हाई है बट आपका जो सारा सारा टाइम है पेज फॉल्ट बेसिकली हैंडल करने में चला जाएगा ठीक है यह आपका सिंपल केस है और यह आपका क्या है यह हाई डिग्री मल्टी प्रोग्रामिंग डिग्री ऑफ मल्टी प्रोग्रामिंग बट थ्रेशिंग इस टाइप का सिचुएशन आएगी ठीक है तो इसको एक बार डिस्कस करते हैं कि यह बेसिकली दिखता कैसा है ठीक है एक रिलेशन है इन दोनों के बीच में आपके सीपी यूटिलाइजेशन के बीच में और डिग्री ऑफ मल्टी प्रोग्रामिंग के बीच में क्या रिलेशन है वो देखते हैं एक बार नोट्स पर चलते हैं सीधा तो सबसे पहले देखते हैं आपका थ्रेशिंग क्या है इफ द प्रोसेस डज नॉट हैव नंबर ऑफ फ्रेम्स इट नीड्स टू सपोर्ट इन एक्टिव ू य ठीक है यानी कि जब भी मैं रम के अंदर कोई प्रोसेस को लोड करता हूं तो मैं इंश्योर करता हूं कि कुछ अमाउंट ऑफ पेजेस उसके लोड हो ऐसा ना हो कि एक ही पेज लोड हो जाए ठीक है कुछ अमाउंट ऑफ पेजेस पांच-छह पेजेस लोड हो जाए जिसकी वजह से क्या होगा एक एक्टिव यूज़ आपका आसपास का कोड सब होगा वहां पे मम के अंदर तो कम पेज फॉल्ड जनरेट होंगे ठीक है तो अगर उसके पास एनफ फ्रेम्स नहीं होते यानी कि एनफ पेजेस जो हैं आपके फ्रेम्स में लोडेड नहीं होते तो इस केस में क्या होगा इट विल क्विकली पेज फॉल्ड ठीक है यही हमने डिस्कस किया जल्दी से पेज फॉल्ड जनरेट हो जाएगा p1 का पेज वन जल्दी से खत्म हुआ तभी पेज फॉल जनरेट हो गया कि मुझे पेज टू चाहिए ठीक है एट दिस पॉइंट इट मस्ट रिप्लेस सम पेज तो कोई और कोई पेज रिप्लेस करना पड़ेगा तो जब पेज रिप्लेस होगा तो स्वप आउट भी होगा और स्वप इन भी होगा दोनों में टाइम लगेगा क्योंकि यह होता किससे स्वप स्पेस से स्वप स्पेस कहां होती है डिस्क में डिस्क का एक्सेस टाइम क्या होता है हाई ठीक है हाउ एवर सिंस ऑल इट्स पेजेस आर इन एक्टिव यूज अब ऐसा हो सकता है जैसे कि हमने यहां बोला था कि प2 प2 का जो पेज वना है वो भी यूज में है p3 का पेज वना है वो यूज में ये भी यूज में है ये भी यूज में है सारे यूज में ठीक है तो p1 का जो पेज टू आएगा वो इनमें से किसको रिप्लेस करें किसको रिप्लेस करे तो यही वो कह रहा है कि एक्टिव यूज में है सारे इसलिए कह रहे हैं हम यहां पे सिंस ऑल इट्स पेजेस आर इन एक्टिव यूज इट मस्ट रिप्लेस अ पेज दैट विल बी नीडेड अगेन राइट अवे इट शुड बी रिप्लेस इट मस्ट रिप्लेस अ पेज दैट विल बी नीडेड राइट अवे यानी कि इसको ऐसा पेज रिप्लेस करना पड़ेगा जो कि हो सकता है तभी के तभी आपको रिमूव करना पड़े दोबारा से रिपीट करते हैं आपके पास आपने क्या करा किसी प्रोसेस के पेजेस लोड करे फ्रेम्स के अंदर और वह इतने एनफ आपने लोड ही नहीं करे कि एग्जीक्यूशन स्मूथली चल पाए तो क्या हुआ जल्दी से पेज फॉल्ट जनरेट हुआ पेज फॉल्ड जनरेट होने के बाद क्या होगा कि आपको दूसरे पेजेस जो कि फ्रेम्स में एलोकेटेड है उनको फ्री करना पड़ेगा और हो सकता है जो दूसरे पेजेस एलोकेटेड है वो भी एक्टिव यूज में हो यानी कंटक्ट स्विच हो एकदम से एक्टिव यूज आ जाए और वहां भी पेज फॉल जनरेट हो जाए तो इससे क्या होगा इट मस्ट रिप्लेस ए पेज दैट विल बी नीडेड राइट अवे ठीक है रिप्लेस कर करना पड़ेगा कंसीक्वेंटली इट क्विकली पेज फॉल्ड अगेन एंड अगेन यानी कि जल् अब दूसरी प्रोसेस पेज फॉल्ड कर जाएगी फिर तीसरी प्रोसेस पेज फॉल्ड कर जाएगी ऐसे करते करते पेज फॉल्ड जनरेट होता ही रहेगा तो अगेन अगेन होता रहेगा रिप्लेसिंग पेजेस दैट इट मस्ट ब्रिंग बैक इन इमीडिएट यानी कि आपने जो पेज अभी-अभी स्वाइप आउट किया है अगले ही सेकंड आपको फिर से स्वाइप इन करना पड़ेगा अब दूसरा पेज आपने स्वाइप आउट कर दिया फिर स्वाइप इन ऐसे करते-करते आपका यहां पर एक हाई पेजिंग एक्टिविटी हो जाएगी हाई पेजिंग एक्टिविटी बोल रहा हूं मतलब स्वाइप इन स्वाइप आउट यही चलता रहेगा इससे क्या होगा इससे आपका सिस्टम जो है वो थ्रेशिंग में चला गया हम बोलते हैं सिस्टम इज थ्रेशिंग एंड इट स्पेंड मोर टाइम सर्विसिंग द पेज फॉट देन एग्जीक्यूटिंग द प्रोसेस यही हमने डिस्कस किया इस केस में जैसा हो रहा था ठीक है p1 का पेज वन जैसे ही p1 का पेज टू आएगा तो मुझे इनमें से किसी एक को डी एलोकेट करना पड़ेगा डी एलोकेट करना पड़ेगा ठीक है जैसे ही डिएलोकेट हो ग सपोज आपने p3 का पेज वन डिएलोकेट करा यानी कि स्वप आउट कर दिया बेसिकली स्वप आउट कर दिया अगले टाइम मान लो अ p3 का पेज वन पर कॉल आ गई यानी कि p3 एग्जीक्यूट होने लग गया तो अब मुझे इसको स्वाइप इन करना पड़ेगा जब इसको स्वाइप इन करूंगा तो मुझे फिर से एक पेज जो कि एक्टिव यूज में उसको रिप्लेस करना पड़ेगा ठीक है तो इस इस चक्कर में क्या होगा सीपीयू आपका पेज फॉल्ट ही सर्विस करने में बिजी रहेगा एक्चुअल काम कर ही नहीं पाएगा तो इसको एक बार डायग्राम से समझते हैं देखो जैसा कि मैंने कहा था डिग्री ऑफ मल्टी प्रोग्रामिंग और सीपी यूटिलाइजेशन का एक डायरेक्ट आपका रिलेशन है डिग्री ऑफ मल्टी प्रोग्रामिंग क्या होता है जैसे कि यहां पे डिग्री ऑफ मल्टी प्रोग्रामिंग क्या है सिक्स यानी कि सिक्स प्रोसेसेस आपने पेज का कांसेप्ट यूज करके पेज पेज की फॉर्म में आपने रम के अंदर एलोकेट कर दिए है इसके अंदर हमने क्या किया है सिर्फ दो ही आपकी प्रोसेसेस जो है हमने पेज की फॉर्म में यहां पे रम के अंदर लोकेट करी है ठीक है तो अब देखो जब यहां पर थ्रेशिंग नहीं हो रही यानी कि आपका पेज फॉल्ट्स कम है तो इस केस में मैंने डिग्री ऑ मल्टीप में कम रखी हुई है ठीक है इसका मतलब डिग्री ऑफ मल्टी बढ़ाता रहता हूं बढ़ाता रहता हूं बढ़ाता रहता हूं पेज फॉल्स भी बढ़ते जाते हैं बढ़ते जाते बढ़ते जाते हैं तो यहां देखो एक बार डिग्री ऑफ मल्टी प्रोग्रामिंग जब कम होती है ठीक है लो होती है तो सीपी टला भी लो होती है ठीक है रीजन बीइंग डिग्री ऑफ मल्टीप कमा का क्या मतलब है आपने सपोज दो ही प्रोसेस एलोकेट की हुई है ठीक है आपने सिर्फ दो ही प्रोसेस लोकेट करी हुई है तो इसका मतलब क्या होगा कि मान लो एक प्रोसेस आपकी आयो करने चली गई ठीक है तो आप दूसरी प्रोसेस को एलोकेट करोगे और सपोज दूसरी प्रोसेस भी आयो करने चली गई तब क्या करोगे दोनों प्रोसेस आईओ कर रही है रम के अंदर दोनों प्रोसेस पड़ी है सपोज इसी के केस में ले लेते हैं हम आपकी एग्जीक्यूट हो रही थी इस पॉइंट पे ये आओ करने चली गई ठीक है ये आयो कर रही है बिजी है आयो करने में तो ये वेट करेगी प्रोसेस यानी p1 इज वेटिंग सिमिलरली यह वाली प्रोसेस भी आपकी आईओ करने चली गई तो जब दोनों ही आईओ करने चली गई और रम के अंदर कोई और प्रोसेस ही नहीं है या डिग्री मल्टीप्ला यहां प टू है तो यानी कि कोई और प्रोसेस नहीं है तो क्या सीपीय जो है आइडल बैठा रहेगा तो सीपी टशन लो हो जाएगी तो वो यही कह रहा है कि डिग्र मल्टीप्ला जो कम होती है सीप टशन भी कम होती है तो जैसे जैसे डिग्र मल्टी बढ़ाता जाता हूं बढ़ाता जाता हूं आपकी सीप टशन बढ़ती जाती है सपोज यहां पर दो की जगह आपकी तीन प्रोसेस होती है तो मान लो पहली यह वाली भी आयो करने गई होती और यह वाली भी आयो करने गई होती तो p3 को एग्जीक्यूट कर लेता सिमिलरली मान लो p3 भी आय करने गई होती तो p4 को एग्जीक्यूट कर लेता p4 ले आता तो तो डिग्री मल्टीप बढ़ाता जाऊंगा तो आपकी लाइजेशन बढ़ती जाएगी बढ़ती जाएगी बट एक सिस्टम का एक पीक आता है सपोज इसको लैडा बोल देता हूं मैं ये पीक क्या है ये पीक एक थ्रेशिंग पॉइंट है थ्रेशिंग पॉइंट है इसके आगे जो है ना इसके आगे आपकी थ्रेशिंग स्टार्ट हो जाएगी यानी कि आपका जो सीपीयू है वो मोर टाइम पेज फॉल्ट सर्विस करने में लगा देगा ठीक है तो फिर ड्रास्ट्रिंग यूटिलाइजेशन यहां पे डाउन हो जाएगी और सीपी यूटिलाइजेशन डाउन हुई क्यों है क्योंकि रम के अंदर जैसे कि इस केस में रम के अंदर प्रोसेसेस तो खूब पड़ी हुई है छह की छह प्रोसेस पड़ी हुई है बट प्रॉब्लम क्या आ रही है सारे ही पेज फॉल्ट सर्विस करने में बिजी है जैसे ही दूसरी प्रोसेस एग्जीक्यूट होना शुरू होती है उसको दूसरा पेज चाहिए होता है जैसे दूसरा पेज चाहिए होता है तो आप आप पेज फॉल्ड सर्विस करते हो पेज फोल्ड जैसे ही सर्विस करते हो तो किसी और प्रोसेस का पेज उड़ा देते हो जैसे ही किसी और प्रोसेस का पेज उड़ाते हो फिर जब दूसरी प्रोसेस को वो पेज वापस से चाहिए होता है तो वो वापस से पेज फॉर जनरेट करती है और स्वाइप इन स्वाइप आउट स्वाइप इन स्वाट इसी में आपका सारा टाइम चला जाता है ठीक है तो यही वो कह रहा है कि जैसे ही थ्रेशिंग स्टार्ट होती है आपका सीपी लेशन ड्रास्ट्रिंग का कॉज क्या है इसको एक बार कहानी समझते हैं कि कैसे ये एक्चुअली होता है डिस्कस कर चुके हैं वैसे यहां पे एक बार फॉर्मली देख लेते हैं सबसे पहले क्या होता है इनिशियली सीपी लेशन लो रहती है ठीक है सीप लेशन लो है तो सीप लेशन लो होती है तो क्या करता है सिस्टम देखता है सीपी रिलेशन लो है तो आपको वो एलटीएस को बोलता है लॉन्ग टर्म स्केड्यूल को बोलता है कि मुझे और प्रोसेसेस दे दो ठीक है तो क्या करता है कि आपका रम के अंदर मोर प्रोसेसेस लोड कर लेता है पेजेस की फॉर्म में जैसे ही लोड करता है सीपी लाइजेशन बढ़ने लग जाती है बढ़ने लग जाती है जैसे ही बढ़ने लगती है बढ़ने लगती है धीरे-धीरे तो क्या होता है सीपी यूटिलाइजेशन बढ़ती रहती है बढ़ती रहती है एलटीएस को वो मांगता रहता है प्रोसेस दे दो दे दो तो उस केस में क्या होता है ए ग्लोबल पेज रिप्लेसमेंट एल्गोरिथम रिप्लेस पेज विदाउट रिगार्ड ऑफ प्रोसेसेस ठीक है आपकी शप टेशन बढ़ाते जा रहे हो बढ़ाते जा रहे हो तो क्या होगा नए पेजेस एलोकेट करने के लिए सपोज आप अने स्टार्टिंग में प्रोसेस वन के सारे बहुत सारे पेजेस एलोकेट कर लिए ठीक है ऐसे प्रोसेस टू के बहुत सारे पेजेस एलोकेट कर लिए बट सीप टशन लो है तो आप क्या कर रहे हो डिग्री मल्टी बढ़ाते जा रहे हो बढ़ाते जा ते हो बढ़ाते जा रहे हो जैसे कि यहां पे बढ़ाते जा रहे बढ़ाते जा रहे हो तो आपको क्या करना पड़ेगा कुछ पर्टिकुलर प्रोसेसेस के पेजेस जो हैं आपको स्व स्वप एरिया में रखने पड़ेंगे यानी कि हर प्रोसेस के आप दो-तीन दो तीन बेसिकली पेजेस जो है आप एलोकेट करके रखोगे रैम के अंदर बाकी स्वैप एरिया में डालते रहोगे तो वो यही कह रहा है कि एक ग्लोबल पज रिप्लेस एल्गोरिथम क्या करती है कि बाकी प्रोसेसेस के जो कुछ कुछ पेजेस है उनको उड़ाती जाती है ठीक है यानी कि अल्टीमेटली ये वाली सिचुएशन बनने वाली है थोड़ी देर में यह वाली सिचुएशन कि एक-एक पेज ही पड़ा होगा आपका इसके अंदर ठीक है रम के अंदर और बेसिकली बाकी सब कहां पड़े होंगे स्वप एरिया के अंदर ठीक है तो यही कह रहा है धीरे-धीरे बढ़ाते जाएंगे ए प्रोसेस मे नीड मोर पेजेस कॉसेस पेज फॉल्ड अगेन यानी कि जब जैसे ही प्रोसेस को और कोई पेज चाहिए होता है वो प्रोसेस पेज फॉल्ड कर देती है ठीक है और अदर प्रोसेसेस फ्रेम्स आर रिप्लेस एंड दे मे बी नीडेड सून यानी कि वो कह रहा है कि आपने जो एक प्रोसेस ने पेज फॉल जनरेट किया है ठीक है और पेज फॉल जनरेट करने के बाद जो उस प्रोसेस का पेज लाया गया है तो लाते हुए किसी और पे प्रोसेस का पेज उड़ा दिया होगा ठीक है हो सकता है आप किसी और प्रोसेस को फिर से वो पेज चाहिए हो ज वो फिर से पेज चाहिए होगा तो क्या होगा आपका फिर से आप पेज फॉल्ड जनरेट करोगे तो जैसे ही पेज फॉल्ड पेज फॉल्ड जनरेट करोगे तो क्या होगा बहुत सारे पेज फॉल्ड जनरेट हो जाएंगे और पेज होल जनरेट होने के बाद जो पेज डिवाइस होगा आपके उसके बा बहुत सारे रिक्वेस्ट क्यू होती चले जाएंगे कि भाई पेज वन का भी पेज प्रोसेस वन का भी पेज फॉल्ट देखना है प्रोसेस टू का पेज फॉल्ट देखना है तो सारा सारा बेसिकली पेज फॉल्ट में टाइम जाता जा रहा है पेज डिवाइस के लोड भरता जा रहा है तो सीपीयू यूजफुल वर्क ना करके कुछ और वर्क करने में लगा हुआ है ठीक है इससे क्या होगा आपकी सीपीयू की यूजफुल यूटिलाइजेशन डाउन होती चली जाएगी जैसे ही वो डाउन होती चली जाएगी तो क्या होगा सीपीयू स्केड्यूल क्या दिखेगा कि नाउ कि आपकी सीप लाइजेशन डाउन है तो क्या करेगा फिर से डिग्री ऑफ मल्टी प्रोग्रामिंग बढ़ा देगा ठीक है फिर से वो डिग्री ऑफ मल्टी प्रोग्राम बढ़ा देगा और डिग मल्टी प्रोग्राम बढ़ाएगा अब यहां पे फिर से उसने डिग्र मल्टी प्रांग क्यों बढ़ाई है क्योंकि उसने देखा कि सप लेशन डाउन होती जा रही है प्रोसेस एक्यूट ही नहीं हो रही है ठीक है प्रोसेस पेज फॉल्ट करने में लगी हुई है स्प स्केड्यूल फिर से और प्रोसेसेस ले आएगा डिग्री मल्टीप बढ़ाने के लिए अल्टीमेटली क्या होगा डिग्री मल्टी प्रोग्रामिंग इतनी ज्यादा बढ़ जाएगी कि आपके सीपी यूटिलाइजेशन जो है ड्रॉप हो जाएगी ड्रस्ट वो इसे ही कह रहा है एक थ्रेशिंग पॉइंट आएगा उसके बाद ड्रास्ट्रिंग यानी कि कोई यूजफुल वर्क नहीं हो रहा है ठीक है तो थ्रेशिंग के टाइम आपका क्या हो रहा है थ्रेशिंग के टाइम आपका कि ठीक है नो यूजफुल वर्क यानी कि कोई प्रोसेस एग्जीक्यूट नहीं हो रही ठीक है सारा टाइम कहां जा रहा है टाइम कहां जा रहा है टाइम आपका जा रहा है पेज फॉल्ट सर्विस करने में तो सीप डाउन हो गई पेज फड सर्विस करते जा रहे हो तो इस तरीके से य हमारा काम चलता है चलो आगे बढ़ते हैं अब एक ब देखते हैं कि आप हमने यह तो पहचान लिया कि थ्रेशिंग हो रही है ठीक है थ्रेशिंग हो रही है इसको अवॉइड कैसे करें ठीक है कैसे हैंडल करें बेसिकली थ्रेशिंग को तो थ्रेशिंग को हैंडल करने के लिए हमारे पास दो तरीके हैं पहली टेक्निक है जिसको मैं बोलता हूं वर्किंग सेट मॉडल ठीक है इसके बारे में हम पढ़ चुके हैं इसमें हम क्या करते हैं एक कांसेप्ट यूज करते हैं लोकैलिटी का लोकैलिटी मतलब किसी एक प्रोसेस का लोकल एरिया यानी कि मेन का आसपास के फंक्शन अब मेन में मान लो पांच फंक्शंस की कॉल है तो मैंने क्या करा उस पांच फंक्शंस के कॉरस्पॉडिंग पेजेस जो हैं वो भी उठा उठा के मैंने आपके रैम के अंदर लोड कर दिए ठीक है तो वो यही कह रहा है द बेस बेसिक प्रिंसिपल स्टेट्स दैट इफ वी एलोकेट एनफ फ्रेम टू अ प्रोसेस टू अमेट इट्स करंट लोकेलिटी अभी अभी तक के लोकैलिटी यानी कि उस पर्टिकुलर पले हम बोल सकते हैं उस पर्टिकुलर फंक्शन कॉल के करेस्पॉन्डिंग्ली हैं उसके आसपास उस लोकैलिटी को हम लोड कर पाएं तो इट विल ओनली फॉल्ट व्हेन एवर इट मूव्स टू सम अदर न्यू लोकेलिटी ठीक है यानी कि वो तब भी पेज फॉल्ट तब भी होगा ठीक है बट पेज फॉल्ट कम होंगे क्योंकि आपने एनफ फ्रेम्स एलोकेट करके रखे हुए हैं ए पेज एनफ पेजेस लोड करके रखे हुए हैं इससे पेज फॉल्ट कम हो जाएंगे क्योंकि ना एक नेचर होता है कोड का कोड का ही नेचर होता है वो अपनी एक पर्टिकुलर लोकैलिटी में कुछ टाइम काम करता है उसके बाद किसी और लोकैलिटी में मूव करता है ठीक है तो वो यही कह रहा है लोकैलिटी पहचान के हम करंट लोकैलिटी को लोड करेंगे तो पेज फोट फिर तभी जनरेट होगा जब न्यू लोकेलिटी में जाएगा बट इफ द एलोकेटेड फ्रेम्स आर लेसर देन द साइज ऑफ द करंट लोकेलिटी यानी कि जो करंट लोकैलिटी है मान लो करंट लोकैलिटी आपकी एक बनती है पांच पेजेस की पांच पेजेस की लोकैलिटी बनती है तो आपने क्या करा पांच पेजेस ना लोड करके आपने लोड कितने करे हैं कितने फ्रेम्स लोकेट करे हैं आपने दो ही करे हैं तो इससे क्या होगा पेज फॉल ज्यादा होंगे ठीक है तो इस केस में क्या होगा तो प्रोसेस बाउंड टू थ्रश यानी कि प्रोसेस थ्रश करेगी तो वर्किंग सेट मॉडल क्या कहता है आप लोकैलिटी के प्रिंसिपल पर चलोगे एक प्रोसेस को इतने फ्रेम्स एलोकेट करोगे ही करोगे कि उसके करंट लोकैलिटी लोड हो जाए करंट लोकेलिटी लोड हो गई तो वो तभी पेज फोल्ड करेगा जब वो न्यू लोकेलिटी प जाएगा ठीक है और इस कांसेप्ट के तहत हम यह मानते हैं और ऐसा होता भी है कि आपका जो प्रोसेस है वो थोड़े टाइम के लिए एक पर्टिकुलर लोकैलिटी में ही बेसिकली मैं कह सकता हूं टू एंड फ्रो करती है उसी में एग्जीक्यूट होती रहती है उसके बाद न्यू लोकैलिटी में मूव होती है ठीक है तो बहुत ही बढ़िया यह आपका हो गया वर्किंग सेट मॉडल दूसरा मॉडल आपका पेज फ फ्रीक्वेंसी अब इसमें क्या करेंगे हम इसमें इस ये एक टाइप से ऐसा था कि इसमें हमने शुरू में ही कोशिश करी कि हम थ्रेशिंग होने ही ना दे ठीक है यानी कि एक प्रोसेस के पर्टिकुलर फ्रेम्स को लोड कर ले पर्टिकुलर अमाउंट ऑफ फ्रेम्स को इसमें क्या कर रहे हैं हम पेज फॉल्ट को एज ए मैं बोल सकता हूं ट्यूनिंग पैरामीटर इसको मान के हम इसको क्लोजल ऑब्जर्व करेंगे और पेज फॉल्ट को कम ज्यादा करने की कोशिश करेंगे पेज फॉल्ट फ्रीक्वेंसी को वो कैसे है देखो थ्रेशिंग के केस में क्या होता है पेज फोल्ड का रेट बहुत हाई होता है ठीक है तो वी वांट टू कंट्रोल द पेज फोल्ड हम पेज फोल्ड को कंट्रोल करने की कोशिश करेंगे वो कैसे है देखो व्हेन एवर इट इज टू हाई जबक पेज फॉल्ट का जो फ्रीक्वेंसी बहुत ज्यादा होगी द प्रोसेस नीड्स मोर फ्रेम यानी कि इस केस में देखते हैं इस केस में क्या था हर एक प्रोसेस को एक-एक फ्रेम एलोकेटेड था तो इस केस में क्या होगा हाई पेज फोल्ड का रेट होगा हाई पेज फोल्ड का रेट का क्या मतलब है हम ये कहना चाह रहे हैं कि भाई p1 के करेस्पॉन्डिंग्ली को एलोकेट कर दोगे तो ये कम पेज कम बेसिकली पेज फोल्ड हो जाएंगे तो फ्रीक्वेंसी पेज फॉल्ट की डिक्रीज हो जाएगी तो वो यही कह रहा है कि व्हेन एवर इट इज टू हाई द प्रोसेस नीड्स मोर फ्रेम यानी कि और फ्रेम चाहिए उसको उसके विपरीत कन्वर्सली क्या होगा इफ द पेज फॉल्ड रेट इज टू लो यानी पेज फोल्ड बहुत कम हो रहे हैं हो ही नहीं रहे ना के बराबर पेज फोल्ड हो रहे हैं इसका मतलब क्या है देन द प्रोसेस मे हैव टू मेनी फ्रेम्स यानी कि मान लो जस्ट इमेजिन कि आपने पूरी पूरी प्रोसेस एक एक्सट्रीम के ते आपने पूरी पूरी प्रोसेस लोड कर दी अब जब आप पूरी पूरी प्रोसेस लोड कर दोगे आपने दो प्रोसेस पूरी-पूरी लोड कर दी तो उसमें पेज फोल्ड होंगे ही नहीं अब पेज फोल्ड होई नहीं रहे तो इस केस में क्या मतलब है आपने डिग्री ऑफ मल्टीप बहुत कम रखी हुई है तो दो ही प्रोसेसेस रखी हुई है तो दो प्रोसेस रखी हुई है तो इस केस में बेस फॉल्ट हो ही नहीं रहे हैं तो इसका मतलब मैं ओवर प्रोसेस को भी लोड कर सकता हूं ठीक है पेजिंग के कंसेप्ट के अंदर यही आता है ना कि आप छोटे-छोटे पेजेस में डिवाइड कर देते हो और फिर कुछ-कुछ पर्टिकुलर पेजेस लोड कर लेते हो ताकि डिग्री मल्टीप में बढ़ जाए यानी कि आपने इतनी कम पेज फोल्ड रेट रखा हुआ है कि आपके प्रोसेस के बाद बहुत ज्यादा फ्रेम्स आपने एलोकेट करे हुए हैं ठीक है एक्सट्रीम केने इसका डिस्कस कर लिया कि पूरी पूरी प्रोसेस ही लोड करी हुई है तो हम क्या करेंगे इस केस में क्या करने की कोशिश करेंगे कि हम किसी एक पर्टिकुलर प्रोसेस से फ्रेम्स को डी एलोकेट करवा के स्वप एरिया में डाल देंगे उसके पेजेस ताकि और किसी और प्रोसेस के पेजेस को हम अकोमोडेट्स अपर एंड लोअर बाउंड ऑफ द डिजायर्ड पेज फोल्ड यानी कि एक अपर लोअर बाउंड हमने डिसाइड कर लिया इसको देखेंगे एक बार डायग्राम से समझेंगे ठीक है कुछ कंफ्यूजन हो रही हो तो इफ पेज फॉल रेट एक्सीड्स द अपर लिमिट यानी अपर लिमिट से ज्यादा हो गया बहुत ज्यादा पेस फोल्ड हो गया यानी थ्रेशिंग होने लग गई इस केस में क्या करेंगे हम एलोकेट द प्रोसेस अनदर फ्रेम ठीक है यानी कि उस प्रोसेस के करेस्पॉन्डिंग्ली केट कर देंगे यानी कि उसकी लोकैलिटी को बढ़ा देंगे और बढ़ाने से क्या होगा हो सकता है लोकैलिटी बढ़ाते बढ़ाते ऐसा भी हो कि आपको दूसरी प्रोसेसेस जो है वो पूरी पूरी आपको मीडियम ट शेड्यूलर के तहत आपको वापस से स्वाइप एरिया में डाल देनी पड़ी या फिर उसको बेसिकली पूरा ही वेट स्टेट पर डाल देना पड़े कि भाई अभी मता तो एग्जीक्यूट हो मत हो ठीक है उसको पूरा पूरे प्रोसेस को स्वाइप आउट करना पड़ ऐसा भी हो सकता है ठीक है तो अपर लिमिट से ज्यादा हो तो हम प्रोसेस को और ज्यादा फ्रेम्स प्रोवाइड करेंगे इफ पेज फॉल्ड रेट फॉल्स बिलो द लोअर लिमिट या लोअर से में कम हो गया यानी कि पेज फोल्ड रेट हो ही नहीं रहा यानी पेज फोल्स हो ही नहीं रहे हैं तो रिमूव अ फ्रेम फ्रॉम द प्रोसेस यानी कि किसी भी पर्टिकुलर प्रोसेस से हम उसके जो फ्रेम्स है वह वापस ले लेंगे और किसी नई प्रोसेस को दे देंगे ठीक है डिगो मल्टीप बढ़ा देंगे हम तो बाय कंट्रोलिंग पेज फॉल्ट थ्रेशिंग को हम प्रिवेंट कर सकते हैं इस वाले पेज फॉल्ट फ्रीक्वेंसी कांसेप्ट को एक बार डायग्राम से समझते हैं ये रहा आपका डायग्राम ठीक है अब डायग्राम समझते हैं तो इसमें हम कहना चाह रहे हैं ये आपका अपर बाउंड है ठीक है ये आपका लोवर बाउंड है ये नंबर ऑफ फ्रेम्स है ठीक है और ये क्या है आपका ये आपका पेज फोल्ड रेट है तो हम क्या करेंगे जस्ट इमेजिन आपके नंबर ऑफ फ्रेम्स किसी पर्टिकुलर प्रोसेस को बहुत कम है तो जब बहुत कम होंगे बहुत कम फ्रेम्स होंगे तो क्या होगा उस केस में पेज फॉल्ट रेट बहुत ज्यादा होगा राइट यानी कि कोई एक प्रोसेस को एक या दो ही फ्रेम दे रखे हैं यानी एक एक प्रोसेस को एक ही पेज लोड कर रखा है एक प्रोसेस का एक ही पेज लोड कर रखा है तो वो ही वाला केस है ठीक है आपका यही वाला केस है यही वाला केस है इसमें पेज फोल्ड रेट बहुत हाई होगा तो जब पेज फोल्ड रेट बहुत हाई है अपर बाउंड को भी क्रॉस कर गया तो हम किसी प्रोसेस के नंबर ऑफ फ्रेम्स बढ़ा देंगे यानी कि उसे और फ्रेम्स एलोकेट कर देंगे और पेजेस उसके लिए आएंगे उसके करट लोकेलिटी को लाने की कोशिश करेंगे इससे क्या होगा जैसे ही करंट लोकैलिटी हर मान लो हर प्रोसेस के आपने अभी स्टार्टिंग में मान लो हर प्र प्रोसेस के एक एक पेज थे जैसे उसमें था ना छह प्रोसेस के छह पेज थे आपने क्या करा छह प्रोसेस के तीन-तीन पेजेस कर दिए बढ़ा दिया बेसिकली बढ़ा दिया और कुछ प्रोसेसेस स्वप आउट कर दी पूरी पूरी और मान लो मान लो हमने चार ही प्रोसेस रखी और चार प्रोसेस के तीन तीन तीन तीन बेसिकली फ्रेम्स एलोकेट कर दिए तो इस केस में क्या होगा आपका पेज फोल्ड रेट डिक्रीज हो जाएगा तो डिक्रीज हो जाएगा तो अगर इस एरिया में पेज फोल्ड रेट रहता है तो इट इज ओके और वो इतना लो हो जाता है कि आपने क्या करा कि इतने ज्यादा फ्रेम्स एलोकेट कर दिए किसी एक पर्टिकुलर प्रोसेस को इस पॉइंट को देखते हैं इतने ज्यादा फ्रेम्स एलोकेट कर दि है कि अब वो पेज फोल्ड कर ही नहीं रही है अब पेज फोल्ड नहीं कर रही है तो क्या होगा आपने लोअर बंड सेट किया होगा कि भाई पेज फोल्ड होने चाहिए बट इतने भी कम नहीं होने चाहिए ठीक है इतने कम नहीं होने चाहिए तो इतने कम होंगे तो हम क्या करेंगे उससे नंबर ऑफ फ्रेम्स रिमूव करेंगे यानी कि किसी पर्टिकुलर प्रोसेस से फ्रेम्स को रिमूव करेंगे बहुत सारी सारी प्रोसेस है उससे दो-दो तीन-तीन फ्रेम्स हमने वापस ले लिए और वापस लेके हमने स्वाइप आउट कर दिए तो इसमें क्या होगा इससे थोड़ी स्पेस बनेगी रम के अंदर और हम और बेसिकली प्रोसेसेस को को अकोमोडेट्स प्रोग्रामिंग बढ़ा सकते हैं तो मैं अगर मोटा-मोटा देखूं ना तो ये सारी चीजें रिलेटेड है पेज फॉल्ट डिग्री ऑफ मल्टी प्रोग्रामिंग फ्रेम्स कितने लोकेट की है थ्रेशिंग ये सारी चीज रिलेटेड है ठीक है पेजिंग का कांसेप्ट हमने रम में यूज इसलिए किया था ताकि हम रिगो मल्टी प्रोग्राम बढ़ा दें और एज ए रिजल्ट पेजिंग के चक्कर में हमारे पास एक प्रॉब्लम आई थी जिसको हम पेज फॉल्ड कह रहे थे कि भाई पेज फॉल्ड तो करना ही पड़ेगा सर्विस राइट तो हम चाहते हैं कि बहुत ज्यादा पेज फॉल्ड भी ना हो और बहुत कम पेज फॉल्ड भी ना हो क्योंकि आप बहुत ज्यादा पेज फॉल्ट होते हैं तो सारा काम कहां चला जाता है थ्रेशिंग होने लग जाती है सारा काम सारा सीपीयू का जो यूजफुल वर्क है वो सारा पेज फोर्ड को सर्विस में करने में चला जाता है यूज़फुल वर्क होता ही नहीं है सीपीयू यूटिलाइजेशन डाउन होती रहती है तो ये तब होता है जब हाई पेज फॉल्ड रेट होता है जो लो पेज फॉल्ड रेट होता है तो इस केस में क्या होता है कि आपकी पूरी पूरी प्रोसेस पेज के अंदर उसके अंदर पड़ी हुई है फ्रेम के अंदर यानी ज्यादा नंबर ऑफ फ्रेम्स एलोकेटेड टू अ पर्टिकुलर प्रोसेस वो इतने ज्यादा हैं कि जिस चक्कर में आपको पेज फॉल्ट हो ही नहीं रहा है और होने की वजह से क्या होगा जो पेज फॉल्ड कम हो रहे होंगे तो इसका मतलब यह भी है कि आपके डिग्री ऑफ मल्टी प्रोग्रामिंग कम है यानी कि आपने कम प्रोसेसेस रम के अंदर लेके आए हो आप ठीक है तो हम ये भी नहीं चाहते हम चाहते हैं डिग्र मल्टी प्रोग्रामिंग भी हाई रहे ठीक है ज्यादा ज्यादा बेसिकली प्रोसेसेस रहे हमारे रम में ठीक है तो हम चाहते हैं बीच का चाहते हैं इसमें ना इस एरिया को मेंटेन करना चाहते हैं इस एरिया को ना हम यह वाला एरिया चाहते ना हम ये वाला एरिया चाहते क्यों क्योंकि इस एरिया में भी सीपी यूटिलाइजेशन क्या होगी लो और इस एरिया में क्या होगी यहां पर भी सीपी यूटिलाइजेशन लो रहेगी क्योंकि वही वाला केस जो हमने डिस्कस किया था कि मान लो दो ही प्रोसेस आपके पास है और दोनों ही आयो करने चली गई तो क्या होगा सीपीयू आइडल बैठा रहेगा यहां भी तो बहुत ही बढ़िया तो हमने पढ़ा थ्रेशिंग क्या होती है थ्रेशिंग डेफिनेशन पढ़ ली हाई प्रेजिंग एक्टिविटी को थ्रेशिंग कहते हैं सीपी यूटिलाइजेशन और डिग्री ऑफ मल्टी प्रोग्रामिंग का क्या रिलेशन है और किस पॉइंट पे जाकर थ्रेशिंग होती है ठीक है यह डायग्राम बहुत ही ज्यादा इंपॉर्टेंट है ठीक है उसके बाद थ्रेशिंग को हैंडल कैसे कर सकते हैं ठीक है यह भी बहुत इंपोर्टेंट टॉपिक है थ्रेशिंग को हैंडल कैसे करते हैं ये सिंपल ना एक आपका इंटरव्यू क्वेश्चन बनता है और यह बहुत ज्यादा लाइक है आपसे पूछा जाए अगर कोई इंटरव्यूअर इंटरेस्टेड है आपसे मेमोरी मैनेजमेंट यूनिट के बारे में डिस्कस करना तो थ्रेशिंग एक लाजमी क्वेश्चन बन जाता है क्योंकि थ्रेशिंग में जैसे मैंने कहा आपको पेजिंग के बारे में नॉलेज होनी चाहिए वीएम के बारे में नॉलेज होनी चाहिए पेज फॉल्ट के बारे में नॉलेज होनी चाहिए पेज फॉल्ट एल्गोरिथम के बारे में नॉलेज होनी चाहिए तो बहुत सारी नॉलेज होनी चाहिए आपके पास ठीक है एक थ्रेशिंग को डिस्क्राइब करने के लिए ठीक है तो बहुत ही बढ़िया यह आपका मेमोरी मैनेजमेंट जो मॉड्यूल था इसका लास्ट टॉपिक था ठीक है इसका लास्ट टॉपिक था अब इसके बाद जो आपका टॉपिक आएगा इसके बाद जो आपका टॉपिक आएगा वो होता है आपका स्टोरेज मैनेजमेंट स्टोरेज मैनेजमेंट ठीक है और स्टोरेज मैनेजमेंट जो है वह इंटरव्यू पर्सपेक्टिव से इंटरव्यू पर्सपेक्टिव से बहुत कम प्रायोरिटी रखता है ठीक है क्यों इसमें सबसे ज्यादा इंपॉर्टेंट जो है वो आपका हार्ड डिस्क का डिजाइन सेक्टर यह सब ज्यादा इंपॉर्टेंट नहीं है क्योंकि ठीक है आप तो वैसे भी एसएसडी वगैरह यूज होती है किसी का मन हो तो पूछ सकता है आपको इंटरेस्ट हो तो आप एक बार टॉपिक को हम अपने कोर्स में नहीं इंक्लूड कर रहे हैं बट मैं आपको रिकमेंड करूंगा ठीक है एक टॉपिक आप ये खुद से पढ़ो ठीक है अगर इंटरेस्ट है तो यह सेल्फ लर्निंग करो इसकी इंटर पर्सपेक्टिव से बहुत ज्यादा इंपॉर्टेंट नहीं है यह बस इसमें एक टॉपिक थोड़ा सा इंपॉर्टेंट है जिसको मैं बोल देता हूं फाइल्स एंड डायरेक्ट्रीएंट्री और फाइल्स को मैनेज करते हैं ये टॉपिक थोड़ा सा इंपॉर्टेंट है बट इंटर पर्सपेक्टिव से देखूं तो स्टोरेज मैनेजमेंट ज्यादा इंपोर्टेंट नहीं है यार क्योंकि बेसिकली क्या है ना कि स्टोरेज मैनेजमेंट से ज्यादा ज्यादा इंपॉर्टेंट चीजें हैं आपकी सबसे जो मेजर आपसे इंटरव्यू क्वेश्चन बनते हैं व आपके मेमोरी मैनेजमेंट से बनते हैं बहुत ज्यादा फेवरेट टॉपिक है यह आपका इंटरव्यूअर के लिए ठीक है तो बेसिकली ठीक है इसको हम होमवर्क देते हैं इसको हम डिस्कस नहीं करेंगे इस कोर्स के अंदर तो यह थी आपकी ओएस कोर्स की लास्ट वीडियो ठीक है यह आपके ओएस कोर्स की लास्ट वीडियो थी इसी के साथ ओएस कोर्स आपका यहां पर खत्म होता है इसके बाद मैं प्लान कर रहा हूं कि एक वीडियो और लेके आते हैं जिसमें कि मैंने अभी लास्ट कमेंट पढ़ा था जब हम कंक्रेंस के क्वेश्चन कर रहे थे लीड कोड वाले तो किसी ने कमेंट किया था कि थोड़े और क्वेश्चंस करा दो तो हो सकता है कि हम एक वीडियो और लेके आए जिसके अंदर हम कं करेंसी के दो चार क्वेश्चंस और सॉल्व करें बट थ्योरी वाइज देखा जाए तो आपका ऑपरेटिंग सिस्टम का कोर्स यहां पर एंड होता है ठीक है मैं आपसे रिक्वेस्ट करूंगा कि आप कमेंट बॉक्स में जा आ और पूरा रिव्यू डालें ठीक है उससे बेटर जो मैंने लास्ट वीडियो में आपसे कहा था इस वीडियो में भी मैं क्या करूंगा एक ईमेल आईडी डाल दूंगा उस ईमेल आईडी पे आप एक छोटा सा शॉर्ट बना के अपनी खुद की वीडियो बना के बताते हुए कि आपको यह कोर्स कितना यूजफुल लगा आपको मजा आया कि नहीं आया क्या-क्या इंप्रूवमेंट कर सकते हैं आगे कोई कोर्स लेके आएंगे तो उसमें क्या-क्या चीजें और ऐड कर सकते हैं इसके बारे में आप आप बेसिकली उसमें फीडबैक दोगे इस वीडियो में और आप मुझे मेल करना मेल आईडी आपको डिस्क्रिप्शन में मिल जाएगी ठीक है उसके अलावा बाकी जो जितने भी नोट्स आपको दिए गए हैं नोट्स को आप संभाल के रखना ठीक है मेरे ख्याल से जो नोट्स है आपके वोह बहुत ही ज्यादा मतलब मैं बोलूंगा मास्टर ब्लास्टर है बहुत ही बढ़िया नोट्स है वो किसी ने एक कोर्स एक बार एक बार ये कोर्स देखा हो ना एक बार कोर्स देखा हो नोट्स उसके पास हो हैंडी तो वो इंटरव्यू प जाने से पहले आधा घंटा भी सारे नोट्स को देख लेगा ना उसको मजा आ जाएगा उसके सारे टॉपिक्स क्लियर हो जाएंगे ठीक है तो नोट्स बहुत ही ज्यादा इंपॉर्टेंट है ठीक है नोट्स बहुत ज्यादा इंपॉर्टेंट है तो मिलते हैं किसी और वीडियो में तब तक के लिए गुड बाय धन्यवाद आप सबके प्यार के लिए थैंक यू हेलो जी कैसे स दिस लक्ष तो हम आ चुके हैं हमारे ओएस के लेक्चर नंबर 31 पर और लास्ट लेक्चर में हमने ओएस का जो थ्योरी वाला पार्ट था जितना भी डिस्कशन वाला पार्ट था वो हमने कंप्लीट कर दिया था लास्ट वीडियो में हमने डिस्कस किया था कि एक बोनस वीडियो जरूर आएगी उस बोनस वीडियो में हम क्या करेंगे कि लीड कोड की जो कंक्रेंस के क्वेश्चंस हैं कुछ क्वेश्चंस बच गए थे तीन और क्वेश्चंस इस वीडियो में हम सॉल्व करेंगे ठीक है तो हम क्या करने वाले हैं लीड कोड के कंक्रेंस के क्वेश्चन सॉल्व करने वाले हैं ठीक है कंक्रेंस क्वेश्चन और तीन प्रॉब्लम सॉल्व करेंगे तो सबसे पहले जिसमें प्रॉब्लम कौन सी होगी हमारी होगी प्रिंट फू बार करके आप चेक करना आपको मिल जाएगी काफी बढ़िया प्रॉब्लम है ठीक है और यार ये कंक्रेंस के प्रॉब्लम्स ना मैं तो आपको रिकमेंड करूंगा कि पहले वीडियो मत देखो आप एकएक क्वेश्चन देखो और उसके बाद खुद से सॉल्व करने की कोशिश करो कंक्रेंस की प्रॉब्लम सॉल्व करना है ना बहुत ही इंटरेस्टिंग है और बहुत ही ज्यादा जरूरी भी है ठीक है आपका माइंड थोड़ा इस तरीके से वर्क करेगा कि हां एक्चुअली थ्रेड्स कैसे बनी हुई है दो थ्रेड्स कैसे इंटरेक्ट कर रही है आपस में कैसे उनको आप बेसिकली सिंक्रोनाइज कर रहे हो यह सब चीजें जो है ना बहुत इंपॉर्टेंट है आपके लिए जानना ठीक है तो डीएसए में डायरेक्टली तो यह चीजें आपको ल भया नहीं सिखा रहे होंगे बट इस वीडियो के थ्रू और जो इससे पहले एक वीडियो थी उसके थ्रू आप इन क्वेश्चन को सॉल्व करना सीखो तो चलिए आगे बढ़ते हैं तो पहला तो हमने डिस्कस किया हम यह वाली प्रॉब्लम सॉल्व करेंगे दूसरी प्रॉब्लम हमारी कौन सी होगी दूसरी हमारी होगी प्रिंट जीरो इवन ओड करके ठीक है तीसरी हमारी प्रॉब्लम कौन सी होगी तीसरी होगी बिल्डिंग h2o ठीक है यह काफी इंटरेस्टिंग प्रॉब्लम है इसको देखते हैं तो चलो एक बार शुरू करने से पहले शाउटर देते हैं हमारे स्पनर को ताकि आपका फ्लो ना बिगड़े ठीक है तो चलिए पहली प्रॉब्लम पे आते हैं ठीक है फर्स्ट प्रॉब्लम जिसका नाम क्या था फू बार तो देखते हैं प्रॉब्लम कह क्या रही है ठीक है तो स्क्रीन प आ गए हम स्क्रीन पर देखो प्रिंट फू बार अल्टरनेटिवली करके एक प्रॉब्लम है ठीक है मैं आपको रिकमेंड करूंगा यहीं पर वीडियो को पॉज करो और खुद से पढ़ो खुद से सॉल्व करने कोशिश करो ठीक है और हो जाए सॉल्व तो बहुत ही बढ़िया नहीं हो सॉल्व तो सॉल्यूशन देख लेना वरना फिर भी देख लेना क्या पता कोई अल्टरनेट अप्रोच आपको दिख जाए ठीक है तो चलो सबसे पहले क्या है हमें क्लास दी हुई है ठीक है क्लास में दो फंक्शन है एक फू करके फंक्शन है एक बार करके फंक्शन है ठीक है रो से n तक लूप चलता है यानी एंड टाइम्स लूप चलेगा एक एक में फू प्रिंट हो रहा है एक में बार प्रिंट हो रहा है ठीक है सिंपल सा है एक सिंपल सी क्लास है क्लास हमें समझ आ ही गई है ठीक है बहुत ही बढ़िया अब देखते हैं अब ये कह रहा है कि द सेम इंस्टेंस ऑफ ू बार विल बी पास्ड टू टू डिफरेंट थ्रेड्स ठीक है तो तो क्लास तो ये एक ही है इसका एक इंस्टेंस बनाया जाएगा इसका एक ऑब्जेक्ट बनाया जाएगा उस ऑब्जेक्ट को हम दो डिफरेंट थ्रेड्स में देंगे और एक थ्रेड कॉल करेगी फू फंक्शन को एक थ्रेड कॉल करेगी बार फंक्शन को जैसा कि यहां पर लिखा हुआ है ठीक है एक बार आईपैड पर आते हैं और एक बार डिस्कस करते हैं तो हमारे पास क्या है फू बार करके एक क्लास है ठीक है इसका इंस्टेंस बनाएंगे हम या इसका एक ऑब्जेक्ट बनाएंगे और सेम ऑब्जेक्ट को मैं दो डिफरेंट थ्रेड को दे दूंगा t1 थ्रेड एक t2 थ्रेड बहुत ही बढ़िया जब ये दोनों थ्रेड्स को मिल जाएंगी तो एक थ्रेड कॉल करेगी फू को एक थ्रेड कॉल करेगी बार को ठीक है ऐसा कुछ चलेगा तो होगा क्या अगर मान लो एक सिंगल थ्रेड से मैं कम काम कर रहा होता ठीक है अगर सिंगल थ्रेड से या सिंगल प्रोसेस से बोल देता हूं ठीक है या थ्रेड से अगर मैं काम कर रहा होता तो मैं क्या करता मुझे प्रिंट करना है फू बार फू बार ऐसे एन टाइम्स प्रिंट करना है तो मैं क्या करता पहले फू को प्रिंट करवा देता फिर बाहर को प्रिंट करा देता फिर फू को प्रिंट करा देता फिर बाहर को प्रिंट करया था बट अब सीन क्या है यहां पर यहां पर टू थ्रेड्स है टू थ्रेड्स के चक्कर में क्या हो रहा है कि हम चाहते हैं कि t1 पहले स्केड्यूल हो ठीक है फिर t2 स्केड्यूल हो फिर वापस से t1 स्केड्यूल हो फिर t2 स्केड्यूल हो ठीक है क्योंकि t1 पहले फू प्रिंट करेगी तभी t2 बार प्रिंट करेगा फिर t1 वापस से फू प्रिंट करेगी तभी t2 बार प्रिंट करेगा ठीक है तो ऐसे करना है हम यानी कि t1 को प पहले मौका देना है फिर t2 को मौका देना है ठीक है अभी देख लेते हैं अभी जो इसमें कोड लिखा हुआ है करंट करंट कोड आपको देख के तो ऐसा लग रहा होगा सिंपल कि ठीक है लूप चल रहा है लूप में हम देख रहे हैं तो ये तो हो जाना चाहिए प्रिंट ठीक है एक बार चला आगे देखते हैं क्या रिजल्ट्स आते हैं एन टाइम्स लूप यहां भी चल रहा है ए टाइम्ल यहां भी चल रहा है और देखो n इ 1 के लिए फूप सही प्रिंट हुआ है विदाउट एनी कोड हमने कोई कोड नहीं किया अभी ठीक है तो यह कैसे सही चल रहा है क्योंकि वन जब वन जब दिया गया है तो सबसे पहले मे भी फू कॉल थ्रेड जो है शूट हो रही होगी जब फू थ्रेड शूट हुई है तो वो पहले स्केड्यूल हो गई है तो उसको पहले मौका मिल गया है फू प्रिंट करने का ठीक है बट अगर मैं इसको बढ़ा दूं इसको मैं कर देता हूं 10 तो देखो क्या सही आंसर आएगा लेट्स सी तो देखो पहले फू फू फू फू फू प्रिंट हो गया फिर बारबार बारबार प्रिंट हो रहा है और ऐसा हो क्यों रहा है क्योंकि जो अभी कोड हमें दिख नहीं रहा है बट इसके अलावा जो कोड लिखा होगा ना जो फू बार दो थ्रेड्स को शूट कर रहा होगा जो दो थ्रेड्स t1 और t2 शूट हो रही होंगी तो ये पहले स्केड्यूल हो गई होगी ये पहले स्केड्यूल हो गई उसके बाद ये शूट हो रही होगी शूट आफ्टर t2 तो इस चक्कर में क्या हो रहा है जो t1 का काम वो पहले कर दे रहा है तो t1 में क्या था सिंपल 10 टाइम्स लूप करके फू प्रिंट करना था वो फू य प्रिंट कर चुका है ठीक है तो ऐसे ही इसलिए ऐसा रिजल्ट आ रहा है तो चलो कोड करके देखते हैं कि इसको कैसे सॉल्व कर सकते हैं तो कोड पे आते हैं सीधा उसको पहले डिस्कस करते हैं तो ऐसा कुछ कोड लिखा है हमने ठीक है ऐसा कुछ कोड लिखा है अब इसमें हो क्या रहा है यह देखते हैं सबसे पहले हमने क्या करा सिंपली ये n तो पहले से ही डिफाइन था ठीक है हमने क्या करा एक टेक्स डिफाइन किया एक कंडीशनल वेरिएबल डिफाइन किया ठीक है अगर अगर आप डायरेक्टली इस वीडियो को देख रहे हो आई वुड रिकमेंड कि आप पहले इससे पहले वाली वीडियो देखो इससे पहले जिसमें लीड कोड के क्वेश्चन सॉल्व कराए हैं एक बार मैं वीडियो का बता देता हूं आपको कौन सी वीडियो थी वो तो इससे पहले क्या करना है आपको वच करनी है लेक्चर नंबर 23 ठीक है लेक्चर नंबर 23 आप देख लोगे उसके बाद ही इस वीडियो पर आना ठीक है कंटिन्यू करना तो चलो यार डायरेक्टली कंटिन्यू करते हैं इसको तो हमने क्या करा है सबसे पहले टेक्स डिफाइन किया कंडीशन वेरिएबल डिफाइन किया है ठीक है एक टर्न वेरिएबल डिफाइन किया है इसको बूल लिया हुआ है ठीक है तो हम क्या ऐसा क्या करना चा आंगे जैसा कि हमने डिस्कस किया सबसे पहले हमें फू प्रिंट कराना है फिर उसके बाद जब फू एक बार प्रिंट हो जाए तो हमें बार प्रिंट कराना है तो एक बार फू प्रिंट कराना है एक बार बार प्रिंट कराना है ऐसा नहीं करना सीधा सारे 10 बार प्रूव प्रिंट करा दिया फिर 10 बार बारर प्रिंट करा दिया तो देखो ये लूप तो पहले से लिखा हुआ था ये कोड हमने ऐड किया इसमें ठीक है तो ये कोड कर क्या आ रहा है ये देखते हैं हमने क्या करा इनिशियली टर्न को जीरो से सेट किया तो मैं बोल रहा हूं कि जब टर्न जीरो होगी ना तो यानी कि फू की टर्न होगी तो जब टर्न का वेरिएबल वन होगा तो बार की टर्न होगी तो ऐसे टर्न बाय टर्न मैं स्विच करता रहूंगा फू बार फ बार ऐसे करके तो इनिशियली आप देखोगे तो इनिशियली क्या होगा टर्न की वैल्यू क्या होगी जीरो ठीक है तो इनिशियली टर्न रो है तो रो है तो क्या होगा पहले डिस्कस करते t2 तो पहले t2 डिस्कस करते हैं t2 जब कॉल करेगी तो इसको जब कॉल करेगी तो क्या होगा t2 आएगी i = 0 होगा इधर आके वापस टेक्स पे लॉग लगाएंगे यूनिक लॉग क्या होता है एक बार जाके गल करो आपको सब समझ आ जाएगा ठीक है टेक्स पे लॉक लगाने का तरीका है लॉक लगाया आपने स्टार्टिंग में टर्न जो है जीरो है ठीक है स्टार्टिंग में t = 0 प टर्न जो है वो जीरो है तो क्योंकि वो जीरो है तो हमने क्या करा बार वाली थ्रेड को रोक दिया तो t2 थ्रेड जो कि बार पे पॉइंट कर रही थी वो यहां एग्जीक्यूट करके वेट करने लग जाएगी ठीक है तो हमने कंडीशन वे में पढ़ा था कि लास्ट लेक्चर में हमने कि जब भी आप लॉक लगाते हो ना यहां पर तो लॉक लगाने के बाद इस लॉक को फ्री भी कर देते हो यानी कि जब t2 थ्रेड इस पर लॉक लगाने आई होगी यानी कि इस पर वेट करने आई होगी सॉरी जब वेट करने आई होगी तो वेट करेगी व कंडीशन चेक करेगी वेट करने के बाद व लॉक को रिलीज कर कर देती है रिलीज कर देती है और लॉ और वेट करती रहती है रिलीज करके वेट कब तक करती रहती है जब तक कोई नोटिफाई नहीं करता नोटिफाई दूसरी थ्रेड से हम करते हैं ठीक है तो t2 थ्रेड तो यहां पे वेट कर रही है बट और इनिशियली t1 के साथ क्या होगा जब t1 इधर आएगी तो t1 इधर लॉक करेगी लॉक करके देखेगी कि भाई टर्न की वैल्यू क्या है ठीक है टर्न की वैल्यू इनिशियली क्या है जीरो तो टर्न जब वन होगा तब हम इसको वेट कराएंगे बट टर्न जब जीरो होगा इसको एग्जीक्यूट कराएंगे तो टर्न यहां पे ये फाल्स हो जाएगी कंडीशन इधर आ वो फू प्रिंट कर देगा जैसे ही फू प्रिंट होगा ठीक है जैसे ही फू प्रिंट होगा टर्न की वैल्यू t1 थ्रेड क्या करेगी वन सेट कर देगी तो अब क्या करा t1 थ्रेड ने टर्न की वैल्यू क्या करी वन सेट कर दी अब जब टर्न वन हो गया है और वन होने के बाद हमने क्या करा सीवी डॉट नोटिफाई ऑल ये बहुत जरूरी है ये बहुत क्यों जरूरी है क्योंकि t2 थ्रेड तो इधर वेट कर रही है और वो वेट करती रहेगी इंफाइटिंग टाइम तक वो कब कब यहां से वापस से चालू होएगी जब हम दूसरी थ्रेड को नोटिफाई करेंगे नोटिफाई करने के बाद t2 ने क्या किया t2 गई वापस से t2 गई वापस से यहां से लॉक किया इसको वापस और वाइल लूप पर इधर चेक करने चली गई ठीक है जैसे ही वह चेक करने गई तो उसने देखा टर्न की वैल्यू तो क्या थी वन अब टर्न वन थी तो टर्न जीरो नहीं है तो यह फॉल्स हो जाएगी कंडीशन अब वो बार पर आ जाएगी ठीक है अब वो बार प्रिंट करेगी बार प्रिंट करने के बाद वापस से टर्न को जीरो कर देगी अब टू थड क्या करेगी वापस से टर्न को जीरो कर देगी अब टर्न जब जीरो हो जाएगा उसके बाद क्या होएगा नोटिफाई ऑल वापस नोटिफाई करेगी जब जब t2 नोटिफाई कर रही होगी जब t2 नोटिफाई कर रही होगी तो t1 क्या कर रही थी t1 क्या कर रही थी t1 वेट कर रही थी यहां पे t1 क्यों वेट कर रही थी क्योंकि टर्न तो वन था तो इस तरीके से यह चलता रहेगा t1 वापस से वेट p1 वापस से वेट से वापस से जागेगी जागने के बाद वापस से वो फू प्रिंट करेगी जब वो फू प्रिंट करेगी तो t2 थ्रेड यहां पर वेट कर रही होगी तो इसी तरीके से आपका 2 एंड फ 2 एंड फ चलता रहेगा और चलने के बाद आप देखोगे कि यह जो दो थ्रेड्स है t1 एंड t2 यह रैंडम ना चलके ठीक है रेंडम नहीं चलके ऐसे चलेंगी पहले t1 एग्जीक्यूट करेगी फिर t2 एग्जीक्यूट करेगी फिर t1 एग्जीक्यूट करेगी फिर t2 एग्जीक्यूट करेगी फिर t1 फिर t2 तो t1 t2 t1 t2 ऐसे चलेगा और t1 t2 क्या करेगी फू बार फू बार प्रिंट करती रहेगी तो एक बार स्क्रीन पर आके देखते हैं कि क्या मैं सच भी बोल रहा हूं इसको सबमिट करके तो देखें एक बार चलो यार सबमिट करते हैं सिंपल जैसा कि अभी 10 के लिए हमने स्टार्टिंग में चला के देखा था फू फू फू प्रिंट हो रहा था फिर बार प्रिंट हो रहा था अब यहां पर बहुत ही बढ़िया फू बार फू बार प्रिंट हो रहा है अब इसको एक बार सबमिट करके भी देख लेते हैं चल चल चल बहुत ही बढ़िया ठीक है तो हमारा सबमिट हो गया सलूशन सारे टेस्ट केस पास हो गए हैं बहुत ही बढ़िया ठीक है तो ये इस तरीके से था काफी इजी प्रॉब्लम थी ठीक है दो थ्रेड को t1 t2 को ऐसे शेड्यूल करना था ठीक है और बहुत ही एक ऐसे ट्रिल प्रॉब्लम भी है ठीक है बहुत ही आपको देखने को मिलेगी य प्रॉब्लम ठीक है थ्रेड्स को ऐसे ही सिनाइज करना होता है ठीक है ऐसा भी हो सकता है कि दो से ज्यादा थ्रेड्स हो जिनको सीक्वेंशियल चलाना होव फट फर t3 फर t4 ठीक है चलो अब देखते हैं वापस आईड प आते हैं अब देखते हैं नेक्स्ट प्रॉब्लम ठीक है प्रॉब्लम नंबर टू क्या नाम था इसका प्रॉब्लम का नाम है प्रिंट जीरो इवन ऑड सिमिलर सी प्रॉब्लम है परट थोड़ी सी ट्रिकी है इसको देखते हैं वापस से लैपटॉप पर आते हैं लैपटॉप प आए तो ये कुछ इस तरीके से प्रॉब्लम है इस प्रॉब्लम में क्या है कि यू हैव ए फंक्शन प्रिंट नंबर ठीक है प्रिंट नंबर नाम का एक फंक्शन है इसको जब मैं कॉल करता हूं अब ध्यान से देखो ये जो आपको दिख रहा है ना ये फंक्शन ये ऐसा ये आपका c+ प् 14 का फीचर है आई गेस ठीक है तो अगर आप देखोगे तो इस तरीके से फंक्शन को डिफाइन करना आपने वैसे देखा नहीं होगा ठीक है तो एक बार c+ 14 में इस तरीके के फंक्शंस को आप देख सकते हो तो ये फंक्शन क्या है सिंपल एक फंक्शन पॉइंटर की तरह ही ये एक्ट कर रहा है ठीक है c+ प् का लेटेस्ट फीचर है सिंपल आप प्रिंट जब नंबर x कॉल करते हो तो फंक्शन कॉल चली जाती है ठीक है तो चलो ठीक है इसमें ज्यादा अंडर नहीं जाते हैं अपने क्वेश्चन को देखते हैं तो क्वेश्चन क्या कह रहा है कि प्रिंट x जब मैं देखता हूं तो x इंटी जर प्रिंट हो जाता है यू आर गिवन एन इंस्टेंस ऑफ क्लास रो इवन ऑट जैसे पहले इंस्टेंस दिया था एक क्लास का इंस्टेंस दिया हुआ है और इसमें थ्री फंक्शन है जीरो इवन ऑड हमें क्या करना है थ्रेड ए जो है वो जीरो को कॉल करेगी और जब वो रो को कॉल करेगी तो जीरो को प्रिंट भी करेगी ठीक है थ्रेड बी इवन को कॉल करेगी जो इवन को कॉल करेगी तो इवन नंबर प्रिंट करेगी थ्रेड सी जो है वो ऑड को कॉल करेगी और ऑड नंबर प्रिंट करेगी ठीक है तो हमारा यहां पे काम क्या है हमारा काम यह है हमें इंप्लीमेंट करनी है ऐसी क्लास और ऐसा फंक्शन इन तीनों फंक्शंस को इस तरीके से इंप्लीमेंट करना है जब n = 2 या 3 या जो भी कहां तक n = 1000 तक है ठीक है कुछ भी वन से लेकर 1000 तक कोई भी वैल्यू डालूंगा मैं तो कुछ इस तरीके से प्रिंट होगा वापस से आईड प आते हैं तो हमें प्रिंट क्या करना है अगर n दिया है ू ठीक है तो मुझे ऐसे कुछ प्रिंट करना है सबसे पहले जीरो प्रिंट करना है फिर वन प्रिंट करना है फिर जीरो प्रिंट करना है फिर टू प्रिंट करना है ठीक है तो एकदम इजी है आपको क्या करना है अगर सिंगल थ्रेड आपको कोड लिखना हो तो आप क्या करोगे सिंपली एंड तक लूप चलाओगे लूप चलाने के बाद एक बार जीरो प्रिंट करोगे फिर वन प्रिंट कर दोगे फिर जीरो प्रिंट करोगे प्लस प्लस करके वन प्रिंट करोगे वन नहीं सॉरी टू प्रिंट करोगे तो ये सिंगल थ्रेड में तो बहुत इजी है बट यहां पर आपको क्या करना है जीरो जो है वो थ्रेड जीरो प्रिंट करेगी वन जो है क्योंकि ये एक ऑड नंबर है तो हमें यह t ऑड वाली थ्रेड से प्रिंट कराना है और जो टू जो है क्योंकि ये इवन नंबर है तो हमें t इवन नंबर थ्रेड से कॉल इवन थ्रेड से कॉल कराना है तो इस तरीके से ये हमें करना है ठीक है थोड़ी सी कंफ्यूजन हो रही होगी एक बार वापस स्क्रीन पे आते हैं देखते हैं तो हमें क्या करना है कि ती तीन थ्रेड्स शूट होंगी ठीक है t0 t इवन t ऑड ऐसे करके ठीक है t0 t1 t वड ऐसे ही बोलता हूं इसको तो हमें क्या करना है कि जैसे अब i प् प् प् प् करके लूप तो चलता रहेगा लूप चलाते चलाते रो सेफ मुझे t0 थ्रेड से प्रिंट कराना है इवन नंबर कोई भी इवन नंबर वो मुझे ईवन वाली थ्रेड से प्रिंट कराना है ऑड नंबर कोई भी ऑड वाली थ्रेड से प्रिंट कराना है ठीक है तो आप ध्यान से देखो तो ये बे काम का क्वेश्चन बनाया हुआ है ठीक है नॉर्मली अगर देखते तो ऐसा कोई प्रैक्टिकल यूज नहीं है इसका बट आपको सिखाने के लिए कि आप तीन थ्रेड्स में कैसे सिंक्रोनाइज करना है इसको सीख पाओ इसलिए क्वेश्चन बना हुआ है ठीक है तो चलो क्वेश्चन को देखते हैं एक बार इसका सलूशन देखते हैं क्या सलूशन हो सकता है इसका वापस से आड पे आते हैं तो ये कुछ सलूशन है इसका इसको डिस्कस करते हैं सॉल्यूशन कर क्या रहा है थोड़ा सा ट्रिकी है थोड़ा सा ध्यान से सुनना इसको ठीक है तो हम क्या कर रहे हैं हम सिंपली इसको सिंक्रोनाइज करने के लिए चार चीजों को यूज कर रहे हैं सबसे पहले म्यू टेक्स एज यूजुअल ठीक है सबसे पहले कंडीशन वेरिएबल एज यूजुअल कंडीशन क्यों यूज़ कर रहे हैं हम क्योंकि हम चाहते हैं कि जब एक थ्रेड अपना काम कर दे तो एक थ्रेड बोले दूसरे थ्रेड को भाई अब तू कंटिन्यू कर ठीक है समझ रहे हो मतलब कंडीशन पे वेट करे दूसरी थ्रेड और जब कोई और थ्रेड उसको बोले कि अब तू कंटिन्यू कर किसी कंडीशन पे तब वो कंटिन्यू करना शुरू करें इसी को सिंक्रनाइजेशन कहते हैं यही हम करना चाह रहे हैं ठीक है तो टेक्स हो गया कंडीशन हो गई उसके बाद हम एक टर्न वेरिएबल यूज कर रहे हैं ठीक है टर्न वही कि भाई जैसे फू बार में किया था फू के टर्न है या बार के टर्न है ठीक है ऐसे ही यहां पे जीरो की टर्न है या इवन की टर्न है या ऑड की टर्न है ठीक है और एक i वैल्यू ले लेते हैं i वेरिएबल जो है वो वन से लेकर n तक जाएगा क्योंकि हमें अल्टीमेटली ऐसे प्रिंट करना है ना n = 3 हो तो मैं कैसे प्रिंट करना है 0 1 फिर 0 2 फिर 0 3 तो अल्टीमेटली मुझे थ्री तक तो जाना ही है ठीक है तो तो इसको इसलिए हमने आई वेरिएबल ले लिया है इसको हम प्लस करते जाएंगे बहुत ही बढ़िया अब देखते हैं जीरो की इंप्लीमेंटेशन क्या कैसे करी है तो सबसे पहले मुझे जीरो प्रिंट करना है तो इसलिए मैं क्या करता हूं टी 0 करके एक थ्रेड का नाम बोल देता हूं सबसे पहले मैं इसे एग्जीक्यूट कराऊंगा फिर टी0 थ्रेड जो है ना 0 थ्रेड ये डिटरमाइंड करेगी कि अब कौन सी थ्रेड को मुझे कंटिन्यू कराना है क्या मुझे इवन थ्रेड को कंटिन्यू कराना है या मुझे ऑड थ्रेड को कंटिन्यू करा ना है यानी कि जीरो वाली थ्रेड जो है वो नोटिफाई करेगी कि किस तरीके से आगे बढ़ना है आपको ठीक है ठीक है तो हम क्या करेंगे इसके इसकी मदद से क्या होगा ये वाली जो वन जो है प्रिंट होगा ऑड थ्रेड से और टू जो है प्रिंट होगा इवन थ्रेड से अे होगा कैसे देखो बहुत ही ब्यूटीफुली हमने क्या करा एक वाइल लूप चलाया ठीक है वाइल लूप क्या चलाया आ से लेके n तक ठीक है और हमने एक लॉक करा है इस एरिया को क्योंकि ये पूरा हमने क्रिटिकल सेक्शन बोल दिया है इसको ठीक है लॉक कैसे वर्क कर रहा है अब ये देखो स्टार्टिंग में हमने क्या करा टर्न की वैल्यू जीरो सेट करी है क्योंकि सबसे पहले हमें जीरो ही प्रिंट करना है ठीक है तो जब टर्न जीरो नहीं होगा तब तक वो लॉग वेट करेगा टर्न जीरो नहीं होगा यानी उसकी टर्न नहीं है तो जो जीरो वाली थ्रेड है वो वेट करेगी ठीक है अल्टीमेटली बाकी अगर टर्न अगर टू होगा टर्न अगर टू होगा तो टर्न टू के केस में मुझे ववन थ्रेड को चलाना है तो इसलिए मैंने टर्न नॉट इक्वल टूटू हो तो इसे वेट कराना है सिमिलरली टर्न अगर वन नहीं होगा ठीक है तो उस केस में मैं इसे वेट कराऊंगा यानी ऑड थ्रेड को वेट कराऊंगा ठीक है तो इसका मतलब सिंपल हो गया टर्न अगर जीरो हुई टर्न की वैल्यू अगर जीरो हुई तो जीरो थ्रेड वर्क करेगी टर्न की वैल्यू अगर वन हुई तो ऑड थ्रेड वर्क करेगी ठीक है मैं लिख देता हूं यहां पर यह चीज कब वर्क करेगी जब टर्न की वैल्यू जीरो होगी और यह चीज कब वर्क करेगी जब टर्न की वैल्यू वन होगी और यह चीज कब वर्क करेगी जब टर्न की वैल्यू टू होगी ठीक है यानी कि तभी यह क्रिटिकल सेक्शन में घुसे गी तो स्टार्टिंग में टर्न की वैल्यू आ की वैल्यू जो है मान लो आ की वैल्यू स्टार्टिंग में होगी वन जब वन होगी तो सबसे पहले थ्रेड जो है जी को ही मौका दिया है मैंने जीरो को कैसे मौका दिया तीनों थ्रेड साथ में शूट होंगे जैसे शूट होंगी तो वो टर्न पर चेक करेंगे टर्न की वैल्यू जीरो होगी तो जीरो होगी तो जो टीव थ्रेड है वो देखे क्या टर्न की वैल्यू नॉट इक्वल टू जीरो है और आ लेसन इक्वल ट n है यह तो हमने सेफ कंडीशन लगाई हुई है टर्न की वैल्यू अगर जीरो नहीं है जो कि स्टार्टिंग में जीरो होगी तो यह फॉल्स हो जाएगी कंडीशन तो यहां घुस जाएगा तो यानी कि यहां पर किसको मौका मिलेगा टी जीरो थ्रेड यानी जीरो थ्रेड को मौका मिलेगा तो क्या करेगा जीरो प्रिंट हो जाएगा ठीक है जब जीरो प्रिंट हो रहा होगा तो बाकी थ्रेड्स क्या कर रही होंगी t ऑड थ्रेड क्या कर रही होगी यहां पर वो क्या करेगी टर्न की वैल्यू देखेगी वन नहीं है क्योंकि टर्न स्टार्टिंग में जीरो था जब टर्न वन नहीं है तो ये वेट करेगी सिमिलरली टर्न जीरो था टर्न टू नहीं है तो ये भी वेट करेगी यानी कि t इवन भी वेट करेगी तो जब जीरो प्रिंट हो रहा होगा तो t इवन इवन थ्रेड और t ऑड और थ्रेड दोनों वेट कर रही होंगी ठीक है बहुत ही बढ़िया अब जैसे ही इन उसने रो प्रिंट करा अब वह देख रहा है कि टर्न की वैल्यू अब क्या सेट करूं मैं ठीक है टर्न की वैल्यू देख रहा है अगर i इवन हुआ अगर आ इवन हुआ तो मैं टू सेट कर दूंगा टर्न की वैल्यू अगर i ऑड हुआ तो मैं वन सेट कर दूंगा i स्टार्टिंग में क्या होगा i स्टार्टिंग में वन है देख ध्यान से देखो इसमें हमने i प्लस प्लस भी नहीं किया है मैंने ठीक है i की वैल्यू क्या है वन वन क्या होता है ऑड ऑड है तो टर्न की वैल्यू क्या सेट होएगी ठीक है टर्न की वैल्यू क्या सेट होएगी लिख देता हूं यहां पे टर्न की वैल्यू वन सेट होएगी ठीक ठीक है अब जब टर्न की वैल्यू वन सेट होगी वन सेट करने के बाद मैंने यह बहुत जरूरी है मैंने नोटिफाई करा ठीक है नोटिफाई करने के बाद नोटिफिकेशन क्या है ना वो दोनों थ्रेड के पास जाएगी यानी कि इवन थ्रेड के पास भी नोटिफिकेशन जाएगी और ऑड थ्रेड के पास भी नोटिफिकेशन जाएगी बट मौका किसको मिलेगा वो देखते हैं मौका उसको मिलेगा जो टर्न वन होगी यानी कि ऑड थ्रेड को मौका मिलेगा वो कैसे मिलेगा ये देखो इवन थ्रेड पे आते हैं मान लो हम इवन पे आए तो ये नोटिफाई हुआ नोटिफाई होने के बाद ये कंडीशन चेक प गया जैसे ही वो कंडीशन चेक पे गया उसने देखा कि टर्न जो है नॉट इक्वल टूटू है जब तक टू नहीं हो जाता ठीक है तब तक मुझे वेट करना है तो य न की वैल्यू तो वन है व नॉट इक्व ट 2 इसकी वैल्यू क्या हो जाएगी ट्रू हो जाएगी ट्रू हो जाएगी तो ये वापस वेट पर चली जाएगी यानी कि इवन थ्रेड तो वेट प भेज दी हमने बट ऑड थ्रेड के साथ क्या होगा वो जब यहां पर जाएगी वो देखिए टर्न की वैल्यू वन है यह कंडीशन हो जाएगी फॉल्स जैसे ही फॉल्स हुई तो वो इधर आई इधर चेक करने के लिए उसने देखा अब क्या करना है मुझे वन प्रिंट कर देना है यानी कि मैंने ऑड थ्रेड को मौका दिया अब क्या होगा इधर आउटपुट देखें अगर हम तो आउटपुट कुछ ऐसी आ रही होगी जीरो पहले प्रिंट हो चुका है अब वन प्रिंट हो जाएगा बट अब वन जब हमने प्रिंट कराया ना यहां पे तो i प्लस प्लस भी कर दिया यानी कि i की वैल्यू अब टू हो चुकी है ठीक है यहां लिख देते हैं i जो है वो टू हो चुका है अब जब i2 हुआ है तो मैंने क्या करा टर्न वापस से जीरो सेट कर दिया क्योंकि मुझे क्या करना है वन प्रिंट करने के बाद वापस जीरो सेट करना है यानी कि वापस जीरो प्रिंट करना है तो मैंने टर्न को वापस जीरो कर दिया यानी कि अब जीरो थ्रेड की बारी है फिर से जो जब फिर से नोटिफाई ऑल किया तो इधर वापस से ये वाली थ्रेड जो है यानी जीरो थ्रेड जो है वो एक्टिव होगी बा थ्रेड भी वेट करती रहेगी ठीक है इस चीज को थोड़ा समझो कि टर्न की वजह से कितना ज्यादा मतलब काम हम कर पा रहे हैं या टर्न जो है मेजर फैक्टर है डिसाइड करने के लिए कि कौन सी थ्रेड चलेगी ठीक है तो अब वापस से मैं इधर आता हूं टर्न इधर चेक होगा यहां से वेट से बाहर निकलेगा बाहर निकले के वापस जीरो प्रिंट करेगा ठीक है तो क्या करेगा वापस जीरो प्रिंट हो जाएगा ठीक है आ की वैल्यू अभी भी टू है ठीक है यह ध्यान रखना अब वापस से वो चेक करेगा आ की वैल्यू टटू के करेस्पॉन्डिंग्ली क्योंकि टू इवन होता है ठीक है अब इवन थ्रेड को मौका मिलेगा तो इस केस में यहां पर जो है टर्न की वैल्यू टू सेट हो जाएगी जब टू सेट हो जाएगी टर्न की वैल्यू ठीक है टर्न की वैल्यू टू सेट हो जाएगी फर जब नोटिफाई लो होगा अब किस थ्रेड को मौका मिलेगा वो आप जानते हैं इतने समझदार आप हो चुके हैं क्या इवन थ्रेड को मौका मिलेगा जब इवन थ्रेड को मौका मिलेगा तो क्या होगा इवन थ्रेड यहां पे आएगी वो चेक करेगी यह फाल्स हो जाएगी कंडीशन अब इवन प्रिंट होगा बहुत ही बढ़िया ठीक है अब लेट्स सपोज कि यह हम काम n इ 2 के लिए ही कर रहे थे अब टू के लिए कर रहे थे तो सारी थ्रेड्स एग्जिट कैसे करेंगे ये देखो अब टू पे मैंने टू प्रिंट कर दिया ठीक है मैंने टू प्रिंट कर दिया अब टू प्रिंट होने के बाद क्या होगा आ वापस से प्लस प्लस होगा ठीक है बाकी थ्रेड्स क्या कर रही है अभी यहां पर वेट कर रही है सब ठीक है जो इवन थ्रेड है वो क्या कर रही है इवन थ्रेड अभी यहां पर क्रिटिकल सेक्शन में काम कर रही है ठीक है टू प्रिंट करने के बाद वो आ को प्लस प्लस कर देगी यानी आ अब हो जाएगा आ हो जाएगा थ याद रखो हम किसके लिए काम कर रहे हैं ठीक है केस कौन सा ले रखा है हमने जब n की वैल्यू ट है इसके लिए काम कर रहे हैं तो हमने 0 02 यह प्रिंट कर चुका है यानी यह तो सक्सेस हो चुका है यह तो सक्सेस हो चुका है बट अब हम क्या करना चाह रहे हैं अब हम देख रहे हैं कि एग्जिट कैसे होगा एग्जिट ऐसे होगा अब यहां पे आ की वैल्यू जो हो जाएगी वो थ्री सेट हो गई जब आ की वैल्यू थ्री सेट हुई तो वापस टर्न इक्वल टू 0 सेट कर दिया ठीक है थिंकिंग दैट कि आगे भी बढ़ना है अभी बट जब इधर आप जीरो थ्रेड प आओगे वापस से तो जीरो थ्रेड क्या करेगी वापस से देखेगी इधर इधर चेक करेगी इधर चेक करेगी जैसे नोटिफाई ल हुआ यानी कि जैसे नोटिफाई हुआ इधर सेट करेगी क् टर्न जीरो था तो टर्न ये वाली कंडीशन तो जो फॉल्स हो जाएगी ठीक है ये वाली कंडीशन फॉल्स हो जाएगी और आ जो है लेस देन n है यह भी फॉल्स हो जाएगी ठीक है ये भी फॉल्स हो जाएगी अब हम बाहर निकलूंगा बाहर निकल के मैं देखूंगा इफ ये इफ इसलिए लगा हुआ है ठीक है अब इस इफ प देखूंगा अब क्या ्र जो है वो ग्रेटर दन टू है ये ट्रू हो जाएगा ठीक है ये ट्रू हो जाएगा ट्रू होने के बाद मैं इस लूप से इस वाइल लूप से ब्रेक कर जाऊंगा और जैसे ही ब्रेक करूंगा यहां से मैं एग्जिट कर जाऊंगा ठीक है तो जीरो थ्रेड जो है t0 जो है वह एग्जिट कर चुकी है बाकी थ्रेड कैसे एग्जिट हुई है जो अपनी इवन थ्रेड है वो कैसे एग्जिट हुई है जब इसने नोटिफाई किया है वो जाके ऊपर इसने चेक किया है यहां पे भी सेम कंडीशन चेक हुई है ऑड पे भी नोटिफिकेशन गई होगी ऑड जाके जब इधर चेक करेगी तो वो देखेगी कि i जो है वो लेसन इक्वल टू n नहीं रहा है यानी कि 3 जो है लेसन इक्वल टू 2 नहीं रहा है ठीक है तो इस केस में वापस से मैं इधर जाऊंगा 3 जो है ग्रेटर दन 2 हो जाएगा तो ये ट्रू हो जाएगा तो ये भी ब्रेक करके बाहर आ जाएगी यानी कि ऑड भी एग्जिट कर जाएगी तो देखो कितनी ब्यूटीफुली सब कुछ प्रिंट करने के बाद तीनों थ्रेड्स एग्जिट कर गई हैं ठीक है अब एक बार देख लेते हैं रन करके कि यह सही है भी कि नहीं ठीक है बहुत ही बढ़िया वापस स्क्रीन पे आते हैं स्क्रीन पे देखो हमने सारा कोड लिख दिया है एक बार इसको चला के देख लेते हैं सैंपल रन एक बार ऑड नंबर के लिए भी चला लेते हैं कुछ ऑड नंबर ले लेते हैं 67 इसके लिए चलाते हैं 1000 तक था ना हां ठीक है यह भी चल गया देखो कितना ब्यूटीफुली हमने तीनों थ्रेड्स को सिंक्रोनाइज कर दिया है यूजिंग टर्न वेरिएबल तो टर्न के रिस्पांसिबिलिटी कितनी ज्यादा है यहां पे सबमिट करके देख लेते हैं सारे टेस्ट केसेस पास होते हैं कि नहीं बहुत ही बढ़िया बहुत बढ़िया बहुत ही बढ़िया सलूशन है चलो बढ़िया अब चलते हैं नेक्स्ट क्वेश्चन पे ठीक है आई होप आपको मजा आ रहा होगा अगर आपको थोड़ी सी कंफ्यूजन हो रही है हो सकती है तो आप थोड़े केसेस बना के देखो t1 t2 कैसे चल रही है ठीक है क्योंकि थोड़ा सा ना टिपिकल होता है समझना कं करेंसी दिमाग में बिठाना भी कि किस तरीके से वैल्यू चेंज हो रही होंगी क्योंकि सब कुछ कं करेंटली चल रहा है ठीक है बहुत ही बढ़िया चलो थर्ड क्वेश्चन पर आते हैं थर्ड क्वेश्चन मेरा है h2o नाम से बहुत ही बढ़िया क्वेश्चन है एक बार इसकी डिस्क्रिप्शन पढ़ते हैं आओ स्क्रीन पर डिस्क्रिप्शन क्या कहती है काफी प्रैक्टिकल क्वेश्चन है केमिस्ट्री रिलेटेड कि हमारे पास दो टाइप के थ्रेड्स है एक ऑक्सीजन थ्रेड है एक हाइड्रोजन थ्रेड है हमारा गोल क्या है हमें h2o बनाना है हमें वाटर बनाना है वाटर का सॉल्यूशन क्या होता है h2o वाटर का जो केमिकल सिंबल होता है ठीक है तो हमें क्या करना है h2 बनेगा कैसे यहां पर कुछ प्रिंट स्टेटमेंट लिखी है यानी कि हमें सिंपली थोड़ा दिमाग में हिट कर रहा होगा कि दो बार हमें h प्रिंट कराना है फिर ओ प्रिंट कराना है या दो बार h को मौका देना है जब दो बार h को मौका मिल जाए तो o को मौका देना है ठीक है h2o h2 ऐसे करके कुछ प्रिंट कराना है ऐसे करके मौका देना है थ्रेड्स को तो हमारे पास यहां ढेर सारी थ्रेड्स है ठीक है तो यहां पढ़ते हैं वी डू नॉट हैव टू वरी अबाउट मैचिंग द थ्रेड एक्सप्लीसिटली द थ्रेड्स डू नॉट नेसेसरीली नो व्हिच अदर थ्रेड्स दे आर पेयर्ड अप विद ठीक है द की इज़ दैट थ्रेड्स पास द बैरियर इन कंप्लीट सेट्स यानी सेट में हमें पार करना है इसको ऐसा भी हो सकता है एओ भी पार हो सकता है इफ वी एग्जामिन द सीक्वेंस ऑफ थ्रेड्स दैट बाइंडर डिवाइड इनटू टू ग्रुप्स ऑफ़ थ्री ईच ग्रुप शुड कंटेन वन ऑक्सीजन एंड टू थ्रेड्स ऑफ़ हाइड्रोजन यानी कि जब सेट्स में निकालो आप तो दो हाइड्रोजन की थ्रेड निकालनी है तो एक ऑक्सीजन की थ्रेड निकाल लि या फिर ऐसा भी हो सकता है कि आप एक बार हाइड्रोजन की निकालो फिर ऑक्सीजन फिर हाइड्रोजन यानी कि पेयर एक जो पेयर बनेगा ना एक पूरा जो सेट बनेगा उसमें दो हाइड्रोजन और एक ऑक्सीजन ऐसा ही होना चाहिए ऊपर नीचे हो सकती है यानी कि परम्यूटेशंस कैसे भी हो सकती है तो हमें क्या करना है राइट अ सिनाइज कोड फॉर ऑक्सीजन हाइड्रोजन मॉलिक्यूल दैट एनफोर्सज दिस कंस्ट्रेंट्स ठीक है आईपैड पे आते हैं थोड़ा समझाने की कोशिश करता हूं तो हमारे पास ढेर सारी हाइड्रोजन थ्रेड्स है ठीक है ठीक है मल्टीपल है ये बहुत सारे हाइड्रोजन थ्रेड्स है यानी कि यहां पे एक हाइड्रोजन एटम एक थ्रेड है ठीक है तो अब ये o क्या है o जो है या o के भी बहुत सारी थ्रेड्स हैं यानी इनकी भी मल्टीपल थ्रेड्स हैं यानी कि एक ऑक्सीजन एटम की एक थ्रेड है हमें क्या करना है इन तीनों थ्रेड्स को इस तरीके से मैच करना है कि मेरा h एओ या h ऐसा कुछ बन जाए जिसकी वजह से क्या हो कि एक सेट बन जाए और एक सेट बनने की वजह से एक मॉलिक्यूल बन जाए यानी कि हमारा काम क्या है वाटर मॉलिक्यूल बनाने हैं यूजिंग h थ्रेड्स एंड o थ्रेड्स और ओ की बहुत मल्टीपल थ्रेड्स है ठीक है यानी कि अगर मान लो इनपुट कुछ ऐसा हुआ इनपुट कुछ ऐसा हुआ मेरा जैसे कि इसमें भी दिया हुआ है ओओ h h h h तो यह सीक्वेंशियल नहीं आ रहा ठीक है सीक्वेंशियल नहीं आ रहा कि h की चार थ्रेड्स आ रही है 4h थ्रेड्स और o की दो थ्रेड्स आ रही है ओ थ्रेड्स ठीक है कुछ इस तरीके से वर्क कर रहा है ये आई होप समझ आ गया होगा ठीक है थोड़ा सा एक बार वीडियो पॉज करो और जो स्क्रीन है स्क्रीन पे देखो और एक बार पढ़ लो इसको ध्यान से ना मज आ जाएगा आपको काफी इंटरेस्टिंग प्रॉब्लम लगी मुझे तो यह ठीक है तो चलिए आगे बढ़ते हैं इसका सॉल्यूशन देखते हैं किस तरीके से लिख सकते हैं तो यार इस तरीके का कु सॉल्यूशन है सेम काम हम कर रहे हैं ठीक है आपको थोड़ा-थोड़ा क्लिक कर गया होगा हमें हाइड्रोजन की जो थ्रेड्स हैं यानी कि n नंबर ऑफ़ हाइड्रोजन थ्रेड्स आ रही होंगी तो उनको दो हाइड्रोजन थ्रेड्स को मौका देना है जब दो हाइड्रोजन थ्रेड को मौका दे चुके हो तो उसके बाद आपको एक ऑक्सीजन थ्रेड को मौका देना है ठीक है फिर उसके बाद वापस से दो हाइड्रोजन थ्रेड को मौका देना है फिर एक ऑक्सीजन थ्रेड को मौका देना है इस तरीके से आप आपको चलाना है ऐसे सिंक्रोनाइजेशन करनी है ठीक है इसके लिए सिंपली हमने एक म्यू टेक्स ले लिया एक कंडीशन वेरिएबल ले लिया ठीक है टेक्स कंडीशन वेरिएबल आप अब तो बोर हो चुके होए देख देख देख के हमें एक टर्न वेरिएबल यूज करना है फिर से टर्न से काम कर रहे हैं आप देखो टर्न का कितना ज्यादा काम है यहां पर ठीक है टर्न इक्वल टू 0 शुरू में सेट किया ठीक है टर्न जीरो सेट करने के बाद अब हम देखते हैं कैसे काम होगा इनिशियली जो है मेरा टर्न जो है वो जीरो है ठीक है सबसे पहले मान लो सबसे पहले मान लो बहुत सारी आपकी ओ ओ ओओ बहुत सारी बहुत सारी थ्रेड्स आती है ओ की ऐसी एच एच एच एच की बहुत सारी थ्रेड्स आती है ठीक है बहुत सारी थ्रेड्स आती रहती है ठीक है तो ये कैसे काम करेगा सिंक्रनाइजेशन कैसे होगी इसमें देखते हैं जब मान लो मान लो आपके पास दो एच की थ्रेड्स आई तो जब पहली थ्रेड यहां पर आएगी इसको एग्जीक्यूट करने की कोशिश करेगी इधर लॉक करेगी लॉक करके क्रिटिकल सेक्शन में चली जाएगी ये मेरा क्रिटिकल सेक्शन है ठीक है जब क्रिटिकल सेक्शन में जाएगी तो स्टार्टिंग में टर्न की वैल्यू क्या होगी टर्न की वैल्यू स्टार्टिंग में जीरो है ठीक है तो जब यहां जीरो होगी तो जब टर्न टू है ना तब मैं इसको वेट करा रहा हूं जब टर्न की वैल्यू टू है जब टर्न टू नहीं है तो मैं क्या कर रहा हूं रिलीज ऑक्सीजन रिलीज ऑक्सीजन मैं कॉल कर रहा हूं यानी कि ऑक्सीजन को रिलीज कर दो ये देख रहे हो यार ये प्रैक्टिकल बेसिकली प्रैक्टिकल सिनेरियो को सॉल्व कर रहे हो आप आप खुद से सोचो आप वाटर के मॉलिक्यूल बना रहे हो आप दो हाइड्रोजन के एटम अगर वो करोगे रिलीज उसके बाद ही आप ऑक्सीजन का एक एटम रिलीज करोगे तब भी एक मॉलिक्यूल बनेगा मेरा वाटर का ठीक है ऐसा आप करने की कोशिश कर रहे हो तो रिलीज करोगे रिलीज करने के बाद टर्न को प्लस प्लस कर दोगे ठीक है जब टर्न प्लस प्लस होगा तो टर्न की वैल्यू क्या हो जाएगी टर्न की वैल्यू किसी h थ्रेड ने क्या करा एच थ्रेड ने टर्न की वैल्यू वन सेट कर दी अब इमेजिन करो कि जो ओओ की थ्रेड में बोल रहा था बहुत सारी वो आके इस टाइम क्या कर रही होंगी वेट कर रही होंगी कैसे वो इधर आई उन्होंने लॉक किया लॉक करने के बाद उसने क्या करा टर्न की वैल्यू जब तक टू से कम है मुझे वेट करना है तो ऑक्सीजन थ्रेड अगर आई यहां पर तो क्या करेगी वेट वेट करेगी और जो ये सीवी डॉट वेट के अंदर जो लॉक होता है यह क्या होता है जब वेट करने थ्रेड चली जाती है तो लॉक को अनलॉक कर देती है ये तो आपको ध्यान होगा हमने बताया था कंडीशन वेरिएबल की वीडियो में तो लॉक अनलॉक होगा तभी तो ये वाली थ्रेड्स अंदर घुस पाएंगी h की थ्रेड्स लॉक अनलॉक होगा ये वाला ठीक है चलो ये कांसेप्ट वापस से डिस्कस कर लिया हमने आगे बढ़ते हैं तो अब वापस से जब हाइड्रोजन की थ्रेड आएगी यानी ऑक्सीजन तो यहां वेट ही कर रहा है ऑक्सीजन वेट कर रहा है वापस से हाइड्रोजन की थ्रेड आएगी तो इधर देखेगी उस टाइम टर्न की वैल्यू वन होगी टर्न अी वन किया था 1 इक्वल टू इक्वल टू 2 ये फॉल्स हो जाएगा फॉल्स हो जाएगा तो इधर हाइड्रोजन के एटम को मौका मिल जाएगा हाइड्रोजन के एटम को मौका मिला तो वापस से क्या करा हाइड्रोजन के एटम ने टर्न को टू कर दिया अब टर्न जब टू हुआ प्लस प्लस करके अब इसने फिर जब नोटिफाई ऑल किया नोटिफाई हुआ यहां पे वापस से जब ऑक्सीजन थ्रेड आई इधर तो उसने देखा होगा अब टर्न जो है टू है तो 2 लेसन टू यह फॉल्स हो जाएगा फॉल्स होने के बाद ऑक्सीजन थ्रेड को रिलीज का मौका मिल जाएगा इसको मौका मिल गया ठीक है इसको मौका मिल गया तो मैंने क्या करा ओ को मौका दिया टर्न टू टू में ओ वाली थ्रेड क्या करेगी अब टर्न की वैल्यू को जीरो सेट कर देगी यहां पर आके ठीक है और फिर से नोटिफाई ऑल कोहल करेगी नोटिफाई ऑल कल करेगी तो उस टाइम टर्न जो है हाइड्रोजन की जो नेक्स्ट नेक्स्ट हाइड्रोजन की जो नेक्स्ट मॉलिक्यूल होगा यानी कि एच एच इन दो एच को तो मौका मिल गया था तो जो तीसरा एच आया होगा वो यहां पे वेट कर रहा होगा क्योंकि उस टाइम टर्न की वैल्यू टू होगी ठीक है जो इनकी थर्ड जो थर्ड हाइड्रोजन की एटम जो है यहां पे वेट कर रहा था उसको मौका मिलेगा तो अब वो जब इधर जाके चेक करेगा जो अब टर्न की वैल्यू हो गई जीरो थने जीरो कर दिया है यानी कि एक वाटर का मॉलिक्यूल बन चुका है ठीक है अब इधर जाऊंगा मैं अब वापस से हाइड्रोजन रिलीज होगी तो इस तरीके चलता रहेगा दो बार हाइड्रोजन रिलीज होगी फिर ऑक्सीजन रिलीज होगी फिर दो बार हाइड्रोजन रिलीज होगी फिर ऑक्सीजन रिलीज होगी यानी कि बढ़िया से पानी हम बना पा रहे हैं वाटर के मॉलिक्यूल हम बना पा रहे हैं ऐसा मुझे लगता है तो लेट्स एग्जामिन इट इसको टेस्ट करते हैं सबमिट करके ठीक है ठीक है यह हमने कोड लिख दिया यहां पर आईडी प तो चला आगे देखते हैं सही अभी कि नहीं तो यह देखो यार रिजल्ट आ गया है सिंपल जब n की वैल्यू h दी मैंने यानी कि एक वाटर का मॉलिक्यूल बनाना चा रहा हूं मैं तो उस टाइम सही आ रही है एक बार थोड़ा बड़ी वैल्यू डाल के देख लेते हैं इसमें हम पानी बना पा रहे हैं कि नहीं इसमें दो वाटर के मॉलिक्यूल बनेंगे बढ़िया अब इसको सबमिट करके देखते हैं आई होप यह बढ़िया से चल जाएगा ज्यादा बड़ा कोड नहीं था इसका बड़ा ही प्रेसा इज कोड लिखा हमने बहुत ही बढ़िया ठीक है बहुत ही अच्छा कोड लिखा है वेल डन तो इस तरीके से यार कुछ क्वेश्चन थे ये ठीक है छह क्वेश्चन हमने सॉल्व कर लिए हैं कंक्रेंस पे ठीक है और यह भी बढ़िया सबमिट हो गया है तो एक बार कंक्लूजन देता हूं मैं कंक्लूजन क्या होगा मेरा कंक्लूजन यह है कि मोर और लेस ना कंक्रेंस क्वेश्चन जितने हमने सॉल्व किए हैं उसमें तीन चार चीजें ही यूज हो रही है ठीक है मेरा टर्न कर के वेरिएबल यूज हो रहा है ठीक है जिसकी मदद से हम मौका दे रहे हैं थ्रेड्स को ठीक है टेक्स यूज हो रहे हैं ठीक है कंडीशन यूज हो रही हैं ठीक है कंडीशंस यूज हो रही हैं तो यह टेक्स कंडीशंस और लॉक्स की मदद से और टर्न वेरिएबल की वेरिएबल की मदद से मैं सॉल्व कर पा रहा हूं क्वेश्चंस कंक्रेंस के तो आई होप आपको मजा आया होगा कंक्रेंस के क्वेश्चन सॉल्व करने में यह हमारी एक बोनस वीडियो थी लास्ट वीडियो थी ऑपरेटिंग सिस्टम के कोर्स की तो मिलते हैं किसी और कोर्स में तब तक के लिए गु बाय