با سلام
در ادامه , الگوریتم SRT رو توضیح میدم.(الگوریتم SRT , یک الگوریتم زمانبندی غیرانحصاری هست و به کارهای کوتاهتر اولویت می دهد و کارهای طولانی عقب تر می افتند.) در ضمن الگوریتم SRT از کوانتوم استفاده نمیکنه.
در این الگوریتم, فرآیند A در زمان ۰ وارد سیستم میشه و تا زمان ۲ به جلو پیش میره (چرا تا زمان ۲ به جلو پیش میره؟ به خاطر اینکه در زمان ۲ قراره که فرآیند B وارد سیستم بشه و زمان خدمتش مورد مقایسه قرار بگیره.) و بدین ترتیب از زمان خدمت فرآیند A دو واحد کم می شود و بنابراین زمان خدمت فرآیند A از ۱۲ میلی ثانیه به ۱۰ میلی ثانیه کاهش پیدا میکنه چون که تا زمان ۲ که فرآیند A اجرا شده, پس ۲ میلی ثانیه از زمان خدمتش رو استفاده کرده . حالا چرا به ۱۰ میلی ثانیه کاهش پیدا کرد و مثل الگوریتم fcfs به طور کامل اجرا نشد و تموم نشد؟ به خاطر اینکه اولا این الگوریتم غیرانحصاری است و ثانیا چون این الگوریتم به فرآیندهای کوتاهتر اولویت می دهد پس فرآیند B که زمان خدمتش ۵ میلی ثانیه است که از ۱۰ میلی ثانیه فرآیند A کوتاهتر است پس در زمان ۲ به فرآیند B سوییچ می کنیم و فرآیند B هم تا زمان ۵ به جلو پیش میره (چرا تا زمان ۵ به جلو پیش میره؟ به خاطر اینکه در زمان ۵ قراره که فرآیند C وارد سیستم بشه و زمان خدمتش مورد مقایسه قرار بگیره.) و بنابراین زمان خدمت فرآیند B سه تا کم میشه و به ۲ میلی ثانیه کاهش پیدا میکنه و از طرف دیگه چون قراره که در زمان ۵ فرآیند C وارد سیستم بشه بنابراین زمان باقیمانده فرآیند B که ۲ میلی ثانیه هست و زمان خدمت فرآیند C که ۴ میلی ثانیه است با هم مقایسه میشن و چون زمان خدمت باقیمانده فرآیند B کوتاهتر است یعنی ۴>2 بنابراین فرآیند B اون ۲ میلی ثانیه باقیمانده رو هم به جلو حرکت میکنه و زمان خدمتش رو به طور کامل استفاده میکنه و کارش با سیستم تموم میشه. الان فرآیند B در زمان ۷ دیگه تموم میشه. از طرف دیگه هم هنوز دو تا فرآیند A و C که قبلا وارد سیستم شده بودند هنوز کارشون تموم نشده و زمان خدمتشون هنوز مونده و چون زمان خدمت فرآیند C کوتاهتر از فرآیند A است یعنی ۱۰>4 بنابراین فرآیند C در زمان ۷ وارد سیستم میشه و یک واحد از زمان خدمتش رو استفاده میکنه و زمان خدمتش به ۳ میلی ثانیه کاهش پیدا میکنه و همچنین از زمان ۷ تا زمان ۸ به جلو پیش میره (چرا تا زمان ۸ به جلو پیش میره؟ به خاطر اینکه در زمان ۸ قراره که فرآیند D وارد سیستم بشه و زمان خدمتش مورد مقایسه قرار بگیره.) در این موقع زمان باقیمانده فرآیند C که ۳ میلی ثانیه هست و زمان خدمت فرآیند D که ۱۵ میلی ثانیه است با هم مقایسه میشن و چون زمان خدمت باقیمانده فرآیند C کوتاهتر است یعنی ۱۵>3 بنابراین فرآیند C اون ۳ میلی ثانیه باقیمانده رو هم به جلو حرکت میکنه و زمان خدمتش رو به طور کامل استفاده میکنه و کارش با سیستم تموم میشه. الان فرآیند C در زمان ۱۱ دیگه تموم میشه. از طرف دیگه هنوز دو تا فرآیند A و D که قبلا وارد سیستم شده بودند هنوز کارشون با سیستم تموم نشده و زمان خدمتشون هنوز مونده و چون زمان خدمت فرآیند A کوتاهتر از فرآیند D است یعنی ۱۵>10 بنابراین فرآیند A در زمان ۱۱ وارد سیستم میشه و همه ۱۰ میلی ثانیه باقیمانده خودش رو یکجا استفاده میکنه و تا زمان ۲۱ به جلو حرکت میکنه و در زمان ۲۱ کارش با سیستم تموم میشه. و در نهایت فرآیند D که زمان خدمتش از مابقیه فرآیندها خیلی طولانی تر بود در زمان ۲۱ وارد سیستم میشه و ۱۵ واحد به جلو حرکت میکنه یعنی تا زمان ۳۶ به جلو حرکت میکنه و بنابراین در زمان ۳۶ کارش با سیستم تموم میشه.
بدین ترتیب توضیحات الگوریتمSRT هم به اتمام رسید و همه فرآیندها نیز از تمام زمان خدمتشون استفاده کردند.
در نهایت, الگوریتم RR رو توضیح میدم.(الگوریتم RR , یک الگوریتم زمانبندی غیرانحصاری هست و به صورت اشتراک زمانی عمل میکنه یعنی هر کدام از فرآیندها در یک بازه خاص به طور مساوی از CPU استفاده می کنند و به این بازه خاص اصطلاحا کوانتوم میگن.)
در این الگوریتم, فرآیند A در زمان ۰ وارد سیستم میشه و تا زمان ۳ به جلو پیش میره (چرا تا زمان ۳ به جلو پیش میره؟ به خاطر اینکه کوانتوم زمانی گفته شده در صورت سوال, ۳ میلی ثانیه ذکر شده.) و بدین ترتیب از زمان خدمت فرآیند A سه واحد کم می شود و بدین ترتیب زمان خدمت فرآیند A از ۱۲ میلی ثانیه به ۹ میلی ثانیه کاهش پیدا میکنه چون که تا زمان ۳ فرآیند A اجرا شده, پس ۳ میلی ثانیه از زمان خدمتش رو استفاده کرد . حالا نوبت به فرآیند B میرسه چون که این فرآیند در زمان ۲ وارد سیستم شده بود یعنی در واقع در زمان ۲ می خواست وارد سیستم بشه ولی چون که سیستم مورد استفاده فرآیند دیگه ای بود نتونست وارد بشه و بنابراین منتظر فرآیند A بود که کار فرآیند A تموم بشه تا بتونه وارد سیستم بشه و حالا که کار فرآیند A با سیستم تموم شده, میتونه از سیستم استفاده کنه بدین ترتیب فرآیند B در زمان ۳ وارد سیستم میشه و تا زمان ۶ به جلو حرکت میکنه و از زمان خدمت فرآیند B هم سه تا کم میشه و به ۲ میلی ثانیه کاهش پیدا میکنه و به صورت موقت حق فرآیند B هم به اتمام رسید و از طرف دیگه چون قرار بود که در زمان ۵ فرآیند C وارد سیستم بشه بنابراین این فرآیند در زمان ۶ وارد سیستم میشه و تا زمان ۹ به جلو پیش میره و از زمان خدمت فرآیند C هم سه تا کم میشه و به ۱ میلی ثانیه کاهش پیدا میکنه و به صورت موقت حق فرآیند C هم به اتمام رسید و از طرف دیگه چون قرار بود که در زمان ۸ فرآیند D وارد سیستم بشه بنابراین این فرآیند در زمان ۹ وارد سیستم میشه و تا زمان ۱۲ به جلو پیش میره و از زمان خدمت فرآیند D هم سه تا کم میشه و به ۱۲ میلی ثانیه کاهش پیدا میکنه و به صورت موقت حق فرآیند D هم به اتمام رسید. چون همه فرآیندها از سیستم استفاده کردن دوباره به اولین فرآیند بر میگردیم یعنی به فرآیند A و این فرآیند هم دوباره ۳ تا به جلو حرکت میکنه و به زمان ۱۵ میرسه و زمان خدمت باقیماندش میشه ۶ میلی ثانیه. نوبت به فرآیند B میرسه چون که زمان خدمت باقیمانده این فرآیند ۲ میلی ثانیه بود و این ۲ میلی ثانیه از زمان کوانتوم کمتر هست و این فرآیند دیگه میتونه از همه زمان خدمت باقیمانده خودش استفاده کنه و بنابراین در زمان ۱۷ کار فرآیند B با سیستم تموم میشه. نوبت به فرآیند بعدی یعنی C میرسه چون که زمان خدمت باقیمانده این فرآیند ۱ میلی ثانیه بود و این ۱ میلی ثانیه از زمان کوانتوم کمتر هست و این فرآیند هم میتونه از همه زمان خدمت باقیمانده خودش استفاده کنه و بنابراین در زمان ۱۸ کار فرآیند C با سیستم تموم میشه. نوبت به فرآیند D میرسه این فرآیند هم دوباره ۳ تا به جلو حرکت میکنه و به زمان ۲۱ میرسه و زمان خدمت باقیماندش میشه ۹ میلی ثانیه. چون همه فرآیندها از سیستم استفاده کردن دوباره به اولین فرآیند بر میگردیم یعنی به فرآیند A و این فرآیند هم دوباره ۳ تا به جلو حرکت میکنه و به زمان ۲۴ میرسه و زمان خدمت باقیماندش میشه ۳ میلی ثانیه. و در اینجا چون دو تا فرآیند B و C قبلا کارشون با سیستم تموم شده بود, دیگه با این فرآیندها کاری نداریم و مستقیم میریم سراغ فرآیند D این فرآیند هم دوباره ۳ تا به جلو حرکت میکنه و به زمان ۲۷ می رسیم و زمان خدمت باقیماندش میشه ۶ میلی ثانیه.
دوباره به فرآیند A برمی گردیم و این فرآیند هم ۳ واحد به جلو حرکت میکنه و بنابراین در زمان ۳۰ کار فرآیند A با سیستم تموم میشه. نوبت به فرآیند D میرسه این فرآیند هم دوباره ۳ تا به جلو حرکت میکنه و به زمان ۳۳ میرسه و زمان خدمت باقیماندش میشه ۳ میلی ثانیه. چون که دیگه فرآیندی به جز فرآیند D باقی نمونده, دوباره ۳ تا به جلو حرکت میکنه و بنابراین این فرآیند نیز از همه زمان خدمت خودش مثل بقیه فرآیندها استفاده کرد و بنابراین در زمان ۳۶ کار فرآیند D با سیستم تموم میشه.
بدین ترتیب توضیحات الگوریتمRR هم به اتمام رسید و همه فرآیندها نیز از تمام زمان خدمتشون استفاده کردند.
سعی کردم که مطالب رو به صورت ساده و روان توضیح بدم. امیدوارم که مطالب به دردتون بخوره. اگه هم که خوب نبود ببخشید.
باز هم اگه سوالی باشه در خدمتتون هستم.