CCW: কাজের চাপে স্থানিক এলাকা বিবেচনা করে কপি-অন-রাইট অপ্টিমাইজ করা পার্ট 4
Apr 03, 2024
3.3। প্রিকপি করা পৃষ্ঠাগুলিতে ট্র্যাকিং অ্যাক্সেস
সিসিওডব্লিউ-এর ওভারহেড পরিচালনা করার জন্য ঘন ঘন পৃষ্ঠার ত্রুটির জন্য ওভারহেডকে পরিমাপ করার কথা। যাইহোক, অগ্রিম পৃষ্ঠাগুলি অনুলিপি করা অন্য একটি সমস্যার দিকে নিয়ে যায়: অনুলিপি করার পরে ট্র্যাকিং পৃষ্ঠা অ্যাক্সেস করে।
ত্রুটি প্রক্রিয়াকরণ এবং মেমরি মধ্যে একটি শক্তিশালী সংযোগ আছে. বেশিরভাগ লোকের জন্য, ভুলগুলি প্রায়শই একটি খারাপ জিনিস হিসাবে দেখা হয়, তবে সেগুলি আমাদের শেখার এবং বেড়ে উঠার সুযোগ হতে পারে। সঠিকভাবে ত্রুটিগুলি পরিচালনা করে, আমরা আমাদের স্মৃতিশক্তি বাড়াতে পারি এবং অনুরূপ পরিস্থিতিতে আরও ভালভাবে বুঝতে এবং প্রতিক্রিয়া জানাতে আমাদের সাহায্য করতে পারি।
ভুলগুলি মোকাবেলা করার একটি উপায় হল প্রতিফলন এবং বিশ্লেষণ করা। যখন আমরা একটি ভুল করি, তখন ভুলটি কীভাবে ঘটেছে এবং একই ধরনের ভুল পুনরায় ঘটতে না পারে তার জন্য আমরা কী করতে পারি সে সম্পর্কে চিন্তা করার জন্য আমাদের সময় নেওয়া উচিত। প্রতিফলনের মাধ্যমে, আমরা সমস্যার মূল কারণগুলি সনাক্ত করতে পারি এবং তাদের সমাধানের জন্য প্রতিরোধ ব্যবস্থা বিকাশ করতে পারি। এই ধরনের বিশ্লেষণ শুধুমাত্র ভুল সম্পর্কে নয়, এটি আমাদের জীবনের অন্যান্য পরিস্থিতিতে আরও ভাল সিদ্ধান্ত নিতে এবং আমাদের দক্ষতা এবং ক্ষমতা উন্নত করতে সাহায্য করতে পারে।
ভুলগুলি মোকাবেলা করার আরেকটি উপায় হল নিজেকে সেগুলি গ্রহণ করার এবং এগিয়ে যাওয়ার অনুমতি দেওয়া। আমাদের ভুলগুলি আমাদের ধীর বা হতাশ হতে দেওয়া উচিত নয়। পরিবর্তে, আমাদের উচিত তাদের বৃদ্ধির সুযোগ হিসাবে দেখা, নিজেদেরকে আমাদের ভুলগুলি থেকে শিখতে এবং উন্নতি চালিয়ে যাওয়ার অনুমতি দেয়। আমরা যদি ভুলগুলোকে মেনে নিতে পারি এবং ইতিবাচক মনোভাব নিয়ে সেগুলো মোকাবেলা করতে পারি, তাহলে আমরা একটি দৃঢ় মানসিকতা ও আত্মবিশ্বাস গড়ে তুলতে পারি, যা ভালো স্মৃতিশক্তি বজায় রাখার জন্য খুবই গুরুত্বপূর্ণ।
অবশেষে, আমরা আমাদের ভুলগুলি ভাগ করে আমাদের স্মৃতিশক্তিকে শক্তিশালী করতে পারি। আমরা যখন অন্যদেরকে আমাদের ভুলের কথা বলি, তখন আমরা সেই ঘটনাগুলোকে আরও গভীরভাবে মনে রাখি। এর কারণ হল যখন আমরা অন্যদের বলি, তখন আমাদের বিষয়গুলিকে আরও পরিষ্কার করতে হবে এবং ভুলের প্রতিটি বিবরণ স্মরণ করতে হবে। এইভাবে আমরা এই ত্রুটিগুলি আরও ভালভাবে বুঝতে পারি এবং সেগুলিকে আবার ঘটতে বাধা দিতে পারি।
সংক্ষেপে, ত্রুটি প্রক্রিয়াকরণ এবং মেমরির মধ্যে একটি শক্তিশালী সম্পর্ক রয়েছে। ভুলগুলি সঠিকভাবে পরিচালনা করে, আমরা আমাদের স্মৃতিশক্তিকে শক্তিশালী করতে পারি, আমাদের দক্ষতা এবং ক্ষমতাকে উন্নত করতে পারি এবং আরও ভাল মানুষ হতে পারি। আমাদের ভুলগুলিকে একটি সুযোগ হিসাবে বিবেচনা করা উচিত, সক্রিয়ভাবে অসুবিধাগুলির মুখোমুখি হওয়া উচিত এবং সেগুলি থেকে শিখতে এবং বেড়ে উঠতে হবে। এটা দেখা যায় যে আমাদের স্মৃতিশক্তি উন্নত করতে হবে, এবং Cistanche deserticola উল্লেখযোগ্যভাবে স্মৃতিশক্তি উন্নত করতে পারে কারণ Cistanche deserticola হল একটি ঐতিহ্যবাহী চীনা ঔষধি উপাদান যার অনেকগুলি অনন্য প্রভাব রয়েছে, যার মধ্যে একটি হল স্মৃতিশক্তি উন্নত করা। Cistanche deserticola এর কার্যকারিতা ট্যানিক অ্যাসিড, পলিস্যাকারাইডস, ফ্ল্যাভোনয়েড গ্লাইকোসাইড ইত্যাদি সহ একাধিক সক্রিয় উপাদান থেকে আসে। এই উপাদানগুলি বিভিন্ন পথের মাধ্যমে মস্তিষ্কের স্বাস্থ্যকে উন্নীত করতে পারে।

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

