دانشکده

دانلود فایل ها و تحقیقات دانشگاهی ,جزوات آموزشی

دانشکده

دانلود فایل ها و تحقیقات دانشگاهی ,جزوات آموزشی

کلیله و دمنه 4 ص

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

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

 

کلیله و دمنه

َلیله و دِمنه کتابی‌است از اصل هندی که در دوران ساسانی به فارسی میانه ترجمه شد. کلیله و دمنه کتابی پندآمیز است که در آن حکایتهای گوناگون (بیشتر از زبان حیوانات)‌ نقل شده‌است. نام آن از نام دو شغال با نامهای کلیله و دمنه گرفته شده‌است. بخش بزرگی از کتاب اختصاص به داستان این دو شغال دارد.

اصل و تاریخچهٔ کتاب

کلیله و دمنه در واقع تألیفی‌است مبتنی بر چند اثر هندی که مهم‌ترین آنها پنجه تنتره (به سانسکریت पञ्चतन्त्र)به معنی پنج فصل و به زبان سانسکریت است. در روایات سنتی برزویه «مهتر اطبّای پارس» در زمان خسرو انوشیروان را مؤلف این اثر می‌دانند. نام پهلوی اثر کلیلگ و دمنگ بود. متأسفانه صورت پهلوی این اثر به دست ما نرسیده‌است. اما ترجمه‌ای از آن به زبان سریانی امروز در دست است. این ترجمه نزدیک‌ترین ترجمه از لحاظ زمانی به تألیف برزویه‌است.[1]

ترجمه از پهلوی به عربی

پس از اسلام روزبه پوردادویه (ابن مقفع) آن را به عربی ترجمه کرد ترجمهٔ ابن مقفع بسیار مقبول افتاد و مظهری از فصاحت در زبان عربی تلقی شد. ترجمهٔ ابن مقفع امروز موجود است امّا میان نسخ مختلف آن گاه تفاوتهای زیادی دیده می‌شود.

ابن ندیم در الفهرست[2] کلیله و دمنه را در شمار «کتابهای هند در افسانه و اسمار و احادیث» آورده‌است و دربارهٔ آن گوید:

کتاب کلیله و دمنه هفده بابست- و گویند هجده باب بوده که عبدالله بن مقفع و دیگران آن را ترجمه کرده‌اند، و این کتاب به شعر هم در آورده شده، و این کار را ابان بن عبدالحمید بن لاحق بن عقیر رقاشی کرده‌است و علی بن داود نیز آن را به شعر درآورده، و بشر بن معمده ترحمه‌ای از آن دارد که پاره‌ای از آن در دست مردم است. و من در نسخه دیدم که دو باب اضافه داشت و شاعران ایرانی این کتاب را به شعر درآورده‌اند که از فارسی به عربی ترجمه شده‌است. و از این کتاب مجموعه‌ها و منتخباتی است که ساخته گروهی مانند ابن مقفع و سهل بن هارون و سلم رئیس بیت‌الحکمه و ... [است].

 

صفحه‌ای از نسخه‌ای از کلیله و دمنه بتاریخ ۱۲۱۰ میلادی

ترجمهٔ‌عربی ابن مقفع پایهٔ ترجمه‌های دیگر قرار گرفت و کتاب از عربی به فارسی، یونانی ، ترکی ، اسپانیایی ، روسی ، آلمانی ترجمه شد.

ترجمه از عربی به فارسی

کلیله و دمنه چندین بار از عربی به فارسی دری برگردانده شده‌است. از جمله رودکی آن را به نظم درآورد اما امروز جز چند بیت پراکنده از آن باقی نمانده‌است.

در قرن ششم هجری نصرالله منشی (منشی بهرام‌شاه غزنوی) آن را به زبان فارسی ترجمه کرد. این ترجمه ترجمه‌ای آزاد است و نصرالله هرجا لازم دانسته‌است ابیات و امثال بسیار از خود و دیگران آورده‌است. ترجمهٔ نصرالله منشی همان ترجمه‌ای است که از آن به عنوان کلیله و دمنه در زبان فارسی یاد می‌شود. گاه نیز آن را کلیله و دمنهٔ بهرامشاهی خوانند.

