پیوسته

Download Report

Transcript پیوسته

‫فایل چیست‬
‫‪ ‬فایل‪ :‬مجموعه از اطالعات مرتبط به هم است که در رسانه ی جانبی‬
‫ذخیره می شود‪.‬‬
‫‪ ‬از دید کاربر‪ ،‬فایل کوچکترین واحد تخصیص یافته در حافظه ی ثانوی‬
‫است‪.‬‬
‫‪ ‬انواع فایلها از لحاظ محتوی‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫الفبایی‬
‫عددی‬
‫باینری (شامل برنامه)‬
‫‪...‬‬
‫‪ ‬انواع فایل از لحاظ فرمت‪:‬‬
‫‪ ‬فرمت آزاد‪ :‬مانند فایلهای متنی‬
‫‪ ‬دقیقاً فرمت بندی شده‪ :‬مثل فایلهایی که شامل رکوردها هستند‬
‫‪1‬‬
‫ذخیره سازی فایل‬
‫‪ ‬فایل در دیسک به دو صورت ذخیره سازی می شود‪:‬‬
‫‪ ‬پیوسته‪ :‬فایل در بلوکهای همجوار است‬
‫‪ ‬ناپیوسته‪ :‬فایل در بلوکهای ناهمجوار است‬
‫‪ ‬مزایای پیوسته‪ :‬پیاده سازی ساده‪ ،‬کارآیی باال‬
‫‪ ‬معایب پیوسته‪ :‬مشکل عدم تطابق فضاهای خالی با اندازه ی‬
‫مورد نیاز برای فایل‪ ،‬نیاز به مشخص بودن طول فایل‬
‫‪2‬‬
‫ساختار فایل‬
‫‪ ‬فیزیکی‪ :‬نشان دهنده ی چگونگی ذخیره سازی بالکها در‬
‫رسانه است‬
‫‪ ‬منطقی‪ :‬نشان دهنده ی طرحی است که رکوردهای منطقی‬
‫کنار هم قرار می گیرند‬
‫‪3‬‬
‫صفات فایل‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نام‪ :‬رشته ای از کاراکترها برای مراجعه ی کاربران به فایل‬
‫اندازه‪ :‬اندازه ی فعلی فایل بر حسب بایت‪ ،‬کیلو بایت یا ‪...‬‬
‫شناسه‪ :‬نامی که توسط سیستم فایل قابل تشخیص است‬
‫مکان فایل‪ :‬دستگاه یا مکانی که فایل در آن ذخیره شده است‪.‬‬
‫حفاظت‪ :‬اطالعاتی که دستیابی به فایل را کنترل می کند‬
‫تاریخ و زمان‪ :‬شامل زمان ایجاد ‪ ،‬آخرین دستیابی‪ ،‬آخرین تغییر‬
‫و ‪...‬‬
‫‪4‬‬
‫ساختار دایرکتوری‬
‫‪ ‬اطالعات مربوط به فایلها در ساختار دایرکتوری نگهداری می‬
‫شود‪.‬‬
‫‪ ‬دایرکتوری در حافظه ی جانبی قرار دارد‪.‬‬
‫‪ ‬ورودی دایرکتوری ها شامل نام فایل و شناسه ی یکتای آن‬
‫است‪.‬‬
‫‪ ‬شناسه ی فایل‪ :‬مکان صفات دیگر فایل را مشخص می کند‬
‫‪ ‬برای هر فایل ممکن است که اندازه ی این دایرکتوری بسته به‬
‫نوع سیستم فایل از ‪ 1‬کیلو بایت تا ‪ 1‬مگا بایت متغیر باشد‪.‬‬
‫‪5‬‬
‫نوع داده ی انتزاعی فایل‬
‫‪ ‬فایل‪ ،‬نوع داده ی انتزاعی (‪ )Abstract Data Type‬است‪:‬‬
‫‪ ‬هر سیستم فایل نه تنها باید شامل ابزاری برای ذخیره سازی داده‬
‫به صورت فایل باشد‪ ،‬بلکه باید شامل مجموعه ای از عملیات باشد‬
‫که می تواند بر روی فایل انجام پذیرد‪.‬‬
‫‪6‬‬
‫عملیات روی فایل‬
‫‪ ‬ایجاد فایل‪ :‬فایل جدیدی تعریف می شود و در ساختار دایرکتوری قرار می‬
‫گیرد‪ .‬مراحل ایجاد فایل‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ ‬مرحله ی اول‪ :‬سیستم فایل فضایی برای فایل پیدا می شود‬
‫‪ ‬مرحله دوم‪ :‬یک ورودی برای فایل در ساختار دایرکتوری ایجاد می شود‪.‬‬
‫حذف فایل‪ :‬در ساختار دایرکتوری جستجو می شود‪ ،‬پس از پیدا شدن فایل‬
‫فضای آن آزاد می شود‪.‬‬
‫باز کردن فایل‪ :‬فایل وقتی باز است که فرآیندی بتواند کاری روی آن انجام‬
‫دهد‪.‬‬
‫خواندن از فایل‪ :‬سیستم یک اشاره گر خواندن را نگهداری می کند تا محل‬
‫بعدی خواندن در فایل مشخص باشد‪.‬‬
‫بستن فایل‪ :‬فایل وقتی بسته است که فرآیندی نتواند کاری روی آن انجام‬
‫دهد‪.‬‬
‫نوشتن در فایل‪ :‬فرآیند می تواند فایل را به روز رسانی کند‪ .‬برای این کار‬
‫داده ی جدیدی به فایل اضافه می کند تا اندازه ی فایل افزایش یابد یا داده‬
‫های موجود در فایل را تغییر دهد‪.‬‬
‫‪7‬‬
‫سیستمهای مدیریت فایل‬
‫‪ ‬سیستم مدیریت فایل‪ :‬نرم افزاری است که خدماتی را برای کاربران و‬
‫برنامه های کاربردی در استفاده از فایل فراهم می کند‪.‬‬
‫‪ ‬اهداف سیستمهای مدیریت فایل‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫برآورده کردن نیازهای مدیریت داده ها و خواسته های کاربر شامل‬
‫ذخیره سازی داده ها و توانایی انجام عملیات‬
‫تضمین معتبر بودن داده ها‬
‫بهینه سازی کارآیی‪ :‬هم از نطر سیستم براساس توان عملیاتی و هم‬
‫از نظر کاربر براساس زمان پاسخ‬
‫پشتیبانی ‪ I/O‬برای انواع مختلفی از دستگاههای ذخیره سازی‬
‫به حداقل رساندن یا از بین بردن احتمال حذف یا تخریب داده ها‬
‫تهیه ی مجموعه از روال های واسط ‪ I/O‬استاندارد‬
‫پشتیبانی ‪ I/O‬برای چندین کاربر در سیستمهای چند کاربره‬
‫‪8‬‬
‫وظایف مدیریت فایل‬
‫‪9‬‬
‫مدیریت حافظه ی ثانوی‬
‫‪ ‬فایل در حافظه ی ثانوی مجموعه ای از بلوکها است‪.‬‬
‫‪ ‬سیستم عامل مسئول تخصیص بلوک به فایل است‪.‬‬
‫‪ ‬مسایل مرتبط‪:‬‬
‫‪ ‬تخصیص فضا برای فایلها‬
‫‪ ‬مدیریت فضای آزاد‬
‫‪10‬‬
‫تخصیص فضا به فایل‬
‫‪ .1‬وقتی فایل جدیدی ایجاد می شود‪ ،‬آیا حداکثر فضای مورد نیاز‬
‫فایل تخصیص می یابد؟‬
‫‪ .2‬فضای یک یا چند واحد پیوسته به فایل تخصیص می یابد که‬
‫به آنها بخش می گویند‪ .‬اندازه ی هر بخش می تواند از یک‬
‫بلوک تا کل فایل باشد‪ .‬برای تخصیص فایل‪ ،‬اندازه ی بخش‬
‫چقدر باید باشد؟‬
‫‪ .3‬برای نگهداری بخشهای تخصیص یافته به فایل از چه‬
‫ساختمان داده یا جدولی استفاده می شود؟‬
‫‪11‬‬
‫پیش تخصیص در مقابل تخصیص پویا‬
‫‪12‬‬
‫اندازه ی بخش‬
‫‪ ‬اندازه ی بخش می تواند کل فایل را در برگیرد یا می تواند هر‬
‫بار یک بلوک از فضای دیسک برای آن تخصیص یابد‪.‬‬
‫‪ ‬مسایل مرتبط‪:‬‬
‫‪ .1‬پیوستگی فایل باعث بهبود کارآیی می شود‬
‫‪ .2‬تعداد زیادی از بخشهای کوچک اندازه ی جدولهای مورد نیاز‬
‫برای مدیریت اطالعات را مشکل می کند‬
‫‪ .3‬بخشها با اندازه ی ثابت‪ ،‬تخصیص مجدد فضا را آسان می کند‬
‫‪ .4‬بخشهایی با اندازه ی ثابت وکوچک باعث بهبود در مدیریت‬
‫فضای دیسک می شود‬
‫‪13‬‬
‫انواع بخشها‬
‫‪ ‬بخشهای پیوسته ی بزرگ و متغیر‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫کارآیی بهتر‬
‫اندازه ی متغیر مدیریت فضا را ساده تر می کند‬
‫جدول تخصیصها کوچکتر می شود‬
‫استفاده ی مجدد از فضا دشوار تر است‬
‫‪ ‬بلوکها (بخشهای کوچک با اندازه ی ثابت)‪:‬‬
‫‪ ‬قابلیت انعطاف زیاد‬
‫‪ ‬جدول تخصیصها بزرگ است‬
‫‪ ‬پیوستگی مطرح نیست و بلوکها در صورت نیاز تخصیص می یابند‪.‬‬
‫‪14‬‬
‫مدیریت فضای آزاد‬
‫‪ ‬جدول بیتی‪ :‬از برداری استفاده می کند که به ازای هر بلوک یک بیت در آن‬
‫وجود دارد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪ >== 0‬بلوک آزاد‬
‫‪ >== 1‬بلوک استفاده شده‬
‫مثال‪:‬‬
‫مزایا‪:‬‬
‫یافتن یک یا گروه پیوسته ای از بلوکهای آزاد آسان است‬
‫کوچک بودن آن‬
‫اندازه ی جدول ==>‬
‫‪ ‬مثال برای بک دیسک ‪ 16‬گیگابایتی با بلوکهای ‪ 512‬بیتی فضای جدول تقریباً ‪ 4‬مگا‬
‫بایت است‬
‫‪ ‬بخشهای آزاد زنجیره ای‪ :‬استفاده از اشاره گر برای مشخص کردن زنجیره ای از‬
‫بلوکهای آزاد‬
‫‪ ‬شاخص بندی‪ :‬در این روش با فضای دیسک مانند یک فایل رفتار می شود و از‬
‫جدول شاخص استفاده می گردد‬
‫‪15‬‬
‫چگالی لود اولیه‬
‫‪ ‬در صورتی که بتوانیم فضای دیسک را پیش بینی کنیم می‬
‫توانیم فضای بلوکهای آنرا برای استفاده ی بعدی رزرو کنیم‪.‬‬
‫‪16‬‬
‫مزایای حافظه ی رزرو‬
‫‪17‬‬
‫معایب حافظه ی رزرو‬
‫‪18‬‬
‫لوکالیتی‬
‫‪ ‬میزان نزدیکی رکورد منطقاً بعدی را لوکالیتی می گویند‪.‬‬
‫‪ ‬رکورد منطقاً بعدی رکوردی است که در هنگام تعریف فایل پس‬
‫از رکورد بعدی قرار می گیرد‪.‬‬
‫‪ ‬انواع لوکالیتی‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫رکورد منطقاً بعدی در همان بلوکی باشد که رکورد فعلی است‪.‬‬
‫رکورد منطقاً بعدی در بلوک دیگر و در مجاورت بلوک حاوی رکورد‬
‫فعلی است‬
‫رکورد منطقاً بعدی در بلوک دیگر ولی در همان شیاری است که‬
‫بلوک حاوی رکورد فعلی در آن قرار دارد‬
‫بلوک حاوی رکورد بعدی در سیلندر دیگری قرار دارد‪.‬‬
‫‪19‬‬
‫دیدگاه ها نسبت به فایل‬
‫‪ ‬فایل منطقی‪:‬ساختاری از فایل را نشان می دهد که رکوردهای‬
‫فایل براساس آن دستیابی می شوند‬
‫‪ ‬فایل فیزیکی‪ :‬نشان دهنده ی نحوه ی ذخیره ی رکوردها بر‬
‫روی دیسک می باشد‪.‬‬
‫‪20‬‬
‫سیستم فایل‬
‫‪ ‬سیستم فایل بخشی از سیستم عامل است که با فایل سر و کار‬
‫دارد و دارای دو بخش است‪:‬‬
‫‪ ‬بخش منطقی‪ :‬وظیفه ی انجام درخواستهای کاربر را دارد‬
‫‪ ‬بخش فیزیکی‪ :‬با قسمت فیزیکی در ارتباط است و درخواستهای بخش‬
‫منطقی را به دستورات مناسب برای رسانه ی ذخیره سازی تبدیل می‬
‫کند‪.‬‬
‫‪21‬‬
‫سطوح مختلف آدرس دهی‬
‫‪ ‬در سطح برنامه ی پردازشگر فایل‬
‫‪ ‬در سطح منطقی سیستم فایل‬
‫‪ ‬در سطح فیزیکی سیستم فایل‬
‫‪22‬‬
‫آدرس دهی در سطح برنامه ی‬
‫پردازشگر فایل‬
‫‪ ‬به یکی از روشهای زیر آدرس دهی می شود‪:‬‬
‫‪ ‬نسبی‪ :‬فایل بصورت یک ساختار خطی مشاهده می شود‬
‫‪ ‬آدرس نسبی رکورد(‪ )RRA‬به عنوان آرگومان جستجو استفاده می‬
‫شود‬
‫‪ ‬محتوایی‪ :‬یک مقدار صفت خاصه را به عنوان آرگومان جستجو‬
‫استفاده می کند‬
‫‪ ‬نمادی‪ :‬رکورد توسط یک اسم سمبلیک مشخص می شود‪.‬‬
‫‪23‬‬
‫آدرس دهی در سطح منطقی سیستم‬
‫فایل‬
‫‪ ‬از آدرس دهی نسبی استفاده می شود‪:‬‬
‫‪ ‬آدرس دهی در سطح کل فضای ذخیره سازی انجام می شود‬
‫‪ ‬کل فضای ذخیره سازی بصورت آرایه ای از بلوکها دیده می شود و آدرس‬
‫هر بلوک با ‪(RBA‬آدرس نسبی بلوک) مشخص می شود‪.‬‬
‫‪ ‬برای بدست آوردن آدرس نسبی حاوی بالک مورد نظر باید ابتدا آدرس‬
‫نسبی بالکی که رکورد در آن قرار دارد را بدست آورد‬
‫‪ ‬سپس این مقدار را به آدرس اولی بالک فایل اضافه می کنیم‬
‫‪24‬‬
‫آدرس دهی در سطح فیزیکی سیستم‬
‫فایل‬
‫‪ ‬آدرس منطقی را دریافت و آنرا به آدرس مناسب برای محیط‬
‫ذخیره سازی تبدیل می کند‬
‫‪25‬‬
‫بافر‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫بافر‪ :‬ناحیه ای از حافظه ی اصلی است که جهت هماهنگی در‬
‫عملیات ‪ I/O‬و عملیات ‪ CPU‬بکار می رود‬
‫اندازه ی بافر حداقل به اندازه ی یک بالک است‪.‬‬
‫عموماً از دو بافر استفاده می شود‪ :‬بافر ورودی و بافر خروجی‬
‫روشهای ایجاد بافر‪:‬‬
‫‪ .1‬توسط برنامه نویس با ایجاد ناحیه ای از حافظه در برنامه‬
‫‪ .2‬توسط سیستم عامل در هنگام باز شدن یا بسته شدن فایل‬
‫‪ .3‬اجرای یک ماکرو که از سیستم عامل درخواست ایجاد بافر می کند‬
‫‪26‬‬
‫روشهای دسترسی به محتوای بافر‬
‫‪ ‬روش انتقالی‪ :‬رکورد از بافر ورودی به ناحیه ی کاری برنامه‬
‫منتقل می شود و بالعکس‪(.‬برنامه به بافر دسترسی ندارد و‬
‫بافر خاص خود را دارد که همان ناحیه کاری است)‬
‫‪ ‬روش مکان نمایی‪ :‬برنامه مستقیماً به بافر ورودی و خروجی‬
‫دسترسی دارد‬
‫‪27‬‬
‫انواع بافر از نظر محل ایجاد‬
‫‪ ‬بافر نرم افزاری‪ :‬ناحیه ای است از حافظه ی اصلی که توسط‬
‫سیستم عامل در اختیار برنامه قرار می گیرد‬
‫‪ ‬بافر سخت افزاری‪ :‬بافرهای موجود در دستگاههای سخت‬
‫افزاری‪ .‬داده ها در این نوع دستگاهها ابتدا به بافر سخت‬
‫افزاری و سپس به بافر نرم افزاری منتقل می شوند‪.‬‬
‫‪28‬‬
‫انواع بافرینگ‬
‫‪ ‬استاندارد‪:‬تنها از یک بافر برای انتقال اطالعات استفاده می‬
‫شود‪ ،‬در زمانی که بافر در حال پر شدن یا خالی شدن است‬
‫‪ CPU‬نمی تواند از محتوای آن استفاده کند‪.‬‬
‫‪ ‬مضاعف‪ :‬استفاده از دو بافر ‪ .‬در حالیکه یک بافر در حال پر‬
‫شدن است ‪ ،‬بافر دیگر را می توان پردازش کرد‪.‬‬
‫‪ ‬نکته‪ :‬زمان پردازش یک بالک توسط ‪ CPU‬باید از زمان انتقال یک‬
‫بالک به بافر کمتر باشد تا این روش کارآیی الزم را داشته باشد‪.‬‬
‫‪ ‬چندگانه‪ :‬استفاده از چند بافر برای خواندن فایلها‬
‫‪29‬‬