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