فی لوو

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

فی لوو

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

دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA)

اختصاصی از فی لوو دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA) دانلود با لینک مستقیم و پر سرعت .

دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA)


دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA)

دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA)

فرمت فایل: پاورپوینت

تعداد اسلاید: 34

 

 

 

 

 مقدمه: 

موادی که باعث سازگاری سازه با محیط خود می شوند، مواد محرک نامیده می شوند. این مواد می توانند شکل، سفتی، مکان، فرکانس طبیعی و سایر مشخصات مکانیکی را در پاسخ به دما و یا میدان های الکترومغناطیسی تغییر دهند. امروزه پنج نوع ماده محرک به طور عمده استفاده می شود که شامل :1آلیاژهای حافظه دار:2 سرامیکهای پیزوالکتریک:3  مواد مغناطیسی سخت :4 مایعات الکترورئولوژکال و5 :مگنتورئولوژیکال می باشند. این مواد از زمره مواد هوشمند محرک می باشند. مواد هوشمند آن دسته از موادی هستند که می توانند به تغییرات محیط به بهترین شکل ممکن پاسخ داده و رفتار خود را نسبت به تغییرات تنظیم نمایند.


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


دانلود پاورپوینت ریخته گری آلیاژهای حافظه دار(SMA)

دانلود مقاله کامل درباره حافظه فعال و هوش

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

دانلود مقاله کامل درباره حافظه فعال و هوش


دانلود مقاله کامل درباره حافظه فعال و هوش

 

 

 

 

 

 

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

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

تعداد صفحه :17

 

بخشی از متن مقاله

حافظه فعال و هوش :

بحث آکرمن ، بیر و بویل ( 2005 ) در مورد همبستگی و ارتباط مابین هوش و حافظه فعال

کلوس آبرر : دانشگاه پوتسدام    اولیور ویلهلم : هامبولت برلین  -  رالف شوانر : دانشگاه ویلهلمز  -  مارتین هنز : دانشگاه ماگ برگ .

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

پی . ال . آکرمن – ام – ای . بیر و ام . او بویل ( 2005 )

بیان می دارند که حجم حافظه فعال (WMC  )  در کمتر از %25 از آن واریانس مرتبط با هوش عمومی و همراه با توانایی استدلالی سهیم می باشند . در این بحث محققان در این مورد می گویند که این داده های متغیر به سبب کمبود های متعدد شیوه شناختی و تعصبان خاص کمتر ارزیابی می شوند .

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

موضوعات شیوه شناختی : همبستگی مابین WMC و هوش چه است ؟

هدف آکرمن از آنالیز داده های متغیر آن بود که برآورد هایی از همبستگی های مابین ساختمان WMC و ساختار های مختلف توانایی شناختی ارائه کند .

این شیوه داده های متغیر از آن نوشته این محققان دقیقاً بیان می شود که این ها قصد دارند تا همبستگی های فوق الذکر کم ارزش جلوه بدهند . ما نشان دادیم که شیوه آنها شامل عواملی می باشد که همبستگی های برآوردی تنزلی متعصابه باشند . و فواصل اعتمادی بین آنها بسیار اندک می باشد .

« گزینش وظیفه »

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

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

آنالیز داده های متغیر :

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

