ভার্চুয়াল মেমরি আসলে মেমরির স্থান বাড়িয়ে দিচ্ছে কীভাবে?


70

আমি বুঝতে পারি যে ভার্চুয়াল মেমরিটি উপলব্ধতার চেয়ে বেশি মেমরি প্রদর্শন করে প্রোগ্রামটিকে বোকা বানাবে।

তবে শেষ পর্যন্ত এটি লজিকাল ঠিকানাটি প্রকৃত শারীরিক ঠিকানায় ম্যাপ করতে হয়। এখন কীভাবে বাড়ছে স্মৃতিশক্তি?


12
এটা পুরানো ধারণা। ভার্চুয়াল মেমরির আসল প্রেরণা ছিল শারীরিক মেমরির চেয়ে বড় কোনও ঠিকানা স্থান সরবরাহ করার জন্য মেমরি পরিচালনার একটি ফর্ম। কিন্তু স্মৃতি ছিল কম ঘনত্ব এবং খুব ব্যয়বহুল। আজকাল ভার্চুয়াল মেমরি ব্যবহারের প্রাথমিক কারণ প্রক্রিয়া সুরক্ষা।
করাত

2
"এখন কীভাবে বাড়ছে স্মৃতিশক্তি?"। এটা হয় না। অ্যাপ্লিকেশনটি সিস্টেমের শারীরিক স্মৃতি সম্পর্কে সচেতন নয় এটি কেবল ভার্চুয়াল মেমরি সম্পর্কে অবগত যা কারণ কোনও অ্যাপ্লিকেশন পর্যাপ্ত মেমরি না থাকার বিষয়ে অভিযোগ করে যখন এটি ভার্চুয়াল মেমরির কথা বলে এবং শারীরিক স্মৃতি নয়
র‌্যামহাউন্ড

2
মনে রাখবেন যে ভার্চুয়াল মেমরি সিস্টেমগুলি বেশ স্মার্ট। এন প্রসেসগুলির যদি কেবল পঠনযোগ্য পৃষ্ঠা থাকে তবে সমস্ত এন প্রসেসগুলি একই পৃষ্ঠার দৈহিক মেমরি ব্যবহার করতে পারে।
এরিক লিপার্ট

65
ভার্চুয়াল মেমরিটিকে কোনও বোকা বলে মনে করবেন না । মেমরি হ'ল ডেটা সঞ্চয় এবং পুনরুদ্ধার করার বিমূর্ত ক্ষমতা । ভার্চুয়াল মেমরি সেই বিমূর্ততার জন্য একটি বাস্তবায়ন সরবরাহ করে। যে বিমূর্তির কিছু অংশ র‌্যাম দ্বারা সমর্থিত এবং কিছুটি ডিস্ক সমর্থন করে এটি বিমূর্তির একটি বাস্তবায়ন বিশদ।
এরিক লিপার্ট

4
@HagenvonEitzen কীভাবে করবেন নিশ্চিত নন মেমরির ডিস্কে, যদি না একটি পৃষ্ঠায় কোন মতেই বার করা হয় এটির সামগ্রীগুলি পারে "সবসময়" ... মূলত ডিস্ক থেকে পড়তে পেজ থেকে সরাইয়া কখনো ডিস্কে হতে, এবং এই পৃষ্ঠাগুলি যা মেমরি যেমন পিন করা তাদের জন্য বিশেষভাবে সত্য কার্নেল কার্যকারিতার জন্য সমালোচনামূলক হওয়ার কারণে।
মাইকেল

উত্তর:


116

এটি মোটেই শারীরিক স্মৃতি বাড়ছে না । এর উদ্দেশ্য সম্পূর্ণ অন্য কিছু something এটি যা করতে পারে তা হ'ল অন্যান্য ব্যাকিং স্টোরগুলি উপলব্ধ করা যা প্রোগ্রামগুলিকে শারীরিকভাবে উপলব্ধের চেয়ে আরও বেশি মেমরি ব্যবহার করতে দেয়।

ভার্চুয়াল মেমরির প্রক্রিয়াগুলি একে অপরের থেকে পৃথক এবং বিচ্ছিন্ন করতে ব্যবহৃত হয় এবং মেমোরি অ্যাক্সেসকে বিকল্প স্থানে ডাইভার্ট করার অনুমতি দেয়।