ترجمهٔ دیگری که تقریباً مقارن با زمان نصرالله منشی صورت گرفته اما کمتر شناخته‌شده‌است توسط محمد بن عبدالله بخاری است که منشی دربار اتابکان موصل بود. برخلاف نصرالله منشی محمد بخاری به عبارت‌پردازی نپرداخته و کاملاً به متن اصلی وفادار مانده‌است. خود این موضوع را تصریح کرده‌است*[3]

البته پس از رودکی و پیش از این دو تن نیز ترجمه‌های زیادی از این اثر صورت گرفته بود ولی هیچ‌یک به دست ما نرسیده‌است. نصرالله منشی خود در دیباچهٔ ترجمه‌اش به این موضوع اشاره کرده‌است.*[4]

آخرین تحریر کلیله و دمنه متعلق است به ابوالفضل علّامی ادیب پارسی‌گوی هندی. نثر این اثر روان و صحیح است. علامی به این ترجمه نام عیاردانش داده‌است. [5]

ترجمه از سانسکریت به فارسی

این نکته نیز جالب توجه‌است که یکبار نیز به فرمان پادشاه ادب‌دوست هند اکبر شاه همایون کتاب پنجه تنتره مستقیماً از سنسکریت به فارسی ترجمه شده‌است. مسئول این ترجمه شخصی بود به نام مصطفی خالقداد عباسی. به گفتهٔ او «حکم شد که هرچه خشک و تر در آن کتاب باشد به همان ترتیب رقم نماید تا قدر تفاوت اصل سخن و ترتیب آن و زیادتی و نقصان ظاهر گردد.» [6]

بازنویسی از فارسی به فارسی

ملا حسین کاشفی در قرن دهم هجری تصنیفی (بازنویسی‌ای) از روی کلیلهٔ بهرامشاهی ترتیب داد و نام اثر را انوار سهیلی گذاشت.

بابهای کلیله و دمنه

پیشتر گفتار ابن ندیم پیرامون بابهای کلیله و دمنه ذکر شد. در ترجمهٔ سریانی‌ای که از روی متن پهلوی صورت گرفته‌است کلیله و دمنه ده باب است:[7]باب شیر و گاو

باب کبوتر و طوق‌دار

باب بوزینه و سنگ‌پشت

باب بی‌تدبیری

باب موش و گربه

باب بوم و زاغ

باب شاه و پنزوه

باب تورگ (شغال)

باب بلاد و برهمنان

باب شاه موشان و وزیرانش

در کلیله و دمنهٔ نصرالله منشی، در فصل مقدمهٔ ابن مقفع آمده‌است که کلیله و دمنه پانزده باب است و در اصل کتاب که متعلق به هندیان بوده‌است ۱۰ باب بوده‌است و پارسیان پنج باب دیگر به آن افزوده‌اند.[8] بابهای با اصل هندی به صورت زیر ذکر شده‌است:الأسد و الثَّور

الفحص عن امر دمنة

الحمامة المطوّقة

البوم و الغربان

الملک و الطّایر فَنزة

السِّنَّور و الجُرَذ

الاسد و ابن آویٰ

القِرْد و السُّلَحْفاة

الأسوارِ و اللَّبْوَة

الناسک و الضَّیف

بابهای الحاقی پارسیان از قرار زیر است:برزویة الطبیب

الناسَکَ و ابنِ عِرْس

البلار و البراهمة

السّائِحِ و الصّائِغ

ابن المَلِک و أصحابِه

پانویس

1- ^ خانلری ۱۳.

2- ^ ابن ندیم (فن اول از مقالهٔ هشتم) ۵۴۲.

3- ^ «و هرچند که خاطر در زیادت بسی یاری می‌داد، اما بر موجب فرمان عالی اعلاه‌الله بر عین کتاب اختصار کرده آمد...» (بخاری ۳۸)

4- ^ «و این کتاب را پس از ترجمهٔ ابن‌المقفع و نظمِ رودکی ترجمها کرده‌اند و هرکس در میدانِ بیان براندازهٔ مجال خود قدمی گزارده‌اند.» (منشی ۲۵)

5- ^ صفا ۶۲۰.

6- ^ خانلری ۱۳-۱۴.

7- ^ خانلری ۱۴-۱۵

8- ^ منشی ۳۷-۳۸.



خرید و دانلود  کلیله و دمنه  4 ص


