تالار گفتمان مانشت
نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - نسخه‌ی قابل چاپ

نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - Eng_Sara - 12 آذر ۱۳۹۱ ۰۷:۱۷ ب.ظ

سلام به همه دوستان خوب
کسی می دونه زمان جستجو در این الگوریتم ها چطوری محاسبه میشه؟
________________________
یه زمان حرکت بازو داریم که برای محاسبه اون تعداد سیلندرها رو در زمان حرکت بین دو سیلندر ضرب می کنیم. کسی می دونه زمان جستجو چطور محاسبه میشه؟
ممنون
موفق باشید Shy

RE: نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - golabijat - 12 آذر ۱۳۹۱ ۰۸:۱۰ ب.ظ

(۱۲ آذر ۱۳۹۱ ۰۷:۱۷ ب.ظ)Eng_Sara نوشته شده توسط:  سلام به همه دوستان خوب
کسی می دونه زمان جستجو در این الگوریتم ها چطوری محاسبه میشه؟
________________________
یه زمان حرکت بازو داریم که برای محاسبه اون تعداد سیلندرها رو در زمان حرکت بین دو سیلندر ضرب می کنیم. کسی می دونه زمان جستجو چطور محاسبه میشه؟
ممنون
موفق باشید Shy
سلام دوست عزیز
شما اگر با نحوه ی کار آسانسور آشنایی داشته باشی نحوه کار این الگوریتم دقیقا مانند آسانسوره که از
پایین میره بالا همه درخواستهای رو به بالا و در هنگام پایین اومدن همه درخواستهای رو به پایین رو سرویس
میده به همین راحتی دوست عزیز
E.g: 4,5,7,1,8,12,24,45,2,9 & start sector is 20 ==> answer : 20->24->45->12->9->8->7->5->4->2->1
? DoUunderstand



------------------------------------

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - esi - 12 آذر ۱۳۹۱ ۱۱:۱۸ ب.ظ

لطفا تاپیک رو همیشه تویه بخش سوالات درسی اعضاء مطرح کنید وگرنه بسته خواهد شد،من این بارو منتقل می کنم اما بی زحمت تویه حفظ نظم فروم مدیران رو یاری کنید، این فقط به خاطر حفظ نظم و ایجاد یه ساختار منظم برای فروم جهت دسترسی آسان بچه ها به تاپیک ها هست نه چیز دیگه.
آسانسور همون scan یا look هستش و همونطور که دوستمون globijat گفتن درست هستش.
مشابه حرکت آسانسور، مکان فعلی بازو رو به سمت نزدیک ترین درخواست حرکت می دیم و تا آخرین(وقتی نزدیک درخواست بزرگتر از سیلندر جاری باشه یا همون درخواست روبه سیلندر بیرونی تر با شماره بزرگتر) و یا اولین(یعنی به سمت داخل با سیلندر شماره کوچکتر) سیلندر میریم جلو و بعد مسیر رو بر می گردیم و به درخواست ها از در مسیر تا انتها ادامه میدیم و دوباره مسیر رو عوض می کنیم و الی آخر.
یه زمان انتقال بازو از یک سیلندر به سیلندر دیگه داریم که شما تعداد حرکات سیلندر حساب می کنید و در اون زمان ضرب می کنیم مثلا ۳۵۰ تا حرکت باز داشتید و هر حرکت ۲ میله ثانیه پس ۷۰۰ میلی ثانیه تاخیر حرکت باز داشتید.
توبعضی جاها هم نوشته شده که واسه تعیین جهت از یه بیت جهت UP یا DOWN استفاده می کنیم، اگه این بیت با نام UP برابر ۱ بود پس تو الگوریتم scan به اولین درخواست روبه بالا میدیم و اگه ۰ بود روبه پایین جواب میدیم، یا مثلا اگه از بیت DOWN استفاده کردیم ، اگه ۱ بود به سمت پایین میریم و اگه ۰ بود به سمت بالا که فقط جهت تعیین جهت در اولین حرکت هستش.
خیلی جاها هم این بیت نیست(تو کنکور همینطوری میاد) و شما باید به سمت نزدیک ترین سیلندر برید و جهت اولیه به سمت نزدیک ترین سیلندره.

نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - Eng_Sara - 13 آذر ۱۳۹۱ ۰۳:۵۷ ب.ظ

