+1 امتیاز
قبل در کامپیوتر و اینترنت توسط (1.1هزار امتیاز)

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

2 پاسخ

+1 امتیاز
قبل توسط (2.6هزار امتیاز)
ویرایش شده قبل توسط
فرق سیستم های 64 با 32 اینه که در سیستم 64 هر بایت سیستمی رو، 64 بیت اشغال می کند ولی در سیستم 32، هر بایت 32 بیت است.

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

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

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

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

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

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

ولی در کل بگم که ۶۴ بیتی ها بیشتر از ۳۲ بیتی ها از رم استفاده میکنن.

سوالات مشابه

+1 امتیاز
2 پاسخ 17.6هزار بازدید
0 امتیاز
1 پاسخ 405 بازدید
+1 امتیاز
2 پاسخ 2.7هزار بازدید
+1 امتیاز
1 پاسخ 965 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
0 پاسخ 995 بازدید
...