تحقیق در مورد ماشینهای همزمانی 14 ص با فرمت ورد

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

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

 

5.4 – همزمانی

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

برای چند پردازنده های کوچکتر یا وضعیت رقابتی پایینتر،قابلیت کلید سخت افزاری در یک دستور بی‌وفقه یا ترتیب و توالی دستور در بازیابی ذره وار(اتمیک) و تغییر یک مقدار است و مکانیزم همزمانی نرم افزاری این توانایی را می سازد در این بخش ما روی پیاده سازی عملیات همزمانی،باز کردن و قفل کردن تمرکز می کنیم.

Locl وunlock می توانند بطور مستقیم در یک ممانعت متقابل بکار روند،همچنین در بکار بردن مکانیزمهای همزمانی پیچیده تر.

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

اسانس سخت افزار اولیه

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

بطور کلی در این معماری نمی توان انتظار داشت که کاربران روی سخت افزار اولیه کار کنند اما در عوض انتظار می رود که از سیستمهای برنامه نویسی برای ساخت یک کتابخانه همزمانی استفاده شود که معمولاً یک پردازش پیچیده است.

حال بحث را با یک سخت افزار اولیه و چگونگی عملیات همزمانی برای آن شروع می کنیم یکی از انواع عملیات همزمانی مبادله اتمی (atomic exchanye) است که ارزش یک رجیستر را با حافظه عوض می کند حال ببینیم چگونه از این عملیات همزمانی استفاده کنیم. فرض می کنیم که می خواهیم یک قفل ساده بسازیم و در آن با ارزش 0صفر نشان می دهیم که قفل آزاد است و با 1 نشان می دهیم که غیر قابل استفاده است در رجیستر و حافظه آدرس مطابق قفل است دستور emchanye 1 را برمی گرداند اگر پردازنده قبلاً دستیابی شده و در غیر اینصورت 5 را برمی گرداند. در حالت دیگر آن مقدار با 1 تغییر می کند و با حصول0 صفر از هر تغییری جلوگیری می کند. بطور مثال فرض می کنیم دو پردازنده داریم که هر یک تلاش می کند همزمانی را عوض کند این رقابت وقتی تمام می شود . که یکی از پردازنده ها تغییر را انجام می دهد و 0 را برگرداند و در اینصورت پردازنده دوم 1 را باز خواهد گرداند آن کلید از مبادله اولیه برای اجدا کردن همزمانی در عملیات اتمیک استفاده می کند. آن مبادله غیرقابل تقسیم است و دو مبادله همزمان با نوشتن مکانیزمهای پشت سرهم (سریالی ) مرتب می شود.

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

در حال حاضر یکی از عملیاتی که در چند پردارنده های قدیمی استفاده می شود تست کردن و نشاندن است (test-and-set) که یک مقداررا تست می کند و اگر آن مقدار توسط آن تست تصویب شد آن را قرار می دهد. برای مثال ما می توانیم عملیاتی را تعریف کنیم که برای 0 تست شده و در آن ارزش 1 قرار گرفته.نوع دیگر از همزمانی اتمیک او fetch a increment است که ارزش محل حافظه و افزایش ذره ای را برمیگرداند وجود 0 نشان می دهد که متغیر همزمانی مطالبه نشده و ما می توانیم از fe tch a increment فقط در مبادله استفاده کنیم کاربردهای دیگری از عملیات وجود دارد مشابه fetch a increment که مختصراً به آنها خواهیم پرداخت. دستورات بی وقفه در اجرای عملیات حافظه اتمیک،زمانیکه به هر دو حافظه خواندنی و نوشتنی نیاز است یکسری رقابتها را مطرح می کند. پیچیدگی که در کاربرد آن است مربوط به زمانیست که سخت افزار هیچ عملیات دیگری را در بین خواندن و نوشتن نمی تواند انجام دهد و منجر به بن بست می شود.

یک تبدیلی در یک جفت دستور است زمانیکه دومین دستور ارزشی را برمی گرداند و می توان نتیجه گرفت که اگر اتمیک بود آیا آن جفت دستور اجرا می شد و زمانی آن جفت دستور مؤثر هستند که هیچ پردازنده دیگری ارزش را در بین آن جفت دستور تغییر ندهد.

