Working set
ওয়ার্কিং সেট হল কম্পিউটার বিজ্ঞানের একটি ধারণা যা একটি নির্দিষ্ট সময়ের ব্যবধানে একটি প্রক্রিয়ার জন্য প্রয়োজনীয় মেমরির পরিমাণ নির্ধারণ করে। সংজ্ঞা পিটার ডেনিং (1968) সংজ্ঞায়িত করেছেন "একটি সময়ে একটি প্রক্রিয়ার তথ্যের কার্যকরী সেট হল প্রক্রিয়া সময়ের ব্যবধানের সময় প্রক্রিয়া দ্বারা উল্লিখিত তথ্য সংগ্রহ"। সাধারণত প্রশ্নযুক্ত তথ্যের এককগুলিকে মেমোরি পেজ হিসাবে বিবেচনা করা হয়। এটি ভবিষ্যতে প্রক্রিয়াটি যে পৃষ্ঠাগুলি অ্যাক্সেস করবে তার একটি আনুমানিক অনুমান হওয়ার পরামর্শ দেওয়া হয় (ধরুন পরবর্তী সময় ইউনিটগুলির সময়), এবং আরও নির্দিষ্টভাবে পরামর্শ দেওয়া হয় যে কোন পৃষ্ঠাগুলি মূল স্মৃতিতে রাখা উচিত যাতে সেই প্রক্রিয়াটি সম্পাদনের ক্ষেত্রে সর্বাধিক অগ্রগতি করা যায়। যুক্তিসঙ্গত প্রধান স্মৃতিতে কোন পৃষ্ঠাগুলি রাখতে হবে (সহায়ক স্টোরেজে পেজ করা থেকে আলাদা) তা বেছে নেওয়ার প্রভাব গুরুত্বপূর্ণঃ যদি কোনও প্রক্রিয়ার অনেকগুলি পৃষ্ঠা প্রধান স্মৃতিতে রাখা হয়, তবে যে কোনও সময়ে অন্যান্য প্রক্রিয়াগুলি কম প্রস্তুত হতে পারে। যদি কোনও প্রক্রিয়ার খুব কম পৃষ্ঠাগুলি প্রধান স্মৃতিতে রাখা হয়, তবে তার পৃষ্ঠার ফল্ট ফ্রিকোয়েন্সি ব্যাপকভাবে বৃদ্ধি পায় এবং সিস্টেমে বর্তমানে সক্রিয় (অ-স্থগিত) প্রক্রিয়াগুলির সংখ্যা শূন্যের কাছাকাছি চলে যায়। ওয়ার্কিং সেট মডেল বলে যে কোনও প্রক্রিয়া র্যাম-এ থাকতে পারে যদি এবং শুধুমাত্র যদি এটি বর্তমানে যে সমস্ত পৃষ্ঠাগুলি ব্যবহার করছে (প্রায়শই সাম্প্রতিকতম ব্যবহৃত পৃষ্ঠাগুলি দ্বারা আনুমানিক) র্যাম-এ থাকতে পারে। মডেলটি একটি সমস্ত বা কিছুই নয় মডেল, যার অর্থ যদি এটি ব্যবহার করার জন্য প্রয়োজনীয় পৃষ্ঠাগুলি বৃদ্ধি পায় এবং র্যামের কোনও জায়গা না থাকে, তবে অন্যান্য প্রক্রিয়াগুলির ব্যবহারের জন্য মেমরি মুক্ত করার জন্য প্রক্রিয়াটি মেমরি থেকে অদলবদল করা হয়। প্রায়শই একটি ভারী লোড করা কম্পিউটারে এতগুলি প্রক্রিয়া সারিবদ্ধ থাকে যে, যদি সমস্ত প্রক্রিয়াগুলি একটি সময়সূচী সময় স্লাইসে চালানোর অনুমতি দেওয়া হয়, তবে তারা র্যামের চেয়ে বেশি পৃষ্ঠাগুলি উল্লেখ করবে, যার ফলে কম্পিউটারটি "থ্রাশ" করবে। মেমরি থেকে কিছু প্রক্রিয়া অদলবদল করে, ফলাফল হল যে প্রক্রিয়াগুলি-এমনকি যে প্রক্রিয়াগুলি মেমরি থেকে সাময়িকভাবে সরানো হয়েছিল-কম্পিউটার যদি সেগুলি একবারে চালানোর চেষ্টা করে তবে তার চেয়ে অনেক তাড়াতাড়ি শেষ হয়। কম্পিউটার যদি একবারে শুধুমাত্র একটি প্রক্রিয়া চালায় তবে প্রক্রিয়াগুলি তাদের তুলনায় অনেক তাড়াতাড়ি শেষ হয় কারণ এটি অন্যান্য প্রক্রিয়াগুলিকে চালানোর অনুমতি দেয় এবং এমন সময়ে অগ্রগতি করতে দেয় যখন একটি প্রক্রিয়া হার্ড ড্রাইভ বা অন্য কোনও বিশ্বব্যাপী সংস্থানের জন্য অপেক্ষা করছে। অন্য কথায়, ওয়ার্কিং সেট কৌশলটি মাল্টিপ্রোগ্রামিংয়ের মাত্রা যতটা সম্ভব বেশি রাখার সময় থ্রাশিং প্রতিরোধ করে। এইভাবে এটি সিপিইউ ব্যবহার এবং থ্রুপুটকে অনুকূল করে। বাস্তবায়ন ওয়ার্কিং সেট মডেল বাস্তবায়নের ক্ষেত্রে প্রধান বাধা হল ওয়ার্কিং সেটের উপর নজর রাখা। ওয়ার্কিং সেট উইন্ডো হল একটি চলমান উইন্ডো। প্রতিটি মেমরি রেফারেন্সের এক প্রান্তে একটি নতুন রেফারেন্স উপস্থিত হয় এবং প্রাচীনতম রেফারেন্সটি অন্য প্রান্তে চলে যায়। একটি পৃষ্ঠা ওয়ার্কিং সেটে থাকে যদি এটি ওয়ার্কিং সেট উইন্ডোতে উল্লেখ করা থাকে। শেষ কে রেফারেন্স করা পৃষ্ঠাগুলির একটি তালিকা রাখার ওভারহেড এড়ানোর জন্য, ওয়ার্কিং সেটটি প্রায়শই শেষ রেফারেন্সের সময় টি-এর উপর নজর রেখে এবং ওয়ার্কিং সেটটিকে একটি নির্দিষ্ট সময়ের মধ্যে সমস্ত পৃষ্ঠাগুলি রেফারেন্স করা বলে বিবেচনা করে প্রয়োগ করা হয়। ওয়ার্কিং সেটটি কোনও পৃষ্ঠা প্রতিস্থাপন অ্যালগরিদম নয়, তবে পৃষ্ঠা প্রতিস্থাপন অ্যালগরিদমগুলি কেবল এমন পৃষ্ঠাগুলি অপসারণের জন্য ডিজাইন করা যেতে পারে যা কোনও নির্দিষ্ট প্রক্রিয়ার জন্য কার্যকরী সেটে নেই। একটি উদাহরণ হল ঘড়ি অ্যালগরিদমের একটি পরিবর্তিত সংস্করণ যা ডাব্লুএসসিক্লক নামে পরিচিত। ভেরিয়েন্ট ওয়ার্কিং সেটকে কোড ওয়ার্কিং সেট এবং ডেটা ওয়ার্কিং সেটে ভাগ করা যেতে পারে। এই পার্থক্যটি গুরুত্বপূর্ণ যখন মেমরি শ্রেণিবিন্যাসের প্রাসঙ্গিক স্তরে কোড এবং ডেটা আলাদা থাকে, যেন কোনও একটি ওয়ার্কিং সেট শ্রেণিবিন্যাসের সেই স্তরের সাথে খাপ খায় না, থ্র্যাশিং ঘটবে। কোড এবং ডেটা ছাড়াও, ভার্চ্যুয়াল মেমরি সহ সিস্টেমে, প্রক্রিয়াটি দক্ষতার সাথে এগিয়ে যাওয়ার জন্য ওয়ার্কিং সেটের পৃষ্ঠাগুলির মেমরি ম্যাপ (ভার্চ্যুয়াল মেমরি থেকে ফিজিক্যাল মেমরি) এন্ট্রিগুলি অবশ্যই ট্রান্সলেশন লুকসাইড বাফার (টিএলবি)-তে ক্যাশ করা আবশ্যক। এই পার্থক্যটি বিদ্যমান কারণ কোড এবং ডেটা সম্পূর্ণ পৃষ্ঠাগুলিতে নয়, ছোট ছোট ব্লকে (ক্যাশে লাইন) ক্যাশে করা হয়, তবে ঠিকানা সন্ধান পৃষ্ঠা স্তরে করা হয়। এইভাবে কোড এবং ডেটা ওয়ার্কিং সেটগুলি ক্যাশেতে ফিট হলেও, যদি ওয়ার্কিং সেটগুলি অনেক পৃষ্ঠায় বিভক্ত করা হয়, তবে ভার্চুয়াল অ্যাড্রেস ওয়ার্কিং সেটটি টিএলবি-তে ফিট নাও হতে পারে, যার ফলে টিএলবি ধাক্কা খায়। অন্যান্য সীমিত সম্পদের জন্য ওয়ার্কিং সেটের অ্যানালগ রয়েছে, সবচেয়ে উল্লেখযোগ্যভাবে প্রক্রিয়াগুলি। যদি প্রক্রিয়াগুলির একটি সেটের জন্য একাধিক প্রক্রিয়ার মধ্যে ঘন ঘন মিথস্ক্রিয়ার প্রয়োজন হয়, তবে এর অগ্রগতির জন্য অবশ্যই একটি নির্দিষ্ট সময়সূচী থাকতে হবেঃ যদি প্রক্রিয়াগুলি একযোগে নির্ধারিত না হয়-উদাহরণস্বরূপ, যদি দুটি প্রক্রিয়া থাকে তবে সেগুলি কার্যকর করার জন্য কেবল একটি মূল থাকে-তবে প্রক্রিয়াগুলি প্রতিবার একটি মিথস্ক্রিয়ার হারে এগিয়ে যেতে পারে। অন্যান্য সংস্থানগুলির মধ্যে রয়েছে ফাইল হ্যান্ডেল বা নেটওয়ার্ক সকেট-উদাহরণস্বরূপ, একটি ফাইলকে অন্যটিতে অনুলিপি করা সবচেয়ে সহজভাবে দুটি ফাইল হ্যান্ডেল দিয়ে করা হয়ঃ একটি ইনপুটের জন্য, একটি আউটপুটের জন্য এবং এইভাবে দুটি আকারের "ফাইল হ্যান্ডেল ওয়ার্কিং সেট" রয়েছে। যদি শুধুমাত্র একটি ফাইল হ্যান্ডেল পাওয়া যায়, তবে অনুলিপি করা যেতে পারে, তবে ইনপুটের জন্য একটি ফাইল হ্যান্ডেল অর্জন করা, এটি থেকে পড়া (একটি বাফারের মধ্যে বলুন), এটি ছেড়ে দেওয়া, তারপরে আউটপুটের জন্য একটি ফাইল হ্যান্ডেল অর্জন করা, এটিতে লেখা, এটি ছেড়ে দেওয়া, তারপরে ইনপুট ফাইল হ্যান্ডেলটি আবার অর্জন করা এবং পুনরাবৃত্তি করা প্রয়োজন। একইভাবে একটি সার্ভারের অনেকগুলি সকেটের প্রয়োজন হতে পারে এবং যদি এটি সীমিত হয় তবে বারবার সকেটগুলি ছেড়ে দিতে এবং পুনরায় অধিগ্রহণ করতে হবে। থ্রাশিংয়ের পরিবর্তে, এই সংস্থানগুলি সাধারণত প্রোগ্রামের জন্য প্রয়োজন হয় এবং যদি এটি পর্যাপ্ত সংস্থান অর্জন করতে না পারে তবে এটি কেবল ব্যর্থ হয়। আরও দেখুন লোকালিটি অফ রেফারেন্স রেসিডেন্ট সেট সাইজ ওয়ার্কিং সেট সাইজ রেফারেন্স আরও পড়ুন ট্যানেনবাউম, অ্যান্ড্রু (2009)। আধুনিক অপারেটিং সিস্টেমের তৃতীয় সংস্করণ। পিপি। 209-210 ডেনিং, পিজে। (1980)। কাজ অতীত এবং বর্তমান সেট করে। সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের উপর আই. ই. ই. ই লেনদেন, <আই. ডি1>, ভলিউম এস. ই-6, পৃ. 64-84। সিলবার্সচ্যাটজ, এ., গ্যালভিন, পিবি., এবং গাগনে, জি. (2005)। অপারেটিং সিস্টেম কনসেপ্ট, 7ম সংস্করণ। প্যালাটিনোঃ উইলি। পিপি। 346। অপারেটিং সিস্টেম প্রযুক্তি ভার্চ্যুয়াল মেমোরি