ভার্চুয়াল মেমরি সিস্টেমকে প্রতিটি প্রক্রিয়াটিকে তার নিজস্ব মেমরির স্থানটি অন্যান্য প্রক্রিয়া থেকে পৃথক করে দিতে দেয়। প্রোগ্রামগুলি কার্যকরভাবে তাদের নিজস্ব স্থানে পরিচালিত করার ফলে এটি অন্যান্য প্রোগ্রামের আশেপাশে কাজ করার পরিবর্তে তাদের পুরো ঠিকানা জায়গাতে সম্পূর্ণ অ্যাক্সেস দেয় যা "একই" ঠিকানাগুলি ব্যবহার করার প্রয়োজন হতে পারে। এটির ক্রমবর্ধমান নির্ভরযোগ্যতা এবং সুরক্ষা এর পার্শ্ব প্রতিক্রিয়া রয়েছে কারণ প্রক্রিয়াগুলি সহজেই একে অপরের সাথে হস্তক্ষেপ করতে পারে না।

একটি অ্যাপ্লিকেশন ভার্চুয়াল মেমরি স্পেস প্রয়োজন হিসাবে নির্মিত হয়। একটি অ্যাপ্লিকেশন মনে হয় (নিজেই) একক মেমরির সংলগ্ন ব্লকে থাকতে পারে তবে প্রকৃতপক্ষে পুরো শারীরিক স্মৃতিতে ছড়িয়ে যেতে পারে।

ভার্চুয়াল মেমরিটি মেমোরি অ্যাক্সেসগুলিকে আটকে ও ডাইভার্ট করার অনুমতি দেয় যা আমাদেরকে অদলবদলের মতো বৈশিষ্ট্যগুলি ব্যবহার করতে দেয়। এর অর্থ হ'ল আমরা মেমরির এমন অংশগুলিকে ধাক্কা দিতে পারি যা সম্প্রতি ডিস্কে ব্যবহৃত হয় নি এবং একটি পয়েন্টার সেটআপ করতে পারে যা বলে যে "মেমরির এই ব্লকটি লোকেশন y এ ফাইল এক্সে রয়েছে" এবং তারপরে আমরা শারীরিক স্মৃতি মুক্ত করতে পারি অন্য অ্যাপ্লিকেশন দ্বারা ব্যবহারের জন্য এলাকা। যখন কোনও অ্যাপ্লিকেশনটির সেই মেমরির প্রয়োজন হয় তখন এটি ডিস্ক থেকে আবার পড়া যায়, শারীরিক র‌্যামের কোনও স্থানে রাখা (এটি আগে যেখানে ছিল সম্ভবত তার চেয়ে আলাদা) এবং ভার্চুয়াল মেমরির আগের স্থানে ম্যাপ করা হয়েছিল।

পৃষ্ঠার ফাইলটি ভার্চুয়াল মেমরি যেমন ব্যবহার করা হয় তেমনিভাবে অপারেটিং সিস্টেমটিকে কোনও প্রোগ্রামের জন্য ভাগ করে নেওয়া লাইব্রেরিগুলি কার্যকরভাবে "অলস" লোডিংয়ের জন্যও করতে দেয়। যখন মূল প্রোগ্রাম অপারেটিং সিস্টেমকে বলে যে এটি একটি নির্দিষ্ট লাইব্রেরি ব্যবহার করতে চায় তবে অপারেটিং সিস্টেম লাইব্রেরির প্রয়োজনীয়তাগুলি পরীক্ষা করে, অ্যাপ্লিকেশনটির জন্য ভার্চুয়াল মেমরি অঞ্চলে স্থান বরাদ্দ করে সময় সাশ্রয় করতে পারে, বরং পুরো লাইব্রেরিটি লোড করার পরিবর্তে এতে লাইব্রেরির পৃষ্ঠাগুলি ডিস্ক থেকে লোড করার পেছন স্থিত করতে পারে যতক্ষণ না সেগুলি প্রকৃত প্রয়োজন হয়। এইভাবে লাইব্রেরির একমাত্র অংশগুলি যা র‌্যামে লোড হয় সেগুলি হ'ল সেই অংশগুলি যা প্রকৃতপক্ষে প্রোগ্রাম দ্বারা ব্যবহৃত হয়, যে অংশগুলি কখনই ব্যবহৃত হয় না কখনও লোড হয় না এবং তাই র‌্যাম নষ্ট করে না।