این جفت دستور یک load ویژه است که lood locked , load linked را شامل می شود و دستور دیگر یک store ویژه است که store conditianad نامیده می شود این دستورات بترتیب استفاده می شوند:اگر محتویات مکان حافظه با load liaked مشخص شود آن قبل از دستور store condionad که با آدرس یکسان رخ داده تغییر پیدا می کند. پس دستور store شرطی از بین می رود و اگر پردازنده یک سوئیچ میان آن دو دستور انجام دهد باز هم store شرطی از بین می رود.

دستور store شرطی اگر انجام شود 2 را باز می گرداند در غیر اینصورت 0 را برمی گرداند و تنها زمانی عملیات موفقیت آمیز است که load linked مقدار اولیه نرا برگرداند و store شرطی هم مقدار 1 را بازگرداند. رشته زیر یک مبادله اتمیک را روی مکان حافظه مشخص شده بوسیله R1 انجام می دهد:

try:Mov R3,R4 :Mov of value exchange

LL R2,0(R1) :loud linked

Sc R3,0(R1) :store condi tionad

BEQZ R3,try :branch store fails

Mov R4,R2 :put lood value in R4

در پایان این رشته،محتویات R4 و مکان حافظه با R1 مشخص می شود(با نادیده گرفتن هر اثری از branch های به تأخیر افتاده).

در هر زمان یک پردازنده مداخله می کند و مقدار حافظه را میان دستورات LL و SC تغییر می دهد sc مقدار 0 را در R3 می گذارد و باعث ترتیب که برای try می شود. یک مزیت مکانیزمهای LL/SC این است که می توانند برای ساخت همزمانیهای اولیه دیگر استفاده شوند. به عنوان مثال در زیر به یک fetch

8increment اتمیک اشاره می شود:

try: LL R2.0(R1) :load linked

DADUI R3,R2,#1 :i increment

SC R3,0(R1) :store conditionad

BEQZ R3,try :branch store fails

این دستورات بوسیله نگهداری خط آدرس مشخص شده اجرا می شوند برای دستور LL اگر یک وقفه رخ دهد یا اگر بلوک کش تطابق پیدا کند آدرس در link registet از بین می رود (مثلاً به وسیله یک SC دیگر) دستور SC براحتی آدرس خود در لینک رجیستر را بررسی می کند اگر بود در اینصورت SC موفقیت آمیز بوده در غیر اینصورت از بین رفته.

زمانیکه SC از بین می رود بعد از دستور store ناتمام به آدرس LL باید در انتخاب دستورات جایگزین شده بین این دو دستور دقت کنیم که دستورات رجیستر در آن مجاز به استفاده بوده و بدون خطرند،غیر از این ممکن است بن بست بوجود آید(زمانیکه آن پردازنده نمی تواند دستور scsc را کامل کند) همچنین تعداد دستورات میان S C.LL باید کم باشد چون امتحان رخداد غیرمنتظره یا تکرار خرابی SC وجود دارد.

اجرای قفلهای به هم پیوسته



خرید و دانلود تحقیق در مورد ماشینهای همزمانی  14 ص با فرمت ورد


تحقیق در مورد ماشینهای همزمانی با فرمت ورد

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

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

 

5.4 – همزمانی

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

برای چند پردازنده های کوچکتر یا وضعیت رقابتی پایینتر،قابلیت کلید سخت افزاری در یک دستور بی‌وفقه یا ترتیب و توالی دستور در بازیابی ذره وار(اتمیک) و تغییر یک مقدار است و مکانیزم همزمانی نرم افزاری این توانایی را می سازد در این بخش ما روی پیاده سازی عملیات همزمانی،باز کردن و قفل کردن تمرکز می کنیم.

Locl وunlock می توانند بطور مستقیم در یک ممانعت متقابل بکار روند،همچنین در بکار بردن مکانیزمهای همزمانی پیچیده تر.

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

اسانس سخت افزار اولیه

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

بطور کلی در این معماری نمی توان انتظار داشت که کاربران روی سخت افزار اولیه کار کنند اما در عوض انتظار می رود که از سیستمهای برنامه نویسی برای ساخت یک کتابخانه همزمانی استفاده شود که معمولاً یک پردازش پیچیده است.

