دروس رشته کامپیوتر

barber

مسئله آرایشگر خوابیده

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

عمومی کامپیوتر

Intel-Haswell-EP-Xeon-E5-2600-V3-Processors-635x407

چهار پردازنده بر روی یک بورد! Intel Xeon E5 4600 v3

Intel Xeon E5 نام سری پردازنده هایی است که به عنوان بالاترین رده پردازنده های اینتل شناخته می شود و ...

چهار پردازنده بر روی یک بورد! Intel Xeon E5 4600 v3

Intel Xeon E5 نام سری پردازنده هایی است که به عنوان بالاترین رده پردازنده های اینتل شناخته می شود و مدت های طولانی توانسته است بی رقیب باشد. ما از این سری و از خانواده Haswell-EP در سال جاری میلادی نسخه ای با نام Haswell-EP V2 را شاهد بودیم که می تواند از یک یا دو پردازنده در هر بورد پشتیبانی نماید. اما Haswell-EP V3 چطور؟Intel-Haswell-EP-Xeon-E5-2600-V3-Processors-635x407

به نظر می رسد که نسل سوم خاندان، از قرار معلوم در نیمه دوم سال ۲۰۱۵ میلادی عرضه و توانایی آن را خواهد داشت که از چهار پردازنده بر روی یک بورد پشتیبانی نماید. ۲۰۱۵ ، سالی که برای اینتل و بر مبنای خبرهایی که در گذشته از سوی این شرکت و پردازنده هایش منتشر شده است، سالی پربار به نظر می رسد.

در این نسل ما شاهد تغییراتی چند از قبیل افزایش تعداد هسته ها در کنار افزایش مقدار حافظه کش سطح سوم و همچنین دارا بودن کنترلر حافظه DDR4 خواهیم بود. همچنین در این نسل دستورالعمل های FMA و AVX2 نیز پشتیبانی خواهند شد و چیپ ست در نظر گرفته شده نیز C610 می باشد. از طرف دیگر و به استناد خبرهای منتشر شده، اینتل چهار رده برای پردازنده های خود در نظر گرفته است. اولین رده که در واقع پایین ترین رده به حساب می آید، ما پردازنده Xeon E5-4610 v3 را می بینیم و در رده بالاتر از آن یعنی رده میانی، ما شاهد دو پردازنده هستیم، یکی E5-4620 v3 و دیگری E5-4640 v3. در رده سوم که در واقع رده پردازنده های سطح بالا می باشد باز هم دو پردازنده خودنمایی می کنند! Xeon E5-4650 v3 و E5-4660 v3 .

اما رده چهارم پردازنده هایی را در بر می گیرد که بهینه سازی شده اند و چهار پردازنده با نام های E5-4627 v3 , E5-4655 v3, E5-4667 v3 و E5-4669 v3 ، در این رده قرار می گیرند.

از دیگر مشخصات این نسل نیز می توان به پشتیبانی از حافظه های نسل چهارم با فرکانس کاری ۲۱۳۳ MHz و همچنین برخوراری از ۴۰ مسیر PCI-E نسل سوم در کنار پشتیبانی از سوکت LGA 2011-3 اشاره کرد. مصرف توان در نظر گرفته شده نیز چیزی ما بین ۷۰W تا ۱۴۵ به استثنای مصرف ۱۶۰W پردازنده های رده بالا خواهد بود.Capture

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

منبع: شهر سخت افزار

سرعت ۹۵ مگابایت در ثانیه در نسل جدید کارت‌های حافظه مقاوم اپیسر UHS-I U3

SD

اپیسر جدیدترین کارت‌های حافظه با استاندارد ذخیره‌سازی UHS-I U3 را معرفی کرده است. این‌سری از کارت‌های حافظه از گروه کارت‌های SDXC و microSDHC بوده و برای حرفه‌ای‌های عکاسی و تصویربرداری و کسانی که سرعت‌بالای ذخیره‌سازی در تبلت‌ها و گوشی‌های هوشمند برایشان مهم است، طراحی و ساخته‌ شده است.

