PDA

View Full Version : سوال: سگمنت بندی حافظه



jeson_park
چهارشنبه 16 فروردین 1391, 21:21 عصر
با سلام
یه سوال برام پیش اومده
چرا در سگمنت بندی سگمنت ها 64 کیلو بایت هستن؟
و مهمتر از همه چرا سگمنت ها overlap میشن ؟؟
آیا این اور لپ شدن مشکلی درست نمی کنه؟؟

shahmohammadi
چهارشنبه 16 فروردین 1391, 23:28 عصر
سلام.
در مورد سوال دومتون مطالعه اي نكردم.
اما در مورد سوال اولتون، سگمنت ها در حالت real mode اندارشون 64 كيلو هست. چون آدرس آفست ها مون 16 بيتي اند، پس دو به توان 16 خونه رو مي تونيم آدرس دهي كنيم. اين هم برابر با 64 كيلو هست.

xman_1365_x
پنج شنبه 17 فروردین 1391, 00:46 صبح
یه سوال برام پیش اومده
سه تا سوال هست!:چشمک:

چرا در سگمنت بندی سگمنت ها 64 کیلو بایت هستن؟
چون در آدرس دهی منطقی از سگمنت:آفست استفاده میشه و هر ثبات 16 بیت هست
بازه ما برای مثال:
0001:0000 تا 0001:FFFF میباشد ، پس محدوده بین هر سگمنت FFFF=2^16=64kb که این معادل با تعداد سگمنت هم هست چون در بالا گفتم اندازه هر ثبات 16 بیت هست پس 2^16 تا سگمنت داریم.

و مهمتر از همه چرا سگمنت ها overlap میشن ؟؟
دو آدرس منطقی مثال زیر را در نظر بگیرید
اگر 0001:0002 یک آدرس منطقی ما و 0000:0012 آدرس دوم باشد برای بدست آوردن آدرس فیزیکی از سگمنت*16 + آفست استفاده میکنیم که برای هر دو حاصل میشود آدرس فیزیکی=00012 میشود، پس همونطور که دیدین به این دلیل میتونه همپوشانی رخ بده برای همین برای نوشتن سیستم عامل های مولتی تسک از آدرس دهی غیر هم پوشان(non overlap)استفاده میشه

آیا این اور لپ شدن مشکلی درست نمی کنه؟؟
بله که میکنه در زمان داس به راحتی (عمدا=قصد خراب کاری یا حتی فیکس کردن یا سحوا=مثال بالا) برنامه ها با هم تداخل میکرد و در هم دیگه نوشته میشد ، سادش رو فکر کنید اون یک بافر باشه که تداخل شده باشه با ریخته شدن مقدار درون اون برنامه دوم از کار می افته حالا فکر کنید اون خود سیستم عامل داس بود:لبخندساده:

چون آدرس آفست ها مون 16 بيتي اند، پس دو به توان 16 خونه رو مي تونيم آدرس دهي كنيم. اين هم برابر با 64 كيلو هست. آدرس سگمنت! آفست هم 16 هست اما بی تاثیر در این باره
موفق باشی

jeson_park
پنج شنبه 17 فروردین 1391, 12:17 عصر
سه تا سوال هست!:چشمک:

اون 2 تای دیگش بعدا پیش اومد http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/66.gif
پس دلیل این قضیه صفحه ابی مرگ هم به این چیزا بستگی داره نه؟؟؟
خب یه سوال عجیب تر
چرا اصلا از این مدل افست سگمنت استفاده میشه
جز این نوع آدرس دهی مدل دیگه ای هم هست؟؟
اصلا چرا سگمنت بندی؟؟
خدا کنه مثل دفعه قبل داغ نکنی :لبخندساده:

xman_1365_x
جمعه 18 فروردین 1391, 16:50 عصر
پس دلیل این قضیه صفحه ابی مرگ هم به این چیزا بستگی داره نه؟؟؟
اون دلیل هایی داره ویندوز از آدرس دهی فلت استفاده میکنه
و صفحه ابی بخاطر مشکل ویروس،سخت افزار و ... در ادرس دهی میباشد که شبیه به همین مورد هست که با windbg این فایل هارو که ویندوز لاگ میکنه باز میکنند تا خطا پتچ کنند

خب یه سوال عجیب تر
چرا اصلا از این مدل افست سگمنت استفاده میشه
وقتی سیستم روشن میشه در مورد real هست و خودکار داره از این حالت استفاده میکنه که بعدا شما نوع آدرس دهی رو تغییر میدین

جز این نوع آدرس دهی مدل دیگه ای هم هست؟؟
بله دو مقاله فارسی میزارم مطالعه کنید بعد برای اطلاعات بیشتر به گوگل مراجعه کنید
85342
85344
85343

خدا کنه مثل دفعه قبل داغ نکنی
دوست عزیز کسی داغ نکرده :لبخندساده: فقط گاهی اوقات طوری حرف میزنید که به هرکسی باشه بر میخوره و دلسرد از کمک به دیگران!

موفق باشی