حال بحث را با یک سخت افزار اولیه و چگونگی عملیات همزمانی برای آن شروع می کنیم یکی از انواع عملیات همزمانی مبادله اتمی (atomic exchanye) است که ارزش یک رجیستر را با حافظه عوض می کند حال ببینیم چگونه از این عملیات همزمانی استفاده کنیم. فرض می کنیم که می خواهیم یک قفل ساده بسازیم و در آن با ارزش 0صفر نشان می دهیم که قفل آزاد است و با 1 نشان می دهیم که غیر قابل استفاده است در رجیستر و حافظه آدرس مطابق قفل است دستور emchanye 1 را برمی گرداند اگر پردازنده قبلاً دستیابی شده و در غیر اینصورت 5 را برمی گرداند. در حالت دیگر آن مقدار با 1 تغییر می کند و با حصول0 صفر از هر تغییری جلوگیری می کند. بطور مثال فرض می کنیم دو پردازنده داریم که هر یک تلاش می کند همزمانی را عوض کند این رقابت وقتی تمام می شود . که یکی از پردازنده ها تغییر را انجام می دهد و 0 را برگرداند و در اینصورت پردازنده دوم 1 را باز خواهد گرداند آن کلید از مبادله اولیه برای اجدا کردن همزمانی در عملیات اتمیک استفاده می کند. آن مبادله غیرقابل تقسیم است و دو مبادله همزمان با نوشتن مکانیزمهای پشت سرهم (سریالی ) مرتب می شود.

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

در حال حاضر یکی از عملیاتی که در چند پردارنده های قدیمی استفاده می شود تست کردن و نشاندن است (test-and-set) که یک مقداررا تست می کند و اگر آن مقدار توسط آن تست تصویب شد آن را قرار می دهد. برای مثال ما می توانیم عملیاتی را تعریف کنیم که برای 0 تست شده و در آن ارزش 1 قرار گرفته.نوع دیگر از همزمانی اتمیک او fetch a increment است که ارزش محل حافظه و افزایش ذره ای را برمیگرداند وجود 0 نشان می دهد که متغیر همزمانی مطالبه نشده و ما می توانیم از fe tch a increment فقط در مبادله استفاده کنیم کاربردهای دیگری از عملیات وجود دارد مشابه fetch a increment که مختصراً به آنها خواهیم پرداخت. دستورات بی وقفه در اجرای عملیات حافظه اتمیک،زمانیکه به هر دو حافظه خواندنی و نوشتنی نیاز است یکسری رقابتها را مطرح می کند. پیچیدگی که در کاربرد آن است مربوط به زمانیست که سخت افزار هیچ عملیات دیگری را در بین خواندن و نوشتن نمی تواند انجام دهد و منجر به بن بست می شود.

یک تبدیلی در یک جفت دستور است زمانیکه دومین دستور ارزشی را برمی گرداند و می توان نتیجه گرفت که اگر اتمیک بود آیا آن جفت دستور اجرا می شد و زمانی آن جفت دستور مؤثر هستند که هیچ پردازنده دیگری ارزش را در بین آن جفت دستور تغییر ندهد.

این جفت دستور یک load ویژه است که lood locked , load linked را شامل می شود و دستور دیگر یک store ویژه است که store conditianad نامیده می شود این دستورات بترتیب استفاده می شوند:اگر محتویات مکان حافظه با load liaked مشخص شود آن قبل از دستور store condionad که با آدرس یکسان رخ داده تغییر پیدا می کند. پس دستور store شرطی از بین می رود و اگر پردازنده یک سوئیچ میان آن دو دستور انجام دهد باز هم store شرطی از بین می رود.

دستور store شرطی اگر انجام شود 2 را باز می گرداند در غیر اینصورت 0 را برمی گرداند و تنها زمانی عملیات موفقیت آمیز است که load linked مقدار اولیه نرا برگرداند و store شرطی هم مقدار 1 را بازگرداند. رشته زیر یک مبادله اتمیک را روی مکان حافظه مشخص شده بوسیله R1 انجام می دهد:

try:Mov R3,R4 :Mov of value exchange

LL R2,0(R1) :loud linked

Sc R3,0(R1) :store condi tionad

BEQZ R3,try :branch store fails

Mov R4,R2 :put lood value in R4

