(۳۰ خرداد ۱۳۹۱ ۰۹:۴۸ ق.ظ)skytower_19 نوشته شده توسط: آقا خیلی لطف کردین. واقعا ممنون. با این توضیح من متوجه TF شدم.
الان قسمت ب که خب همون میشه چون طبق قاعده ای که شما گفتین TF = TN.
برای TI آیا میشه از فرمول ۲*T R/W استفاده کرد؟ یعنی ۲ رو ضرب ۲ میلی ثانیه بکنیم در این سوال و به عنوان جواب نهایی بنویسیم؟ و برای TD از TF+T R/W میشه آیا استفاده کرد؟ خیلی ممنونم.
با سلام
همانطور که خواسته بودین من بقیه قسمتهای سئوال رو هم حل میکنم امیدوارم مثمرثمر واقع بشه
برای [tex]T_{Insert}[/tex] باید چه کار کنیم ؟؟؟؟
۱- اول اخرین بلاک فایل رو میخونیم که این عمل هزینه اش چقدره؟
هزینه استوانه یابی (s)+ هزینه درنگ دورانی r + هزینه خواندن بلاک [tex]b_{tt}=2ms[/tex]
توجه کنید که در این مسئله خاص s و r رو بهمون نداده و لذا زمان این قسمت برابر میشود با : [tex]b_{tt} s r=2 0 0=2ms[/tex]
راستی [tex]b_{tt}[/tex] مخفف block transfer time هستش یا همون [tex]T_{r/w}[/tex] گفتم تا یه وقت فکر نکنید یه چیز دیگه است
۲- دومین کاری که باید بکنیم اینه که رکورد مورد نظر را درون بلاک بنویسیم و دوباره بلاک بندی کینم . توجه کنید بلاک خوانده شده در مرحله قبل در حافظه قرار میگیرد لذا این عملیات درون حافظه اصلی با سرعت بالا انجام میگیرد و از این زمان صرف نظر می کنیم مگر اینکه باز در صورت مسئله به ما داده باشن که در اینجا ندادن
۳- خب در این قسمت باید زحمت بکشیم و بلاک را دوباره در انتهای فایل بنویسم (به همین سادگی) حالا هزینه این مرحله چقدره؟[tex]T_{r/w}[/tex] درنتیجه به فرمول خودتون میرسیم .[tex]T_{I}=2 * T_{r/w}[/tex] البته باز تاکید میکنم در این مثال خاص (که نه s رو بهمون داده و نه r !! )
یه نکته رو هم ذکر کنم ,در مرحله سوم از انجا که زمان درج اغلب کمتر از یک چرخش کامل دیسک هست و در یک چرخش کامل دیسک بلاک مورد نظر روی دیسک نوشته میشود بنابراین می توان [tex]T_{r/w}=2r[/tex] در نظر گرفت با این توضیحات زمان درج برابر است با :
[tex]T_{Insert}= (s r b_{tt}) T_{r/w} = (s r b_{tt}) 2r[/tex] و در نهایت در این مثال :
[tex]T_{I}=2*T_{r/w}=2 * 2 = 4ms[/tex]
زیاد جالب نیست که زمان s و r رو بهمون ندادن چرا که این زمانها bottleneck یا گلوگاه محسوب میشوند زیرا زمانهای زیادی هستن و تاثیر خیلی زیادی در محاسبه میگذارند اما نمیدانم چرا در مسئله به این زمانها اشاره نکرده
و اما زمان حذف یا [tex]T_{delete}[/tex] :
برای حذف باید چیکار کینم به نظرتون :
۱ - در اولین مرحله باید رکورد مورد نظر رو واکشی کرد یا [tex]T_{f}[/tex]
۲- حذف منطقی رکورد که این عملیات هم چون در حافظه صورت می گیرد از سرعت بالایی برخوردار است و از ان صرف نظر می کنیم
یه توضیح تو پرانتز : ما دو نوع حذف داریم حذف منطقی و حذف فیزیکی در حذف منطقی رکورد فقط مارک میشود و فیلد حذف ان ست میشود اما به صورت فزیکی حذف نمیشود(برای افزایش سرعت عملیات) و بعدا در سازماندهی مجدد انرا به صورت فزیکی حذف و مجددا بلاک بندی میکنیم .
۳- باز نویسی بلاک مورد مورد نظر یا [tex]T_{r/w} = 2r[/tex]
در نهایت برای مسئله شما و طبق براورد خودتان داریم : [tex]T_{d}=T_{f} T_{r/w} = 1000 2=1002ms[/tex]
می رسیم بر سر زمان اپدیت یا [tex]T_{update}[/tex] :
ویرایش رکورد در فایل پایل به دو صورت انجام میگیرد درجا و برون از جا
ممکنه در حین ویرایش طول رکورد تغیر کند و نتوان در جای قبلی خودش درج کرد لذا در اینصورت باید رکورد قبلی را حذف منطقی کرد و رکورد ویرایش یافته را در انتهای فایل درج کرد .
و اما محاسبات برای درجا :
اگر رکورد ویرایش یافته به صورت درجا ذخیره شود پس مسئله همان حذف رکرود هست چرا که در انجا هم حذف منطقی کردیم و حذف منطقی هم حال خاصی از ویرایش درجاست
پس در مسئله شما میشود :
[tex] T_{U inplace} = T_{D} = T_{f} T_{r/w} = T_{f} 2r =1000 2 =1002ms[/tex]
برون از جا :
در این صورت باید این مراحل رو دنبال کنیم :
۱- رکورد مورد نظر را واکشی وانرا حذف منطقی کنیم یا [tex]T_{D}=T_{f} T_{r/w} = T_{f} 2r[/tex]
۲- دراین مرحله رکورد ویرایش یافته را که طولش هم تغیر کرده در انتهای فایل می نویسیم که این زمان همان زمان درج است .
در نهایت داریم : [tex]T_{U outplace}=T_{D} T_{I} = 1002 4=1006ms[/tex]
به همین سادگی
موفق و پیروز باشین