کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

مدیریت حافظه در برنامه نویسی ⚡️ سه سطح مهم در مدیریت حافظه

این مقاله عالی سه سطح مهم در مدیریت حافظه یعنی مدیریت حافظه در سطح سخت‌افزار، مدیریت حافظه در سطح سیستم عامل و مدیریت حافظه در سطح برنامه را معرفی کرده

به فرآیند کنترل کردن و تخصیص دادن حافظه اصلی یا RAMرم کامپیوتر چیست؟ رم کجاست؟ معرفی انواع رم (RAM) کامپیوتررم کامپیوتر چیست؟ رم کجاست؟ معرفی انواع رم (RAM) کامپیوتراین مقاله عالی به معرفی رم کامپیوتر پرداخته، همچنین بررسی کرده رم کامپیوتر (RAM : Random Access Memory) کجاست و انواع رم کامپیوتر را معرفی کرده است به برنامه‌های در حال اجرا در یک کامپیوترکامپیوتر چیست؟ ⚡️ کامپیوتر چیست به زبان سادهکامپیوتر چیست؟ ⚡️ کامپیوتر چیست به زبان سادهاین مقاله عالی توضیح داده که کامپیوتر چیست و چه کاربردی دارد و همه چیز درباره کامپیوتر از جمله فواید کامپیوتر و تعریف کامپیوتر و اجزای آن را بیان کرده است به‌اصطلاح مدیریت حافظه یا Memory Management می‌گویند. سرعت حافظه رم یا Random Access Memory که به آن حافظه اصلی (Main Memory) نیز می‌گویند، بسیار بیشتر از حافظه ثانویه (مانند HDD یا SSD) است اما میزان حجم حافظه آن بسیار کمتر از حافظه ثانویه است بنابراین باید مطمئن شویم تا بلاک‌های حافظه اصلی به‌خوبی مدیریت شده و منابع آن به‌درستی به سیستم عاملسیستم عامل چیست به زبان ساده، چرا باید از OS استفاده کنیم؟سیستم عامل چیست به زبان ساده، چرا باید از OS استفاده کنیم؟این مقاله عالی به معرفی سیستم عامل (Operating System|OS) به زبان ساده پرداخته، همچنین بررسی کرده که چرا باید از سیستم عامل استفاده کنیم  و نرم‌افزارها و بقیه Processهای در حال اجرا تخصیص داده می‌شود.

تصویر رم کامپیوتر

مدیریت کردن حافظه در حوزه‌های مختلفی مورد استفاده قرار می‌گیرد و در پلتفرم‌ها و زبان های برنامه نویسیزبان های برنامه نویسی چیست؟زبان های برنامه نویسی چیست؟این مقاله عالی توضیح داده که زبان های برنامه نویسی چیست؟ و انواع زبان های برنامه نویسی و بهترین زبان برنامه نویسی برای شروع و پردرآمدترین آنها را معرفی کرده مختلف نیز رویکردهای متفاوتی دارد، به‌عنوان مثال در حوزه نوشتن کامپایلر (Compiler)کامپایلر چیست و چگونه کار میکند و چرا از آن استفاده میشود؟کامپایلر چیست و چگونه کار میکند و چرا از آن استفاده میشود؟کامپایلر (Compiler) یک برنامه‌ی خاص برای ترجمه سورس کد‌های (Source Code) یک زبان برنامه نویسی، به زبان ماشین یا بایت کد و یا یک زبان برنامه نویسی دیگر است و یا تولید سیستم عامل ممکن است یک رویکرد خاصی پیش رو داشته باشیم و در ساخت نرم‌افزار یک رویکرد دیگر؛ همچنین تولید نرم‌افزار برای سیستم عامل ویندوز و یا ساخت بازی برای سیستم عامل اندرويدسیستم عامل اندرويد چیست؟ هر آنچه باید درمورد Android بدانیدسیستم عامل اندرويد چیست؟ هر آنچه باید درمورد Android بدانیداندروید چیست و چه ویژگی هایی دارد؟ این مقاله عالی به معرفی سیستم عامل اندروید (Android)، تاریخچه و توسعه اندروید، ویژگی های ورژن های مختلف اندروید پرداخته است، موارد مختلفی را دربرمی‌گیرد اما هدف تمامی این موارد یک چیز مشترک است و آن تخصیص درست حافظه و جلوگیری از کمبود حافظه و کند شدن و یا از کار افتادن سیستم است.

سه سطح مهم در مدیریت حافظه