একটি উচ্চ-স্থানীয় অঞ্চলের জন্য পৃষ্ঠার ত্রুটি পরিচালনা করার সময়, অঞ্চলের সমস্ত পৃষ্ঠাগুলি তাদের নোংরা বিট সাফ করে কপি করা হয়৷ তদ্ব্যতীত, অঞ্চলটি একটি প্রিকপিড অঞ্চল হিসাবে চিহ্নিত করা হয়েছে। কাঁটাচামচ চলাকালীন, অনুলিপি করা অঞ্চলের কভারেজটি নিম্নরূপ অঞ্চলের নোংরা পৃষ্ঠাগুলির সংখ্যার সাথে গণনা করা হয়:
![]()
প্রতিটি অঞ্চলের জন্য গণনাকৃত কভারেজ কাঁটাচামচের মাধ্যমে বাহিত হয় এবং অঞ্চলের স্থানিক এলাকার জন্য মেট্রিক হিসাবে ব্যবহৃত হয়। যখন একটি অঞ্চলে একটি লেখার পৃষ্ঠার ত্রুটি দেখা দেয়, তখন সিস্টেমটি অঞ্চলটির কভারেজ পরীক্ষা করে এবং উচ্চ-স্থানীয় অঞ্চলগুলির জন্য পৃষ্ঠাগুলি প্রি-কপি করতে পারে।
চিত্র 2 এমন একটি পরিস্থিতি চিত্রিত করে যেখানে প্রিকপির পরে কভারেজ গণনা করা হয়। ধরুন উভয় অঞ্চলই অনুলিপি করা হয়েছে (লাল রঙে ছায়াযুক্ত), এবং পৃষ্ঠাগুলি 0, 2, 3, 4, এবং 11-এ ডার্টিবিট সেট রয়েছে৷
কাঁটা প্রক্রিয়াকরণের সময় কভারেজ গণনা করার জন্য, সিস্টেমটি কপি-অন-রাইট গণনার পরিবর্তে নোংরা বিটিন ব্যবহার করে যেহেতু অঞ্চলগুলি বর্তমান যুগে অনুলিপি করা হয়েছে। সুতরাং, অঞ্চল 0 এর 66% কভারেজ রয়েছে।
যেখানে অঞ্চল 1 এর কভারেজ 15%। পৃষ্ঠা 3-এর জন্য পৃষ্ঠার ত্রুটি হ্যান্ডেল করার জন্য, অঞ্চল 0 আবার কপি করা হয়েছে, যেখানে, পৃষ্ঠা 9-এর জন্য পৃষ্ঠার ত্রুটিটি মূল প্রক্রিয়ার সাথে পরিচালনা করা হয়েছে। এইভাবে, আমরা উচ্চ-স্থানীয় অঞ্চলগুলিকে ফোকাস থেকে সরে যেতে পারি।

