قطعه‌بندی

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از تقسیم حافظه)
پرش به: ناوبری، جستجو

تقسیم حافظه، قسمت، بخش یا قطعه‌ای از حافظه اصلی رایانه در تقسیم‌بندی حافظه می‌باشد. برای استفاده از تقسیم‌بندی در یک سیستم رایانه‌ای، یک آدرس ارجاع به مکانی در حافظه، محتوی مقداری معین برای شناسایی یک بخش و یک آفست سگمنت در آن بخش می‌باشد. این بخشها یا قطعات در آبجکت‌فایل‌های برنامه‌های ترجمه شده هم‌زمانی مورد استفاده قرار می‌گیرند که به یکدیگر در یک فایل اجرایی که در حافظه فراخوانده شده باشد پیوند داده شده باشند.

ممکن است بخشهای مختلف برای برنامه‌های پودمانی مختلف ساخته شده باشند، یا برای استفاده از کلاسهای مختلف حافظه مانند بخش کد، بخش داده. حتی ممکن است برخی بخشها بین برنامه‌ها به اشتراک گذاشته شوند.[۱]

پیاده‌سازی سخت‌افزاری[ویرایش]

تقسیم حافظه، روشی برای پیاده‌سازی حفاظت از حافظه (به انگلیسی: Memory Protection) می‌باشد. صفحه‌بندی (به انگلیسی:Paging) روش دیگری است که می‌تواند بصورت ترکیبی با حفاظت از حافظه بکار گرفته شود. معمولاْ اندازه تقسیم حافظه ثابت نیست و ممکن است به کوچکی یک بایت باشد. معمولاْ بخشها به صورت طبیعی نماینده قسمتی از یک برنامه هستند مانند یک روال تک یا جدول داده‌ها بنابراین، بخشها برای برنامه‌نویسان قابل رویت هستند.

یک بخش، دارای طول و مجموعه‌ای از مجوزهای دسترسی است. یک پردازه تنها در حالتی اجازه ارجاع به یک بخش را دارد، که نوع ارجاع آن پردازه، مجوز دسترسی به آن بخش را دارا باشد و آفست آن بخش نیز در محدوده تعریف شده در طول آن بخش باشد. در غیر اینصورت، یک مدیریت استثنا (به انگلیسی:Hardware Exception) رخ دهد.

اطلاعات مربوط به محل وجود بخش در حافظه، چیز دیگری است که به یک بخش مرتبط می‌گردد. این اطلاعات می‌تواند آدرس اولین محل بخش در حافظه بوده، یا اگر تقسیم‌بندی با صفحه‌بندی (به انگلیسی:Paging) پیاده‌سازی شده باشد آدرس جدول صفحه (به انگلیسی: Page Table) آن بخش باشد. در احتمال اول، اگر یک ارجاع به یک مکانی در یک بخش داده شده باشد، برای دادن آدرس آیتم ارجاع شده در حافظه، آفست آن بخش به آدرس اولین مکان در آن بخش اضافه خواهد گردید. در حالت دوم، آفست آن بخش با استفاده از جدول صفحه به آدرس حافظه ترجمه می‌گردد.

ممکن است بخشها دارای پرچمی باشند تا نشان دهند که آن بخش در حافظه اصلی حضور دارد یا خیر. اگر به یک بخش که در حافظه حاضر نیست، ارجاعی شود، یک مدیریت استثنا رخ خواهد داد، و سیستم عامل آن بخش را در حافظه از محل ذخیره‌سازی ثانویه خواهد خواند.

وقتی یک بخش به یک جدول صفحه مرتبط نشده باشد، اولین آدرس در آن بخش معمولاْ یک آدرس در حافظه اصلی می‌باشد. در آن شرایط صفحه‌بندی انجام نخواهد شد. در اینتل ۸۰۳۸۶ به بعد، اگر صفحه‌بندی فعال نباشد آن آدرس می‌تواند یک آدرس در حافظه اصلی باشد یا اگر صفحه‌بندی فعال باشد، یک آدرس در یک فضای آدرس که Page شده است.

یک واحد مدیریت حافظه وظیفه دارد تا یک بخش و آفست داخل آن بخش را به یک آدرس حافظه ترجمه نماید، و امتحاناتی را برای اطمینان از اینکه ترجمه می‌تواند انجام پذیرد و ارجاع به آن بخش و آفست آن مجوز دسترسی لازم را دارد انجام دهد.

جستارهای وابسته[ویرایش]

منابع[ویرایش]