এই কৌশলগুলি ব্যবহার করে আমরা সিস্টেমের স্থিতিশীলতা উন্নতি করি এবং এগুলি একে অপরকে অকার্যকরভাবে প্রভাবিত না করে সীমিত স্থানে আরও প্রক্রিয়া চালানোর অনুমতি দিই। এটি "স্মৃতিশক্তি বাড়ায়" না, বরং পরিবর্তে আমাদের যা আছে তা আরও কার্যকরভাবে ব্যবহার করতে দেয়।

সোয়াপ ফাইল ভার্চুয়াল মেমরি সিস্টেম সক্রিয় করা হয়, কিন্তু অতীতে যেমন বিশৃঙ্খলা শুরু হয়ে গিয়েছিল হচ্ছে ভার্চুয়াল মেমরি।


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
Sathyajith ভাট

21

লেম্যানের ব্যাখ্যা

সিস্টেমটি প্রতিটি ভার্চুয়াল ঠিকানাকে শারীরিক ঠিকানায় ম্যাপ করতে হবে যখন সেই মেমরিটি ব্যবহৃত হয় তবে সমস্ত মেমরি একই সময়ে ব্যবহৃত হয় না । উদাহরণস্বরূপ, ধরুন আপনার ব্রাউজারে 20 টি ট্যাব রয়েছে, প্রতিটিতে 1GB মেমরি রয়েছে। ভার্চুয়াল মেমরি সমর্থন ছাড়াই ওএসে, এটি কাজ করার জন্য আপনার 20 গিগাবাইট র‌্যাম লাগবে। কৌশলটি হ'ল, আপনি একই সাথে সমস্ত 20 টি ট্যাব ব্রাউজ করবেন না, সুতরাং ভার্চুয়াল মেমরির ওএস আপনাকে আপনার ব্রাউজারটি কেবলমাত্র কয়েক গিগাবাইট র‌্যামের সাহায্যে ডিস্কে নিষ্ক্রিয় ট্যাবগুলিতে অদলবদল করতে সক্ষম করবে।

আরও জটিল দিক

ভার্চুয়াল মেমরিটি অদলবদলের জন্য একচেটিয়াভাবে ব্যবহৃত হয় না। এটির মূল উদ্দেশ্যটি হ'ল র‌্যামের খণ্ডন এড়ানো, যা ভার্চুয়াল মেমরি পরিচালনা ছাড়াই সিস্টেমে একটি বড় সমস্যা: আপনার ভাল 1GB র্যাম থাকতে পারে, তবে এটি যদি 10MB এর পরিমাণে আসে তবে 100MB এর অনুরোধ করে একটি অ্যাপ্লিকেশন কাজ করতে সক্ষম হবে না ।

সময়ের সাথে সাথে, ভার্চুয়াল মেমোরি আরও বেশি ব্যবহার পেয়েছে, উল্লেখযোগ্যভাবে এলোমেলো ফাইল অ্যাক্সেস: ডাটাবেসগুলির মতো অনেক অ্যাপ্লিকেশন যন্ত্রণাদায়কভাবে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে সেজমুক্ত হয়ে যায়। ) অ্যাক্সেস নিদর্শনগুলির উপর ভিত্তি করে মেমরি এবং ডিস্ক আইও এবং ক্যাশেটিকে অনুকূলিত করে।


9
এটি দুঃখজনক যে আমরা এমন এক পৃথিবীতে বাস করি যেখানে প্রতিটি ব্রাউজারের ট্যাবটির জন্য 1 গিগাবাইট মেমরির প্রয়োজন হয়
tbodt

9
@tbodt আমি প্রাচীন মিশরীয়দের দোষ দিই। কেবলমাত্র যদি তারা জানত যে তারা thoseসব বিড়াল বিড়ালদের পোষা করে কী করছে!
দিমিত্রি গ্রিগরিয়েভ

@tbodt এটিও কিছুটা অত্যুক্তি। 8 টি ট্যাব খোলা আমার ব্রাউজারে কেবল 500MB মেমরি লাগে।
র্যান্ডম 832