استفاده از استاندارد UHS-I U3 در انتقال اطلاعات، باعث شده تا سرعت خواندن و نوشتن به ترتیب به ۹۵ و ۸۵ مگابایت در ثانیه برسد. سرعت بالای انتقال اطلاعات در کنار حداکثر ظرفیت ۱۲۸ گیگابایت، علاقه‌مندان به فیلم‌برداری سه‌بعدی یا فیلم‌برداری با رزولوشن ۴K که حجم زیادی از فضای ذخیره‌سازی را می‌طلبد، باعث شده تا این سری از کارت‌های حافظه گزینه‌ای ایده‌آل برای کاربران ابزارهای پیشرفته امروزی باشد. علاوه بر سرعت و ظرفیت بسیار بالا، کارت‌های حافظه جدید Apacer UHS-I U3 برای استفاده در شرایط دشوار نیز آبدیده هستند که باعث می‌شود حیطه استفاده از این سری محصولات افزایش یابد.

SD

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

استفاده از استاندارد جدید SDXC باعث شده تا اپیسر بتواند حجم این‌سری از کارت‌های حافظه را به ۱۲۸ گیگابایت افزایش دهد. تمامی دستگاه‌ها و ابزارهایی که توانایی پشتیبانی از این استاندارد را دارند، می‌توانند کارت‌های حافظه جدید اپیسر را شناسایی کرده و از ظرفیت بالا و سرعت انتقال اطلاعات بالای آن بهره‌مند شوند.

ماوس هایی برای خوره های بازی رایانه ای

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

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

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

ماوس Corsair Vengeance M65

mouse1

ماوس ونجنس M65 به یک دکمه اختصاصی برای علاقمندان به بازی های تک تیراندازی مجهز شده است. طراحی این ماوس به طور کامل طرفداران بازی های تیر اندازی اول شخص را مد نظر داشته است. میزان DPI تا ۸,۲۰۰ قابل افزایش است که حساسیت لازم برای سرعت عمل و هدف گیری دقیق را فراهم می کند.

ونجنس M65 از هسته آلومینیومی با پنل های پلاستیکی روی آن ساخته شده است. این ماوس از دکمه های قابل برنامه ریزی زیادی برخوردار نیست که می تواند گیمرهای علاقمند به سبک های RTS و MMO را ناامید کند. ونجنس M65 برچسب قیمت ۵۲ دلاری را یدک می کشد.

ماوس Mionix NAOS 7000

mouse2

این ماوس از اندازه بزرگی سود می برد و برای گیمرهای که ماوس خود را با کل کف دست می گیرند گزینه ای ایده آل محسوب می شود. حسگر نوری (اپتیکال) این ماوس از مشکلات مربوط به شتاب که در ماوس های لیزری به واسطه فناوری اصلاح داخلی ایجاد می شوند، رنج نمی برد. سرعت ردیابی این ماوس ۵٫۴۵ میلی ثانیه و DPI آن تا ۷,۰۰۰ قابل تنظیم است. چرخ اسکرول یکی از نقاط ضعف این ماوس ۵۸ دلاری محسوب می شود.

ماوس Razer DeathAdder Chroma

mouse3

ماوس های گیمینگ که از حسگر نوری استفاده می کنند به طور معمول DPI را پایین نگه می دارند زیرا به لطف نسبت حرکت ساده‌تر خود به گشتاور بالا برای انجام وظایف مشابه نیازی ندارند. اما ماوس ریزر دث‌ادر کروما این قاعده را نادیده گرفته و DPI 10,000 را ارائه می کند.

این ماوس از ارگونومی بالایی برخودار است و به خوبی در دست کاربر جای می گیرد. قسمت های لاستیکی کناره های ماوس از لیز خوردن دست جلوگیری می کنند. متاسفانه این ماوس فاقد حافظه داخلی است و ریزر یک سیستم مبتنی بر فضای ابری را ارائه می کند. از این رو، نرم افزار “ریزر سیناپس” را باید هر کجا که ماوس خود را می برید، نصب کنید. ریزر دث‌ادر کروما برچسب قیمت ۶۰ دلاری را یدک می کشد.

ماوس Zowie Gear EC1 Evo CL

mouse4

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

