زمان بندی پردازش ها (Process Scheduling)
بخشی از سیستم عامل که مشخص می کند که کدام پردازش در چه زمانی و به چه اندازه ای اجرا شود، زمان بندی پردازش ها نامیده می شود. به بیان ساده تر، در الگوریتم زمان بندی برای هر پردازنده یک اولویت مشخص می شود که براساس آن اولویت مشخص شده هرکدام از پردازنده ها که دارای اولویت بیشتری باشد، سریع تر به پردازنده دست پیدا می کند. در ادامه قصد داریم شما را با انواع الگوریتم های زمان بندی و ویژگی های مختلف آن آشنا کنیم. همراه ما باشید.
بیشتر درباره زمان بندی پردازش ها بدانید
در تمامی سیستم های کامپیوتری بیش از هزاران پردازش در کسری از ثانیه انجام می شود. در صورتی که پردازنده تصمیم بگیرید که تمامی امور را بر اساس ترتیب اولویت بندی شده اش انجام دهد، قطعا این توانایی وجود نخواهد داشت که بتوان به صورت همزمان با برنامه های گوناگون کار کرد. اگر بخواهیم به صورت دقیق تر زمان بندی پردازنده ها را توضیح دهیم باید بیان کنیم، این الگوریتم زمان بندی در سیستم ها وظیفه مدیریت صحیح فرایندها در زمان پردازش را به عهده دارد.
هدف کلی زمان بندی پردازش ها، تخصیص فرایندهای مختلف در طول زمان پردازنده است. به شکلی که بتواند کارها و اهدافی مانند، توان عملیاتی و کارایی پردازنده، زمان پاسخ پردازنده را انجام دهد. در واقع زمان بندی یکی از مهم ترین اهداف سیستم عامل های چند برنامه ای است. الگوریتم های زمان بندی در سیستم ها دارای اهدافی هستند که در ادامه به برخی از آن ها اشاره خواهیم کرد:
- از جمله کارهای مهم می توان به حداکثر مشغول نگه داشتن cpu اشاره کرد.
- این الگوریتم ها cpu را به صورت عادلانه در فرایندهای گوناگون تقسیم می کنند.
- در واحد زمان تعداد زیادی از فرایندها را به نحو درستی کامل می کنند.
- در کمترین زمان ممکن فرایندهای مختلف را کامل می کنند.
- برای دسترسی به یک فرایند، کمترین زمان ممکن در انتظار باقی خواهد ماند.
- مدت زمان پاسخگویی یک فرایند برای اولین بار در کمترین زمان ممکن است.
همانطور که مشاهده کردید الگوریتم های زمان بندی دارای ویژگی های بسیار فراوانی هستند که به سیستم عامل کمک زیادی می کنند. اما بد نیست که بدانید این الگوریتم ها در سیستم عامل به چند نوع دسته بندی می شوند. انواع الگوریتم به دو گروه اصلی تقسیم می شوند که عبارتند از:
- انحصاری
- غیر انحصاری
بیشتر بخوانید: سوئیچ لایه دو
الگوریتم انحصاری به این شکل عمل می کنند که وقتی یک فرایند را تحویل می گیرد و شروع به کار می کند، تا زمانی که این فرایند به اتمام نرسد و یا اینکه فرایند مسدود نشود، پردازش را به فرایند دیگری نمی سپارد. به بیان ساده تر در این الگوریتم هر فرایندی به مدت یک بار و فقط در یک جا انجام می شود و نمی تواند به قسمت های کوچک تقسیم شود. الگوریتم های انحصاری شامل انواع مختلفی چون: fcfs, sjf, hrrn می شود.
الگوریتم غیر انحصاری به این شکل عمل می کند که زمانی که یک فرایند در حال اجرا است، امکان توقف و حالت آماده باش نگه داشتن آن توسط سیستم عامل وجود دارد. در واقع به بیان ساده تر، در این الگوریتم امکان تقسیم فرایندها به چند مرحله و تخصیص پردازنده در چند مرحله صورت می گیرد. این الگوریتم شامل انواع مختلفی چون: srtf, rr, mlfq می شود.
ابزارهای زمان بندی پردازشها
برای مدیریت پردازش سیستم ها، ابزارهای زمان بندی خاصی وجود دارد که به روش های گوناگونی پردازش ها را مدیریت می کنند. وظیفه اصلی این ابزارها، انتخاب وظایف تحویلی به سیستم عامل و تصمیم برای اینکه کدام پردازش انجام شود، می باشد. این ابزارها به شکل های مختلفی هستند که می توان آن ها را در دسته بندی های زیر مشخص کرد:
- زمان بندی بلند مدت یا job:
از جمله کارهای این ابزار می توان به بارگیری پردازش انتخاب شده در صف مربوطه، در حافظه اشاره کرد. علت وارد شدن به حافظه، انجام پردازش مربوط به cpu است. ایجاد ترکیب متعادل از وظایف مهم ابزار بلند مدت است. از طرفی این ابزار میزان چند برنامگی را هماهنگ و متعادل می کند. توجه داشته باشید که برخی از برنامه ها ابزار بلند مدت را ندارند و یا ممکن است کوچک باشد.
- زمان بندی کوتاه مدت یا cpu:
این ابزار وظیفه دارد که سیستم عامل را با معیارهای مشخص شده هماهنگ کند و کارایی و عملکرد سیستم را بالا ببرد. از دیگر وظایف این ابزار تغییر وضعیت از آماده باش به اجرایی است. در واقع این ابزار از بین تمام پردازش هایی که در حال اجرا هستند، یکی از آن ها را انتخاب می کند. از نظر سرعت، کوتاه مدت از بلند مدت سریع تر است.
- ابزار میان مدت:
این ابزار وظیفه خروج پردازش از حافظه را بر عهده دارد و باعث کم شدن چند برنامگی می شود.. همچنین وظیفه جایگزین کردن پردازش های اتمام یافته را به عهده دارد.
الگوریتم های مختلف و ویژگی های آن
یکی از انواع الگوریتم های مورد استفاده در زمان بندی، الگوریتم fcfs است که جزو ساده ترین نوع الگوریتم ها محسوب می شود. از ویژگی های این الگوریتم می توان به موارد زیر اشاره کرد:
- اجرای این الگوریتم بسیار ساده است و می توان به راحتی این کار را انجام داد.
- از جمله ویژگی های بد این الگوریتم می توان به مدت زمان انتظار بالای آن اشاره کرد که باعث می شود عملکرد ضعیفی داشته باشد.
از دیگر الگوریتم های زمان بندی می توان به الگوریتم SJN اشاره کرد که کمترین زمان را در اجرای برنامه ها دارد. در واقع این الگوریتم قدرت قابل توجهی را در کاهش زمان انتظار برای اجرای فرایندها دارد. هنگامی که شما از این الگوریتم استفاده می کنید، می توانید مدت زمان مشخصی برای اتمام کار در نظر بگیرید. در نتیجه می توان از آن برای پردازش دسته ای استفاده کنید. بر اساس این الگوریتم، کارهایی که دارای تایم انجام کوتاه تری هستند در اولویت قرار می گیرند و می توان با اینکار به انجام فرایندها بهبود بخشید.
Shortest Remaining Time یکی دیگر از انواع الگوریتم زمان بندی پردازش ها است که عملکردی مشابه پردازنده sjf دارد. در واقع در این پردازش، اولویت انتخاب با فرایندی است که نیاز به زمان کمتری برای اجرا داشته باشد. به بیان ساده تر اگر چندین فرایند با اهمیت یکسان وجود داشته باشد، فرایندی انتخاب می شود که دارای زمان کمتری باشد. از ویژگی های آن می توان به حداقل تایم انتظار و برگشت اشاره کنیم.
MLFQ از دیگر الگوریتم ها است که غیر انحصاری است و از جمله کارهای آن، مدیریت فرایندها می باشد. روش کار آن به این صورت است که صف های چندگانه ایجاد می کند که دارای کلاس های اولویت هستند، زمانی که فرایند تازه ای وارد کار می شود، در قسمت آخر بالاترین کلاس اولویت قرار می گیرد. از نظر بازه زمانی مورد استفاده در هر فرایند، می توان گفت که هر فرایند براساس اولویت خود از کوانتوم و بازه زمانی تقسیم شده از قبل، استفاده می کند.
همچنین بخوانید: سوئیچ لایه سه چیست؟
میزان استفاده هر فرایند از کوانتوم به این صورت است که بالاترین کلاس یک، کلاس بعدی ۲، کلاس بعدی ۴ و… به همین ترتیب تا آخر تعداد کوانتوم ها افزایش می یابد. در صورتی که فرایند برای انجام به بیش از بازه زمانی تعیین شده نیاز داشته باشد، می تواند وارد کلاس های پایین تر شود. نحوه رسیدگی به کلاس ها به این صورت است که ابتدا کل کلاس های بالاتر از کلاس مشخص شده باید خالی شده باشند، سپس کلاس مورد نظر اجرا می شود. اگر هنگام زمان بندی پردازش ها، فرایند جدیدی به صف اول کلاس ها وارد شد، باید فرایند حال حاضر را رها کنید و به فرایند جدید بپردازید و تا زمان اتمام فرایند از انجام فرایند فعلی خودداری شود.
الگوریتم rr یکی از الگوریتم هایی است که برای هر فرایند معین یک بازه زمانی مشخص به نام کوانتوم در نظر می گیرد. از جمله ویژگی های این الگوریتم می توان به ساده بودن اجرای آن، نداشتن گرسنگی و قحطی در سیستم عامل، دارای عملکرد متعادل و بسیاری دیگر از موارد که شما با توجه به این ویژگی ها می توانید از الگوریتم های مورد نظر نهایت استفاده را ببرید.
جمع بندی
در صورتی یک الگوریتم خوب است که بتواند باعث افزایش میزان بهره وری cpu شود تا بتوانید در کمترین زمان به نتیجه دستیابید. الگوریتمها به صورت کلی به دو گروه انحصاری و غیر انحصاری دسته بندی می شوند. در دسته بندی الگوریتم ها، چندین الگوریتم مختلف جای می گیرد که در این مطلب به برخی از آن ها مانند sjn, mlfq و … اشاره کردیم. نکته مهمی که وجود دارد این است که ممکن است برای هر سیستم عامل چند الگوریتم متفاوت وجود داشته باشد که برای زمان بندی های مختلف وجود دارد. البته حتی در برخی موارد می توان از الگوریتم هایی که ترکیبی از چند الگوریتم است، استفاده کرد.
مطالب زیر را حتما بخوانید
-
پیکربندی فایروالها در لینوکس
25 بازدید
-
در دورههای MCSE و MCSA دوران آکادمی چه مهارتهایی آموزش داده میشود؟
19 بازدید
-
لینوکس آلپاین (Alpine) چیست؟
2.33k بازدید
-
دورههای آموزشی لینوکس مناسب مبتدیان
5.89k بازدید
-
انواع مدیریت بستهها در لینوکس
45 بازدید
-
مدیریت دسترسی کاربران و گروه ها در لینوکس
41 بازدید
دیدگاهتان را بنویسید