PYTHONWITHMEDEV Telegram 420
( ربطی به مبحث چنل نداره ولی دیدم این مبحث معماری کامپیوتر جذابه 🦦)

Swap (سواپ):

سواپ یه فرآیندیه  که در آن سیستم عامل اون prosses که به طور فعال استفاده نمی‌شوند را از  (RAM) به فضای ( Virtual memory)( یه حافظه مجازی ) منتقل می‌کند. این یک روش برای مدیریت حافظه است و به سیستم اجازه می‌دهد تا بیش از ظرفیت فیزیکی RAM خود به نظر برسد. سواپ عمدتاً زمانی اتفاق می‌افتد که Ram پر شود و به فضای بیشتری برای اجرای برنامه‌ها نیاز باشد و معمولا افزایش یا کاهش Swap دست خودمونه.

خب حالا یه سوال پیش میاد ؟
من میتونم هر برنامه ای مثلا یه گیم با 20 گیگ رم رو تویه سیستم با 8 گیگ رم اجرا کنم؟
نه ، چند تا بحث هس :

اولیش اینه که یه مفهومی هس به اسم ( working set ) و نشون میده که یه  مجموعه‌ای از صفحات حافظه ( page tables ) است که یک پروسه در طول یک دوره زمانی خاص به آن‌ها دسترسی دارد یا از آن‌ها استفاده می‌کند ( اصل لوکالیتی) .
حالا چون برنامه یه سری پروسه ها رو نیاز داره و باید اجرا بشه دنبالش تویه RAM میگرده و پیداش نمیکنه ( اصطلاحا میگن miss خورده) و حالا باید بره از Virtual memory بیاره که اوردر پیدا کردن و آوردنش خیلی بیشتر از پیدا کردن تویه خود ram هست و سرعتو کاهش میده

و یه مسئله دیگه هم اینه که برخی از برنامه‌ها به گونه‌ای طراحی شده‌اند که نیاز به مقدار مشخصی از RAM دارند و عملکرد صحیح آن‌ها در صورت کمبود RAM به شدت تحت تأثیر قرار می‌گیرد یا اصلاً اجرا نمی‌شن

خب حالا از کجا میفهمه من اونقدر حجم ندارم ؟
برنامه‌ها هنگام اجرا می‌توانند درخواست حافظه کنند. اگر سیستم عامل نتواند این مقدار حافظه را فوراً تخصیص دهد (چه به دلیل کمبود RAM، چه نیاز به سواپ کردن داده‌ها)، برنامه ممکن است با خطا یا کاهش عملکرد مواجه بشه
یا اینکه کلا برنامه میتونه از طریق API های سیستم عامل مقدار حجم ram رو ببینه مثلا تویه لینوکس : /proc/meminfo



tgoop.com/pythonwithmedev/420
Create:
Last Update:

( ربطی به مبحث چنل نداره ولی دیدم این مبحث معماری کامپیوتر جذابه 🦦)

Swap (سواپ):

سواپ یه فرآیندیه  که در آن سیستم عامل اون prosses که به طور فعال استفاده نمی‌شوند را از  (RAM) به فضای ( Virtual memory)( یه حافظه مجازی ) منتقل می‌کند. این یک روش برای مدیریت حافظه است و به سیستم اجازه می‌دهد تا بیش از ظرفیت فیزیکی RAM خود به نظر برسد. سواپ عمدتاً زمانی اتفاق می‌افتد که Ram پر شود و به فضای بیشتری برای اجرای برنامه‌ها نیاز باشد و معمولا افزایش یا کاهش Swap دست خودمونه.

خب حالا یه سوال پیش میاد ؟
من میتونم هر برنامه ای مثلا یه گیم با 20 گیگ رم رو تویه سیستم با 8 گیگ رم اجرا کنم؟
نه ، چند تا بحث هس :

اولیش اینه که یه مفهومی هس به اسم ( working set ) و نشون میده که یه  مجموعه‌ای از صفحات حافظه ( page tables ) است که یک پروسه در طول یک دوره زمانی خاص به آن‌ها دسترسی دارد یا از آن‌ها استفاده می‌کند ( اصل لوکالیتی) .
حالا چون برنامه یه سری پروسه ها رو نیاز داره و باید اجرا بشه دنبالش تویه RAM میگرده و پیداش نمیکنه ( اصطلاحا میگن miss خورده) و حالا باید بره از Virtual memory بیاره که اوردر پیدا کردن و آوردنش خیلی بیشتر از پیدا کردن تویه خود ram هست و سرعتو کاهش میده

و یه مسئله دیگه هم اینه که برخی از برنامه‌ها به گونه‌ای طراحی شده‌اند که نیاز به مقدار مشخصی از RAM دارند و عملکرد صحیح آن‌ها در صورت کمبود RAM به شدت تحت تأثیر قرار می‌گیرد یا اصلاً اجرا نمی‌شن

خب حالا از کجا میفهمه من اونقدر حجم ندارم ؟
برنامه‌ها هنگام اجرا می‌توانند درخواست حافظه کنند. اگر سیستم عامل نتواند این مقدار حافظه را فوراً تخصیص دهد (چه به دلیل کمبود RAM، چه نیاز به سواپ کردن داده‌ها)، برنامه ممکن است با خطا یا کاهش عملکرد مواجه بشه
یا اینکه کلا برنامه میتونه از طریق API های سیستم عامل مقدار حجم ram رو ببینه مثلا تویه لینوکس : /proc/meminfo

BY 🧑‍💻Cyber.vision🧑‍💻


Share with your friend now:
tgoop.com/pythonwithmedev/420

View MORE
Open in Telegram


Telegram News

Date: |

The Standard Channel Step-by-step tutorial on desktop: Select “New Channel” Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. How to create a business channel on Telegram? (Tutorial)
from us


Telegram 🧑‍💻Cyber.vision🧑‍💻
FROM American