اوو سی‌ال یکی از معدود ماوس های گیمینگ است که به واقع از توانایی پلاگ اند پلی سود می برد و حتی با کروم بوک نیز قابل استفاده است. میزان DPI در سه حالت ۴۵۰، ۱,۱۵۰ و ۲,۳۰۰ قابل تنظیم است. این ماوس ۶۰ دلاری از حسگر نوری سود می برد و چراغ های LED آن قابل خاموش کردن نیستند.

ماوس Razer NAGA

mouse5

ریزر ناگا دارای ۱۹ دکمه قابل برنامه ریزی است و از این رو برای علاقمندان بازی های سبک MMO گزینه ای ایده آل محسوب می شود. حسگر نوری این ماوس با DPI 8,200 تکمیل می شود و از این رو نسبت به واکنش سریع به دستورات کاربر اطمینان حاصل می شود. ریزر ناگا برچسب قیمت ۶۱ دلاری را یدک می کشد.

ماوس Cougar 700M

mouse6

کوگار ۷۰۰M را می توان چاقوی سوئیسی دنیای ماوس های گیمینگ نامید زیرا به طور کامل قابل برنامه ریزی و سفارشی سازی است. کاربران مختلف می توانند اندازه این ماوس را متناسب با نوع گرفتن خود تنظیم کنند تا یک ماشین کشتار را در اختیار داشته باشند!

هشت دکمه قابل برنامه ریزی با یکی از ساده‌ترین و جامع‌ترین رابط های کاربری سفارشی سازی نسبت به هر ماوس گیمینگ دیگر انجام تغییرات نرم افزاری را همانند تغییرات سخت افزاری تسهیل می کنند. کوگار ۷۰۰M به پردازنده ۳۲بیت آرم و فضای ذخیره سازی ۵۱۲ کیلوبایت مجهز شده است. در این ماوس برای علاقمندان به تک تیراندازی یک دکمه اختصاصی اسنایپر تعبیه شده است. کوگار ۷۰۰M برچسب قیمت ۷۰ دلاری را یدک می کشد.

ماوس Logitech G502 Proteus Core

mouse7

هر چه DPI ماوس بالاتر باشد با حرکت های کمتر می توانید بخش بیشتری از نمایشگر را پوشش دهید. اما ماوس گیمینگ لاجیتک G502 پروتئوس میزان DPI را وارد سطح جدیدی کرده و عدد ۱۲,۰۰۰ را ارائه می کند. با استفاده از این ماوس در بازی های تیراندازی نگرانی از بابت چرخش های ۳۶۰ درجه نداشته و یا در نقشه های بزرگ بازی های استراتژی می توانید در یک لحظه چندین مایل از میدان نبرد را پوشش دهید. البته میزان DPI این ماوس قابل تنظیم است تا نیازهای کاربران مختلف را پوشش دهد.

لاجیتک G502 پروتئوس برای گیمرهایی که ماوس را با پنجه می گیرند گزینه ای ایده آل است و تمامی دکمه ها به راحتی در دسترس آنها قرار دارد اما برای گیمرهایی که با کف دست ماوس را کنترل می کنند کار با دکمه ها کمی دشوار می شود. با استفاده از نرم افزار گیمینگ لاجیتک می توانید ماوس خود را برای کار روی سطوح مختلف از چوب تا شیشه کالیبره کنید و همواره از دقت بالای ماوس لذت خواهید برد. لاجیتک G502 پروتئوس برچسب قیمت ۷۲ دلاری را یدک می کشد.

ماوس Roccat Kone XTD Optical

mouse8

نسخه ویژه ماوس XTD از حسگر نوری به جای نمونه های سنتی لیزری سود می برد. این ماوس به پردازنده ۳۲ بیت V2 آرم MCU و حافظه ذخیره سازی ۵۷۶ کیلوبایت مجهز شده است. دقت ۶,۴۰۰ DPI ممکن است کمتر از مدل های لیزری به نظر برسد اما به هیچ وجه با مشکلات شتاب مواجه نخواهید شد. اندازه و طراحی این ماوس آن را برای افرادی که از کف دست و پنجه استفاده می کنند ایده آل کرده است. ماوس XTD اپتیکال قیمت ۷۷ دلاری را یدک می کشد.

ماوس Steel Series Sensei Wireless

mouse9

