Payamvdn/NorthPersian_fa_wiki huggingface dataset:
فاوره گناسینگبه یا فوره گناسینگبه یا فوره ناسینگبه (زاده ۶ ژوئن ۱۹۶۶) رئیس جمهور وقت توگو از ماه مه ۲۰۰۵ تاکنون است. او پسر رئیس جمهور سابق، گناسینگبی ایادیما است که به مدت ۳۷ سال این کشور را اداره می کرد. فاوره پس از مرگ پدرش در ۵ فوریه ۲۰۰۵ با حمایت ارتش به قدرت رسید. مخالفان این گونه جابه جایی قدرت را، لطمه ای جدی به روند دمکراسی در توگو خواندند و شک و تردید در مورد مشروعیت قانون اساسی از جانشینی وی به عنوان رئیس جمهور، منجر به تحت فشار قرار گرفتن وی شد و در تاریخ ۲۵ فوریه استعفا داد. او پس از آن برنده انتخابات بحث برانگیز ریاست جمهوری توگو در ۲۴ آوریل ۲۰۰۵، شد و به عنوان رئیس جمهور سوگند یاد کرد. فاوره گناسینگبه پیشتر به عنوان وزیر تجهیزات، معادن، پست و ارتباطات از سال ۲۰۰۳ تا ۲۰۰۵ بوده است. فاوره دوباره در انتخابات ریاست جمهوری توگو سال ۲۰۱۰، توانست پیروز انتخابات شود. هر چند مسئولان جناح مخالف شفافیت و اعتبار این انتخابات را زیر سؤال بردند.
در علوم کامپیوتر مسئله فیلسوفان پشت میز غذاخوری یک مسئله تمثیلی است مربوط به طراحی هم روندی الگوریتم ها، که معمولاً برای نشان دادن مشکلات و تکنیک های همگام سازی و روش حل آن ها استفاده می شود. این مسئله در ابتدا در سال ۱۹۶۵ توسط آقای دیکسترا به عنوان یک تمرین امتحانی دانش آموزی طراحی شد و در رابطه با کامپیوترهایی ارائه شد که برای دسترسی به ابزارهای جانبی درایو نواری رقابت می کردند. بیان مسئله. پنج فیلسوف ساکت در اطراف یک میز قرار می گیرند. روی میز کاسه های ماکارونی وجود دارد. چنگال هایی مابین هر جفت از فیلسوف های کنار هم قرار داده شده است. هر فیلسوف باید به صورت متناوب فکر کند و بخورد. با این حال، یک فیلسوف فقط زمانی می تواند ماکارونی بخورد که که هر دو چنگال سمت چپ و سمت راست را در اختیار داشته باشد. هر چنگال در هر لحظه فقط می تواند توسط یک فیلسوف استفاده شود و بنابراین، یک فیلسوف فقط زمانی می تواند از چنگال استفاده کند که چنگال توسط فیلسوف دیگر در حال استفاده نباشد. بعد از این که یک فیلسوف خوردنش تمام شد، باید هر دو چنگال را روی میز بگذارد تا بقیه از آن ها استفاده کنند. یک فیلسوف فقط می تواند چنگال سمت راست خ
ود یا چنگال سمت چپ خود را، زمانی که موجود باشد، در اختیار بگیرد و نمی تواند قبل از در اختیار گرفتن هر دو چنگال خوردن را شروع کند. مقدار خوردن ارتباطی به حجم باقیمانده ماکارونی یا فضای معده افراد ندارد؛ به عبارتی، فرض بر این است که مقدار ماکارونی نامحدود است و مقدار خوردن نیز نامحدود است. مسئله این است که چگونه یک نظم رفتاری (الگوریتم همروندی) طراحی کنیم، به گونه ای که هیچ فیلسوفی گرسنه نماند؛ یعنی هر کدام بتواند به مدت نامتناهی و متناوباً بخورد و فکر کند. البته با فرض اینکه هیچ فیلسوفی نمی داند که چه زمانی سایر فیلسوفان قصد خوردن یا فکر کردن دارند. مشکلات. این مسئله با این هدف طراحی شد که چالش های پیشگیری از بن بست را نشان دهد. بن بست یک وضعیتی از سیستم است که در آن هیچ پیشرفتی امکان پذیر نیست. برای اینکه ببینیم راه حل این مسئله چندان آسان نیست، فرض بگیرید که هر فیلسوف باید مطابق با دستورالعمل زیر رفتار کند: تا زمانی که چنگال چپ موجود نشده، فکر کن. سپس، زمانی که چنگال چپ موجود شد، آن را بردار. تا زمانی که چنگال راست موجود نشده است، فکر کن. و زمانی که موجود شد آن را بردار. زمانی که هر دو چنگال را به دست آوردی،
مدت زمان مشخصی بخور. سپس چنگال راست را روی میز بگذار. و سپس چنگال چپ را روی میز بگذار. دوباره از ابتدا شروع کن. این راه حل وسوسه انگیز با شکست مواجه خواهد شد، زیرا به سیستم این امکان را می دهد که در وضعیت بن بست قرار بگیرد که در آن هیچ پیشرفتی امکان پذیر نیست. این وضعیت زمانی رخ می دهد که هر فیلسوف چنگال سمت چپ را برداشته است و منتظر است تا چنگال سمت راست موجود شود. با دستورالعمل های داده شده در بالا، احتمال ایجاد این وضعیت وجود دارد و زمانی که این وضعیت رخ دهد، هر فیلسوف باید منتظر فیلسوف دیگر در سمت راست بماند تا یک چنگال آزاد شود. اگر یک فیلسوف خاص به دلیل مشکل زمانبندی قادر نباشد تا هر دو چنگال را به دست آورد ممکن است قحطی منبع به صورت مستقل از بن بست نیز رخ دهد. برای مثال ممکن است یک قانون وجود داشته باشد که فیلسوف ها بعد از انتظار به مدت ۱۰ دقیقه برای موجود شدن چنگال دیگر، چنگالی را که در اختیار دارند، روی میز بگذارند و ۱۰ دقیقه دیگر صبر کنند و آنگاه مجدداً تلاش کنند. این پروتکل باعث از بین رفتن احتمال بن بست می شود، زیرا سیستم همیشه می تواند به یک وضعیت متفاوت تغییر کند. اما هنوز مشکل قفل زنده وجود دا
رد. اگر هر ۵ فیلسوف دقیقاً در یک لحظه وارد اتاق غذاخوری شوند و در یک لحظه هر کدام از آنها چنگال سمت چپ خود را بردارد، آنگاه فیلسوف ها ۱۰ دقیقه صبر می کنند و سپس تمام آنها همزمان چنگال های خود را روی میز می گذارند و سپس ۱۰ دقیقه دیگر صبر می کنند و مجدداً همه آنها چنگال ها را برمی دارند. انحصار متقابل ایده اساسی مسئله است. فیلسوف های پشت میز غذاخوری در واقع یک سناریوی عمومی و انتزاعی کاربردی برای توصیف مشکلاتی از این دست را فراهم می کنند. مشکلاتی که این فیلسوف ها با آن مواجه می شوند، مشابه مشکلاتی است که در برنامه نویسی واقعی کامپیوتر (زمانی که چندین برنامه نیاز به دسترسی انحصاری به منابع مشترک دارند) رخ می دهد. این مشکلات در برنامه نویسی همروند مورد بحث قرار می گیرند. این مسئله در ابتدا مربوط به وسایل خارجی نظیر درایوهای نواری بود. با این حال، مشکلاتی که به وسیله مسئلهٔ فیلسوفان پشت میز غذاخوری شبیه سازی می شوند، در زمانی که چندین پروسه به داده هایی که در حال بروزرسانی هستند دسترسی پیدا می کنند، بسیار بیشتر رخ می دهد. سیستم های پیچیده نظیر کرنل های سیستم عامل از هزاران قفل و همگام سازی استفاده می کنند که نیازم
ند پیروی دقیق از روشها و پروتکل ها است تا مشکلاتی نظیر بن بست، قحطی، و خراب شدن داده به وجود نیاید. راه حل ها. راه حل منبع سلسله مراتبی. این راه حل، همان راه حلی است که در ابتدا توسط دیکسترا پیشنهاد شد. در این راه حل یک ترتیب سهمی به منابع (در این مثال چنگال ها) اختصاص داده می شود و این قانون را اعمال می کند که تمام منابع باید به ترتیب درخواست شوند و اینکه هیچ دو منبع نامرتبط از نظر ترتیب، هیچ وقت توسط یک واحد کار منفرد، به طور همزمان استفاده نشوند. در اینجا منابع (چنگال ها) از ۱ تا ۵ شماره گذاری می شوند و هر واحد کار (فیلسوف) همیشه از بین دو چنگالی که قرار است استفاده کند، اول چنگال با عدد کوچکتر و سپس چنگال با عدد بزرگتر را برمی دارد. ترتیب قرار دادن چنگال ها روی میز توسط هر فیلسوف اهمیتی ندارد. در این مورد اگر ۴ نفر از ۵ نفر به طور همزمان، چنگالی با عدد کوچکتر را بردارند، فقط چنگالی که بالاترین عدد را دارد روی میز باقی می ماند؛ بنابراین، چنگالی نصیب فیلسوف پنجم نخواهد شد. علاوه بر این، فقط یک فیلسوف به چنگالی که بالاترین عدد را دارد دسترسی دارد و بنابراین قادر خواهد بود تا با استفاده از دو چنگال غذا بخورد.
اگرچه راه حل منبع سلسله مراتبی، مانع از بن بست می شود اما این راه حل همیشه عملی نیست، مثلاً زمانی که لیست منابع مورد نیاز از قبل کاملاً مشخص نیست. برای مثال، اگر یک واحد کار، منابع ۳ و ۵ را در اختیار بگیرد و سپس مشخص شود که نیاز به منبع ۲ دارد، آنگاه باید قبل از به دست آوردن منبع ۲، منبع ۵ و سپس۳ را آزاد کند و سپس باید منابع ۳ و ۵ را مجدداً به همان ترتیب به دست آورد. اگر برنامه های کامپیوتر را که به تعداد زیادی از رکوردهای پایگاه داده دسترسی دارند ملزم کنیم تا قبل از دسترسی به یک رکورد جدید تمام رکوردهای دارای عدد بالاتر را رها کنند، آنگاه برنامه به خوبی کار نمی کند، و بنابراین این روش برای این هدف غیرعملی است. راه حل منبع سلسله مراتبی، منصفانه نیست. اگر فیلسوف ۱ دربرداشتن چنگال کند باشد، و اگر فیلسوف ۲ در فکر کردن و برداشتن چنگال ها سریع باشد، آنگاه فیلسوف ۱ هیچگاه قادر نخواهد بود تا هر دو چنگال را به دست آورد. راه حل منصفانه باید این تضمین را بدهد که هر فیلسوف بتواند تا ابد بخورد، حتی اگر سرعت آن در مقایسه با بقیه کندتر باشد. راه حل حکمیت. روش دیگر این است که شرایطی ایجاد کنیم که یک فیلسوف در هر لحظه یا هر
دو چنگال رو بردارد یا هیچ کدام را برندارد. برای این روش نیاز به یک حاکم مثلاً یک گارسون داریم. یک فیلسوف برای برداشتن چنگال ها باید از گارسون اجازه بگیرد. تا زمانیکه فیلسوف ها هر دو چنگال مورد نیاز خود را بردارند، گارسون در هر لحظه فقط برای یک فیلسوف اجازه صادر می کند. فیلسوفان همیشه اجازه دارند تا چنگال را روی میز بگذارند. گارسون را می توان با استفاده از یک mutex پیاده سازی کرد. این روش علاوه بر نیاز به یک ماهیت مرکزی جدید (گارسون)، می تواند منجر به کاهش موازی گرایی نیز شود: این کاهش، زمانی رخ می دهد که یک فیلسوف در حال خوردن باشد و یکی از فیلسوف های مجاور آن درخواست چنگال کند، در این حالت، تمام فیلسوفان دیگر باید منتظر بمانند تا این درخواست برآورده شود، حتی اگر چنگال برای آنها مهیا باشد. راه حل Chaney و Misra. در سال ۱۹۸۴ Chandy و Misra یک راه حل متفاوت را برای مسئله فیلسوفان پشت میز غذاخوری پیشنهاد کردند. در این راه حل، برخلاف راه حل دیکسترا، به عوامل دلخواه ("P"1, … , "P""n") اجازه داده می شود تا برای تعداد دلخواهی از منابع رقابت کنند. مضافاً اینکه، این راه حل کاملاً توزیع شده است و نیاز به هیچ گونه مدیر
یت مرکزی بعد از شروع شدن ندارد. با این حال، در اینجا برخلاف قبل، فیلسوف ها می توانند با یکدیگر ارتباط برقرار کنند (به دلیل پیام های درخواست). از این رو، این راه حل درجه بالایی از همه روندی را فراهم می کند و یک مسئله که به اندازه دلخواه بزرگ باشد، را حل می کند. همچنین مشکل قحطی را نیز برطرف می کند. برچسب تمیزی یا کثیفی به عنوان شیوه ای برای دادن ارجحیت به گرسنه ترین پروسه عمل می کند و برای پروسه هایی که تازه خوردن شان تمام شده است، خوب نیست. می توان هر کدام از این روش ها را با روشی مقایسه کرد که در آن، به فیلسوف ها اجازه داده نمی شود تا پشت سر هم دوبار بخورند و در عین حال در این بین به دیگران اجازه استفاده از چنگال ها را ندهند. راه حل Chandy و Misra در مقایسه با آن قابل انعطاف تر است، اما دارای یک عنصر است که به آن سو تمایل دارد. آنها در آنالیز خود، یک سیستم سطوح ارجحیت را از توزیع چنگال ها و وضعیت تمیزی یا کثیفی آنها طراحی کردند. آن ها نشان دادند که این سیستم ممکن است یک گراف بدون حلقه جهت دار را نشان دهد و اگر چنین باشد، عملیات موجود در پروتکل آن ها نمی تواند گراف را تبدیل به یک گراف حلقوی کند. این وضعیت قطع
اً موجب بن بست نخواهد شد. با این حال، اگر این سیستم در یک وضعیت کاملاً قرینه شروع شود، نظیر آنچه که در آن فیلسوف ها چنگال های سمت چپ خود را نگه داشته بودند، آنگاه گراف در شروع، حلقوی است و راه حل آنها مانع از بن بست نمی شود. شروع کردن سیستم به گونه ای که فیلسوف هایی که دارای شماره شناسایی پایین تری هستند، صاحب چنگال های کثیف باشند، موجب می شود تا گراف در ابتدا غیر حلقوی باشد.
لوجاس آمریکاناس شرکت خرده فروشی برزیلی است، که در سال ۱۹۲۳ توسط تاجر اتریشی مکس لاندزمان و چندین بازرگان آمریکایی بنام های جان لی، گلن ماتسون و جیمز مارشال راه اندازی شد. شرکت لوجاس آمریکاناس در حال حاضر دارای ۷۴۹ شعبه فروش در ۲۵ ایالت برزیل می باشد. دفتر مرکزی این شرکت در شهر ریو د ژانیرو، برزیل قرار دارد و بخشی از سهام آن در بازارهای بورس سائوپائولو و بورس مادرید معامله می شود.
آیرملوها یکی از ۲۴ قیبه ترکان اغوز هستند بر اساس نوشته محمود کاشغری یازدهمین قبیله هستند گروه ترک زبان که از بومیان آذربایجانی در قفقاز بودند و در اواخر قرن نوزدهم و اوایل قرن بیستم، پس از نبرد گنجه برخی از آنان به ایران و ترکیه مهاجرت کردند. همینک نام مناطق جغرافیایی در جمهوری آذربایجان و نواحی شمالی ارمنستان از پسوند و پیشوند "آیرملو" وجود دارد. این قوم در اواخر قرن ۱۹ ام و اوایل قرن بیستم وارد ایران شدند و در شمالغرب شهرستان ماکو ساکن شدند. آیرملوها در ایران. آیرملوها از اقوام نزدیک به دربار پهلوی بودند. نوش آفرین آیرملو مادر رضاشاه و تاج الملوک آیرملو همسر وی که مادر محمدرضا پهلوی بود و محمدحسین آیرم از فرماندهان نظام شاهنشاهی از جمله آیرملوهای نزدیک به دربار بودند. در ارتش شاهنشاهی نیز صاحب منصبانی از آیرملوها همچون محمود آیرم امیر لشکر جنوب بود. َتاج الملوک آیرملو: تاج الملوک آیرملو از ایل آیرملو بود که با رضاشاه پهلوی ازدواج کرد و صاحب چهارفرزند به نام های محمدرضا پهلوی، شمس پهلوی، اشرف پهلوی و علیرضا پهلوی شد. تاج الملوک بعدها پس از به سلطنت رسیدن همسرش رضاشاه ملکه تاج الملوک یا ملکه پهلوی و پس از به
سلطنت رسیدن پسرش محمدرضاشاه ملکه مادر خوانده می شد. ملکه تاج الملوک از زنان قدرتمند زمان خود بود. گفته می شود او تنها کسی بود که می توانست در مقابل رضاشاه بایستد. با وقوع انقلاب و سقوط سلسله پهلوی تاج الملوک به همراه دختر و دامادش به آمریکا رفت و بعد چند سال درگذشت. نوش آفرین آیرملو: نوش آفرین آیرملو با عباسعلی داداش بیگ ازدواج کرد که حاصل این ازدواج رضاشاه بنیانگذار سلسله پهلوی بود. نوش آفرین در حدود سال های ۱۲۶۳-۱۲۶۴ خورشیدی در تهران درگذشت. تیمورخان آیرملو: میرپنج تیمورخان آیرملو یکی از خانواده هایی بود که هنگام تحویل ۱۷شهر قفقاز به روس به ایران مهاجرت کردند و بعدها به آیرملو مشهور شدند. تیمورخان در قزاقخانه استخدام شد و به تدریج تا درجه میرپنجی بالا رفت.تاج الملوک دختر تیمورخان با رضاشاه پهلوی ازدواج کرد. میرپنج تیمورخان آیرملو در حدود سالهای ۱۳۰۲–۱۲۹۸ خورشیدی درگذشت. تاج الملوک آیرملو همسر رضا شاه بیان می کند که: «رضا سرباز زیردست پدرم تیمور آیرُملو بود و در جبهه قفقاز هنگامی که گروهی از [بریگارد] قزاقها که پدرم نیز در بین آنان بود تحت محاصره نیروهای ارتش سرخ شوروی قرار داشتند، رضا که مسؤول یک قبضه مسلسل
بود محاصره را شکست و جان پدر را از خطر مرگ نجات داد. پس از این حادثه، رضا مورد توجه پدرم قرار گرفت و او را به فرماندهی قوای نظامی قزوین منصوب کرد و پس از مدتی من را به عقد او درآورد.» ژنرال محمدحسین آیرم: ژنرال محمدحسین آیرم، محمدحسین آیرُم (۱۲۶۱–۱۳۲۷) سرلشکر ارتش و رئیس شهربانی و مؤسس اداره سیاسی شهربانی در دورهٔ رضاشاه بود. ژنرال محمدحسین آیرم ۱۳سال پس از فرار از ایران، در سال ۱۳۲۷ در سن ۶۵سالگی پس از یک عمل جراحی در لیختن اشتاین در آلمان درگذشت. نویسنده کتاب شرح حال رجال نظامی و سیاسی معاصر ایران، باقر عاقلی، وی را با عناوین قزاق، رئیس نظمیه، دیکتاتور، غارتگر، امیرلشکر، محمدحسین آیرُم فرمانده مقتدر و سفاک ایرانی معرفی کرده است، محمود آیرم: محمود آیرم از افسران ارشد قزاقخانه بود. او اولین افسر ایرانی است که با درجه سرتیپی به ریاست ستاد قزاقخانه رسیده بود. وی مدتی نیز رئیس آتریاد همدان و مدتی فرمانده قشون مازندران بود. در سال ۱۳۰۱ به دنبال تشکیل ارتش نوین و تأسیس پنج لشکر مستقل، آیرم با ارتقاء به درجه امیرلشکری به فرماندهی لشکر جنوب که مرکز آن در اصفهان بود منصوب شد. چندسال بعد رضاشاه او را به دلایلی از فرم
اندهی لشکر جنوب برکنار و به تهران احضار کرد و به زندان انداخت. گفته شد مبلغی از پول هایی که اندوخته بود در اختیار رضاشاه قرار داد تا از زندان آزاد شد و در حدود سال ۱۳۱۲ در تهران درگذشت.
نوکو هیوا (Nuku Hiva) یکی از جزیره های مجمع الجزایر مارکیز در پلی نزی فرانسه است.
آدینه نشریه جریان روشنفکری بود که در دهه ۶۰ و ۷۰ در ایران منتشر می شد. مدیر مسئول این نشریه، غلامحسین ذاکری بود و سردبیری آن را سیروس علی نژاد و فرج سرکوهی بر عهده داشتند. اولین شماره ماهنامه "آدینه" در ۱۵ آذر ۱۳۶۴ منتشر شد. اولین شماره در دوازده صفحه و پنج هزار نسخه منتشر شد که کمتر از دو هزار نسخه آن فروش رفت. این مجله در دهه ۱۳۶۰ و ۱۳۷۰ به مرکزی برای ارائه و انتشار آرای روشنفکری و ادبیات و هنر مستقل از حکومت بدل شد. مسعود بهنود نیز در این نشریه مطلب می نوشت جایی که هاشمی رفسنجانی را «سردار سازنده گی» و «تالی امیرکبیر» و رهبر نظام را «ستون خیمه» می نامید. به گفته فرج سرکوهی، تنها کسی که حق داشت در این مجله در مورد مسائل حاد ایران بنویسد مسعود بهنود بود. توقیف. مجله "آدینه" در سال ۱۳۷۷ با حکم سعید مرتضوی رئیس وقت دادگاه مطبوعات توقیف و لغو امتیاز شد. ذاکری نیز به سه ماه زندان محکوم شد. در آبان ۱۳۷۹ شعبه دوم دادگاه تجدید نظر تهران این حکم را به لغو امتیاز موقت به مدت ۵ سال کاهش داد و با اعتراض مجدد ذاکری و وکیل او این حکم نیز در سال ۱۳۸۱ لغو و مجله "آدینه" از اتهامات وارده تبرئه شد. غلامحسین ذاکری با اشاره به
تبرئه "آدینه" از تمام اتهامات گفته بود که «پس از تبرئه "آدینه" اجازه انتشار دوباره به این مجله را دادند و گفتند می توانی "آدینه" را منتشر کنی، اما آدینه را دیگر منتشر نکردم. واقعیت این است که "آدینه" را باید با چه کسانی منتشر می کردم؟ همه رفته و پراکنده شده بودند. دیگر خیلی دیر شده بود».
حرف ندا یا صوت حرفی است که برای صدا زدن و خواندنِ کسی یا چیزی به کار می رود. حروف ندا در زیرمجموعهٔ «نقش نماها» قرار می گیرند و پرکاربردترینِ آنها در زبان فارسی عبارتند از: ای، یا (برگرفته از عربی)، آی، ا. همچنین در اوستا و زبان پهلوی واژه اهلا ک هنوز در پارسی امروزه الا گفته میشود به نام واژه ندا بکار میرفته است ، حروف ندا بر سرِ بعضی اسم ها درمی آیند و از این نظر که قبل یا بعد از آن بیایند، به دو دسته تقسیم می شوند: به اسمی که مورد ندا قرار می گیرد منادا می گویند؛ مثلاً در مثال های بالا، کلمات «خدا، مردم، علی، حافظ، دوستان» منادا هستند. همچنین باید گفت که از حروف ندا برای ضمیرها کمتر استفاده می شود: نظامی: مولوی: اسم اگر مورد ندا واقع شود، چه با حروف ندا بیاید و چه نیاید، در حکم شبه جمله است.
در علوم کامپیوتر تولیدکننده-مصرف کننده یا همان مسئله بافر محدود یک مثال کلاسیک از مشکل همگام سازی چند پروسه ای است. اولین نسخه آن توسط دیکسترا در سال ۱۹۶۵ بصورت منتشر نشده و دست نویس پیشنهاد شد که در آن بافر نامحدود بود و بعدها در سال ۱۹۷۲ با یک بافر محدود منتشر شد. در اولین نسخه مسئله، دو پروسه سیکلی وجود داشت با نام های تولیدکننده و مصرف کننده که یک بافر مشترک با اندازه ثابت را به شکل یک صف به اشتراک می گذارند. تولیدکننده به طور مکرر داده تولید می کند و آن را در بافر می ریزد. مصرف کننده به طور مکرراً داده را از بافر می خواند و پس از خواندن آن را حذف می کند و از این داده به شیوه ای استفاده می کند. در اولین نسخه مسئله که دارای یک بافر نامحدود بود، مسئله این بود که چگونه یک کد تولیدکننده و مصرف کننده طراحی کنیم به گونه ای که در تبادل داده بین آن ها، هیچ داده ای از بین نرود یا تکراری نشود و نیز داده توسط مصرف کننده به ترتیبی خوانده شود که توسط تولیدکننده نوشته شده است، و هر دو پروسه حداکثر پیشرفت ممکن را داشته باشند. در فرمول بندی بعدی مسئله، آقای دیکسترا تولیدکننده ها و مصرف کننده های متعددی را پیشنهاد کرد که
مجموعه متناهی از بافرها را به اشتراک می گذارند. این کار باعث ایجاد مشکلی دیگر شد و آن این بود که چگونه تولیدکننده ها را از نوشتن در بافرهایی که تماماً پر هستند بازداریم و چگونه مصرف کننده ها را از خواندن بافر، در زمانیکه تمام بافرها خالی هستند بازداریم. اولین موردی که باید در نظر بگیریم این است که یک تولیدکننده و یک مصرف کننده و یک بافر با اندازه متناهی وجود داشته باشد. اگر بافر پر باشد، برای تولیدکننده دو راه حل وجود دارد: یا به حالت خواب برود یا اینکه داده را دور بریزد. در زمان بعدی که مصرف کننده یک آیتم را از بافر برمی دارد، به تولیدکننده اطلاع می دهد تا مجدداً شروع به پرکردن بافر کند. به همین شیوه، اگر مصرف کننده بفهمد که بافر خالی است به خواب می رود. در زمان بعدی که تولیدکننده داده را در داخل بافر قرار می دهد، مصرف کننده را از خواب بیدار می کند. این راه حل با استفاده از ارتباطات بین پروسه ای که معمولاً از سمافورها استفاده می کنند، میسر است. اگر راه حل ناکافی باشد، می تواند منجر به بن بست شود که در این حالت هر دو پروسه منتظرند تا از خواب بیدار شوند. پیاده سازی ناکافی. برای حل مسئله این وسوسه وجود دارد که
از راه حل زیر استفاده کنیم. در این راه حل از دو روتین کتابخانه تحت عنوان sleep و wakeup استفاده شده است. زمانی که sleep فراخوان می شود، فراخواننده مسدود می شود تا زمانی که پروسه دیگری با استفاده از روتین wakeup آن را بیدار کند. متغیر گلوبال itemcount تعداد آیتم های بافر را نگه می دارد. int itemCount = 0; procedure producer() while (true) item = produceItem(); if (itemCount == BUFFER_SIZE) sleep(); putItemIntoBuffer(item); itemCount = itemCount + 1; if (itemCount == 1) wakeup(consumer); procedure consumer() while (true) if (itemCount == 0) sleep(); item = removeItemFromBuffer(); itemCount = itemCount - 1; if (itemCount == BUFFER_SIZE - 1) wakeup(producer); consumeItem(item); مشکل این راه حل این است که حاوی شرایط رقابتی است که می تواند منجر به بن بست شود. سناریوی زیر را در نظر بگیرید: یک آنالیز دیگر این است که اگر زبان برنامه نویسی پروتکل های(semantic) دستیابی های همزمان به متغیرهای مشترک (در این مورد itemcount) با استفاده از همگام سازی را تعریف نکرده باشد، آنگاه راه حل مورد استفاده به همین دلیل نامطلوب خواهد ب
ود و نیازی به اثبات آشکار یک شرایط رقابتی نیست. استفاده از پرچم ها (سمافر). سمافرها مشکل از دست رفتن فراخوانی بیدار کردن را حل می کنند. در راه حل زیر، ما از دو سمافور با نام های fillcount و emptycount برای حل مسئله استفاده می کنیم. fillcount تعداد آیتم هایی است که هم اکنون در بافر وجود دارد و قابل خواندن است، در حالیکه emptycount تعداد فضاهای خالی موجود در بافر است که می توان آیتم ها را در آن نوشت. زمانیکه یک آیتم جدید در داخل بافر قرار داده می شود، fillcount افزایش پیدا می کند و emptycount کاهش پیدا می کند. زمانیکه تولیدکننده سعی می کند تا emptycount را، که مقدار صفر دارد، کاهش دهد به خواب می شود. بعداً، وقتی که یک آیتم مصرف می شود، emptycount افزایش پیدا می کند و تولیدکننده بیدار می شود. طرز کار مصرف کننده نیز به همین شکل است. semaphore fillCount = 0; // items produced semaphore emptyCount = BUFFER_SIZE; // remaining space procedure producer() while (true) item = produceItem(); down(emptyCount); putItemIntoBuffer(item); up(fillCount); procedure consumer() while (true) down(fillCount); item = removeItemFromB
uffer(); up(emptyCount); consumeItem(item); راه حل بالا فقط زمانی خوب جواب می دهد که فقط یک تولیدکننده و یک مصرف کننده داشته باشیم. زمانی که چندین تولیدکننده داشته باشیم که فضای حافظه یکسانی را در اشتراک داشته باشند، یا چندین مصرف کننده داشته باشیم که فضای حافظه یکسانی در اشتراک داشته باشند، این راه حل دارای شرایط رقابتی جدی است که می تواند منجر به این شود که دو یا بیش از دو پروسه به طور همزمان در یک درگاه (slot) بنویسند یا بخوانند. برای اینکه بفهمیم چگونه این حالت امکان پذیر است، تصور کنید که چگونه تابع putItemIntoBuffer() قابل پیاده سازی است. این تابع می تواند حاوی دو عمل باشد، یکی برای تعیین درگاه موجود بعدی و دیگری برای نوشتن در داخل آن. اگر تابع را بتوان به طور همزمان توسط چندین تولیدکننده اجرا کرد آنگاه سناریوی زیر محتمل است: برای غلبه بر این مشکل، باید این اطمینان را پیدا کنیم که فقط یک تولیدکننده در هر لحظه تابع putItemIntoBuffer() را اجرا می کند. به بیان دیگر، ما نیاز به روشی برای اجرای یک ناحیه بحرانی با انحصار متقابل داریم. راه حل برای چندین تولیدکننده و چندین مصرف کننده در زیر نشان داده شده است: m
utex buffer_mutex; // similar to "semaphore buffer_mutex = 1", but different (see notes below) semaphore fillCount = 0; semaphore emptyCount = BUFFER_SIZE; procedure producer() while (true) item = produceItem(); down(emptyCount); down(buffer_mutex); putItemIntoBuffer(item); up(buffer_mutex); up(fillCount); procedure consumer() while (true) down(fillCount); down(buffer_mutex); item = removeItemFromBuffer(); up(buffer_mutex); up(emptyCount); consumeItem(item); توجه کنید که ترتیب افزایش یا کاهش سمافورهای مختلف مهم است: تغییر این ترتیب ممکن است منجر به یک بن بست شود. در اینجا، مهم است که بدانیم، گرچه به نظر می رسد که mutex به شکل یک سمافور با مقدار ۱ عمل می کند (سمافور باینری)، اما تفاوت در این است که mutex دارای ماهیت مالکیت است. مالکیت به این معنی است که mutex را می توان فقط توسط همان پروسه ای که آن را به مقدار صفر کاهش داده است، به مقدار یک افزایش داد، و تمام عمل های دیگر منتظر می مانند تا زمانیکه میوتکس برای کاهش یافتن موجود شود (در واقع به این معنی است که منبع موجود است)، درنتیجه، قطعاً انحصار متقابل بوجود م
ی آید و از بن بست پیشگیری می شود. در نتیجه استفادهٔ نادرست از mutexها می تواند، در زمانیکه دسترسی انحصاری لازم نیست، باعث متوقف شدن بسیاری از پروسه ها شود، اما mutex به جای سمافور استفاده می شود. استفاده از مانیتورها. شبه کد زیر یک راه حل را برای مسئله تولیدکننده- مصرف کننده با استفاده از مانیتورها نشان می دهد. از آنجایی که انحصار متقابل در رابطه با مانیتورها به صورت غیر مستقیم وجود دارد، تلاش اضافه برای محافظت ناحیه بحرانی لازم نیست. به عبارت دیگر، راه حلی که در زیر نشان داده شده است با هر تعدادی از تولیدکننده ها و مصرف کننده ها و بدون هیچگونه تغییراتی جواب می دهد. لازم است ذکر شود، هنگامیکه یک برنامه نویس کدی را می نویسد و از مانیتورها استفاده می کند در مقایسه با زمانی که از سمافوره ها استفاده می کند، شانس به وجود آمدن شرایط رقابتی کمتر است. monitor ProducerConsumer int itemCount = 0; condition full; condition empty; procedure add(item) if (itemCount == BUFFER_SIZE) wait(full); putItemIntoBuffer(item); itemCount = itemCount + 1; if (itemCount == 1) notify(empty); procedure remove() if (itemCount == 0) wait(
empty); item = removeItemFromBuffer(); itemCount = itemCount - 1; if (itemCount == BUFFER_SIZE - 1) notify(full); return item; procedure producer() while (true) item = produceItem(); ProducerConsumer.add(item); procedure consumer() while (true) item = ProducerConsumer.remove(); consumeItem(item);
بوستان فدک (پارک فدک) یک پارک شهری در حاشیه شهر بروجرد دریاچه فدک نیز با مساحت ۸ هکتار با عمق بین ۵تا۸ متر درکنار ان واقع است. این پارک در جنوب غربی شهر و در انتهای خیابان فاطمی_فیال و ابتدای جاده گلدشت قرار گرفته و در جنوب روستای فیال و مشرف به تپه تفریحی چغا می باشد. بوستان فدک بزرگ ترین پارک شهری در بروجرد است.بخشی از بوستان فدک در دست احداث است. در این بوستان سه دریاچه متصل به یکدیگر احداث شده است که از آب رود گلرود تغذیه می شوند. دریاچه پارک فدک بزرگ ترین دریاچه مصنوعی در غرب ایران است که در محل طلاقی دو رودخانه دائمی گلرود و رودلیقناب یا گرمابه قرار گرفته است.
آنا آلوارو (زاده ۲۹ اکتبر ۱۹۵۱ در وهران، الجزایر فرانسه) یک هنرپیشه فرانسوی است که کار خود را از اوایل ۱۹۷۰ شروع کرده است. از فیلم هایی که وی در آنها نقش داشته می توان به "ژرژ دانتون" اشاره کرد. وی تاکنون ۲ بار به جایزه سزار بهترین بازیگر نقش مکمل زن برای فیلم های "طعم دیگران" (۲۰۰۱) و "کلینیک یخ" (۲۰۱۰) دست یافته است. فیلم شناسی. بعضی از فیلم هایی که آنا آلوارو در آن ها حضور داشته است: