ভার্চুয়াল মেমরিতে সমস্ত ডিস্কের সামগ্রী কেন হয় না?


0

সরলকরণের জন্য আসুন কেবল হার্ড ডিস্ক এবং র‌্যাম সম্পর্কে কথা বলি। বাদামের শেলের মধ্যে, ভার্চুয়াল মেমরিটি তখন হয় যখন "প্রোগ্রাম দ্বারা ব্যবহৃত মেমরি ঠিকানাগুলি [ কম্পিউটার মেমোরিতে শারীরিক ঠিকানাগুলিতে ম্যাপ করা হয়] "। দ্বারা কম্পিউটার মেমরি তারা কোনো স্মৃতি বলতে চাচ্ছি, হার্ড ড্রাইভ, ডান (শুধুমাত্র র্যাম) সহ?

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

সম্পাদনা: আমি প্রত্যেকে দেখতে পাচ্ছি যে ভার্চুয়াল মেমরির উদ্দেশ্যটি হ'ল যাতে র‌্যামটি বড় আকারের দেখা যায় তবে প্রসেসের অভ্যন্তরে অ্যাড্রেস স্পেসের সাথে কী করার দরকার নেই, উদাহরণস্বরূপ প্রতিটি প্রক্রিয়াটির নিজস্ব ঠিকানার স্থান আছে বলে মনে হয়? সুতরাং ভার্চুয়াল মেমরিটি কেবল আরও আকারের সাথে করার দরকার নেই ...

উত্তর:


2

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

কিছু পুরানো কম্পিউটার মেমরি হিসাবে ডিস্ক ব্যবহার করেছিল তবে ক্যাশে হিসাবে সত্যিকারের স্মৃতি থাকা অনেক বেশি দ্রুত is

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

সমস্ত ডিস্ক ভার্চুয়াল মেমরি হিসাবে ব্যবহৃত হয় না (তবে এটি হতে পারে)। কিছু অ-উদ্বায়ী স্টোরেজ (বিদ্যুৎ বন্ধ হওয়ার পরে থাকা স্মৃতি মেমরি) জন্য ব্যবহৃত হয়।

যে আপনার প্রশ্নের উত্তর দিতে হয়নি?


"ডিস্কে লেখা ভার্চুয়াল-মেমরি সম্ভবত ডিস্কে কখনও ছিল না, তাই এটি তখন সেখানে লিখতে হবে।" এটা আমার ভুল বোঝাবুঝি ছিল। তবে বলুন আপনি সবেমাত্র একটি 1 জিবি মুভি ডাউনলোড করেছেন। তাই ১ জিবি ডাটা ডিস্কে লেখা হয়েছে। যদি ব্যবহারকারী সিনেমাটি দেখার চেষ্টা করে তবে এটি কি ভার্চুয়াল মেমোরিতে অনুলিপিযুক্ত হয়? যদি হ্যাঁ, এটি কি প্রথম পাতা ফাইলটিতে অনুলিপি হয়ে যায় (এবং যেহেতু পৃষ্ঠা ফাইলটি হার্ড ডিস্কে রয়েছে যা হার্ড ডিস্কের এক অংশ থেকে অন্য অংশে অনুলিপি করার মতো) বা এটি সরাসরি র‌্যামে লোড হয়ে যায়?
সেলিব্রিটিস

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

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

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

"ভার্চুয়াল মেমরির উদ্দেশ্যটি যাতে র‌্যামটি বড় আকারের বলে মনে হয়" ... সেখানে 2 টি উদ্দেশ্য (সম্ভবত আরও?) ... 1 হ'ল প্রতিটি প্রক্রিয়াটির নিজস্ব মেমরির স্থান থাকতে পারে এবং সম্ভবত সমস্ত ঠিকানা শূন্য থেকে শুরু হয়, এবং ... 2 অতিরিক্ত মেমরি হিসাবে ডিস্ক ব্যবহার করার অনুমতি দিন। : উইকিপিডিয়া চেক করুন en.wikipedia.org/wiki/Virtual_memory
9mjb

2

