فی لوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی لوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

مدیریت حافظه و منابع Memory and Resource Management

اختصاصی از فی لوو مدیریت حافظه و منابع Memory and Resource Management دانلود با لینک مستقیم و پر سرعت .

مدیریت حافظه و منابع Memory and Resource Management


مدیریت حافظه و منابع Memory and Resource Management

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

 نوع فایل Word دانلود انواع تحقیق

تعداد صفحات : 37

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

شرح محتوا 

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

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... 

 


دانلود با لینک مستقیم


مدیریت حافظه و منابع Memory and Resource Management

A Primer on Memory Consistency and Cache Coherence

اختصاصی از فی لوو A Primer on Memory Consistency and Cache Coherence دانلود با لینک مستقیم و پر سرعت .

A Primer on Memory Consistency and Cache Coherence


A Primer on Memory Consistency and Cache Coherence A Primer on Memory Consistency and Cache CoherenceVolume: Author(s):Daniel J. Sorin, Mark D. Hill, David A. WoodSeries:Synthesis Lectures on Computer ArchitecturePeriodical: Publisher:Morgan & Claypool PublishersCity: Year:2011Edition:1Language:EnglishPages (biblio\tech):214\214ISBN:1608455645, 9781608455645ID:782236Time added:2012-02-04 16:00:00Time modified:2016-03-20 07:50:50Library: Library issue:2011 12 30Size:4 MB (4098602 bytes)Extension:pdf

دانلود با لینک مستقیم


A Primer on Memory Consistency and Cache Coherence

دانلود پاورپوینت Virtual Memory - پنجاه اسلاید قابل ویرایش

اختصاصی از فی لوو دانلود پاورپوینت Virtual Memory - پنجاه اسلاید قابل ویرایش دانلود با لینک مستقیم و پر سرعت .

دانلود پاورپوینت Virtual Memory - پنجاه اسلاید قابل ویرایش


دانلود پاورپوینت Virtual Memory - پنجاه اسلاید قابل ویرایش

 

 

 

 

lسیستم عامل چند تکه از برنامه را برای اجرا به حافظه اصلی می آورد.
lمجموعه مقیم: قسمتی از برنامه که داخل حافظه اصلی است.
lوقتی که به آدرسی نیاز داشته باشیم که در حافظه اصلی نباشد یک وقفه تولید می گردد.
lسپس، سیستم عامل فرآیند را مسدود می کند.
lقسمت مورد نیاز که حاوی آدرس منطقی تولید شده است وارد حافظه می گردد.
lسیستم عامل یک درخواست I/O خواندن دیسک را صادر می کند.
lمادامی که درخواست I/O تکمیل نشده است، برنامه دیگری برای اجرا فرستاده می شود.
lوقتی درخواست آماده شد، یک وقفه صادر می شود که باعث می شود سیستم عامل فرآیند مسدود شده را به حالت آماده برگرداند.

برای دانلود کل پاورپوینت از لینک زیر استفاده کنید:


دانلود با لینک مستقیم


دانلود پاورپوینت Virtual Memory - پنجاه اسلاید قابل ویرایش

تحقیق در مورد Main Memory Database

اختصاصی از فی لوو تحقیق در مورد Main Memory Database دانلود با لینک مستقیم و پر سرعت .

تحقیق در مورد Main Memory Database


تحقیق در مورد Main Memory Database

لینک پرداخت و دانلود *پایین مطلب*

 

فرمت فایل:Word (قابل ویرایش و آماده پرینت)

  

تعداد صفحه:53

 

  

 فهرست مطالب

 

Main Memory Database

 

مقدمه

 

مدلهای هزینه حافظه اصلی

 

Office-By-Example (OBE)

 

Smallbase

 

  1. Hardware-based  
  2. Application-based
  3. Engine-based

 

ساختارهای شاخص در حافظه اصلی

 

ساختار T-Tree  

 

  1. الگوریتم جستجو

 

2 . الگوریتم درج

 

  1. الگوریتم حذف

 

کنترل همزمانی(  Concurrency Control)

 

Commit Processing

 

 

 

 

مقدمه

