What is Contiguous Memory Allocation
Operating System में Contiguous memory allocation एक memory allocation technique है। लेकिन memory allocation? क्या है? जब किसी Program या Process को execute करना होता है, तो उसे Memory में some space की आवश्यकता होती है। इस कारण Memory का कुछ Part किसी Process को उसकी आवश्यकता के अनुसार allot करना पड़ता है। इस Process को memory allocation कहा जाता है।
ऐसी ही एक memory allocation technique contiguous memory allocation है। जैसा कि Name से ही स्पष्ट है, हम इस technique का Use करके प्रत्येक Process को Memory के contiguous blocks allocate करते हैं। इसलिए, जब भी कोई Process main memory में Enter करना चाहती है, तो हम उसके Size के आधार पर पूरी तरह से empty space से Process के लिए एक continuous segment allocate करते हैं।
Contiguous Memory Allocation Techniques
जब भी किसी Process को Memory में Space allocate करना होता है,contiguous memory allocation technique ko follow करते हुए, हमें Process को रहने के लिए Space का एकcontinuous empty block allot करना होता है।
यह allocation दो Type से किया जा सकता है:
- Fixed-size Partition Scheme
- Variable-size Partition Scheme
Fixed-size Partition Scheme
इस प्रकार की contiguous memory allocation technique में, प्रत्येक Process को Main memory में एक fixed size का continuous block allocate किया जाता है। इसका मतलब है कि fixed size के continuous block होंगे जिसमें complete memory को divide किया जाएगा, और हर बार जब कोई Process आती है, तो उसे free blocks में से एक allot किया जाएगा। क्योंकि Process के Size के बावजूद, प्रत्येक को same size की memory space का एक block allot किया जाता है। इस technique को static partitioning भी कहा जाता है।
ऊपर दिए गए Diagram में, हमारे पास input queue में 3 Processes हैं जिन्हें Memory में space allot करना है। जैसा कि हम fixed size partition technique को follow कर रहे हैं, Memory में fixed-sized के blocks होते हैं। पहली Process, जो 3MB Size की है, को भी 5MB block allot किया जाता है, और दूसरी Process, जो 1MB Size की है, को भी 5MB block allot किया जाता है, और 4MB Process को भी 5MB block allot किया जाता है। इसलिए, Process का size matter नहीं रखता। प्रत्येक को एक ही fixed-sized का Memory blocks allot किया जाता है।
यह स्पष्ट है कि इस scheme में, continuous blocks की संख्या जिसमें Memory को divide किया जाएगा, प्रत्येक block covers किए गए Space की मात्रा से decide किया जाएगा, और बदले में, main memory में many processes रह सकती हैं, यह decide करेगा। एक बार।
Note: Processes की संख्या जो एक बार में Memory में रह सकती है, Multiprogramming की degree कहलाती है। इसलिए, System के Multiprogramming की degree Memory में बनाए गए blocks की number से decide होती है।
Advantages:-
Fixed-size partition scheme के Advantages हैं:
- चूंकि सभी Blocks एक ही Size के हैं, इसलिए इस Scheme को implement करना easy है। अब हमें बस इतना करना है कि Memory को fixed blocks में divide कर दें और उन्हें Process assign कर दें।
- Memory के कितने block बचे हैं, इसका Track रखना easy है, जो बदले में यह decide करता है कि Memory में कितनी और Processes को Space दी जा सकती है।
- चूंकि एक समय में many Processes को Memory में रखा जा सकता है, इस Scheme को उस System में apply किया जा सकता है जिसे Multiprogramming की आवश्यकता होती है।
Disadvantages:-
Fixed-size partition scheme के कई Advantages हैं, इसके कुछ disadvantage भी हैं:
- चूंकि blocks का Size fixed है, इसलिए हम उस Process को Space allot नहीं कर पाएंगे जिसका Size Block से बड़ा है।
- Block का Size Multiprogramming की degree decide करता है, और केवल इतना ही कि many Processes एक साथ block की संख्या के रूप में Memory में रह सकती हैं।
- यदि Block का Size Process के Size से बड़ा है, तो हमारे पास इस Block को Process assign करने के अलावा और कोई Option नहीं है, लेकिन इससे block में बहुत empty space छूट जाएगी। इस empty space का इस्तेमाल किसी दूसरी Process को accommodate करने के लिए किया जा सकता था। इसे internal fragmentation कहा जाता है। इसलिए, इस technique से space wastage हो सकती है।