2
@ র্যান্ডম 832 অবশ্যই এটি অতিরঞ্জিত হওয়ার বিষয়টি নিশ্চিত, যদিও আমি অত্যুক্তি এবং ভবিষ্যতের প্রমাণের মধ্যে যে লাইনটি সম্পর্কে নিশ্চিত নই। আমার প্রথম পিসিতে 32 এমবি র‌্যাম ছিল এবং আমি সহজেই অপেরাতে 8 টি ট্যাবগুলি লক্ষ্যণীয় অদলবদল ছাড়াই খুলতে পারি। এখন এটি 500 এমবি লাগে, সুতরাং আরও 20 বছরে এটি 8 জিবিতেও পৌঁছতে পারে।
দিমিত্রি গ্রিগরিয়েভ

5

ভার্চুয়াল মেমরিটি প্রকৃতপক্ষে আরও মূল-মেমরির হার্ডওয়্যার যুক্ত করার অর্থে স্মৃতি বাড়ায় না। তবে এটি ব্যবহারযোগ্য ঠিকানার পরিসর বাড়িয়ে তুলতে পারে । সুতরাং কোনও একটি কোড সেগমেন্ট এবং একটি ডেটা (স্ট্যাক এবং হিপ) বিভাগ নিয়ে একটি চলমান প্রোগ্রাম থাকতে পারে এবং এই উভয়টিরই শারীরিক-আসল স্টোরেজ স্পেসের দ্বারা সরবরাহিত শারীরিক ঠিকানার সীমার চেয়ে বড় ভার্চুয়াল ঠিকানার একটি অংশ থাকতে পারে the মেশিন। কৌশলটি হ'ল সেই ভার্চুয়াল ঠিকানার একটি ছোট্ট ভগ্নাংশ যেকোন মুহুর্তে শারীরিক মূল-স্মৃতি দ্বারা ব্যাকড হয় [তবে সবকিছুই শেষ পর্যন্ত ডিস্ক স্টোরেজ দ্বারা সমর্থিত হয়]রেফারেন্সের স্থানীয়তার ঘটনার কারণে এটি কাজ করে: যে কোনও মুহুর্তে, প্রোগ্রাম বিভাগের এক বা একাধিক ছোট সংলগ্ন অংশগুলিতে কেবল নির্দেশাবলী কার্যকর করা হচ্ছে এবং কেবলমাত্র ডেটা বিভাগের এক বা একাধিক ছোট সংলগ্ন অংশগুলিতে কেবল ডেটা পরিচালিত হচ্ছে [অবশ্যই আচরণটি আরও জটিল is , তবে এটি সময়ের বৃহত ভগ্নাংশের জন্য এই ধরণটি অনুসরণ করে]


4

আমি বুঝতে পারি যে ভার্চুয়াল মেমরিটি উপলব্ধতার চেয়ে বেশি মেমরি প্রদর্শন করে প্রোগ্রামটিকে বোকা বানাবে।

ভার্চুয়াল মেমরির আসল প্রেরণা ছিল শারীরিক মেমরির চেয়ে বড় কোনও ঠিকানা স্থান সরবরাহ করার জন্য মেমরি পরিচালনার একটি ফর্ম।
সফ্টওয়্যার সিপিইউর সম্পূর্ণ ঠিকানা স্থানটি ব্যবহার করতে পারে (যেমন 2 ^ 32 ঠিকানার স্থান) যখন প্রকৃত ইনস্টলড ফিজিক্যাল মেমরিটি কেবলমাত্র সেই সংখ্যার একটি ভগ্নাংশ ছিল।
বিশাল প্রোগ্রামগুলি এমন কম্পিউটারগুলির মধ্যে বহনযোগ্য হতে পারে যা বিশাল (ইনস্টল) মেমরির প্রয়োজনীয়তা চাপিয়ে না দিয়ে ভার্চুয়াল মেমরি ব্যবহার করে।
ভার্চুয়াল মেমরির এই ব্যবহারটি মেইনফ্রেম কম্পিউটার এবং ফেরাইট কোর মেমরির দিনে ফিরে এসেছিল (যা শারীরিকভাবে ব্যয়বহুল এবং ব্যয়বহুল ছিল)।

তবে শেষ পর্যন্ত এটি লজিকাল ঠিকানাটি প্রকৃত শারীরিক ঠিকানায় ম্যাপ করতে হয়। এখন কীভাবে বাড়ছে স্মৃতিশক্তি?

