مقاله و فیلم آموزش مدیریت و برنامهنویسی سیستمهای عامل، شبکه و امنیت اطلاعات.
ویدئوهای کانال در یوتیوب:
https://youtube.com/@os_security
ویدئوهای کانال در آپارات:
https://aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akazemi67
Post #120
4.17K
مروری بر حافظهی مجازی در ویندوز
وقتی یک برنامه اجرا میشود، برای آن پروسهای ایجاد شده که امکانات مختلفی از جمله دسترسی به حافظه را فراهم میکند. پروسهها مستقیم به حافظهی فیزیکی (همان RAM) دسترسی نداشته و یک لایهی Abstraction توسط سیستمعامل ایجاد میشود که به آن حافظهی مجازی میگویند.
این لایه وظایفی دارد که بخشی از آن به صورت خلاصه عبارتند از:
• مدیریت اینکه داده دقیقا در کدام آدرس RAM قرار دارد و Map کردن آن در فضای مجازی پروسه
• استفاده از Hard Disk در صورت کم بودن RAM بدون اینکه پروسه از آن اطلاع داشته باشد
• جلوگیری از تکرار داده در حافظهی فیزیکی و Map کردن بخشی که بین چند پروسه مشترک است برای آنها
• کنترل دسترسی به اطلاعات خاص و تعیین permission برای داده
• دسترسی به دادهها به صورت یکسری Chunk بجای دسترسی بایت به بایت (تعریف Page)
از طرف دیگر از دید پروسه کل فضای آدرسدهی ممکن (در مدل ۳۲بیتی ۲گیگابایت و در مدل ۶۴بیتی ۱۲۸ترابایت) قابل تخصیص بوده و میتوان از آن استفاده نمود ولی اینکه واقعا چقدر از آن قابل استفاده است بسته به میزان RAM موجود و میزان Hardای دارد که برای استفاده به عنوان حافظه در سیستمعامل تعیین شده است.
ویندوز امکان رزرو کردن کل فضای آدرسدهی ممکن را به پروسهها میدهد ولی برای استفادهی واقعی و قراردادن داده در آن باید آن فضا commit شده و در این مرحله است که امکانپذیر بودن آن با توجه به میزان کل فضای موجود، توسط سیستمعامل چک شده و اگر امکانپذیر بود به پروسه امکان دسترسی داده میشود.
در ابزارهای مختلفی که در ویندوز وجود دارند (مثل Task Manager, Process Explorer) یکسری Counter برای اطلاع پیدا کردن از وضعیت حافظه در سیستم و میزان فضای رزرو یا استفاده شده توسط پروسهها وجود دارد که میتوان به کمک آنها از اتفاقاتی که برای حافظه رخ میدهد اطلاع پیدا کرد.
در این ویدئو مروری بر وظایف حافظهی مجازی در ویندوز انجام گرفته و Counterهای موجود، برای بررسی آن در ابزارهای مختلف شرح داده میشوند.
لینک ویدئو در یوتیوب:
https://youtu.be/x5AnJpGBdW4
لینک ویدئو در آپارات:
https://aparat.com/v/NIsUi
#ShortWinInternals #windows #memory #internals #VirtualMemory #MemoryCounters
وقتی یک برنامه اجرا میشود، برای آن پروسهای ایجاد شده که امکانات مختلفی از جمله دسترسی به حافظه را فراهم میکند. پروسهها مستقیم به حافظهی فیزیکی (همان RAM) دسترسی نداشته و یک لایهی Abstraction توسط سیستمعامل ایجاد میشود که به آن حافظهی مجازی میگویند.
این لایه وظایفی دارد که بخشی از آن به صورت خلاصه عبارتند از:
• مدیریت اینکه داده دقیقا در کدام آدرس RAM قرار دارد و Map کردن آن در فضای مجازی پروسه
• استفاده از Hard Disk در صورت کم بودن RAM بدون اینکه پروسه از آن اطلاع داشته باشد
• جلوگیری از تکرار داده در حافظهی فیزیکی و Map کردن بخشی که بین چند پروسه مشترک است برای آنها
• کنترل دسترسی به اطلاعات خاص و تعیین permission برای داده
• دسترسی به دادهها به صورت یکسری Chunk بجای دسترسی بایت به بایت (تعریف Page)
از طرف دیگر از دید پروسه کل فضای آدرسدهی ممکن (در مدل ۳۲بیتی ۲گیگابایت و در مدل ۶۴بیتی ۱۲۸ترابایت) قابل تخصیص بوده و میتوان از آن استفاده نمود ولی اینکه واقعا چقدر از آن قابل استفاده است بسته به میزان RAM موجود و میزان Hardای دارد که برای استفاده به عنوان حافظه در سیستمعامل تعیین شده است.
ویندوز امکان رزرو کردن کل فضای آدرسدهی ممکن را به پروسهها میدهد ولی برای استفادهی واقعی و قراردادن داده در آن باید آن فضا commit شده و در این مرحله است که امکانپذیر بودن آن با توجه به میزان کل فضای موجود، توسط سیستمعامل چک شده و اگر امکانپذیر بود به پروسه امکان دسترسی داده میشود.
در ابزارهای مختلفی که در ویندوز وجود دارند (مثل Task Manager, Process Explorer) یکسری Counter برای اطلاع پیدا کردن از وضعیت حافظه در سیستم و میزان فضای رزرو یا استفاده شده توسط پروسهها وجود دارد که میتوان به کمک آنها از اتفاقاتی که برای حافظه رخ میدهد اطلاع پیدا کرد.
در این ویدئو مروری بر وظایف حافظهی مجازی در ویندوز انجام گرفته و Counterهای موجود، برای بررسی آن در ابزارهای مختلف شرح داده میشوند.
لینک ویدئو در یوتیوب:
https://youtu.be/x5AnJpGBdW4
لینک ویدئو در آپارات:
https://aparat.com/v/NIsUi
#ShortWinInternals #windows #memory #internals #VirtualMemory #MemoryCounters
- ❤ 12
- 👍 6
- 👏 1
