First Come First Serve (FCFS) CPU Scheduling
ধরুন, আপনার নাম X, আপনি দুদিন যাবত অসুস্থ, ঠিক করেছেন ডাক্তার এর কাছে যাবেন পরামর্শ নিতে। পরিবেশ এর এমন একটা অবস্থা ভাইরাসের কারণে একই সময়ে আরও তো অনেকেই অসুস্থ।
ডাঃ মাহবুবুর রহমান, মেডিসিন বিশেষজ্ঞ । মোটামুটি নামকরা ডাক্তার আপনার এলাকার। গত এক সপ্তাহ যাবত উনার চেম্বারে প্রচুর ভীর।
মাহবুবুর সাহেব এর এসিস্ট্যান্ট আবুল মজিদ সাহেব রোগীর রোগের উপসর্গ এর সাথে সিরিয়াল টুকে রাখার সময় সবাইকে একটি সময় বলে দেন চেম্বার এ আসার, আপনিও আজকের সিরিয়াল নিয়েছেন এবং আপনার সিরিয়াল ০৩।
মাহবুবুর সাহেব এর রোগী দেখার একটা নিয়ম রয়েছে, রোগের উপসর্গ অনুযায়ী রোগীকে পরীক্ষা করার একটা নির্দিষ্ট সময় ঠিক করেন (Execution Time) এবং যতক্ষন না পর্যন্ত পরীক্ষা নিরীক্ষা শেষ না হবে ততক্ষণ পর্যন্ত অন্য রোগী কে অপেক্ষা করতে হবে (Non Preemptive)।
পুরো ব্যপারটা একবার কল্পনা করুন , তাঁর মানে FCFS (First Come First Serve) হচ্ছে মজিদ সাহেব এর বলে দেওয়া সময় (Arrival Time) অনুযায়ী যিনি প্রথম আসবেন মাহবুবুর সাহেব তাকেই প্রথম দেখবেন এবং পরীক্ষা শেষ না হওয়া পর্যন্ত দ্বিতীয় ব্যক্তি কে অপেক্ষা করতে হবে (Non Preemptive)।
এবার আমরা মজিদ সাহেব এর বানানো রোগীদের তালিকা টি দেখিঃ
৪ জন রোগী আজ আসতে বলা হয়েছ এবং প্রথম রোগী V সাহেবকে দেখা হবে সন্ধ্যা ৭ টার সময় | V সাহেব যথা সময়ে চলে এসেছেন চেম্বার এ এবং ডাক্তার এর চেম্বার (Ready Queue) এ ঢুকে গেলেন। উনার পরীক্ষা নিরীক্ষা (Execution) চলছে | উনার জন্য ডাক্তার সাহেব ২০ মিনিট (Execution time) বরাদ্ধ করছেন ।
এর ই মাঝে W সাহেব চলে এসেছেন উনার আসার কথা ৭ঃ১০ মিনিট এ । এদিকে V সাহেব এর পরীক্ষা শেষ হতে আরও ১০ মিনিট বাকি । তাঁর মানে হচ্ছে W সাহেব কে আরও ১০ মিনিট অপেক্ষা করতে হবে ডাক্তার সাহেব এর সাথে দেখা করতে ।
V সাহেব এর পরীক্ষা শেষ হলো । এবার যদি আমার দেখি নিচের তালিকা টাঃ
এবার W সাহেব এর পরীক্ষা শুরু হলো ৭ঃ২০ মিনিট এ , যেহেতু W সাহেব এর উপসর্গ
অনুযায়ী উনাকেও ২০ মিনিট বরাদ্ধ করা হয়েছে সেহেতু যখন থেকে উনার পরীক্ষা শুরু হবে তখন থেকেই ২০ মিনিট উনাকে পরীক্ষা করা হবে । সুতরাং W সাহেব এর পরীক্ষা শেষ হবে ৭ঃ৪০ মিনিট এ ।
W সাহেব এর পরীক্ষা শেষ হবার পর যদি আমরা আবার তালিকাটি দেখিঃ
ঠিক এ ভাবে আপনার এবং Z সাহেব এর পরীক্ষা শেষ হবার পর যদি তালিকাটি লক্ষ্য করিঃ
এবার আমরা যদি রোগীকে পরীক্ষা করার শেষ সময় (Completion Time)গুলো কে তালিকা করতে চাই তাহলে তালিকা টা দাড়ায় এমনঃ
এবার যদি আমার রোগী আসার সময় থেকে থেকে শুরু করে পরীক্ষা শেষ হওয়া পর্যন্ত কতক্ষণ সময় (Turn around Time) লেগেছে জানতে চাই তাহলে যেটা করতে হবে পরীক্ষা শেষ হওয়ার সময় থেকে আসার সময় বিয়োগ করলেই বেরিয়ে আসবে কতক্ষণ সময় লেগেছে
এবার যদি আমরা বের করতে চাই একজন রোগী কে চেম্বার এ আসার পর কতক্ষণ অপেক্ষা (Waiting time) করতে হয়েছে তাহলে যেটা করতে হবে সেটা হচ্ছে রোগীর চেম্বার এ কাটানো পুরো সময় (Completion Time) বিয়োগ পরীক্ষা করার (Execution Time) সময়
আর এভাবেই আমরা দেখে ফেললাম ডাক্তার রোগীর চিকিৎসার মাধ্যমে কিভাবে FCFS শিখতে হয় । লেখায় ভুলত্রুটি থাকতে পারে, অনুগ্রহ করে জানাবেন। এখানে নিছক গল্পের সাহায্যে FCFS এর বিভিন্ন টার্ম গুলো কে বুঝানোর চেষ্টা করা হয়েছে। বইয়ের ভাষার সাথে মিলিয়ে লিখতে পারলে হয়তো আর সহজে বুঝানো যেত । FCFS সম্পর্কে আর জানতে গুগলে সার্চ করতে পারেন ।