ভার্চুয়াল মেমরিটি কীভাবে ব্যবহৃত হয়?

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

যখন কোনও প্রক্রিয়া কোনও ঠিকানায় 0x12345678 অ্যাক্সেস করে তখন ভার্চুয়াল মেমরি ম্যাপিং টেবিলের মধ্যে একটি অনুসন্ধানের জন্য কোন শারীরিক মেমরি ঠিকানাটি পড়তে হয় তা দেখতে হবে। প্রক্রিয়াটি ম্যাপিংটি দেখতে পাচ্ছে না, এটি স্বচ্ছভাবে সম্পন্ন হয়েছে।

একটি উদাহরণ: ধরে নেওয়া যাক আপনার একটি প্রক্রিয়া A. প্রক্রিয়াটি ভার্চুয়াল ঠিকানায় শুরু হতে পারে 0x00400000 এবং দৈর্ঘ্য 10 এমবি হতে পারে। একটি দ্বিতীয় প্রক্রিয়া বি এছাড়াও ভার্চুয়াল ঠিকানায় 0x00400000 থেকে শুরু হতে পারে এবং দৈর্ঘ্য 6 এমবি হতে পারে। উভয় প্রক্রিয়া একই ভার্চুয়াল ঠিকানায় শুরু হয়, তবে উভয় প্রক্রিয়ার শারীরিক স্মৃতি পৃথক। প্রক্রিয়া এ শারীরিক স্মৃতি 0x00010000 এ 10 এমবি ব্যবহার করতে পারে এবং প্রক্রিয়া বি শারীরিক স্মৃতি 0x00200000 এ 6 এমবি ব্যবহার করতে পারে।

ভার্চুয়াল মেমরির ব্যবহার কী?

  1. ভার্চুয়াল মেমরি প্রক্রিয়া পৃথক করার অনুমতি দেয়। প্রক্রিয়া এ কেবল তার শারীরিক স্মৃতিতে অ্যাক্সেস করতে পারে যা তার ভার্চুয়াল মেমরিটিতে ম্যাপ করা আছে। প্রক্রিয়া এ প্রক্রিয়া বি এর স্মৃতিতে গোলযোগ করতে পারে না। এটি একটি সুরক্ষা সমস্যা (প্রক্রিয়া এ প্রসেস বি এর স্মৃতি থেকে গোপনীয়তা পড়তে পারে না) এবং একটি স্থিতিশীলতা সমস্যা (প্রসেস এ খারাপ পয়েন্টার ব্যবহার করার সময় অন্যান্য প্রক্রিয়াগুলির মেমোরিতে বিঘ্নিত হবে না, তবে অন্যান্য প্রক্রিয়াগুলিতে কোনও প্রভাব ফেলেনি)।
  2. আপনার যদি এমন একটি প্রোগ্রাম থাকে যাতে 2 এমবি কোড, 1 এমবি ধ্রুবক ডেটা এবং 5 এমবি ডায়নামিক ডেটা রয়েছে এবং আপনি যদি এই প্রোগ্রামটি দু'বার শুরু করেন তবে প্রক্রিয়া A এবং B কোড এবং ধ্রুবক ডেটা বিভাগের জন্য একই শারীরিক মেমরি ভাগ করে নেবে। সুতরাং আপনার 2 * (2 + 1 + 5) এমবি শারীরিক মেমরির প্রয়োজন হবে না তবে 2 + 1 + 2 * 5 এমবি প্রয়োজন।
  3. ভার্চুয়াল মেমরি অগত্যা র‌্যাম দ্বারা ব্যাক আপ করা প্রয়োজন হয় না। ভার্চুয়াল মেমরিটি র‍্যাম হতে পারে তবে এটি ডিস্কের স্থানও হতে পারে।
  4. অপারেটিং সিস্টেমগুলি প্রকৃত শারীরিক মেমরির (গুগল অনুসন্ধান: লিনাক্স মেমরি ওভারকমিট) ব্যাক আপ করার চেয়ে কোনও প্রক্রিয়াটিকে আরও মেমরি দিতে পারে।

