Click here to download (Persian)
Download
Report
Transcript Click here to download (Persian)
In the Name of God
Lecture 8
بازيابي فضاي رکوردها در يک فايل
(Reclaiming Record space in files)
(Section 6.2)
File Structure
Dr. M. Rahgozar
بازيابي فضاي رکوردها در يک فايل
ايجاد يک رکورد در فايل چگونه انجام ميشود؟
چگونه يک رکورد از فايل حذف ميگردد؟
فضاي رکورد حذف شده چگونه بازيابي ميشود؟
چه استراتژيهايي براي بازيابي فضاي فايل وجود دارد؟
انواع ناپيوستگي ( )fragmentationدر داخل يک فايل کدامند؟
Dr. M. Rahgozar
8-2
File Structure
بازيابي فضاي رکوردها در يک فايل
()Reclaiming Record space in a file
ايجاد يک رکورد در فايل چگونه انجام ميشود؟
چگونه يک رکورد از فايل حذف ميگردد؟
توابع ّاوليه فايل سيستم ) open, write, readو ( seekبه ما اجازه ايجاد فايل،
(فيزيکي؟)
ايجاد رکورد يا تغيير محتواي آن را مي دهند.
ولي براي حذف رکوردها ( )deleteدر يک فايل تابعي نداريم!
(فيزيکي؟)
نميتوانيم قسمتي از فضاي رزرو شده يک فايل را به سيستم برگردانيم!
Dr. M. Rahgozar
8-3
File Structure
بازيابي فضاي رکوردها در يک فايل
چگونه يک رکورد از فايل حذف ميگردد؟
فضاي رکورد حذف شده چگونه بازيابي ميشود؟
مسؤليت حذف رکورد در فايل و استفاده مجدد از فضاي خالي شده بر عهده کاربر
( ) user program
ميباشد.
براي حذف رکورد بطور منطقي ( )Logicalميتوان از روش عالمت گذاري ()Marking
استفاده نمود .مثال در کاراکتر اول رکورد عالمت '*' قرار داد.
استفاده مجدد از فضاي رکورد هاي عالمت گذاري شده برعهده خود کاربر خواهد بود.
اگر تعداد رکوردهاي حذف شده زياد باشد بايستي برنامه مخصوص ديگري نيز عمل
بازسازي فضاي فايل را برعهده بگيرد)Storage Compaction( .
Dr. M. Rahgozar
8-4
File Structure
بازيابي فضاي رکوردها در يک فايل
يک روش بازيابي رکوردهاي با طول ثابت چيست؟
روش تشکيل يک ليست از رکورد هاي حذف شده (.)Avail list
فضاهاي آزاد شده با يک Linked listبه يکديگر مرتبط ميگردد.
در آغاز فايل يک رکورد به نام Header Recordالزم ميباشد.
از شماره RRNرکوردها اسنفاده ميشود.
انتهاي ليست با شماره ‘ ’-1مشخص ميگردد.
List Head -> 4
Sethi
*2
5
Dr. M. Rahgozar
Smith
4
*-1
2
3
8-5
Williams
1
Edwards
0
File Structure
>RNN -
بازيابي فضاي رکوردها در يک فايل
يک روش بازيابي رکوردهاي با طول متغير چيست؟
روش تشکيل يک ليست از رکورد هاي حذف شده (.)Avail list
ولي با در نظر گرفتن طول متغيرفضاهاي آزاد شده.
از شماره RRNرکوردها نمي توان استفاده نمود.
بايستي از آدرس بايتي رکوردها ) (Byte offsetاستفاده کرد.
در ضمن در هر رکورد آزاد شده بايستي طول آن به بعنوان يک فيلد حفظ شود.
List Head -> 34
34
16
33
15
)*16(30
)Smith (M
)*-1 (10
)Wa (F
)Edwards (M
30
8
10
5
10
Dr. M. Rahgozar
8-6
File Structure
بازيابي فضاي رکوردها در يک فايل
چه استراتژيهايي براي بازيابي فضاهاي آزاد ( )Avail listوجود دارد؟
)(Placement Strategies
(1روش :First-fit
هنگام ثبت يک رکورد جديدّ ،اولين فضايي که طول آن کافي باشد انتخاب مي شود.
(چرا؟)
در اينصورت ،نيازي به مرتب سازي Avail listنمي باشد.
(2روش :Best-fit
هنگام ثبت يک رکورد جديد ،کوچکترين فضايي که طول آن کافي باشد انتخاب مي شود.
(چرا؟)
در اينصورت بايستي Avail listبه طور صعودي مرتب شده باشد.
(3روش :Worst-fit
هنگام ثبت يک رکورد جديد ،بزرگترين فضاي آزاد موجود انتخاب مي شود.
(چرا؟)
در اينصورت بايستي Avail listبه طور نزولي مرتب شده باشد.
(چرا؟)
فضاي باقيمانده احتمالي نيز مجددا به Avail listاضافه مي شود.
(مزايا و معايب؟)
Dr. M. Rahgozar
8-7
File Structure
بازيابي فضاي رکوردها در يک فايل
انواع ناپيوستگي ( )fragmentationدر داخل يک فايل کدامند؟
فضاهاي کوچک موجود در Avail listکه قابل استفاده مجدد نمي باشد)External( .
فضاهاي به هدر رفته در داخل خود رکوردها)Internal( .
چه روشهايي براي کم کردن ناپيوستگيهای Externalوجود دارد؟
دو فضای آزاد شده مجاورهم را مي توان به هم پيوند زد)Coalescing the holes( .
استفاده از روشهاي Placementمتناسب با شرايط هر فايل.
در چه شرايطي روش worst-fitمي تواند بهتراز Best-fitباشد؟
Dr. M. Rahgozar
8-8
File Structure