ویژگی هایی در ماوس سنسی وجود دارند که می توانند نگرانی گیمرهای حرفه ای را موجب شوند. نخست، این ماوس بی سیم است. دوم، این ماوس به جای حسگر نوری از حسگر لیزری برخوردار است. این موارد به همراه برچسب قیمت قابل توجه ۱۲۳ دلاری می توانند ماوس سنسی را در رده دوم انتخاب برای گیمرها قرار دهد.

در این ماوس زمان انتقال داده روی یک میلی ثانیه با نرخ نمونه برداری ۱,۰۰۰ هرتز تنظیم شده است که بی تردید هر ماوس بی سیم دیگری را پشت سر می گذارد. اگر حالت سیم دار را ترجیح می دهید سنسی گزینه ای را در اختیار شما قرار می دهد تا بدون کوچکترین تاخیر حرکات خود را انجام دهید. دقت این ماوس تا ۸,۲۰۰ DPI قابل تنظیم است. سنسی دارای هشت دکمه قابل برنامه ریزی است. نرم افزار این ماوس شامل “موتور استیل سریز” می شود که استفاده از آن برای تغییر تنظیمات به دلخواه کاربر آسان است.

ده زبان جدید به مترجم گوگل افزوده شد

n00033641-b

ترجمه‌گر گوگل یا Google Translate یکی از سرویس‌های محبوب گوگل است.
در ۱۹ ژوئن ۲۰۰۹ (۲۹ خرداد ۱۳۸۸) زبان فارسی به این سرویس افزوده شد و پس از آن تاریخ، این مترجم آنلاین بیش از پیش مورد استقبال و توجه کاربران ایرانی قرار گرفت.

مترجم گوگل در حال حاضر از ترجمه ۸۰ زبان پشتیبانی به عمل می‌آورد ولی به نظر می‌رسد گوگل هنوز هم دست‌بردار نیست و قصد دارد با اضافه کردن زبان‌های جدید، کارایی این سرویس پرطرفدار را بیش از پیش ارتقاء بخشد.

به گزارش ایتنا از رایورز به نقل از وبلاگ رسمی مترجم گوگل، این شرکت اخیراً ۱۰ زبان جدید را نیز به سرویس Google Translate افزوده است.

این زبان‌ها که بعضاً گویشوران آنها محدود به مناطق جغرافیایی خاصی هستند، عبارتند از: چیچوا (Chichewa) زبان ملی کشور مالاوی در جنوب شرق آفریقا، مالاگاسی (Malagasy) زبان ملی کشور جزیره‌ای ماداگاسکار در اقیانوس هند، سوتو (Sesotho) زبان رسمی کشورهای آفریقای جنوبی و لسوتو، مالایام (Malayalam) زبان رایج در جنوب هند، برمه‌ای (Burmese) زبان رسمی برمه یا همان میانمار فعلی واقع در آسیای جنوب شرقی، سینهالی (Sinhala) زبان مورد استفاده در سری‌لانکا، سوندایی (Sundanese) یکی از زبان‌های رایج در بخش غربی جزیره جاوه در اندونزی، قزاقی (Kazakh) زبان مورد استفاده قزاق‌ها و زبان تاجیکی (Tajik) و ازبکی (Uzbek).

Malayalam

بنا به گفته گوگل افزوده شدن این ۱۰ زبان جدید به مترجم آنلاین گوگل باعث می شود بیش از ۲۰۰ میلیون نفر بتوانند با استفاده از این سرویس، متون را به زبان محلی خود ترجمه کنند.

با این حساب ترجمه‌گر گوگل اکنون از ۹۰ زبان پشتیبانی می‌کند.

منبع: www.itna.ir

مسئله آرایشگر خوابیده

barberدر علوم رایانه، مسئلهٔ آرایشگر خوابیده یک مسئلهٔ همگام سازی و ارتباط داخل فرآیندیِ کلاسیک بین چند فرآیند سیستم عامل است. مسئله مشابه حالتی است که آرایشگر به کار مشغول می‌شود زمانی که مشتری باشد، زمانی که کسی نباشد استراحت می‌کند و تکرار این امر به شیوه‌ای منظم.

مسئله

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

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

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

راه حل

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

