(۳۰ خرداد ۱۳۹۱ ۰۹:۴۸ ق.ظ)skytower_19 نوشته شده توسط: آقا خیلی لطف کردین. واقعا ممنون. با این توضیح من متوجه TF شدم.
الان قسمت ب که خب همون میشه چون طبق قاعده ای که شما گفتین TF = TN.
برای TI آیا میشه از فرمول ۲*T R/W استفاده کرد؟ یعنی ۲ رو ضرب ۲ میلی ثانیه بکنیم در این سوال و به عنوان جواب نهایی بنویسیم؟ و برای TD از TF+T R/W میشه آیا استفاده کرد؟ خیلی ممنونم.
با سلام
همانطور که خواسته بودین من بقیه قسمتهای سئوال رو هم حل میکنم امیدوارم مثمرثمر واقع بشه
برای
TInsert باید چه کار کنیم ؟؟؟؟
۱- اول اخرین بلاک فایل رو میخونیم که این عمل هزینه اش چقدره؟
هزینه استوانه یابی (s)+ هزینه درنگ دورانی r + هزینه خواندن بلاک
btt=2ms
توجه کنید که در این مسئله خاص s و r رو بهمون نداده و لذا زمان این قسمت برابر میشود با :
bttsr=200=2ms
راستی
btt مخفف block transfer time هستش یا همون
Tr/w گفتم تا یه وقت فکر نکنید یه چیز دیگه است
۲- دومین کاری که باید بکنیم اینه که رکورد مورد نظر را درون بلاک بنویسیم و دوباره بلاک بندی کینم . توجه کنید بلاک خوانده شده در مرحله قبل در حافظه قرار میگیرد لذا این عملیات درون حافظه اصلی با سرعت بالا انجام میگیرد و از این زمان صرف نظر می کنیم مگر اینکه باز در صورت مسئله به ما داده باشن که در اینجا ندادن
۳- خب در این قسمت باید زحمت بکشیم و بلاک را دوباره در انتهای فایل بنویسم (به همین سادگی) حالا هزینه این مرحله چقدره؟
Tr/w درنتیجه به فرمول خودتون میرسیم .
TI=2∗Tr/w البته باز تاکید میکنم در این مثال خاص (که نه s رو بهمون داده و نه r !! )
یه نکته رو هم ذکر کنم ,در مرحله سوم از انجا که زمان درج اغلب کمتر از یک چرخش کامل دیسک هست و در یک چرخش کامل دیسک بلاک مورد نظر روی دیسک نوشته میشود بنابراین می توان
Tr/w=2r در نظر گرفت با این توضیحات زمان درج برابر است با :
TInsert=(srbtt)Tr/w=(srbtt)2r و در نهایت در این مثال :
TI=2∗Tr/w=2∗2=4ms
زیاد جالب نیست که زمان s و r رو بهمون ندادن چرا که این زمانها bottleneck یا گلوگاه محسوب میشوند زیرا زمانهای زیادی هستن و تاثیر خیلی زیادی در محاسبه میگذارند اما نمیدانم چرا در مسئله به این زمانها اشاره نکرده
و اما زمان حذف یا
Tdelete :
برای حذف باید چیکار کینم به نظرتون :
۱ - در اولین مرحله باید رکورد مورد نظر رو واکشی کرد یا
Tf
۲- حذف منطقی رکورد که این عملیات هم چون در حافظه صورت می گیرد از سرعت بالایی برخوردار است و از ان صرف نظر می کنیم

یه توضیح تو پرانتز : ما دو نوع حذف داریم حذف منطقی و حذف فیزیکی در حذف منطقی رکورد فقط مارک میشود و فیلد حذف ان ست میشود اما به صورت فزیکی حذف نمیشود(برای افزایش سرعت عملیات) و بعدا در سازماندهی مجدد انرا به صورت فزیکی حذف و مجددا بلاک بندی میکنیم .
۳- باز نویسی بلاک مورد مورد نظر یا
Tr/w=2r
در نهایت برای مسئله شما و طبق براورد خودتان داریم :
Td=TfTr/w=10002=1002ms
می رسیم بر سر زمان اپدیت یا
Tupdate :
ویرایش رکورد در فایل پایل به دو صورت انجام میگیرد درجا و برون از جا
ممکنه در حین ویرایش طول رکورد تغیر کند و نتوان در جای قبلی خودش درج کرد لذا در اینصورت باید رکورد قبلی را حذف منطقی کرد و رکورد ویرایش یافته را در انتهای فایل درج کرد .
و اما محاسبات برای درجا :
اگر رکورد ویرایش یافته به صورت درجا ذخیره شود پس مسئله همان حذف رکرود هست چرا که در انجا هم حذف منطقی کردیم و حذف منطقی هم حال خاصی از ویرایش درجاست

پس در مسئله شما میشود :
TUinplace=TD=TfTr/w=Tf2r=10002=1002ms
برون از جا :
در این صورت باید این مراحل رو دنبال کنیم :
۱- رکورد مورد نظر را واکشی وانرا حذف منطقی کنیم یا
TD=TfTr/w=Tf2r
۲- دراین مرحله رکورد ویرایش یافته را که طولش هم تغیر کرده در انتهای فایل می نویسیم که این زمان همان زمان درج است .
در نهایت داریم :
TUoutplace=TDTI=10024=1006ms
به همین سادگی
موفق و پیروز باشین