Theory
LabOne Classroom का संकट
कल्पना कीजिए आप एक 15 MB Python data analysis script चलाने के लिए LabOne server में log in करते हैं। उसी समय, आपका classmate एक छोटी 2 MB SQL query चलाना चाहता है। अगर LabOne operating system किसी के log in करने से पहले अपनी physical RAM को सख़्त, अपरिवर्तनीय 20 MB slots में बाँट देता है, आपकी script perfectly फिट होती है, पर आपका classmate बस 2 MB code के लिए एक पूरा 20 MB slot बर्बादी से घेर लेता है। OS क़ीमती megabytes बर्बाद किए बिना RAM में desk space कैसे बाँट सकता है?
Theory
Parking Lot बनाम खुला Playground
fixed partitioning को एक मानक college parking lot की तरह सोचिए जहाँ हर slot एक बड़ी SUV फिट करने के लिए painted है। भले एक student वहाँ एक छोटी bicycle park करे, वह slot पूरी तरह लिया गया है और कुछ और नहीं रख सकता। Variable partitioning एक खुले घास के playground की तरह है जहाँ students बिल्कुल अपनी ज़रूरत के आकार के tents लगाते हैं। एक tent के अंदर कोई जगह बर्बाद नहीं होती, पर जैसे लोग समेटकर जाते हैं, बचे gaps नए tents के फिट होने के लिए बहुत अजीब हो सकते हैं।
Theory
Fixed बनाम Variable Partitioning
contiguous memory management में, fixed partitioning system startup के दौरान RAM को static, अपरिवर्तनीय क्षेत्रों में बाँटता है। हर क्षेत्र ठीक एक process रखता है। इसके उलट, variable partitioning RAM को पहले से नहीं बाँटता। बजाय इसके, operating system memory को मुफ़्त space के एक contiguous block, जिसे एक hole कहते हैं, से dynamically allocate करता है, LabOne server में load होते हुए एक process द्वारा माँगे गए बिल्कुल आकार से मेल खाते हुए।
At a glance
static और dynamic allocation techniques के बीच मुख्य संरचनात्मक व्यापार।
| Feature | Fixed Partitioning | Variable Partitioning |
|---|---|---|
| Partition Size | स्थायी और पूर्वनिर्धारित | Dynamic और तुरंत बदलता है |
| Process Limit | partitions की संख्या के बराबर | सिर्फ़ कुल RAM आकार से सीमित |
| Fragmentation | internal fragmentation से नुक़सान झेलता है | external fragmentation से नुक़सान झेलता है |
| OS Overhead | बहुत कम और track करने में सरल | ज़्यादा क्योंकि यह मुफ़्त holes track करता है |
Think first
एक Fixed Partition बर्बादी को ट्रेस करना
मान लीजिए LabOne में 10 MB, 20 MB, और 30 MB के 3 fixed slots में बँटा एक RAM क्षेत्र है। तीन student programs क्रम में आते हैं: P1 (8 MB), P2 (12 MB), और P3 (25 MB)। समाधान प्रकट करने से पहले हल कीजिए कि हर process कौन सा partition घेरती है और slots के अंदर कुल बर्बाद जगह calculate कीजिए।
Show the answer
Step 1: P1 (8 MB) 10 MB slot में फिट होता है। इस slot के अंदर बर्बाद जगह 10 minus 8 है जो 2 MB बराबर है।
Step 2: P2 (12 MB) बचे 10 MB slot में फिट नहीं हो सकता, तो यह 20 MB slot लेता है। अंदर बर्बाद जगह 20 minus 12 है जो 8 MB बराबर है।
Step 3: P3 (25 MB) 30 MB slot लेता है। अंदर बर्बाद जगह 30 minus 25 है जो 5 MB बराबर है।
Step 4: partitions के अंदर कुल बर्बाद जगह 2 plus 8 plus 5 है जो 15 MB बराबर है। यह slot-के-अंदर बर्बादी internal fragmentation कहलाती है।
Quiz
अगर LabOne server पर एक 4 MB process एक 16 MB fixed partition में load होती है, उस partition के अंदर बचे 12 MB का क्या होता है?
- OS अपने-आप इसे एक और 12 MB process को सौंप देता है
- यह पूरी तरह locked और किसी भी दूसरी process द्वारा अनुपयोगी रहता है
- partition memory बचाने के लिए dynamically 4 MB तक सिकुड़ जाता है
- यह तुरंत secondary backing store space में बदल जाता है
Show the answer
यह पूरी तरह locked और किसी भी दूसरी process द्वारा अनुपयोगी रहता है
fixed partitioning में, एक slot एक समय में सिर्फ़ एक process रख सकता है। भले process slot के एक छोटे अंश का उपयोग करे, उस slot का बाक़ी हिस्सा पूरी तरह locked और बर्बाद है। यह सिकुड़ नहीं सकता या दूसरी process स्वीकार नहीं कर सकता। यह internal fragmentation पैदा करता है।
Watch out
Fragmentation Interchange का जाल
university exams में marks खोने का एक पक्का तरीक़ा यह उलझाना है कि internal और external fragmentation कहाँ होती हैं। इस सख़्त नियम को याद रखिए: fixed partitioning internal fragmentation की ओर ले जाता है क्योंकि जगह एक पूर्वनिर्धारित box के अंदर बर्बाद होती है। Variable partitioning external fragmentation की ओर ले जाता है क्योंकि पुराने programs ख़त्म होकर LabOne की RAM से निकलते हुए allocated blocks के बाहर बेतरतीब छोटे holes विकसित होते हैं।
Think first
Dynamic Growth की समस्या
मान लीजिए एक variable partition में चलती एक student program को एक नई data array load करने के लिए अचानक 5 MB अतिरिक्त RAM चाहिए। अगर इसके मौजूदा block से तुरंत सटी कोई मुफ़्त जगह नहीं है, क्या एक contiguous variable partition बस जगह पर ही बढ़ सकता है? प्रकट करने से पहले contiguous allocation के नियम के बारे में सोचिए।
Show the answer
नहीं, यह जगह पर नहीं बढ़ सकता। क्योंकि variable allocation के लिए ज़रूरी है कि एक process RAM का एक अकेला निरंतर block घेरे, अगर सटी जगह पहले से किसी दूसरे student के program द्वारा ली गई है, OS को या तो एक बिल्कुल नया बड़ा hole खोजना होगा, पूरी process वहाँ move करनी होगी, या program को एक out of memory error से crash करना होगा।
Theory
असली दुनिया की Memory और Unit 4
हालाँकि आधुनिक operating systems उन्नत paging techniques इस्तेमाल करते हैं, इन बुनियादी partition mechanics को समझना अहम है। जब हम Unit 4 में अपनी Linux installation lab के दौरान hard drives partition करते हैं आप fixed layout का एक रूप देखेंगे। वहाँ, आप system boot करने से पहले एक अकेली disk को स्पष्ट, अपरिवर्तनीय partitions जैसे root और swap में बाँटेंगे।
Summary
Key takeaways
- Fixed partitioning startup पर अपरिवर्तनीय memory सीमाएँ set करता है, सक्रिय tasks की संख्या सीमित करते हुए।
- Variable partitioning हर process द्वारा माँगे गए बिल्कुल आकार के आधार पर dynamically slots बनाता है।
- Fixed partitioning slots के अंदर बची जगह के कारण internal fragmentation से नुक़सान झेलता है।
- Variable partitioning slots के बीच बिखरे holes के कारण external fragmentation से नुक़सान झेलता है।
- Contiguous allocation का मतलब हर process को RAM के एक अकेले अटूट block में रहना चाहिए।
- Memory hook: Fixed partitions अंदर जगह बर्बाद करते हैं: variable holes बाहर gaps छोड़ते हैं!