ভার্চুয়াল মেমরিটি প্রোগ্রামটির আরও ঠিকানার স্থান দেওয়ার জন্য একটি কৌশল থেকে উদ্ভূত হয়েছে।
ভার্চুয়াল মেমরি আধুনিক অপারেটিং সিস্টেমে প্রতিটি প্রক্রিয়াটিকে সুরক্ষা প্রদানের একটি মূল উপাদান, যাতে কোনও প্রক্রিয়া অন্য প্রক্রিয়াতে হস্তক্ষেপ করতে না পারে এবং অন্য কোনও প্রক্রিয়াতে আপস না করে।
কিন্তু (multiprocess সঙ্গে গুলান না মাল্টিপ্রসেসিং Ors ) ভার্চুয়াল মেমরি সাথে এখনও প্রকৃত মেমরি চেয়ে সিস্টেমের জন্য আরো আপাত মেমরির প্রদান করে।

প্রতিটি তৈরি প্রক্রিয়া তার নিজস্ব ভার্চুয়াল ঠিকানা স্থান, অর্থাত্ তার নিজস্ব ভার্চুয়াল মেমরির সাথে সরবরাহ করা হয়।
প্রতিটি প্রক্রিয়াতে প্রকৃতপক্ষে যে পরিমাণ শারীরিক মেমরি ব্যবহৃত হয় (এবং ভার্চুয়াল মেমরিটিতে ম্যাপ করা হয়) তা গতিশীল। সাধারণত সাধারণত ভার্চুয়াল মেমরি যা কোড (ওরফে পাঠ্য) এবং প্রক্রিয়া সম্পাদন করতে ডেটা পৃষ্ঠাগুলি / বিভাগগুলিকে শারীরিক স্মৃতিতে ম্যাপ করা হয় (ওরফে মেমরির বাসিন্দা)।

অযৌক্তিক কোড (কারণ এটি বর্তমানে কার্যকর করা হয়নি) এবং ডেটা (কারণ এটি রেফারেন্স / প্রক্রিয়াজাতকরণ হচ্ছে না) সার্বক্ষণিক মেমরির বাসিন্দা হতে হবে না। কোড এবং / অথবা ডেটা পৃষ্ঠাগুলি / বিভাগগুলিকে ব্যাকিং স্টোরটিতে "অদলবদল" করা যেতে পারে (যেমন একটি এইচডিডি বা এসএসডি-তে স্ব্যাপ স্পেস বা পৃষ্ঠার ফাইল) এবং পরে "প্রয়োজন অনুসারে" (পরিবর্তিত) "অদলবদল করা" )।

ভার্চুয়াল মেমরি অসংখ্য প্রসেসের মধ্যে সীমাবদ্ধ শারীরিক মেমরির দক্ষ নিজস্ব ব্যবহারের সুবিধার্থে প্রত্যেকটির নিজস্ব সুরক্ষিত ভার্চুয়াল ঠিকানার স্থান। এই ভার্চুয়াল স্মৃতিগুলির যোগফল সাধারণত ইনস্টল করা শারীরিক মেমরির চেয়ে বড়।
"বর্ধিত মেমরি" এখন সিস্টেমের দৃষ্টিকোণ থেকে, এবং কেবল প্রোগ্রামের দৃষ্টিকোণ থেকে নয়।


3

ভার্চুয়াল মেমরি কোনও প্রোগ্রামের ঠিকানার পরিমাণের পরিমাণ বাড়িয়ে দেয়। একটি সফ্টওয়্যার দৃষ্টিকোণ থেকে, আমরা (সাধারণত) তাদের ডেটা কোথায় সঞ্চয় করা হয় তা যত্নশীল করি না। এটি শারীরিক ডিআআরএএম মেমরিতে সংরক্ষণ করা যেতে পারে, এটি মেশিনে লাগানো ফ্ল্যাশ ড্রাইভে সংরক্ষণ করা যেতে পারে, অথবা এটি কোনও স্পিনিং প্ল্যাটারেও সংরক্ষণ করা যেতে পারে। সফ্টওয়্যারটি যা যত্ন করে তা হ'ল, যখন এটি সেই ডেটা অ্যাক্সেস করতে বলে, এটি সফল হয়।

