چرا سیستم عامل های 64 بیتی از معادل 32 بیتی خود بیشتر رم مصرف می کنند؟

+1 رأی
میانگین بازدید روزانه 0.341,066 بازدید

چرا سیستم عامل های 64 بیتی از معادل 32 بیتی خود بیشتر رم مصرف می کنند؟ برای مثال من این مورد را هم در لینوکس و هم در ویندوز 7 دیده ام که نسخه های 64 بیتی این سیستم عامل ها پس از نصب حدود 1.5 تا 2 برابر نسخه 32 بیتی حافظه رم اشغال می کنند.

سوال 8 سال قبل در تالار کامپیوتر و اینترنت توسط Saeed Zarinfam (959 امتیاز)

2 جواب

+1 رأی
فرق سیستم های 64 با 32 اینه که در سیستم 64 هر بایت سیستمی رو، 64 بیت اشغال می کند ولی در سیستم 32، هر بایت 32 بیت است.

حال در نظر بگیرید برای درنظر گرفتن رم برای اطلاعات سیستم هر 8 بایت رم 1 بایت فرض میشه و این در حالیه که این عدد در 32 بیت 4 (نصف) است.

با این حال هرچقدر هم سیستم 64 نسبت به سیستم 32 بایت هاش خلاصه تر باشه باز هم 64 رم بیشتری اشغال می کنه
جواب 8 سال قبل توسط moeenzarrinfam (2,579 امتیاز)
ویرایش 8 سال قبل توسط moeenzarrinfam
الان خوب شد؟
تشکر از شما.
0 رأی
یکی دیگه از دلایلشم صفحه بندی حافظه هستش که توی سیستم های 64 بیتی برای هر فرایند(برنامه) سیستم بش یه حافظه منطقی میده و اون حافظه رو به قطعات و صفحاتی تقسیم میکنه.  برای هر فرایند یه جدول در اختیار mmu روی رم میزاره تا mmu بتونه ادرس های منطقی cpu رو به ادرس های فیزیکی تبدیل کنه.

فک کنم میدونید که چی میگم. برنامه ها به موقع اجرا هیچ ایده ای درباره حافظه ای که سیستم عامل بشون اختصاص داده ندارن، و  مثلا شما توی برنامه ای که نوشتی به ادرس 650 مراجعه میکنی.یه برنامه دیگه هم به همین ادرس مراجعه میکنه.همه برنامه ها فکر میکنن که ادرسشون از ۰ تا ماکزیمم(تعداد بیت databus ) دارن.به این میگیم حافظه مجازی، که سیستم عامل به هر فرایند میده تا برنامه نویسو ملزم به ادرس دهی فیزیکی نکنه، وقتی این برنامه میخواد اجرا بشه باید بیاد روی رم، برنامه ها ممکن بود از رم موجود بزرگتر باشن. بعد این ایده اومد که گفت فقط بخشهایی که برنامهبشون احتیاج داره رو بیاریم روی رم.یعنی اگر یه برنامه دو گیگ هستش، نیاز نیس همه اون دو گیگ رو بیاریم روی رم،چون در هر لحظه اون برنامه ی درحال اجرا به همه اون دو گیگ احتیاج نداره،  پس ایده میگه بیایم حافظه منطقی برنامه رو به صفحات کوچیک تقسیم کنیم و اون صفحاتو بیاریم روو رم که برنامه در هر لحظه احتیاج داره.

تا اینجاشو گفتم که بگم ( کوتاه بدون جزییان) که سیستم عامل برای هر فرایند یه جدول صفحه داره که اونو روی رم،در اختیار سخت افزار mmu قرار میده. اینجدول بر اساس ادرس منطقی که فرایند داره میتونه تا ۵ مگ یا حتی بزرگتر باشه.

سیستم عامل های ما هم که بصورت client/server  هستن که هر بخشی به صورت یه برنامهروی رم قرار داره.خوده سیستم عاملو میگم.یعنی یه هسته مرکزی داره + چندین ماژول مختلف. حالا همه اینا برای شروع میاد روی رم، از اینطرف توو سیستم های ۳۲بیتی حافظه منطقی یه فرایند(مثل سیستم عامل و ماژولهاش) ۲ به توان ۳۲ بیت هستش، ولی در ۶۴ بیتی ها ۲ به توان ۶۴ بیت. که خیلی بیشتر از ۳۲ بیتی هاست.

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

ولی در کل بگم که ۶۴ بیتی ها بیشتر از ۳۲ بیتی ها از رم استفاده میکنن.
جواب 8 سال قبل توسط jahanmanesh (870 امتیاز)

سوال های مشابه

+1 رأی
2 جواب میانگین بازدید روزانه 5.4917,014 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1273 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.622,094 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.782,619 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.551,474 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.22692 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.3844 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.34955 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.11334 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 1.354,480 بازدید
کانال تلگرام جواب یاب
...