در اواسط دهه 1980، با نزول قیمت DRAM، این ایده مطرح شد که کامپیوترهای آتی با داشتن حافظه اصلی با ظرفیت بالا، می توانند بسیاری از پایگاه داده ها را درحافظه اصلی داشته باشند. در این شرایط می توان همه I/O ها (که بسیار هزینه بر می باشند) را از پردازش DBMS حذف نمود. بنابراین معماری DBMS دستخوش تغییرات جدی می شود و در یک MAIN MEMORY DBMS(MMDBMS)، مدیریت I/O دیگر نقشی نخواهد داشت.

نکته مهم در یک MMDB، چگونگی انجام تراکنشها و recovery بصورت کارا است. برخی از الگوریتمهای پیشنهادی براساس این فرض عمل می کنند که قسمت کوچکی از حافظه اصلی بصورت ماندگار وجود دارد که اطلاعاتش توسط باطری در صورت قطع برق از بین نخواهد رفت. این قسمت از حافظه اصلی برای نگهداری redo log ها استفاده می شود.

تعداد دیگری از الگوریتمهای پیشنهادی پیش فرض حافظه ماندگار را ندارند و همچنان از عملیات I/O برای نوشتن اطلاعات تراکنش در حافظه ماندگار استفاده می کنند. بنابراین در این الگوریتمها عملیات I/O بطور کامل حذف نمی شود، بلکه تعدادشان بسیار کمتر می شود زیرا  I/Oمربوط به نوشتن اطلاعات صفحات buffer ها، حذف خواهد شد.

در یک MMDBMS، ساختارداده های ساده مانند T-Tree و همچنین bucket-chained hash جایگزین ساختارداده هایی چون B-Tree و linear hash در DBMS های مبتنی بر دیسک می شوند. بنابراین سرعت اجرای پرس و جو(پرس و جو) و بهنگام سازی بسیار افزایش می یابد و هزینه index lookup و نگهداری ،فقط مربوط به  پردازنده و دسترسی به حافظه اصلی خواهد شد.

یکی از مشکلات اصلی در MMDBMS ها بهینه کردن درخواستهاست. عدم وجود I/O به عنوان فاکتور اصلی در هزینه ها به معنای پیچیدگی بیشتر مدل کردن هزینه در یک MMDBMS است زیرا در اینجا یکسری فاکتورهای فازی از قبیل هزینه اجرای  پردازنده ، باید در نظر گرفته شوند. در این حالت باید با استفاده از تعامل روش coding، عوامل سخت افزاری مانند  پردازنده و معماری حافظه و پارامترهای پرس و جو، به یک مدل قابل اطمینان از هزینه اجرا در حافظه اصلی رسید.

در دهه 1990، MMDBMS ها با افزایش سایز دیسکها و سایز مسائل همراه با افزایش ظرفیت DRAM ها، به اوج محبوبیت خود رسیدند. MMDBMS ها اغلب برای برنامه هایی که به پایگاه داده Real Time نیاز دارند (مانند سیستمهای embedded سوئیجهای تلفن) ، استفاده می شود. از آنجایط که سایز حافظه اصلی در کامپیوترها روز به روز در حال افزایش است، این امید وجود دارد که برای بسیاری از پایگاه داده هایی که امروزه امکان قرارگفتن آنها بصورت کامل در حافظه اصلی وجود ندارد، این شرایط مهیا شود.

 

 

 

مدلهای هزینه حافظه اصلی

متاسفانه تا کنون تلاشهای اندکی جهت مدل کردن هزینه کارایی MMDBMSها صورت گرفته است. تحقیقات اولیه روی طراحی ماشینهای پایگاه داده ها، بیشتر در زمینه وابستگیهای میان الگوریتمها و دسترسی حافظه صورت می گرفت.در صورتیکه امروزه به دلیل محدود شدن استفاده از MMDBMS ها به کاربرد در پایگاه داده های Real Time(به صورت پرس وجوهای ساده، مانند یک hash lookup در یک جدول)، اینگونه تحقیقات از اهمیت کمتری برخوردارند.

در تحقیقات اخیر در زمینه MMDBMS ها دو نمونه تحقیقاتی Office-By-Example (OBE) مربوط به شرکت IBM و Smallbase مربوط به شرکت HP مسائل ارزشمندی را درمورد بهینه سازی پرس وجو ها و مدلسازی هزینه حافظه اصلی مطرح کرده اند که در ادامه به بررسی این دو نمونه می پردازیم.

 

 

 

 


دانلود با لینک مستقیم