অনুশীলনে, আমরা দ্রুতগতিতে প্রোগ্রামগুলিও চাই। গতির বিবেচনার জন্য আমরা ডেটা কোথায় রয়েছে সেদিকে খেয়াল রাখি। আমরা যে ডেটাটি প্রায়শই অ্যাক্সেস করি তা আমাদের হার্ডওয়ারে সঞ্চয় করার জন্য চাই যা দ্রুত অ্যাক্সেসের অনুমতি দেয়। আমাদের প্রোগ্রামগুলি পুরোপুরি DRAM এর বাইরে চলে যেতে চাই । তবে, এটি করার জন্য আমাদের প্রায়শই পর্যাপ্ত ড্রাম থাকে না। ভার্চুয়াল স্মৃতি একটি সমাধান solution

ভার্চুয়াল মেমরির সাহায্যে অপারেটিং সিস্টেমটি "পৃষ্ঠাগুলি" আউট করে যা কিছুক্ষণের জন্য ব্যবহৃত হয় না, এটি একটি হার্ড ডিস্কে সঞ্চয় করে। এটি এখনও অ্যাক্সেসযোগ্য, কেবল ধীর। প্রোগ্রামটি যদি হার্ড-ডিস্কে থাকা ডেটার জন্য অনুরোধ করে, অপারেটিং সিস্টেমটিকে ডিস্কের বাইরে থাকা ডেটা পড়তে সময় নিতে হবে এবং এটিকে আবার ডিআআরএএম এ সরিয়ে নেওয়া উচিত।

তত্ত্বগতভাবে, এটি কেবলমাত্র ডিস্কের সরাসরি উপাত্ত পড়তে পারে। তবে, এটি সেভাবে না করার কারণ রয়েছে। প্রোগ্রামগুলি এই সমস্ত জটিলতা সম্পর্কে সচেতন হতে চায় না। আমরা এবং সফ্টওয়্যার লিখতে পারি যা বুদ্ধি করে ডিস্কে ডেটা রাখে (এটিকে ক্যাশে বলা হয়)। তবে এটি অতিরিক্ত অতিরিক্ত কাজ লাগে। কোডে আমরা এটি করতে পারি দ্রুততম:

if data is not in memory
    read data from disk into memory
operate on data

একজন চমকপ্রদ পাঠক খেয়াল করবেন যে, ডেটা মেমরির মধ্যে থাকলেও, এটি রয়েছে কিনা তা যাচাই করার জন্য আমাদের শর্তযুক্ত থাকতে হয়েছিল। এটি সরাসরি স্মৃতিতে অপারেটিংয়ের চেয়ে অনেক ধীর গতির!

ভার্চুয়াল মেমরি সিপিইউতে হার্ডওয়্যার চেক ইন করে এই সমস্যাটি সমাধান করে। সিপিইউ এই ভার্চুয়াল মেমরি অপারেশনটি খুব দ্রুত করতে পজিশনে রয়েছে কারণ এটি এতে হার্ডওয়্যার উত্সর্গ করতে পারে। একা সফ্টওয়্যারে এটি করার যে কোনও প্রয়াসের জন্য অবশ্যই সিপিইউর সাধারণ উদ্দেশ্য অংশগুলি অবশ্যই ব্যবহার করা উচিত, যা উত্সর্গীকৃত ট্রানজিস্টরগুলির চেয়ে স্বাভাবিকভাবে ধীর হয়।

এটি কেবলমাত্র ডিস্ক থেকে পড়ার পরিবর্তে এটি ছেড়ে দেওয়ার পরিবর্তে আমরা সবসময় ডেটাটিকে মেমোরিতে ফিরিয়ে আনার কারণ নিয়ে আসে। আমরা স্মৃতিটিকে "পৃষ্ঠাগুলিতে" বিভক্ত করি যার প্রতিটিই স্মৃতিতে উপস্থিত বা উপস্থিত না হিসাবে চিহ্নিত হয়। অপারেটিং সিস্টেমটি এই টেবিলটি এমন ফর্ম্যাটে বজায় রাখে যা সিপিইউর সরাসরি ব্যবহার করার জন্য সুবিধাজনক। যখনই কোনও প্রোগ্রাম উপস্থিত থাকা ডেটা অ্যাক্সেস করে, সিপিইউতে থাকা হার্ডওয়্যারগুলি তাদের সরাসরি ডিআরএমে ডেটা অ্যাক্সেস দেয়। যখন ডেটা উপস্থিত না থাকে, তখন একটি "পৃষ্ঠার ত্রুটি" জারি করা হয়, যা অপারেটিং সিস্টেমটিকে ডিস্কের বাইরে থাকা পৃষ্ঠাটিকে মেমরির কিছু শারীরিক পৃষ্ঠায় লোড করতে এবং এই নতুন শারীরিক পৃষ্ঠায় সিপিইউ নির্দেশ করার জন্য টেবিল আপডেট করে telling

