امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

تقسیم بندی حافظه RAM | Memory Segmentation چیست؟

Memory Segmentation یا تقسیم بندی حافظه که در اینجا منظورمان حافظه RAM کامپیوتر است یک سیستم آدرس دهی در حافظه RAM سیستم است که ممکن است در حالت فیزیکی یا مجازی از حافظه RAM محافظت کند. Segment ناحیه ای از حافظه است که آدرس شروع آن بر 16 بخش پذیر است و حداکثر اندازه سگمنت میتواند تا 64KB باشد (در CPU های 8086). توجه کنید که به محلی از حافظه یا Memory location در اصطلاح فنی Offset میگویند که این خود میتواند برای شناسایی کرد آدرس یک Segment از حافظه و همچنین بیشترین سایز آن به سیستم کمک کند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

Segmentation حافظه باعث میشود که سرعت اجرای برنامه ها در سیستم افزایش یابد از این رو پردازنده یا CPU به سرعت و آسانی میتواند داده ها را از حافظه RAM واکشی یا Fetch و سپس اجرا کند. سایز Address Bus در پردازنده های 8086 اینتل معادل 20 بیت بود و میتوانست تا 1MB حافظه RAM را آدرس دهی کند.

حداقل تعداد سگمنت هایی که در حافظه ای که از پردازنده 8086 استفاده میکند و میتوان بکار برد تعداد 16 عدد میباشد. آدرس هر سگمنت به شکل 0000 هگزادسیمال تا F0000 هگزادسیمال میتواند نشان داده شود. مقدار Offset یا offset value نیز از 0000 هگزادسیمال تا FFFF هگزادسیمال میتواند مقدار دهی شود.

وب سایت توسینسو

در تصویر فوق شماتیکی از Memory Segmentation را مشاهده میکنید. در تصویر فوق Segment Number نشان دهنده شماره سگمنت میباشد که برای شناسایی سگمنت بکار میرود. Base address نیز بیانگر آدرس شروع یک Segment است. Limit یا Offset نیز بیانگر بیشترین سایز از یک سگمنت میباشد.

Segment ها با یک آدرس مشخص شروع میشوند و تا حداکثر 64 کیلوبایت میتوانند ظرفیت داشته باشند حال تصور کنید که Segment دیگری در همان آدرسی که سگمنت قبلی شروع شده است شروع شود یا به عبارتی دو Segment روی هم بیفتند در این حالت در اصلاح فنی میگوییم که Segment Overlapping صورت گرفته است.

حالت معکوس Segment Overlapping را Non-Overlapping Segment میگویند. Logical Address یا آدرس منطقی حافظه به شکل segment : offset مشخص میشود. Physical Address یا آدرس فیزیکی با انتقال 4 بیت از آدرس Segment به سمت چپ و اضافه نمودن آدرس Offset بدست می آید. برای مثال Logical Address ای به شکل A4FB : 4872 را در نظر بگیرید آدرس فیزیکی یا Physical Address این نوع آدرس به صورت زیر محاسبه میشود :

A4FB0 + 4872 = A9822

امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

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

نظرات