تحقیق در مورد Main Memory Database

مقاله در مورد Process & Memory Management for BSD, Windows, Linux

اختصاصی از فی لوو مقاله در مورد Process & Memory Management for BSD, Windows, Linux دانلود با لینک مستقیم و پر سرعت .

مقاله در مورد Process & Memory Management for BSD, Windows, Linux


مقاله در مورد   Process & Memory Management for BSD, Windows, Linux

 

لینک پرداخت و دانلود *پایین مطلب*

 

 

 

فرمت فایل:Word (قابل ویرایش و آماده پرینت)

 

  

 

تعداد صفحه:16

 

 

 

  

 

 فهرست مطالب

 

 

 

 

 

 

 

مقدمه

4

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

4

 

حافظه مجازی

5

 

صفحه بندی

5

مقایسه

7

 

ساختمانهای داده ای برای تشریح فضای پروسس

9

 

 

  1. 4 BSD

9

 

 

Windows

11

 

 

Linux

12

 

توزیع فضای آدرس پروسس

12

 

جابجایی صفحات

13

 

 

  1. 4 BSD

13

 

 

Windows

15

 

 

Linux

18

پیشنهادات و نتایج

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1- مقدمه:

در این مقاله زیر سیستم های مدیریت حافظه این سیستم عامل ها را با هم مقایسه می کنیم Linux 2.4 ، Windows 2000 و BSD 4.4 . BSD 4.4 به این دلیل انتخاب شد که نماینده نسخه های مختلف Unix است که بسیاری از اصول و پایه های مهم طراحی یک سیستم عامل را داراست و امروزه بسیاری از سیستم های عامل مانند: FreeBSD، NetBSD و OpenBSD بر مبنای آن ساخته شده اند. از همه مهمتر، Unix به صورت عالی مستند شده است و کتاب های بسیاری در مورد آن نوشته شده اند. Windows 2000 انتخاب شده است، چون یک سیستم عامل عامه پسند است و برای کامپیوتر های شخصی و افراد مبتدی، بسیار کارا است و حالا هم به شکل یک سیستم عامل کاملا بالغ در آمده است.

Linux 2.4 را به این دلیل انتخاب کردیم که هر روز هوا داران بیشتری پیدا می کند و به نظر می رسد که جایگاه مهمی را در آینده پیدا خواهد کرد. ما خیلی مایل به خصوصیات و کارآیی های این سیستم عامل عا نیستیم و در عوض می خواهیم در این مقاله به نحوه طراحی و معماری داخلی این سیستم عامل ها نگاهی بیاندازیم:

 

2- سیستم های مدیریت حافظه:

ما سیستم های مدیریت حافظه را به اختصار، MM می گوییم. MM ها بخش خیلی مهمی از هسته سیستم عامل خستند. کار اصلی آنها مدیریت سلسله مراتب حافظه اصلی یا RAM و دیسک های سخت موجود بر روی ماشین می باشد.

کار های مهم آن شامل: تخصیص حافظه و ازاد سازی آن برای پروسس هایی است که از راهکار ها و پیاده سازی حافظه مجازی (یا Virtual Memory) استفاده می کنندکه با استفاده از دیسک سخت به عنوان حافظه اصلی اضافه کار می کند.

سیستم حافظه باید تا آنجایی که امکان دارد بهینه شود، زیرا که کارآیی آن به شکل فزاینده ای به کارآیی کل سیستم و سرعت آن بستگی دارد.

 

2-1- حافظه مجازی:

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

 

2-2- صفحه بندی:

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

 

 

ترجمه آدرس عملا توسط بخش مدیریت حافظه یا MMU انجام میگیرد. با استفاده از یک جدول صفحه در شکل 1 نشان داده شده است. جداول صفحه ارتباط بین صفحات مجازی و صفحات فیزیکی را مشخص میکنند. به عنوان مثال کدام صفحه مجازی هم اکنون کدام صفحه فیزیکی را اشغال کرده است.

MMU آدرس حافظه مجازی را به آدرس حافظه فیزیکی تبدیل میکند که شامل شماره Page Frame است و یک آفست در آن صفحه است. حفاظت میتواند به صورت صفحه به صفحه اعمال شود.

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


دانلود با لینک مستقیم


مقاله در مورد Process & Memory Management for BSD, Windows, Linux