
برنامه الگوریتم های زمانبندی در #C سی شارپ
در این پست برنامه الگوریتم های زمانبندی در #C سی شارپ برای چهار الگوریتم معروف زمانبندی یعنی FIFO , SJF , SRT و Round Robin قرار داده شده است. یک فرآیند (Process) اساساً یک برنامه در حال اجراست. منظور از برنامه در حال اجرا، کاری است که توسط زمان بند کار، انتخاب و وارد گردونه اجرا شده است ولی هنوز پایان نیافته و از سیستم خارج نشده است.
اما الزاماً در حال حاضر CPU را در اختیار ندارد. الگوریتم های زمان بندی پردازنده یکی از مواردی است که باید در مورد مدیریت فرآیندها در سیستم عامل مورد بررسی قرار گیرد.
در این پست یک برنامه کامل گرافیکی روند کار الگوریتم های FIFO , SJF , SRT و Round Robin را نشان می دهد و حتی می توان نتایج این چهار الگوریتم را با یکدیگر مقایسه کرد.
الگوریتم های زمانبندی
ابزار زمانبندی پردازش به منظور زمانبندی پردازشهای مختلف که بر مبنای الگوریتمهای زمانبندی خاصی به CPU تحویل داده میشوند، مورد استفاده قرار میگیرد. شش الگوریتم زمانبندی پردازش وجود دارند که در این سورس کد به بررسی چهار مورد از آنها میپردازیم.
- زمانبندی «اجرا به ترتیب ورود» (First Come First Served) یا به اختصار (FCFS) یا همان FIFO
- زمانبندی « اولین کوتاهترین کار » (Shortest Job First) یا به اختصار (SJF)
- زمانبندی کوتاهترین زمان باقیمانده (Shortest Remaining Time)
- زمانبندی نوبت گردشی یا راند رابین (Round Robin) یا به اختصار (RR)
در برنامه الگوریتم های زمانبندی این جهار الگوریتم بطور کامل نوشته شده و حتی می توان آنها را باهم مقایسه نمود.
قسمت هایی از سورس کد
namespace Scheduling { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } ArrayList files = new ArrayList(); private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Multiselect = true; openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog1.Title = "Select a text file"; String[] s = null; if (openFileDialog1.ShowDialog() == DialogResult.OK) { s = openFileDialog1.SafeFileNames; foreach(String path in openFileDialog1.FileNames) files.Add(path); for (int i = 0; i < s.Length; i++) { if(!comboBox1.Items.Contains(s[i])) comboBox1.Items.Add(s[i]); } } } private void button2_Click(object sender, EventArgs e) { if (comboBox1.SelectedIndex == -1) { MessageBox.Show(" ابتدا یک فایل ورودی تعیین کنید "); return; } if (comboBox2.SelectedIndex == -1) { MessageBox.Show("بایستی الگوریتم زمانبندی مشخص کنید"); return; } int fileIndex = comboBox1.SelectedIndex; int algoIndex = comboBox2.SelectedIndex; InputForm i = new InputForm((String)files[fileIndex]); if (!i.checkFormat()) { MessageBox.Show("فرمت فایل ورودی درست نیست لطفاً اصلاح کنید"); i.External = false; i.ShowDialog(); InputForm j = new InputForm((String)files[fileIndex]); if (!j.checkFormat()) { MessageBox.Show("لطفاً یک فایل دیگر را امتحان کنید"); return; } } if (textBox1.Text == "") { MessageBox.Show("برای تعویض متن یک زمان تعیین کنید"); return; } try { int k = Int32.Parse(textBox1.Text); if (k <= 0) { MessageBox.Show("تعویض متن بایستی بصورت عدد صحیح مثبت باشد"); return; } if (k > 20) { MessageBox.Show("عدد تعویض متن از 20 بیشتر نباشد"); return; } } catch { MessageBox.Show("تعویض متن باید بصورت عدد صحیح باشد"); return; } Algorithm algorithm = newAlgorithm(algoIndex); algorithm.loadProcesses((String)files[fileIndex]); algorithm.Overhead = Int32.Parse(textBox1.Text); String text = ""; switch (algoIndex) { case 0: text = "استراتژی الگوریتم FIFO - First Input First Output"; break; case 1: text = " استراتژی الگوریتم SJF - Shortest Job First"; break; case 2: text = " استراتژی الگوریتم SRT - Shortest Remaining Time"; break; case 3: text = " استراتژی الگوریتم RR - Round Robin"; break; default: text = ""; break; } DisplayForm x = new DisplayForm(algorithm); x.Text = text; x.Show(); } private Algorithm newAlgorithm(int type) { switch (type) { case 0: return new FCFS(); case 1: return new SJF(); case 2: return new SRTF(); case 3: return new RR(); default: return null; } } private void button3_Click(object sender, EventArgs e) { InputForm x = new InputForm(); x.ShowDialog(); } private void MainForm_Load(object sender, EventArgs e) { } } }
تصاویر خروجی پروژه
ویدئوی معرفی محصول
درباره الگوریتم زمانبندی در سی شارپ
برنامه الگوریتم های زمانبندی در #C سی شارپ محصولی است که در این پست به آن پرداخته شده است. محصول در نرم Microsoft Visual Studio نوشته شده است محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده و دارای کامنت گذاری برای هر دستور می باشد. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
تاریخ انتشار: | 16 آذر 1398 |
---|---|
تاریخ بروزرسانی: | 12 فروردین 1399 |
حجم فایل: | 144 کیلوبایت |
فرمت فایل | sln در قالب ویژوال استودیو |
نسخه: | 1.0 |
لایسنس: | ندارد |
هماهنگی با: | Microsoft Visual Studio |
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- دیدگاه های فینگلیش تایید نخواهند شد.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- امتیاز دادن به محصول فقط مخصوص اعضای سایت می باشد.
قیمت 49,000 تومان
این فایل در ویژوال استادیو نوشته شده و بصورت زیپ شده قابل دانلود است. بلافاصله پس از خرید، لینک دانلود در اختیار شما قرار خواهد گرفت.
با خرید این محصول از مزایای زیر بهرهمند میشوید:
- دسترسی به فایل محصول به صورت مادامالعمر
- ۶ ماه پشتیبانی کاملا رایگان و تضمین شده
تاریخ انتشار: | 16 آذر 1398 |
---|---|
تاریخ بروزرسانی: | 12 فروردین 1399 |
حجم فایل: | 144 کیلوبایت |
فرمت فایل | sln در قالب ویژوال استودیو |
نسخه: | 1.0 |
لایسنس: | ندارد |
هماهنگی با: | Microsoft Visual Studio |
قیمت: 49,000 تومان
programstore
نظرات و پیشنهادات خود را با ما در میان بگذارید.
yaminikourosh1
سلام مهندس وقت بخیر میخواستم بپرسم آیا فایل pdf توضیحات این پروژه , قرار داده شده یا خیر؟
امین جلیل زاده رزین
با سلام و عرض ادب خدمت شما دوست عزیز
این برنامه صرفاً سورس کد هست و فایل توضیحاتی نداره البته همانطور که در فیلم نحوه اجرای پروژه مشخص هست. کدها بصورت روان نوشته شدند و براحتی از ساختار پروژه می شه فهمید چی به چیه.