یک مسئلهٔ چند آرایشگر خوابیده دارای پیچیدگی‌های بیشتری برای هماهنگی چند آرایشگر در بین مشتریان منتظر است.

پیاده‌سازی

شبه کد زیر همگام سازی بین آرایشگر و مشتری را ضمانت کرده و بدون بن‌بست است، اما ممکن است منجر به قحطی یک مشتری شود. توابع ()wait و ()signal توابعی هستند که توسط سمافور(نشانبر)ها تأمین می‌شوند.

# The first two are mutexes (only 0 or 1 possible)
Semaphore barberReady = 0
Semaphore accessWRSeats = 1     # if 1, the # of seats in the waiting room can be incremented or decremented
Semaphore custReady = 0         # the number of customers currently in the waiting room, ready to be served
int numberOfFreeWRSeats = N     # total number of seats in the waiting room
 
def Barber():
  while true:                   # Run in an infinite loop.
    wait(custReady)             # Try to acquire a customer - if none is available, go to sleep.
    wait(accessWRSeats)         # Awake - try to get access to modify # of available seats, otherwise sleep.
    numberOfFreeWRSeats += 1    # One waiting room chair becomes free.
    signal(barberReady)         # I am ready to cut.
    signal(accessWRSeats)       # Don't need the lock on the chairs anymore.
    # (Cut hair here.)
 
def Customer():
  while true:                   # Run in an infinite loop to simulate multiple customers.
    wait(accessWRSeats)         # Try to get access to the waiting room chairs.
    if numberOfFreeWRSeats > 0: # If there are any free seats:
      numberOfFreeWRSeats -= 1  #   sit down in a chair
      signal(custReady)         #   notify the barber, who's waiting until there is a customer
      signal(accessWRSeats)     #   don't need to lock the chairs anymore
      wait(barberReady)         #   wait until the barber is ready
      # (Have hair cut here.)
    else:                       # otherwise, there are no free seats; tough luck --
      signal(accessWRSeats)     #   but don't forget to release the lock on the seats!
      # (Leave without a haircut.)

فیلسوفان خورنده به همراه توضیحات کامل و کد مسئله در ۶ زبان برنامه نویسی

philsophiaکد سورس  فیلسوفان خورنده به همراه توضیحات کامل

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

 

مساله اینطور است که این فیلسوف ها باید دو کار انجام دهند : ۱- فکر کنند ، ۲- بخورند با دو چنگال

وقتی فیلسوفی خوردنش تمام شد ، باید هر دو چنگال را رها کند و فیلسوف بعدی می تواند استفاده نماید.

در اصل ، ماکارونی و چنگال ها به عنوان Resource و فیلسوفان به عنوان Process یا Thread هستند.

یک الگوریتم حل اینست که:

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

گام ۲ : باز آنقدر فکر کند تا چنگال سمت راست آزاد شود و آن را بردارد.

گام ۳ : تا مقدار زمان خاص مثل کوانتوم یا Q از ماکارانی بخورد. ( اگر زمانبدی CPU از نوع 

  Round Robin باشد.)

گام ۴ :چنگال راست را رها کند . (Flush Right)

گام ۵ : چنگال چپ را نیز رها کند . ( Flush Left)

گام ۶ : برو به گام ۱٫

الگوریتم ضعیف بالا ، باعث میشود ما به deadlock برسیم. چرا ؟ چون فرض کنید همه فیلسوف ها بیایند و

چنگال سمت چپ را بردارند ، چون چنگال سمت راست هر فیلسوف ، چنگال سمت چپ فیلسوف دیگر است

و فیلسوف هایی که چنگال سمت چپ را برداشته اند باید منتظر بمانند تا چنگال سمت راستشان که در دست

فیلسوف دیگر است، آزاد شود ، و چون این حالت هیچگاه رخ نمیدهد ، به بن بست یا deadlock میرسیم

و سیستم عاملی که با این الگوریتم کار کند ، در این مورد ، به حالت Not Responding میرود.

در الگوریتم فوق حتی ممکن است گرسنگی منبع هم رخ دهد.

به هر حال ، راه حل هایی برای حل این بحران ارائه گردیده است که در زیر من به راه حل Conductor و

