वर्चुअल मेमोरी: Difference between revisions

From Vigyanwiki
m (Sugatha moved page आभासी मेमोरी to वर्चुअल मेमोरी without leaving a redirect)
No edit summary
 
(43 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Computer memory management technique}}
[[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
{{About|the computer memory management technique|
the technique of pooling multiple storage devices|Storage virtualization|
the TBN game show|Virtual Memory (game show)}}
{{Use dmy dates|date=January 2023}}
 
[[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 25: Line 19:
  | publisher = IBM
  | publisher = IBM
  }}
  }}
</ref> on [[z/Architecture]].}} एक [[मेमोरी प्रबंधन (ऑपरेटिंग सिस्टम)]] तकनीक है जो भंडारण संसाधनों का एक आदर्श अमूर्तता प्रदान करती है जो वास्तव में किसी दिए गए मशीन पर उपलब्ध हैं<ref>{{cite book|last1=Bhattacharjee|first1=Abhishek|last2=Lustig|first2=Daniel|title=Architectural and Operating System Support for Virtual Memory|date=2017|publisher=Morgan & Claypool Publishers|isbn=9781627056021|page=1|url=https://books.google.com/books?id=roM4DwAAQBAJ|access-date=16 October 2017}}</ref> जो एक बहुत बड़ी (मुख्य) मेमोरी के उपयोगकर्ताओं के लिए भ्रम पैदा करता है।<ref>{{cite book|last1=Haldar|first1=Sibsankar|last2=Aravind|first2=Alex Alagarsamy|title=Operating Systems|date=2010|publisher=Pearson Education India|isbn=978-8131730225|page=269|url=https://books.google.com/books?id=orZ0CLxEMXEC&pg=PA269|access-date=16 October 2017}}</ref>
</ref> on [[z/Architecture]].}} [[मेमोरी प्रबंधन]] प्रचालन प्रणाली प्रविधि है। जो भंडारण संसाधनों का "आदर्शीकृत अमूर्तता" प्रदान करती है, जो वास्तव में दिए गए मशीन पर उपलब्ध हैं,<ref>{{cite book|last1=Bhattacharjee|first1=Abhishek|last2=Lustig|first2=Daniel|title=Architectural and Operating System Support for Virtual Memory|date=2017|publisher=Morgan & Claypool Publishers|isbn=9781627056021|page=1|url=https://books.google.com/books?id=roM4DwAAQBAJ|access-date=16 October 2017}}</ref> जो बहुत बड़ी मुख्य मेमोरी के उपयोगकर्ताओं के लिए भ्रम उत्पन्न करता है।<ref>{{cite book|last1=Haldar|first1=Sibsankar|last2=Aravind|first2=Alex Alagarsamy|title=Operating Systems|date=2010|publisher=Pearson Education India|isbn=978-8131730225|page=269|url=https://books.google.com/books?id=orZ0CLxEMXEC&pg=PA269|access-date=16 October 2017}}</ref>
कंप्यूटर का [[ऑपरेटिंग सिस्टम]], हार्डवेयर और सॉफ्टवेयर के संयोजन का उपयोग करके, [[वर्चुअल एड्रेस स्पेस]] नामक प्रोग्राम द्वारा उपयोग किए जाने वाले मेमोरी पतों को कंप्यूटर [[स्मृति विभाजन]] भौतिक पतों में मैप करता है। मुख्य भंडारण # प्राथमिक भंडारण, जैसा कि एक प्रक्रिया या कार्य द्वारा देखा जाता है, एक सन्निहित [[पता स्थान]] या सन्निहित [[स्मृति]] विभाजन के संग्रह के रूप में प्रकट होता है। ऑपरेटिंग सिस्टम वर्चुअल एड्रेस स्पेस और वर्चुअल मेमोरी को वास्तविक मेमोरी के असाइनमेंट का प्रबंधन करता है।<ref>{{Cite journal |last1=Zhou |first1=Xiangrong |last2=Petrov |first2=Peter |date=1 December 2008 |title=Direct address translation for virtual memory in energy-efficient embedded systems |url=https://dl.acm.org/doi/10.1145/1457246.1457251 |journal=ACM Transactions on Embedded Computing Systems |language=en |volume=8 |issue=1 |pages=1–31 |doi=10.1145/1457246.1457251 |s2cid=18156695 |issn=1539-9087}}</ref> CPU में एड्रेस ट्रांसलेशन हार्डवेयर, जिसे अक्सर [[स्मृति प्रबंधन इकाई]] (MMU) के रूप में संदर्भित किया जाता है, स्वचालित रूप से वर्चुअल एड्रेस को फिजिकल एड्रेस में ट्रांसलेट करता है। ऑपरेटिंग सिस्टम के भीतर सॉफ़्टवेयर इन क्षमताओं का उपयोग कर सकता है, उपयोग, उदाहरण के लिए, [[डिस्क भंडारण]], वर्चुअल एड्रेस स्पेस प्रदान करने के लिए जो वास्तविक मेमोरी की क्षमता से अधिक हो सकता है और इस प्रकार कंप्यूटर में भौतिक रूप से मौजूद मेमोरी से अधिक मेमोरी का संदर्भ देता है।
कंप्यूटर की [[ऑपरेटिंग सिस्टम|प्रचालन प्रणाली]], हार्डवेयर और सॉफ्टवेयर के संयोजन का उपयोग करके [[वर्चुअल एड्रेस स्पेस|वर्चुअल ऐड्रेसेज]] नामक प्रोग्राम द्वारा उपयोग किए जाने वाले मेमोरी ऐड्रेसेज को कंप्यूटर [[स्मृति विभाजन|मेमोरी विभाजन]] भौतिक ऐड्रेसेज में मानचित्र करता है। इस प्रकार मुख्य भंडारण प्राथमिक भंडारण जैसा कि प्रक्रिया द्वारा देखा जाता है, [[पता स्थान|सन्निहित ऐड्रेसेज]] [[स्मृति|मेमोरी]] विभाजन के संग्रह के रूप में प्रकट होता है। प्रचालन प्रणाली वर्चुअल ऐड्रेसेज और वर्चुअल मेमोरी को वास्तविक मेमोरी के कार्यभार का प्रबंधन करता है।<ref>{{Cite journal |last1=Zhou |first1=Xiangrong |last2=Petrov |first2=Peter |date=1 December 2008 |title=Direct address translation for virtual memory in energy-efficient embedded systems |url=https://dl.acm.org/doi/10.1145/1457246.1457251 |journal=ACM Transactions on Embedded Computing Systems |language=en |volume=8 |issue=1 |pages=1–31 |doi=10.1145/1457246.1457251 |s2cid=18156695 |issn=1539-9087}}</ref> सीपीयू में ऐड्रेस अनुवाद हार्डवेयर, जिसे अधिकांशतः [[स्मृति प्रबंधन इकाई|मेमोरी प्रबंधन इकाई]] (एमएमयू) के रूप में संदर्भित किया जाता है। इस प्रकार स्वचालित रूप से वर्चुअल ऐड्रेस को भौतिक ऐड्रेस में अनुवाद करता है। प्रचालन प्रणाली के भीतर सॉफ़्टवेयर इन क्षमताओं का उपयोग कर सकता है। इस प्रकार उदाहरण के लिए, [[डिस्क भंडारण]], वर्चुअल ऐड्रेसेज प्रदान करने के लिए जो वास्तविक मेमोरी की क्षमता से अधिक हो सकता है और इस प्रकार कंप्यूटर में भौतिक रूप से उपस्तिथ मेमोरी से अधिक मेमोरी का संदर्भ देता है।


वर्चुअल मेमोरी के प्राथमिक लाभों में अनुप्रयोगों को साझा मेमोरी स्पेस को प्रबंधित करने से मुक्त करना, प्रक्रियाओं के बीच [[पुस्तकालय (कम्प्यूटिंग)]] द्वारा उपयोग की जाने वाली मेमोरी को साझा करने की क्षमता, मेमोरी आइसोलेशन के कारण बढ़ी हुई सुरक्षा, और शारीरिक रूप से अधिक मेमोरी का वैचारिक रूप से उपयोग करने में सक्षम होना शामिल है। [[पेजिंग]] या सेगमेंटेशन की तकनीक का उपयोग करके उपलब्ध है।
'''वर्चुअल मेमोरी''' के प्राथमिक लाभों में अनुप्रयोगों को सहभाजीत मेमोरी स्थान को प्रबंधित करने से मुक्त करना है। इस प्रकार प्रक्रियाओं के बीच [[पुस्तकालय (कम्प्यूटिंग)|पुस्तकालय (कंप्यूटर)]] द्वारा उपयोग की जाने वाली मेमोरी को सहभाजीत करने की क्षमता मेमोरी एकांत के कारण बढ़ी हुई सुरक्षा और इस प्रकार शारीरिक रूप से अधिक मेमोरी का वैचारिक रूप से उपयोग करने में सक्षम होना सम्मलित है। [[पेजिंग|पृष्ठीकरण]] विभाजन की प्रविधि का उपयोग करके उपलब्ध किया गया है।


== गुण ==
== गुण ==
वर्चुअल मेमोरी भौतिक मेमोरी के फ्रैगमेंटेशन (कंप्यूटर) को छिपाकर एप्लिकेशन प्रोग्रामिंग को आसान बनाती है; कर्नेल को कंप्यूटर डेटा स्टोरेज # स्टोरेज के पदानुक्रम के प्रबंधन का बोझ सौंपकर ([[ओवरले (प्रोग्रामिंग)]] को स्पष्ट रूप से संभालने के लिए कार्यक्रम की आवश्यकता को समाप्त करना); और, जब प्रत्येक प्रक्रिया को अपने स्वयं के समर्पित पता स्थान में चलाया जाता है, आवश्यकता से छुटकारा पाने के लिए (कंप्यूटर विज्ञान) प्रोग्राम कोड या एड्रेसिंग मोड # पीसी-रिश्तेदार के साथ स्मृति तक पहुंचने के लिए।
'''वर्चुअल मेमोरी''' भौतिक मेमोरी के विखंडन (कंप्यूटर) को छिपाकर आवेदन प्रोग्रामिंग को आसान बनाती है। कंप्यूटर डेटा भंडारण कर्नेल के लिए के पदानुक्रम के प्रबंधन का बोझ सौंपकर [[ओवरले (प्रोग्रामिंग)|उपरिशायी (प्रोग्रामिंग)]] को स्पष्ट रूप से संभालने के लिए कार्यक्रम की आवश्यकता को समाप्त करना है। इस प्रकार जब प्रत्येक प्रक्रिया को स्वयं के समर्पित ऐड्रेसेज में चलाया जाता है और आवश्यकता से छुटकारा पाने के लिए कंप्यूटर विज्ञान प्रोग्राम कोड पीसी-संबंध-सूचक के साथ मेमोरी तक पहुंचने के लिए है।


[[मेमोरी वर्चुअलाइजेशन]] को वर्चुअल मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है।
[[मेमोरी वर्चुअलाइजेशन|मेमोरी वर्चुअलकरण]] को वर्चुअल मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है।


== उपयोग ==
== उपयोग ==
वर्चुअल मेमोरी आधुनिक [[कंप्यूटर आर्किटेक्चर]] का एक अभिन्न अंग है; कार्यान्वयन के लिए आमतौर पर हार्डवेयर समर्थन की आवश्यकता होती है, आमतौर पर केंद्रीय प्रसंस्करण इकाई में निर्मित स्मृति प्रबंधन इकाई के रूप में। जबकि आवश्यक नहीं है, एमुलेटर और [[आभासी मशीन]] अपने वर्चुअल मेमोरी कार्यान्वयन के प्रदर्शन को बढ़ाने के लिए हार्डवेयर समर्थन को नियोजित कर सकते हैं।<ref>{{cite web|title = AMD-V™ Nested Paging|url = http://developer.amd.com/wordpress/media/2012/10/NPT-WP-1%201-final-TM.pdf|publisher = AMD|access-date = 28 April 2015}}</ref> पुराने ऑपरेटिंग सिस्टम, जैसे कि 1960 के दशक के [[मेनफ़्रेम कंप्यूटर]] के लिए, और 1980 के दशक के मध्य तक के पर्सनल कंप्यूटर के लिए (जैसे, [[DOS]]),<ref>{{cite web |title=Windows Version History |url=http://support.microsoft.com/kb/32905 |date=23 September 2011 |publisher=Microsoft |access-date=9 March 2015 |archive-url=https://web.archive.org/web/20150108044055/http://support.microsoft.com/kb/32905 |archive-date=8 January 2015}}</ref> आमतौर पर कोई वर्चुअल मेमोरी कार्यक्षमता नहीं होती है,{{Dubious|Prevalence of virtual memory operating systems in the 1960s and early 1970s|reason=a lot of paging computers were shipped in the 1960|date=November 2010}} हालांकि 1960 के मेनफ्रेम के उल्लेखनीय अपवादों में शामिल हैं:
'''वर्चुअल मेमोरी''' आधुनिक [[कंप्यूटर आर्किटेक्चर|कंप्यूटर संरचना]] का अभिन्न अंग है। कार्यान्वयन के लिए सामान्यतः हार्डवेयर समर्थन की आवश्यकता होती है। सामान्यतः केंद्रीय प्रसंस्करण इकाई में निर्मित मेमोरी प्रबंधन इकाई के रूप में आवश्यक नहीं है, जबकि एमुलेटर और [[आभासी मशीन|वर्चुअल मशीन]] अपने वर्चुअल मेमोरी कार्यान्वयन के प्रदर्शन को बढ़ाने के लिए हार्डवेयर समर्थन को नियोजित कर सकते हैं।<ref>{{cite web|title = AMD-V™ Nested Paging|url = http://developer.amd.com/wordpress/media/2012/10/NPT-WP-1%201-final-TM.pdf|publisher = AMD|access-date = 28 April 2015}}</ref> इस प्रकार पुराने प्रचालन प्रणाली, जैसे कि 1960 के दशक के [[मेनफ़्रेम कंप्यूटर]] के लिए और 1980 के दशक के मध्य तक के व्यक्तिगत कंप्यूटर के लिए जैसे, [[DOS|डॉस]],<ref>{{cite web |title=Windows Version History |url=http://support.microsoft.com/kb/32905 |date=23 September 2011 |publisher=Microsoft |access-date=9 March 2015 |archive-url=https://web.archive.org/web/20150108044055/http://support.microsoft.com/kb/32905 |archive-date=8 January 2015}}</ref> सामान्यतः कोई वर्चुअल मेमोरी कार्यक्षमता नहीं होती है, चूंकि 1960 के मेनफ्रेम के उल्लेखनीय अपवादों में सम्मलित हैं।


* [[एटलस (कंप्यूटर)]] के लिए [[एटलस पर्यवेक्षक]]
* [[एटलस (कंप्यूटर)]] के लिए [[एटलस पर्यवेक्षक]]
* [[इलेक्ट्रोलॉजिका X8]] के लिए [[मल्टीप्रोग्रामिंग सिस्टम]] (हार्डवेयर समर्थन के बिना सॉफ्टवेयर आधारित वर्चुअल मेमोरी)
* [[इलेक्ट्रोलॉजिका X8|इलेक्ट्रोलॉजिका एक्स8]] के लिए [[मल्टीप्रोग्रामिंग सिस्टम|बहु क्रमादेशन तंत्र]] हार्डवेयर समर्थन के अतिरिक्त सॉफ्टवेयर आधारित वर्चुअल मेमोरी
* [[बरोज़ कॉर्पोरेशन]] [[बी 5000]] के लिए [[बरोज़ एमसीपी]]
* [[बरोज़ कॉर्पोरेशन]] [[बी 5000]] के लिए [[बरोज़ एमसीपी]]
* IBM सिस्टम/360 मॉडल 67 के लिए [[मिशिगन टर्मिनल सिस्टम]], TSS/360 और CP/CMS
* आईबीएम प्रणाली/360 प्रतिरूप 67 के लिए [[मिशिगन टर्मिनल सिस्टम|मिशिगन टर्मिनल प्रणाली]], टीएसएस/360 और सीपी/सीएमएस
* GE-600 श्रृंखला के लिए [[मॉलटिक्स]]
* जीई-600 श्रृंखला के लिए [[मॉलटिक्स]]
* [[आरसीए स्पेक्ट्रा 70]]/46 के लिए [[टाइम शेयरिंग ऑपरेटिंग सिस्टम]]
* [[आरसीए स्पेक्ट्रा 70]]/46 के लिए [[टाइम शेयरिंग ऑपरेटिंग सिस्टम|काल सहभाजन प्रचालन प्रणाली]]


1960 और 70 के दशक की शुरुआत में, कंप्यूटर मेमोरी बहुत महंगी थी। वर्चुअल मेमोरी की शुरूआत ने कम वास्तविक मेमोरी वाले कंप्यूटरों पर चलने के लिए बड़ी मेमोरी डिमांड वाले सॉफ़्टवेयर सिस्टम की क्षमता प्रदान की। इससे होने वाली बचत ने सभी प्रणालियों के लिए वर्चुअल मेमोरी पर स्विच करने के लिए एक मजबूत प्रोत्साहन प्रदान किया। वर्चुअल एड्रेस स्पेस प्रदान करने की अतिरिक्त क्षमता ने सुरक्षा और विश्वसनीयता का एक और स्तर जोड़ा, इस प्रकार वर्चुअल मेमोरी को बाज़ार के लिए और भी आकर्षक बना दिया।
1960 और 70 के दशक की प्रारंभ में कंप्यूटर मेमोरी बहुत महंगी थी। वर्चुअल मेमोरी की प्रारंभ ने कम वास्तविक मेमोरी वाले कंप्यूटरों पर चलने के लिए बड़ी मेमोरी अनुरोध वाले सॉफ़्टवेयर प्रणाली की क्षमता प्रदान की गई थी। इस प्रकार इससे होने वाली बचत ने सभी प्रणालियों के लिए वर्चुअल मेमोरी पर स्विच करने के लिए ठोस प्रोत्साहन प्रदान किया था। इस प्रकार वर्चुअल ऐड्रेसेज प्रदान करने की अतिरिक्त क्षमता सुरक्षा और विश्वसनीयता का स्तर जोड़ा गया था और इस प्रकार वर्चुअल मेमोरी को बाज़ार के लिए और भी आकर्षक बना दिया गया हैं।


वर्चुअल मेमोरी का समर्थन करने वाले अधिकांश आधुनिक ऑपरेटिंग सिस्टम भी प्रत्येक [[प्रक्रिया (कंप्यूटिंग)]] को अपने स्वयं के समर्पित पता स्थान में चलाते हैं। इस प्रकार प्रत्येक प्रोग्राम को वर्चुअल मेमोरी तक एकमात्र पहुंच दिखाई देती है। हालाँकि, कुछ पुराने ऑपरेटिंग सिस्टम (जैसे OS/VS1 और OS/VS2 (SVS)|OS/VS2 SVS) और यहां तक ​​कि आधुनिक वाले (जैसे [[IBM i]]) [[सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम]] हैं जो सभी प्रक्रियाओं को एक ही एड्रेस स्पेस में चलाते हैं। वर्चुअलाइज्ड मेमोरी से बना है।
वर्चुअल मेमोरी का समर्थन करने वाले अधिकांश आधुनिक प्रचालन प्रणाली भी प्रत्येक [[प्रक्रिया (कंप्यूटिंग)]] को स्वयं के समर्पित ऐड्रेसेज में चलाते हैं। इस प्रकार प्रत्येक प्रोग्राम को वर्चुअल मेमोरी तक मात्र पहुंच दिखाई देती है। चूँकि, कुछ पुराने प्रचालन प्रणाली जैसे ओएस/वीएस1 और ओएस/वीएस2 (एसवीएस)|ओएस/वीएस2 एसवीएस) और यहां तक ​​कि आधुनिक वाले जैसे [[IBM i|आईबीएम आई]] [[सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम|एकाकी ऐड्रेसेज]] प्रचालन प्रणाली हैं जो सभी प्रक्रियाओं को ही ऐड्रेसेज में चलाते हैं। वर्चुअल मेमोरी से बना है।


एंबेडेड सिस्टम और अन्य विशेष-उद्देश्य वाले कंप्यूटर सिस्टम जिन्हें बहुत तेज़ और/या बहुत सुसंगत प्रतिक्रिया समय की आवश्यकता होती है, [[नियतात्मक एल्गोरिथ्म]] में कमी के कारण वर्चुअल मेमोरी का उपयोग नहीं करने का विकल्प चुन सकते हैं; वर्चुअल मेमोरी सिस्टम अप्रत्याशित [[ट्रैप (कम्प्यूटिंग)]] को ट्रिगर करता है जो इनपुट के जवाब में अवांछित और अप्रत्याशित देरी उत्पन्न कर सकता है, खासकर अगर ट्रैप के लिए आवश्यक है कि डेटा को सेकेंडरी मेमोरी से मुख्य मेमोरी में पढ़ा जाए। वर्चुअल पतों को भौतिक पतों में अनुवाद करने के लिए हार्डवेयर को आमतौर पर लागू करने के लिए एक महत्वपूर्ण चिप क्षेत्र की आवश्यकता होती है, और [[अंतः स्थापित प्रणाली]] में उपयोग किए जाने वाले सभी चिप्स में वह हार्डवेयर शामिल नहीं होता है, जो एक और कारण है कि उनमें से कुछ सिस्टम वर्चुअल मेमोरी का उपयोग नहीं करते हैं।
अंतः स्थापित प्रणाली और अन्य विशेष-उद्देश्य वाले कंप्यूटर प्रणाली जिन्हें बहुत तेज़ और बहुत सुसंगत प्रतिक्रिया समय की आवश्यकता होती है। इस प्रकार [[नियतात्मक एल्गोरिथ्म|नियतात्मक कलन विधि]] में कमी के कारण वर्चुअल मेमोरी का उपयोग नहीं करने का विकल्प चुन सकते हैं। वर्चुअल मेमोरी प्रणाली अप्रत्याशित [[ट्रैप (कम्प्यूटिंग)|ट्रैप (कंप्यूटर)]] को ट्रिगर करता है जो इनपुट के उत्तर में अवांछित और अप्रत्याशित देरी उत्पन्न कर सकता है, इस प्रकार विशेष करके यदि ट्रैप के लिए आवश्यक है कि डेटा को माध्यमिक मेमोरी से मुख्य मेमोरी में पढ़ा जाए। वर्चुअल ऐड्रेसेज को भौतिक ऐड्रेसेज में अनुवाद करने के लिए हार्डवेयर को सामान्यतः लागू करने के लिए महत्वपूर्ण चिप क्षेत्र की आवश्यकता होती है। इस प्रकार [[अंतः स्थापित प्रणाली]] में उपयोग किए जाने वाले सभी चिप्स में वह हार्डवेयर सम्मलित नहीं होता है, जो कारण और है कि उनमें से कुछ प्रणाली वर्चुअल मेमोरी का उपयोग नहीं करते हैं।


== इतिहास ==
== इतिहास ==
1950 के दशक में, सभी बड़े कार्यक्रमों में ओवरले (प्रोग्रामिंग) जैसे प्राथमिक और द्वितीयक भंडारण के प्रबंधन के लिए तर्क शामिल थे। इसलिए वर्चुअल मेमोरी को न केवल प्राथमिक मेमोरी का विस्तार करने के लिए पेश किया गया था, बल्कि प्रोग्रामर के उपयोग के लिए इस तरह के विस्तार को यथासंभव आसान बनाने के लिए भी पेश किया गया था।<ref name="denning">{{cite journal
1950 के दशक में, सभी बड़े कार्यक्रमों में उपरिशायी (प्रोग्रामिंग) जैसे प्राथमिक और द्वितीयक भंडारण के प्रबंधन के लिए तर्क सम्मलित थे। इसलिए वर्चुअल मेमोरी को न केवल प्राथमिक मेमोरी का विस्तार करने के लिए प्रस्तुत किया गया था, जबकि प्रोग्रामर के उपयोग के लिए इस प्रकार के विस्तार को यथासंभव आसान बनाने के लिए भी प्रस्तुत किया गया था।<ref name="denning">{{cite journal
   |author-link=Peter J. Denning |last=Denning |first=Peter
   |author-link=Peter J. Denning |last=Denning |first=Peter
   |title=Before Memory Was Virtual |journal=In the Beginning: Recollections of Software Pioneers
   |title=Before Memory Was Virtual |journal=In the Beginning: Recollections of Software Pioneers
   |year=1997 |url=http://denninginstitute.com/pjd/PUBS/bvm.pdf}}</ref> [[बहु क्रमादेशन]] और [[कंप्यूटर मल्टीटास्किंग]] की अनुमति देने के लिए, कई शुरुआती सिस्टम ने वर्चुअल मेमोरी के बिना कई प्रोग्रामों के बीच मेमोरी को विभाजित किया, जैसे [[प्रोसेसर रजिस्टर]] के माध्यम से [[पीडीपी-10]] -10 के शुरुआती मॉडल।
   |year=1997 |url=http://denninginstitute.com/pjd/PUBS/bvm.pdf}}</ref> [[बहु क्रमादेशन]] और [[कंप्यूटर मल्टीटास्किंग|कंप्यूटर बहु कार्यण]] की अनुमति देने के लिए, कई प्रारंभ प्रणाली ने वर्चुअल मेमोरी के अतिरिक्त कई प्रोग्रामों के बीच मेमोरी को विभाजित किया, जैसे [[प्रोसेसर रजिस्टर|प्रक्रमक पंजीकृत]] के माध्यम से [[पीडीपी-10]] -10 के प्रारंभ प्रतिरूप हैं।


एक दावा है कि वर्चुअल मेमोरी की अवधारणा पहली बार जर्मन [[भौतिक विज्ञानी]] फ्रिट्ज-रुडोल्फ गुंटश द्वारा 1956 में टेक्नीश यूनिवर्सिटैट बर्लिन में अपने डॉक्टरेट थीसिस, मल्टीपल एसिंक्रोनस रोटेटिंग ड्रम और ऑटोमैटिक हाई स्पीड मेमोरी ऑपरेशन के साथ एक डिजिटल कंप्यूटर के लॉजिकल डिजाइन में विकसित की गई थी।<ref>{{cite journal
यह प्रमाणित है कि वर्चुअल मेमोरी की अवधारणा पहली बार जर्मन [[भौतिक विज्ञानी]] फ्रिट्ज-रुडोल्फ गुंटश द्वारा 1956 में टेक्नीश विश्वविद्यालय बर्लिन में अपने डॉक्टरेट थीसिस, एकाधिक अतुल्यकालिक घूर्णन ड्रम और स्वचालित उच्च गति मेमोरी संचालन के साथ डिजिटल कंप्यूटर के तर्कसंगत अभिकल्प में विकसित की गई थी।<ref>{{cite journal
     |first=Elke  |last=Jessen |title=Origin of the Virtual Memory Concept
     |first=Elke  |last=Jessen |title=Origin of the Virtual Memory Concept
     |journal=[[IEEE Annals of the History of Computing]] |volume=26 |issue=4 |year=2004 |pages=71–72}}</ref><ref name=springer>{{Cite journal
     |journal=[[IEEE Annals of the History of Computing]] |volume=26 |issue=4 |year=2004 |pages=71–72}}</ref><ref name=springer>{{Cite journal
Line 63: Line 57:
|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> सावधानीपूर्वक जांच करने के लिए खड़ा नहीं होता है। Güntsch द्वारा प्रस्तावित कंप्यूटर (लेकिन कभी नहीं बनाया गया) का पता स्थान 10 था<sup>5</sup> शब्द जो बिल्कुल 10 पर मैप किए गए<sup>5</sup> ड्रम के शब्द, यानी पते वास्तविक पते थे और अप्रत्यक्ष मानचित्रण का कोई रूप नहीं था, आभासी स्मृति की एक प्रमुख विशेषता। Güntsch ने जो आविष्कार किया वह [[कैश मैमोरी]] का एक रूप था, क्योंकि उसकी हाई-स्पीड मेमोरी का उद्देश्य कोड के कुछ ब्लॉक या ड्रम से लिए गए डेटा की एक प्रति शामिल करना था। दरअसल, उन्होंने लिखा (जैसा कि अनुवाद में उद्धृत किया गया है{{sfnp | Jessen | 2004}}): प्रोग्रामर को प्राथमिक मेमोरी के अस्तित्व का सम्मान करने की आवश्यकता नहीं है (उसे यह जानने की भी आवश्यकता नहीं है कि यह मौजूद है), क्योंकि केवल एक प्रकार के पते (एसआईसी) होते हैं जिनके द्वारा कोई प्रोग्राम कर सकता है जैसे कि केवल एक ही स्टोरेज हो। कैश मेमोरी वाले कंप्यूटरों में ठीक यही स्थिति है, जिसका एक शुरुआती व्यावसायिक उदाहरण आईबीएम सिस्टम/360 मॉडल 85 था।<ref>{{citation
|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|यूनिवर्सिटी ऑफ़ मैनचेस्टर [[एटलस कंप्यूटर]] पहला कंप्यूटर था जिसमें वास्तविक वर्चुअल मेमोरी की सुविधा थी।]]पहला ट्रू वर्चुअल मेमोरी सिस्टम [[मैनचेस्टर विश्वविद्यालय]] में एक-स्तरीय स्टोरेज सिस्टम बनाने के लिए लागू किया गया था<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]]|CP-40 और [[CP-67]] में [[सूत्र]] की अवधारणा, और 1972 में इसे IBM System/370|S/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> IBM ने 3081 पर 370-XA के हिस्से के रूप में स्टार्ट इंटरप्रिटिव एक्ज़ीक्यूशन (SIE) निर्देश और इसका फायदा उठाने के लिए VM (ऑपरेटिंग सिस्टम) के VM/XA संस्करण पेश किए।
 
मेनस्ट्रीम ऑपरेटिंग सिस्टम में वर्चुअल मेमोरी को लागू करने से पहले, कई समस्याओं का समाधान किया जाना था। डायनेमिक एड्रेस ट्रांसलेशन के लिए महंगे और मुश्किल से बनने वाले विशेष हार्डवेयर की आवश्यकता होती है; प्रारंभिक कार्यान्वयन ने स्मृति तक पहुंच को थोड़ा धीमा कर दिया।<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]] था; 1970 के दशक के दौरान, अन्य [[मिनी कंप्यूटर]]ों ने वर्चुअल मेमोरी लागू की, विशेष रूप से ओपन [[ओपन VMS]] चलाने वाले [[वैक्स]] मॉडल।


इंटेल 802[[86]] प्रोसेसर के संरक्षित मोड के साथ वर्चुअल मेमोरी को x86 आर्किटेक्चर में पेश किया गया था, लेकिन इसकी सेगमेंट स्वैपिंग तकनीक को बड़े सेगमेंट आकार में खराब कर दिया गया। [[Intel 80386]] ने मौजूदा सेगमेंटेशन (मेमोरी) लेयर के नीचे पेजिंग सपोर्ट पेश किया, जिससे पेज फॉल्ट अपवाद को बिना किसी [[दोहरा दोष]] के अन्य अपवादों के साथ चेन में सक्षम किया गया। हालांकि, सेगमेंट डिस्क्रिप्टर लोड करना एक महंगा ऑपरेशन था, जिससे ऑपरेटिंग सिस्टम डिज़ाइनर पेजिंग और सेगमेंटेशन के संयोजन के बजाय पेजिंग पर सख्ती से भरोसा करते थे।{{Citation needed|date=February 2021}}
[[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 में, बरोज़ कॉर्पोरेशन ने स्वतंत्र रूप से पृष्ठीकरण के अतिरिक्त [[विभाजन (मेमोरी)]] के साथ वर्चुअल मेमोरी, बी5000 के साथ पहला व्यावसायिक कंप्यूटर जारी किया था।<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>
आईबीएम विकसित उनके [[IBM CP-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 श्रृंखला ने अपने वर्चुअल-भंडारण आधारित प्रचालन प्रणाली को चलाने के लिए व्यापार उपयोगकर्ताओं को कई पुराने प्रणाली को कम, अधिक शक्तिशाली, मेनफ्रेम में माइग्रेट करने का साधन प्रदान किया, जिसने मूल्य प्रदर्शन में सुधार किया था। वर्चुअल मेमोरी प्रस्तुत करने वाला पहला मिनी कंप्यूटर नॉर्वेजियन [[NORD-1|नॉर्ड-1]] था। 1970 के दशक के पर्यन्त, अन्य [[मिनी कंप्यूटर]] ने वर्चुअल मेमोरी लागू की, विशेष रूप से [[ओपन VMS|विवृत वीएमएस]] चलाने वाले [[वैक्स]] प्रतिरूप है।


== पेजेड वर्चुअल मेमोरी ==
इंटेल 802[[86]] प्रक्रमक के संरक्षित मोड के साथ वर्चुअल मेमोरी को एक्स86 संरचना में प्रस्तुत किया गया था, किन्तु इसकी खंड अदला-बदली प्रविधि को बड़े खंड आकार में खराब कर दिया गया हैं। [[Intel 80386|इंटेल 80386]] ने उपस्तिथा विभाजन (मेमोरी) स्तर के नीचे पृष्ठीकरण समर्थन प्रस्तुत किया था। जिससे पृष्ठ दोष अपवाद को अतिरिक्त किसी [[दोहरा दोष]] के अन्य अपवादों के साथ श्रृंखला में सक्षम किया गया हैं। चूंकि, खंड डिस्क्रिप्टर लोड करना महंगा संचालन था, जिससे प्रचालन प्रणाली रचनार पृष्ठीकरण और विभाजन के संयोजन के अतिरिक्त पृष्ठीकरण पर कठोरता से विश्वास करते थे।
{{See also|Memory paging}}
== पृष्ठांकित वर्चुअल मेमोरी ==
{{More citations needed section|date=December 2010}}
{{See also|मेमोरी पृष्ठीकरण}}
वर्चुअल मेमोरी के लगभग सभी मौजूदा कार्यान्वयन वर्चुअल एड्रेस स्पेस को [[पेज (कंप्यूटर मेमोरी)]] में विभाजित करते हैं, सन्निहित वर्चुअल मेमोरी एड्रेस के ब्लॉक। समसामयिक पर पेज{{efn|IBM [[DOS/360 and successors#DOS/VS|DOS/VS]], [[OS/VS1]] and [[DOS/VS]] only supported 2&nbsp;KB pages.}} सिस्टम आमतौर पर आकार में कम से कम 4 [[किलोबाइट]] होते हैं; बड़े वर्चुअल एड्रेस रेंज या वास्तविक मेमोरी की मात्रा वाले सिस्टम आमतौर पर बड़े पृष्ठ आकार का उपयोग करते हैं।<ref>{{cite book|last1=Quintero|first1=Dino |display-authors=et al.|title=IBM Power Systems Performance Guide: Implementing and Optimizing|date=1 May 2013|publisher=IBM Corporation|isbn=978-0738437668|page=138|url=https://books.google.com/books?id=lHTJAgAAQBAJ&pg=PA138|access-date=18 July 2017}}</ref>


वर्चुअल मेमोरी के लगभग सभी उपस्तिथा कार्यान्वयन वर्चुअल ऐड्रेसेज को [[पेज (कंप्यूटर मेमोरी)|पृष्ठ (कंप्यूटर मेमोरी)]] में विभाजित करते हैं। सन्निहित वर्चुअल मेमोरी ऐड्रेस के खंड समसामयिक पर पृष्ठ प्रणाली सामान्यतः आकार में कम से कम 4 [[किलोबाइट]] होते हैं। बड़े वर्चुअल ऐड्रेस श्रेणी या वास्तविक मेमोरी की मात्रा वाले प्रणाली सामान्यतः बड़े पृष्ठ आकार का उपयोग करते हैं।<ref>{{cite book|last1=Quintero|first1=Dino |display-authors=et al.|title=IBM Power Systems Performance Guide: Implementing and Optimizing|date=1 May 2013|publisher=IBM Corporation|isbn=978-0738437668|page=138|url=https://books.google.com/books?id=lHTJAgAAQBAJ&pg=PA138|access-date=18 July 2017}}</ref>
=== [[पेज टेबल|पृष्ठ टेबल]] ===
पृष्ठ टेबल का उपयोग आवेदन द्वारा देखे गए वर्चुअल ऐड्रेसेज को निर्देशों को संसाधित करने के लिए [[कंप्यूटर हार्डवेयर]] द्वारा उपयोग किए जाने वाले भौतिक ऐड्रेसेज में अनुवाद करने के लिए किया जाता है।<ref>{{cite book|last1=Sharma|first1=Dp|title=Foundation of Operating Systems|date=2009|publisher=Excel Books India|isbn=978-81-7446-626-6|page=62|url=https://books.google.com/books?id=AjWh-o7eICMC&pg=PA62|access-date=18 July 2017}}</ref> ऐसे हार्डवेयर जो इस विशिष्ट अनुवाद को संभालते हैं। अधिकांशतः मेमोरी प्रबंधन इकाई के रूप में जाने जाते हैं। इस प्रकार पृष्ठ सूची में प्रत्येक प्रविष्टि में ध्वज होता है जो दर्शाता है कि संबंधित पृष्ठ वास्तविक मेमोरी में है या नहीं। यदि यह वास्तविक मेमोरी में है, पृष्ठ सूची प्रविष्टि में वास्तविक मेमोरी ऐड्रेस होगा जिस पर पृष्ठ संग्रहीत है। जब हार्डवेयर द्वारा किसी पृष्ठ का संदर्भ दिया जाता है, यदि पृष्ठ के लिए पृष्ठ सूची प्रविष्टि इंगित करती है कि यह वर्तमान में वास्तविक मेमोरी में नहीं है, तो हार्डवेयर [[पृष्ठ दोष]] ट्रैप (कंप्यूटिंग) उठाता है। प्रचालन प्रणाली के पृष्ठीकरण पर्यवेक्षक घटक को लागू करता है। .


=== [[पेज टेबल]] ===
प्रणाली में हो सकता है उदाहरण के लिए, पूरे प्रणाली के लिए पृष्ठ टेबल, प्रत्येक ऐड्रेसेज या प्रक्रिया के लिए अलग पृष्ठ टेबल, प्रत्येक खंड के लिए अलग पृष्ठ टेबल। इसी प्रकार, प्रणाली में उदाहरण के लिए, कोई खंड सूची नहीं हो सकती है। इस प्रकार पूरी प्रणाली के लिए खंड सूची प्रत्येक ऐड्रेसेज प्रक्रिया के लिए अलग खंड सूची, पेड़ में प्रत्येक क्षेत्र के लिए अलग खंड सूची प्रत्येक ऐड्रेसेज या प्रक्रिया के लिए क्षेत्र सूची बनाई जाती हैं। यदि केवल पृष्ठ सूची है, तो विभिन्न आवेदन बहु क्रमादेशन वर्चुअल ऐड्रेसेज की ही श्रेणी के विभिन्न भागों का उपयोग करते हैं। यदि कई पृष्ठ या खंड टेबल हैं, तो कई वर्चुअल ऐड्रेसेज हैं और समवर्ती आवेदन अलग-अलग पृष्ठ टेबल के साथ अलग-अलग वास्तविक ऐड्रेस पर पुन: निर्देशित करते हैं।
पेज टेबल का उपयोग एप्लिकेशन द्वारा देखे गए वर्चुअल पतों को निर्देशों को संसाधित करने के लिए [[कंप्यूटर हार्डवेयर]] द्वारा उपयोग किए जाने वाले भौतिक पतों में अनुवाद करने के लिए किया जाता है;<ref>{{cite book|last1=Sharma|first1=Dp|title=Foundation of Operating Systems|date=2009|publisher=Excel Books India|isbn=978-81-7446-626-6|page=62|url=https://books.google.com/books?id=AjWh-o7eICMC&pg=PA62|access-date=18 July 2017}}</ref> ऐसे हार्डवेयर जो इस विशिष्ट अनुवाद को संभालते हैं, अक्सर स्मृति प्रबंधन इकाई के रूप में जाने जाते हैं। पृष्ठ तालिका में प्रत्येक प्रविष्टि में एक ध्वज होता है जो दर्शाता है कि संबंधित पृष्ठ वास्तविक स्मृति में है या नहीं। यदि यह वास्तविक स्मृति में है, पृष्ठ तालिका प्रविष्टि में वास्तविक स्मृति पता होगा जिस पर पृष्ठ संग्रहीत है। जब हार्डवेयर द्वारा किसी पृष्ठ का संदर्भ दिया जाता है, यदि पृष्ठ के लिए पृष्ठ तालिका प्रविष्टि इंगित करती है कि यह वर्तमान में वास्तविक मेमोरी में नहीं है, तो हार्डवेयर एक [[पृष्ठ दोष]] ट्रैप (कंप्यूटिंग) उठाता है, ऑपरेटिंग सिस्टम के पेजिंग पर्यवेक्षक घटक को लागू करता है। .


सिस्टम में हो सकता है, उदाहरण के लिए, पूरे सिस्टम के लिए एक पेज टेबल, प्रत्येक पता स्थान या प्रक्रिया के लिए अलग पेज टेबल, प्रत्येक सेगमेंट के लिए अलग पेज टेबल; इसी तरह, सिस्टम में, उदाहरण के लिए, कोई खंड तालिका नहीं हो सकती है, पूरे सिस्टम के लिए एक खंड तालिका, प्रत्येक पता स्थान या प्रक्रिया के लिए अलग खंड तालिका, एक पेड़ में प्रत्येक क्षेत्र के लिए अलग खंड तालिका{{efn|On [[IBM Z]]<ref>{{cite manual
छोटे वास्तविक मेमोरी आकार वाले कुछ पुराने प्रणाली, जैसे [[एसडीएस 940]], ऐड्रेस अनुवाद के लिए मेमोरी में पृष्ठ टेबल के अतिरिक्त [[पृष्ठ पता रजिस्टर|पृष्ठ ऐड्रेस पंजीकृत]] का उपयोग करते थे।
|       title = z/Architecture - Principles of Operation
|          id = SA22-7832-13
|    edition = Fourteenth
|        date = May 2022
|    section = Translation Tables
| section-url = http://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf#page=152
|      pages = 3-46-3-53
|        url = http://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf
|  publisher = [[IBM]]
| access-date = January 18, 2023
}}
</ref> there is a 3-level tree of regions for each address space.}} प्रत्येक पता स्थान या प्रक्रिया के लिए क्षेत्र तालिकाएँ। यदि केवल एक पृष्ठ तालिका है, तो विभिन्न एप्लिकेशन मल्टीप्रोग्रामिंग वर्चुअल पतों की एक ही श्रेणी के विभिन्न भागों का उपयोग करते हैं। यदि कई पेज या सेगमेंट टेबल हैं, तो कई वर्चुअल एड्रेस स्पेस हैं और समवर्ती एप्लिकेशन अलग-अलग पेज टेबल के साथ अलग-अलग रियल एड्रेस पर रीडायरेक्ट करते हैं।


छोटे वास्तविक मेमोरी आकार वाले कुछ पुराने सिस्टम, जैसे [[एसडीएस 940]], एड्रेस ट्रांसलेशन के लिए मेमोरी में पेज टेबल के बजाय [[पृष्ठ पता रजिस्टर]] का उपयोग करते थे।
=== पृष्ठीकरण पर्यवेक्षक ===
प्रचालन प्रणाली का यह भाग पृष्ठ टेबल और मुफ्त पृष्ठ फ्रेम की सूची बनाता और प्रबंधित करता है। इस प्रकार यह सुनिश्चित करने के लिए कि पृष्ठ दोषों को जल्दी से हल करने के लिए पर्याप्त मुक्त पृष्ठ फ़्रेम होंगे। प्रणाली समय-समय पर पृष्ठ प्रतिस्थापन कलन विधि का उपयोग करके आवंटित पृष्ठ फ़्रेमों को चुरा सकता है, उदाहरण के लिए हाल ही में उपयोग किए गए (एलआरयू) कलन विधि का उपयोग किया जाता हैं। इस प्रकार चुराए गए पृष्ठ फ़्रेम जिन्हें संशोधित किया गया है, उन्हें मुफ्त श्रेणी में जोड़े जाने से पहले सहायक भंडारण में वापस लिखा जाता है। कुछ प्रणालियों पर पृष्ठीकरण पर्यवेक्षक उन अनुवाद पंजीकृत ों के प्रबंधन के लिए भी उत्तरदायित्व होता है जो पृष्ठ टेबल से स्वचालित रूप से लोड नहीं होते हैं।


=== पेजिंग पर्यवेक्षक ===
सामान्यतः, पृष्ठ दोष जिसे हल नहीं किया जा सकता है, जिसके परिणामस्वरूप आवेदन की असामान्य समाप्ति होती है। चूँकि, कुछ प्रणालियाँ ऐसी त्रुटियों के लिए आवेदन को अपवाद संचालक रखने की अनुमति देती हैं। विवरण के आधार पर पृष्ठीकरण पर्यवेक्षक कई अलग-अलग विधियों से पृष्ठ दोष अपवाद को संचालक कर सकता है,
ऑपरेटिंग सिस्टम का यह हिस्सा पेज टेबल और फ्री पेज फ्रेम की सूची बनाता और प्रबंधित करता है। यह सुनिश्चित करने के लिए कि पृष्ठ दोषों को जल्दी से हल करने के लिए पर्याप्त मुक्त पृष्ठ फ़्रेम होंगे, सिस्टम समय-समय पर पृष्ठ प्रतिस्थापन एल्गोरिदम का उपयोग करके आवंटित पृष्ठ फ़्रेमों को चुरा सकता है, उदाहरण के लिए, हाल ही में उपयोग किए गए (LRU) एल्गोरिदम। चुराए गए पृष्ठ फ़्रेम जिन्हें संशोधित किया गया है, उन्हें मुफ्त कतार में जोड़े जाने से पहले सहायक भंडारण में वापस लिखा जाता है। कुछ प्रणालियों पर पेजिंग पर्यवेक्षक उन अनुवाद रजिस्टरों के प्रबंधन के लिए भी जिम्मेदार होता है जो पेज टेबल से स्वचालित रूप से लोड नहीं होते हैं।
*यदि वर्चुअल ऐड्रेस अमान्य है, पृष्ठीकरण पर्यवेक्षक इसे त्रुटि के रूप में मानता है।
 
*यदि पृष्ठ वैध है और पृष्ठ की जानकारी एमएमयू में लोड नहीं की गई है, तो इस प्रकार पृष्ठ की जानकारी पृष्ठ पंजीकृत ों में से में संग्रहीत की जाएगी।
आमतौर पर, एक पृष्ठ दोष जिसे हल नहीं किया जा सकता है, जिसके परिणामस्वरूप आवेदन की असामान्य समाप्ति होती है। हालाँकि, कुछ प्रणालियाँ ऐसी त्रुटियों के लिए एप्लिकेशन को अपवाद हैंडलर रखने की अनुमति देती हैं। विवरण के आधार पर पेजिंग सुपरवाइजर कई अलग-अलग तरीकों से पेज फॉल्ट एक्सेप्शन को हैंडल कर सकता है:
*यदि पृष्ठ प्रारंभ नहीं किया गया है, तो नया पृष्ठ फ़्रेम निर्दिष्ट और साफ़ किया जा सकता है।
*यदि वर्चुअल पता अमान्य है, पेजिंग पर्यवेक्षक इसे एक त्रुटि के रूप में मानता है।
*यदि पृष्ठ वैध है और पृष्ठ की जानकारी MMU में लोड नहीं की गई है, तो पृष्ठ की जानकारी पृष्ठ रजिस्टरों में से एक में संग्रहीत की जाएगी।
*यदि पृष्ठ प्रारंभ नहीं किया गया है, तो एक नया पृष्ठ फ़्रेम निर्दिष्ट और साफ़ किया जा सकता है।
*यदि वांछित पृष्ठ वाला कोई चुराया हुआ पृष्ठ फ़्रेम है, तो उस पृष्ठ फ़्रेम का पुन: उपयोग किया जाएगा।
*यदि वांछित पृष्ठ वाला कोई चुराया हुआ पृष्ठ फ़्रेम है, तो उस पृष्ठ फ़्रेम का पुन: उपयोग किया जाएगा।
*एक रीड-प्रोटेक्टेड पेज में लिखने के प्रयास के कारण हुई गलती के लिए, अगर यह कॉपी-ऑन-राइट पेज है तो एक फ्री पेज फ्रेम असाइन किया जाएगा और पुराने पेज की सामग्री कॉपी की जाएगी; अन्यथा इसे एक त्रुटि के रूप में माना जाता है।
*पढ़ें-संरक्षित पृष्ठ में लिखने के प्रयास के कारण हुई गलती के लिए, यदि यह लिखने पर नकल पृष्ठ है तो मुफ्त पृष्ठ फ्रेम निर्धारण किया जाएगा और पुराने पृष्ठ की सामग्री नकल की जाएगी। अन्यथा इसे त्रुटि के रूप में माना जाता है।
*यदि मेमोरी-मैप की गई फ़ाइल या पेजिंग फ़ाइल में वर्चुअल पता एक मान्य पृष्ठ है, तो एक निःशुल्क पृष्ठ फ़्रेम निर्दिष्ट किया जाएगा और पृष्ठ पढ़ा जाएगा।
*यदि मेमोरी-मानचित्र की गई फ़ाइल पृष्ठीकरण फ़ाइल में वर्चुअल ऐड्रेस मान्य पृष्ठ है, तो निःशुल्क पृष्ठ फ़्रेम निर्दिष्ट किया जाएगा और पृष्ठ पढ़ा जाएगा।
ज्यादातर मामलों में, पृष्ठ तालिका में एक अद्यतन होगा, संभवतः अनुवाद लुकसाइड बफर (टीएलबी) को शुद्ध करने के बाद, और सिस्टम उस निर्देश को पुनरारंभ करता है जो अपवाद का कारण बनता है।
अधिकांशतः स्थितियों में पृष्ठ सूची में अद्यतन होगा। संभवतः अनुवाद अंतर्रोधी (टीएलबी) को शुद्ध करने के बाद और प्रणाली उस निर्देश को पुनरारंभ करता है जो अपवाद का कारण बनता है।


यदि फ्री पेज फ्रेम कतार खाली है तो पेजिंग सुपरवाइजर को पेज चोरी के लिए समान [[पृष्ठ प्रतिस्थापन एल्गोरिथ्म]] का उपयोग करके पेज फ्रेम को मुक्त करना होगा।
यदि मुफ्त पृष्ठ फ्रेम श्रेणी खाली है तो पृष्ठीकरण पर्यवेक्षक को पृष्ठ चोरी के लिए समान [[पृष्ठ प्रतिस्थापन एल्गोरिथ्म|पृष्ठ प्रतिस्थापन कलन विधि]] का उपयोग करके पृष्ठ फ्रेम को मुक्त करना होगा।


=== पिन किए गए पृष्ठ ===
=== पिन किए गए पृष्ठ ===
ऑपरेटिंग सिस्टम में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है (द्वितीयक स्टोरेज में कभी भी स्वैप नहीं किया जाता है)। उपयोग किए जाने वाले अन्य शब्द लॉक, फिक्स्ड या वायर्ड पेज हैं। उदाहरण के लिए, [[बाधा डालना]] मैकेनिज्म अपने हैंडलर्स के लिए पॉइंटर्स की एक सरणी पर निर्भर करता है, जैसे कि I / O पूर्णता और पेज फॉल्ट। यदि इन संकेतकों वाले पृष्ठ या उनके द्वारा आह्वान किए गए कोड पेज करने योग्य थे, तो व्यवधान-प्रबंधन कहीं अधिक जटिल और समय लेने वाला हो जाएगा, विशेष रूप से पृष्ठ दोष रुकावटों के मामले में। इसलिए, पेज टेबल स्ट्रक्चर का कुछ हिस्सा पेजेबल नहीं है।
प्रचालन प्रणाली में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है। द्वितीयक भंडारण में कभी भी परिवर्तन नहीं किया जाता है। उपयोग किए जाने वाले अन्य शब्द अवरोध, निश्चित पृष्ठ हैं। उदाहरण के लिए, [[बाधा डालना]] क्रियाविधि अपने संचालक के लिए संकेत की सरणी पर निर्भर करता है, जैसे कि आई / पूर्णता और पृष्ठ दोष। यदि इन संकेतकों वाले पृष्ठ या उनके द्वारा आह्वान किए गए कोड पृष्ठ करने योग्य थे, तो व्यवधान-प्रबंधन कहीं अधिक जटिल और समय लेने वाला हो जाएगा, विशेष रूप से पृष्ठ दोष रुकावटों के स्थितियों में है। इसलिए, पृष्ठ टेबल संरचना का कुछ भाग पृष्ठांकन योग्य नहीं है।
 
कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है, अन्य को लंबे समय के लिए पिन किया जा सकता है, और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए:
* पेजिंग सुपरवाइज़र कोड और सेकेंडरी स्टोरेज डिवाइस के ड्राइवर जिन पर पेज रहते हैं उन्हें स्थायी रूप से पिन किया जाना चाहिए, अन्यथा पेजिंग काम भी नहीं करेगी क्योंकि आवश्यक कोड उपलब्ध नहीं होगा।
* चर पेजिंग विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है।
* [[डेटा बफ़र]]्स जो सीधे परिधीय उपकरणों द्वारा एक्सेस किए जाते हैं जो [[प्रत्यक्ष मेमोरी एक्सेस]] या I/O चैनलों का उपयोग करते हैं, उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि I/O ऑपरेशन प्रगति पर है क्योंकि ऐसे डिवाइस और [[बस (कंप्यूटिंग)]] जिनसे वे जुड़े हुए हैं, उम्मीद करते हैं भौतिक स्मृति पतों पर स्थित डेटा बफ़र्स खोजें; इस बात की परवाह किए बिना कि बस में IOMMU|I/O के लिए स्मृति प्रबंधन इकाई है, पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा एक मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है।
 
सिस्टम/370 और उत्तराधिकारी सिस्टम के लिए आईबीएम के ऑपरेटिंग सिस्टम में, शब्द निश्चित है, और ऐसे पृष्ठ दीर्घकालिक निश्चित हो सकते हैं, या अल्पावधि निश्चित हो सकते हैं, या अनिर्धारित हो सकते हैं (यानी, पेजेबल)। सिस्टम नियंत्रण संरचनाएं अक्सर लंबी अवधि के लिए निर्धारित होती हैं (दीवार-घड़ी के समय में मापा जाता है, यानी, सेकंड में मापा गया समय, एक सेकंड के अंशों में मापा गया समय के बजाय) जबकि I/O बफ़र्स आमतौर पर अल्पकालिक निश्चित होते हैं (आमतौर पर महत्वपूर्ण रूप से मापा जाता है) दीवार-घड़ी के समय से कम, संभवतः दसियों मिलीसेकंड के लिए)। वास्तव में, ओएस में इन अल्पकालिक निश्चित डेटा बफ़र्स को तेजी से ठीक करने के लिए एक विशेष सुविधा है (फिक्सिंग जो समय लेने वाली [[पर्यवेक्षक कॉल निर्देश]] का सहारा लिए बिना किया जाता है)।


मल्टिक्स ने वायर्ड शब्द का इस्तेमाल किया। OpenVMS और [[Microsoft Windows]] उन पृष्ठों को संदर्भित करते हैं जिन्हें अस्थायी रूप से गैर-पेजेबल बनाया गया है (I/O बफ़र्स के लिए) लॉक के रूप में, और केवल उन पेजों के लिए नॉनपेजेबल हैं जो कभी पेजेबल नहीं होते हैं। सिंगल यूनिक्स विशिष्टता भी विनिर्देशन में लॉक किए गए शब्द का उपयोग करती है {{code|lang=c|mlock()}}, जैसा करते हैं {{code|lang=c|mlock()}} कई यूनिक्स जैसी प्रणालियों पर [[मैन पेज]]।
इस प्रकार कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है। अन्य को लंबे समय के लिए पिन किया जा सकता है और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए,
* पृष्ठीकरण पर्यवेक्षक कोड और माध्यमिक भंडारण उपकरण के संचालक जिन पर पृष्ठ रहते हैं। उन्हें स्थायी रूप से पिन किया जाना चाहिए, अन्यथा पृष्ठीकरण कार्य भी नहीं करेगी क्योंकि आवश्यक कोड उपलब्ध नहीं होगा।
* चर पृष्ठीकरण विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है।
* [[डेटा बफ़र]] जो सीधे परिधीय उपकरणों द्वाराअभिगम किए जाते हैं जो [[प्रत्यक्ष मेमोरी एक्सेस|प्रत्यक्ष मेमोरी अभिगम]] आई/ओ प्रणाली का उपयोग करते हैं। उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि आई/ओ संचालन प्रगति पर है क्योंकि ऐसे उपकरण और [[बस (कंप्यूटिंग)]] जिनसे वे जुड़े हुए हैं, आशा करते हैं भौतिक मेमोरी ऐड्रेसेज पर स्थित डेटा बफ़र्स खोजें। इस बात की देखभाल के अतिरिक्त, कि बस में आईओएमएमयू, आई/ओ के लिए मेमोरी प्रबंधन इकाई है। इस प्रकार पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है।


==== वर्चुअल-रियल ऑपरेशन ====
प्रणाली/370 और उत्तराधिकारी प्रणाली के लिए आईबीएम के प्रचालन प्रणाली में शब्द निश्चित है और ऐसे पृष्ठ दीर्घकालिक निश्चित हो सकते हैं या अल्पावधि निश्चित हो सकते हैं या अनिर्धारित हो सकते हैं। अर्थात, पृष्ठांकन योग्य प्रणाली नियंत्रण संरचनाएं अधिकांशतः लंबी अवधि के लिए निर्धारित होती हैं। दीवार-घड़ी के समय में मापा जाता है, अर्थात सेकंड में मापा गया समय सेकंड के अंशों में मापा गया समय के अतिरिक्त जबकि आई/ओ बफ़र्स सामान्यतः अल्पकालिक निश्चित होते हैं। सामान्यतः महत्वपूर्ण रूप से मापा जाता है दीवार-घड़ी के समय से कम, संभवतः दसियों मिलीसेकंड के लिए। वास्तव में, ओएस में इन अल्पकालिक निश्चित डेटा बफ़र्स को तेजी से ठीक करने के लिए विशेष सुविधा है। प्रतिष्ठापन जो समय लेने वाली [[पर्यवेक्षक कॉल निर्देश]] का सहायता के अतिरिक्त किया जाता है।
OS/VS1 और इसी तरह के OSes में, सिस्टम मेमोरी के कुछ हिस्सों को वर्चुअल-रियल मोड में प्रबंधित किया जाता है, जिसे V=R कहा जाता है। इस मोड में प्रत्येक आभासी पता उसी वास्तविक पते से मेल खाता है। इस मोड का उपयोग इंटरप्ट मैकेनिज्म के लिए, पुराने सिस्टम में पेजिंग सुपरवाइज़र और पेज टेबल के लिए, और गैर-मानक I/O प्रबंधन का उपयोग करने वाले एप्लिकेशन प्रोग्राम के लिए किया जाता है। उदाहरण के लिए, IBM के z/OS में 3 मोड हैं (वर्चुअल-वर्चुअल, वर्चुअल-रियल और वर्चुअल-फिक्स्ड)।{{cn|date=September 2022}}


मल्टिक्स ने वायर्ड शब्द का उपयोग किया। विवृत वीएमएस और माइक्रोसॉफ़्ट विंडोज़ उन पृष्ठों को संदर्भित करते हैं। जिन्हें अस्थायी रूप से अ-पृष्ठांकन योग्य बनाया गया है। आई/ओ बफ़र्स के लिए अवरोध के रूप में और केवल उन पृष्ठ के लिए नॉनपृष्ठांकन योग्य हैं जो कभी पृष्ठांकन योग्य नहीं होते हैं। एकाकी यूनिक्स विशिष्टता भी {{code|lang=c|mlock()}} द्वारा विनिर्देशन में अवरोध किए गए शब्द का उपयोग करती है, जैसे {{code|lang=c|mlock()}} कई यूनिक्स जैसी प्रणालियों पर [[मैन पेज|मुख्य पृष्ठ]] उपलब्ध हैं।


=== पिटाई ===
==== वर्चुअल-वास्तविक ऑपरेशन ====
जब पेजिंग और पेजिंग # पेज चोरी का उपयोग किया जाता है, तो थ्रैशिंग (कंप्यूटर साइंस) नामक समस्या उत्पन्न हो सकती है, जिसमें कंप्यूटर एक बैकिंग स्टोर से पृष्ठों को स्थानांतरित करने के लिए अनुपयुक्त रूप से बड़ी मात्रा में समय व्यतीत करता है, जिससे उपयोगी कार्य धीमा हो जाता है। किसी कार्य का [[कार्य का संग्रह]] उन पृष्ठों का न्यूनतम सेट होता है जो उपयोगी प्रगति करने के लिए स्मृति में होना चाहिए। थ्रैशिंग तब होती है जब सभी सक्रिय प्रोग्रामों के वर्किंग सेट को स्टोर करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं होती है। वास्तविक मेमोरी जोड़ना सबसे सरल प्रतिक्रिया है, लेकिन एप्लिकेशन डिज़ाइन, शेड्यूलिंग और मेमोरी उपयोग में सुधार करने से मदद मिल सकती है। एक अन्य समाधान सिस्टम पर सक्रिय कार्यों की संख्या को कम करना है। यह एक या एक से अधिक प्रक्रियाओं के संपूर्ण कार्य सेट की अदला-बदली करके वास्तविक मेमोरी पर मांग को कम करता है।
ओएस/वीएस1 और इसी प्रकार के ओएसईएस में प्रणाली मेमोरी के कुछ भागों को वर्चुअल-वास्तविक मोड में प्रबंधित किया जाता है, जिसे वी = आर कहा जाता है। इस मोड में प्रत्येक वर्चुअल ऐड्रेस उसी वास्तविक पते से मेल खाता है। इस प्रकार इस मोड का उपयोग अवरोध क्रियाविधि के लिए, पुराने प्रणाली में पृष्ठीकरण पर्यवेक्षक और पृष्ठ टेबल के लिए और बिना मानक आई/ओ प्रबंधन का उपयोग करने वाले आवेदन प्रोग्राम के लिए किया जाता है। उदाहरण के लिए, आईबीएम के जेड/ओएस में 3 मोड (वर्चुअल-वर्चुअल, वर्चुअल-वास्तविक और वर्चुअल-निश्चित ) हैं।
=== बीट ===
जब पृष्ठीकरण और पृष्ठीकरण पृष्ठ चोरी का उपयोग किया जाता है, तो बीट कंप्यूटर विज्ञान नामक समस्या उत्पन्न हो सकती है। जिसमें कंप्यूटर समर्थन भंडार से पृष्ठों को स्थानांतरित करने के लिए अनुपयुक्त रूप से बड़ी मात्रा में समय व्यतीत करता है, जिससे उपयोगी कार्य धीमा हो जाता है। किसी कार्य का [[कार्य का संग्रह]] उन पृष्ठों का न्यूनतम संग्रह होता है जो उपयोगी प्रगति करने के लिए मेमोरी में होना चाहिए। बीट तब होती है जब सभी सक्रिय प्रोग्रामों के कार्यरत संग्रह को भंडार करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं होती है। वास्तविक मेमोरी जोड़ना सबसे सरल प्रतिक्रिया है, किन्तु आवेदन रचना अनुसूची और मेमोरी उपयोग में सुधार करने से सहायता मिल सकती है। अन्य समाधान प्रणाली पर सक्रिय कार्यों की संख्या को कम करना है। अधिक प्रक्रियाओं के संपूर्ण कार्य संग्रह की अदला-बदली करके वास्तविक मेमोरी पर मांग को कम करता है।


एक सिस्टम थ्रैशिंग अक्सर कम संख्या में चल रहे कार्यक्रमों से पेज डिमांड में अचानक स्पाइक का परिणाम होता है। स्वैप-टोकन<ref>{{Cite journal |author= Song Jiang, and Xiaodong Zhang | title=Token-ordered LRU: an effective page replacement policy and its implementation in Linux systems |journal=Performance Evaluation |issn=0166-5316 |volume=60 |issue=1–4 |year=2005 |pages = 5–29 |doi=10.1016/j.peva.2004.10.002 | url = https://upload.wikimedia.org/wikipedia/commons/1/19/Token-ordered_LRU.pdf}}</ref> एक हल्का और गतिशील थ्रैशिंग सुरक्षा तंत्र है। मूल विचार सिस्टम में एक टोकन सेट करना है, जो बेतरतीब ढंग से उस प्रक्रिया को दिया जाता है जिसमें थ्रैशिंग होने पर पृष्ठ दोष होते हैं। जिस प्रक्रिया में टोकन होता है, उसे अपने कार्य सेट को बनाने के लिए अधिक भौतिक मेमोरी पेज आवंटित करने का विशेषाधिकार दिया जाता है, जिससे इसके निष्पादन को जल्दी से पूरा करने और अन्य प्रक्रियाओं के लिए मेमोरी पेज जारी करने की उम्मीद की जाती है। टोकन को एक-एक करके सौंपने के लिए टाइम स्टैम्प का उपयोग किया जाता है। स्वैप-टोकन का पहला संस्करण लिनक्स में लागू किया गया है [http://fxr.watson.org/fxr/source/mm/thrash.c?v=linux-2.6।] दूसरे संस्करण को प्रीमेप्ट स्वैप-टोकन कहा जाता है। ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7602bdf2fd14a40dd9b104e516fdc05e1bd17952 ।] इस अद्यतन स्वैप-टोकन कार्यान्वयन में, प्रत्येक प्रक्रिया के लिए एक प्राथमिकता काउंटर निर्धारित किया जाता है स्वैप-आउट पृष्ठों की संख्या को ट्रैक करें। टोकन हमेशा उच्च प्राथमिकता वाली प्रक्रिया को दिया जाता है, जिसमें स्वैप-आउट पृष्ठों की संख्या अधिक होती है। टाइम स्टैम्प की लंबाई स्थिर नहीं है, लेकिन प्राथमिकता द्वारा निर्धारित की जाती है: किसी प्रक्रिया के स्वैप-आउट पेजों की संख्या जितनी अधिक होगी, उसके लिए टाइम स्टैम्प उतना ही लंबा होगा।
प्रणाली बीट अधिकांशतः कम संख्या में चल रहे कार्यक्रमों से पृष्ठ अनुरोध में अचानक स्पाइक का परिणाम होता है। इस प्रकार परिवर्तन -टोकन<ref>{{Cite journal |author= Song Jiang, and Xiaodong Zhang | title=Token-ordered LRU: an effective page replacement policy and its implementation in Linux systems |journal=Performance Evaluation |issn=0166-5316 |volume=60 |issue=1–4 |year=2005 |pages = 5–29 |doi=10.1016/j.peva.2004.10.002 | url = https://upload.wikimedia.org/wikipedia/commons/1/19/Token-ordered_LRU.pdf}}</ref> हल्का और गतिशील बीट सुरक्षा तंत्र है। मूल विचार प्रणाली में टोकन संग्रह करना है, जो बेतरतीब ढंग से उस प्रक्रिया को दिया जाता है जिसमें बीट होने पर पृष्ठ दोष होते हैं। जिस प्रक्रिया में टोकन होता है, उसे अपने कार्य संग्रह को बनाने के लिए अधिक भौतिक मेमोरी पृष्ठ आवंटित करने का विशेषाधिकार दिया जाता है, जिससे इसके निष्पादन को जल्दी से पूरा करने और अन्य प्रक्रियाओं के लिए मेमोरी पृष्ठ जारी करने की आशा की जाती है। इस प्रकार टोकन को - करके सौंपने के लिए समय की मोहर का उपयोग किया जाता है। परिवर्तन -टोकन का पहला संस्करण लिनक्स में लागू किया गया है [http://fxr.watson.org/fxr/source/mm/thrash.c?v=linux-2.6।] दूसरे संस्करण की जगह ले लेना परिवर्तन -टोकन कहा जाता है। इस अद्यतन परिवर्तन -टोकन कार्यान्वयन में प्रत्येक प्रक्रिया के लिए प्राथमिकता काउंटर निर्धारित किया जाता है परिवर्तन -आउट पृष्ठों की संख्या को ऐड्रेस करें। टोकन सदैव उच्च प्राथमिकता वाली प्रक्रिया को दिया जाता है, जिसमें परिवर्तन -आउट पृष्ठों की संख्या अधिक होती है। समय की मोहर की लंबाई स्थिर नहीं है, किन्तु प्राथमिकता द्वारा निर्धारित की जाती है। इस प्रकार किसी प्रक्रिया के परिवर्तन -आउट पृष्ठ की संख्या जितनी अधिक होगी, उसके लिए समय की मोहर उतना ही लंबा होगा।


== खंडित वर्चुअल मेमोरी ==
== खंडित वर्चुअल मेमोरी ==
कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन 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>
कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन बी5500,<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 वर्चुअलाइजेशन|एक्स86 वर्चुअलकरण]] समाधान संयुक्त पृष्ठन और विभाजन क्योंकि एक्स86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि वीएमएम, अतिथि ओएस अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।<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}} पृष्ठीकरण और विभाजन प्रणाली के बीच का अंतर केवल मेमोरी विभाजन के बारे में नहीं है। मेमोरी प्रतिरूप शब्दार्थ के भाग के रूप में विभाजन उपयोगकर्ता प्रक्रियाओं के लिए दृश्यमान है। इसलिए, बड़ी जगह की प्रकार दिखने वाली मेमोरी के अतिरिक्त, इसे कई जगहों में संरचित किया जाता है।
Intel 80386 और बाद में [[IA-32]] प्रोसेसर में, खंड [[32-बिट]] रैखिक, पृष्ठांकित पता स्थान में रहते हैं। खंडों को उस स्थान के अंदर और बाहर ले जाया जा सकता है; वहाँ के पृष्ठ मुख्य मेमोरी के अंदर और बाहर पेज कर सकते हैं, वर्चुअल मेमोरी के दो स्तर प्रदान करते हैं; यदि कोई ऑपरेटिंग सिस्टम ऐसा करता है, तो केवल पेजिंग का उपयोग करके। प्रारंभिक गैर-हार्डवेयर-सहायता प्राप्त [[x86 वर्चुअलाइजेशन]] समाधान संयुक्त पृष्ठन और विभाजन क्योंकि x86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि एक VMM, अतिथि OS या अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।<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
|first1=André|last2=Clingen|first2=CharlesT.|last3=Daley|first3=Robert C.|date=May 1972|title=The Multics Virtual Memory: Concepts and Design|journal=Communications of the ACM|volume=15|issue=5|pages=308–318|url=http://www.multicians.org/multics-vm.html|doi=10.1145/355602.361306|citeseerx=10.1.1.10.6731|s2cid=6434322}}</ref>
यह [[mmap]] और [[Win32]] के MapViewOfFile जैसे कॉल द्वारा प्रदान किए गए तंत्र के समान नहीं है, क्योंकि अर्ध-मनमानी स्थानों में फ़ाइलों को मैप करते समय इंटर-फाइल पॉइंटर्स काम नहीं करते हैं। मल्टिक्स में, एक फ़ाइल (या एक बहु-खंड फ़ाइल से एक खंड) को पता स्थान में एक खंड में मैप किया जाता है, इसलिए फ़ाइलों को हमेशा एक खंड सीमा पर मैप किया जाता है। एक फाइल के लिंकेज सेक्शन में पॉइंटर्स हो सकते हैं जिसके लिए पॉइंटर को एक रजिस्टर में लोड करने या इसके माध्यम से एक अप्रत्यक्ष संदर्भ बनाने का प्रयास एक जाल का कारण बनता है। अनसुलझे पॉइंटर में उस सेगमेंट के नाम का संकेत होता है जिसे पॉइंटर संदर्भित करता है और सेगमेंट के भीतर ऑफ़सेट होता है; ट्रैप के लिए हैंडलर सेगमेंट को एड्रेस स्पेस में मैप करता है, सेगमेंट नंबर को पॉइंटर में डालता है, पॉइंटर में टैग फील्ड को बदलता है ताकि यह अब ट्रैप का कारण न बने, और उस कोड पर वापस आ जाए जहां ट्रैप हुआ, फिर से निष्पादित निर्देश जो जाल का कारण बना।<ref>{{cite web |title=Multics Execution Environment |url=http://www.multicians.org/exec-env.html |website=Multicians.org |access-date=9 October 2016}}</ref> यह एक [[लिंकर (कंप्यूटिंग)]] की आवश्यकता को पूरी तरह समाप्त कर देता है<ref name="denning" />और काम करता है जब विभिन्न प्रक्रियाएं एक ही फाइल को उनके निजी पता स्थानों में अलग-अलग स्थानों पर मैप करती हैं।<ref>{{Cite book|first=Elliott I.|last=Organick|title=The Multics System: An Examination of Its Structure|publisher=MIT Press|year=1972|isbn=978-0-262-15012-5|url-access=registration|url=https://archive.org/details/multicssystemex00orga}}</ref>
 


== एड्रेस स्पेस स्वैपिंग ==
इस अंतर के महत्वपूर्ण परिणाम हैं। खंड परिवर्तनशील लंबाई वाला पृष्ठ या ऐड्रेसेज को लंबा करने का सरल विधि नहीं है। विभाजन जो ल-स्तरीय मेमोरी प्रतिरूप प्रदान कर सकता है जिसमें प्रक्रिया मेमोरी और फाइल प्रणाली के बीच कोई अंतर नहीं होता है, केवल प्रक्रिया के संभावित ऐड्रेसेज में मानचित्र किए गए खंड फाइल की सूची होती है।<ref>{{Cite journal|last1=Bensoussan
पेजिंग और सेगमेंटेशन के लिए उनके पास जो भी सुविधाएं हैं, उसके अलावा कुछ ऑपरेटिंग सिस्टम पूरे एड्रेस स्पेस की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो OS उन पेजों और सेगमेंट को वर्तमान में फाइलों को स्वैप करने के लिए वास्तविक मेमोरी में लिखता है। स्वैप-इन में, OS स्वैप फ़ाइलों से डेटा वापस पढ़ता है लेकिन स्वैप आउट ऑपरेशन के समय पेज आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है।
|first1=André|last2=Clingen|first2=CharlesT.|last3=Daley|first3=Robert C.|date=May 1972|title=The Multics Virtual Memory: Concepts and Design|journal=Communications of the ACM|volume=15|issue=5|pages=308–318|url=http://www.multicians.org/multics-vm.html|doi=10.1145/355602.361306|citeseerx=10.1.1.10.6731|s2cid=6434322}}</ref> यह [[mmap|एमएमएपी]] और [[Win32|डब्ल्यूआईएन32]] के मानचित्र फ़ाइल का दृश्य जैसे कॉल द्वारा प्रदान किए गए तंत्र के समान नहीं है, क्योंकि स्वयं से इसके स्थानों में फ़ाइलों को मानचित्र करते समय आंतरिक फाइल्स के संकेत के रूप में कार्य नहीं करते हैं। इस प्रकार मल्टिक्स में फ़ाइल या बहु-खंड फ़ाइल से खंड को ऐड्रेसेज में खंड में मानचित्र किया जाता है, इसलिए फ़ाइलों को सदैव खंड सीमा पर मानचित्र किया जाता है। फाइल के लिंकेज खंड में संकेत हो सकते हैं जिसके लिए सूचक को पंजीकृत में लोड करने या इसके माध्यम से अप्रत्यक्ष संदर्भ बनाने का प्रयास जाल का कारण बनता है। इस प्रकार संदिग्ध सूचक में इन खंडों के नाम का संकेत होता है जो सूचक द्वारा संदर्भित किया जाता है और खंड के भीतर समायोजन होता है। ट्रैप के लिए संचालक खंड को ऐड्रेसेज में मानचित्र करता है, खंड नंबर को सूचक में डालता है। इस प्रकार सूचक में टैग क्षेत्र को बदलता है जिससे कि यह अब ट्रैप का कारण न बने और उस कोड पर वापस आ जाए जहां ट्रैप हुआ, फिर से निष्पादित निर्देश जो जाल का कारण बना।<ref>{{cite web |title=Multics Execution Environment |url=http://www.multicians.org/exec-env.html |website=Multicians.org |access-date=9 October 2016}}</ref> यह [[लिंकर (कंप्यूटिंग)]] की आवश्यकता को पूरी प्रकार समाप्त कर देता है<ref name="denning" /> और यह इस प्रकार कार्य करता है जब विभिन्न प्रक्रियाएं ही फाइल को उनके निजी ऐड्रेसेजों में अलग-अलग स्थानों पर मानचित्र करती हैं।<ref>{{Cite book|first=Elliott I.|last=Organick|title=The Multics System: An Examination of Its Structure|publisher=MIT Press|year=1972|isbn=978-0-262-15012-5|url-access=registration|url=https://archive.org/details/multicssystemex00orga}}</ref>
== स्थानीय पते का परिर्वतन ==
पृष्ठीकरण और विभाजन के लिए उनके पास जो भी सुविधाएं हैं, उसके अतिरिक्त कुछ प्रचालन प्रणाली पूरे ऐड्रेसेज की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो ओएस उन पृष्ठ और खंड को वर्तमान में फाइलों को परिवर्तन करने के लिए वास्तविक मेमोरी में लिखता है। यह परिवर्तन इन ओएस परिवर्तन फ़ाइलों से डेटा वापस पढ़ता है किन्तु परिवर्तन आउट संचालन के समय पृष्ठ आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है।


IBM का [[MVS]], OS/360 से और उत्तराधिकारी#OS/VS2 SVS और MVS|OS/VS2 रिलीज़ 2 z/OS के माध्यम से, एक पता स्थान को अस्वच्छ के रूप में चिह्नित करने के लिए प्रदान करता है; ऐसा करने से पता स्थान में कोई पृष्ठ पिन नहीं होता है। यह एक पात्र के नाम को दर्ज करके नौकरी की अवधि के लिए किया जा सकता है<ref>The most important requirement is that the program be APF authorized.</ref> प्रोग्राम गुण तालिका में मुख्य कार्यक्रम एक अपरिवर्तनीय ध्वज के साथ। इसके अलावा, विशेषाधिकार प्राप्त कोड एक SYSEVENT पर्यवेक्षक कॉल निर्देश (SVC) का उपयोग करके अस्थायी रूप से पता स्थान को अदला-बदली करने योग्य बना सकता है; कुछ परिवर्तन<ref>e.g., requesting use of preferred memory</ref> पता स्थान गुणों में यह आवश्यक है कि ओएस इसे स्वैप करें और फिर इसे SYSEVENT TRANSWAP का उपयोग करके वापस स्वैप करें।<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>
आईबीएम का [[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> इस प्रकार परिवर्तन के लिए मेमोरी प्रबंधन हार्डवेयर की आवश्यकता नहीं है उदाहरण के लिए, भंडारण के ही क्षेत्र में और बाहर कई नौकरियों का परिवर्तन किया जाता है।
स्वैपिंग के लिए स्मृति प्रबंधन हार्डवेयर की आवश्यकता नहीं है, उदाहरण के लिए, भंडारण के एक ही क्षेत्र में और बाहर कई नौकरियों की अदला-बदली की जाती है।


== यह भी देखें ==
== यह भी देखें ==
{{cmn|colwidth=30em|
{{cmn|colwidth=30 ई.एम|* [[प्रोसेसर डिजाइन]]
* [[Processor design]]
* [[पेज (कंप्यूटर मेमोरी)]]
* [[Page (computer memory)]]
* [[कैश प्रतिस्थापन नीतियां]]
* [[Cache replacement policies]]
* [[स्मृति प्रबंधन]]
* [[Memory management]]
* [[मेमोरी मैनेजमेंट (ऑपरेटिंग सिस्टम)]]
* [[Memory management (operating systems)]]
* [[संरक्षित मोड]], एक [[एक्स86]] मोड जो वर्चुअल मेमोरी की अनुमति देता है।
* [[Protected mode]], an [[x86]] mode that allows for virtual memory.
* [[सीयूडीए| सीयूडीए पिन की गई स्मृति]]
* [[CUDA|CUDA Pinned memory]]
* [[विषम प्रणाली वास्तुकला]], रैम और ग्राफिक की कार्ड मेमोरी को एकीकृत करने के उद्देश्य से विशिष्टताओं की एक श्रृंखला
* [[Heterogeneous System Architecture]], a series of specifications intended to unify RAM and Graphic's card memory
* [[स्टोरेज वर्चुअलाइजेशन]]}}
* [[Storage virtualization]]
}}




Line 173: Line 142:


==अग्रिम पठन==
==अग्रिम पठन==
* Hennessy, John L.; and Patterson, David A.; ''Computer Architecture, A Quantitative Approach'' ({{ISBN|1-55860-724-2}})
* Hennईएसएस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}})




==बाहरी संबंध==
==बाहरी संबंध==
{{wikisource|The Paging Game}}
{{wikisource|The Paging Game}}
* [http://pages.cs.wisc.edu/~remzi/OSTEP Operating Systems: Three Easy Pieces], by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Arpaci-Dusseau Books, 2014. Relevant chapters: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Address Spaces] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Address Translation] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf Segmentation] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf Introduction to Paging] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLBs] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-smalltables.pdf Advanced Page Tables] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf Swapping: Mechanisms] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf Swapping: Policies]
* [http://pages.cs.wisc.edu/~remzi/OSTEP ओperatआईng प्रणाली एस: Three Eaएसy Pआईecईएस], बीy Remजेडआई H. Arpacआई-Duएसएसeau and Andrea C. Arpacआई-Duएसएसeau. Arpacआई-Duएसएसeau बीओओkएस, 2014. Relevant chapterएस: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Addrईएसएस एसpacईएस] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Addrईएसएस Tranएसlatआईओn] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf एसegmentatआईओn] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf आईntrओductआईओn tओ Pagआईng] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLबीएस] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-smalltables.pdf Advanced Paजीई Taबीlईएस] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf एसwappआईng: Mechanआईएसmएस] [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf एसwappआईng: Pओlआईcआईईएस]
* [http://archive.michigan-terminal-system.org/documentation/documents/timeSharingSupervisorPrograms-1971.pdf "Time-Sharing Supervisor Programs"] by Michael T. Alexander in ''Advanced Topics in Systems Programming'', University of Michigan Engineering Summer Conference 1970 (revised May 1971), compares the scheduling and resource allocation approaches, including virtual memory and paging, used in four mainframe operating systems: [[CP-67]], [[TSS/360]], [[Michigan Terminal System|MTS]], and [[Multics]].  
* [http://archive.michigan-terminal-system.org/documentation/documents/timeSharingSupervisorPrograms-1971.pdf "Tआईme-एसharआईng एसupervआईएसओr Prओgramएस"] बीy 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ओmparईएस the एसchedulआईng and rईएसओurce allओcatआईओn apprओachईएस, आईncludआईng vआईrtual memओry and pagआईng, uएसed आईn fओur maआईnframe ओperatआईng प्रणाली एस: [[CP-67|सीपी-67]], [[TSS/360|टीएसएस/360]], [[Michigan Terminal System|MTएस]], and [[Multics|Multआईcएस]].  
* [http://linux-mm.org/ LinuxMM: Linux Memory Management].
* [http://linux-mm.org/ Lआईnuएक्सMM: Lआईnuएक्स Memओry Manaजीईment].
* [https://gnulinuxclub.org/birth-of-linux-kernel/ Birth of Linux Kernel], mailing list discussion.
* [https://gnulinuxclub.org/birth-of-linux-kernel/ बीआईrth ओf Lआईnuएक्स Kernel], maआईlआईng lआईएसt dआईएसcuएसएसआईओn.
* {{webarchive |url=https://web.archive.org/web/20100622062522/http://msdn2.microsoft.com/en-us/library/ms810616.aspx |date=22 June 2010 |title=The Virtual-Memory Manager in Windows NT, Randy Kath, Microsoft Developer Network Technology Group, 12 December 1992 }}
* {{webarchive |url=https://web.archive.org/web/20100622062522/http://msdn2.microsoft.com/en-us/library/ms810616.aspx |date=22 June 2010 |title=The Virtual-Memory Manager in Windows NT, Randy Kath, Microsoft Developer Network Technology Group, 12 December 1992 }}


{{Memory management navbox}}
[[Category:Articles with hatnote templates targeting a nonexistent page|Virtual Memory]]
 
[[Category:CS1 Deutsch-language sources (de)]]
{{Authority control}}
[[Category:CS1 English-language sources (en)]]
 
[[Category:CS1 maint]]
{{DEFAULTSORT:Virtual Memory}}[[Category: वर्चुअल मेमोरी| वर्चुअल मेमोरी]] [[Category: कंप्यूटर विज्ञान विभाग, मैनचेस्टर विश्वविद्यालय]]  
[[Category:Collapse templates|Virtual Memory]]
 
[[Category:Created On 17/02/2023|Virtual Memory]]
 
[[Category:Lua-based templates]]
 
[[Category:Machine Translated Page|Virtual Memory]]
[[Category: Machine Translated Page]]
[[Category:Multi-column templates]]
[[Category:Created On 17/02/2023]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Virtual Memory]]
[[Category:Pages using div col with small parameter]]
[[Category:Pages with script errors|Virtual Memory]]
[[Category:Sidebars with styles needing conversion|Virtual Memory]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates using TemplateData]]
[[Category:Templates using under-protected Lua modules]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia fully protected templates|Div col]]

Latest revision as of 12:41, 14 March 2023

वर्चुअल मेमोरी प्रत्यक्ष-अभिगम भंडारण उपकरण पर सक्रिय रैंडम अभिगम मेमोरी और निष्क्रिय मेमोरी को जोड़ती है[lower-alpha 1] सन्निहित ऐड्रेसेज की बड़ी श्रृंखला बनाने के लिए।

कंप्यूटर में वर्चुअल मेमोरी, [lower-alpha 2] मेमोरी प्रबंधन प्रचालन प्रणाली प्रविधि है। जो भंडारण संसाधनों का "आदर्शीकृत अमूर्तता" प्रदान करती है, जो वास्तव में दिए गए मशीन पर उपलब्ध हैं,[3] जो बहुत बड़ी मुख्य मेमोरी के उपयोगकर्ताओं के लिए भ्रम उत्पन्न करता है।[4]

कंप्यूटर की प्रचालन प्रणाली, हार्डवेयर और सॉफ्टवेयर के संयोजन का उपयोग करके वर्चुअल ऐड्रेसेज नामक प्रोग्राम द्वारा उपयोग किए जाने वाले मेमोरी ऐड्रेसेज को कंप्यूटर मेमोरी विभाजन भौतिक ऐड्रेसेज में मानचित्र करता है। इस प्रकार मुख्य भंडारण प्राथमिक भंडारण जैसा कि प्रक्रिया द्वारा देखा जाता है, सन्निहित ऐड्रेसेज मेमोरी विभाजन के संग्रह के रूप में प्रकट होता है। प्रचालन प्रणाली वर्चुअल ऐड्रेसेज और वर्चुअल मेमोरी को वास्तविक मेमोरी के कार्यभार का प्रबंधन करता है।[5] सीपीयू में ऐड्रेस अनुवाद हार्डवेयर, जिसे अधिकांशतः मेमोरी प्रबंधन इकाई (एमएमयू) के रूप में संदर्भित किया जाता है। इस प्रकार स्वचालित रूप से वर्चुअल ऐड्रेस को भौतिक ऐड्रेस में अनुवाद करता है। प्रचालन प्रणाली के भीतर सॉफ़्टवेयर इन क्षमताओं का उपयोग कर सकता है। इस प्रकार उदाहरण के लिए, डिस्क भंडारण, वर्चुअल ऐड्रेसेज प्रदान करने के लिए जो वास्तविक मेमोरी की क्षमता से अधिक हो सकता है और इस प्रकार कंप्यूटर में भौतिक रूप से उपस्तिथ मेमोरी से अधिक मेमोरी का संदर्भ देता है।

वर्चुअल मेमोरी के प्राथमिक लाभों में अनुप्रयोगों को सहभाजीत मेमोरी स्थान को प्रबंधित करने से मुक्त करना है। इस प्रकार प्रक्रियाओं के बीच पुस्तकालय (कंप्यूटर) द्वारा उपयोग की जाने वाली मेमोरी को सहभाजीत करने की क्षमता मेमोरी एकांत के कारण बढ़ी हुई सुरक्षा और इस प्रकार शारीरिक रूप से अधिक मेमोरी का वैचारिक रूप से उपयोग करने में सक्षम होना सम्मलित है। पृष्ठीकरण विभाजन की प्रविधि का उपयोग करके उपलब्ध किया गया है।

गुण

वर्चुअल मेमोरी भौतिक मेमोरी के विखंडन (कंप्यूटर) को छिपाकर आवेदन प्रोग्रामिंग को आसान बनाती है। कंप्यूटर डेटा भंडारण कर्नेल के लिए के पदानुक्रम के प्रबंधन का बोझ सौंपकर उपरिशायी (प्रोग्रामिंग) को स्पष्ट रूप से संभालने के लिए कार्यक्रम की आवश्यकता को समाप्त करना है। इस प्रकार जब प्रत्येक प्रक्रिया को स्वयं के समर्पित ऐड्रेसेज में चलाया जाता है और आवश्यकता से छुटकारा पाने के लिए कंप्यूटर विज्ञान प्रोग्राम कोड पीसी-संबंध-सूचक के साथ मेमोरी तक पहुंचने के लिए है।

मेमोरी वर्चुअलकरण को वर्चुअल मेमोरी की अवधारणा का सामान्यीकरण माना जा सकता है।

उपयोग

वर्चुअल मेमोरी आधुनिक कंप्यूटर संरचना का अभिन्न अंग है। कार्यान्वयन के लिए सामान्यतः हार्डवेयर समर्थन की आवश्यकता होती है। सामान्यतः केंद्रीय प्रसंस्करण इकाई में निर्मित मेमोरी प्रबंधन इकाई के रूप में आवश्यक नहीं है, जबकि एमुलेटर और वर्चुअल मशीन अपने वर्चुअल मेमोरी कार्यान्वयन के प्रदर्शन को बढ़ाने के लिए हार्डवेयर समर्थन को नियोजित कर सकते हैं।[6] इस प्रकार पुराने प्रचालन प्रणाली, जैसे कि 1960 के दशक के मेनफ़्रेम कंप्यूटर के लिए और 1980 के दशक के मध्य तक के व्यक्तिगत कंप्यूटर के लिए जैसे, डॉस,[7] सामान्यतः कोई वर्चुअल मेमोरी कार्यक्षमता नहीं होती है, चूंकि 1960 के मेनफ्रेम के उल्लेखनीय अपवादों में सम्मलित हैं।

1960 और 70 के दशक की प्रारंभ में कंप्यूटर मेमोरी बहुत महंगी थी। वर्चुअल मेमोरी की प्रारंभ ने कम वास्तविक मेमोरी वाले कंप्यूटरों पर चलने के लिए बड़ी मेमोरी अनुरोध वाले सॉफ़्टवेयर प्रणाली की क्षमता प्रदान की गई थी। इस प्रकार इससे होने वाली बचत ने सभी प्रणालियों के लिए वर्चुअल मेमोरी पर स्विच करने के लिए ठोस प्रोत्साहन प्रदान किया था। इस प्रकार वर्चुअल ऐड्रेसेज प्रदान करने की अतिरिक्त क्षमता सुरक्षा और विश्वसनीयता का स्तर जोड़ा गया था और इस प्रकार वर्चुअल मेमोरी को बाज़ार के लिए और भी आकर्षक बना दिया गया हैं।

वर्चुअल मेमोरी का समर्थन करने वाले अधिकांश आधुनिक प्रचालन प्रणाली भी प्रत्येक प्रक्रिया (कंप्यूटिंग) को स्वयं के समर्पित ऐड्रेसेज में चलाते हैं। इस प्रकार प्रत्येक प्रोग्राम को वर्चुअल मेमोरी तक मात्र पहुंच दिखाई देती है। चूँकि, कुछ पुराने प्रचालन प्रणाली जैसे ओएस/वीएस1 और ओएस/वीएस2 (एसवीएस)|ओएस/वीएस2 एसवीएस) और यहां तक ​​कि आधुनिक वाले जैसे आईबीएम आई एकाकी ऐड्रेसेज प्रचालन प्रणाली हैं जो सभी प्रक्रियाओं को ही ऐड्रेसेज में चलाते हैं। वर्चुअल मेमोरी से बना है।

अंतः स्थापित प्रणाली और अन्य विशेष-उद्देश्य वाले कंप्यूटर प्रणाली जिन्हें बहुत तेज़ और बहुत सुसंगत प्रतिक्रिया समय की आवश्यकता होती है। इस प्रकार नियतात्मक कलन विधि में कमी के कारण वर्चुअल मेमोरी का उपयोग नहीं करने का विकल्प चुन सकते हैं। वर्चुअल मेमोरी प्रणाली अप्रत्याशित ट्रैप (कंप्यूटर) को ट्रिगर करता है जो इनपुट के उत्तर में अवांछित और अप्रत्याशित देरी उत्पन्न कर सकता है, इस प्रकार विशेष करके यदि ट्रैप के लिए आवश्यक है कि डेटा को माध्यमिक मेमोरी से मुख्य मेमोरी में पढ़ा जाए। वर्चुअल ऐड्रेसेज को भौतिक ऐड्रेसेज में अनुवाद करने के लिए हार्डवेयर को सामान्यतः लागू करने के लिए महत्वपूर्ण चिप क्षेत्र की आवश्यकता होती है। इस प्रकार अंतः स्थापित प्रणाली में उपयोग किए जाने वाले सभी चिप्स में वह हार्डवेयर सम्मलित नहीं होता है, जो कारण और है कि उनमें से कुछ प्रणाली वर्चुअल मेमोरी का उपयोग नहीं करते हैं।

इतिहास

1950 के दशक में, सभी बड़े कार्यक्रमों में उपरिशायी (प्रोग्रामिंग) जैसे प्राथमिक और द्वितीयक भंडारण के प्रबंधन के लिए तर्क सम्मलित थे। इसलिए वर्चुअल मेमोरी को न केवल प्राथमिक मेमोरी का विस्तार करने के लिए प्रस्तुत किया गया था, जबकि प्रोग्रामर के उपयोग के लिए इस प्रकार के विस्तार को यथासंभव आसान बनाने के लिए भी प्रस्तुत किया गया था।[8] बहु क्रमादेशन और कंप्यूटर बहु कार्यण की अनुमति देने के लिए, कई प्रारंभ प्रणाली ने वर्चुअल मेमोरी के अतिरिक्त कई प्रोग्रामों के बीच मेमोरी को विभाजित किया, जैसे प्रक्रमक पंजीकृत के माध्यम से पीडीपी-10 -10 के प्रारंभ प्रतिरूप हैं।

यह प्रमाणित है कि वर्चुअल मेमोरी की अवधारणा पहली बार जर्मन भौतिक विज्ञानी फ्रिट्ज-रुडोल्फ गुंटश द्वारा 1956 में टेक्नीश विश्वविद्यालय बर्लिन में अपने डॉक्टरेट थीसिस, एकाधिक अतुल्यकालिक घूर्णन ड्रम और स्वचालित उच्च गति मेमोरी संचालन के साथ डिजिटल कंप्यूटर के तर्कसंगत अभिकल्प में विकसित की गई थी।[9][10] इस प्रकार इसकी सावधानीपूर्वक जांच करने के लिए खड़ा नहीं होता है। गुंटश द्वारा प्रस्तावित कंप्यूटर किन्तु कभी नहीं बनाया गया जिसका ऐड्रेसेज 105 था शब्द जो बिल्कुल 105 पर मानचित्र किए गए थे तथा इस ड्रम के शब्द, अर्थात पते वास्तविक पते थे और इस प्रकार अप्रत्यक्ष मानचित्रण का कोई रूप नहीं था, वर्चुअल मेमोरी की प्रमुख विशेषता। गुंटश ने जो आविष्कार किया वह कैश मैमोरी का रूप था, क्योंकि उसकी उच्च गति मेमोरी का उद्देश्य कोड के कुछ खंड या ड्रम से लिए गए डेटा की प्रति सम्मलित करना था। वास्तव में, उन्होंने लिखा जैसा कि अनुवाद में उद्धृत किया गया है।[11] प्रोग्रामर को प्राथमिक मेमोरी के अस्तित्व का सम्मान करने की आवश्यकता नहीं है। उसे यह जानने की भी आवश्यकता नहीं है कि यह उपस्तिथ है, क्योंकि केवल प्रकार के पते (एसआईसी) होते हैं जिनके द्वारा कोई प्रोग्राम कर सकता है जैसे कि केवल ही भंडारण हो सकते हैं। इस प्रकार कैश मेमोरी वाले कंप्यूटरों में ठीक यही स्थिति है, जिसका प्रारंभ व्यावसायिक उदाहरण आईबीएम प्रणाली/360 प्रतिरूप 85 था।[12] प्रतिरूप 85 में सभी पते वास्तविक पते थे जो मुख्य कोर भंडार का उल्लेख करते थे। अर्धचालक कैश भंडार, उपयोगकर्ता के लिए अदृश्य, वर्तमान में निष्पादित प्रोग्राम द्वारा उपयोग में मुख्य भंडार के कुछ भागों की सामग्री रखता है। इस प्रकार यह मल्टी-प्रोग्रामिंग में सम्मलित समस्याओं को हल करने के अतिरिक्त प्रदर्शन को श्रेष्ठतर बनाने के साधन के रूप में रचना किए गए गुंटश के प्रणाली के समान है।

मैनचेस्टर विश्वविद्यालय एटलस कंप्यूटर पहला कंप्यूटर था जिसमें वास्तविक वर्चुअल मेमोरी की सुविधा थी।

पहला सत्य वर्चुअल मेमोरी प्रणाली मैनचेस्टर विश्वविद्यालय में -स्तरीय भंडारण प्रणाली बनाने के लिए लागू किया गया था। [13] एटलस कंप्यूटर के भागों के रूप में। इसने प्रोग्रामर के लिए उपलब्ध वर्चुअल ऐड्रेसेज को वास्तविक मेमोरी पर मानचित्र करने के लिए पृष्ठीकरण तंत्र का उपयोग किया। जिसमें माध्यमिक ड्रम मेमोरी के अतिरिक्त 98,304 शब्दों के साथ प्राथमिक चुंबकीय-कोर मेमोरी के 16,384 शब्द सम्मलित थे।[14] एटलस में वर्चुअल मेमोरी को सम्मलित करने से उभरती हुई प्रोग्रामिंग समस्या भी समाप्त हो गई थी। इस प्रकार मुख्य मेमोरी के आकार के प्रत्येक परिवर्तन के लिए मुख्य और द्वितीयक मेमोरी और कंपाइल प्रोग्राम के बीच डेटा स्थानांतरण की योजना बनाना और अनुसूची करना भी हैं।[15] इस प्रकार पहला एटलस 1962 में आयोग किया गया था, किन्तु पृष्ठीकरण के कार्यशील प्रोटोटाइप को 1959 तक विकसित कर लिया गया था।[8]: 2 [16][17] 1961 में, बरोज़ कॉर्पोरेशन ने स्वतंत्र रूप से पृष्ठीकरण के अतिरिक्त विभाजन (मेमोरी) के साथ वर्चुअल मेमोरी, बी5000 के साथ पहला व्यावसायिक कंप्यूटर जारी किया था।[18][19]

आईबीएम विकसित उनके आईबीएम सीपी-40 और सीपी-67 में सूत्र की अवधारणा और 1972 में इसे आईबीएम प्रणाली /370|एस/370 के लिए वर्चुअल मशीन सुविधा/370 के रूप में प्रदान किया।[20] आईबीएम ने 3081 पर 370- के भागों के रूप में व्याख्या करना प्रारंभ कर कार्यान्वयन (एसआईई) निर्देश और इसका फायदा उठाने के लिए वीएम प्रचालन प्रणाली के वीएम/पराक्रम संस्करण प्रस्तुत किए गए हैं।

मुख्यधारा प्रचालन प्रणाली में वर्चुअल मेमोरी को लागू करने से पहले, कई समस्याओं का समाधान किया जाना था। गत्यात्मक ऐड्रेस अनुवाद के लिए महंगे और कठिनाई से बनने वाले विशेष हार्डवेयर की आवश्यकता होती है। प्रारंभिक कार्यान्वयन ने मेमोरी तक पहुंच को थोड़ा धीमा कर दिया।[8]इस बात को लेकर चिंताएं थीं कि द्वितीयक भंडारण का उपयोग करने वाले नए प्रणाली विस्तृत कलन विधि पहले उपयोग किए गए आवेदन-विशिष्ट कलन विधि की तुलना में कम प्रभावी होंगे। 1969 तक, व्यावसायिक कंप्यूटरों के लिए वर्चुअल मेमोरी पर बहस समाप्त हो गई थी।[8]डेविड सायरे के नेतृत्व में आईबीएम की शोध टीम ने दिखाया कि उनकी वर्चुअल मेमोरी उपरिशायी प्रणाली ने सर्वश्रेष्ठ नियमावली रूप से नियंत्रित प्रणालियों की तुलना में लगातार श्रेष्ठतर कार्य किया।[21] इस प्रकार 1970 के दशक के पर्यन्त, आईबीएम 370 श्रृंखला ने अपने वर्चुअल-भंडारण आधारित प्रचालन प्रणाली को चलाने के लिए व्यापार उपयोगकर्ताओं को कई पुराने प्रणाली को कम, अधिक शक्तिशाली, मेनफ्रेम में माइग्रेट करने का साधन प्रदान किया, जिसने मूल्य प्रदर्शन में सुधार किया था। वर्चुअल मेमोरी प्रस्तुत करने वाला पहला मिनी कंप्यूटर नॉर्वेजियन नॉर्ड-1 था। 1970 के दशक के पर्यन्त, अन्य मिनी कंप्यूटर ने वर्चुअल मेमोरी लागू की, विशेष रूप से विवृत वीएमएस चलाने वाले वैक्स प्रतिरूप है।

इंटेल 80286 प्रक्रमक के संरक्षित मोड के साथ वर्चुअल मेमोरी को एक्स86 संरचना में प्रस्तुत किया गया था, किन्तु इसकी खंड अदला-बदली प्रविधि को बड़े खंड आकार में खराब कर दिया गया हैं। इंटेल 80386 ने उपस्तिथा विभाजन (मेमोरी) स्तर के नीचे पृष्ठीकरण समर्थन प्रस्तुत किया था। जिससे पृष्ठ दोष अपवाद को अतिरिक्त किसी दोहरा दोष के अन्य अपवादों के साथ श्रृंखला में सक्षम किया गया हैं। चूंकि, खंड डिस्क्रिप्टर लोड करना महंगा संचालन था, जिससे प्रचालन प्रणाली रचनार पृष्ठीकरण और विभाजन के संयोजन के अतिरिक्त पृष्ठीकरण पर कठोरता से विश्वास करते थे।

पृष्ठांकित वर्चुअल मेमोरी

वर्चुअल मेमोरी के लगभग सभी उपस्तिथा कार्यान्वयन वर्चुअल ऐड्रेसेज को पृष्ठ (कंप्यूटर मेमोरी) में विभाजित करते हैं। सन्निहित वर्चुअल मेमोरी ऐड्रेस के खंड समसामयिक पर पृष्ठ प्रणाली सामान्यतः आकार में कम से कम 4 किलोबाइट होते हैं। बड़े वर्चुअल ऐड्रेस श्रेणी या वास्तविक मेमोरी की मात्रा वाले प्रणाली सामान्यतः बड़े पृष्ठ आकार का उपयोग करते हैं।[22]

पृष्ठ टेबल

पृष्ठ टेबल का उपयोग आवेदन द्वारा देखे गए वर्चुअल ऐड्रेसेज को निर्देशों को संसाधित करने के लिए कंप्यूटर हार्डवेयर द्वारा उपयोग किए जाने वाले भौतिक ऐड्रेसेज में अनुवाद करने के लिए किया जाता है।[23] ऐसे हार्डवेयर जो इस विशिष्ट अनुवाद को संभालते हैं। अधिकांशतः मेमोरी प्रबंधन इकाई के रूप में जाने जाते हैं। इस प्रकार पृष्ठ सूची में प्रत्येक प्रविष्टि में ध्वज होता है जो दर्शाता है कि संबंधित पृष्ठ वास्तविक मेमोरी में है या नहीं। यदि यह वास्तविक मेमोरी में है, पृष्ठ सूची प्रविष्टि में वास्तविक मेमोरी ऐड्रेस होगा जिस पर पृष्ठ संग्रहीत है। जब हार्डवेयर द्वारा किसी पृष्ठ का संदर्भ दिया जाता है, यदि पृष्ठ के लिए पृष्ठ सूची प्रविष्टि इंगित करती है कि यह वर्तमान में वास्तविक मेमोरी में नहीं है, तो हार्डवेयर पृष्ठ दोष ट्रैप (कंप्यूटिंग) उठाता है। प्रचालन प्रणाली के पृष्ठीकरण पर्यवेक्षक घटक को लागू करता है। .

प्रणाली में हो सकता है उदाहरण के लिए, पूरे प्रणाली के लिए पृष्ठ टेबल, प्रत्येक ऐड्रेसेज या प्रक्रिया के लिए अलग पृष्ठ टेबल, प्रत्येक खंड के लिए अलग पृष्ठ टेबल। इसी प्रकार, प्रणाली में उदाहरण के लिए, कोई खंड सूची नहीं हो सकती है। इस प्रकार पूरी प्रणाली के लिए खंड सूची प्रत्येक ऐड्रेसेज प्रक्रिया के लिए अलग खंड सूची, पेड़ में प्रत्येक क्षेत्र के लिए अलग खंड सूची प्रत्येक ऐड्रेसेज या प्रक्रिया के लिए क्षेत्र सूची बनाई जाती हैं। यदि केवल पृष्ठ सूची है, तो विभिन्न आवेदन बहु क्रमादेशन वर्चुअल ऐड्रेसेज की ही श्रेणी के विभिन्न भागों का उपयोग करते हैं। यदि कई पृष्ठ या खंड टेबल हैं, तो कई वर्चुअल ऐड्रेसेज हैं और समवर्ती आवेदन अलग-अलग पृष्ठ टेबल के साथ अलग-अलग वास्तविक ऐड्रेस पर पुन: निर्देशित करते हैं।

छोटे वास्तविक मेमोरी आकार वाले कुछ पुराने प्रणाली, जैसे एसडीएस 940, ऐड्रेस अनुवाद के लिए मेमोरी में पृष्ठ टेबल के अतिरिक्त पृष्ठ ऐड्रेस पंजीकृत का उपयोग करते थे।

पृष्ठीकरण पर्यवेक्षक

प्रचालन प्रणाली का यह भाग पृष्ठ टेबल और मुफ्त पृष्ठ फ्रेम की सूची बनाता और प्रबंधित करता है। इस प्रकार यह सुनिश्चित करने के लिए कि पृष्ठ दोषों को जल्दी से हल करने के लिए पर्याप्त मुक्त पृष्ठ फ़्रेम होंगे। प्रणाली समय-समय पर पृष्ठ प्रतिस्थापन कलन विधि का उपयोग करके आवंटित पृष्ठ फ़्रेमों को चुरा सकता है, उदाहरण के लिए हाल ही में उपयोग किए गए (एलआरयू) कलन विधि का उपयोग किया जाता हैं। इस प्रकार चुराए गए पृष्ठ फ़्रेम जिन्हें संशोधित किया गया है, उन्हें मुफ्त श्रेणी में जोड़े जाने से पहले सहायक भंडारण में वापस लिखा जाता है। कुछ प्रणालियों पर पृष्ठीकरण पर्यवेक्षक उन अनुवाद पंजीकृत ों के प्रबंधन के लिए भी उत्तरदायित्व होता है जो पृष्ठ टेबल से स्वचालित रूप से लोड नहीं होते हैं।

सामान्यतः, पृष्ठ दोष जिसे हल नहीं किया जा सकता है, जिसके परिणामस्वरूप आवेदन की असामान्य समाप्ति होती है। चूँकि, कुछ प्रणालियाँ ऐसी त्रुटियों के लिए आवेदन को अपवाद संचालक रखने की अनुमति देती हैं। विवरण के आधार पर पृष्ठीकरण पर्यवेक्षक कई अलग-अलग विधियों से पृष्ठ दोष अपवाद को संचालक कर सकता है,

  • यदि वर्चुअल ऐड्रेस अमान्य है, पृष्ठीकरण पर्यवेक्षक इसे त्रुटि के रूप में मानता है।
  • यदि पृष्ठ वैध है और पृष्ठ की जानकारी एमएमयू में लोड नहीं की गई है, तो इस प्रकार पृष्ठ की जानकारी पृष्ठ पंजीकृत ों में से में संग्रहीत की जाएगी।
  • यदि पृष्ठ प्रारंभ नहीं किया गया है, तो नया पृष्ठ फ़्रेम निर्दिष्ट और साफ़ किया जा सकता है।
  • यदि वांछित पृष्ठ वाला कोई चुराया हुआ पृष्ठ फ़्रेम है, तो उस पृष्ठ फ़्रेम का पुन: उपयोग किया जाएगा।
  • पढ़ें-संरक्षित पृष्ठ में लिखने के प्रयास के कारण हुई गलती के लिए, यदि यह लिखने पर नकल पृष्ठ है तो मुफ्त पृष्ठ फ्रेम निर्धारण किया जाएगा और पुराने पृष्ठ की सामग्री नकल की जाएगी। अन्यथा इसे त्रुटि के रूप में माना जाता है।
  • यदि मेमोरी-मानचित्र की गई फ़ाइल पृष्ठीकरण फ़ाइल में वर्चुअल ऐड्रेस मान्य पृष्ठ है, तो निःशुल्क पृष्ठ फ़्रेम निर्दिष्ट किया जाएगा और पृष्ठ पढ़ा जाएगा।

अधिकांशतः स्थितियों में पृष्ठ सूची में अद्यतन होगा। संभवतः अनुवाद अंतर्रोधी (टीएलबी) को शुद्ध करने के बाद और प्रणाली उस निर्देश को पुनरारंभ करता है जो अपवाद का कारण बनता है।

यदि मुफ्त पृष्ठ फ्रेम श्रेणी खाली है तो पृष्ठीकरण पर्यवेक्षक को पृष्ठ चोरी के लिए समान पृष्ठ प्रतिस्थापन कलन विधि का उपयोग करके पृष्ठ फ्रेम को मुक्त करना होगा।

पिन किए गए पृष्ठ

प्रचालन प्रणाली में मेमोरी क्षेत्र होते हैं जिन्हें पिन किया जाता है। द्वितीयक भंडारण में कभी भी परिवर्तन नहीं किया जाता है। उपयोग किए जाने वाले अन्य शब्द अवरोध, निश्चित पृष्ठ हैं। उदाहरण के लिए, बाधा डालना क्रियाविधि अपने संचालक के लिए संकेत की सरणी पर निर्भर करता है, जैसे कि आई / ओ पूर्णता और पृष्ठ दोष। यदि इन संकेतकों वाले पृष्ठ या उनके द्वारा आह्वान किए गए कोड पृष्ठ करने योग्य थे, तो व्यवधान-प्रबंधन कहीं अधिक जटिल और समय लेने वाला हो जाएगा, विशेष रूप से पृष्ठ दोष रुकावटों के स्थितियों में है। इसलिए, पृष्ठ टेबल संरचना का कुछ भाग पृष्ठांकन योग्य नहीं है।

इस प्रकार कुछ पृष्ठों को थोड़े समय के लिए पिन किया जा सकता है। अन्य को लंबे समय के लिए पिन किया जा सकता है और फिर भी अन्य को स्थायी रूप से पिन करने की आवश्यकता हो सकती है। उदाहरण के लिए,

  • पृष्ठीकरण पर्यवेक्षक कोड और माध्यमिक भंडारण उपकरण के संचालक जिन पर पृष्ठ रहते हैं। उन्हें स्थायी रूप से पिन किया जाना चाहिए, अन्यथा पृष्ठीकरण कार्य भी नहीं करेगी क्योंकि आवश्यक कोड उपलब्ध नहीं होगा।
  • चर पृष्ठीकरण विलंब से बचने के लिए समय-निर्भर घटकों को पिन किया जा सकता है।
  • डेटा बफ़र जो सीधे परिधीय उपकरणों द्वाराअभिगम किए जाते हैं जो प्रत्यक्ष मेमोरी अभिगम आई/ओ प्रणाली का उपयोग करते हैं। उन्हें पिन किए गए पृष्ठों में रहना चाहिए, जबकि आई/ओ संचालन प्रगति पर है क्योंकि ऐसे उपकरण और बस (कंप्यूटिंग) जिनसे वे जुड़े हुए हैं, आशा करते हैं भौतिक मेमोरी ऐड्रेसेज पर स्थित डेटा बफ़र्स खोजें। इस बात की देखभाल के अतिरिक्त, कि बस में आईओएमएमयू, आई/ओ के लिए मेमोरी प्रबंधन इकाई है। इस प्रकार पृष्ठ दोष होने पर स्थानांतरण को रोका नहीं जा सकता है और पृष्ठ दोष संसाधित होने पर फिर से प्रारंभ किया जा सकता है। उदाहरण के लिए, डेटा मापन सेंसर इकाई से आ सकता है और वास्तविक समय डेटा खो गया है जो पृष्ठ दोष के कारण खो गया है जिसे पुनर्प्राप्त नहीं किया जा सकता है।

प्रणाली/370 और उत्तराधिकारी प्रणाली के लिए आईबीएम के प्रचालन प्रणाली में शब्द निश्चित है और ऐसे पृष्ठ दीर्घकालिक निश्चित हो सकते हैं या अल्पावधि निश्चित हो सकते हैं या अनिर्धारित हो सकते हैं। अर्थात, पृष्ठांकन योग्य प्रणाली नियंत्रण संरचनाएं अधिकांशतः लंबी अवधि के लिए निर्धारित होती हैं। दीवार-घड़ी के समय में मापा जाता है, अर्थात सेकंड में मापा गया समय सेकंड के अंशों में मापा गया समय के अतिरिक्त जबकि आई/ओ बफ़र्स सामान्यतः अल्पकालिक निश्चित होते हैं। सामान्यतः महत्वपूर्ण रूप से मापा जाता है दीवार-घड़ी के समय से कम, संभवतः दसियों मिलीसेकंड के लिए। वास्तव में, ओएस में इन अल्पकालिक निश्चित डेटा बफ़र्स को तेजी से ठीक करने के लिए विशेष सुविधा है। प्रतिष्ठापन जो समय लेने वाली पर्यवेक्षक कॉल निर्देश का सहायता के अतिरिक्त किया जाता है।

मल्टिक्स ने वायर्ड शब्द का उपयोग किया। विवृत वीएमएस और माइक्रोसॉफ़्ट विंडोज़ उन पृष्ठों को संदर्भित करते हैं। जिन्हें अस्थायी रूप से अ-पृष्ठांकन योग्य बनाया गया है। आई/ओ बफ़र्स के लिए अवरोध के रूप में और केवल उन पृष्ठ के लिए नॉनपृष्ठांकन योग्य हैं जो कभी पृष्ठांकन योग्य नहीं होते हैं। एकाकी यूनिक्स विशिष्टता भी mlock() द्वारा विनिर्देशन में अवरोध किए गए शब्द का उपयोग करती है, जैसे mlock() कई यूनिक्स जैसी प्रणालियों पर मुख्य पृष्ठ उपलब्ध हैं।

वर्चुअल-वास्तविक ऑपरेशन

ओएस/वीएस1 और इसी प्रकार के ओएसईएस में प्रणाली मेमोरी के कुछ भागों को वर्चुअल-वास्तविक मोड में प्रबंधित किया जाता है, जिसे वी = आर कहा जाता है। इस मोड में प्रत्येक वर्चुअल ऐड्रेस उसी वास्तविक पते से मेल खाता है। इस प्रकार इस मोड का उपयोग अवरोध क्रियाविधि के लिए, पुराने प्रणाली में पृष्ठीकरण पर्यवेक्षक और पृष्ठ टेबल के लिए और बिना मानक आई/ओ प्रबंधन का उपयोग करने वाले आवेदन प्रोग्राम के लिए किया जाता है। उदाहरण के लिए, आईबीएम के जेड/ओएस में 3 मोड (वर्चुअल-वर्चुअल, वर्चुअल-वास्तविक और वर्चुअल-निश्चित ) हैं।

बीट

जब पृष्ठीकरण और पृष्ठीकरण पृष्ठ चोरी का उपयोग किया जाता है, तो बीट कंप्यूटर विज्ञान नामक समस्या उत्पन्न हो सकती है। जिसमें कंप्यूटर समर्थन भंडार से पृष्ठों को स्थानांतरित करने के लिए अनुपयुक्त रूप से बड़ी मात्रा में समय व्यतीत करता है, जिससे उपयोगी कार्य धीमा हो जाता है। किसी कार्य का कार्य का संग्रह उन पृष्ठों का न्यूनतम संग्रह होता है जो उपयोगी प्रगति करने के लिए मेमोरी में होना चाहिए। बीट तब होती है जब सभी सक्रिय प्रोग्रामों के कार्यरत संग्रह को भंडार करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं होती है। वास्तविक मेमोरी जोड़ना सबसे सरल प्रतिक्रिया है, किन्तु आवेदन रचना अनुसूची और मेमोरी उपयोग में सुधार करने से सहायता मिल सकती है। अन्य समाधान प्रणाली पर सक्रिय कार्यों की संख्या को कम करना है। अधिक प्रक्रियाओं के संपूर्ण कार्य संग्रह की अदला-बदली करके वास्तविक मेमोरी पर मांग को कम करता है।

प्रणाली बीट अधिकांशतः कम संख्या में चल रहे कार्यक्रमों से पृष्ठ अनुरोध में अचानक स्पाइक का परिणाम होता है। इस प्रकार परिवर्तन -टोकन[24] हल्का और गतिशील बीट सुरक्षा तंत्र है। मूल विचार प्रणाली में टोकन संग्रह करना है, जो बेतरतीब ढंग से उस प्रक्रिया को दिया जाता है जिसमें बीट होने पर पृष्ठ दोष होते हैं। जिस प्रक्रिया में टोकन होता है, उसे अपने कार्य संग्रह को बनाने के लिए अधिक भौतिक मेमोरी पृष्ठ आवंटित करने का विशेषाधिकार दिया जाता है, जिससे इसके निष्पादन को जल्दी से पूरा करने और अन्य प्रक्रियाओं के लिए मेमोरी पृष्ठ जारी करने की आशा की जाती है। इस प्रकार टोकन को - करके सौंपने के लिए समय की मोहर का उपयोग किया जाता है। परिवर्तन -टोकन का पहला संस्करण लिनक्स में लागू किया गया है [1] दूसरे संस्करण की जगह ले लेना परिवर्तन -टोकन कहा जाता है। इस अद्यतन परिवर्तन -टोकन कार्यान्वयन में प्रत्येक प्रक्रिया के लिए प्राथमिकता काउंटर निर्धारित किया जाता है परिवर्तन -आउट पृष्ठों की संख्या को ऐड्रेस करें। टोकन सदैव उच्च प्राथमिकता वाली प्रक्रिया को दिया जाता है, जिसमें परिवर्तन -आउट पृष्ठों की संख्या अधिक होती है। समय की मोहर की लंबाई स्थिर नहीं है, किन्तु प्राथमिकता द्वारा निर्धारित की जाती है। इस प्रकार किसी प्रक्रिया के परिवर्तन -आउट पृष्ठ की संख्या जितनी अधिक होगी, उसके लिए समय की मोहर उतना ही लंबा होगा।

खंडित वर्चुअल मेमोरी

कुछ प्रणालियाँ, जैसे बरोज़ कॉर्पोरेशन बी5500,[25] पृष्ठीकरण के अतिरिक्त विभाजन मेमोरी का उपयोग करें। वर्चुअल ऐड्रेसेज को चर लंबाई खंड में विभाजित करें। यहां वर्चुअल ऐड्रेस में खंड नंबर और खंड के भीतर समायोजन होता है। इंटेल 80286 विकल्प के रूप में समान विभाजन योजना का समर्थन करता है, किन्तु इसका उपयोग संभवतः ही कभी किया जाता है। प्रत्येक खंड को पृष्ठों में विभाजित करके विभाजन और पृष्ठीकरण का साथ उपयोग किया जा सकता है। इस मेमोरी संरचना वाले प्रणाली, जैसे मल्टिक्स और आईबीएम प्रणाली/38, सामान्यतः पृष्ठीकरण-प्रमुख होते हैं, विभाजन मेमोरी सुरक्षा प्रदान करते हैं।[26][27][28] इस प्रकार इंटेल 80386 और बाद में आईA-32 प्रक्रमक में, खंड 32-बिट रैखिक, पृष्ठांकित ऐड्रेसेज में रहते हैं। खंडों को उस स्थान के अंदर और बाहर ले जाया जा सकता है। वहाँ के पृष्ठ मुख्य मेमोरी के अंदर और बाहर पृष्ठ कर सकते हैं, वर्चुअल मेमोरी के दो स्तर प्रदान करते हैं। यदि कोई प्रचालन प्रणाली ऐसा करता है, तो केवल पृष्ठीकरण का उपयोग करके किया जाता हैं। इस प्रकार प्रारंभिक अ-हार्डवेयर सहायता प्राप्त एक्स86 वर्चुअलकरण समाधान संयुक्त पृष्ठन और विभाजन क्योंकि एक्स86 पृष्ठन केवल दो सुरक्षा डोमेन प्रदान करता है जबकि वीएमएम, अतिथि ओएस अतिथि अनुप्रयोग स्टैक को तीन की आवश्यकता होती है।[29]: 22  पृष्ठीकरण और विभाजन प्रणाली के बीच का अंतर केवल मेमोरी विभाजन के बारे में नहीं है। मेमोरी प्रतिरूप शब्दार्थ के भाग के रूप में विभाजन उपयोगकर्ता प्रक्रियाओं के लिए दृश्यमान है। इसलिए, बड़ी जगह की प्रकार दिखने वाली मेमोरी के अतिरिक्त, इसे कई जगहों में संरचित किया जाता है।

इस अंतर के महत्वपूर्ण परिणाम हैं। खंड परिवर्तनशील लंबाई वाला पृष्ठ या ऐड्रेसेज को लंबा करने का सरल विधि नहीं है। विभाजन जो ल-स्तरीय मेमोरी प्रतिरूप प्रदान कर सकता है जिसमें प्रक्रिया मेमोरी और फाइल प्रणाली के बीच कोई अंतर नहीं होता है, केवल प्रक्रिया के संभावित ऐड्रेसेज में मानचित्र किए गए खंड फाइल की सूची होती है।[30] यह एमएमएपी और डब्ल्यूआईएन32 के मानचित्र फ़ाइल का दृश्य जैसे कॉल द्वारा प्रदान किए गए तंत्र के समान नहीं है, क्योंकि स्वयं से इसके स्थानों में फ़ाइलों को मानचित्र करते समय आंतरिक फाइल्स के संकेत के रूप में कार्य नहीं करते हैं। इस प्रकार मल्टिक्स में फ़ाइल या बहु-खंड फ़ाइल से खंड को ऐड्रेसेज में खंड में मानचित्र किया जाता है, इसलिए फ़ाइलों को सदैव खंड सीमा पर मानचित्र किया जाता है। फाइल के लिंकेज खंड में संकेत हो सकते हैं जिसके लिए सूचक को पंजीकृत में लोड करने या इसके माध्यम से अप्रत्यक्ष संदर्भ बनाने का प्रयास जाल का कारण बनता है। इस प्रकार संदिग्ध सूचक में इन खंडों के नाम का संकेत होता है जो सूचक द्वारा संदर्भित किया जाता है और खंड के भीतर समायोजन होता है। ट्रैप के लिए संचालक खंड को ऐड्रेसेज में मानचित्र करता है, खंड नंबर को सूचक में डालता है। इस प्रकार सूचक में टैग क्षेत्र को बदलता है जिससे कि यह अब ट्रैप का कारण न बने और उस कोड पर वापस आ जाए जहां ट्रैप हुआ, फिर से निष्पादित निर्देश जो जाल का कारण बना।[31] यह लिंकर (कंप्यूटिंग) की आवश्यकता को पूरी प्रकार समाप्त कर देता है[8] और यह इस प्रकार कार्य करता है जब विभिन्न प्रक्रियाएं ही फाइल को उनके निजी ऐड्रेसेजों में अलग-अलग स्थानों पर मानचित्र करती हैं।[32]

स्थानीय पते का परिर्वतन

पृष्ठीकरण और विभाजन के लिए उनके पास जो भी सुविधाएं हैं, उसके अतिरिक्त कुछ प्रचालन प्रणाली पूरे ऐड्रेसेज की अदला-बदली के लिए प्रदान करते हैं। जब ऐसा होता है, तो ओएस उन पृष्ठ और खंड को वर्तमान में फाइलों को परिवर्तन करने के लिए वास्तविक मेमोरी में लिखता है। यह परिवर्तन इन ओएस परिवर्तन फ़ाइलों से डेटा वापस पढ़ता है किन्तु परिवर्तन आउट संचालन के समय पृष्ठ आउट किए गए पृष्ठों को स्वचालित रूप से वापस नहीं पढ़ता है।

आईबीएम का एमवीएस, ओएस/360 से और उत्तराधिकारी ओएस/वीएस2 एसवीएस और एमवीएस|ओएस/वीएस2 रिलीज़ 2 जेड/ओएस के माध्यम से ऐड्रेसेज को अस्वच्छ के रूप में चिह्नित करने के लिए प्रदान करता है। ऐसा करने से ऐड्रेसेज में कोई पृष्ठ पिन नहीं होता है। यह पात्र के नाम को अंकित करके नौकरी की अवधि के लिए किया जा सकता है,[33] प्रोग्राम गुण सूची में मुख्य कार्यक्रम अपरिवर्तनीय ध्वज के साथ। इसके अतिरिक्त, विशेषाधिकार प्राप्त कोड एसवाईएस घटना पर्यवेक्षक कॉल निर्देश (एसवीसी) का उपयोग करके अस्थायी रूप से ऐड्रेसेज को परिवर्तन करने योग्य बना सकता है। कुछ परिवर्तन[34] ऐड्रेसेज गुणों में यह आवश्यक है कि ओएस इसे परिवर्तन करें और फिर इसे एसवाईएस घटना ट्रांसवैप का उपयोग करके वापस परिवर्तन करते हैं।[35] इस प्रकार परिवर्तन के लिए मेमोरी प्रबंधन हार्डवेयर की आवश्यकता नहीं है उदाहरण के लिए, भंडारण के ही क्षेत्र में और बाहर कई नौकरियों का परिवर्तन किया जाता है।

यह भी देखें


टिप्पणियाँ

  1. Early systems used drums; contemporary systems use disks or solid state memory
  2. 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.


संदर्भ

  1. "SYSTEM COMPONENTS: Dynamic Relocation" (PDF). System/360 Model 67 Time Sharing System Preliminary Technical Summary (PDF). IBM. 1966. p. 21. C20-1647-0.
  2. "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.
  3. Bhattacharjee, Abhishek; Lustig, Daniel (2017). Architectural and Operating System Support for Virtual Memory. Morgan & Claypool Publishers. p. 1. ISBN 9781627056021. Retrieved 16 October 2017.
  4. Haldar, Sibsankar; Aravind, Alex Alagarsamy (2010). Operating Systems. Pearson Education India. p. 269. ISBN 978-8131730225. Retrieved 16 October 2017.
  5. 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.
  6. "AMD-V™ Nested Paging" (PDF). AMD. Retrieved 28 April 2015.
  7. "Windows Version History". Microsoft. 23 September 2011. Archived from the original on 8 January 2015. Retrieved 9 March 2015.
  8. 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.
  9. Jessen, Elke (2004). "Origin of the Virtual Memory Concept". IEEE Annals of the History of Computing. 26 (4): 71–72.
  10. 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.
  11. Jessen (2004).
  12. 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
  13. 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
  14. "Ferranti Atlas 1 & 2 – Systems Architecture" (PDF). 12 November 2009.
  15. 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.
  16. 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.
  17. "The Atlas". Archived from the original on 6 October 2014.{{cite web}}: CS1 maint: unfit URL (link)
  18. Joyner, Ian. "Burroughs". Archived from the original on 10 May 2017.
  19. Cragon, Harvey G. (1996). Memory Systems and Pipelined Processors. Jones and Bartlett Publishers. p. 113. ISBN 978-0-86720-474-2.
  20. z/VM built on IBM Virtualization Technology General Information Version 4 Release 3.0 (PDF). 12 April 2002. GC24-5991-04.
  21. 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.
  22. 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.
  23. Sharma, Dp (2009). Foundation of Operating Systems. Excel Books India. p. 62. ISBN 978-81-7446-626-6. Retrieved 18 July 2017.
  24. 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.
  25. Burroughs (1964). Burroughs B5500 Information Processing System Reference Manual (PDF). Burroughs Corporation. 1021326. Retrieved 28 November 2013.
  26. GE-645 System Manual (PDF). January 1968. pp. 21–30. Retrieved 25 February 2022.
  27. Corbató, F.J.; Vyssotsky, V. A. "Introduction and Overview of the Multics System". Retrieved 13 November 2007.
  28. Glaser, Edward L.; Couleur, John F. & Oliver, G. A. "System Design of a Computer for Time Sharing Applications".
  29. Smith, J. E.; Uhlig, R. (14 August 2005). "Virtual Machines: Architectures, Implementations and Applications, HOTCHIPS 17, Tutorial 1, part 2" (PDF).
  30. 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.
  31. "Multics Execution Environment". Multicians.org. Retrieved 9 October 2016.
  32. Organick, Elliott I. (1972). The Multics System: An Examination of Its Structure. MIT Press. ISBN 978-0-262-15012-5.
  33. The most important requirement is that the program be APF authorized.
  34. e.g., requesting use of preferred memory
  35. "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.


अग्रिम पठन

  • Hennईएसएस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)


बाहरी संबंध