শেষ বক্তৃতাটিতে,
আমরা রিয়েল-টাইম
সিস্টেমগুলির (real-time
operating system) একটি খুব প্রাথমিক
ভূমিকা পেয়েছি, রিয়েলটাইম
(real time) কী, রিয়েল-টাইম
অপারেটিং সিস্টেম
(real-time operating system) কী এবং
এটি কীভাবে প্রথাগত
অপারেটিং সিস্টেম
(traditional operating system) থেকে
আলাদা এবং রিয়েল-টাইম
অপারেটিং সিস্টেমের
অন্যতম প্রধান প্রয়োজন
হ'ল এটি কাজগুলিকে
তাদের সময়সীমার
মধ্যে পূরণ করতে
পারে।
এম্বেড থাকা অ্যাপ্লিকেশনগুলি
(Embedded applications) অনেক পরিমানে
পাওয়া যায়।
এটি রিয়েল-টাইম
অপারেটিং সিস্টেমের
(real-time operating system) জন্য
একটি গুরুত্বপূর্ণ
অ্যাপ্লিকেশন (application)
ক্ষেত্র।
তারপরে আসে বিভিন্ন
ধরণের রিয়েল-টাইম
সিস্টেম, যেমন হার্ড,
সফট এবং ফার্ম রিয়েল-টাইম
সিস্টেম(hard, soft and firm
real-time systems)।
তাদের উদাহরণ এবং
রিয়েল-টাইম সিস্টেমকে
পরিচালনা করতে পারে
এরকম বিভিন্ন ধরণের
কার্যাবলী।
একটি রিয়েল-টাইম
অপারেটিং সিস্টেমে
(real-time 
operating system) কার্যগুলি
পিরিওডিক (periodic), এপিরিওডিক
(aperiodic) এবং স্পোরডিক
(sporadic) নামে তিন ধরণের
ভাগে ভাগ করা যেতে
পারে।
একটি পিরিওডিক (periodic)
টাস্ক (task) এমন একটি
কাজ যা সময়ের সাথে
পুনরাবৃত্তি হয়।
উদাহরণ স্বরূপ, কোনও
রাসায়নিক শিল্পে
নির্দিষ্ট সময় অন্তর
শিল্পের প্যারামিটার
গুলি পরীক্ষা করা
হয় এবং তারপরে কম্পিউটার
সিদ্ধান্ত নেয় যে
কোন সংশোধনমূলক পদক্ষেপ
নেওয়া উচিত কিনা
এবং যদি তাপমাত্রা
বা রাসায়নিক ঘনত্ব
পরিবর্তন করার মতো
কোনও সংশোধনমূলক
পদক্ষেপ থাকে তবে
তা একটি নির্দিষ্ট
সময়ের মধ্যে ঘটাতে
হয়।
সমস্ত রিয়েল-টাইম
অ্যাপ্লিকেশনগুলির
(real-time applications ) জন্য, পর্যায়ক্রমিক
কার্যগুলি (periodic tasks)
সংখ্যাগরিষ্ঠ, অর্থাৎ
বৃহৎ সংখ্যক কার্যগুলি
হল পর্যায়ক্রমিক
কাজ।
আমাদের এপিওরিডিক
কাজ (aperiodic tasks) থাকতে
পারে।
এপিরিওডিক কাজগুলি
(aperiodic tasks) এলোমেলোভাবে
পুনরাবৃত্তি হয়
এবং এটি সফট রিয়েল-টাইম
টাস্ক (soft real-time tasks) হয়।
উদাহরণ স্বরূপ, কোনও
অপারেটর (operator) তাপমাত্রা
বাড়াতে বা রাসায়নিক
বিক্রিয়ার হার হ্রাস
করার জন্য আদেশ দিয়ে
থাকতে পারে।
অপারেটর (operator) কখন
কমান্ড দেবে তা বোঝা
যায় না।
এটি হঠাৎ করে হয়ে
থাকতে পারে এবং এই
কমান্ডের প্রতিক্রিয়াও
মূলত সফট রিয়েল
টাইম (soft real-time)।
ব্যবহারকারী কমান্ডটি
(command) দেওয়ার পরে
এটি কয়েক সেকেন্ড
সময় নিতে পারে এবং
এর কোনও কঠোর সময়সীমা
(hard deadline ) নেই যার দ্বারা
এটি করা যেতে পারে।
অন্যদিকে, স্পোরডিক
(sporadic) কাজগুলি হতে
পারে এলোমেলো, তবে
এগুলির সাথে তাদের
কঠোর সময়সীমা থাকে।
উদাহরণ স্বরূপ, রাসায়নিক
শিল্পে অগ্নিপরিস্থিতি
দেখা দিতে পারে । তখন
সেন্সরগুলি (sensors) পরিস্থিতি
পরীক্ষা করে এবং
তারা বেশ কয়েকটি
ক্রিয়া শুরু করে,
অ্যালার্ম (alarm) বাজতে
পারে, বিক্রিয়া (reaction)
বন্ধ করতে পারে, জল
ঝরনা শুরু করতে পারে
ইত্যাদি।
অ্যালার্ম (alarm) যেকোনো
সময় বাজতে পারে যেহেতু
আগুনের পরিস্থিতিটি
অনির্দেশ্য এবং হটাৎ
করে আসতে পারে । এরকম
জরুরি পরিস্থিতিতে
নির্দিষ্ট সময়ের
মধ্যে শিল্পে অবশ্যই
সঠিক পদক্ষেপটি নিতে
হবে ।
এখানে, যেকোন রিয়েল-টাইম
অ্যাপ্লিকেশনে, বেশিরভাগ
কাজগুলি পর্যায়ক্রমিক
হয়, কিছু কাজগুলি
এপিরিওডিক (aperiodic) হতে
পারে এবং এগুলি মূলত
সফট রিয়েল-টাইম
টাস্ক হয়।
এগুলি এলোমেলোভাবে
ঘটে এবং অন্য একটি
বিভাগ হ'ল স্পোরডিক
(sporadic) কাজ, এগুলি রিয়েল-টাইম
কাজ হয় তবে তারপরে,
এগুলি এলোমেলোভাবে
ঘটতে থাকে এবং এগুলি
বিরল এপিরিওডিক (aperiodic)
এবং স্পোরডিক (sporadic)
কাজ যা পিরিওডিক
(periodic) কাজের তুলনায়
খুব কম।
আরেকটি উল্লেখযোগ্য
বিষয় হল কোনও কার্যের
সময়সীমাবদ্ধতা
যা কোনও ইভেন্টের
(event) সাথে সংজ্ঞায়িত
হয়।
একবার কোনও ইভেন্ট
শুরু হলে সময় গণনা
শুরু হয় এবং একটি
নির্দিষ্ট সময়ের
আগে, ফলাফল অবশ্যই
প্রকাশিত হওয়া উচিত।
ইভেন্টটি সিস্টেম
বা পরিবেশ দ্বারা
উত্পাদিত হতে পারে।
আমরা এগিয়ে চলার
সাথে সাথে উভয়ের
উদাহরণ দেখবো ।
একটি সাধারণ অ্যাপ্লিকেশনে
(application), রিয়েল-টাইম
টাস্কগুলি (real-time tasks)
প্রচুর পরিমাণে রয়েছে
এবং এগুলি ইভেন্টের
(event) কারণে তৈরি হয়।
এর মধ্যে কয়েকটি
অভ্যন্তরীণ বা বাহ্যিক
ঘটনা হতে পারে।
উদাহরণ স্বরূপ, কোনও
কাজ শুরু হতে পারে
যখন তাপমাত্রা সংবেদকটি
উচ্চ তাপমাত্রা অনুভব
করে।
তারপরের কাজটি হবে
তাপমাত্রা হ্রাস
করা এবং সম্ভবত জল
ঝরনা শুরু করা ইত্যাদি।
এই ইভেন্টটি (event) তাপমাত্রা
বৃদ্ধির একটি বাহ্যিক
ইভেন্টের (event) দ্বারা
নির্দিষ্ট পরিমাণে
উত্পন্ন হয়েছিল।
অভ্যন্তরীণ ইভেন্টটি
স্মৃতি (memory) থেকে বেরিয়ে
যেতে পারে বা কোনও
কাজ খুব বেশি সময়
নিচ্ছে এরকমও হতে
পারে।
এগুলি হ'ল অভ্যন্তরীণ
ঘটনা।
যখনই কোনও ইভেন্টের
(event) কারণে কোনও টাস্ক
(task) তৈরি হয় তখন সেই
কাজটি প্রকাশিত হয়
বা উত্পন্ন হয় বা
বলা হয় যে টাস্কটি
(task) এসে গেছে।
রিয়েল-টাইম টাস্ক
শিডিয়ুলিং (real-time
tasks scheduling), সর্বাধিক
প্রাথমিক বিবরণ হ'ল
কম্পিউটারের দ্বারা
বিভিন্ন কার্য সম্পাদন
করার জন্য পূর্বপরিকল্পনা
করা, কোনটি প্রথমে
কার্যকর করা হবে,
কোনটি পরবর্তীতে
কার্যকর করা হবে
এবং এই জাতীয় পদ্ধতি।
এটি একটি টাস্ক শিডিয়ুলার
(tasks scheduler) যার কাজ হ'ল
সিদ্ধান্ত নেওয়া
যে পরবর্তী কোন কার্যটি
সম্পাদন করা হবে।
এবং যেমনটি আমরা
ইতিমধ্যে বলেছিলাম
যে টাস্ক শিডিয়ুলারটি
(tasks scheduler) সমস্ত রিয়েল-টাইম
অপারেটিং সিস্টেমের
(real-time operating systems) একটি
গুরুত্বপূর্ণ অঙ্গ
এবং সেগুলির মাধ্যমে
অপারেটিং সিস্টেম
অ্যাপ্লিকেশনগুলিকে
(applications) তাদের সময়সীমাটি
পূরণ করতে সহায়তা
করে।
বিভিন্ন ধরণের রিয়েল-টাইম
অপারেটিং সিস্টেম
(real-time operating systems), প্রথমটি
আমরা উল্লেখ করব
তা হল শিডিয়ুলারের
(scheduler) ধরণটি কী।
প্রতিটি রিয়েল-টাইম
অপারেটিং সিস্টেম
(real-time operating systems)শিডিয়ুলার
(scheduler) একটি খুব গুরুত্বপূর্ণ
উপাদান।
কিছু মৌলিক পরিভাষা
(terminologies)নিম্নরূপ, একটি
কাজ হল সমষ্টিগত
কোন একটি কাজের একক,
উদাহরণ স্বরূপ, কোনও
ফাইল (file)পড়তে নির্দিষ্ট
শর্ত পূরণ হয়েছে
কিনা, কিছু তথ্য সঞ্চয়
করতে, অন্য টাস্কের
সাথে যোগাযোগ করা
ইত্যাদি, এগুল হল
কাজের উদাহরণ।
এবং এইগুলি টাস্কের
(task)উদাহরণ।
যেখানে একটি কাজ
হল একই ধরণের কাজের
একটি ক্রম।
উদাহরণ স্বরূপ, একটি
কাজ হতে পারে রাসায়নিক
চুল্লীতে প্রান্তিক
মান অতিক্রম করে
যাওয়া তাপমাত্রা
নিয়ন্ত্রণ করা।
প্রতিটি সময় তাপমাত্রা
সেন্সর (sensor)পর্যায়ক্রমে
এটি পরিমাপ করে, তাপমাত্রার
মানটি প্রান্তিকের
চেয়ে উপরে কিনা
তা পরীক্ষা করার
জন্য একটি কার্য
তৈরি করা হয় এবং
তারপরে এটি যদি প্রান্তিকের
উপরে হয় তবে কিছু
সংশোধনমূলক পদক্ষেপ
নেওয়া হয়।
তাপমাত্রা সেন্সরটি
(sensor) যখন ইন্টারাপ্ট
(interrupt) থেকে ইনপুট দেয়,
তখন টাস্কটি উৎপন্ন
হয়।
এবং যখন টাস্কটি
(task)তৈরি হয়ে যায়
তখন আমরা বলি যে টাস্কটি
(task)শুরু হয়েছে যা
এখানে দেখানো হয়েছে;
যে টাস্ক (task)শুরু
হওয়ার সময় এবং তারপরে
অপারেটিং সিস্টেমটি
(operating system)কিছু সময়ের
পরে টাস্কটি কার্যকর
করতে শুরু করে।
এটি কার্যকর করার
শুরু, এটি প্রকাশের
সময় এবং এটি কিছু
সময় পরে কাজটি সম্পূর্ণ
হতে পারে এবং তারপরে
একটি সময়সীমা রিয়েল-টাইম
টাস্কগুলির (real-time
tasks)সাথে যুক্ত হয়
এবং যদি সময়সীমাটি
পরিমাপ করা হয় এবং
সময় শূন্যের সাথে
প্রতিবেদন করা হয়,
তবে আমরা বলতে পারি
যে এটি একটি চূড়ান্ত
সময়সীমা।
যদিও, সময়সীমাটি
যদি গণনা করা হয়
বা প্রকাশের সময়
সাপেক্ষে রিপোর্ট
করা হয় তবে আমরা
এটিকে আপেক্ষিক সময়সীমা
বলা হয়।
এটি এখানে দেখানো
হয়েছে, আপেক্ষিক
সময়সীমা শুরুর থেকে
টাস্ক (task) শুরু হতে
থাকে এবং শেষ সময়সীমা
পর্যন্ত শুরু হতে
পারে, কার্যের নিরঙ্কুশ
সময়সীমা শূন্য থেকে
শুরু হয়।
একটি টাস্ক (task )সাধারণত
বেশ কয়েকবার পুনরাবৃত্তি
হয়, পর্যায়ক্রমিক
ভাবে কাজগুলি ঘটে
থাকে এবং এগুলি নিয়মিতভাবে
কিছু ঘড়ির সময়ের
ভিত্তিতে পুনরাবৃত্তি
হয় যেখানে এপিরিওডিক
(aperiodic) এবং স্পোরডিক
(sporadic) কাজ এলোমেলোভাবে
ঘটে এবং প্রতিবার
কোনও টাস্ক(task ) পুনরাবৃত্তি
হয়, আমরা বলি যে কোনও
কাজ উত্পন্ন বা শুরু
হয়েছে।
এবং ith সময় যখন টাস্ক
(task) t পুনরায় হয় তখন
আমরা বলি যে কাজ বা
কার্যের উদাহরণটি
Ti শুরু হয়ে গেছে।
এবং যেমন আমরা ইতিমধ্যে
ব্যাখ্যা করেছি যে
পরম সময়সীমা (absolute
deadline) হল শূন্য সময়
থেকে শুরু হওয়া
কিন্তু আপেক্ষিক
সময়সীমা (relative deadline)হল
কার্যের শুরু হওয়া
থেকে গণনা করা । এটি
ইতিমধ্যে দেখানো
হয়েছে।
কারণ এটি একটি গুরুত্বপূর্ণ
পরিভাষা, যাকে বলা
হয় আপেক্ষিক সময়সীমা
(relative deadline) এবং পরম সময়সীমা
(absolute deadline)।
টাস্ক রিলিজ (task release)করার
সময় থেকে চূড়ান্ত
সময়সীমা পর্যন্ত
হল আপেক্ষিক সময়।
যদিও শূন্য থেকে
শুরু করে চূড়ান্ত
সময়সীমা অবধি পরিমাপ
করা সময়কে, আমরা পরম
সময়সীমা (absolute deadline)
বলে চিহ্নিত করে
থাকি।
এখন, আমরা আরেকটি
গুরুত্বপূর্ণ পরিভাষা
সংজ্ঞায়িত করবো
যা আমরা ব্যবহার
করবো প্রতিক্রিয়া
সময় বলে।
প্রতিক্রিয়া সময়টি
কাজটি শুরুর সময়
থেকে টাস্ক সমাপ্তির
পর্যন্ত সময়।
কাজটি শুরু হওয়ায়
সময় T, কার্য সম্পাদন
কিছু সময়ের পরে
শুরু হয় এবং তারপরে
এটি কার্যকর হয়
এবং একটি নির্দিষ্ট
সময়ে সম্পূর্ণ হয়।
টাস্কটি শুরুর সময়
থেকে টাস্কের সমাপ্তির
সময় পর্যন্ত, আমরা
একে প্রতিক্রিয়া
সময় বলে থাকি।
এবং আমরা বলেছিলাম
যে প্রচলিত ওভারেটিং
সিস্টেমে (traditional overrating
system) যেগুলো মূলত সফট
রিয়েল-টাইম টাস্কগুলি
(soft real-time tasks) পরিচালনা
করে, তাদের ক্ষেত্রে
প্রতিক্রিয়া সময়টি
হ্রাস করা দরকার।
এমনকি রিয়েল টাইম
অ্যাপ্লিকেশনটিতেও,
রিয়েল-টাইম অপারেটিং
সিস্টেমে যদি টাস্কটি
একটি সফট রিয়েল-টাইম
টাস্ক (soft real-time tasks) হয়
তবে অপারেটিং সিস্টেমটিকে
কাজের প্রতিক্রিয়া
সময়কে হ্রাস করতে
হবে যেখানে হার্ড
রিয়েল-টাইম (hard real-time)
এবং স্পোরডিক টাস্কের
(sporadic task) জন্য প্রতিক্রিয়ার
সময়টি হ্রাস করা
উদ্দেশ্য নয়, উদ্দেশ্যটি
হ'ল হার্ড রিয়েল-টাইম
(hard real-time)এবং স্পোরডিক
টাস্কের (sporadic tasks) সময়সীমাটি
পূরণ করা।
হার্ড রিয়েল-টাইম
(hard real-time)টাস্কগুলির
জন্য যতক্ষণ না টাস্কটি
তার সময়সীমার মধ্যে
শেষ হয় ততক্ষণ সময়সীমা
শেষ হওয়ার আগে কোনও
বিশেষ সুবিধা পাওয়া
যায় না।
কোনও কার্যের পর্বটি
অন্য একটি গুরুত্বপূর্ণ
পরিভাষা কারণ এটি
কার্য শিডিউলারে
(task schedulers)গুরুত্বপূর্ণ
পরিভাষা, আমরা প্রায়শই
একটি কার্যের এই
পর্বটি উল্লেখ করব।
যে কোনও রিয়েল টাইম
অ্যাপ্লিকেশনে (real
time application) অনেকগুলি
টাস্ক থাকে এবং এর
বেশিরভাগ পর্যায়ক্রমিক
ভাবে কাজ হয়, তবে
একটি বিষয় লক্ষণীয়
যে পর্যায়ক্রমিক
কাজগুলি সত্যই শূন্য
সময় থেকে শুরু হয়
না, অনেকগুলির কাজ
পর্যায়ক্রমিক ভাবেও
শুরু হয় না এবং তারা
বিচ্ছিন্ন হওয়ার
পরে নির্দিষ্ট সময়ে
টাস্কটি শুরু করে।
এই বিষয়টি পরিষ্কার
ভাবে বোঝার জন্য
আমরা একটি রকেটের
উদাহরণ গ্রহণ করব।
একবার রকেট নিক্ষেপ
করা হলে প্রাথমিকভাবে
এটি নির্দিষ্ট সময়ের
জন্য নিজস্ব গতিতে
চলে যায় এবং তারপরে
আমাদের কোনও কার্য
করার দরকার হয় না।
তবে কিছু সময়ের
পরে, ট্র্যাজেক্টরি
(trajectory)সংশোধনের কাজটি
শুরু হয়।
আমরা বলতে পারি যে
রকেটের যাত্রা শুরু
করার ২০০০ মিলিসেকেন্ড
পরে ট্র্যাক সংশোধন
কার্য শুরু হয়েছে।
এই পর্যায়ে, কার্য
সংশোধন করার সময়
২০০০ মিলিসেকেন্ড।
এবং তারপরে একবার
কাজ শুরু হয়ে গেলে,
প্রথম বারের কাজটি
২০০০ মিলিসেকেন্ডের
পরে শুরু হয় এবং
পরে এটি পর্যায়ক্রমে
প্রতি ৫০ মিলিসেকেন্ডে
পুনরাবৃত্তি হতে
থাকে এবং কার্যকর
করার সময়টি ৮ মিলিসেকেন্ড
হতে পারে এবং সময়সীমা
৫০ মিলিসেকেন্ড হতে
পারে।
এটি হল রকেট নিক্ষেপ
করার ২000 মিলিসেকেন্ড
পরে ট্র্যাক (track)সংশোধন
করার বর্ণনা ।
২000 মিলিসেকেন্ডের
জন্য কোনও ট্র্যাক
সংশোধন হয় না এবং
২000 মিলিসেকেন্ডের
পরে, প্রথম ট্র্যাক
সংশোধন টাস্কটি শুরু
হয় এবং তারপরে এটি
৫০ মিলিসেকেন্ড পরে
পুনরাবৃত্তি হয় এবং
প্রতিটি ট্র্যাক
সংশোধন কার্য সম্পাদনের
সময় ৮ মিলিসেকেন্ড
সময়ের প্রয়োজন।
এবং একবার শুরু হয়ে
গেলে প্রতিটি কাজের
জন্য সময়সীমা ৫০
মিলিসেকেন্ড হয়।
বৈধ সময়সূচী (Valid
schedule) এবং কার্যকর
সময়সূচী (feasible schedule)
আরেকটি গুরুত্বপূর্ণ
পরিভাষা।
একটি বৈধ সময়সূচী
(Valid schedule) হ'ল যেখানে
প্রসেসরের (processor)কাছে
কার্য নির্ধারিত
হয়, একবার শুরু হয়ে
গেলে আর কার্য নির্ধারিত
হয় না।
কেবল এটি প্রকাশিত
বা শুরু হওয়ার পরে
শিডিয়ুলার (scheduler)
এটির সময়সূচী নির্ধারণ
করে, কিন্তু এটি নির্ধারণ
করে না যে সময়সীমাটি
পূরণ করা হবে কিনা।
এই দিকগুলি ছাড়াও
যদি সময়সীমাটিও
পূরণ করা হয় তবে
আমরা এটিকে একটি
কার্যকর সময়সূচী
(feasible schedule) বলি।
একটি বৈধ সময়সূচীর
(Valid schedule) জন্য যদি কার্যের
সময়সীমা পূরণ করা
নিশ্চিত হয় তবে
আমরা শিডিয়ুলার
(scheduler) দ্বারা প্রস্তুত
অবস্থাটিকে একটি
কার্যকর সময়সূচী
(feasible scheduler) হিসাবে বলে
থাকি ।
প্রফিসিয়েন্ট শিডিউলার
(proficient scheduler) বলে আরও
একটি শব্দ রয়েছে।
আমরা দেখতে পাব যে
কোনও অ্যাপ্লিকেশনের
জন্য নির্ধারিত কোনও
কার্য, নির্ধারিত
সময়সূচিতে হচ্ছে
কিনা তা নিশ্চিত
করতে পারে না।
যদি এরকম কিছু শিডিউলার
থাকে যে কার্যগুলিকে
নির্ধারিত সময়সীমার
সাথে করছে অথবা অন্য
কোন সময়সূচীতে করছে
এবং যা আমাদের এই
কাজগুলিকে সংশ্লিষ্ট
সময়সীমা পূরণের
জন্য তৈরি করে দেয়
তাহলে সেই দ্বিতীয়
শিডিউলারটিকে আরও
দক্ষ বলা হবে।
সেক্ষেত্রে আমরা
বলতে পারি যে একটি
শিডিয়ুলার S1 হল S2
এর চেয়ে বেশি দক্ষ।
তবে যদি S2 নির্ধারণ
করতে পারে এমন কোনও
টাস্ক S1 করে থাকে,
তবে বিপরীতটা সত্য
বলা যায় না।
আমরা কোন শিডিয়ুলারকে
কোনও কাজ নির্ধারণের
জন্য সমান দক্ষতাযুক্ত
বলতে পারি, যদি শিডিয়ুলারটি
সম্ভাব্য সময়সূচী
তৈরি করতে পারে এবং
অন্য সময়সূচীটিও
সম্ভাব্যভাবে শিডিউল
হয়ে থাকে।
এবং একটি অপটিমাল
শিডিয়ুলার (optimal scheduler)হল
এমন একটি যা সম্ভবত
কোনও টাস্ককে নির্ধারণ
করতে পারে যা অন্য
কোনও শিডিয়ুলার
শিডিউল করতে পারে
।
শিডিয়ুলিং পয়েন্টটি
(Scheduling point )আরও একটি
গুরুত্বপূর্ণ পরিভাষা।
আমরা ভাবতে পারি
যে একটি শিডিয়ুলার
হল একটি সফ্টওয়্যার
(software) উপাদান যা সময়ের
নির্দিষ্ট সময়ে
সক্রিয় হয়ে যায়
এবং তারপরে সিদ্ধান্ত
নেয় যে কোন টাস্কটি
চালানো হবে।
সময়ের নির্দিষ্ট
পয়েন্টে শিডিয়ুলার
কার্যটি সক্রিয়
হয়ে যায় এবং তারপরে
কোন কাজটি চালানো
হবে তা সিদ্ধান্ত
নেয় এবং এই পয়েন্টটি
যেখানে কোন কাজটি
চালিয়ে যাওয়ার
বিষয়ে সিদ্ধান্ত
নেওয়া হয় তাকে
শিডিয়ুলিং পয়েন্ট
(Scheduling point )বলে।
অবশ্যই, একটি ক্লক
চালিত সময়সূচীতে,
শিডিয়ুলিং পয়েন্টগুলি
(scheduling points) পর্যায়ক্রমিক
টাইমার থেকে বিঘ্ন
(interrupts ) দ্বারা সংজ্ঞায়িত
করা হয়।
এগুলি সময়ের সাথে
সাথে সমানভাবে স্থাপন
করা হয় এবং এগুলি
ক্লক বিঘ্ন (clock interrupts
) দ্বারা উৎপাদিত
হয় এবং সময়সূচকটি
ক্লক বিঘ্নিত হওয়ার
সাথে সাথে সক্রিয়
হয়ে যায় এবং কোন
নির্দিষ্ট কাজ চালানোর
সিদ্ধান্ত নেয়।
অন্যদিকে ইভেন্ট
চালিত শিডিয়ুলারে
(event driven scheduler), শিডিয়ুলার
একটি ক্লক বিঘ্নের
(clock interrupts ) ভিত্তিতে
সক্রিয় হয় না, বরং
এটি নির্দিষ্ট ইভেন্টের
ভিত্তিতে হয়ে থাকে।
নামটি ইভেন্ট চালিত
হিসাবে, যে ইভেন্টগুলি
এই সময়সূচীগুলিকে
সক্রিয় হওয়ার কারণ
ঘটায় তা ঘড়ির মাধ্যমে
তৈরি হয় না, তবে কার্য
সম্পাদন এবং প্রজন্মের
দ্বারা হয়ে থাকে
।
কিছু কাজ উত্পন্ন
হয় শিডিউলার সক্রিয়
হয়ে উঠেছে কিনা
তা যাচাই করার জন্য
এবং নতুন কার্যটি
এসেছিল কিনা তা নির্ধারিত
করার জন্য।
যখনই কোনও কার্য
সময়সূচী সম্পূর্ণ
করে সক্রিয় হয়ে
যায় এবং তারপরে
কার্য নির্ধারণের
সিদ্ধান্ত নেওয়া
হয়।
ক্লক চালিত শিডিয়ুলারগুলি
সরল শিডিয়ুলার থাকে
তবে ইভেন্ট চালিত
শিডিয়ুলারগুলি
আরও জটিল, পরিশীলিত
শিডিয়ুলার এবং ক্লক
চালিত শিডিয়ুলারের
তুলনায় তাদের সুবিধা
রয়েছে তবে ক্লক
চালিত শিডিয়ুলারগুলি
সাধারণ চিপ-যুক্ত
অ্যাপ্লিকেশনগুলিতে
(chip applications) ব্যবহৃত
হয় তবে পরিশীলিত
রিয়েল-টাইম অ্যাপ্লিকেশনগুলিতে
ইভেন্ট চালিত সময়সূচী
ব্যবহৃত হয়।
বিভিন্ন শিডিউলার
উপলব্ধ থাকে।
আপাতত এখন আমরা রিয়েল-টাইম
সিস্টেমগুলি, কার্য
বৈশিষ্ট্যগুলি, কার্যগুলির
পরিভাষা, কার্যগুলির
ধরণের এবং এগুলি
সম্পর্কে প্রাথমিক
জ্ঞান পেয়েছি।
এখন আমরা দেখবো ইউনিপ্রসেসরগুলির
(uniprocessors) সময় নির্ধারণের
প্রথম কার্যগুলি।
আসলে, টাস্ক শিডিয়ুলিং
অ্যালগরিদমগুলি
(tasks scheduling algorithms) ছিল ১৯৭০
এবং ৮০ এর দশকে গবেষণার
কেন্দ্রবিন্দু।
সেই সময়গুলোতে প্রচুর
ফলাফল উপলব্ধ করা
হয়েছিল এবং সেই
ফলাফলগুলির অনেকগুলি
আজ অবধি উল্লেখ করা
হয়।
সেই দিনগুলিতে করা
গবেষণার ভিত্তিতে
আমাদের প্রধানত দুটি
ধরণের শিডিয়ুলার
রয়েছে একটিকে ক্লক
চালিত এবং একটি ইভেন্ট
চালিত শিডিউলার।
আমরা যদি আগের স্লাইডে
যা বলা হয়েছিল তা
যদি মনে থাকে তাহলে
দেখবো যে শিডিয়ুলিং
পয়েন্টগুলি (scheduling
points) যদি একটি ঘড়ি
বিঘ্নিত (clock interrupt) হয়ে
উত্পন্ন হয় তবে
এগুলিকে ক্লক চালিত
শিডিয়ুলার (clock driven
scheduler) হিসাবে ডাকা
হয়।
এখানে টাইমার ভিত্তিক
শিডিয়ুলার পর্যায়ক্রমে
সক্রিয় হয়ে যায়
এবং এটি একটি ক্লক
চালিত সাধারণ শিডিয়ুলার।
একটি ইভেন্ট চালিত
সময়সূচীটিতে শিডিয়ুলিং
পয়েন্টগুলি (scheduling
points) নির্দিষ্ট ইভেন্টগুলির
দ্বারা সংজ্ঞায়িত
করা হয় এবং সেগুলি
কী ঘটেছিল তা দেখা
হয়।
আমরা বলেছিলাম যে
দুটি মূল ইভেন্ট
রয়েছে টাস্কের ইভেন্ট
শুরু করার এবং ইভেন্টগুলি
সমাপ্তি করার।
নীচে বিভিন্ন ধরণের
শিডিউলার দেওয়া
হল।
একটি হ'ল অন্তহীন
লুপ (endless loop) । এটি একটি
অপারেটিং সিস্টেম
ব্যতীত কেবল একটি
সাধারণ প্রোগ্রাম।
এর কোনও বিশেষ কাজ
নেই।
এটি কেবল পর্যায়ক্রমিকভাবে
কিছু শর্ত পরীক্ষা
করে এবং তারপরে চক্রীয়
ভাবে কাজ করে কোনও
অপারেটিং সিস্টেম
ছাড়া । এখানে একটি
একক ফ্রিকোয়েন্সি
(frequency) রয়েছে যাতে
কার্যগুলি সম্পাদন
করা হয়, কার্যগুলির
সময়কাল একই এবং
একবার টাইমার বিঘ্ন
পর্যন্ত ঘটে।
কার্যটি সম্পূর্ণ
সম্পাদনের জন্য নেওয়া
হয় এবং সিস্টেমটি
অপেক্ষা করে।
একটি মাল্টি-রেট
চক্রীয় (multi-rate cyclic)
কার্যনির্বাহীতে,
একাধিক ফ্রিকোয়েন্সি
(frequencies) থাকে।
বিভিন্ন সময়সীমার
সাথে বিভিন্ন কাজ
উত্থাপিত হয় এবং
মাল্টি-রেট চক্রীয়
(multi-rate cyclic) এক্সিকিউটিভ
কিভাবে বিভিন্ন ধরণের
কাজ পরিচালনা করে
এবং তাদের সময়সীমা
পূরণে সহায়তা করে
তা নিয়ে আলোচনা
করা হবে।
এগুলি সহজ চক্রীয়
নির্বাহী এবং মাল্টি-রেট
সাইক্লিক (multi-rate cyclic)
এক্সিকিউটিভগুলি
করে থাকে, এগুলি সাধারণ
অ্যাপ্লিকেশনগুলিতে
ব্যবহৃত হয় তবে
যেগুলি পরিশীলিত
হয় সেগুলি ইভেন্ট
চালিত সময়সূচী অনুযায়ী
অগ্রাধিকার ভিত্তিক
প্রি-এমটিভ শিডিউলার
(pre-emptive schedulers) অংশগ্রহন
করে।
আমরা আমাদের আলোচনার
অনেকটা অংশ অগ্রাধিকার
ভিত্তিক প্রি-এমটিভ
শিডিউলার (pre-emptive schedulers)
উপর ভিত্তি করে আলোচনা
করব, তবে পরবর্তী
বক্তৃতাটি আমরা সাইক্লিক
শিডিয়ুলারগুলি
(cyclic schedulers) নিয়ে আলোচনা
করব।
ধন্যবাদ।