نیز راه حل Chandy/Misra اشاره میکنم :

راه حل اول  : Conductor یا راهنما

استفاده از یک خدمتکار یا waiter است که از تعداد چنگال های مانده و در حال استفاده آگاهی دارد ، هر

فیلسوفی که می خواهد ماکارونی بخورد، به خدمتکار میگوید تا برای خود نوبت بگیرد و سپس خدمتکار

چنگال را در اختیارش می گذارد . ( چنگال سمت چپ را به او میدهد)

واضح است که این همان سمافور است .

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

System.Threading.Semaphore

راه حل دوم  : راه Chandy/Misra

اساس این الگوریتم روش Message Passing است ، یعنی فیلسوف ها با هم حرف بزنند یا به بیان تخصصی

هر Process به Process های جانبی خود ( حالا میتواند از PCB شماره ID آنها را بیابد ) یک پیغام و درخواست

برای انحصار منبع یا Resource Allocation بفرستد و آن پرسه ای که منبع را به انحصار خود در آورده است ، آنرا

آزاد نماید برای پرسه درخواست کننده.

الگوریتم به شرح زیر است :

گام ۱ :چنگال ها دو حالت دارند : ۱-کثیف ، ۲-تمیز

گام ۲ : هنگامیکه یک فیلسوف می خواهد از ماکارونی اش بخورد ، باید چنگال هایش را از فیلسوف 

 های اطرفش بگیرد ، پس به ازای هر چنگالی که ندارد ، به فیلسوف های کناری اش ، درخواست

 میدهد.

گام ۳ : وقتی یک فیلسوف ، پیغام  ، چنگال بده را دریافت میکند ، اگر چنگالش تمیز باشد ، آن را 

نگاه  میدارد.اما اگر چنگال کثیف باشد ، آنرا تمیز میکند و به فیلسوف درخواست کننده میدهد.

گام ۴ : بعد از اتمام خوردن یک فیلسوف ، همه چنگالهایش کثیف میشود ، اگر در صف 

درخواست ها ،چشم فیلسوف دیگری به چنگالهایش بود ، باید آن چنگال درخواست شده 

را تمیز کند و در اختیار  فیلسوف درخواست کننده منتظر در صف waiting  ، قرار دهد.

کپی برداری بدون منبع گناه بوده چون نویسنده رضایت ندارد

دانلود شبه مسئله فیلسوفان خورنده

دانلود کد مسئله به زبان C

دانلود کد سورس به زبان  C++

دانلود کد سورس به زبان C#

دانلود کد سورس به زبان F#

دانلود کد سورس به زبان جاوا

دانلود کد سورس به زبان Perl
منبع: www.wavesoft.ir

 

نکته هایی برای استفاده حرفه ای از فایرفاکس

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

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

firefox

اطلاعاتی در مورد فایرفاکس در techteach.ir

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

۱ – Restart کردن فایرفاکس

هیچ آیکون یا منویی برای Restart کردن فایرفاکس در واسط کاربری وجود ندارد. در حالی که در بسیاری از مواقع از جمله نصب افزونه ها این گزینه سودمند است و برای شما به شکل خودکار نمایش داده میشود. اما برای این کار به شکل دستی ابتدا Shift + F2 را فشار دهید و سپس در نوار فرمان که باز در پایین پنجره مرورگر باز میشود عبارت restart را وارد کرده کلید Enter را بزنید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۲ – باز کردن پوشه Profile فایرفاکس

دو گزینه برای باز کردن پوشه پروفایل فایرفاکس وجود دارد. یعنی پوشه ای که اطلاعات اساسی همچونBookmark ها، اغلب افزونه ها، تاریخچه وب گردی و مانند آن ذخیره شده است. روش اول این است که مجددا بر Shift + F2 را فشار داده و عبارت openprofile را وارد کنید و روش دوم این که در نوار آدرس عبارت about:support و سپس بر روی دکمه Show Folder کلیک نمایید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۳ – باز کردن فایرفاکس در حالت Safe Mode