আপনার সমস্ত ভার্চুয়াল মেমরি কেবল র‌্যাম দ্বারা ব্যাক আপ করা থাকলে থ্রেশিং ঘটে না। এটি তখনই ঘটে যখন আপনার ভার্চুয়াল মেমরিটি ডিস্ক স্পেস দ্বারা ব্যাক আপ করা হয়। এটি বুঝতে যে প্রথমে ডিস্কে ভার্চুয়াল মেমরি কীভাবে কাজ করে তা একবার দেখে নেওয়া যাক।

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

এখানে সমস্যাটি কীভাবে কোন র‌্যাম মেমরি ডিস্কে স্থানান্তরিত করতে হবে তা স্থির করবেন। সবচেয়ে খারাপ পরিস্থিতিতে আপনার দুটি প্রক্রিয়া চলতে পারে, একটি লুপে মেমরি পৃষ্ঠা 1 অ্যাক্সেস করতে একটি প্রক্রিয়া করুন এবং একটি লুপের মেমরি পৃষ্ঠা 2 অ্যাক্সেস করতে বি প্রসেস করুন এবং আপনার র‍্যামের পৃষ্ঠা 1 এবং ডিস্কের পৃষ্ঠা 2 রয়েছে। প্রক্রিয়া বি অ্যাক্সেস পৃষ্ঠা 2 এ, পৃষ্ঠা 1 ডিস্কে স্থানান্তরিত হতে পারে, পৃষ্ঠা 2 র‍্যামে স্থানান্তরিত হবে এবং প্রক্রিয়া বি পৃষ্ঠায় 2 পৃষ্ঠাটি অ্যাক্সেস করতে পারে Then তারপরে প্রক্রিয়া A নির্ধারিত হয় এবং পৃষ্ঠা 2 ডিস্কে স্থানান্তরিত হয়, পৃষ্ঠা 1 র‌্যামে স্থানান্তরিত হয় এবং A প্রক্রিয়া করে পৃষ্ঠাটি অ্যাক্সেস করতে পারে ১. আপনি যদি দুটি পৃষ্ঠাগুলি অদলবদল করতে থাকেন তবে প্রক্রিয়াগুলি খুব খারাপ সম্পাদন করবে এবং আপনি 100% ডিস্ক কার্যকলাপ দেখতে পাবেন। এই সীমিত দৃশ্যে এটি বেশ স্পষ্ট যে অন্যান্য পেজিং কৌশলগুলি আরও ভাল সম্পাদন করা উচিত। বেশ পরিশীলিত কোড বিদ্যমান যা কোন মেমরিটি র‌্যাম থেকে ডিস্কে স্থানান্তরিত করবে তা স্থির করে। উদাহরণস্বরূপ একটি কৌশলটি সম্প্রতি অ্যাক্সেস করা পৃষ্ঠাগুলি রাখবে এবং সর্বশেষে ব্যবহৃত পৃষ্ঠাগুলি সরিয়ে নেবে। অবশ্যই আপনি ক) ভবিষ্যতের দিকে নজর না দিয়ে সব ক্ষেত্রেই অনুকূল কৌশল থাকতে পারে না এবং খ) সমস্যাটি আপনার যত বেশি প্রক্রিয়া করবে বা আপনার যত কম র‌্যাম রয়েছে তা সার্থক হয়ে উঠবে।

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


1

ভার্চুয়াল মেমরি এমন একটি মেমরি স্পেস যা ফিজিকাল মেমোরি (র‌্যাম) এর উপরে ওপরে সজ্জিত ফাইল / পার্টিশনের উপরে থাকে।

সোয়াপ ফাইল / পার্টিশন একটি হার্ড ড্রাইভের একটি বিশেষ ফাইল / বিভাগ যা কম্পিউটারটি র‌্যাম হিসাবে ব্যবহার করতে পারে। যখন অদলবদল ফাইল / পার্টিশনটি সংজ্ঞায়িত করা হয়, তখন আর কিছু নেই যা সেই স্থানটি ব্যবহার করতে পারে। সুতরাং তাত্ত্বিকভাবে আপনার কাছে 100 গিগ থাকতে পারে অদলবদলের জন্য উত্সর্গীকৃত, তবে যদি আপনার কাছে কেবল 200 গিগ হার্ড ড্রাইভ থাকে তবে এটি আপনার স্পেস অর্ধেক হয়ে গেছে।

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