در پایان این رشته،محتویات R4 و مکان حافظه با R1 مشخص می شود(با نادیده گرفتن هر اثری از branch های به تأخیر افتاده).

در هر زمان یک پردازنده مداخله می کند و مقدار حافظه را میان دستورات LL و SC تغییر می دهد sc مقدار 0 را در R3 می گذارد و باعث ترتیب که برای try می شود. یک مزیت مکانیزمهای LL/SC این است که می توانند برای ساخت همزمانیهای اولیه دیگر استفاده شوند. به عنوان مثال در زیر به یک fetch

8increment اتمیک اشاره می شود:

try: LL R2.0(R1) :load linked

DADUI R3,R2,#1 :i increment

SC R3,0(R1) :store conditionad

BEQZ R3,try :branch store fails

این دستورات بوسیله نگهداری خط آدرس مشخص شده اجرا می شوند برای دستور LL اگر یک وقفه رخ دهد یا اگر بلوک کش تطابق پیدا کند آدرس در link registet از بین می رود (مثلاً به وسیله یک SC دیگر) دستور SC براحتی آدرس خود در لینک رجیستر را بررسی می کند اگر بود در اینصورت SC موفقیت آمیز بوده در غیر اینصورت از بین رفته.

زمانیکه SC از بین می رود بعد از دستور store ناتمام به آدرس LL باید در انتخاب دستورات جایگزین شده بین این دو دستور دقت کنیم که دستورات رجیستر در آن مجاز به استفاده بوده و بدون خطرند،غیر از این ممکن است بن بست بوجود آید(زمانیکه آن پردازنده نمی تواند دستور scsc را کامل کند) همچنین تعداد دستورات میان S C.LL باید کم باشد چون امتحان رخداد غیرمنتظره یا تکرار خرابی SC وجود دارد.

اجرای قفلهای به هم پیوسته



خرید و دانلود تحقیق در مورد ماشینهای همزمانی با فرمت ورد


تحقیق در مورد گزارش کارآزمایشگاه فیزیک 4 ص با فرمت ورد

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

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

 

 

گزارش کارآزمایشگاه فیزیک

آزمایش شماره(3):

قانون ارشمیدس

استاد مربوطه:

جناب آقای ابراهیمی راد

دانشجویان:

عبدالله عرب عامری

مهران زبیعی

ساعت انجام آزمایش:

11:15

مقدمه

قانون ارشمیدس:هرگاه برهرجسم(کمی یا کاملا)غوطه وردرسیال معادل وزن سیال جا بجاشده نیروواردشودهمواره وزن جسم بطرف پائین ونیروی شناوری سیال به طرف بالا ظاهر می شود.هرگاه این دونیروبا هم برابرباشند(مانندکشتی روی آب)جسم روی سیال شناور خواهدشد.F=W واگرنیروی وزن بیشتری ازنیروی شناوری سیال (مانندسنگ درآب)باشدجسم کاملا درسیال فروخواهدرفت.F<W

هدف آزمایش:اندازه گیری چگالی مایعات وجامدات بااستفاده ازقانون ارشمیدس

وسایل مورد نیاز:1-گیره پایه دار2-استوانه ارشمیدس3-استوانه مدرج4-ترازو5-جعبه وزنه6-قطعه چوب به شکل مکعب مستطیل7-ظرف آب8-خط کش9-الکل

شرح آزمایشات:

آزمایش شماره1:

ابتدااستوانه مدرج راتا حجم( V1)آب ریخته وسپس آنراوزن می کنیم(M1)حال استوانه ارشمیدس را به آرامی در داخل استوانه مدرج قرارمی دهیم سپس دوباره حجم آب داخل استوانه مدرج(V2)وجرم آن(M2)رااندازه گیری می کنیم.حال با استفاده ازرابطه زیر چگالی آب را محاسبه می کنیم:

M2=706.5gr M1=686gr

V2=370ml V1=350ml

P=m2-m1/v2-v1=706.5-686/370-350=1.025 gr/cm3

آزمایش شماره2:

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

M1=561gr M2=577gr

V1=250ml V2=270ml

P=m2-m1/v2-v1=577-561/270-250=0.8gr/cm3

 

آزمایش شماره3:

