سلام. الگوریتم زمانبندی با مهلت (Deadline Scheduling Algorithm) یکی از الگوریتمهای زمانبندی در سیستمهای عامل است که بر اساس مهلت اجرای پروسهها زمانبندی میکند. در این الگوریتم، پروسهای که کمترین مهلت را دارد، اولویت بیشتری برای اجرا دارد.
در زیر یک نمونه ساده از این الگوریتم را با استفاده از C++ میبینید:
#include<iostream>
#include<algorithm>
using namespace std;
struct Process {
int id; // Process ID
int deadline; // Process deadline
int jobTime; // Job's time that process requires
};
bool comparison(Process a, Process b) {
return (a.deadline < b.deadline);
}
void scheduleJobs(Process arr[], int n) {
// Sort all jobs according to decreasing order of their deadlines.
sort(arr, arr+n, comparison);
cout << "Order in which processes gets executed \n";
for (int i=0; i<n; i++)
cout << arr[i].id << " ";
}
int main() {
Process arr[] = { {1, 2, 100}, {2, 1, 19}, {3, 2, 27},
{4, 1, 25}, {5, 3, 15}};
int n = sizeof(arr)/sizeof(arr[0]);
scheduleJobs(arr, n);
return 0;
}
در این کد، ابتدا پروسهها بر اساس مهلتهایشان مرتب میشوند. سپس، پروسهها به ترتیب اجرا میشوند. این الگوریتم فرض میکند که هر پروسه فقط یک بار اجرا میشود و پس از اتمام، دیگر اجرا نمیشود.