فایل ورد کامل تحقیق آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management


در حال بارگذاری
10 جولای 2025
پاورپوینت
17870
2 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

 فایل ورد کامل تحقیق آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد فایل ورد کامل تحقیق آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی فایل ورد کامل تحقیق آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن فایل ورد کامل تحقیق آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management :

دانلود مقاله تحقیقی آزمایشگاه سیستم عامل با موضوع مدیریت حافظه و منابع Memory and Resource Management

نوع فایل : Word

تعداد صفحات : ۳۷

*همراه با ترجمه به زبان انگلیسی*

شرح محتوا

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

C++ در مدیریت حافظه انعطاف زیادی دارد ، اما تعداد کمی از برنامه نویسان C++ مکانیسم های در دسترس و مورد استفاده و موجود را به طور کامل درک کرده اند .در این محیط برنامه نویسی ، سربار گذاری ، سازنده ها و مخرب ها ، استثناء ها ، توابع مجازی و استاتیک ، توابع عملگر و غیر عملگر همه با هم برای ایجاد انعطاف پذیری زیاد و مدیریت حافظه سفارشی ، می آیند . متاسفانه ، و شاید به دلیل اجتناب ناپذیر بودن ، همه اینها می توانند موجب کمی پیچیدگی شوند .
در این فصل ، ما نگاهی داریم به ابنکه چگونه خصوصیات و ترکیبات مختلف C++ در مدیریت حافظه مورد استفاده قرار می گیرند ، چگونه گاهی اوقات به طور شگفت انگیز واکنش نشان می دهند ، و چگونه واکنش هایشان را ساده می کنند …

شکست در متمایز کردن تخصیص Array و Scalar

آیا یک Widget همان آرایه ای از Widget ها است ؟ البته که نه . چرا تعدادی از برنا مه نویسان C++ از یافتن عملگرهای مختلفی که برای اختصاص دادن و آزاد کردن آرایه ها واسکالرها استفاده شده است ، تعجب می کنند ؟
ما چگونگی اختصاص دادن و آزادکردن یک Widget را می دانیم.ما برای این کار از عملگرهای new و delete استفاده می کنیم .
Widget *w = new Widget( arg );
// . . .
delete w;

برخلاف بیشتر عملگرها در C++ ، رفتار عملگر new نمی تواند با سربارگذاری تغییر کند . عملگر new همیشه یک تابع را بنام عملگر new برای فراهم کردن حافظه فراخوانی می کند ، سپس ممکن است ان حافظه را مقدار دهی اولیه کند . در مورد Widget ، نامبرده ، با استفاده از عملگر new موجب فراخوانی یک تابع عملگرnew خواهد شد که یک پارامتراز نوع size_t می گیرد ، سپس درخواست یک سازنده Widget روی حافظه ای که مقداردهی نشده است خواهد کرد که توسط عملگرnew برای ایجاد یک شئ Widget برگردانده شده است …

بررسی شکست تخصیص حافظه

در اینجا چند خط کد برای بررسی اختصاص حافظه ی موفق نمایش داده شده است :

bool error = false;
String **array = new String *[n];
if( array ) {
for( String **p = array; p < array+n; ++p ) {
String *tmp = new String;
if( tmp )
*p = tmp;
else {
error = true;
break;
}
}
}
else
error = true;
if( error )
handleError();

این روش کدنویسی زحمت زیادی دارد ، اما ممکن است تلاش ما ارزش زیادی داشته باشد اگر ان توانایی نمایان ساختن همه ناتوانی های ممکن در تخصیص حافظه را داشته باشد …

جایگزینی new و delete سراسری

جایگزینی نسخه های استاندارد و سراسری عملگر new ، عملگرdelete ، آرایه ی new ، یا آرایه ی delete هرگز عقیده ی خوبی نیست ، حتی با وجود اینکه استاندارد ان را مجاز می داند . نسخه های استاندارد عموما برای هدف کلی مدیریت حافظه بهینه شده اند ، و کاربر تعریف شده که جایگزین می شود بعید می رسد که ان را به خوبی انجام دهد .
هدف ویژه ی نسخه های عملگر new و عملگرdelete که رفتار متفاوتی را از نسخه های استاندارد پیاده سازی می کند احتمالا اشکالاتی داشته باشند ، چون که صحت تعداد زیادی از کتابخانه های استاندارد و کتابخانه های سه بخشی به پیاده سازی استاندارد پیش فرض این توابع وابسته است …

Memory and Resource Management

C++ offers tremendous flexibility in managing memory, but few C++ programmers fully understand the available mechanisms. In this area of the language ,overloading , name hiding, constructors and destructors, exceptions, static and virtual functions, …

Failure to Distinguish Scalar and Array Allocation

Is a Widget the same thing as an array of Widgets Of course not. Then why are so many C++ programmers surprised to find that different operators are used to allocate and free arrays and scalars
We know how to allocate and free a single Widget. We use the new and delete operators:

Widget *w = new Widget( arg );
// . . .
delete w;

Unlike most operators in C++, the behavior of the new operator can’t be modified by overloading. The new operator always calls a function named operator new to obtain some storage,…

Checking for Allocation Failure

Here’s some code that’s careful to check that every memory allocation succeeds:

bool error = false;
String **array = new String *[n];
if( array ) {
for( String **p = array; p < array+n; ++p ) {
String *tmp = new String;
if( tmp )
*p = tmp;
else {
error = true;
break;
}
}
}
else
error = true;
if( error )
handleError();

This style of coding is a lot of trouble, but it might be worth the effort if it were able to detect all possible memory allocation failures…

Replacing Global New and Delete

It’s almost never a good idea to replace the standard, global versions of operator new, operator delete, array new, or array delete, even though the standard permits it. The standard versions are typically highly optimized for general-purpose storage management, and user-defined replacements are unlikely to do better

Special-purpose versions of operator new and operator delete that implement different behavior from the standard versions will probably introduce bugs, since the correctness of much of the standard library and many third-party libraries depends on the default standard implementations of these functions.

A safer approach is to overload the global operator new rather than …replace it…


  راهنمای خرید:
  • همچنین لینک دانلود به ایمیل شما ارسال خواهد شد به همین دلیل ایمیل خود را به دقت وارد نمایید.
  • ممکن است ایمیل ارسالی به پوشه اسپم یا Bulk ایمیل شما ارسال شده باشد.
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.