ابتداارتفاع قطعه چوب مکعب مستطیل شکل را با استفاده ازخط کش اندازه می گیریم(h).سپس آنرابه آرامی داخل ظرف آب قرارمی دهیم.سپس چوب راازداخل ظرف بیرون آورده وارتفاعی را که چوب خیس شده رابا خط کش اندازه می گیریم(d).به کمک رابطه زیرچگالی چوب رامحاسبه می کنیم:

h=2.7cm d=1.8cm pw=1gr/cm3

pw*d/h=1*1.8/2.7=0.667gr/cm3 p=

 

نتیجه آزمایش:

چگالی آب حدود1gr/cm3 وچگالی الکل حدود0.85gr/cm3 وچگالی چوب حدود0.67gr/cm3 می باشد.

 

پاسخ سوالات آزمایش:

ج1- با داشتن حجم وچگالی سیال وداشتن حجم جسم موردنظرمی توان چگالی آن راازرابطهP1V1=P2V2 بدست آورد.

ج2-بافرض ثابت بودن چگالی وحجم می توان با تغییرمکان مثلا ازاستوابه قطب(با تغییربو)مقدارنیروی ارشمیدس راافزایش داد.



خرید و دانلود تحقیق در مورد گزارش کارآزمایشگاه فیزیک 4 ص با فرمت ورد


ماشینهای همزمانی 14 ص

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

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

 

5.4 – همزمانی

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

برای چند پردازنده های کوچکتر یا وضعیت رقابتی پایینتر،قابلیت کلید سخت افزاری در یک دستور بی‌وفقه یا ترتیب و توالی دستور در بازیابی ذره وار(اتمیک) و تغییر یک مقدار است و مکانیزم همزمانی نرم افزاری این توانایی را می سازد در این بخش ما روی پیاده سازی عملیات همزمانی،باز کردن و قفل کردن تمرکز می کنیم.

Locl وunlock می توانند بطور مستقیم در یک ممانعت متقابل بکار روند،همچنین در بکار بردن مکانیزمهای همزمانی پیچیده تر.

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

اسانس سخت افزار اولیه

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

بطور کلی در این معماری نمی توان انتظار داشت که کاربران روی سخت افزار اولیه کار کنند اما در عوض انتظار می رود که از سیستمهای برنامه نویسی برای ساخت یک کتابخانه همزمانی استفاده شود که معمولاً یک پردازش پیچیده است.

حال بحث را با یک سخت افزار اولیه و چگونگی عملیات همزمانی برای آن شروع می کنیم یکی از انواع عملیات همزمانی مبادله اتمی (atomic exchanye) است که ارزش یک رجیستر را با حافظه عوض می کند حال ببینیم چگونه از این عملیات همزمانی استفاده کنیم. فرض می کنیم که می خواهیم یک قفل ساده بسازیم و در آن با ارزش 0صفر نشان می دهیم که قفل آزاد است و با 1 نشان می دهیم که غیر قابل استفاده است در رجیستر و حافظه آدرس مطابق قفل است دستور emchanye 1 را برمی گرداند اگر پردازنده قبلاً دستیابی شده و در غیر اینصورت 5 را برمی گرداند. در حالت دیگر آن مقدار با 1 تغییر می کند و با حصول0 صفر از هر تغییری جلوگیری می کند. بطور مثال فرض می کنیم دو پردازنده داریم که هر یک تلاش می کند همزمانی را عوض کند این رقابت وقتی تمام می شود . که یکی از پردازنده ها تغییر را انجام می دهد و 0 را برگرداند و در اینصورت پردازنده دوم 1 را باز خواهد گرداند آن کلید از مبادله اولیه برای اجدا کردن همزمانی در عملیات اتمیک استفاده می کند. آن مبادله غیرقابل تقسیم است و دو مبادله همزمان با نوشتن مکانیزمهای پشت سرهم (سریالی ) مرتب می شود.

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

