লিনাক্স এবং আরটি অগ্রাধিকারগুলিতে মনোজ্ঞ অগ্রাধিকারের মধ্যে পার্থক্য

লিনাক্সে, শিডিউলারটি নিয়ন্ত্রণ করে যে কোন স্ট্রিমটি কার্যকর করা হয় এবং কত দিন। দুটি পরস্পর বিরোধী প্রয়োজনীয়তা মোকাবেলা করা প্রয়োজন: ইনপুট / আউটপুট এবং গণনীয় পরিবাহিতা।

মৃত্যুদন্ডের আদেশ প্রতিটি থ্রেডের অগ্রাধিকারের নীতি এবং পরিকল্পনার ভিত্তিতে। লিনাক্স সংস্করণ ২.২ এ, একটি সারণী নীতি প্রয়োগ করা হয়েছে। লিনাক্স 6 টি নীতি প্রস্তাব করে: SCHED_FIFO, SCHED_RR, SCHED_DEADLINE, SCHED_DEADLINE, SCHED_OTHER, SCHED_BATCH, এবং SCHED_IDLE। এই নীতিগুলি SCHED_DEADLINE ব্যতীত 2 টি গ্রুপে বিভক্ত; SCHED_OTHER, SCHED_IDLE, এবং SCHED_BATCH সাধারণ নীতি সম্পর্কিত এবং SCHED_FIFO, SCHED_RR রিয়েল-টাইম। এসসিএইচডিইডিএইডডলাইন বিষয়গুলি বিশেষ এবং অগ্রাধিকারের বিষয়।

প্রতিটি থ্রেডের মধ্যে "শিডিয়ুল_প্রাইরিটি" মান এবং অন্যগুলির চেয়ে উচ্চতর "সময়সূচি_প্রিয়ালিটি" মানের থিম থাকে। সময়সূচী_প্রিয়তাটিকে কখনও কখনও রিয়েল-টাইম অগ্রাধিকার বলা হয় কারণ এটি মূলত রিয়েল-টাইম নীতি ব্যবহার করে থ্রেডের সম্পাদনের ক্রম নির্বাচন করতে ব্যবহৃত হয়। সাধারণ নীতি রানটাইম টেবিল_প্রিয়রিটি মান 0 হয় এবং রিয়েল-টাইমে ব্যবহৃত বিষয়গুলির মান সাধারণত 1 থেকে 99 হয়। সিস্টেম। সময়সূচি_প্রিয়তার মানটি নীতি অনুসারে তফসিল_সেটসুলেডার ফাংশন দ্বারা সেট করা যেতে পারে এবং তফসিল_গেটসিডুলার ফাংশন দ্বারা চেক করা যায়।

যদি শিডিপ_প্রিয়রিটি মানটি রিয়েল-টাইম প্রবাহের সাথে মিলে যায় তবে অন্যান্য থ্রেডের জন্য ডিফল্ট থ্রেডকে ভাল মান বলা হয়। প্রিয় পরিসরটি -20 (উচ্চ অগ্রাধিকার) থেকে +19 (নিম্ন অগ্রাধিকার)। প্লেজার ভ্যালু একটি সুন্দর ফাংশন বা সেটপ্রেরিটি ফাংশনের মাধ্যমে সেট করা যায় এবং getpriority ফাংশন দ্বারা চেক করা যায়।

কীভাবে লিনাক্স রিয়েল-টাইমে এবং আপনার পছন্দের অগ্রাধিকারের সাথে সামঞ্জস্য রেখে থ্রেডগুলি কার্যকর করে? রিয়েল-টাইমে, চলমান সময়টিতে কোনও বিধিনিষেধ নেই এবং লিনাক্স মূলত রিয়েল টাইমে সর্বোচ্চ অগ্রাধিকার মান সহ একটি থ্রেড কার্যকর করে, হয় থ্রেডটি স্বয়ং-সম্পাদন সম্পন্ন করার আগে বা উচ্চতর অগ্রাধিকারের থ্রেড ব্যবহার করার আগে। তবে এটি প্রায়শই সমস্যার সৃষ্টি করে কারণ যদি অযাচিত রিয়েল-টাইম প্রবাহ কাজ শুরু করে এবং কখনই শেষ হয় না, তবে এটি থামানোর একমাত্র উপায় অন্যান্য অগ্রাধিকারের দিকে যাওয়া। সুতরাং, সংস্করণ ২.6.২৫ থেকে, অযাচিত রিয়েল-টাইম স্ট্রিমিং বন্ধ করার জন্য অন্যান্য বৈশিষ্ট্য রয়েছে যেমন RLMIT_RTTIME ব্যবহার করে পূর্ব-সীমিত প্লেব্যাক সময়। তবে, রিয়েল-টাইমের সতর্কতার সাথে ব্যবহারের পরামর্শ দেওয়া হচ্ছে না কারণ লিনাক্সের কার্নেলের ২.6.২৩ সংস্করণে সহজ স্ট্রিমগুলির জন্য "ফুল ফেয়ার প্ল্যানার" (সিএফএস) নামে একটি স্মার্ট শিডিয়ুলিং সিস্টেম রয়েছে। সিএফএস নির্ধারণ করে যে কোন থ্রেডটি সম্পাদন করতে হবে এবং কত দিন।

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

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

সংক্ষেপে, একটি মনোরম অগ্রাধিকার এবং একটি বাস্তব-সময়ের অগ্রাধিকারের মধ্যে পার্থক্য নিম্নরূপ। প্রথমত, সাধারণ কাজের জন্য ভাল অগ্রাধিকার, রিয়েল-টাইম অগ্রাধিকারটি একটি স্পষ্ট দৃষ্টিতে রিয়েল-টাইম কাজের জন্য। দ্বিতীয়ত, একটি মনোরম অগ্রাধিকার হ'ল এটি কার্যকর করতে সময় লাগে এবং সিএফএস দ্বারা নির্বাহের আদেশ নির্ধারণ করে। অন্যদিকে, রিয়েল-টাইম অগ্রাধিকার হ'ল মৃত্যুদন্ড কার্যকর করার ক্রম নির্ধারণের মান, এবং অগ্রাধিকার প্রাপ্ত অন্যান্য কার্যগুলি সম্পাদন না করা অবধি রিয়েল টাইমে কাজের সময়সীমা সীমিত থাকে না। যদিও উভয়কেই অগ্রাধিকার বলা হয়, তবে একটি ভাল অগ্রাধিকার সময় এবং বাস্তব সময়ের অগ্রাধিকার ক্রমের জন্য।