بنابراین این همبستگی های وابسته همراه با تست های توانایی در کل مطالعات غیر متجانس می باشند . علاوه بر این نمونه مشارکت کننده در طرح تحقیقاتی از جمعیت های مختلفی حاصل می شود و دیگر ویژگی های مطالعاتی احتمالاً به ناهمگنی مقادر تاثیر اضافه می شود . یک الگو تاثیرات تصادفی برای این وضعیت خیلی مناسب شده اند . نتایج استفاده از الگوی تاثیرات ثابت در زمانی می باشد که یک الگوی تاثیرات ثابت در مراحل چند گانه تصحیح شود ( برای یک بررسی مجدد دیدگاه فکری شوئز  ( 2004 ) مشاهده کنید .

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

علاوه بر این عرض های فواصل زمانی مطمئن همچنین به سبب شیوه ای که برای تخمین این متغیر های استفاده می کند تا تصحیح را برای توجیح کاهش نپذیرد کم ارزش جلوه می کند . فواصل زمانی مطمئن برای همبسته های اصلاح شده بزرگتر از آن متغیر هایی می باشد که برای همبسته های تصحیح نشده به کار رود . بنابراین تعدادی از نتایج که توسط آکرمن شرح داده شود بر اساس فواصل زمانی مطمئن غیر تداخلی می باشد که احتمالاً در مانی که در شیوه های مناسب استفاده می شود . متفاوت می شوند. برای مثال همبسته متوسط مابین عملکرد اصلی شناختی و تست های WM می باشد احتمالاً به نحوی چشمگیر از همبسته متوسط تست های WM و اندازه گیری های عمومی هوش ( g ) فراتر می باشد . واریانس ناخواسته و تعبین خاص وظیفه :

شکل دیگری که به یک بی ارزشی همبستگی مابین WMC و توانایی های شناختی منتهی می شود آن است که هیچ وظیفه واحدی استفاده نمی شود . تا مقدار  WMCکه یک شاخص خالص می باشد اندازه گیری کند . وظایف WM در یک ترکیبی از حداقل چهار منابع واریانسی هدفمند مسلماً منعکس می شود که عبارت از :

*** متن کامل را می توانید بعد از پرداخت آنلاین ، آنی دانلود نمائید، چون فقط تکه هایی از متن به صورت نمونه در این صفحه درج شده است ***


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


دانلود مقاله کامل درباره حافظه فعال و هوش

سورس کد بازی هوش برتر( حافظه ریاضی)

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

سورس کد بازی هوش برتر( حافظه ریاضی)


سورس کد بازی هوش برتر( حافظه ریاضی)

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


از ویژگیهای این بازی می توان به موارد زیر اشاره کرد:
1-    دارای صفحه ورود(اسپلش اسکرین)
2-    داری اسکرول زمان بسیار زیبا
3-    دارای طراحی متریال دیزاین
4-    دارای افکت های صوتی در بازی
5-    دارای سه سبک بازی مختلف
6-    محیط بسیار گرافیکی و زیبا برای رضایت کاربر
7-    مورد تایید کلیه مارکتها از جمله کافه بازار
8-    محیط کاملا فارسی


نکته 1: این سورس کد کاملا آماده و تست شده می باشد و فقط شما با عوض کردن نام پکیج برنامه و لوگو می توانید بازی را در کلیه مارکتها عرضه کنید


نکته 2: برای دیدن توضیحات بیشتر و نمونه برنامه ساخته شده با این سورس کد به لینک زیر بروید. https://cafebazaar.ir/app/com.mrm.math/?l=fa

اینجا کلیک کنید


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


سورس کد بازی هوش برتر( حافظه ریاضی)

دانلود مقاله کامل درباره کاربرد حافظه (RAM)

اختصاصی از فی لوو دانلود مقاله کامل درباره کاربرد حافظه (RAM) دانلود با لینک مستقیم و پر سرعت .

دانلود مقاله کامل درباره کاربرد حافظه (RAM)


دانلود مقاله کامل درباره کاربرد حافظه (RAM)

 

 

 

 

 

 

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

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

تعداد صفحه :48

 

بخشی از متن مقاله

/ کنترل میزان مصرف حافظه در سیستم

/ اجرای برنامه های ارزیابی و سنجش حافظه

 /نمایش اطلاعات حافظة ویندوز به کمک برنامة Sandra

/ آماده شدن برای ارتقا حافظة سیستم

/ عیب یابی نصب حافظه در سیستم

/ حذف کاربرد حافظة بسط یافته و حافظة توسعه یافته در محیط ویندوز

/ کنترل مقدار فیزیکی مصرف RAM در محیط ویندوز

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

بر روی وب یا داخل مجلات و بروشورها و کتابهای کامپیوتر اغلب توصیه های مطالعه می کنید که مقدار لازم حافظة Ram برای سیستم شما را اعلام می کنند. اغلب اعلام می شود که حداقل 126 تا 512 مگابایت حافظة Ram برای عملکرد مناسب یک سیستم لازم است.

درک مفهوم لایه‌های ذخیره‌سازی

داخل کامپیوترهای شخصی از دیسک‌ها برای نگهداری دایمی و بلند مدت اطلاعات استفاده می‌کنیم. اطلاعات داخل دیسک سخت از طریق مغناطیس نمودن سطح دیسک انجام می‌گیرد. به دلیل روش مغناطیسی ذخیرة اطلاعات در دیسک سخت
(در مقابل روش الکترونیکی ) این وسیله قابلیت نگهداری دایمی و بلند مدت اطلاعات را دارد و با قطع برق یا خاموش شدن سیستم اطلاعات مستقردر دیسک از بین نرفته و ماندگار هستند چون دیسک سخت برای نگهداری اطلاعاات نیاز به جریان برق دایمی ندارد. اما حافظة Ram اطلاعات را بطور موقت نگهداری می کند  بدیهی است که با قطع برق یا خاموش شدن سیستم این اطلاعات از بین خواهند رفت.

فن‌آوریهای گوناگون برای ذخیره‌سازی اطلعات ابداع شده‌اند که اغلب آنها را بر اساس سرعت، هزینه و ظرفیت ذخیره سازی طبقه‌بندی می‌کنند. معمولاً دیسک‌ها وسایل مکانیکی هستند و به همین دلیل سرعت عملیات آنها نسبت به انواع حافظه‌های الکترونیکی بسیار کندتر است. در شکل زیر نمایی از اواع وسایل ذخیره‌سازی و در سمت راست کندترین وسیلة ذخیره‌سازی را نشان داده‌ایم.

جریان اطلاعات از حافظة RAM به پردازنده (‌CPU)

هرگاه Cpu برای اجرای عملیات به اطلاعات یا دستوری نیاز داشته باشد ابتدا آنها را داخل حافظه میانجی L1 جستجو می‌کند. اگر اطلاعات مورد نیاز را آنجا پیدا نکند به سراغ حافظه میانجی L2 خواهد رفت. اگر اطلاعات مورد نیاز را آنجا هم پیدا نکند پس Cpu باید نشانی آدرس آن اطلاعات را از طریق گذرگاه سیستم به حافظه Ram ارسال نماید. درخواست اطلاعات از Cpu باندا به تراشة کنترل کنندة حافظه می‌رسد.

کنترل کنندة حافظه از آدرس رسیده استفاده می‌کند و اطلاعات یا دستور مورد نیاز Cpu را پیدا می‌کند. پس از اینکه کنترل کنندة حافظه این اطلاعات را پیدا می کند آن را از طریق گذرگاه سیستم به Cpu ارسال می‌کند.

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

سازماندهی حافظة RAM توسط کامپیوترهای شخصی

در حافظة Ram اطلاعات ( Data ) و دستوراتی ( Instructions ) ذخیره می شوند که Cpu برای اجرای عملیات به آنها نیاز دارد. می دانید که هر برنامه شامل دستوراتی است که به زبان صفر و یک ها نوشته شده ( یا ترجمه شده) اند. بنابراین در حافظة Ram نیز اطلاعات به شکل صصفرها و یک ها ذخیره می شوند. می توانید حافظة Ram را به شکل چند ردیف از مکانهای ذخیره سازی تصور نمایید.

برنامه نویسان تصور دیگری از حافظة Ram دارند.

آنها مجموعه بیت ها را در یک « لغت» ( Word) گروه بندی می کنند. به همین دلیل پردازنده هایی که از گذرگاه اطلاعات 32 بیتی استفاده می کنند در واقع از لغات 32 بیتی استفاده می کنند. پردازنده هایی که از گذرگاه اطلاعات 64 بیتی استفاده می کنند از بغات 64 بیتی استفاده می کنند. اما در پشت صحنه واقعیت این است که برنامه ها می توانند به بایت های انفرادی داخل حافظة Ram دسترسی داشته باشند. در شکل زیر نمایی از ساختار حافظة Ram را مشاهده می کنید که مکان هر بایت یک آدرس منحصربه فرد دارد. Cpu برای بازخوانی اطلاعات از حافظه Ram یا ثبت اطلاعات رد حافظة Ram باید آدرس مکانهای ذخیره سازی در این حافظه را بداند.

در فصل 12 جزییات مربوط به تبادل اطلاعات از طریق گذرگاه های کامپیوتر بین تراشه ها را می آموزید. هر گاه سیستم (‌System bus ) ارتباط بین حافظة Ram و Cpu را برقرار نمودده و شامل سیستم هایی است که اطلاعات بر روی آنها حرکت می کنند. تعداد بیت های موجود در گذرگاه آدرس مشخص کنندة مقدار حافظه ای هستند که کامپیوتر شخصی می تواند به آنها دسترسی داشته باشد. به عنوان مثال اگر در یک سیستم از گذرگاه آدرس 32 بیتی استفاده شود پس 232 یعنی 4 گیگابایت را می توان آدرس دهی نمود.

یا در یک سیستم که از گذرگاه آدرس 64 بیتی استفاده می شود پس 264  9551616، 737، 18446744 خانة حافظه را می توان آدرس دهی نمود.

مفهوم DRAM ( Dynamic ramdom access memory )

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

مشکل اصلی مربوط به استفاده از کاپاسیتور آن است که شارژ آنها برای مدت محدودی باقی می ماند و باید هر چند لحظه یکبار شارژ آنها نوسازی شود. کنترل کنندة حافظه به منظور تجدید شارژ کاپاسیتور ابتدا محتوی آن را خوانده و نگهداری می کند. پس از تجدید شارژ کنترل کنند حافظه باید مقدار آن کاپاسیتور را دوباره به آن برگرداند. سرعت تجدید شارژ محتوی بیت توسط کنترل کننده حافظه باید معادل 66 مگاهرتز باشد.

همچنین هنگامی که Cpu محتوی ذخیره شده در حافظة Ram را درخواست می کند، کنترل کنندة حافظه باید محتوی جاری کاپاستیور را بگیرد تا مشخص کند که اطلاعاتی در آن ذخیره شده است.

اگر کاپاسیتور در برگیرندة محتوی 1 باشد، کنترل کنندة حافظه باید محتوی کاپاسیتور را نوسازی ( تجدید) نماید. در زمانی که کنترل کنندة حافظه محتوی کاپاسیتور را می‌خواند این محتوی از درون کاپاسیتور خارج می شود و این فرایند را « خواندن تخریبی» اطلاعات یا Destructive read می نامند.

چون کنترل کنندة حافظه باید بطور مرتب و دایمی تراشه‌های حافظة Ram را نوسازی نماید، این نوع تراشه ها از سایر انواع حافظه ها کندتر عمل می کنند. اما مزیت اصلی این تراشه ها ظرفیت زیاد ذخیره سازی اطلاعات در این نوع تراشه فقط از یک ترانزیستور و یک کاپاسیتور استفاده می شود.

*** متن کامل را می توانید بعد از پرداخت آنلاین ، آنی دانلود نمائید، چون فقط تکه هایی از متن به صورت نمونه در این صفحه درج شده است ***


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


دانلود مقاله کامل درباره کاربرد حافظه (RAM)

مدیریت حافظه و منابع 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