حالت Safe Mode حالت ویژه ای از مرورگر است که در آن برخی ابزارها نظر افزونه ها غیر فعال هستند. این حالت به ویژه در زمانی که به دنبال عیب یابی مرورگر هستید به کار می آید، مثلا اگر اشکال از یک افزونه باشد، میتواند آن را شناسایی نمایید. برای ورود به حالت Safe Mode قبل از اجرای فایرفاکس، کلیدShift را بچسبید تا پیغامی مبنی بر اجرای مرورگر در حالت Safe Mode نمایش داده شود:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

اما اگر مرورگر در حال اجرا است، از منوی Help گزینه Restart with add-ons disabled را انتخاب کنید (اگر منو ها را نمی بینید، یک بار کلید Alt را فشار دهید).

۴ – استفاده از میانبرها

فایرفاکس چندی میانبر کاربردی دارد. اما این میانبرها پر کاربرد ترین و در عین حال کارآمد ترین آنها است:

باز کردن تب جدید : Ctrl + t

بزرگنمایی مثبت و منفی : Ctrl + و Ctrl –

بارگذاری مجدد صفحه یا Refresh بدون استفاده از Cache : Ctrl + F5

جستجو در صفحه : F3

باز کردن Download Manager : Ctrl + j

باز کردن Developer Tools : F12

۵ – افزونه Save File to

حتما شما هم متوجه شده اید که ابزار دانلود ذاتی فایرفاکس چندان پیشرفته نیست. یکی از افزونه های کاربردی برای بهبود این ابزار افزونه Save File to است (اینجا) که به شما این امکان را میدهد تا فایلهای مختلف را در پوشه های از قبل تعریف شده ذخیره کنید.

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۶ – شخصی سازی دسترسی به صفحات

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

همانطور که میبینید Permission ها بسیار کاربردی هستند. برای تنظیم آنها از منوی Tools گزینه Page info را انتخاب کنید و در پنجره ای که باز میشود به تب Permissions بروید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۷ – حذف منو های اضافی و بدون کاربرد

منو ها در مرورگر فایرفاکس گزینه های متعددی را نمایش میدهند. البته ما و شما از همه آنها استفاده نمی کنیم و به همه آنها هم احتیاج نداریم. افزونه Menu Wizard (اینجا) به شما کمک میکند تا منو های اضافی را از نوار منو و کلیک راست حذف کنید.

۸ – باز کردن چندین لینک به شکل همزمان

به شکل معمول شما در یک زمان تنها میتوانید یک لینک را در فایرفاکس و در صفحات وب باز کنید. اگر بر روی وب سایتی مانند تابناک مشغول خواندن اخبار هستید، میتوانید لینک چندین خبر را همزمان باز کنید. کافی است از افزونه ای مانند Multi Links (اینجا) و یا Snap Links Plus (اینجا) که با نسخه های اخیر فایرفاکس کاملا همخوان است، استفاده کنید.

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

چمدان هوشمند!

چمدان ها طی دهه های گذشته شاهد نوآوری خاصی نبوده اند. اما با معرفی محصولی جدید به نام “بلو اسمارت” این شرایط تغییر خواهد کرد. بلو اسمارت نخستین چمدان هوشمند تولید شده در جهان است.

چمدان هوشمند!

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

چمدان هوشمند!

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

 
چمدان هوشمند!
 
چمدان هوشمند!
 
چمدان هوشمند!
 
چمدان هوشمند!
 
چمدان هوشمند!

کارت ویزیتی به شکل چاقو+تصاویر

 «آنتونی کول» طراحی از نیوزیلند است که یک کارت ویزیت به شکل چاقوهای سوئیسی طراحی کرده است.

به گفته وی، اکثر مردم جذب زیبایی و شگفتی می‌شوند به همین منظور طراحی این کارت می‌تواند مشتریان را جذب کند و در ذهن آنها بماند.

این کارت تجاری مقوایی است اما ویژگی‌های چاقوی معمولی را داراست.

1 2 3 4 5 13930728000073_PhotoL

اینتل یا AMD؛ کدام پردازنده بهتر است؟

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

amdVSintel

اگرچه حداقل باید برخی از موارد ذکر شده در بالا را مد نظر قرار دهید، راه ساده‌تری برای برطرف کردن چالش خرید پردازنده مرکزی وجود دارد که نادیده گرفتن جزئیات فنی و تمرکز بر پرسشی اساسی‌تر است: اینتل در برابر AMD، کدام پردازنده ها بهترین گزینه برای شما هستند؟

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

