از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
هشت سال پیش منتشر شده
تعداد بازدید: 663
کد پروژه: 38505
شرح پروژه
الف. چند نخ معمولي(دست کم ۵ نخ) در پايتون تعريف کنيد که چندين منبع (دست کم ۱۰ منبع) را اشتراکي به کار بگيرند و هر منبع يک يا چند نمونه (عدد تصادفي ميان ۱ تا ۵) را داشته باشد. نخ ديگري وجود داشته باشد که مانند تخصيص دهندهي منبع کار ميکند به اين ترتيب که موازي با ديگر نخها کار ميکند و اگر فرآيندي منبعي خواست از اين فرآيند درخواست ميکند و فرآيند درخواست دهنده خود را با کمک يک راهنما (دست کم هر فرآيند يک راهنما خواهد داشت) مسدود ميکند و وقتي تخصيص دهنده ديد که منبع وجود دارد از تعداد نمونههاي منبع خواسته شده (avaiable) به تعداد درخواست شده کم ميکند و راهنماي فرآيندي که درخواست داده و خود را مسدود کرده است آزاد ميکند تا فرايند بتواند منبعهاي خواسته شده را دريافت کند. در واقع فرآيندها يا نخهاي ياد شده داراي يک حلقه بينهايت هستند که هر کدام در حلقهي خود به تعداد تصادفي از منبعها درخواست ميکنند باز به صورت تصادفي منبعهايي را که دارند آزاد ميکنند و البته حساب و کتاب اين که چه منابعي را دارند نگه ميدارند. به همين ترتيب نخي براي آزاد کردن نياز است و اين دو نخ (تخصيص دهنده و آزاد کننده) به طور کامل حساب و کتاب منابع موجود را نگهداري ميکنند. اين دو نخ بايد براي کارهايشان با هم هماهنگ باشند تا دسترسي و تغيير در ماتريسها و بردارهاي منابع با مشکلي روبرو نشود و دسترسي همزمان به آنها مشکل ايجاد نکند. دقت کند که ديگر نخها (نخهاي فرآيندهاي معمولي با حلقهي بينهايت از درخواستها و آزاد کردن منبعهايي که گرفتهاند) هر کدام اطلاعات منابع خود را جداگانه دارند و به اطلاعات کلي ماتريسهاي منابع و تخصيص دسترسي ندارد. نخ ديگري نيز مانند دو نخ تخصيص دهنده و آزاد کننده تعريف کنيد که همواره از ورودي منتظر گرفتن فرمان از کاربر است و اگر کاربر عدد صفر را وارد کرد يعني برنامه و همهي نخهايش به پايان برسد و اگر کاربر يک را وارد کرد آنگاه وضعيت آرايههاي منابع و موجود و همچنين ماتريسهاي تخصيص منبع و درخواست را نمايش دهد.(يک نمره)
ب. به جاي اين که نخهاي معمولي تعداد تصادفي داشته باشند و تعداد منابع و شکل گرفتن منابعي که ميگيرند به صورت تصادفي باشد اطلاعات تعداد نخ معمولي و ترتيب و تعداد گرفتن منبعها و آزاد کردنشان را از يک پرونده که به نوعي سناريوي اجراي آنها است بگيرد و بر پايهي اين سناريوي از پيش تعريف شده برنامه اجرا شود. دست کم چهار سناريو نوشته شود که دو حالت آنها به بن بست برسد تعداد نخهاي معمولي دست کم چهار باشد و دست کم هر فرايند چند منبع گرفته باشد. البته اين سناريوهاي اجرا ميتواند کد هم شود(نيم نمره)
ج. نخي که از کاربر عدد ميگيرد اگر عدد ۳ را از کاربر گرفت وجود بن بست را بررسي کند و اگر بن بست وجود داشت آن را گزارش دهد و با گرفتن منبع از نخهاي معمولي بن بست را از ميان ببرد البته بايد به نوعي به نخهايي که منبعي از آنها گرفته ميشود خبر داده شود که بدانند اين منبع يا منبعها به زور از آنها گرفته شده است. يا اين که نخهاي درگير در بن بست را نابود کند(نيم نمره)
زیرساخت:
Python 3.4.3
قابل تحویل:
مهارت ها و تخصص های مورد نیاز
بودجه
5,000 تومان تا 100,000 تومان
مهلت برای انجام
3روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت هشت سال پیش
قادر به انجام این پروژه هستید؟
مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار