بله.
همون که نیست، این دو عبارت معادل هم نیستند که بگید همونه. می توانید بگید commited از حافظه مجازی تامین میشه یا مقدارش بخشی از حافظه مجازی رو تفکیک می کنه.
خیر. توضیحات Commited رو مجددا بخونید، وقتی میگید مقدار استفاده (In use) رو نشون میده یعنی تعریف Commited رو نخوندید. نمیشه که بگید چیزی استفاده شده ولی بخشی اش استفاده نشده.
تفریق تون مشکلی نداره اما چیزی که به دست میاد باز بخشی از Commited ئه و در نتیجه ممکنه بخشی اش استفاده شده باشه و بخشی اش نشده باشه. هر چیزی که در Commited هست که الزاما استفاده نشده. Commited معادل In use نیست. براتون پارکینگ آپارتمان رو هم مثال زدم.
عبارت چیه؟ "Commited Byte (Ram+Pagefile in use currently)"
فارسی اش چیه؟ بایت های Commited (حافظه RAM به علاوه Pagefile که در حال استفاده است). درسته؟
کجای این عبارت نوشته "قسمتِ اولِ Commited ، معروف به commit charge ، همون حافظه ی مجازی در حال استفاده هست"؟
Commited رو چی ترجمه کرده اید؟ قبلا هم که در موردش حرف زدیم و معنی اش در توضیحاتی که دادم مشخصه.
به نظر شما Commited = Virtual Memory؟ یا Commited = In Use؟ کدومش به نظرتون درسته؟
در منابع مختلف بگردید ببینید Commited رو معادل کدوم یکی شون گرفتن؟ هیچکدوم.
سلامی مجدد استاد .
خیلی ممنون از توضیحات تون .
تقریبا به چیزی که گفتید انگار دارم میرسم (که در ادامه ، جریان را توضیح میدم) .
یعنی انگار دارم به این میرسم که Commited ، بخشی از حافظه ی مجازی هست ؛ نه اینکه کلِ حافظه ی مجازی باشه (که حالا در ادامه بیشتر توضیح میدم و اسناد را ارائه میکنم) .
اول درباره ی اسنادِ اینکه میگفتم Commited ، حافظه ی مجازی هستن و تعجب میکنم اگه بخشی از حافظه ی مجازی هستن ، پس چرا در اون اسناد به این قضیه (که بخشی از حافظه ی مجازی هستن) ، اشاره نکردن بگم که طبق چیزهایی که در همون لینکی که قبلا دادم :
Learn about the page files in Windows. A page file is an optional, hidden system file on a hard disk.
docs.microsoft.com
میگه :
Page files extend how much "committed memory" (also known as "virtual memory") is used to store modified data.
که committed memory که عنچنین به عنوان "حافظه ی مجازی" شناخته شده هست .
بعد هم میگه :
The system commit memory limit is the sum of physical memory and all page files combined.
که میگه commit limit (که در عکس ، به عنوان قسمتِ دومِ Commited در Task Manager نشون داده هست) ، مجموعه ی حافظه ی فیزیکی و همه ی page file ها هستن . (که مجموعه ی حافظه ی فیزیکی و همه ی page file ها هم همون حافظه ی مجازی میشن دیگه) .
در ادامه هم :
It represents the maximum system-committed memory (also known as the "system commit charge") that the system can support.
The system commit charge is the total committed or "promised" memory of all committed virtual memory in the system.
که میگه این commit limit (که به عنوان commit charge هم شناخته میشه) ، حداکثرِ حافظه ای که سیستم میتونه پشتیبانی کنه را ارائه میکنه . (که قبلا هم توضیح داده بود و در ادامه ی متن که متن دوم هست هم میگه که منظورش ، کل حافظه ی مجازی هست) .
اما در هیچ کجای این دو متن ، اشاره نکرد که committed memory ، بخشی از حافظه ی مجازی هست .
. ببخشید من اشتباه کرده بودم که در پست قبلی گفته بودم که قسمت اولِ Commited در Task Manager ، همون commit charge ، هست . بلکه قسمت دوم (سمت راست) ئه Commited در Task Manager ، همون commit charge ، هست .
اما متن و عکس زیر ، من را به اشتباه انداخت که فکر کردم به قسمت اولِ Commited در Task Manager ، همون commit charge میگن (باز هم دقیق نمیدونم) :
If the system commit charge reaches the system commit limit, the system and processes might not get committed memory.
This condition can cause freezing, crashing, and other malfunctions.
که میگه اگه قسمت اولِ Commited (در عکس بالا در Task Manager) ، به قسمتِ دوم که حداکثرِ حافظه ی مجازی (یا بخشی از حداکثرِ حافظه ی مجازی هست ؛ دقیق نمیدونم) ، برسه ، در این صورت ، برنامه کرش میشه و ارور حافظه میده .
در لینک زیر هم Commited Charge را این طور توضیح داده :
en.wikipedia.org
توضیح :
commit charge ... describe the total amount of virtual memory of all processes that must be backed by either physical memory or the page file.
هیچ کدوم شون نگفتن بخشی از حافظه ی مجازی هستن .
علاوه بر این ، در عکسی که مایکروسافت در اون لینک قرار داده :
قسمت دوم ئه Commited را که هم در عکس و هم در توضیحات گفته بود که
کل رم (نه میزانِ استفاده شده اش در حال حاضر فقط)
به علاوه ی کل page file (این هم اگه میزانِ استفاده شده داره ، نه میزانِ استفاده شده اش در حال حاضر فقط) ، همون Commit Limit هست . که همون
کل حافظه ی مجازی میشه (نه حافظه ی مجازی ای که در حال حاضر در حال استفاده هست) .
قسمت اول ئه Commited را هم که در عکس به عنوان Commit Byte مشخص کرد ، همون
مقداری از حافظه ی رم ای که در حال استفاده هست به علاوه ی مقداری از حافظه ی page file ای که در حال استفاده هست ، هست (اگه page file ، مقدارِ در حالِ استفاده اش ، از کلِ حافظه ای که براش در فایلِ pagefile.sys رزرو میشه ، جدا باشه که نمیدونم . این طور هست؟) .
البته commited charge را چون نمیدونم دقیقا قسمتِ اولِ Commited در Task Manager میشه یا قسمت دومش ، نام نبردم .
ولی شواهد انگار نشون میدن که بقول شما ، حافظه ی Commited ، بخشی از حافظه ی مجازی هستن ، نه همه ی حافظه ی مجازی (باز هم نمیدونم) .
یعنی قسمت اولِ Commited در Task Manager (همون
Commit Byte) ،
بخشی از حافظه ی مجازیِ در حال استفاده هست (نه همه ی حافظه ی مجازیِ در حال استفاده) .
و همچنین قسمت دومِ Commited در Task Manager (همون
Commit Limit) ،
بخشی از کلِ حافظه ی مجازی هست (نه همه ی حافظه ی مجازی) .
البته باز این قضیه هم که بخشی از حافظه ی مجازیِ در حال استفاده باشه ، هم انگار حداقل برای Commit Byte درست نیست .
چون در این صورت با کم کردنِ این مقدار (بخش اولِ Commited) از قسمت In Use در Task Manager ، بخشی از مقدارِ page file (نه صرفا همه اش) باید بدست بیاد و مهمتر اینکه مقدارِ حاصل از این تفاضل ، نباید بیشتر از مقدارِ تفاضل بین Commit Limit (بخش دومِ Commited) از کل حافظه ی رم (که بخشی از کل حافظه ی مجازی هست) ، بشه .
اما برای من الان به این صورت هست :
و حجم فایل page file ام که یه دونه در درایو c فقط تنظیم شده هست (البته بصورت اتوماتیک به دست ویندوز سپرده شده که احتمالا فقط یه دونه page file در ریشه ی درایو ویندوز میسازه دیگه) :
حجم page file که 5.72 گیگ هست .
تفاضل Commit Limit با حجم رم ام (که حجم رم ام 7.9 گیگ هست) ، برابر با 5.2 گیگ میشه .
تفاضل Commit Byte با In Use (که مقدار In Use ، برابر با 4.4 گیگ هست) ، برابر با 6.4 گیگ میشه .
فرضا اون 450 مگ که در In Use که فشرده کرد را هم از مقدارِ 6.4 گیگ کم کنیم ، باز میشه 5.95 گیگ که باز از مقدارِ اون 5.2 گیگ ، بیشتره .
اصلا آدم قاتی میکنه روالش چجوری هه .
اطلاعات Commited (حداقل Commited Byte) ، نه به حافظه ی مجازیِ در حالِ استفاده میمونه و همچنین به بخشی از حافظه ی مجازیِ در حال استفاده هم نمیمونه .
پس این ، دقیقا چیه؟!
شما میتونین دو تا عکس آخر که از سیستمم را دادم ، اطلاعات و رابطه ی مقادیرِ حجم pagefile.sys با رابطه ی مقادیرِ Commit Byte و Commit Limit (و در صورت نیاز ، بقیه ی مقادیر) را تحلیل کنید و یه جوری توضیح بدین من متوجه شم؟
بسته به تنظیماتش هر دو حالت ممکنه. page file میتونه حجم ثابت یا حجم متغیر داشته باشه.
در موردش جستجو کنید. به تاپیک معماری پردازنده ربطی نداره.
بله.
آها .
یعنی این حجمی که برای pagefile.sys نشون میده ، صرفا فایلی هست که اون مقدار براش رزرو شده . صرفا به این معنا نیست که به اندازه ی همه ی حجمِ pagefile.sys ، توش هم اطلاعات نوشته شده باشه . ممکنه کمتر از اون ، توش اطلاعات نوشته شده باشه .
یعنی فرضا در عکس بالا که حجمِ pagefile.sys ام را در اون لحظه دادم که 5.72 گیگ بود ، این ، حجمی هست که سیستم عامل براش رزرو کرده . به این معنا نیست که در این لحظه ، حتما 5.72 گیگ ، اطلاعات در این فایل نوشته شده باشه (یا در واقع ، میزان استفاده شده در اون لحظه ، 5.72 گیگ باشه) . ممکنه کمتر از 5.72 گیگ ، در این فایل ، اطلاعات ذخیره و نوشته شده باشه .
درست میگم؟
تشکر استاد . و ببخشید که طولانی شد