در حال حاضر یکی از عملیاتی که در چند پردارنده های قدیمی استفاده می شود تست کردن و نشاندن است (test-and-set) که یک مقداررا تست می کند و اگر آن مقدار توسط آن تست تصویب شد آن را قرار می دهد. برای مثال ما می توانیم عملیاتی را تعریف کنیم که برای 0 تست شده و در آن ارزش 1 قرار گرفته.نوع دیگر از همزمانی اتمیک او fetch a increment است که ارزش محل حافظه و افزایش ذره ای را برمیگرداند وجود 0 نشان می دهد که متغیر همزمانی مطالبه نشده و ما می توانیم از fe tch a increment فقط در مبادله استفاده کنیم کاربردهای دیگری از عملیات وجود دارد مشابه fetch a increment که مختصراً به آنها خواهیم پرداخت. دستورات بی وقفه در اجرای عملیات حافظه اتمیک،زمانیکه به هر دو حافظه خواندنی و نوشتنی نیاز است یکسری رقابتها را مطرح می کند. پیچیدگی که در کاربرد آن است مربوط به زمانیست که سخت افزار هیچ عملیات دیگری را در بین خواندن و نوشتن نمی تواند انجام دهد و منجر به بن بست می شود.

یک تبدیلی در یک جفت دستور است زمانیکه دومین دستور ارزشی را برمی گرداند و می توان نتیجه گرفت که اگر اتمیک بود آیا آن جفت دستور اجرا می شد و زمانی آن جفت دستور مؤثر هستند که هیچ پردازنده دیگری ارزش را در بین آن جفت دستور تغییر ندهد.

این جفت دستور یک load ویژه است که lood locked , load linked را شامل می شود و دستور دیگر یک store ویژه است که store conditianad نامیده می شود این دستورات بترتیب استفاده می شوند:اگر محتویات مکان حافظه با load liaked مشخص شود آن قبل از دستور store condionad که با آدرس یکسان رخ داده تغییر پیدا می کند. پس دستور store شرطی از بین می رود و اگر پردازنده یک سوئیچ میان آن دو دستور انجام دهد باز هم store شرطی از بین می رود.

دستور store شرطی اگر انجام شود 2 را باز می گرداند در غیر اینصورت 0 را برمی گرداند و تنها زمانی عملیات موفقیت آمیز است که load linked مقدار اولیه نرا برگرداند و store شرطی هم مقدار 1 را بازگرداند. رشته زیر یک مبادله اتمیک را روی مکان حافظه مشخص شده بوسیله R1 انجام می دهد:

try:Mov R3,R4 :Mov of value exchange

LL R2,0(R1) :loud linked

Sc R3,0(R1) :store condi tionad

BEQZ R3,try :branch store fails

Mov R4,R2 :put lood value in R4

در پایان این رشته،محتویات R4 و مکان حافظه با R1 مشخص می شود(با نادیده گرفتن هر اثری از branch های به تأخیر افتاده).

در هر زمان یک پردازنده مداخله می کند و مقدار حافظه را میان دستورات LL و SC تغییر می دهد sc مقدار 0 را در R3 می گذارد و باعث ترتیب که برای try می شود. یک مزیت مکانیزمهای LL/SC این است که می توانند برای ساخت همزمانیهای اولیه دیگر استفاده شوند. به عنوان مثال در زیر به یک fetch

8increment اتمیک اشاره می شود:

try: LL R2.0(R1) :load linked

DADUI R3,R2,#1 :i increment

SC R3,0(R1) :store conditionad

BEQZ R3,try :branch store fails

این دستورات بوسیله نگهداری خط آدرس مشخص شده اجرا می شوند برای دستور LL اگر یک وقفه رخ دهد یا اگر بلوک کش تطابق پیدا کند آدرس در link registet از بین می رود (مثلاً به وسیله یک SC دیگر) دستور SC براحتی آدرس خود در لینک رجیستر را بررسی می کند اگر بود در اینصورت SC موفقیت آمیز بوده در غیر اینصورت از بین رفته.

زمانیکه SC از بین می رود بعد از دستور store ناتمام به آدرس LL باید در انتخاب دستورات جایگزین شده بین این دو دستور دقت کنیم که دستورات رجیستر در آن مجاز به استفاده بوده و بدون خطرند،غیر از این ممکن است بن بست بوجود آید(زمانیکه آن پردازنده نمی تواند دستور scsc را کامل کند) همچنین تعداد دستورات میان S C.LL باید کم باشد چون امتحان رخداد غیرمنتظره یا تکرار خرابی SC وجود دارد.

اجرای قفلهای به هم پیوسته



خرید و دانلود  ماشینهای همزمانی  14 ص