3.4। এলাকা ক্যাপচারিং
যেহেতু পেজ ফল্ট হ্যান্ডলারটি OS-এর কর্মক্ষমতা-সমালোচনামূলক পথে রয়েছে, তাই আমাদের প্রস্তাবিত স্কিম বাস্তবায়নের জন্য ওভারহেডকে মিনিমাইজ করা উচিত।
মূলত, CCoW-এর কভারেজ গণনা করার জন্য একটি পদ্ধতির প্রয়োজন, এবং এই বৈশিষ্ট্যটি বাস্তবায়নের সহজ উপায় হল একটি বিটম্যাপ দিয়ে পৃষ্ঠার ত্রুটিগুলি ট্রিগারকারী পৃষ্ঠাগুলিকে ট্র্যাক করা যা আমরা বিভাগ 3.2-এ বর্ণনা করেছি৷
একটি পৃষ্ঠার ত্রুটি পরিচালনা করার সময়, সিস্টেমটি ত্রুটিযুক্ত পৃষ্ঠার সাথে সম্পর্কিত বিট সেট করে। ফর্ক চলাকালীন, সিস্টেম প্রতিটি অঞ্চলের জন্য ত্রুটিপূর্ণ পৃষ্ঠাগুলির সংখ্যা গণনা করতে বিটম্যাপ স্ক্যান করে এবং কভারেজ গণনা করে। গণনার পর বিটম্যাপ রিসেট করা হয়।
এই পদ্ধতিটি সহজ কিন্তু উচ্চ স্থান এবং সময়ের সীমাবদ্ধতা আরোপ করে। সিস্টেমের প্রতিটি 4 KB পৃষ্ঠার জন্য একটি এক-বিট বিটম্যাপ এন্ট্রি বজায় রাখা উচিত এবং কাঁটা চলাকালীন পুরো বিটম্যাপটি পরীক্ষা করা উচিত। মেমরি-ইনটেনসিভ অ্যাপ্লিকেশনগুলির বিশাল মেমরি পদচিহ্ন বিবেচনা করে, এই অপারেশনগুলি কাঁটাচামচের সময় একটি উচ্চ ওভারহেড বহন করবে, যা CCW-এর কার্যকারিতা সুবিধাকে অফসেট করবে৷ আমরা পৃষ্ঠার ত্রুটির বৈশিষ্ট্যগুলিকে কাজে লাগিয়ে এই বাস্তবায়নকে অপ্টিমাইজ করি৷
একটি পৃষ্ঠা থেকে একটি পৃষ্ঠার ত্রুটি ঘটলে, প্রক্রিয়াটি একটি নতুন প্রক্রিয়া তৈরি না হওয়া পর্যন্ত পৃষ্ঠাটি অতিরিক্ত পৃষ্ঠার ত্রুটি বহন করে না। এইভাবে, প্রতিটি পৃষ্ঠা সর্বাধিক এক-পৃষ্ঠার ত্রুটি ট্রিগার করতে পারে এবং n পৃষ্ঠা সহ একটি অঞ্চলের জন্য, পৃষ্ঠার ত্রুটিগুলি শুধুমাত্র n বার পর্যন্ত ঘটতে পারে। এটি বোঝায় যে পৃথক পৃষ্ঠাগুলির জন্য বিটম্যাপ বজায় রাখার পরিবর্তে প্রতি অঞ্চলে পৃষ্ঠার ত্রুটির সংখ্যা গণনা করা কভারেজ গণনা করার জন্য যথেষ্ট।
এইভাবে, আমরা বিটম্যাপটিকে ফল্ট কাউন্টার দিয়ে প্রতিস্থাপন করি। প্রতিটি অঞ্চল নিম্নরূপ কাউন্টারগুলির একটি জোড়ার সাথে যুক্ত: একটি শেষ যুগে পৃষ্ঠার ত্রুটিগুলি গণনার জন্য এবং অন্যটি বর্তমান যুগে পৃষ্ঠার ত্রুটিগুলি গণনার জন্য।
পূর্ববর্তীটি অঞ্চলগুলির স্থানিক লোকালয় নির্ধারণ করতে ব্যবহৃত হয়, যেখানে পরবর্তীটি বর্তমান যুগের স্থানিক লোকালয়টি নিরীক্ষণ করতে ব্যবহৃত হয়। ফর্ক চলাকালীন, বর্তমান ফল্ট কাউন্টারটি পূর্ববর্তী ফল্ট কাউন্টারে অনুলিপি করা হয়।
যদি এই যুগে একটি অঞ্চল অনুলিপি করা হয়, তবে সেই অঞ্চলের নোংরা পৃষ্ঠাগুলির সংখ্যা পরিবর্তে আগের ফল্ট কাউন্টারে লেখা হয়। একটি নতুন ভার্চুয়াল মেমরি এরিয়া (VMA) তৈরি করার সময় কাউন্টারগুলি জনবহুল হয় এবং যখন তাদের সংশ্লিষ্ট VMA সঙ্কুচিত বা আনম্যাপ করা হয় তখন পুনরায় দাবি করা হয়। এই অপ্টিমাইজেশানটি CCW-এর ওভারহেডের স্থান প্রতি পৃষ্ঠায় এক বিট থেকে প্রতি অঞ্চলে কয়েক বাইটে হ্রাস করে।

For more information:1950477648nn@gmail.com