به‌طور کلی مدیریت حافظه در 3 سطح صورت می‌پذیرد: 1- در سطح سخت افزارسخت افزار چیست - بررسی اجزای اصلی سخت افزار کامپیوترسخت افزار چیست - بررسی اجزای اصلی سخت افزار کامپیوتردر این صفحه بررسی شده که سخت افزار چیست و سخت افزار کامپیوتر به زبان ساده معرفی شده است، همچنین به بررسی اجزای اصلی سخت افزار کامپیوتر پرداخته شده است (Hardware) 2- در سطح سیستم عامل (Operating System) و 3- در سطح برنامه یا نرم‌افزار. مدیریت حافظه در هر سطح، مکمل یکدیگر می‌باشند و با همکاری یکدیگر به ایجاد یک محیط بهینه و کارآمد کمک می‌کنند. در این قسمت به‌طور مختصر به موارد مربوط به هر سطح می‌پردازیم.

سه سطح در مدیریت حافظه که عبارتند از سطح برنامه، سخت افزار و نرم افزار

مدیریت حافظه در سطح سخت‌افزار

مدیریت حافظه در سطح سخت‌افزار، مربوط به اجزای فیزیکی ذخیره داده‌ها یعنی حافظه RAM و حافظه کش پردازنده مرکزی یا همان CPU Memory Caches می‌شود. از مهم‌ترین قسمت‌های این سطح می‌توان به بخش MMU (Memory Management Mnit) اشاره کرد که مسئول کنترل کردن حافظه پردازشگرها و عملگرهای کشینگ است. مهم‌ترین کاری که واحد MMU انجام می‌دهد ترجمه آدرس منطقی یا Logical Address پردازنده‌های در حال اجرا به آدرس فیزیکی یا Physical Address در سخت‌افزارهای حافظه است. معمولا MMUها داخل پردازندهپردازنده (CPU) چیست؟ بررسی انواع، وظایف و کاربردهاپردازنده (CPU) چیست؟ بررسی انواع، وظایف و کاربردهاسی پی یو قلب کامپیوتر و کامپیوتر قلب دنیای کنونی است، بنابراین در این صفحه به معرفی و بررسی سی‌پی‌یو یا همان پردازنده مرکزی (CPU) پرداخته‌ شده، و بطور کامل توضیح داده‌ایم که CPU از چه بخش هایی تشکیل شده و هر بخش چه وظایف و مشخصاتی دارد.‌ها تعبیه می‌شوند، البته در بعضی از موارد به‌صورت یک مدار جداگانه نیز توسعه داده می‌شوند.

مدیریت حافظه در سطح سیستم عامل

تقریبا می‌توان گفت سخت‌ترین بخش مدیریت حافظه بر عهده سیستم عامل است. مدیریت حافظه در سطح سیستم عامل شامل تخصیص میزان خاصی از بلاک حافظه به پردازنده‌هایی که از CPU درخواست منابع کرده‌اند می‌شود. برای صحت عملکرد و تطبیق این تخصیص منابع، سیستم عامل باید به‌طور پیوسته و دائم فرآیندها یا Processها را بین حافظه اصلی و دستگاه‌های حافظه ثانویه مانند Hard Disk و SSD جابجا کند و وضعیت هر قسمت حافظه را دائما بررسی کند؛ همچنین سیستم عامل باید تعیین کند که چه مقدار از منابع حافظه، چه موقع و به کدام فرآیند باید تخصیص داده شود. تکنیکی وجود دارد با نام Swapping (سواپنیگ) که در آن سیستم عامل به‌طور موقت منابع تخصیص داده شده را از حافظه اصلی به حافظه ثانویه منتقل می‌کند؛ این امر تا زمانی که منابع اصلی مجددا در دسترس باشد ادامه دارد. در صورت موجود شدن منابع، مجددا منابع از حافظه ثانویه به داخل حافظه اصلی منتقل می‌شود.

فرآیند Swapping (سواپنیگ) در سیستم عامل

از دیگر مسئولیت‌های سیستم عامل در بخش مدیریت حافظه می‌توان به وظیفه مدیریت کردن پردازنده‌ها اشاره کرد، زمانی که هیچ حافظه فیزیکی آزادی باقی نمانده است. اگر این اتفاق افتاد، سیستم عامل از حافظه مجازی یا Virtual Memory استفاده می‌کند. حافظه مجازی در واقع از دستگاه‌های حافظه ثانویه ایجاد می‌شود. زمانی که تقاضا برای حافظه از سقف حافظه اصلی موجود در کامپیوتر فراتر رفت، سیستم عامل با ایجاد یک حافظه مجازی به‌صورت خودکار به تخصیص منابع درخواستی می‌پردازد. البته باید خاطر نشان کرد که Virtual Memory به‌طور جدی بر روی پرفورمنس و سرعت برنامه‌های کامپیوتری تاثیر می‌گذارد، زیرا حافظه‌های ثانویه یا جانبی سرعت بسیار کمتری نسبت به حافظه اصلی یا RAM دارند.

مدیریت حافظه در سطح برنامه یا نرم‌افزار

