Estamos লিনাক্স 6.10 এর স্থিতিশীল সংস্করণ প্রকাশের কয়েক দিন পরে, একটি সংস্করণ যা বেশ আকর্ষণীয় পরিবর্তনের একটি সিরিজ অন্তর্ভুক্ত করবে, সেইসাথে ডিভাইস সমর্থন, ফাংশন এবং আরও অনেক কিছুর ক্ষেত্রে দুর্দান্ত উন্নতি।
যথাসময়ে আমরা এই রিলিজ সম্পর্কে কথা বলব, যেহেতু এই নিবন্ধটির কারণ হল লিনাক্সের পরবর্তী প্রত্যাশিত সংস্করণের রেফারেন্স, যা হল "লিনাক্স 6.11", যার কিছু পরিবর্তন প্রকাশিত হয়েছে যা আমি উল্লেখ করছি যথেষ্ট সময়, আমি অন্য পোস্টে তাদের সম্বোধন করতে চাই।
ঠিক আছে, এখন নিবন্ধের বিন্দুতে চলে যাচ্ছি, যা লিনাস টরভাল্ডস দ্বারা তৈরি একটি ঘোষণার রেফারেন্স লিনাক্স 6.11 কার্নেলে অন্তর্ভুক্ত করার জন্য তাদের ইচ্ছা সম্পর্কে, কিছু প্যাচ যা মেকানিজম বাস্তবায়ন করে "sched_ext" (SCX)।
এই মেকানিজমঅথবা লিনাক্স কার্নেলের মধ্যে সিপিইউ শিডিউলার তৈরি করতে eBPF ব্যবহার করার উদ্দেশ্যে। এটি কিভাবে কাজ করবে তার একটি সারাংশ এখানে:
- eBPF এবং CPU প্রোগ্রামার: ইবিপিএফ ব্যবহার করে, লিনাক্স কার্নেলের মধ্যে সিপিইউ শিডিউলারগুলি গতিশীলভাবে লোড এবং কার্যকর করা যেতে পারে। জাস্ট-ইন-টাইম (জেআইটি) সংকলন ইবিপিএফ বাইটকোডকে কার্যকর করার জন্য মেশিন নির্দেশাবলীতে অনুবাদ করে।
- SCHED_EXT ক্লাস: এটি একটি নতুন প্রোগ্রামিং ক্লাস, যার কার্নেল কল অগ্রাধিকার ক্লাসগুলির মধ্যে রয়েছে SCHED_IDLE এবং SCHED_NORMAL৷. BPF ড্রাইভার লিঙ্ক SCHED_EXT স্বাভাবিক সময়সূচীর সাথে ইতিমধ্যে সংযুক্ত কাজগুলিকে প্রভাবিত না করে রিয়েল-টাইম সম্পাদনের চেয়ে কম অগ্রাধিকার রয়েছে এমন কাজগুলি পরিচালনা করতে পারে SCHED_NORMAL.
- অপারেশন: BPF ড্রাইভাররা CPU-তে সম্পাদিত হওয়ার অপেক্ষায় থাকা টাস্কগুলির সারি বিশ্লেষণ করে এবং সিপিইউ কোর মুক্ত হলে কোন কাজটি বরাদ্দ করা হবে তা নির্বাচন করে। যদি কোন সক্রিয় BPF ড্রাইভার না থাকে SCHED_EXT, কাজগুলি শিডিউলার ব্যবহার করে পরিচালনা করা হয় SCHED_NORMAL
- সুবিধা: প্রক্রিয়া sched_ext গতিশীল উপায়ে বিভিন্ন প্রোগ্রামিং কৌশল এবং কৌশল নিয়ে পরীক্ষা-নিরীক্ষার সুবিধা দেয়। এটি আপনাকে দ্রুত প্রোগ্রামারদের কার্যকরী প্রোটোটাইপ তৈরি করতে এবং উৎপাদন পরিবেশে ফ্লাইতে তাদের প্রতিস্থাপন করতে দেয়। উদাহরণস্বরূপ, এটি একটি অ্যাপ্লিকেশনের নির্দিষ্ট বৈশিষ্ট্যগুলির সাথে মানানসই করার জন্য এবং সিস্টেমের অবস্থা এবং অন্যান্য কারণের উপর ভিত্তি করে সময় নির্ধারণের কৌশল পরিবর্তন করার জন্য টিউন করা যেতে পারে।
এটি উল্লেখ করার মতো "sched_ext" প্রাথমিকভাবে 2022 সালে কার্নেল বিকাশকারীদের দ্বারা বিবেচনার জন্য প্রস্তাব করা হয়েছিল, ছয় প্যাচ সংশোধন প্রকাশের দ্বারা অনুসরণ. মূল কার্নেলে সমর্থিত না হওয়া সত্ত্বেও, উবুন্টু, আর্চ লিনাক্স, ফেডোরা এবং নিক্সওএস-এর মতো বেশ কিছু ডিস্ট্রিবিউশন অতিরিক্ত প্যাকেজের মাধ্যমে "sched_ext" ইনস্টল করার প্রস্তাব দেয়।. ক্যানোনিকাল "এর উপাদানগুলি সহ বিবেচনা করছেsched_ext» উবুন্টু 24.10-এ, এবং ভালভ স্টিম ডেকের জন্য এর ইন্টিগ্রেশনে কাজ করছে। মেটাতে, "এর উপর ভিত্তি করে প্রোগ্রামারsched_ext» ইতিমধ্যেই উৎপাদন পরিকাঠামোতে ব্যবহার করা হয়েছে।
এছাড়া উল্লেখ করা হয়, বর্তমানে প্রায় এক ডজন প্রোগ্রামার ভিত্তিক "নির্ধারিত_এক্সট", প্রত্যেকটি টাস্ক শিডিউলিং লজিক ব্যবহারকারী স্পেসে সংজ্ঞায়িত করা হয় এবং BPF প্রোগ্রাম ব্যবহার করে কার্নেলে লোড করা হয়।
- scx_স্তরযুক্ত: একটি হাইব্রিড শিডিউলার যা কাজগুলিকে স্তরগুলিতে ভাগ করে, প্রতিটির নিজস্ব সময় নির্ধারণের কৌশল রয়েছে৷ আপনাকে গ্যারান্টিযুক্ত CPU সংস্থান সহ নির্দিষ্ট স্তরগুলিতে নির্দিষ্ট কাজগুলি বরাদ্দ করতে বা পৃথক অ্যাপ্লিকেশনগুলির অগ্রাধিকার বাড়াতে দেয়৷ মেটা দ্বারা বিকাশিত, এর ইউজারস্পেস লজিকটি মরিচায় লেখা হয়েছে।
- scx_rustland: সিপিইউ-নিবিড়ের তুলনায় ইন্টারেক্টিভ কাজকে অগ্রাধিকার দিতে অপ্টিমাইজ করা হয়েছে। উদাহরণস্বরূপ, এটি স্ট্যান্ডার্ড EEVDF শিডিউলারের তুলনায় সমবর্তী কার্নেল সংকলনের সময় Terraria গেমে FPS উন্নত করে। মরিচা মধ্যে যুক্তি সহ একটি ক্যানোনিকাল কর্মচারী দ্বারা বিকশিত.
- scx_lavd: LAVD (Latency-criticality Aware Virtual Deadline) অ্যালগরিদম প্রয়োগ করে, বিলম্ব হ্রাস এবং প্রক্রিয়া অগ্রগতির প্রাসঙ্গিকতা বিবেচনা করে কম্পিউটার গেম এবং ইন্টারেক্টিভ কাজগুলিতে বিলম্বতা হ্রাস করে। ইগালিয়া এবং ভালভ দ্বারা বিকশিত, মরিচা মধ্যে যুক্তি সঙ্গে.
- scx_rusty, scx_rlfifo, scx_mitosis: সময়সূচী যারা লোডের উপর ভিত্তি করে টাস্ক গ্রুপের ভারসাম্য বজায় রাখে, একটি সাধারণ FIFO সময়সূচী প্রয়োগ করে এবং টাস্ক গ্রুপগুলিকে CPU কোরের সাথে আবদ্ধ করে। সমস্ত মরিচা উপাদান সঙ্গে.
- scx_central, scx_flatcg, scx_nest, scx_pair, scx_qmap, scx_simple, scx_userland: C কম্পোনেন্ট সহ প্রোগ্রামারদের উদাহরণ, "sched_ext" এর বিভিন্ন ক্ষমতা প্রদর্শন করে।
অবশেষে, এটা যোগ করার মতো যে Google BPF প্রোগ্রাম ব্যবহার করে টাস্ক শিডিউলারের সিদ্ধান্তগুলিকে প্রভাবিত করার জন্য তার নিজস্ব কাঠামো, ghOSt ব্যবহার করে পরীক্ষা করছে এবং ghOSt-কে sched_ext-এ স্থানান্তর করা শুরু করেছে। উপরন্তু, Google ChromeOS-এর জন্য “sched_ext”-এর একটি পোর্ট তৈরি করছে।
উৎস: https://lkml.org