saeedsmk
مدیر بازنشسته
- تاریخ عضویت
- 6 سپتامبر 2003
- نوشتهها
- 1,518
- لایکها
- 4
سلام سالک عزیز
در مورد مدیریت و این حرفها باید بگم خودت بهترین انتخابی و اما د رمورد سئوالی که کرده بودی با اجازه بقیه اساتید:
قبل از اینکه سئوال 16 یا 32 بیتی رو در موردش بحث کنیم بهتر یه بیشینه در مورد اجرا فایل های اگزه توسط ویندوز داشته یاشیم :
هنگامی که یه فایل اگزه اجرا میشود . ابتدا درستی این فایل از نظر ساختار چک میشود سپس یه ماشین مجازی بر اساس نوع برنامه تشکیل داده میشود که داری حافظه مشخص ای است. این حافظه میتواند ثابت یا متغییر باشد . اگر برنامه تحت داس اجرا شود ( یعنی 16 بیتی ) این جافظه تا مقدار مشخصی میتواند افزایش پیدا کند . یعنی تا ادرس دهی 16 بایتی یعنی 65538 بایت یا 64 کیلو ( اگر باز هم برنامه احتیاج به حافظه داشته باشد از حافظه توسعه داده شده این حافظه گرفته میشود که در واقعه همان گرفتن حافظه در بخش heap است که مقدار ماکزیمم گرفتن ادرس اگر درست یادم باشه 64 مگ است ) برنامه میتواند از استیک استفاده نمایید. اگر هم برنامه تحت ویندوز نوشته شده باشد تا 4 گیگ میتواند حافظه را ادرس دهی و استفاده نمایید. در این حال بر عکس برنامه های تحت داس تمامی مموری پشته توسط stake ادرس دهی میشود . در این حالت محدودیت های سیستم مثل مقدار حافظه ای که دارد ( یا مقدار فضای که حافظه مجازی در نهایت میتواند اخذ کند) یا مقدار حافظه ای که برنامه های دیگر گرفته اند ، مقدار حافظه ( تند یا ram ) گرفته شده توسط برنامه را محدود میکند نه عدم یا محدودیت نوع فایل اجرایی . البته در بعضی از حالت مثل برنامه های 16b بازهم محدودیت های فایل اجرایی داریم .
برنامه های 32 بیتی تحت سیستم عامل ویندوز اجرا میشوند . پس تمامی برنامه های داس که باید توسط شل یا ماشین مجازی ای که حالت ادرس دهی داس را ( 16b ) شبیه سازی میکنند اجرا شود 16 بیتی هستند.
اما در مورد حافظه ویرچوال :
حافظه مجازی یا حافظه شبیه سازی شده یا حافظه تولید شده توسط paging file ، حافظه است که توسط سیستم عامل ویندوز از نسخه 3.1 تا کنون ( فکر کنم برای یونیکس به ان حافظه swap شده میگویند) برای حل یک مشکل ارائه گردید:
هنگامی که برنامه ای اجرا میشود ( فرض کنید فایل اجرایی 32 بیتی است و تحت یک ویندوز 98 با سیتمی با رم 64 مگ اجرا گردیده است ) بر اساس تعریف و ادرس دهی 32 بایتی یعنی اجازه دسترسی به 2 به توان 32 بایت ، برنامه میتواند به 4 گیگ حافظه دسترسی پیدا کند ، اما کامپوتر همش 64 مگ رم دارد پس از یک فایل موقت برای قسمت های از برنامه که در داخل رم جا نمیشوند ( بعلت پر شدن ان) استفاده میشود که به ان حافظه مجازی میگویند .
virtual memory
Temporary storage used by a computer to run programs that need more memory than it has. For example, programs could have access to 4 gigabytes of virtual memory on a computer's hard drive, even if the computer has only 32 megabytes of RAM. The program data that does not currently fit in the computer's memory is saved into paging files.
در ضمن در بعضی از مواقع شما برنامه ای را اجرا میکنید و برای مدت ای که کم هم نیست از برنامه استفاده نمیکنید
در این حالت ویندوز برای خالی کردن رم دستگاه برای اجرای برنامه های بعدی یا برنامه ای که شما هم اکنون اجرا کرده اید کل برنامه را به رم مجازی که کند است انتقال میدهد و در نتیجه شما برنامه خود را با سرعت بالا توسط رم دستگاه که سریع است اجرا مینماید . برای مثال اگر شما برنامهای مثل فوتو شاپ را برای زمان طولانی کوچک کنید هنگامی که برنامه را توسط taskbar دوباره صدا زده یا فعال میکنید مدتی طول میکشدتا برنامه بصورت کامل نمایش داده شود و در این حالت اگر به چراق هاردنظری بی افکنید استفاده از هارد نمایش داده میشود که بعلت انتقال برنامه از حافظه مجازی به حافظه رم است ( حافظه مجازی بروی هارد شبیه سازی میشود )
همانطور که دیده میشود تصمیم بر استفاده از این حافظه و یا عدم استفاده از ان توسط هسته سیستم عامل اتخاذ میشود و نه برنامه نویس پس ممکن است برنامه تحت داس هم از این ویرچوال مموری استفاده نماید.
در مورد مدیریت و این حرفها باید بگم خودت بهترین انتخابی و اما د رمورد سئوالی که کرده بودی با اجازه بقیه اساتید:
قبل از اینکه سئوال 16 یا 32 بیتی رو در موردش بحث کنیم بهتر یه بیشینه در مورد اجرا فایل های اگزه توسط ویندوز داشته یاشیم :
هنگامی که یه فایل اگزه اجرا میشود . ابتدا درستی این فایل از نظر ساختار چک میشود سپس یه ماشین مجازی بر اساس نوع برنامه تشکیل داده میشود که داری حافظه مشخص ای است. این حافظه میتواند ثابت یا متغییر باشد . اگر برنامه تحت داس اجرا شود ( یعنی 16 بیتی ) این جافظه تا مقدار مشخصی میتواند افزایش پیدا کند . یعنی تا ادرس دهی 16 بایتی یعنی 65538 بایت یا 64 کیلو ( اگر باز هم برنامه احتیاج به حافظه داشته باشد از حافظه توسعه داده شده این حافظه گرفته میشود که در واقعه همان گرفتن حافظه در بخش heap است که مقدار ماکزیمم گرفتن ادرس اگر درست یادم باشه 64 مگ است ) برنامه میتواند از استیک استفاده نمایید. اگر هم برنامه تحت ویندوز نوشته شده باشد تا 4 گیگ میتواند حافظه را ادرس دهی و استفاده نمایید. در این حال بر عکس برنامه های تحت داس تمامی مموری پشته توسط stake ادرس دهی میشود . در این حالت محدودیت های سیستم مثل مقدار حافظه ای که دارد ( یا مقدار فضای که حافظه مجازی در نهایت میتواند اخذ کند) یا مقدار حافظه ای که برنامه های دیگر گرفته اند ، مقدار حافظه ( تند یا ram ) گرفته شده توسط برنامه را محدود میکند نه عدم یا محدودیت نوع فایل اجرایی . البته در بعضی از حالت مثل برنامه های 16b بازهم محدودیت های فایل اجرایی داریم .
برنامه های 32 بیتی تحت سیستم عامل ویندوز اجرا میشوند . پس تمامی برنامه های داس که باید توسط شل یا ماشین مجازی ای که حالت ادرس دهی داس را ( 16b ) شبیه سازی میکنند اجرا شود 16 بیتی هستند.
اما در مورد حافظه ویرچوال :
حافظه مجازی یا حافظه شبیه سازی شده یا حافظه تولید شده توسط paging file ، حافظه است که توسط سیستم عامل ویندوز از نسخه 3.1 تا کنون ( فکر کنم برای یونیکس به ان حافظه swap شده میگویند) برای حل یک مشکل ارائه گردید:
هنگامی که برنامه ای اجرا میشود ( فرض کنید فایل اجرایی 32 بیتی است و تحت یک ویندوز 98 با سیتمی با رم 64 مگ اجرا گردیده است ) بر اساس تعریف و ادرس دهی 32 بایتی یعنی اجازه دسترسی به 2 به توان 32 بایت ، برنامه میتواند به 4 گیگ حافظه دسترسی پیدا کند ، اما کامپوتر همش 64 مگ رم دارد پس از یک فایل موقت برای قسمت های از برنامه که در داخل رم جا نمیشوند ( بعلت پر شدن ان) استفاده میشود که به ان حافظه مجازی میگویند .
virtual memory
Temporary storage used by a computer to run programs that need more memory than it has. For example, programs could have access to 4 gigabytes of virtual memory on a computer's hard drive, even if the computer has only 32 megabytes of RAM. The program data that does not currently fit in the computer's memory is saved into paging files.
در ضمن در بعضی از مواقع شما برنامه ای را اجرا میکنید و برای مدت ای که کم هم نیست از برنامه استفاده نمیکنید
در این حالت ویندوز برای خالی کردن رم دستگاه برای اجرای برنامه های بعدی یا برنامه ای که شما هم اکنون اجرا کرده اید کل برنامه را به رم مجازی که کند است انتقال میدهد و در نتیجه شما برنامه خود را با سرعت بالا توسط رم دستگاه که سریع است اجرا مینماید . برای مثال اگر شما برنامهای مثل فوتو شاپ را برای زمان طولانی کوچک کنید هنگامی که برنامه را توسط taskbar دوباره صدا زده یا فعال میکنید مدتی طول میکشدتا برنامه بصورت کامل نمایش داده شود و در این حالت اگر به چراق هاردنظری بی افکنید استفاده از هارد نمایش داده میشود که بعلت انتقال برنامه از حافظه مجازی به حافظه رم است ( حافظه مجازی بروی هارد شبیه سازی میشود )
همانطور که دیده میشود تصمیم بر استفاده از این حافظه و یا عدم استفاده از ان توسط هسته سیستم عامل اتخاذ میشود و نه برنامه نویس پس ممکن است برنامه تحت داس هم از این ویرچوال مموری استفاده نماید.