এই সম্পূর্ণ সমস্যার মূল চাবিকাঠি এর ব্যবহার হ্রাস করা। অনুশীলনে, আমরা দেখতে পেয়েছি যে মেমরিতে কোন ডেটা রাখতে হবে এবং কোন ডেটা ডিস্কে রেখে দিতে হবে তা বেছে নেওয়ার ক্ষেত্রে অপারেটিং সিস্টেমগুলি খুব ভাল so


2

এটি মানচিত্রের এন্ট্রিগুলিকে অস্থায়ী করে তৈরি করে।

যখন কোনও প্রোগ্রাম একটি লজিকাল ঠিকানা অ্যাক্সেস করে, সিপিইউ একটি সম্পর্কিত শারীরিক ঠিকানার জন্য মানচিত্রে সন্ধান করে। যদি এটি পাওয়া যায়, মেমরি অ্যাক্সেস প্রত্যাশার মতো এগিয়ে যায়; যদি এটি না পাওয়া যায় তবে অবশ্যই একটি শারীরিক ঠিকানা বরাদ্দ করতে হবে এবং সামগ্রীটি অন্য কোনও স্টোরেজ থেকে লোড করা হবে - "অদলবদল"। প্রতিটি শারীরিক ঠিকানা যদি ইতিমধ্যে কিছু যৌক্তিক ঠিকানায় বরাদ্দ করা হয়, তবে শারীরিক ঠিকানাগুলি উপলভ্য করার জন্য কিছু যৌক্তিক ঠিকানা অবশ্যই "অদলবদল" (তাদের সামগ্রীগুলি সোয়াপ স্পেসে ফিরে সংরক্ষিত) রাখতে হবে।

সর্বাধিক বরাদ্দ মেমরি হ'ল সোয়াপ স্পেসের আকার, যা ইনস্টল হওয়া মেমরির থেকে অনেক বড় হতে পারে। অদলবদলটিকে "আসল" মেমরি হিসাবে এবং র‌্যামের অদলবদলের জন্য উচ্চ গতির ক্যাশে হিসাবে ভাবতে সহায়ক হতে পারে।

(এটি একটি বিশদ বিবরণ থেকে অনেক দূরে, প্রাসঙ্গিক-তবে-অপ্রয়োজনীয় বিশদ না নিয়ে তাত্ক্ষণিক প্রশ্নের উত্তর দেওয়ার উদ্দেশ্য এটি।)


1

মূল ধারণাটি নির্ভর করে যে একটি আধুনিক সিপিইউ "কোন ঠিকানার ব্যবহারের জন্য নির্দিষ্ট প্রক্রিয়াটি ব্যবহারের জন্য বরাদ্দ করা হয়েছে, এবং কোন শারীরিক ঠিকানাগুলি (একটি মেমোরি বাসে এএক্স..এক্সএক্স লাইনগুলি মনে করেন) ট্র্যাক করে সংরক্ষণের অনুবাদ সারণী পরিচালনা করতে পারে" , বর্তমানে প্রকৃতপক্ষে ডেটা সঞ্চয় করার জন্য ব্যবহৃত হয় "" যদি কোনও হয় না "কারণ" মোটেও কিছুই নয় "একটি সম্ভাব্য এবং গ্রহণযোগ্য রাষ্ট্র: এই ক্ষেত্রে একটি ত্রুটি শর্ত (তথাকথিত" পৃষ্ঠা ত্রুটি ") একটি হার্ডওয়ার স্তরে উত্থাপিত হবে - এবং এই ত্রুটিটি একটি ওএস-স্তরের হ্যান্ডলারকে ট্রিগার করবে যা উদাহরণস্বরূপ যে কোনও অদলবদল ফাইলটিতে লিখিত লিখিত মেমরির বিষয়বস্তুগুলি শারীরিক মেমরির (কোনও পড়ার ক্ষেত্রে) কোনও ফ্রি স্থানে ফিরিয়ে দিতে পারে বা স্টাফ রাখার জন্য একটি আসল অবস্থান খুঁজে পেতে পারে (এতে লেখার ক্ষেত্রে), পূর্বোক্ত অনুবাদ টেবিলটি আপডেট করুন,এবং কেবলমাত্র সেই হাতটি সেই প্রক্রিয়াটিতে ফিরে আসে যা সেই মেমরিটি অ্যাক্সেস করার চেষ্টা করেছিল .. এবং যা ঘটেছে তা বুদ্ধিমান কেউ হবে না।


