वर्चुअल मेमोरी: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[File:Virtual memory.svg|thumb|250px|आभासी मेमोरी [[डायरेक्ट-एक्सेस स्टोरेज डिवाइस|डायरेक्ट- ्सेस | [[File:Virtual memory.svg|thumb|250px|आभासी मेमोरी [[डायरेक्ट-एक्सेस स्टोरेज डिवाइस|डायरेक्ट- ्सेस भंडारण डिवाइस]] पर सक्रिय [[रैंडम एक्सेस मेमोरी|रैंडम ्सेस मेमोरी]] और निष्क्रिय मेमोरी को जोड़ती है{{efn|Early systems used [[Drum memory|drums]]; contemporary systems use [[Disk storage|disks]] or [[Solid-state drive|solid state memory]]}} सन्निहित पतों की बड़ी श्रृंखला बनाने के लिए।]][[कम्प्यूटिंग]] में, आभासी मेमोरी, {{efn|IBM uses the term '''virtual storage''' on mainframe operating systems. This usage runs from [[TSS (operating system)|TSS]]<ref>{{cite manual | ||
| title = System/360 Model 67 Time Sharing System Preliminary Technical Summary | | title = System/360 Model 67 Time Sharing System Preliminary Technical Summary | ||
| id = C20-1647-0 | | id = C20-1647-0 | ||
Line 26: | Line 26: | ||
== गुण == | == गुण == | ||
आभासी मेमोरी भौतिक मेमोरी के फ्रैगमेंटेशन (कंप्यूटर) को छिपाकर एप्लिकेशन प्रोग्रामिंग को आसान बनाती है; | आभासी मेमोरी भौतिक मेमोरी के फ्रैगमेंटेशन (कंप्यूटर) को छिपाकर एप्लिकेशन प्रोग्रामिंग को आसान बनाती है; कंप्यूटर डेटा भंडारण कर्नेल के लिए के पदानुक्रम के प्रबंधन का बोझ सौंपकर ([[ओवरले (प्रोग्रामिंग)]] को स्पष्ट रूप से संभालने के लिए कार्यक्रम की आवश्यकता को समाप्त करना); और, जब प्रत्येक प्रक्रिया को अपने स्वयं के समर्पित पता स्थान में चलाया जाता है, आवश्यकता से छुटकारा पाने के लिए (कंप्यूटर विज्ञान) प्रोग्राम कोड या एड्रेसिंग मोड # पीसी-रिश्तेदार के साथ स्मृति तक पहुंचने के लिए। | ||
[[मेमोरी वर्चुअलाइजेशन]] को आभासी मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है। | [[मेमोरी वर्चुअलाइजेशन]] को आभासी मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है। | ||
Line 58: | Line 58: | ||
|doi=10.1007/s002870050034 |journal=Informatik-Spektrum | |doi=10.1007/s002870050034 |journal=Informatik-Spektrum | ||
|issn=0170-6012 |volume=19 |issue=4 |pages=216–219 |year=1996 |s2cid=11514875 | |issn=0170-6012 |volume=19 |issue=4 |pages=216–219 |year=1996 |s2cid=11514875 | ||
|language=de}}</ref> सावधानीपूर्वक जांच करने के लिए खड़ा नहीं होता है। गुंटश द्वारा प्रस्तावित कंप्यूटर (किन्तु कभी नहीं बनाया गया) का पता स्थान 10 था<sup>5</sup> शब्द जो बिल्कुल 10 पर मानचित्र किए गए<sup>5</sup> ड्रम के शब्द, अर्थात पते वास्तविक पते थे और अप्रत्यक्ष मानचित्रण का कोई रूप नहीं था, आभासी स्मृति की प्रमुख विशेषता। गुंटश ने जो आविष्कार किया वह [[कैश मैमोरी]] का रूप था, क्योंकि उसकी हाई-स्पीड मेमोरी का उद्देश्य कोड के कुछ ब्लॉक या ड्रम से लिए गए डेटा की प्रति सम्मलित करना था। दरअसल, उन्होंने लिखा (जैसा कि अनुवाद में उद्धृत किया गया है{{sfnp | Jessen | 2004}}): प्रोग्रामर को प्राथमिक मेमोरी के अस्तित्व का सम्मान करने की आवश्यकता नहीं है (उसे यह जानने की भी आवश्यकता नहीं है कि यह उपस्तिथ है), क्योंकि केवल प्रकार के पते (एसआईसी) होते हैं जिनके द्वारा कोई प्रोग्राम कर सकता है जैसे कि केवल ही | |language=de}}</ref> सावधानीपूर्वक जांच करने के लिए खड़ा नहीं होता है। गुंटश द्वारा प्रस्तावित कंप्यूटर (किन्तु कभी नहीं बनाया गया) का पता स्थान 10 था<sup>5</sup> शब्द जो बिल्कुल 10 पर मानचित्र किए गए<sup>5</sup> ड्रम के शब्द, अर्थात पते वास्तविक पते थे और अप्रत्यक्ष मानचित्रण का कोई रूप नहीं था, आभासी स्मृति की प्रमुख विशेषता। गुंटश ने जो आविष्कार किया वह [[कैश मैमोरी]] का रूप था, क्योंकि उसकी हाई-स्पीड मेमोरी का उद्देश्य कोड के कुछ ब्लॉक या ड्रम से लिए गए डेटा की प्रति सम्मलित करना था। दरअसल, उन्होंने लिखा (जैसा कि अनुवाद में उद्धृत किया गया है{{sfnp | Jessen | 2004}}): प्रोग्रामर को प्राथमिक मेमोरी के अस्तित्व का सम्मान करने की आवश्यकता नहीं है (उसे यह जानने की भी आवश्यकता नहीं है कि यह उपस्तिथ है), क्योंकि केवल प्रकार के पते (एसआईसी) होते हैं जिनके द्वारा कोई प्रोग्राम कर सकता है जैसे कि केवल ही भंडारण हो। कैश मेमोरी वाले कंप्यूटरों में ठीक यही स्थिति है, जिसका प्रारंभ व्यावसायिक उदाहरण आईबीएम सिस्टम/360 मॉडल 85 था।<ref>{{citation | ||
|last=Liptay |first=J.S. |title=Structural Aspects of the System/360 Model 85 – The Cache | |last=Liptay |first=J.S. |title=Structural Aspects of the System/360 Model 85 – The Cache | ||
|journal=[[IBM Systems Journal]] |volume=7 |pages=15–21 |year=1968 |doi=10.1147/sj.71.0015}}</ref> मॉडल 85 में सभी पते वास्तविक पते थे जो मुख्य कोर स्टोर का जिक्र करते थे। सेमीकंडक्टर कैश स्टोर, उपयोगकर्ता के लिए अदृश्य, वर्तमान में निष्पादित प्रोग्राम द्वारा उपयोग में मुख्य स्टोर के कुछ हिस्सों की सामग्री रखता है। यह मल्टी-प्रोग्रामिंग में सम्मलित समस्याओं को हल करने के अतिरिक्त प्रदर्शन को बेहतर बनाने के साधन के रूप में डिज़ाइन किए गए गुंटश के सिस्टम के समान है। | |journal=[[IBM Systems Journal]] |volume=7 |pages=15–21 |year=1968 |doi=10.1147/sj.71.0015}}</ref> मॉडल 85 में सभी पते वास्तविक पते थे जो मुख्य कोर स्टोर का जिक्र करते थे। सेमीकंडक्टर कैश स्टोर, उपयोगकर्ता के लिए अदृश्य, वर्तमान में निष्पादित प्रोग्राम द्वारा उपयोग में मुख्य स्टोर के कुछ हिस्सों की सामग्री रखता है। यह मल्टी-प्रोग्रामिंग में सम्मलित समस्याओं को हल करने के अतिरिक्त प्रदर्शन को बेहतर बनाने के साधन के रूप में डिज़ाइन किए गए गुंटश के सिस्टम के समान है। | ||
[[File:University of Manchester Atlas, January 1963.JPG|thumb|यूनिवर्सिटी ऑफ़ मैनचेस्टर [[एटलस कंप्यूटर]] पहला कंप्यूटर था जिसमें वास्तविक आभासी मेमोरी की सुविधा थी।]]पहला ट्रू आभासी मेमोरी सिस्टम [[मैनचेस्टर विश्वविद्यालय]] में -स्तरीय | [[File:University of Manchester Atlas, January 1963.JPG|thumb|यूनिवर्सिटी ऑफ़ मैनचेस्टर [[एटलस कंप्यूटर]] पहला कंप्यूटर था जिसमें वास्तविक आभासी मेमोरी की सुविधा थी।]]पहला ट्रू आभासी मेमोरी सिस्टम [[मैनचेस्टर विश्वविद्यालय]] में -स्तरीय भंडारण सिस्टम बनाने के लिए लागू किया गया था<ref>{{citation | last1=Kilburn | first1=T. | last2=Edwards | first2=D.B.G. | last3=Lanigan | first3=M.J. | last4=Sumner | first4=F.H. | title=One-level Storage System | journal=IRE Trans EC-11 | pages=223–235 | year=1962| issue=2 | doi=10.1109/TEC.1962.5219356 }}</ref> एटलस कंप्यूटर के हिस्से के रूप में। इसने प्रोग्रामर के लिए उपलब्ध आभासी पतों को वास्तविक मेमोरी पर मानचित्र करने के लिए पेजिंग तंत्र का उपयोग किया जिसमें माध्यमिक [[ड्रम मेमोरी]] के अतिरिक्त 98,304 शब्दों के साथ प्राथमिक [[चुंबकीय-कोर मेमोरी]] के 16,384 शब्द सम्मलित थे।<ref>{{cite web|url=https://www.ourcomputerheritage.org/Maincomp/Fer/ccs-f5x2.pdf|title=Ferranti Atlas 1 & 2 – Systems Architecture|date=12 November 2009}}</ref> एटलस में आभासी मेमोरी को सम्मलित करने से उभरती हुई प्रोग्रामिंग समस्या भी समाप्त हो गई: मुख्य मेमोरी के आकार के प्रत्येक परिवर्तन के लिए मुख्य और द्वितीयक मेमोरी और रीकंपाइलिंग प्रोग्राम के बीच डेटा ट्रांसफर की योजना बनाना और शेड्यूल करना।<ref>{{cite encyclopedia |last=Denning |first=Peter J. |entry=Virtual memory |date=1 January 2003 |entry-url=https://dl.acm.org/doi/abs/10.5555/1074100.1074903 |encyclopedia=Encyclopedia of Computer Science |pages=1832–1835 |publisher=John Wiley and Sons |isbn=978-0-470-86412-8 |access-date=10 January 2023}}</ref> पहला एटलस 1962 में कमीशन किया गया था किन्तु पेजिंग के कार्यशील प्रोटोटाइप को 1959 तक विकसित कर लिया गया था।<ref name="denning"/>{{rp|page=2}}<ref>{{cite journal |first=R. J. |last=Creasy |url=http://pages.cs.wisc.edu/~stjones/proj/vm_reading/ibmrd2505M.pdf |title=The origin of the VM/370 time-sharing system |journal=[[IBM Journal of Research & Development]] |volume=25 |issue=5 |date=September 1981 |page=486|doi=10.1147/rd.255.0483 }}</ref><ref>{{cite web|url=http://www.computer50.org/kgill/atlas/atlas.html|title=The Atlas|archive-url=https://web.archive.org/web/20141006103119/http://www.computer50.org/kgill/atlas/atlas.html|archive-date=6 October 2014|url-status=usurped}}</ref> 1961 में, बरोज़ कॉर्पोरेशन ने स्वतंत्र रूप से पेजिंग के अतिरिक्त [[विभाजन (मेमोरी)]] के साथ आभासी मेमोरी, B5000 के साथ पहला व्यावसायिक कंप्यूटर जारी किया।<ref>{{cite web| url = http://ianjoyner.name/Burroughs.html| first = Ian | last = Joyner | title = Burroughs | archive-url = https://web.archive.org/web/20170510101556/http://ianjoyner.name/Burroughs.html | archive-date = 10 May 2017}}</ref><ref>{{Cite book|first=Harvey G.|last=Cragon|title=Memory Systems and Pipelined Processors|publisher=Jones and Bartlett Publishers|page=113|year=1996|url=https://books.google.com/books?id=q2w3JSFD7l4C|isbn=978-0-86720-474-2}}</ref> | ||
आईबीएम विकसित{{efn|IBM had previously used the term hypervisor for the [[IBM System/360 Model 65|360/65]],<ref>{{cite conference | url = https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | title = System/370 integrated emulation under OS and DOS | author = Gary R. Allred | page = 164 | conference = 1971 [[Spring Joint Computer Conference]] | volume = 38 | doi = 10.1109/AFIPS.1971.58 | date = May 1971 | publisher = AFIPS Press | access-date = 12 June 2022 }}</ref> but that did not involve virtual memory}} उनके [[IBM CP-40|आईबीएम सीपी-40]]|सीपी-40 और [[CP-67|सीपी-67]] में [[सूत्र]] की अवधारणा, और 1972 में इसे आईबीएम प्रणाली/370|एस/370 के लिए आभासी मशीन सुविधा/370 के रूप में प्रदान किया।<ref>{{cite manual |url=http://www.vm.ibm.com/pubs/HCSF8A50.PDF |title=z/VM built on IBM Virtualization Technology General Information Version 4 Release 3.0 |id=GC24-5991-04 |date=12 April 2002}}</ref> आईबीएम ने 3081 पर 370- ्सए के हिस्से के रूप में स्टार्ट इंटरप्रिटिव ्ज़ीक्यूशन (एसआईई) निर्देश और इसका फायदा उठाने के लिए वीएम (ऑपरेटिंग सिस्टम) के वीएम/ ्सए संस्करण प्रस्तुत किए। | आईबीएम विकसित{{efn|IBM had previously used the term hypervisor for the [[IBM System/360 Model 65|360/65]],<ref>{{cite conference | url = https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | title = System/370 integrated emulation under OS and DOS | author = Gary R. Allred | page = 164 | conference = 1971 [[Spring Joint Computer Conference]] | volume = 38 | doi = 10.1109/AFIPS.1971.58 | date = May 1971 | publisher = AFIPS Press | access-date = 12 June 2022 }}</ref> but that did not involve virtual memory}} उनके [[IBM CP-40|आईबीएम सीपी-40]]|सीपी-40 और [[CP-67|सीपी-67]] में [[सूत्र]] की अवधारणा, और 1972 में इसे आईबीएम प्रणाली/370|एस/370 के लिए आभासी मशीन सुविधा/370 के रूप में प्रदान किया।<ref>{{cite manual |url=http://www.vm.ibm.com/pubs/HCSF8A50.PDF |title=z/VM built on IBM Virtualization Technology General Information Version 4 Release 3.0 |id=GC24-5991-04 |date=12 April 2002}}</ref> आईबीएम ने 3081 पर 370- ्सए के हिस्से के रूप में स्टार्ट इंटरप्रिटिव ्ज़ीक्यूशन (एसआईई) निर्देश और इसका फायदा उठाने के लिए वीएम (ऑपरेटिंग सिस्टम) के वीएम/ ्सए संस्करण प्रस्तुत किए। | ||
मेनस्ट्रीम ऑपरेटिंग सिस्टम में आभासी मेमोरी को लागू करने से पहले, कई समस्याओं का समाधान किया जाना था। डायनेमिक एड्रेस ट्रांसलेशन के लिए महंगे और कठिनाई से बनने वाले विशेष हार्डवेयर की आवश्यकता होती है; प्रारंभिक कार्यान्वयन ने स्मृति तक पहुंच को थोड़ा धीमा कर दिया।<ref name="denning" />इस बात को लेकर चिंताएं थीं कि द्वितीयक भंडारण का उपयोग करने वाले नए सिस्टम-वाइड एल्गोरिदम पहले उपयोग किए गए एप्लिकेशन-विशिष्ट एल्गोरिदम की तुलना में कम प्रभावी होंगे। 1969 तक, व्यावसायिक कंप्यूटरों के लिए आभासी मेमोरी पर बहस समाप्त हो गई थी;<ref name="denning" />[[डेविड सायरे]] के नेतृत्व में [[आईबीएम]] की शोध टीम ने दिखाया कि उनकी आभासी मेमोरी ओवरले प्रणाली ने सर्वश्रेष्ठ मैन्युअल रूप से नियंत्रित प्रणालियों की तुलना में लगातार बेहतर काम किया।<ref>{{Cite journal | last1 = Sayre | first1 = D. | title = Is automatic "folding" of programs efficient enough to displace manual? | doi = 10.1145/363626.363629 | journal = Communications of the ACM | volume = 12 | issue = 12 | pages = 656–660 | year = 1969 | s2cid = 15655353 }}</ref> 1970 के दशक के पर्यन्त, आईबीएम 370 श्रृंखला ने अपने वर्चुअल- | मेनस्ट्रीम ऑपरेटिंग सिस्टम में आभासी मेमोरी को लागू करने से पहले, कई समस्याओं का समाधान किया जाना था। डायनेमिक एड्रेस ट्रांसलेशन के लिए महंगे और कठिनाई से बनने वाले विशेष हार्डवेयर की आवश्यकता होती है; प्रारंभिक कार्यान्वयन ने स्मृति तक पहुंच को थोड़ा धीमा कर दिया।<ref name="denning" />इस बात को लेकर चिंताएं थीं कि द्वितीयक भंडारण का उपयोग करने वाले नए सिस्टम-वाइड एल्गोरिदम पहले उपयोग किए गए एप्लिकेशन-विशिष्ट एल्गोरिदम की तुलना में कम प्रभावी होंगे। 1969 तक, व्यावसायिक कंप्यूटरों के लिए आभासी मेमोरी पर बहस समाप्त हो गई थी;<ref name="denning" />[[डेविड सायरे]] के नेतृत्व में [[आईबीएम]] की शोध टीम ने दिखाया कि उनकी आभासी मेमोरी ओवरले प्रणाली ने सर्वश्रेष्ठ मैन्युअल रूप से नियंत्रित प्रणालियों की तुलना में लगातार बेहतर काम किया।<ref>{{Cite journal | last1 = Sayre | first1 = D. | title = Is automatic "folding" of programs efficient enough to displace manual? | doi = 10.1145/363626.363629 | journal = Communications of the ACM | volume = 12 | issue = 12 | pages = 656–660 | year = 1969 | s2cid = 15655353 }}</ref> 1970 के दशक के पर्यन्त, आईबीएम 370 श्रृंखला ने अपने वर्चुअल-भंडारण आधारित ऑपरेटिंग सिस्टम को चलाने के लिए व्यापार उपयोगकर्ताओं को कई पुराने सिस्टम को कम, अधिक शक्तिशाली, मेनफ्रेम में माइग्रेट करने का साधन प्रदान किया, जिसने मूल्य/प्रदर्शन में सुधार किया था। आभासी मेमोरी प्रस्तुत करने वाला पहला मिनीकंप्यूटर नॉर्वेजियन [[NORD-1|नॉर्ड-1]] था; 1970 के दशक के पर्यन्त, अन्य [[मिनी कंप्यूटर]] ने आभासी मेमोरी लागू की, विशेष रूप से ओपन [[ओपन VMS|ओपन वीएमएस]] चलाने वाले [[वैक्स]] मॉडल। | ||
इंटेल 802[[86]] प्रोसेसर के संरक्षित मोड के साथ आभासी मेमोरी को x86 आर्किटेक्चर में प्रस्तुत किया गया था, किन्तु इसकी सेगमेंट स्वैपिंग प्रविधि को बड़े सेगमेंट आकार में खराब कर दिया गया। [[Intel 80386|इंटेल 80386]] ने उपस्तिथा सेगमेंटेशन (मेमोरी) लेयर के नीचे पेजिंग सपोर्ट प्रस्तुत किया, जिससे पेज फॉल्ट अपवाद को बिना किसी [[दोहरा दोष]] के अन्य अपवादों के साथ चेन में सक्षम किया गया। चूंकि, सेगमेंट डिस्क्रिप्टर लोड करना महंगा ऑपरेशन था, जिससे ऑपरेटिंग सिस्टम डिज़ाइनर पेजिंग और सेगमेंटेशन के संयोजन के अतिरिक्त पेजिंग पर सख्ती से भरोसा करते थे। | इंटेल 802[[86]] प्रोसेसर के संरक्षित मोड के साथ आभासी मेमोरी को x86 आर्किटेक्चर में प्रस्तुत किया गया था, किन्तु इसकी सेगमेंट स्वैपिंग प्रविधि को बड़े सेगमेंट आकार में खराब कर दिया गया। [[Intel 80386|इंटेल 80386]] ने उपस्तिथा सेगमेंटेशन (मेमोरी) लेयर के नीचे पेजिंग सपोर्ट प्रस्तुत किया, जिससे पेज फॉल्ट अपवाद को बिना किसी [[दोहरा दोष]] के अन्य अपवादों के साथ चेन में सक्षम किया गया। चूंकि, सेगमेंट डिस्क्रिप्टर लोड करना महंगा ऑपरेशन था, जिससे ऑपरेटिंग सिस्टम डिज़ाइनर पेजिंग और सेगमेंटेशन के संयोजन के अतिरिक्त पेजिंग पर सख्ती से भरोसा करते थे। | ||
Line 111: | Line 111: | ||
=== पिन किए गए पृष्ठ === | === पिन किए गए पृष्ठ === | ||
ऑपरेटिंग सिस्टम में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है (द्वितीयक | ऑपरेटिंग सिस्टम में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है (द्वितीयक भंडारण में कभी भी स्वैप नहीं किया जाता है)। उपयोग किए जाने वाले अन्य शब्द लॉक, फिक्स्ड या वायर्ड पेज हैं। उदाहरण के लिए, [[बाधा डालना]] मैकेनिज्म अपने हैंडलर्स के लिए पॉइंटर्स की सरणी पर निर्भर करता है, जैसे कि आई / ओ पूर्णता और पेज फॉल्ट। यदि इन संकेतकों वाले पृष्ठ या उनके द्वारा आह्वान किए गए कोड पेज करने योग्य थे, तो व्यवधान-प्रबंधन कहीं अधिक जटिल और समय लेने वाला हो जाएगा, विशेष रूप से पृष्ठ दोष रुकावटों के स्थितियोंमें। इसलिए, पेज टेबल स्ट्रक्चर का कुछ हिस्सा पेजेबल नहीं है। | ||
कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है, अन्य को लंबे समय के लिए पिन किया जा सकता है, और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए: | कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है, अन्य को लंबे समय के लिए पिन किया जा सकता है, और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए: | ||
* पेजिंग सुपरवाइज़र कोड और सेकेंडरी | * पेजिंग सुपरवाइज़र कोड और सेकेंडरी भंडारण डिवाइस के ड्राइवर जिन पर पेज रहते हैं उन्हें स्थायी रूप से पिन किया जाना चाहिए, अन्यथा पेजिंग काम भी नहीं करेगी क्योंकि आवश्यक कोड उपलब्ध नहीं होगा। | ||
* चर पेजिंग विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है। | * चर पेजिंग विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है। | ||
* [[डेटा बफ़र]]्स जो सीधे परिधीय उपकरणों द्वारा ्सेस किए जाते हैं जो [[प्रत्यक्ष मेमोरी एक्सेस|प्रत्यक्ष मेमोरी ्सेस]] या आई/ओ चैनलों का उपयोग करते हैं, उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि आई/ओ ऑपरेशन प्रगति पर है क्योंकि ऐसे डिवाइस और [[बस (कंप्यूटिंग)]] जिनसे वे जुड़े हुए हैं, उम्मीद करते हैं भौतिक स्मृति पतों पर स्थित डेटा बफ़र्स खोजें; इस बात की परवाह किए बिना कि बस में आईओएमएमयू|आई/ओ के लिए स्मृति प्रबंधन इकाई है, पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है। | * [[डेटा बफ़र]]्स जो सीधे परिधीय उपकरणों द्वारा ्सेस किए जाते हैं जो [[प्रत्यक्ष मेमोरी एक्सेस|प्रत्यक्ष मेमोरी ्सेस]] या आई/ओ चैनलों का उपयोग करते हैं, उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि आई/ओ ऑपरेशन प्रगति पर है क्योंकि ऐसे डिवाइस और [[बस (कंप्यूटिंग)]] जिनसे वे जुड़े हुए हैं, उम्मीद करते हैं भौतिक स्मृति पतों पर स्थित डेटा बफ़र्स खोजें; इस बात की परवाह किए बिना कि बस में आईओएमएमयू|आई/ओ के लिए स्मृति प्रबंधन इकाई है, पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है। | ||
Line 133: | Line 133: | ||
== खंडित आभासी मेमोरी == | == खंडित आभासी मेमोरी == | ||
कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन B5500,<ref>{{cite book|author=Burroughs|id=1021326|title=Burroughs B5500 Information Processing System Reference Manual|url=http://bitsavers.org/pdf/burroughs/B5000_5500_5700/1021326_B5500_RefMan_May67.pdf|year=1964|publisher=[[Burroughs Corporation]]|access-date=28 November 2013}}</ref> पेजिंग के अतिरिक्त सेगमेंटेशन (मेमोरी) का उपयोग करें, आभासी पता स्थान को वेरिएबल-लेंथ सेगमेंट में विभाजित करें। यहां आभासी एड्रेस में सेगमेंट नंबर और सेगमेंट के भीतर ऑफ़सेट होता है। इंटेल 80286 विकल्प के रूप में समान विभाजन योजना का समर्थन करता है, किन्तु इसका उपयोग संभवतः ही कभी किया जाता है। प्रत्येक खंड को पृष्ठों में विभाजित करके विभाजन और पेजिंग का साथ उपयोग किया जा सकता है; इस मेमोरी संरचना वाले सिस्टम, जैसे मल्टिक्स और आईबीएम सिस्टम/38, सामान्यतः पेजिंग-प्रमुख होते हैं, विभाजन स्मृति सुरक्षा प्रदान करते हैं।<ref>{{Cite book|url = http://www.bitsavers.org/pdf/ge/GE-645/LSB0468_GE-645_System_Manual_Jan1968.pdf|title = GE-645 System Manual|pages = 21–30|date = January 1968|access-date = 25 February 2022}}</ref><ref>{{cite web|author=Corbató, F.J.|author-link=Fernando J. Corbató|author2=Vyssotsky, V. A.|author2-link=Victor A. Vyssotsky|title=Introduction and Overview of the Multics System |url=http://www.multicians.org/fjcc1.html |access-date=13 November 2007 }}</ref><ref>{{cite web|author1=Glaser, Edward L. |author2=Couleur, John F. |author3=Oliver, G. A. |name-list-style=amp |title=System Design of a Computer for Time Sharing Applications |url=http://www.multicians.org/fjcc2.html }}</ref> | कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन B5500,<ref>{{cite book|author=Burroughs|id=1021326|title=Burroughs B5500 Information Processing System Reference Manual|url=http://bitsavers.org/pdf/burroughs/B5000_5500_5700/1021326_B5500_RefMan_May67.pdf|year=1964|publisher=[[Burroughs Corporation]]|access-date=28 November 2013}}</ref> पेजिंग के अतिरिक्त सेगमेंटेशन (मेमोरी) का उपयोग करें, आभासी पता स्थान को वेरिएबल-लेंथ सेगमेंट में विभाजित करें। यहां आभासी एड्रेस में सेगमेंट नंबर और सेगमेंट के भीतर ऑफ़सेट होता है। इंटेल 80286 विकल्प के रूप में समान विभाजन योजना का समर्थन करता है, किन्तु इसका उपयोग संभवतः ही कभी किया जाता है। प्रत्येक खंड को पृष्ठों में विभाजित करके विभाजन और पेजिंग का साथ उपयोग किया जा सकता है; इस मेमोरी संरचना वाले सिस्टम, जैसे मल्टिक्स और आईबीएम सिस्टम/38, सामान्यतः पेजिंग-प्रमुख होते हैं, विभाजन स्मृति सुरक्षा प्रदान करते हैं।<ref>{{Cite book|url = http://www.bitsavers.org/pdf/ge/GE-645/LSB0468_GE-645_System_Manual_Jan1968.pdf|title = GE-645 System Manual|pages = 21–30|date = January 1968|access-date = 25 February 2022}}</ref><ref>{{cite web|author=Corbató, F.J.|author-link=Fernando J. Corbató|author2=Vyssotsky, V. A.|author2-link=Victor A. Vyssotsky|title=Introduction and Overview of the Multics System |url=http://www.multicians.org/fjcc1.html |access-date=13 November 2007 }}</ref><ref>{{cite web|author1=Glaser, Edward L. |author2=Couleur, John F. |author3=Oliver, G. A. |name-list-style=amp |title=System Design of a Computer for Time Sharing Applications |url=http://www.multicians.org/fjcc2.html }}</ref>इंटेल 80386 और बाद में [[IA-32|आईA-32]] प्रोसेसर में, खंड [[32-बिट]] रैखिक, पृष्ठांकित पता स्थान में रहते हैं। खंडों को उस स्थान के अंदर और बाहर ले जाया जा सकता है; वहाँ के पृष्ठ मुख्य मेमोरी के अंदर और बाहर पेज कर सकते हैं, आभासी मेमोरी के दो स्तर प्रदान करते हैं; यदि कोई ऑपरेटिंग सिस्टम ऐसा करता है, तो केवल पेजिंग का उपयोग करके। प्रारंभिक गैर-हार्डवेयर-सहायता प्राप्त [[x86 वर्चुअलाइजेशन]] समाधान संयुक्त पृष्ठन और विभाजन क्योंकि x86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि वीएमM, अतिथि ओएस या अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।<ref>{{Cite web|url=https://old.hotchips.org/wp-content/uploads/hc_archives/hc17/1_Sun/HC17.T1P2.pdf|first1=J. E. |last1=Smith |first2=R. |last2=Uhlig |date=14 August 2005 |title=''Virtual Machines: Architectures, Implementations and Applications'', HOTCHIPS 17, Tutorial 1, part 2}}</ref>{{rp|22}} पेजिंग और सेगमेंटेशन सिस्टम के बीच का अंतर केवल मेमोरी डिवीजन के बारे में नहीं है; मेमोरी मॉडल शब्दार्थ के भाग के रूप में विभाजन उपयोगकर्ता प्रक्रियाओं के लिए दृश्यमान है। इसलिए, बड़ी जगह की तरह दिखने वाली मेमोरी के अतिरिक्त, इसे कई जगहों में संरचित किया जाता है। | ||
इंटेल 80386 और बाद में [[IA-32|आईA-32]] प्रोसेसर में, खंड [[32-बिट]] रैखिक, पृष्ठांकित पता स्थान में रहते हैं। खंडों को उस स्थान के अंदर और बाहर ले जाया जा सकता है; वहाँ के पृष्ठ मुख्य मेमोरी के अंदर और बाहर पेज कर सकते हैं, आभासी मेमोरी के दो स्तर प्रदान करते हैं; यदि कोई ऑपरेटिंग सिस्टम ऐसा करता है, तो केवल पेजिंग का उपयोग करके। प्रारंभिक गैर-हार्डवेयर-सहायता प्राप्त [[x86 वर्चुअलाइजेशन]] समाधान संयुक्त पृष्ठन और विभाजन क्योंकि x86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि वीएमM, अतिथि ओएस या अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।<ref>{{Cite web|url=https://old.hotchips.org/wp-content/uploads/hc_archives/hc17/1_Sun/HC17.T1P2.pdf|first1=J. E. |last1=Smith |first2=R. |last2=Uhlig |date=14 August 2005 |title=''Virtual Machines: Architectures, Implementations and Applications'', HOTCHIPS 17, Tutorial 1, part 2}}</ref>{{rp|22}} पेजिंग और सेगमेंटेशन सिस्टम के बीच का अंतर केवल मेमोरी डिवीजन के बारे में नहीं है; मेमोरी मॉडल शब्दार्थ के भाग के रूप में विभाजन उपयोगकर्ता प्रक्रियाओं के लिए दृश्यमान है। इसलिए, बड़ी जगह की तरह दिखने वाली मेमोरी के अतिरिक्त, इसे कई जगहों में संरचित किया जाता है। | |||
इस अंतर के महत्वपूर्ण परिणाम हैं; खंड परिवर्तनशील लंबाई वाला पृष्ठ या पता स्थान को लंबा करने का सरल विधि नहीं है। सेगमेंटेशन जो ल-स्तरीय मेमोरी मॉडल प्रदान कर सकता है जिसमें प्रक्रिया मेमोरी और फाइल सिस्टम के बीच कोई अंतर नहीं होता है, केवल प्रक्रिया के संभावित पता स्थान में मानचित्र किए गए सेगमेंट (फाइल) की सूची होती है।<ref>{{Cite journal|last1=Bensoussan | इस अंतर के महत्वपूर्ण परिणाम हैं; खंड परिवर्तनशील लंबाई वाला पृष्ठ या पता स्थान को लंबा करने का सरल विधि नहीं है। सेगमेंटेशन जो ल-स्तरीय मेमोरी मॉडल प्रदान कर सकता है जिसमें प्रक्रिया मेमोरी और फाइल सिस्टम के बीच कोई अंतर नहीं होता है, केवल प्रक्रिया के संभावित पता स्थान में मानचित्र किए गए सेगमेंट (फाइल) की सूची होती है।<ref>{{Cite journal|last1=Bensoussan | ||
Line 143: | Line 142: | ||
पेजिंग और सेगमेंटेशन के लिए उनके पास जो भी सुविधाएं हैं, उसके अतिरिक्त कुछ ऑपरेटिंग सिस्टम पूरे पता स्थान की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो ओएस उन पेजों और सेगमेंट को वर्तमान में फाइलों को स्वैप करने के लिए वास्तविक मेमोरी में लिखता है। स्वैप-इन में, ओएस स्वैप फ़ाइलों से डेटा वापस पढ़ता है किन्तु स्वैप आउट ऑपरेशन के समय पेज आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है। | पेजिंग और सेगमेंटेशन के लिए उनके पास जो भी सुविधाएं हैं, उसके अतिरिक्त कुछ ऑपरेटिंग सिस्टम पूरे पता स्थान की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो ओएस उन पेजों और सेगमेंट को वर्तमान में फाइलों को स्वैप करने के लिए वास्तविक मेमोरी में लिखता है। स्वैप-इन में, ओएस स्वैप फ़ाइलों से डेटा वापस पढ़ता है किन्तु स्वैप आउट ऑपरेशन के समय पेज आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है। | ||
आईबीएम का [[MVS|एमवीएस]], ओएस/360 से और उत्तराधिकारी#ओएस/वीएस2 एसवीएस और एमवीएस|ओएस/वीएस2 रिलीज़ 2 जेड/ओएस के माध्यम से, पता स्थान को अस्वच्छ के रूप में चिह्नित करने के लिए प्रदान करता है; ऐसा करने से पता स्थान में कोई पृष्ठ पिन नहीं होता है। यह पात्र के नाम को अंकित करके नौकरी की अवधि के लिए किया जा सकता है<ref>The most important requirement is that the program be APF authorized.</ref> प्रोग्राम गुण तालिका में मुख्य कार्यक्रम अपरिवर्तनीय ध्वज के साथ। इसके अतिरिक्त, विशेषाधिकार प्राप्त कोड एसवाईएस घटना पर्यवेक्षक कॉल निर्देश ( | आईबीएम का [[MVS|एमवीएस]], ओएस/360 से और उत्तराधिकारी#ओएस/वीएस2 एसवीएस और एमवीएस|ओएस/वीएस2 रिलीज़ 2 जेड/ओएस के माध्यम से, पता स्थान को अस्वच्छ के रूप में चिह्नित करने के लिए प्रदान करता है; ऐसा करने से पता स्थान में कोई पृष्ठ पिन नहीं होता है। यह पात्र के नाम को अंकित करके नौकरी की अवधि के लिए किया जा सकता है<ref>The most important requirement is that the program be APF authorized.</ref> प्रोग्राम गुण तालिका में मुख्य कार्यक्रम अपरिवर्तनीय ध्वज के साथ। इसके अतिरिक्त, विशेषाधिकार प्राप्त कोड एसवाईएस घटना पर्यवेक्षक कॉल निर्देश (एसवीसी) का उपयोग करके अस्थायी रूप से पता स्थान को अदला-बदली करने योग्य बना सकता है; कुछ परिवर्तन<ref>e.g., requesting use of preferred memory</ref> पता स्थान गुणों में यह आवश्यक है कि ओएस इसे स्वैप करें और फिर इसे एसवाईएस घटना ट्रांसवैप का उपयोग करके वापस स्वैप करें।<ref>{{cite web |title=Control swapping (DONTSWAP, OKSWAP, TRANSWAP) |series=z/OS MVS Programming: Authorized Assembler Services Reference SET-WTO SA23-1375-00 |url=http://pic.dhe.ibm.com/infocenter/zos/v2r1/index.jsp?topic=%2Fcom.ibm.zos.v2r1.ieaa400%2Fswap.htm |date=1990–2014 |website=IBM Knowledge Center |access-date=9 October 2016}}</ref>स्वैपिंग के लिए स्मृति प्रबंधन हार्डवेयर की आवश्यकता नहीं है उदाहरण के लिए, भंडारण के ही क्षेत्र में और बाहर कई नौकरियों की अदला-बदली की जाती है। | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 152: | Line 151: | ||
* [[मेमोरी मैनेजमेंट (ऑपरेटिंग सिस्टम)]] | * [[मेमोरी मैनेजमेंट (ऑपरेटिंग सिस्टम)]] | ||
* [[संरक्षित मोड]], एक [[x86]] मोड जो वर्चुअल मेमोरी की अनुमति देता है। | * [[संरक्षित मोड]], एक [[x86]] मोड जो वर्चुअल मेमोरी की अनुमति देता है। | ||
* [[ | * [[सीयूडीए| सीयूडीए पिन की गई स्मृति]] | ||
* [[विषम प्रणाली वास्तुकला]], रैम और ग्राफिक की कार्ड मेमोरी को एकीकृत करने के उद्देश्य से विशिष्टताओं की एक श्रृंखला | * [[विषम प्रणाली वास्तुकला]], रैम और ग्राफिक की कार्ड मेमोरी को एकीकृत करने के उद्देश्य से विशिष्टताओं की एक श्रृंखला | ||
* [[स्टोरेज वर्चुअलाइजेशन]]}} | * [[स्टोरेज वर्चुअलाइजेशन]]}} |
Revision as of 15:53, 23 February 2023
कम्प्यूटिंग में, आभासी मेमोरी, [lower-alpha 2] मेमोरी प्रबंधन (ऑपरेटिंग सिस्टम) प्रविधि है जो भंडारण संसाधनों का आदर्श अमूर्तता प्रदान करती है जो वास्तव में किसी दिए गए मशीन पर उपलब्ध हैं[3] जो बहुत बड़ी मुख्य मेमोरी के उपयोगकर्ताओं के लिए भ्रम उत्पन्न करता है।[4]
कंप्यूटर का ऑपरेटिंग सिस्टम, हार्डवेयर और सॉफ्टवेयर के संयोजन का उपयोग करके, आभासी पता स्थान नामक प्रोग्राम द्वारा उपयोग किए जाने वाले मेमोरी पतों को कंप्यूटर स्मृति विभाजन भौतिक पतों में मानचित्र करता है। मुख्य भंडारण प्राथमिक भंडारण, जैसा कि प्रक्रिया या कार्य द्वारा देखा जाता है, सन्निहित पता स्थान या सन्निहित स्मृति विभाजन के संग्रह के रूप में प्रकट होता है। ऑपरेटिंग सिस्टम आभासी पता स्थान और आभासी मेमोरी को वास्तविक मेमोरी के असाइनमेंट का प्रबंधन करता है।[5] सीपीयू में एड्रेस ट्रांसलेशन हार्डवेयर, जिसे अधिकांशतः स्मृति प्रबंधन इकाई (एमएमयू) के रूप में संदर्भित किया जाता है, स्वचालित रूप से आभासी एड्रेस को फिजिकल एड्रेस में ट्रांसलेट करता है। ऑपरेटिंग सिस्टम के भीतर सॉफ़्टवेयर इन क्षमताओं का उपयोग कर सकता है, उपयोग, उदाहरण के लिए, डिस्क भंडारण, आभासी पता स्थान प्रदान करने के लिए जो वास्तविक मेमोरी की क्षमता से अधिक हो सकता है और इस प्रकार कंप्यूटर में भौतिक रूप से उपस्तिथ मेमोरी से अधिक मेमोरी का संदर्भ देता है।
आभासी मेमोरी के प्राथमिक लाभों में अनुप्रयोगों को साझा मेमोरी स्पेस को प्रबंधित करने से मुक्त करना, प्रक्रियाओं के बीच पुस्तकालय (कम्प्यूटिंग) द्वारा उपयोग की जाने वाली मेमोरी को साझा करने की क्षमता, मेमोरी आइसोलेशन के कारण बढ़ी हुई सुरक्षा, और शारीरिक रूप से अधिक मेमोरी का वैचारिक रूप से उपयोग करने में सक्षम होना सम्मलित है। पेजिंग या सेगमेंटेशन की प्रविधि का उपयोग करके उपलब्ध है।
गुण
आभासी मेमोरी भौतिक मेमोरी के फ्रैगमेंटेशन (कंप्यूटर) को छिपाकर एप्लिकेशन प्रोग्रामिंग को आसान बनाती है; कंप्यूटर डेटा भंडारण कर्नेल के लिए के पदानुक्रम के प्रबंधन का बोझ सौंपकर (ओवरले (प्रोग्रामिंग) को स्पष्ट रूप से संभालने के लिए कार्यक्रम की आवश्यकता को समाप्त करना); और, जब प्रत्येक प्रक्रिया को अपने स्वयं के समर्पित पता स्थान में चलाया जाता है, आवश्यकता से छुटकारा पाने के लिए (कंप्यूटर विज्ञान) प्रोग्राम कोड या एड्रेसिंग मोड # पीसी-रिश्तेदार के साथ स्मृति तक पहुंचने के लिए।
मेमोरी वर्चुअलाइजेशन को आभासी मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है।
उपयोग
आभासी मेमोरी आधुनिक कंप्यूटर आर्किटेक्चर का अभिन्न अंग है; कार्यान्वयन के लिए सामान्यतः हार्डवेयर समर्थन की आवश्यकता होती है, सामान्यतः केंद्रीय प्रसंस्करण इकाई में निर्मित स्मृति प्रबंधन इकाई के रूप में। जबकि आवश्यक नहीं है, एमुलेटर और आभासी मशीन अपने आभासी मेमोरी कार्यान्वयन के प्रदर्शन को बढ़ाने के लिए हार्डवेयर समर्थन को नियोजित कर सकते हैं।[6] पुराने ऑपरेटिंग सिस्टम, जैसे कि 1960 के दशक के मेनफ़्रेम कंप्यूटर के लिए, और 1980 के दशक के मध्य तक के पर्सनल कंप्यूटर के लिए (जैसे, डॉस),[7] सामान्यतः कोई आभासी मेमोरी कार्यक्षमता नहीं होती है, चूंकि 1960 के मेनफ्रेम के उल्लेखनीय अपवादों में सम्मलित हैं:
- एटलस (कंप्यूटर) के लिए एटलस पर्यवेक्षक
- इलेक्ट्रोलॉजिका X8 के लिए मल्टीप्रोग्रामिंग सिस्टम (हार्डवेयर समर्थन के बिना सॉफ्टवेयर आधारित आभासी मेमोरी)
- बरोज़ कॉर्पोरेशन बी 5000 के लिए बरोज़ एमसीपी
- आईबीएम सिस्टम/360 मॉडल 67 के लिए मिशिगन टर्मिनल सिस्टम, टीएसएस/360 और सीपी/सीएमएस
- जीई-600 श्रृंखला के लिए मॉलटिक्स
- आरसीए स्पेक्ट्रा 70/46 के लिए टाइम शेयरिंग ऑपरेटिंग सिस्टम
1960 और 70 के दशक की शुरुआत में, कंप्यूटर मेमोरी बहुत महंगी थी। आभासी मेमोरी की प्रारंभ ने कम वास्तविक मेमोरी वाले कंप्यूटरों पर चलने के लिए बड़ी मेमोरी डिमांड वाले सॉफ़्टवेयर सिस्टम की क्षमता प्रदान की। इससे होने वाली बचत ने सभी प्रणालियों के लिए आभासी मेमोरी पर स्विच करने के लिए मजबूत प्रोत्साहन प्रदान किया। आभासी पता स्थान प्रदान करने की अतिरिक्त क्षमता ने सुरक्षा और विश्वसनीयता का और स्तर जोड़ा, इस प्रकार आभासी मेमोरी को बाज़ार के लिए और भी आकर्षक बना दिया।
आभासी मेमोरी का समर्थन करने वाले अधिकांश आधुनिक ऑपरेटिंग सिस्टम भी प्रत्येक प्रक्रिया (कंप्यूटिंग) को अपने स्वयं के समर्पित पता स्थान में चलाते हैं। इस प्रकार प्रत्येक प्रोग्राम को आभासी मेमोरी तक मात्र पहुंच दिखाई देती है। चूँकि, कुछ पुराने ऑपरेटिंग सिस्टम (जैसे ओएस/वीएस1 और ओएस/वीएस2 (एसवीएस)|ओएस/वीएस2 एसवीएस) और यहां तक कि आधुनिक वाले (जैसे आईबीएम आई) सिंगल पता स्थान ऑपरेटिंग सिस्टम हैं जो सभी प्रक्रियाओं को ही पता स्थान में चलाते हैं। वर्चुअलाइज्ड मेमोरी से बना है।
एंबेडेड सिस्टम और अन्य विशेष-उद्देश्य वाले कंप्यूटर सिस्टम जिन्हें बहुत तेज़ और/या बहुत सुसंगत प्रतिक्रिया समय की आवश्यकता होती है, नियतात्मक एल्गोरिथ्म में कमी के कारण आभासी मेमोरी का उपयोग नहीं करने का विकल्प चुन सकते हैं; आभासी मेमोरी सिस्टम अप्रत्याशित ट्रैप (कम्प्यूटिंग) को ट्रिगर करता है जो इनपुट के उत्तर में अवांछित और अप्रत्याशित देरी उत्पन्न कर सकता है, खासकर यदि ट्रैप के लिए आवश्यक है कि डेटा को सेकेंडरी मेमोरी से मुख्य मेमोरी में पढ़ा जाए। आभासी पतों को भौतिक पतों में अनुवाद करने के लिए हार्डवेयर को सामान्यतः लागू करने के लिए महत्वपूर्ण चिप क्षेत्र की आवश्यकता होती है, और अंतः स्थापित प्रणाली में उपयोग किए जाने वाले सभी चिप्स में वह हार्डवेयर सम्मलित नहीं होता है, जो और कारण है कि उनमें से कुछ सिस्टम आभासी मेमोरी का उपयोग नहीं करते हैं।
इतिहास
1950 के दशक में, सभी बड़े कार्यक्रमों में ओवरले (प्रोग्रामिंग) जैसे प्राथमिक और द्वितीयक भंडारण के प्रबंधन के लिए तर्क सम्मलित थे। इसलिए आभासी मेमोरी को न केवल प्राथमिक मेमोरी का विस्तार करने के लिए प्रस्तुत किया गया था, बल्कि प्रोग्रामर के उपयोग के लिए इस तरह के विस्तार को यथासंभव आसान बनाने के लिए भी प्रस्तुत किया गया था।[8] बहु क्रमादेशन और कंप्यूटर मल्टीटास्किंग की अनुमति देने के लिए, कई प्रारंभ सिस्टम ने आभासी मेमोरी के बिना कई प्रोग्रामों के बीच मेमोरी को विभाजित किया, जैसे प्रोसेसर रजिस्टर के माध्यम से पीडीपी-10 -10 के प्रारंभ मॉडल।
प्रमाणित है कि आभासी मेमोरी की अवधारणा पहली बार जर्मन भौतिक विज्ञानी फ्रिट्ज-रुडोल्फ गुंटश द्वारा 1956 में टेक्नीश यूनिवर्सिटैट बर्लिन में अपने डॉक्टरेट थीसिस, मल्टीपल एसिंक्रोनस रोटेटिंग ड्रम और ऑटोमैटिक हाई स्पीड मेमोरी ऑपरेशन के साथ डिजिटल कंप्यूटर के लॉजिकल डिजाइन में विकसित की गई थी।[9][10] सावधानीपूर्वक जांच करने के लिए खड़ा नहीं होता है। गुंटश द्वारा प्रस्तावित कंप्यूटर (किन्तु कभी नहीं बनाया गया) का पता स्थान 10 था5 शब्द जो बिल्कुल 10 पर मानचित्र किए गए5 ड्रम के शब्द, अर्थात पते वास्तविक पते थे और अप्रत्यक्ष मानचित्रण का कोई रूप नहीं था, आभासी स्मृति की प्रमुख विशेषता। गुंटश ने जो आविष्कार किया वह कैश मैमोरी का रूप था, क्योंकि उसकी हाई-स्पीड मेमोरी का उद्देश्य कोड के कुछ ब्लॉक या ड्रम से लिए गए डेटा की प्रति सम्मलित करना था। दरअसल, उन्होंने लिखा (जैसा कि अनुवाद में उद्धृत किया गया है[11]): प्रोग्रामर को प्राथमिक मेमोरी के अस्तित्व का सम्मान करने की आवश्यकता नहीं है (उसे यह जानने की भी आवश्यकता नहीं है कि यह उपस्तिथ है), क्योंकि केवल प्रकार के पते (एसआईसी) होते हैं जिनके द्वारा कोई प्रोग्राम कर सकता है जैसे कि केवल ही भंडारण हो। कैश मेमोरी वाले कंप्यूटरों में ठीक यही स्थिति है, जिसका प्रारंभ व्यावसायिक उदाहरण आईबीएम सिस्टम/360 मॉडल 85 था।[12] मॉडल 85 में सभी पते वास्तविक पते थे जो मुख्य कोर स्टोर का जिक्र करते थे। सेमीकंडक्टर कैश स्टोर, उपयोगकर्ता के लिए अदृश्य, वर्तमान में निष्पादित प्रोग्राम द्वारा उपयोग में मुख्य स्टोर के कुछ हिस्सों की सामग्री रखता है। यह मल्टी-प्रोग्रामिंग में सम्मलित समस्याओं को हल करने के अतिरिक्त प्रदर्शन को बेहतर बनाने के साधन के रूप में डिज़ाइन किए गए गुंटश के सिस्टम के समान है।
पहला ट्रू आभासी मेमोरी सिस्टम मैनचेस्टर विश्वविद्यालय में -स्तरीय भंडारण सिस्टम बनाने के लिए लागू किया गया था[13] एटलस कंप्यूटर के हिस्से के रूप में। इसने प्रोग्रामर के लिए उपलब्ध आभासी पतों को वास्तविक मेमोरी पर मानचित्र करने के लिए पेजिंग तंत्र का उपयोग किया जिसमें माध्यमिक ड्रम मेमोरी के अतिरिक्त 98,304 शब्दों के साथ प्राथमिक चुंबकीय-कोर मेमोरी के 16,384 शब्द सम्मलित थे।[14] एटलस में आभासी मेमोरी को सम्मलित करने से उभरती हुई प्रोग्रामिंग समस्या भी समाप्त हो गई: मुख्य मेमोरी के आकार के प्रत्येक परिवर्तन के लिए मुख्य और द्वितीयक मेमोरी और रीकंपाइलिंग प्रोग्राम के बीच डेटा ट्रांसफर की योजना बनाना और शेड्यूल करना।[15] पहला एटलस 1962 में कमीशन किया गया था किन्तु पेजिंग के कार्यशील प्रोटोटाइप को 1959 तक विकसित कर लिया गया था।[8]: 2 [16][17] 1961 में, बरोज़ कॉर्पोरेशन ने स्वतंत्र रूप से पेजिंग के अतिरिक्त विभाजन (मेमोरी) के साथ आभासी मेमोरी, B5000 के साथ पहला व्यावसायिक कंप्यूटर जारी किया।[18][19]
आईबीएम विकसित[lower-alpha 3] उनके आईबीएम सीपी-40|सीपी-40 और सीपी-67 में सूत्र की अवधारणा, और 1972 में इसे आईबीएम प्रणाली/370|एस/370 के लिए आभासी मशीन सुविधा/370 के रूप में प्रदान किया।[21] आईबीएम ने 3081 पर 370- ्सए के हिस्से के रूप में स्टार्ट इंटरप्रिटिव ्ज़ीक्यूशन (एसआईई) निर्देश और इसका फायदा उठाने के लिए वीएम (ऑपरेटिंग सिस्टम) के वीएम/ ्सए संस्करण प्रस्तुत किए।
मेनस्ट्रीम ऑपरेटिंग सिस्टम में आभासी मेमोरी को लागू करने से पहले, कई समस्याओं का समाधान किया जाना था। डायनेमिक एड्रेस ट्रांसलेशन के लिए महंगे और कठिनाई से बनने वाले विशेष हार्डवेयर की आवश्यकता होती है; प्रारंभिक कार्यान्वयन ने स्मृति तक पहुंच को थोड़ा धीमा कर दिया।[8]इस बात को लेकर चिंताएं थीं कि द्वितीयक भंडारण का उपयोग करने वाले नए सिस्टम-वाइड एल्गोरिदम पहले उपयोग किए गए एप्लिकेशन-विशिष्ट एल्गोरिदम की तुलना में कम प्रभावी होंगे। 1969 तक, व्यावसायिक कंप्यूटरों के लिए आभासी मेमोरी पर बहस समाप्त हो गई थी;[8]डेविड सायरे के नेतृत्व में आईबीएम की शोध टीम ने दिखाया कि उनकी आभासी मेमोरी ओवरले प्रणाली ने सर्वश्रेष्ठ मैन्युअल रूप से नियंत्रित प्रणालियों की तुलना में लगातार बेहतर काम किया।[22] 1970 के दशक के पर्यन्त, आईबीएम 370 श्रृंखला ने अपने वर्चुअल-भंडारण आधारित ऑपरेटिंग सिस्टम को चलाने के लिए व्यापार उपयोगकर्ताओं को कई पुराने सिस्टम को कम, अधिक शक्तिशाली, मेनफ्रेम में माइग्रेट करने का साधन प्रदान किया, जिसने मूल्य/प्रदर्शन में सुधार किया था। आभासी मेमोरी प्रस्तुत करने वाला पहला मिनीकंप्यूटर नॉर्वेजियन नॉर्ड-1 था; 1970 के दशक के पर्यन्त, अन्य मिनी कंप्यूटर ने आभासी मेमोरी लागू की, विशेष रूप से ओपन ओपन वीएमएस चलाने वाले वैक्स मॉडल।
इंटेल 80286 प्रोसेसर के संरक्षित मोड के साथ आभासी मेमोरी को x86 आर्किटेक्चर में प्रस्तुत किया गया था, किन्तु इसकी सेगमेंट स्वैपिंग प्रविधि को बड़े सेगमेंट आकार में खराब कर दिया गया। इंटेल 80386 ने उपस्तिथा सेगमेंटेशन (मेमोरी) लेयर के नीचे पेजिंग सपोर्ट प्रस्तुत किया, जिससे पेज फॉल्ट अपवाद को बिना किसी दोहरा दोष के अन्य अपवादों के साथ चेन में सक्षम किया गया। चूंकि, सेगमेंट डिस्क्रिप्टर लोड करना महंगा ऑपरेशन था, जिससे ऑपरेटिंग सिस्टम डिज़ाइनर पेजिंग और सेगमेंटेशन के संयोजन के अतिरिक्त पेजिंग पर सख्ती से भरोसा करते थे।
पेजेड आभासी मेमोरी
आभासी मेमोरी के लगभग सभी उपस्तिथा कार्यान्वयन आभासी पता स्थान को पेज (कंप्यूटर मेमोरी) में विभाजित करते हैं, सन्निहित आभासी मेमोरी एड्रेस के ब्लॉक। समसामयिक पर पेज[lower-alpha 4] सिस्टम सामान्यतः आकार में कम से कम 4 किलोबाइट होते हैं; बड़े आभासी एड्रेस रेंज या वास्तविक मेमोरी की मात्रा वाले सिस्टम सामान्यतः बड़े पृष्ठ आकार का उपयोग करते हैं।[23]
पेज टेबल
पेज टेबल का उपयोग एप्लिकेशन द्वारा देखे गए आभासी पतों को निर्देशों को संसाधित करने के लिए कंप्यूटर हार्डवेयर द्वारा उपयोग किए जाने वाले भौतिक पतों में अनुवाद करने के लिए किया जाता है;[24] ऐसे हार्डवेयर जो इस विशिष्ट अनुवाद को संभालते हैं, अधिकांशतः स्मृति प्रबंधन इकाई के रूप में जाने जाते हैं। पृष्ठ तालिका में प्रत्येक प्रविष्टि में ध्वज होता है जो दर्शाता है कि संबंधित पृष्ठ वास्तविक स्मृति में है या नहीं। यदि यह वास्तविक स्मृति में है, पृष्ठ तालिका प्रविष्टि में वास्तविक स्मृति पता होगा जिस पर पृष्ठ संग्रहीत है। जब हार्डवेयर द्वारा किसी पृष्ठ का संदर्भ दिया जाता है, यदि पृष्ठ के लिए पृष्ठ तालिका प्रविष्टि इंगित करती है कि यह वर्तमान में वास्तविक मेमोरी में नहीं है, तो हार्डवेयर पृष्ठ दोष ट्रैप (कंप्यूटिंग) उठाता है, ऑपरेटिंग सिस्टम के पेजिंग पर्यवेक्षक घटक को लागू करता है। .
सिस्टम में हो सकता है, उदाहरण के लिए, पूरे सिस्टम के लिए पेज टेबल, प्रत्येक पता स्थान या प्रक्रिया के लिए अलग पेज टेबल, प्रत्येक सेगमेंट के लिए अलग पेज टेबल; इसी तरह, सिस्टम में, उदाहरण के लिए, कोई खंड तालिका नहीं हो सकती है, पूरे सिस्टम के लिए खंड तालिका, प्रत्येक पता स्थान या प्रक्रिया के लिए अलग खंड तालिका, पेड़ में प्रत्येक क्षेत्र के लिए अलग खंड तालिका[lower-alpha 5] प्रत्येक पता स्थान या प्रक्रिया के लिए क्षेत्र तालिकाएँ। यदि केवल पृष्ठ तालिका है, तो विभिन्न एप्लिकेशन मल्टीप्रोग्रामिंग आभासी पतों की ही श्रेणी के विभिन्न भागों का उपयोग करते हैं। यदि कई पेज या सेगमेंट टेबल हैं, तो कई आभासी पता स्थान हैं और समवर्ती एप्लिकेशन अलग-अलग पेज टेबल के साथ अलग-अलग रियल एड्रेस पर रीडायरेक्ट करते हैं।
छोटे वास्तविक मेमोरी आकार वाले कुछ पुराने सिस्टम, जैसे एसडीएस 940, एड्रेस ट्रांसलेशन के लिए मेमोरी में पेज टेबल के अतिरिक्त पृष्ठ पता रजिस्टर का उपयोग करते थे।
पेजिंग पर्यवेक्षक
ऑपरेटिंग सिस्टम का यह हिस्सा पेज टेबल और फ्री पेज फ्रेम की सूची बनाता और प्रबंधित करता है। यह सुनिश्चित करने के लिए कि पृष्ठ दोषों को जल्दी से हल करने के लिए पर्याप्त मुक्त पृष्ठ फ़्रेम होंगे, सिस्टम समय-समय पर पृष्ठ प्रतिस्थापन एल्गोरिदम का उपयोग करके आवंटित पृष्ठ फ़्रेमों को चुरा सकता है, उदाहरण के लिए, हाल ही में उपयोग किए गए (LRU) एल्गोरिदम। चुराए गए पृष्ठ फ़्रेम जिन्हें संशोधित किया गया है, उन्हें मुफ्त कतार में जोड़े जाने से पहले सहायक भंडारण में वापस लिखा जाता है। कुछ प्रणालियों पर पेजिंग पर्यवेक्षक उन अनुवाद रजिस्टरों के प्रबंधन के लिए भी जिम्मेदार होता है जो पेज टेबल से स्वचालित रूप से लोड नहीं होते हैं।
सामान्यतः, पृष्ठ दोष जिसे हल नहीं किया जा सकता है, जिसके परिणामस्वरूप आवेदन की असामान्य समाप्ति होती है। चूँकि, कुछ प्रणालियाँ ऐसी त्रुटियों के लिए एप्लिकेशन को अपवाद हैंडलर रखने की अनुमति देती हैं। विवरण के आधार पर पेजिंग सुपरवाइजर कई अलग-अलग तरीकों से पेज फॉल्ट ्सेप्शन को हैंडल कर सकता है:
- यदि आभासी पता अमान्य है, पेजिंग पर्यवेक्षक इसे त्रुटि के रूप में मानता है।
- यदि पृष्ठ वैध है और पृष्ठ की जानकारी एमएमयू में लोड नहीं की गई है, तो पृष्ठ की जानकारी पृष्ठ रजिस्टरों में से में संग्रहीत की जाएगी।
- यदि पृष्ठ प्रारंभ नहीं किया गया है, तो नया पृष्ठ फ़्रेम निर्दिष्ट और साफ़ किया जा सकता है।
- यदि वांछित पृष्ठ वाला कोई चुराया हुआ पृष्ठ फ़्रेम है, तो उस पृष्ठ फ़्रेम का पुन: उपयोग किया जाएगा।
- रीड-प्रोटेक्टेड पेज में लिखने के प्रयास के कारण हुई गलती के लिए, यदि यह कॉपी-ऑन-राइट पेज है तो फ्री पेज फ्रेम असाइन किया जाएगा और पुराने पेज की सामग्री कॉपी की जाएगी; अन्यथा इसे त्रुटि के रूप में माना जाता है।
- यदि मेमोरी-मानचित्र की गई फ़ाइल या पेजिंग फ़ाइल में आभासी पता मान्य पृष्ठ है, तो निःशुल्क पृष्ठ फ़्रेम निर्दिष्ट किया जाएगा और पृष्ठ पढ़ा जाएगा।
अधिकांशतः स्थितियों में, पृष्ठ तालिका में अद्यतन होगा, संभवतः अनुवाद लुकसाइड बफर (टीएलबी) को शुद्ध करने के बाद, और सिस्टम उस निर्देश को पुनरारंभ करता है जो अपवाद का कारण बनता है।
यदि फ्री पेज फ्रेम कतार खाली है तो पेजिंग सुपरवाइजर को पेज चोरी के लिए समान पृष्ठ प्रतिस्थापन एल्गोरिथ्म का उपयोग करके पेज फ्रेम को मुक्त करना होगा।
पिन किए गए पृष्ठ
ऑपरेटिंग सिस्टम में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है (द्वितीयक भंडारण में कभी भी स्वैप नहीं किया जाता है)। उपयोग किए जाने वाले अन्य शब्द लॉक, फिक्स्ड या वायर्ड पेज हैं। उदाहरण के लिए, बाधा डालना मैकेनिज्म अपने हैंडलर्स के लिए पॉइंटर्स की सरणी पर निर्भर करता है, जैसे कि आई / ओ पूर्णता और पेज फॉल्ट। यदि इन संकेतकों वाले पृष्ठ या उनके द्वारा आह्वान किए गए कोड पेज करने योग्य थे, तो व्यवधान-प्रबंधन कहीं अधिक जटिल और समय लेने वाला हो जाएगा, विशेष रूप से पृष्ठ दोष रुकावटों के स्थितियोंमें। इसलिए, पेज टेबल स्ट्रक्चर का कुछ हिस्सा पेजेबल नहीं है।
कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है, अन्य को लंबे समय के लिए पिन किया जा सकता है, और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए:
- पेजिंग सुपरवाइज़र कोड और सेकेंडरी भंडारण डिवाइस के ड्राइवर जिन पर पेज रहते हैं उन्हें स्थायी रूप से पिन किया जाना चाहिए, अन्यथा पेजिंग काम भी नहीं करेगी क्योंकि आवश्यक कोड उपलब्ध नहीं होगा।
- चर पेजिंग विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है।
- डेटा बफ़र्स जो सीधे परिधीय उपकरणों द्वारा ्सेस किए जाते हैं जो प्रत्यक्ष मेमोरी ्सेस या आई/ओ चैनलों का उपयोग करते हैं, उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि आई/ओ ऑपरेशन प्रगति पर है क्योंकि ऐसे डिवाइस और बस (कंप्यूटिंग) जिनसे वे जुड़े हुए हैं, उम्मीद करते हैं भौतिक स्मृति पतों पर स्थित डेटा बफ़र्स खोजें; इस बात की परवाह किए बिना कि बस में आईओएमएमयू|आई/ओ के लिए स्मृति प्रबंधन इकाई है, पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है।
सिस्टम/370 और उत्तराधिकारी सिस्टम के लिए आईबीएम के ऑपरेटिंग सिस्टम में, शब्द निश्चित है, और ऐसे पृष्ठ दीर्घकालिक निश्चित हो सकते हैं, या अल्पावधि निश्चित हो सकते हैं, या अनिर्धारित हो सकते हैं (अर्थात, पेजेबल)। सिस्टम नियंत्रण संरचनाएं अधिकांशतः लंबी अवधि के लिए निर्धारित होती हैं (दीवार-घड़ी के समय में मापा जाता है, अर्थात, सेकंड में मापा गया समय, सेकंड के अंशों में मापा गया समय के अतिरिक्त) जबकि आई/ओ बफ़र्स सामान्यतः अल्पकालिक निश्चित होते हैं (सामान्यतः महत्वपूर्ण रूप से मापा जाता है) दीवार-घड़ी के समय से कम, संभवतः दसियों मिलीसेकंड के लिए)। वास्तव में, ओएस में इन अल्पकालिक निश्चित डेटा बफ़र्स को तेजी से ठीक करने के लिए विशेष सुविधा है (फिक्सिंग जो समय लेने वाली पर्यवेक्षक कॉल निर्देश का सहारा लिए बिना किया जाता है)।
मल्टिक्स ने वायर्ड शब्द का उपयोग किया। ओpenवीएमएस और माइक्रोसॉफ़्ट विंडोज़ उन पृष्ठों को संदर्भित करते हैं जिन्हें अस्थायी रूप से गैर-पेजेबल बनाया गया है (आई/ओ बफ़र्स के लिए) लॉक के रूप में, और केवल उन पेजों के लिए नॉनपेजेबल हैं जो कभी पेजेबल नहीं होते हैं। सिंगल यूनिक्स विशिष्टता भी विनिर्देशन में लॉक किए गए शब्द का उपयोग करती है mlock()
, जैसा करते हैं mlock()
कई यूनिक्स जैसी प्रणालियों पर मैन पेज।
वर्चुअल-रियल ऑपरेशन
ओएस/वीएस1 और इसी तरह के ओएसeएस में, सिस्टम मेमोरी के कुछ हिस्सों को वर्चुअल-रियल मोड में प्रबंधित किया जाता है, जिसे V=R कहा जाता है। इस मोड में प्रत्येक आभासी पता उसी वास्तविक पते से मेल खाता है। इस मोड का उपयोग इंटरप्ट मैकेनिज्म के लिए, पुराने सिस्टम में पेजिंग सुपरवाइज़र और पेज टेबल के लिए, और गैर-मानक आई/ओ प्रबंधन का उपयोग करने वाले एप्लिकेशन प्रोग्राम के लिए किया जाता है। उदाहरण के लिए, आईबीएम के जेड/ओएस में 3 मोड हैं (वर्चुअल-वर्चुअल, वर्चुअल-रियल और वर्चुअल-फिक्स्ड)।
पिटाई
जब पेजिंग और पेजिंग # पेज चोरी का उपयोग किया जाता है, तो थ्रैशिंग (कंप्यूटर साइंस) नामक समस्या उत्पन्न हो सकती है, जिसमें कंप्यूटर बैकिंग स्टोर से पृष्ठों को स्थानांतरित करने के लिए अनुपयुक्त रूप से बड़ी मात्रा में समय व्यतीत करता है, जिससे उपयोगी कार्य धीमा हो जाता है। किसी कार्य का कार्य का संग्रह उन पृष्ठों का न्यूनतम सेट होता है जो उपयोगी प्रगति करने के लिए स्मृति में होना चाहिए। थ्रैशिंग तब होती है जब सभी सक्रिय प्रोग्रामों के वर्किंग सेट को स्टोर करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं होती है। वास्तविक मेमोरी जोड़ना सबसे सरल प्रतिक्रिया है, किन्तु एप्लिकेशन डिज़ाइन, शेड्यूलिंग और मेमोरी उपयोग में सुधार करने से मदद मिल सकती है। अन्य समाधान सिस्टम पर सक्रिय कार्यों की संख्या को कम करना है। यह या से अधिक प्रक्रियाओं के संपूर्ण कार्य सेट की अदला-बदली करके वास्तविक मेमोरी पर मांग को कम करता है।
सिस्टम थ्रैशिंग अधिकांशतः कम संख्या में चल रहे कार्यक्रमों से पेज डिमांड में अचानक स्पाइक का परिणाम होता है। स्वैप-टोकन[26] हल्का और गतिशील थ्रैशिंग सुरक्षा तंत्र है। मूल विचार सिस्टम में टोकन सेट करना है, जो बेतरतीब ढंग से उस प्रक्रिया को दिया जाता है जिसमें थ्रैशिंग होने पर पृष्ठ दोष होते हैं। जिस प्रक्रिया में टोकन होता है, उसे अपने कार्य सेट को बनाने के लिए अधिक भौतिक मेमोरी पेज आवंटित करने का विशेषाधिकार दिया जाता है, जिससे इसके निष्पादन को जल्दी से पूरा करने और अन्य प्रक्रियाओं के लिए मेमोरी पेज जारी करने की उम्मीद की जाती है। टोकन को - करके सौंपने के लिए टाइम स्टैम्प का उपयोग किया जाता है। स्वैप-टोकन का पहला संस्करण लिनक्स में लागू किया गया है [1] दूसरे संस्करण को प्रीमेप्ट स्वैप-टोकन कहा जाता है। ://gआईt.kernel.ओrg/pub/एसcm/lआईnux/kernel/gआईt/tओrvaldएस/lआईnux.gआईt/cओmmआईt/?आईd=7602bdf2fd14a40dd9b104e516fdc05e1bd17952 ।] इस अद्यतन स्वैप-टोकन कार्यान्वयन में, प्रत्येक प्रक्रिया के लिए प्राथमिकता काउंटर निर्धारित किया जाता है स्वैप-आउट पृष्ठों की संख्या को ट्रैक करें। टोकन हमेशा उच्च प्राथमिकता वाली प्रक्रिया को दिया जाता है, जिसमें स्वैप-आउट पृष्ठों की संख्या अधिक होती है। टाइम स्टैम्प की लंबाई स्थिर नहीं है, किन्तु प्राथमिकता द्वारा निर्धारित की जाती है: किसी प्रक्रिया के स्वैप-आउट पेजों की संख्या जितनी अधिक होगी, उसके लिए टाइम स्टैम्प उतना ही लंबा होगा।
खंडित आभासी मेमोरी
कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन B5500,[27] पेजिंग के अतिरिक्त सेगमेंटेशन (मेमोरी) का उपयोग करें, आभासी पता स्थान को वेरिएबल-लेंथ सेगमेंट में विभाजित करें। यहां आभासी एड्रेस में सेगमेंट नंबर और सेगमेंट के भीतर ऑफ़सेट होता है। इंटेल 80286 विकल्प के रूप में समान विभाजन योजना का समर्थन करता है, किन्तु इसका उपयोग संभवतः ही कभी किया जाता है। प्रत्येक खंड को पृष्ठों में विभाजित करके विभाजन और पेजिंग का साथ उपयोग किया जा सकता है; इस मेमोरी संरचना वाले सिस्टम, जैसे मल्टिक्स और आईबीएम सिस्टम/38, सामान्यतः पेजिंग-प्रमुख होते हैं, विभाजन स्मृति सुरक्षा प्रदान करते हैं।[28][29][30]इंटेल 80386 और बाद में आईA-32 प्रोसेसर में, खंड 32-बिट रैखिक, पृष्ठांकित पता स्थान में रहते हैं। खंडों को उस स्थान के अंदर और बाहर ले जाया जा सकता है; वहाँ के पृष्ठ मुख्य मेमोरी के अंदर और बाहर पेज कर सकते हैं, आभासी मेमोरी के दो स्तर प्रदान करते हैं; यदि कोई ऑपरेटिंग सिस्टम ऐसा करता है, तो केवल पेजिंग का उपयोग करके। प्रारंभिक गैर-हार्डवेयर-सहायता प्राप्त x86 वर्चुअलाइजेशन समाधान संयुक्त पृष्ठन और विभाजन क्योंकि x86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि वीएमM, अतिथि ओएस या अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।[31]: 22 पेजिंग और सेगमेंटेशन सिस्टम के बीच का अंतर केवल मेमोरी डिवीजन के बारे में नहीं है; मेमोरी मॉडल शब्दार्थ के भाग के रूप में विभाजन उपयोगकर्ता प्रक्रियाओं के लिए दृश्यमान है। इसलिए, बड़ी जगह की तरह दिखने वाली मेमोरी के अतिरिक्त, इसे कई जगहों में संरचित किया जाता है।
इस अंतर के महत्वपूर्ण परिणाम हैं; खंड परिवर्तनशील लंबाई वाला पृष्ठ या पता स्थान को लंबा करने का सरल विधि नहीं है। सेगमेंटेशन जो ल-स्तरीय मेमोरी मॉडल प्रदान कर सकता है जिसमें प्रक्रिया मेमोरी और फाइल सिस्टम के बीच कोई अंतर नहीं होता है, केवल प्रक्रिया के संभावित पता स्थान में मानचित्र किए गए सेगमेंट (फाइल) की सूची होती है।[32]यह एमएमएपी और डब्ल्यूआईएन32 के मानचित्र वि आईवऑफ़फ़ाइल जैसे कॉल द्वारा प्रदान किए गए तंत्र के समान नहीं है, क्योंकि अर्ध-मनमानी स्थानों में फ़ाइलों को मानचित्र करते समय इंटर-फाइल पॉइंटर्स काम नहीं करते हैं। मल्टिक्स में, फ़ाइल (या बहु-खंड फ़ाइल से खंड) को पता स्थान में खंड में मानचित्र किया जाता है, इसलिए फ़ाइलों को हमेशा खंड सीमा पर मानचित्र किया जाता है। फाइल के लिंकेज सेक्शन में पॉइंटर्स हो सकते हैं जिसके लिए पॉइंटर को रजिस्टर में लोड करने या इसके माध्यम से अप्रत्यक्ष संदर्भ बनाने का प्रयास जाल का कारण बनता है। अनसुलझे पॉइंटर में उस सेगमेंट के नाम का संकेत होता है जिसे पॉइंटर संदर्भित करता है और सेगमेंट के भीतर ऑफ़सेट होता है; ट्रैप के लिए हैंडलर सेगमेंट को पता स्थान में मानचित्र करता है, सेगमेंट नंबर को पॉइंटर में डालता है, पॉइंटर में टैग फील्ड को बदलता है जिससे कि यह अब ट्रैप का कारण न बने, और उस कोड पर वापस आ जाए जहां ट्रैप हुआ, फिर से निष्पादित निर्देश जो जाल का कारण बना।[33] यह लिंकर (कंप्यूटिंग) की आवश्यकता को पूरी तरह समाप्त कर देता है[8]और काम करता है जब विभिन्न प्रक्रियाएं ही फाइल को उनके निजी पता स्थानों में अलग-अलग स्थानों पर मानचित्र करती हैं।[34]
पता स्थान स्वैपिंग
पेजिंग और सेगमेंटेशन के लिए उनके पास जो भी सुविधाएं हैं, उसके अतिरिक्त कुछ ऑपरेटिंग सिस्टम पूरे पता स्थान की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो ओएस उन पेजों और सेगमेंट को वर्तमान में फाइलों को स्वैप करने के लिए वास्तविक मेमोरी में लिखता है। स्वैप-इन में, ओएस स्वैप फ़ाइलों से डेटा वापस पढ़ता है किन्तु स्वैप आउट ऑपरेशन के समय पेज आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है।
आईबीएम का एमवीएस, ओएस/360 से और उत्तराधिकारी#ओएस/वीएस2 एसवीएस और एमवीएस|ओएस/वीएस2 रिलीज़ 2 जेड/ओएस के माध्यम से, पता स्थान को अस्वच्छ के रूप में चिह्नित करने के लिए प्रदान करता है; ऐसा करने से पता स्थान में कोई पृष्ठ पिन नहीं होता है। यह पात्र के नाम को अंकित करके नौकरी की अवधि के लिए किया जा सकता है[35] प्रोग्राम गुण तालिका में मुख्य कार्यक्रम अपरिवर्तनीय ध्वज के साथ। इसके अतिरिक्त, विशेषाधिकार प्राप्त कोड एसवाईएस घटना पर्यवेक्षक कॉल निर्देश (एसवीसी) का उपयोग करके अस्थायी रूप से पता स्थान को अदला-बदली करने योग्य बना सकता है; कुछ परिवर्तन[36] पता स्थान गुणों में यह आवश्यक है कि ओएस इसे स्वैप करें और फिर इसे एसवाईएस घटना ट्रांसवैप का उपयोग करके वापस स्वैप करें।[37]स्वैपिंग के लिए स्मृति प्रबंधन हार्डवेयर की आवश्यकता नहीं है उदाहरण के लिए, भंडारण के ही क्षेत्र में और बाहर कई नौकरियों की अदला-बदली की जाती है।
यह भी देखें
- प्रोसेसर डिजाइन
- पेज (कंप्यूटर मेमोरी)
- कैश प्रतिस्थापन नीतियां
- स्मृति प्रबंधन
- मेमोरी मैनेजमेंट (ऑपरेटिंग सिस्टम)
- संरक्षित मोड, एक x86 मोड जो वर्चुअल मेमोरी की अनुमति देता है।
- सीयूडीए पिन की गई स्मृति
- विषम प्रणाली वास्तुकला, रैम और ग्राफिक की कार्ड मेमोरी को एकीकृत करने के उद्देश्य से विशिष्टताओं की एक श्रृंखला
- स्टोरेज वर्चुअलाइजेशन
टिप्पणियाँ
- ↑ Early systems used drums; contemporary systems use disks or solid state memory
- ↑ IBM uses the term virtual storage on mainframe operating systems. This usage runs from TSS[1] on the 360/67 through z/OS[2] on z/Architecture.
- ↑ IBM had previously used the term hypervisor for the 360/65,[20] but that did not involve virtual memory
- ↑ IBM DOS/VS, OS/VS1 and DOS/VS only supported 2 KB pages.
- ↑ On IBM Z[25] there is a 3-level tree of regions for each address space.
संदर्भ
- ↑ "SYSTEM COMPONENTS: Dynamic Relocation" (PDF). System/360 Model 67 Time Sharing System Preliminary Technical Summary (PDF). IBM. 1966. p. 21. C20-1647-0.
- ↑ "BCP (Base Control Program)" (PDF). z/OS Version 2 Release 4 z/OS Introduction and Release Guide (PDF). IBM. 22 September 2020. p. 3. GA32-0887-40.
- ↑ Bhattacharjee, Abhishek; Lustig, Daniel (2017). Architectural and Operating System Support for Virtual Memory. Morgan & Claypool Publishers. p. 1. ISBN 9781627056021. Retrieved 16 October 2017.
- ↑ Haldar, Sibsankar; Aravind, Alex Alagarsamy (2010). Operating Systems. Pearson Education India. p. 269. ISBN 978-8131730225. Retrieved 16 October 2017.
- ↑ Zhou, Xiangrong; Petrov, Peter (1 December 2008). "Direct address translation for virtual memory in energy-efficient embedded systems". ACM Transactions on Embedded Computing Systems (in English). 8 (1): 1–31. doi:10.1145/1457246.1457251. ISSN 1539-9087. S2CID 18156695.
- ↑ "AMD-V™ Nested Paging" (PDF). AMD. Retrieved 28 April 2015.
- ↑ "Windows Version History". Microsoft. 23 September 2011. Archived from the original on 8 January 2015. Retrieved 9 March 2015.
- ↑ 8.0 8.1 8.2 8.3 8.4 Denning, Peter (1997). "Before Memory Was Virtual" (PDF). In the Beginning: Recollections of Software Pioneers.
- ↑ Jessen, Elke (2004). "Origin of the Virtual Memory Concept". IEEE Annals of the History of Computing. 26 (4): 71–72.
- ↑ Jessen, E. (1996). "Die Entwicklung des virtuellen Speichers". Informatik-Spektrum (in Deutsch). 19 (4): 216–219. doi:10.1007/s002870050034. ISSN 0170-6012. S2CID 11514875.
- ↑ Jessen (2004).
- ↑ Liptay, J.S. (1968), "Structural Aspects of the System/360 Model 85 – The Cache", IBM Systems Journal, 7: 15–21, doi:10.1147/sj.71.0015
- ↑ Kilburn, T.; Edwards, D.B.G.; Lanigan, M.J.; Sumner, F.H. (1962), "One-level Storage System", IRE Trans EC-11 (2): 223–235, doi:10.1109/TEC.1962.5219356
- ↑ "Ferranti Atlas 1 & 2 – Systems Architecture" (PDF). 12 November 2009.
- ↑ Denning, Peter J. (1 January 2003). "Virtual memory". Encyclopedia of Computer Science. John Wiley and Sons. pp. 1832–1835. ISBN 978-0-470-86412-8. Retrieved 10 January 2023.
- ↑ Creasy, R. J. (September 1981). "The origin of the VM/370 time-sharing system" (PDF). IBM Journal of Research & Development. 25 (5): 486. doi:10.1147/rd.255.0483.
- ↑ "The Atlas". Archived from the original on 6 October 2014.
{{cite web}}
: CS1 maint: unfit URL (link) - ↑ Joyner, Ian. "Burroughs". Archived from the original on 10 May 2017.
- ↑ Cragon, Harvey G. (1996). Memory Systems and Pipelined Processors. Jones and Bartlett Publishers. p. 113. ISBN 978-0-86720-474-2.
- ↑ Gary R. Allred (May 1971). System/370 integrated emulation under OS and DOS (PDF). 1971 Spring Joint Computer Conference. Vol. 38. AFIPS Press. p. 164. doi:10.1109/AFIPS.1971.58. Retrieved 12 June 2022.
- ↑ z/VM built on IBM Virtualization Technology General Information Version 4 Release 3.0 (PDF). 12 April 2002. GC24-5991-04.
- ↑ Sayre, D. (1969). "Is automatic "folding" of programs efficient enough to displace manual?". Communications of the ACM. 12 (12): 656–660. doi:10.1145/363626.363629. S2CID 15655353.
- ↑ Quintero, Dino; et al. (1 May 2013). IBM Power Systems Performance Guide: Implementing and Optimizing. IBM Corporation. p. 138. ISBN 978-0738437668. Retrieved 18 July 2017.
- ↑ Sharma, Dp (2009). Foundation of Operating Systems. Excel Books India. p. 62. ISBN 978-81-7446-626-6. Retrieved 18 July 2017.
- ↑ "Translation Tables" (PDF). z/Architecture - Principles of Operation (PDF) (Fourteenth ed.). IBM. May 2022. pp. 3-46–3-53. SA22-7832-13. Retrieved January 18, 2023.
- ↑ Song Jiang, and Xiaodong Zhang (2005). "Token-ordered LRU: an effective page replacement policy and its implementation in Linux systems" (PDF). Performance Evaluation. 60 (1–4): 5–29. doi:10.1016/j.peva.2004.10.002. ISSN 0166-5316.
- ↑ Burroughs (1964). Burroughs B5500 Information Processing System Reference Manual (PDF). Burroughs Corporation. 1021326. Retrieved 28 November 2013.
- ↑ GE-645 System Manual (PDF). January 1968. pp. 21–30. Retrieved 25 February 2022.
- ↑ Corbató, F.J.; Vyssotsky, V. A. "Introduction and Overview of the Multics System". Retrieved 13 November 2007.
- ↑ Glaser, Edward L.; Couleur, John F. & Oliver, G. A. "System Design of a Computer for Time Sharing Applications".
- ↑ Smith, J. E.; Uhlig, R. (14 August 2005). "Virtual Machines: Architectures, Implementations and Applications, HOTCHIPS 17, Tutorial 1, part 2" (PDF).
- ↑ Bensoussan, André; Clingen, CharlesT.; Daley, Robert C. (May 1972). "The Multics Virtual Memory: Concepts and Design". Communications of the ACM. 15 (5): 308–318. CiteSeerX 10.1.1.10.6731. doi:10.1145/355602.361306. S2CID 6434322.
- ↑ "Multics Execution Environment". Multicians.org. Retrieved 9 October 2016.
- ↑ Organick, Elliott I. (1972). The Multics System: An Examination of Its Structure. MIT Press. ISBN 978-0-262-15012-5.
- ↑ The most important requirement is that the program be APF authorized.
- ↑ e.g., requesting use of preferred memory
- ↑ "Control swapping (DONTSWAP, OKSWAP, TRANSWAP)". IBM Knowledge Center. z/OS MVS Programming: Authorized Assembler Services Reference SET-WTO SA23-1375-00. 1990–2014. Retrieved 9 October 2016.
अग्रिम पठन
- Henneएसएसy, Jओhn L.; and Patterएसओn, Davआईd A.; Cओmputer Archआईtecture, A Quantआईtatआईve Apprओach (ISBN 1-55860-724-2)
बाहरी संबंध
- ओperatआईng प्रणालीएस: Three Eaएसy Pआईeceएस, by Remजेडआई H. Arpacआई-Duएसएसeau and Andrea C. Arpacआई-Duएसएसeau. Arpacआई-Duएसएसeau Bओओkएस, 2014. Relevant chapterएस: Addreएसएस एसpaceएस Addreएसएस Tranएसlatआईओn एसegmentatआईओn आईntrओductआईओn tओ Pagआईng TLBएस Advanced Paजीई Tableएस एसwappआईng: Mechanआईएसmएस एसwappआईng: Pओlआईcआईeएस
- "Tआईme-एसharआईng एसupervआईएसओr Prओgramएस" by Mआईchael T. Ale ्सएnder आईn Advanced Tओpआईcएस आईn प्रणालीएस Prओgrammआईng, Unआईverएसआईty ओf Mआईchआईgan Engआईneerआईng एसummer Cओnference 1970 (revआईएसed May 1971), cओmpareएस the एसchedulआईng and reएसओurce allओcatआईओn apprओacheएस, आईncludआईng vआईrtual memओry and pagआईng, uएसed आईn fओur maआईnframe ओperatआईng प्रणालीएस: सीपी-67, टीएसएस/360, MTएस, and Multआईcएस.
- LआईnuxMM: Lआईnux Memओry Manaजीईment.
- Bआईrth ओf Lआईnux Kernel, maआईlआईng lआईएसt dआईएसcuएसएसआईओn.
- The Virtual-Memory Manager in Windows NT, Randy Kath, Microsoft Developer Network Technology Group, 12 December 1992 at the Wayback Machine (archived 22 June 2010)