এটি কোনও প্রোগ্রামকে অ্যাক্সেস করার জন্য প্রস্তুত (সম্বোধন) করার জন্য প্রস্তুত প্রচুর পরিমাণে ডেটা সঞ্চয় করতে দেয় তবে এখনও অন্যান্য প্রোগ্রামগুলিকে একই জিনিস করার অনুমতি দেয়।

আপনার পর্যাপ্ত র‍্যাম না থাকাকালীন হার্ড ড্রাইভগুলি কেন ক্ষত হওয়ার কারণ হ'ল কম্পিউটারটি Program Aঅদলবদল / পার্টিশন থেকে ডেটা পেতে এবং এটিকে র‌্যামে রেখে দিতে হয়, তবে যখন Program Bতার ডেটাতে অ্যাক্সেসের প্রয়োজন হয়, তখন কম্পিউটারটি থাকে Program A'sডেটা রাখার জন্য হার্ড ড্রাইভে র‍্যামে থাকা ডেটা ফিরিয়ে আনতে Program B's

হার্ড ড্রাইভের তুলনায় র‌্যামও অনেক দ্রুত, তাই কম্পিউটার যখন নিজের অদলবদল ফাইল / পার্টিশনটি ছিন্ন করতে শুরু করে তখন সাধারণত আপগ্রেড করা প্রথম জিনিস why


কোনও প্রোগ্রাম র‍্যামে লোড হওয়ার আগে, অদলবদল ফাইলটি দিয়ে কি আগে চলে যেতে হবে?
সেলিব্রিটা

সুতরাং মূলত অদলবদল ফাইলটি ভার্চুয়াল মেমরির কৌশলটি প্রয়োগ করতে কী ব্যবহৃত হয়?
সেলিব্রিটিস

1
না, কোনও প্রোগ্রাম যখন চালানো হয় তখন সরাসরি র‌্যামে যাবে। যাইহোক, যদি এটির পরে ফিজিকাল র‌্যামের চেয়ে বেশি ডেটা থাকে, তবে যে অতিরিক্ত ডেটা ফিট হয় না সেগুলি অদলবদল ফাইলটিতে (মূলত) যাবে
লরেন্স

এবং যখন আপনি "কোনও প্রোগ্রাম সরাসরি র‌্যামে চলে যাবে" বলবেন যে র‌্যাম ভার্চুয়াল মেমরির অংশ, তাই না?
সেলিব্রিটিস

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

0

সহজ হতে

কম্পিউটার মেমোরি হ'ল অবিচ্ছিন্ন স্টোরেজ। যেমন র‌্যাম এল 1 এল 2 ক্যাশে ইত্যাদি

ডিস্ক অবিরাম থাকে। কোনও স্টোরেজ নেই সেখানে মেমোরি।

ভার্চুয়াল মেমরি হ'ল আসল কম্পিউটার মেমোরি এবং ডিস্কে একটি স্পিজিয়াল ফাইলের সংমিশ্রণ যা এই ক্ষেত্রে মেমরি এক্সটেনশন হিসাবে কাজ করে যে সি মেমরিটি উইন্ডোজে লিনাক্স এবং পেজফাইলে অদলবদল হিসাবে পরিচিত না।

সুতরাং না কোনও ডিস্ক থেকে ডিস্কে কোনও অনুলিপি নেই। কেবল ডিস্ক এবং পিছনে রাম।

আপনি যদি এই বিষয়ে আরও তথ্য না পেতে চান তবে আমার মনে হয় "স্মৃতি" গুগল করা, "অদলবদল" বা "পেজ ফাইল" আপনাকে সহায়তা করবে।


