پارگی (علوم رایانه): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جز ویرایش به وسیلهٔ ابزار خودکار ابرابزار
Dariyovash (بحث | مشارکت‌ها)
جز اصلاح مشکلات ویرایشی به وسیلهٔ ابزار خودکار املا
خط ۱:
{{ویکی}}
'''تکه تکهتکه‌تکه شدن''' در ذخیره سازیذخیره‌سازی کامپیوتری پدیده‌ای است که در آن فضای ذخیره سازیذخیره‌سازی به طور نا کارآمد استفاده می‌شود و منجر به کاهش ظرفیت واقعی ذخیره سازیذخیره‌سازی می‌شود. همچنین به آن فضای هدر رفته نیز اتلاق می‌گردد.{{سخ}}
 
سه شکل متفاوت اما مرتبط از تکه تکهتکه‌تکه شدن وجود دارد: تکه تکهتکه‌تکه شدن خارجی، تکه تکهتکه‌تکه شدن داخلی و تکه تکهتکه‌تکه شدن داده. که می‌توانند به تنهایی یا درارتباط با هم بررسی شوند. تکه تکهتکه‌تکه شدن معمولا در ازای بهبود سرعت و یا سادگی پذیرفته می‌شود.{{سخ}}
 
=== مبانی ===
وقتی یک برنامه کامپیوتری بلوک‌هایی از حافطه را از سیستم کامپیوتر درخواست می‌کند، بلوک‌های حافطه به صورت تکه تکهتکه‌تکه تخصیص می‌یابند. وقتی کار برنامه کامپیوتری با یک تکه از حافظه تمام می‌شود می‌تواند آن تکه را آزاد کند و به کامپیوتر برگرداند. اندازه هر تکه و مدت زمانی که هر تکه دراختیار یک برنامه باقی می‌ماند متغیر است.{{سخ}}
 
یک برنامه در مدت طول عمر خود می‌تواند هر تعداد تکه از حافظه را درخواست و یا آزاد کند. وقتی یک برنامه شروع به کار می‌کند، قسمت‌های آزاد حافظه طویل و پشت سر هم هستند. در طی زمان و با استفاده برنامه‌ها، آن تکه‌های طویل و متوالی به تکه‌های کوچک و کوچک تر تقسیم می‌شوند. در نهایت ممکن است برای یک برنامه غیرممکن باشد که یک تکه بزرگ از حافظه را درخواست کند.{{سخ}}
 
=== انواع تکه تکهتکه‌تکه شدن ===
===== تکه تکهتکه‌تکه شدن داخلی =====
به دلیل قوانین و قواعد تخصیص حافظه، گاهی حافظه، بیشتر از مقدار مورد نیاز اختصاص می‌یابد. برای مثال حافظه تنها می‌تواند به برنامه‌هایی اختصاص یابد که تکه‌هایی قابل تقسیم بر ۴، ۸ یا ۱۶ داشته باشد. در نتیجه، اگر یک برنامه مثلا ۲۳ بایت درخواست کند، در واقع یک تکهٔ ۲۴ بایتی دریافت می‌کند.{{سخ}}
 
وقتی این اتفاق رخ می‌دهد، حافظهٔ اضافی به هدر می‌رود. در این سناریو، حافظهٔ غیرقابل استفاده حاوی یک ناحیه تخصیص یافته خواهد بود، بنابراین با عنوان تکه شدن داخلی نام گذاری می‌شود. برخلاف دیگر انواع، تکه تکهتکه‌تکه شدن داخلی به سختی احیا می‌شود و به حالت اولیه باز می‌گردد، معمولا بهترین راه برای حذف آن، تغییر طراحی است.{{سخ}}{{سخ}}
 
===== تکه تکهتکه‌تکه شدن خارجی=====
تکه تکهتکه‌تکه شدن خارجی زمانی مطرح می‌شود که حافظهٔ آزاد به بلوک‌های کوچکی تقسیم شود و توسط حافظهٔ تخصیص یافته پراکنده گردد. این اتفاق ضعف برخی الگوریتم‌های تخصیص محل ذخیره سازیذخیره‌سازی است که نمی‌توانند به طور کارآمد به حافظهٔ مورد استفادهٔ برنامه‌ها دستور دهند.{{سخ}}
 
نتیجه این می‌شود که اگر چه محل ذخیره سازیذخیره‌سازی آزاد وجود دارد، اما غیرقابل استفاده می‌ماند چرا که به قسمت‌هایی تقسیم شده است که هر کدام زیادی کوچک هستند و نمی‌توانند درخواست‌های کاربردی را برآورده سازند. واژهٔ خارجی به این منظور بکار برده شده است که در اینجا محل ذخیره سازیذخیره‌سازی غیرقابل استفاده بیرون نواحی تخصیص یافته قرار دارد.{{سخ}}
 
