من وقتی مسیر این فایل متنی را در bacc.exe تایپ کردم و اینتر را زدم بلا فاصله صفحه بسته شد من روند اجرایی براش ندیدم به هر حال من باید یک خروجی را ببینم تا بتونم مزیت این برنامه نویسی موازی را با ترتیبی مقایسه کنم!!!!!!!!!!!!! یعنی این شبیه ساز هیچ خروجی به من نشون نمی ده تا من بهتر بتونم درکش کنم؟
حق با شماست ، من خیلی وقت بود با این نرم افزار کار نکرده بودم ، الان که به مستندات قبلی رجوع کردم متوجه شدم یک قسمت از مرحله را نگفتم (با عرض پوزش) . قسمتی از گزارش آزمایشگاه سیستم عامل خودم را با کمی تغییر اینجا می نویسم شاید به شما کمک کنه.
مروری اجمالی بر نرم افزار Baci
bBaci نرم افزاری است که بعضی از مفاهیم سیستم عامل ازجمله اجرای همزمان فرایندها ، روشهای همگام سازی ، راهنماهای کلی راهنماهای دودوئی وناظرها را شبیه سازی می کند. Baci شامل دو زیر سیستم است.
یکی از این زیر سیستمها مترجم(Interpreter) است که برنامه کاربر را به کدی به نام PCODE (کد واسطه ) ترجمه می کند.همراه Baci دو مترجم وجود دارد.یکی شبیه C++ است وبرنامه های شبیه به آن با پسوند cm مشخص میشوندودیگری شبیه پاسکال است وبرنامه های به این روش با پسوند pm ذخیره می شوند.هردو مترجم بعد از اجرا، کدهای با پسوند lst و pco را ایجاد می کنند.برای اجرای یک برنامه در Baci بایدمراحل زیر را طی کنیم.
1. کد برنامه را با زبان پاسکال یا C++ در ویرایشگری مانند Notepad نوشته و با پسوند pm یا cm ذخیره کنید.
2. برای کامپایل کردن پسوند cm از bacc.exe و برای پسوند های pm از bapas.exe استفاده کنید.
//If Write With C++
c:/>bacc Deker.cm
//If Write with Pascal
c:/>bapas Deker.pm
3. بعد از مرحله قبل فایلی با پسوند PCO ساخته می شود که می توانید با استفاده از Bainterp.exe آنرا بصورت همروند اجرا کنید.
c:/>bainterp Deker.pco
نحوه شبیه سازی همروندی:
- فرآیند هایی که می باید همروند اجرا گردند باید در یک بلاک cobegin محصور شوند.
cobegin{
P0();
p1();
...
pn();
}
- سمافور ها در Baci شامل مقادیر صحیح غیر منفی می باشند.البته در Baci سمافورهای باینری نیز وجود دارد که مقادیر 0و1 را می پذیرد.بعد از تعریف این مقادیر می توان براحتی از توابع Wait و Signal استفاده نمود.
Baci قابلیت های متنوع دیگری (مانند مفاهیم مانیتور و نخ ها و ...) دارد که برای اطلاعات بیشتر بهتره به آن مستندات آن مراجعه کنید.
در آخر خروجی الگوریتم دکر ، تولید کننده /مصرف کننده ، مسئله بن بست و آرایشگران را در اینجا قرار می دهم تا ملموس تر آنرا ببینید.
الگوریتمهای زمانبندی مثل Round Robin یا الگوریتمهای page replacement مثل LRU را نیز می توان در این محیط شبیه سازی کرد؟
کلا baci یک محیط شبیه ساز برای تمام الگوریتمهای مربوط به سیستم عامل می تونه باشه؟
Baci یک نرم افزار شبیه سازی همروندی است. برای این اجرای الگوریتم های زمانبندی و حافظه می توانید خودتان آنرا براحتی در هر زبانی پیاده سازی کنید.نرم افزار های برای شبیه سازی این موارد نیز وجود دارد .در کل Baci را برای این کار پیشنهاد نمی کنم.(اگه لازم شد بعدا در مورد الگوریتم های زمانبندی و حافظه توضیح خواهم داد)
کلمات کلیدی جستجو: Deker، Producer Consumer، Barber Shop، همروندی، mutual exclusion ، Baci ، بن بست ، Deadlock
موفق باشید