بابت پاسخ هاتون ممنونم و اینکه تایپیک رو دراون بخشی که گفتید ایجاد نکردم معذرت می خوام چون نمی دونستم!
اینایی که شما میگید رو می دونم!
زمان حرکت بازو =تعداد حرکت * زمان حرکت بازو از سیلندری به سیلندر دیگه

من دنبال نحوه محاسبه زمان جستجو هستم!!!!!!!!!!!!!!!!!!!!!!!!
زمان جستجو رو کسی می دونه چطوری محاسبه کنم؟؟؟؟
بازم ممنون
موفق باشید

نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - esi - 13 آذر ۱۳۹۱ ۰۷:۰۲ ب.ظ

همه اینایی که گفتیم زمان جستجویه دیگه !!!!!!!
زمان دستیابی به دیسک برابر = زمان جستجو + زمان تاخیرچرخشی + زمان انتقال .
زمان جستجو هم میشه یک زمان اسقرار بازو (که معمولا صرف نظر میشه) + تعداد حرکات بازو * زمان لازم برای جابجایی بازو از یک سیلندر به یک سیلندر دیگه .
هد بایه زمان جستجویی به یک سیلندر مدنظر میره(همون چیزایی که گفتیم) میرسه، بعد با زمان چرخشی به ابتدای داده مورد نظر میرسیم(دیسک می چرخه که مسلما متوسط این زمان برابر نصف زمان یم دور گدش دیسک یعنی r/2 )و بعدش هم با یه مدت زمان انتقالی داده های مورد نظر رو از سیلندر منتقل میکنیم به بافر و از اونجا به حافظه. همین
هر چی گفتیم زمان جستجو بود دیگه

RE: نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - Eng_Sara - 13 آذر ۱۳۹۱ ۰۹:۲۰ ب.ظ

(۱۳ آذر ۱۳۹۱ ۰۷:۰۲ ب.ظ)esi نوشته شده توسط:  هر چی گفتیم زمان جستجو بود دیگه

معذرت می خوام با سوال ساده ام وقتتون رو خیلی زیاد گرفتم.
ببینید مشکل من توی این سوال هست.
توی کادر اولی ۲۰۰+۲۰ که معلومه چیه ۱۹۰ رو متوجه نمیشم از کجا اومده!!!
________________
کادر دوم دورش خط کشیدم اما متوجه شدم قضیه چیه!
________________
ممنون میشم توی کادر اول عدد ۱۹۰ رو فقط بگید که زیاد وقت با ارزشتون رو نگرفته باشم.
با تشکر

نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - esi - 13 آذر ۱۳۹۱ ۱۱:۰۹ ب.ظ

اشکالی نداره، همه ما بعضی وقتا اشتباه می کنیم و نکات کوچیکو فراموش می کنیم.
همین یادت باشه تا همیشه با دقت تست بزنی.
اما جواب سوالت :
مسلما می دونی که الگوریتم اول C_SCAN هست و با آسانسور اشتباه نگیری.
تعداد جابجایی سیلندرها برابر ۱۹۵ است(به جز از ۲۰۰ به ۰ که خودش برابر زمان ۲۰ میلی ثانیه است) و هر جابجایی سیلندر هم برابر ۲ میلی ثانیه پس کل زمان جابجایی سیلندر میشه ۱۹۵*۲=۳۹۰ بعلاوه زمان لازم برای رفتن از سیلندر ۲۰۰ به ۰ که برابر ۲۰ است و مجموع کل میشه ۴۱۰ .
الکی نوشته ، منظورش ۲۰۰ و ۱۹۰ داره به همون ۳۹۰ اشاره می کنه شاید اومده اون ۹۵ را ضرب در ۲ کرده شده ۱۹۰ و جداگونه ۱۰۰ تا رم ضرب در ۲ کرده شده ۲۰۰ .
خواسته دهگان و صدگان رو جداگونه تو ۲ ضرب کنه تا قاطعی نشه !!!!

نحوه محاسبه زمان جستجو در الگوریتم Scan و Look - Eng_Sara - 14 آذر ۱۳۹۱ ۰۹:۳۹ ب.ظ

بسی جای تعجب داره!!!!
ممنونم بابت پاسخ هاتون
امیدوارم همواره موفق وپیروز باشید.