برای مثال حالتی را تصور کنید که در آن سیستم سه بلوک پیوسته از حافظه را به یک برنامه اختصاص می‌دهد و بلوک میانی را آزاد می‌کند. تخصیص دهندهٔ حافظه می‌تواند در آینده از این بلوک آزاد در تخصیص استفاده کند، با این وجود اگر حافظه‌ای که قرار است در آینده در این بلوک آزاد تخصیص یابد بزرگتر از این بلوک باشد، این امکان وجود نخواهد داشت.{{سخ}}
 
تکه تکهتکه‌تکه شدن خارجی، در سیستم‌های فایل هم اتفاق می‌افتد که در آنها فایل‌هایی با سایزهای مختلف ساخته می‌شوند، تغییر سایز می‌دهند و یا پاک می‌شوند. این تاثیر حتی در شرایطی که یک فایل که به تکه‌های بسیار کوچکی تقسیم شده است پاک می‌شود، مخرب تر هم ظاهر می‌شود، چرا که این کار نواحی کوچک مشابه از فضای خالی را بر جای می‌گذارد.{{سخ}}
 
===== تکه تکهتکه‌تکه شدن داده =====
تکه تکهتکه‌تکه شدن داده زمانی اتفاق می‌افتد که مجموعه‌ای از داده‌ها در حافظه به بخش‌هایی که چندان به هم مرتبط نیستند تقسیم می‌شوند. این مسئله به طور معمول نتیجه تلاش برای درج شیئ ای بزرگ در فضای ذخیره سازیذخیره‌سازی است که خود تحت تاثیر تکه تکهتکه‌تکه شدن خارجی قرار گرفته است.{{سخ}}
 
برای مثال، فایل‌ها در سیستم فایل معمولا بوسیله واحدهایی به نام بلوک یا خوشه مدیریت می‌شوند. وقتی که یک فایل سیستم ایجاد می‌شود، فضای ذخیره سازیذخیره‌سازی آزاد برای ذخیره کردن بلوک‌ها به صورت پشت سرهم بوجود می‌آید. که این خواندن و نوشتن سریع و پی در پی فایل‌ها را امکان پذیر می‌سازد. با این وجود با اضافه شدن، حذف شدن و یا تغییر در حجم فایل‌ها فضای خالی به صورت خارجی تکه تکهتکه‌تکه می‌شود و فقط فضاهای کوچکی برای جای دادن داده‌های جدید باقی می‌گذارد. وقتی فایل جدیدی نوشته می‌شود یا یکی از فایل‌های موجود گسترش می‌یابد، سیستم عامل آن را در بلوک‌های غیر متوالی موجود قرار می‌دهد. بلوک‌های داده‌ای جدید پراکنده می‌شوند و به همین دلیل زمان دسترسی به آنها افزایش می‌یابد. به این مسئله تکه تکهتکه‌تکه شدن سیستم فایل می گویند.{{سخ}}
 
وقتی یک فایل با سایز مشخص نوشته می‌شود در صورت وجود فضاهای خالی بزرگتر از آن فایل، سیستم عامل با قرار دادن فایل در یکی از آن فضاها از تکه تکهتکه‌تکه شدن داده جلوگیری می‌کند.{{سخ}}
 
الگوریتم‌های متعددی برای انتخاب این فضاهای خالی وجود دارد. الگوریتم " بهترین جای دهی "، کوچکترین فضایی را که به اندازه کافی بزرگ است انتخاب می‌کند. الگوریتم "بدترین جای دهی "، بزرگترین فضای ممکن را انتخاب می‌کند. الگوریتم " اولین جای دهی "، اولین فضایی را که سایز کافی داشته باشد، انتخاب می‌کند. الگوریتم " جای دهی بعدی "، اولین مکان مناسب بعد از جای دهی قبلی را انتخاب می‌کند. الگوریتم " جای دهی بعدی " از "اولین جای دهی " سریع تر است که آن هم از " بهترین جای دهی " بهتر است.{{سخ}}
 
همانگونه که با انجام فشردگی می‌توان تکه تکهتکه‌تکه شدن خارجی را برطرف کرد، تکه تکهتکه‌تکه شدن داده‌ها را نیز می‌توان با باز آرایی فضای ذخیره سازیذخیره‌سازی برطرف کرد. در نتیجه بخش‌های مرتبط داده‌ای در کنار هم قرار می‌گیرند.
تکه تکهتکه‌تکه شدن حافظه یکی از سخت ترین مشکلاتی است که مدیران سیستم‌ها با آن مواجه هستند. این مساله در طول زمان منجر به کاهش قابلیت اجرای سیستم می‌شود و در نهایت ممکن است به از دست رفتن همهٔ فضای آزاد حافظه شود.
 
== منابع ==