যখন একটি 32 বিট প্রোগ্রাম (একটি 64 বিট মেশিনে চলছে) মেমরির সীমাটি হিট করে তখন কী ঘটে?


1

আমি সাধারণত আমার ব্রাউজারে কয়েক শতাধিক ট্যাব আপ করি (প্যালে মুন x86), প্রায়শই প্রোগ্রামটির মেমোরিটি 2-3 গিগাবাইট পর্যন্ত চালিত করি।

কোনও প্রোগ্রাম যখন মেমরির সীমাটির বিপরীতে চলে তখন কী ঘটে? সিস্টেমটি কি কেবল এটিকে মেমরি খাওয়ায়, তবে "এখন" ডিস্ক অদলবদলের আকারে? প্রোগ্রামটি "জানে" যে এটি মেমরির সিস্টেম সীমাতে আঘাত করেছে?

এটি কেবল সম্প্রতি হয়েছে যে আমি (সরল) অন্তর্দৃষ্টিটির ফ্ল্যাশ পেয়েছি কেন ব্রাউজারটি কেন সেগুলি ছাড়িয়ে মেমরির আকারে বাড়ছে না, এবং ভয়ঙ্কর পারফরম্যান্সের সাথে খনন করতে শুরু করে - 32/64 বিট মেমরির স্থান!

সুতরাং আমি এখন ওয়াটারফক্সের দিকে ঝুঁকতে শুরু করেছি, এটি একটি এক্স 64 ভেরিয়েন্ট। কোনও এক্স 64 প্রোগ্রাম সিস্টেমটি "আর" না বলে যতক্ষণ না তার স্মৃতি ব্যবহারের পরিমাণ বাড়বে?


প্রোগ্রামটি যদি "স্মার্ট" হয় তবে এটি মেমরির সীমাটিকে আঘাত করা (সম্ভাব্য পরিমাণে) এড়ানো বা সীমা ছাড়িয়ে গেলে ত্রুটি বার্তাগুলি "পরিচালনা" করে। প্রোগ্রামটি "স্মার্ট" না হলে এটি ক্র্যাশ হয়ে যায়। তবে যে কোনও অ্যাপ্লিকেশনটিতে 2-3 জি ব্যবহার করা বেশিরভাগ সিস্টেমে চাপ দিতে চলেছে, বিশেষত যদি আপনি ইনস্টল করা র‌্যাম প্রায় 6 জি এর চেয়ে কম হয়।
ড্যানিয়েল আর হিক্স

উত্তর:


6

যখন একটি 32 বিট প্রোগ্রাম (একটি 64 বিট মেশিনে চলছে) মেমরির সীমাটি হিট করে তখন কী ঘটে?

32-বিট সিস্টেমে একই জিনিস ঘটে: প্রোগ্রামটি কোনওভাবে ব্যর্থ হয়।

যতক্ষণ না 32-বিট প্রোগ্রাম সম্পর্কিত, "মহাবিশ্ব" 4GB অবধি ডেটা নিয়ে গঠিত । এটি তার নিজের ছোট্ট বাক্সের বাইরের বৃহত্তর অঞ্চল সম্পর্কে জানে না (মিচিও কাকু তাঁর হাইপারস্পেস বইটিতে যে মাছের সাদৃশ্য ব্যবহার করেছেন তা ভাবেন )।

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

নিম্ন-স্তরের, প্রোগ্রামিং পয়েন্ট অফ ভিউ থেকে এ সম্পর্কে চিন্তা করুন। 32-বিট প্রোগ্রামটি 32-বিট পয়েন্টারগুলি সঞ্চয় করতে ব্যবহার করে তা হ'ল ডেটা। এর অর্থ এটি সর্বাধিক 4GB ডেটাতে নির্দেশ করতে পারে। যদি এটি ইতিমধ্যে 4 জিবি ব্যবহার করে ফেলেছে, তবে ওএস আরও বেশি দিতে পারে, তবে নতুন পয়েন্টারের মান কী হবে? নতুন ঠিকানাটি খুব দূরে থাকবে এবং প্রোগ্রামটি 32-বিট পয়েন্টারে এত বড় ঠিকানা রাখতে সক্ষম হবে না।

সাদৃশ্য হিসাবে, ফোন নম্বরগুলির কথা ভাবেন। আসুন আপনার শহরে বলা যাক, খুব বেশি লোক নেই, তাই আপনার ফোন নম্বরগুলি সমস্ত 5-সংখ্যা দীর্ঘ 10,000 নম্বর পর্যন্ত মঞ্জুরি দেয়, সুতরাং আপনার সমস্ত বইয়ের ঠিকানাগুলি ফোন নম্বরগুলির জন্য 10,000 টি স্পেস থাকতে পারে। দেশে অবশ্য প্রচুর লোক রয়েছে, সুতরাং এটি 7-সংখ্যার নম্বর ব্যবহার করে। যদিও দেশ পারবেন দূরে আপনি একজন ব্যক্তির নম্বর দিতে, আপনি আপনার ঠিকানা-বুক এ সঞ্চয় কারণ আপনি শুধুমাত্র স্থান 5 টি সংখ্যা সংখ্যা প্রিন্ট করতে হবে পারব না তাই একবার আপনি 10,000 সংখ্যার মুদ্রিত হয়েছে, বইটি সম্পূর্ণ পূর্ণ।


2

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


2

যখন একটি 32-বিট প্রোগ্রাম ভার্চুয়াল মেমরি (ঠিকানা স্থান) সীমাতে পৌঁছতে শুরু করে, তখন এর মেমরির বরাদ্দ ব্যর্থ হতে শুরু করবে। প্রতিটি মেমরি বরাদ্দকরণ প্রক্রিয়াটির পর্যাপ্ত উপলব্ধ, প্রসেসের ভার্চুয়াল মেমরি স্পেসের সামঞ্জস্যপূর্ণ ঠিকানা স্থান এবং 32-বিট প্রক্রিয়াটির জন্য 4 জিবি প্রয়োজন। উইন্ডোজ On-তে, 2 জিবি এবং 3 জিবি সীমাবদ্ধতা যদি তারা বড় ঠিকানা সচেতন হয় তবে 64৪-বিট অপারেটিং সিস্টেমের 32-বিট প্রোগ্রামগুলিতে প্রয়োগ হয় না। (যা প্রতিটি উল্লেখযোগ্য আধুনিক প্রোগ্রাম হওয়া উচিত।)

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

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

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