مدیریت حافظه در این سطح در طول فرآیند توسعه نرم‌افزار پیاده‌سازی می‌شود و برعهده خود نرم‌افزار می‌باشد یعنی سیستم عامل و واحد MMU دیگر نقشی در مدیریت حافظه ندارد. با مدیریت کردن حافظه در این سطح می‌توان از اینکه شی‌های داخل برنامه و ساختمان دادهآموزش ساختمان داده و الگوریتمآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیره‌سازی و مدیریت داده‌ها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن داده‌ها را برای یکسری از الگوریتم‌ها و کاربردها فراهم می‌کند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است‌ها از میزان حافظه مناسبی برخوردارند اطمینان حاصل کرد. دو وظیفه مهم در این بخش وجود دارد:

مدیریت حافظه در زبان های برنامه نویسی

امروزه در اکثر زبان‌های برنامه نویسی، فرآیند Garbage Collection به‌صورت خودکار انجام می‌شود اما در زبان‌های سطح پایین مانند زبان برنامه نویسی Cزبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cزبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cاین مقاله عالی ابتدا توضیح می‌دهد که زبان برنامه نویسی c چیست، سپس به بررسی مزایا و معایب زبان C ، کاربردهای زبان سی ، و تفاوت بین C و ++C می‌پردازد و سی پلاس پلاسبرنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++‎؟برنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++‎؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده این فرآیند به‌صورت دستی صورت می‌پذیرد. علت عمده این امر افزایش سرعت و پرفورمنس است. تعبیه کردن Garbage Collection باعث کاهش سرعت می‌شود بنابراین زبان‌های سطح پایین از اضافه کردن آن خودداری می‌کنند.

زبان‌های برنامه نویسی دارای Garbage Collection

زبان‌های برنامه نویسی بدون Garbage Collection

مدیریت حافظه در سطح کاربر

جالب است بدانید که از اصطلاح مدیریت حافظه یا Memory Management علاوه بر سطح برنامه نویسی و یا سخت‌افزاری، در سطح کاربری نیز استفاده می‌شود؛ به‌عنوان مثال مدیریت حافظه در اندروید، هم در سطح برنامه نویسی و ساخت اپلیکیشن اندروید مورد استفاده قرار می‌گیرد که مربوط به عواملی که پیش‌تر توضیح داده شد می‌شود و هم در سطح کاربران سیستم عامل اندروید استفاده می‌شود که مربوط به حذف نرم‌افزارهای بلااستفاده، متوقف کردن نرم‌افزارهای در حال اجرا در پس‌زمینه در هنگام افت سرعت و آزادسازی منابع با حذف صفحات اضافی می‌شود.

جمع‌بندی

مدیریت منابع از فرآیندهای مهمی است که از همان زمان ساخت سخت‌افزار شروع شده و تا تولید یک نرم‌افزار و استفاده از آن توسط کاربران ادامه پیدا می‌کند؛ همچنین از مواردی است که برنامه‌نویسان باید آن را به‌خوبی درک کنند؛ چرا که در صورت ایجاد نرم‌افزارهای ناکارآمد که مدیریت حافظه در آن به‌خوبی صورت نگرفته است، ممکن است نارضایتی کاربران را در پیش داشته باشد و یا حتی در مواردی تهدیدکننده جان انسان‌ها باشد. امروزه انواع تکنیک‌های تست نرم‌افزاری به‌وجود آمده است که جوانب مختلف مصرف حافظه توسط برنامه‌های ساخته شده را مورد بررسی قرار می‌دهد. در این مقاله به‌طور کلی به بحث در مورد مدیریت حافظه در برنامه نویسی در سطوح مختلف پرداخته شد.

مدیریت حافظه چیست؟

به‌طور خلاصه به فرآیند کنترل کردن و تخصیص دادن حافظه اصلی (RAM) به برنامه‌های در حال اجرا در یک کامپیوتر به اصطلاح مدیریت حافظه یا Memory Management می‌گویند.

آیا مدیریت حافظه در زبان‌های برنامه نویسی به‌طور خودکار انجام می‌شود؟

بعضی از زبان‌های برنامه نویسی مانند زبان جاوا، زبان سی شارپ و زبان پایتون، بعضی از فرآیند مدیریت حافظه مانند Garbage Collection را به‌طور خودکار انجام می‌دهند؛ در حالی که در زبان‌های سطح پایین‌تر مانند زبان C/C++ و زبان Go اینکار به‌صورت دستی صورت می‌پذیرد.

مدیریت حافظه در برنامه نویسی چقدر اهمیت دارد؟

یکی از مباحث بسیار مهم در هنگام کدنویسی، مبحث مدیریت حافظه است. برنامه‌نویس باید از منابع به‌طور کارآمد و صحیح استفاده کند و اطمینان حاصل کند که برنامه نوشته شده دارای هیچ نشتی حافظه یا Memory Leaks نباشد.

امتیازدهی5 1 1 1 1 1 1 1 1 1 15.00 امتیاز (3 رای)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام