র‌্যামকে কীভাবে ভাগ করবেন: লিনাক্সের অর্ধেক, অন্য অর্ধেক অ্যাপ্লিকেশনটির জন্য


0

আমাদের 1 জিবি মেমরি সহ একটি সিস্টেম রয়েছে। এর মধ্যে, আমি লিনাক্সের জন্য কেবল 512MB সীমাবদ্ধ করতে চাই এবং লিনাক্সে চালিত কোনও অ্যাপ্লিকেশন থেকে সরাসরি 512MB অবধি অ্যাক্সেস করতে চাই।

২.6.x এ অর্জনের প্রস্তাবিত অর্থ কী?

শুভেচ্ছা, প্রব


1
আপনার যদি জিজ্ঞাসা করতে হয় তবে আপনি চেষ্টা করতে চান না।
— Ignacio Vazquez-Abram

যদি আমার এটি করতে হয় তবে আমি মনে করি যে আমি জেনকে দুটি ডোমেন এবং প্রতিটি "লিনাক্স" এর একটি অনুলিপি আপনার "বিশেষ" ব্যবহারের জন্য উত্সর্গীকৃত সেট আপ করব। দেখুন: xen.org
— জেরি কফিন

উত্তর:


0

আপনি লিনাক্স চালাচ্ছেন - আপনার মেশিনের সমস্ত মেমরি লিনাক্সের জন্য উপলব্ধ যাতে লিনাক্স সেগুলি আপনার প্রোগ্রামে দিতে পারে।

সিস্টেমে যদি 512 এমবি বিনামূল্যে উপলব্ধ থাকে তবে এটি এটি আপনার প্রোগ্রামকে দেবে, তা না পারলে তা পারবে না।

512 এমবি র‌্যামে লক হয়ে গেছে (ডিস্কে সরে যেতে পারে না) এটির জন্য আপনি অতিরিক্ত পদ্ধতি ব্যবহার করতে পারেন তবে আমার সন্দেহ হয় এটি আপনার যা করা দরকার তা ছাড়িয়ে।


0

কেবলমাত্র আমি যা ভাবতে পারি তা হ'ল আপনার অ্যাপ্লিকেশন ম্যালোক () 512 ম্যাগ শুরু হয় যখন এটি প্রথম শুরু হয় এবং তারপরে প্রোগ্রামের মধ্যে মেমরিটিকে ম্যানুয়ালি ভাগ করে দেওয়া হয়। ও ছেলে ওহ ছেলে যে কুরুচিপূর্ণ।


0

আমি আসলেই প্রশ্নটি বুঝতে পারি না; আপনাকে আপনার উদ্দেশ্যটি আরও স্পষ্টভাবে ব্যাখ্যা করতে হবে।

লিনাক্স অ্যাপ্লিকেশনগুলিতে তার মেমরি বরাদ্দ করে, তাই যদি লিনাক্সের মেমরি থাকে তবে এটি এটি আপনার অ্যাপ্লিকেশনটিতে দেবে।

আপনি যদি এখন অবশ্যই মেমরি পেতে চান, এখন আপনার উচিত

  • এটি বরাদ্দ করুন (উদাহরণস্বরূপ, malloc বা mmap সহ)
  • সমস্ত পৃষ্ঠা স্পর্শ করুন (যেমন প্রতিটি পৃষ্ঠায় কিছু লিখে)
  • মলক করুন () এটি - এটি সরিয়ে দেওয়া হবে না তা নিশ্চিত করার জন্য। অথবা স্যুপটি কনফিগার করা নেই (এনবি: স্ব্যুপ অক্ষম করা থাকলে ফাইল-ব্যাকযুক্ত পৃষ্ঠাগুলি এখনও ফেলে দেওয়া যেতে পারে)।

আপনার প্রোগ্রামটি মূলত যে পৃষ্ঠাগুলি ব্যবহার করে সেগুলি সত্যই যদি আপনার প্রয়োজন হয় তবে মলকল ব্যবহার করুন।


0

এর সাথে একটি 512MB বেনামে ম্যাপিং বরাদ্দ করুন mmap()এবং MAP_POPULATEতারপরে এটি লক করুন mlock()।


0

আপনার অ্যাপ্লিকেশনটি "ডিআইএমএম 2, চিপ 3, 42 ম বাইট" এর সাথে কথা বলতে পারে না। লিনাক্স সহ সিস্টেমের অন্যান্য অংশগুলির প্রয়োজন মেমরির প্রতিটি বাইটে একটি সাধারণ সংখ্যা (ঠিকানা) নির্ধারণ করার জন্য। আপনি যদি লিনাক্স থেকে 512 এমবি বাদ দেন তবে এটির একটি ঠিকানাও থাকবে না। তার মানে আপনার অ্যাপ্লিকেশনটি মেমরির বিষয়ে কথা বলতেও পারে না, এটি ব্যবহার করতে দিন।

আরও সমস্যা হবে; যেমন হাইবারনেট ফাংশন ঘুম থেকে ওঠার সময় স্মৃতি পুনরুদ্ধার করবে না। তবে এটি সমস্ত তাত্ত্বিক, যেহেতু স্মৃতিতে কোনও কিছুই থাকবে না - ঠিকানা ছাড়াই, মেমরিতে লেখার উপায় নেই।

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