1

ভার্চুয়াল মেমরি:

1) ডিস্ক, বা এসএসডি বা "এনভিআরএএম এবং অন্যান্য ডিভাইসগুলিতে অতিরিক্ত" অদলবদল করা "সহ, একটি বৃহত ভার্চুয়াল ঠিকানা স্পেসকে অল্প পরিমাণে শারীরিক স্মৃতিতে ম্যাপ করার অনুমতি দেয়।

2) একটি বৃহত্তর ভার্চুয়াল ঠিকানা স্থানকে (উদাহরণস্বরূপ 64-বিট) একটি ছোট শারীরিক ঠিকানা স্পেসে ম্যাপ করার অনুমতি দেয় (যেমন 32 বা 64 বিট)

3) একটি বৃহত্তর শারীরিক ঠিকানা স্পেসে (উদাহরণস্বরূপ 32 বিট) একটি ছোট ভার্চুয়াল অ্যাড্রেস স্পেস (যেমন 32 বিট) ম্যাপ করার অনুমতি দেয় এবং এর ফলে পুরানো অ্যাপ্লিকেশনগুলিকে আরও শারীরিক ডিআআআআআআএমের সুবিধা নিতে অনুমতি দেয়।

4) শারীরিক স্মৃতিতে আমাদের ভঙ্গুর ও স্থিতিশীল শারীরিক ঠিকানা স্থানের সাথে ভার্চুয়াল ঠিকানার স্থানের সাথে সামঞ্জস্যপূর্ণ হতে দেয় allows

5) প্রক্রিয়াগুলি তাদের নিজস্ব ভার্চুয়াল ঠিকানার স্থান দেওয়ার অনুমতি দেয় এবং তাই একে অপর থেকে বিচ্ছিন্ন হয়ে যায়।

)) বিভিন্ন ভার্চুয়াল ঠিকানাগুলিকে একক শারীরিক পৃষ্ঠা বরাদ্দ করতে একই ডেটা মানগুলি ভাগ করে নেওয়ার অনুমতি দেয়।

এটি একটি একক প্রক্রিয়া বা ওএসের মধ্যেই ঘটতে পারে - বেশিরভাগ বিএসডি ইউএনআইএক্স থেকে প্রাপ্ত ওএসগুলিতে শূন্যের একমাত্র পঠনযোগ্য পৃষ্ঠা থাকে, এটি কোনও শূন্য-পূর্ণ ভर्च্যাল পৃষ্ঠাতে ম্যাপ করা যায়, সাধারণত COW (লেখার অনুলিপি করুন - কেবল জিরো পড়ুন, আটকা পড়েছেন) এবং পৃষ্ঠাটি ভাগ না করা এবং লিখিতযোগ্য করা হয়েছে)।

এটি প্রক্রিয়াগুলির মধ্যে ঘটতে পারে - যেমন ইউনিক্স কাঁটাচামচ (শিশু) এমন প্রক্রিয়া তৈরি করে যা প্রায় সমস্ত ভার্চুয়াল মেমরি একটি COW পদ্ধতিতে ভাগ করে।

এটি ওএসের মধ্যে ঘটতে পারে - যেমন ভার্চুয়াল মেশিন হোস্টের অতিথি ওএসগুলিতে পৃষ্ঠাগুলি নকল, ভাগ করা COW ইত্যাদি থাকতে পারে (সাম্প্রতিক কয়েকটি সুরক্ষা আক্রমণগুলি এর সুবিধা নিয়েছে))

)) ভার্চুয়াল মেমরি ভার্চুয়াল অ্যাড্রেস স্পেসের কিছু অংশ ফাইলগুলিতে ম্যাপ করার বা অন্য প্রসেসরের উপর মেমরির ম্যাপ করার অনুমতি দেয়, একই মাল্টিপ্রসেসর সিস্টেমে, বা ইন্টারনেট জুড়ে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.