তবে আমার বক্তব্যটি সেই বিশেষ ফাইলটিতে রয়েছে (উদাহরণস্বরূপ অদলবদল বা পেজফাইলে বা আপনি যেটিকে কল করতে চান) ডেস্কের অবিরাম সঞ্চয়স্থান থেকে অদলবদলটি সোয়াপ ফাইলটিতে প্রতিবার অনুলিপি করতে হবে, তাই না? অন্য কথায়, কম্পিউটারটি বন্ধ হয়ে গেলে অদলবদলের ফাইলটির কী হয়?
সেলিব্রিটিস

1
এটি মোছা হবে না
Keltari

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

0

থ্রেশিংকে "যখন হার্ড ড্রাইভ সিস্টেম মেমরি এবং ভার্চুয়াল মেমরির মধ্যে তথ্য স্থানান্তরিত করে অতিরিক্ত কাজ করা হয়" হিসাবে সংজ্ঞায়িত করা হয়

কিছুটা সহজ করার জন্য, ভার্চুয়াল মেমরিটি ডিস্কের সাহায্যে সমর্থিত হয়, যেমন উইন্ডোজের পেজফাইলে বা লিনাক্সের মধ্যে অদলবদল partition

সুতরাং এর দ্বারা বোঝা যায় যে হার্ড ডিস্ক থেকে ডেটা স্থানান্তর, হার্ড ডিস্কে ফিরে তবে ভার্চুয়াল মেমরির জন্য মনোনীত বিভাগটি?

ভার্চুয়াল মেমরি বা পেজফাইলে এমন প্রক্রিয়াগুলির র‌্যাম ধারণ করে যা "অদলবদল হয়ে গেছে"। আধুনিক সিস্টেমগুলি ডিস্কে এমন প্রক্রিয়াগুলি অদলবদল করার চেষ্টা করে যা কিছুক্ষণ ব্যবহার করা হয়নি, যেমন আপনি কিছুক্ষণের মধ্যেও ছোঁয়ানি এমন ন্যূনতম প্রোগ্রামগুলি, বা পরিষেবাগুলি যা দীর্ঘকাল ধরে নিষ্ক্রিয় ছিল।

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

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

যদি এটি হয় তবে কেন হার্ড ডিস্কের সমস্ত বিষয়বস্তু সবসময় ভার্চুয়াল মেমরির মধ্যে থাকে না?

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

সম্পাদনা: আমি প্রত্যেকে দেখতে পাচ্ছি যে ভার্চুয়াল মেমরির উদ্দেশ্যটি হ'ল যাতে র‌্যামটি বড় আকারের দেখা যায় তবে প্রসেসের অভ্যন্তরে অ্যাড্রেস স্পেসের সাথে কী করার দরকার নেই, উদাহরণস্বরূপ প্রতিটি প্রক্রিয়াটির নিজস্ব ঠিকানার স্থান আছে বলে মনে হয়?

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

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


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

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

আমার ধারণা আপনার যদি যথেষ্ট ঠিকানা থাকে তবে আপনি এটি করতে পারতেন। তবে, আপনি সবসময় এলোমেলোভাবে ডিস্ক অ্যাক্সেস করতে চান না, প্রায়শই আপনি শেষ করতে কোনও ফাইল শুরু করার মাধ্যমে কেবল স্ট্রিম করতে চান - এখানে, আপনি যতটা খালি চিবিয়ে খাচ্ছেন তত দ্রুত ডেটাগুলির স্বেচ্ছাচারিত অংশগুলিতে অ্যাক্সেস করতে সক্ষম হবেন না care শুরু থেকে শেষ পর্যন্ত কোনও ফাইলের সমস্ত ডেটা। উদাহরণস্বরূপ সংগীত এবং সিনেমাগুলি এ জাতীয় কাজ করে। সুতরাং আপনার যদি পুরো ডিস্কটিতে সত্যই এলোমেলো অ্যাক্সেসের প্রয়োজন না হয় এটি সামান্য পরিশোধের সাথে সম্ভাব্য একটি প্রচেষ্টা হতে পারে। যদিও আমি নিশ্চিত যে কিছু উন্নত ডাটাবেস মূলত mmapপুরো ডিস্ক, যদিও।
LawrenceC
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.