پردازنده های اینتل

اگر “عملکرد” یکی از اولویت های اصلی شما محسوب می شود و از نظر مالی با مشکلی مواجه نیستید پردازنده های اینتل به ویژه گزینه های Core i7 انتخاب خوبی محسوب می شوند. اگر دقت کرده باشید اکثر رایانه های قدرتمند همواره به پردازنده های اینتل مجهز هستند. البته با توجه به کاری که قصد انجام آن را دارید، تفاوت می تواند جزئی باشد. به عنوان مثال، تفاوت در عملکرد گیمینگ می تواند مشخص باشد و اگر اورکلاک کردن پردازنده انتخابی خود را برنامه ریزی کرده اید و برنامه های هدفتان از چندین هسته به خوبی استفاده می کنند پس AMD ممکن است برخی مواقع سرعت هایی برابر یا بیشتر با میزان کش کمتر نسبت به اینتل را ارائه کند.

amdVSintel2

خانواده اینتل Core M (یا Broadwell) تغییرات فاحشی را در عملکرد تک هسته ایجاد نمی کنند. آنها نسبت به پردازنده های Haswell اینتل تنها افزایش پنج درصدی سرعت را ارائه می کنند. در حقیقت، ارتقا واقعی زمانی رخ خواهد داد که فرآیند تولید پردازنده ۱۴ نانومتری به جریان اصلی بازار مبدل شود که کاهش ۳۰ درصدی نیروی مورد نیاز را به همراه داشته و کاهش دمای تولیدی به تبلت های بدون فن نیز اجازه می دهد با ضخامت هرچه کمتر تولید شوند. مهمتر از همه عمر باتری دستگاه ها افزایش می یابد.

amdVSintel3

فناوری های اخیر اینتل می توانند تفاوتی چشمگیر در دستگاه های قابل حمل ایجاد کنند. اما اگر به دنبال گزینه ای دسکتاپ هستید که عملکردی بالا را ارائه می دهد و البته دوست ندارید با برچسب های قیمت هنگفت چیپ های رده بالای Core i7 اینتل مواجه شوید، پردازنده های Core i5 این شرکت همچنان یکی از بهترین گزینه ها هستند.

پردازنده های AMD

در شرایطی که اینتل به موفقیت پردازنده های ۱۴ نانومتری امید دارد، شرکت رقیب یعنی AMD همچنان پردازنده های ۲۸ نانومتری (احتمالا ۲۰ نانومتری در سال ۲۰۱۵) را تولید می کند و مسیری کاملا متفاوت را در پیش گرفته است. این شرکت قصد دارد گزینه جدیدی را با پردازنده های خود ارائه کند که به نام “Kaveri” شناخته می شود.

amdVSintel4

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

amdVSintel5

این به معنای آن است که هر هسته پردازنده مرکزی و پردازنده گرافیکی در چیپ Kaveri می تواند فرآیند جداگانه ای را در فضای حافظه خود و مستقل از هسته های دیگر اجرا کند. شرکت AMD برای این روش جدید انجام کارها نام تجاری “هسته های رایانشی” (Compute Cores) را برگزیده تا به مقایسه درست آنها با موارد دیگر کمک شود. به عنوان مثال، پردازنده AMD Kaveri A10-7850K با چهار هسته پردازنده مرکزی و هشت هسته پردازنده گرافیکی دارای دوازده هسته های رایانشی است.

amdVSintel6

اما این آغاز ماجرا است. هسته های پردازنده مرکزی استریم رولر Kaveri می توانند در انجام وظایف تک رشته ای ۱۰ درصد سریعتر و در وظایف چند رشته ای دو برابر سریع‌تر از آن باشند. هسته های ارتقا یافته گرافیکی GCN نیز عملکرد گرافیکی بهتر را موجب شده و پشتیبانی از برنامه “منتل” AMD (جایگزینی سریع‌تر برای DirectX در آداپتورهایGCN) باید تسریع هرچه بیشتر گیمینگ را موجب شوند.

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

عصرایران؛ محمد مهدی حیدرپور