OS1-94951-P1.pdf

‫به نام خدا‬
‫پروژه درس سیستمهای عامل‪ -۱‬بخش اول‬
‫دانشگاه صنعتی شریف ‪ -‬دانشکده مهندسی کامپیوتر‬
‫ترم اول سال تحصیلی ‪۹4-۹5‬‬
‫ مهلت ارسال این تمرین ساعت ‪ 23:59‬روز ‪ 51‬آبان ‪ 5931‬می باشد‪.‬‬‫ مستندات خود را به آدرس ‪ [email protected]‬ارسال نمایید‪.‬‬‫ این پروژه به صورت انفرادی می باشد‪.‬‬‫ دقت نمایید که پاسخ ها تنها در قالب یک فایل ‪ pdf‬بوده و نام آن و عنوان ایمیل ارسالی با فرمت ‪(P1-92929292) P1-StudentID‬‬‫ارسال گردد‪.‬‬
‫ پاسخهایی که با این فرمت ارسال نشوند در هنگام تصحیح با مشکل مواجه خواهند شد‪.‬‬‫ این تمرین دارای یک ارایه حضوری نیز میباشد که تاریخ آن متعاقبا اعالم خواهد شد‪.‬‬‫ ارسال پاسخ ها به ازای هر روز تاخیر شامل ‪ ٪۵5‬کسر نمره خواهد شد و بعد از سه روز به آن نمره ای تعلق نمیگیرد‪.‬‬‫ در صورت شباهت تمرینات ارسالی و احراز رونوشت بودن آنها برای هر دو نفر نمره صفر در نظر گرفته میشود‪.‬‬‫ توضیحات تکمیلی در مورد چگونگی انجام و تحویل این پروژه در روز یکشنبه ‪ 9‬آبان ‪ 5931‬در کالس ‪ 401‬ساعت ‪ 59–54‬ارایه میشود‪.‬‬‫ حضور در کالس اجباری نیست ولی شدیدا توصیه میشود‪.‬‬‫ هرگونه سوال یا ابهام خود را با آقای زرگر به ایمیل ‪ [email protected]‬در میان بگذارید‪.‬‬‫درس سیستمهای عامل شامل دو پروژه مقدماتی و نهایی میباشد‪ .‬هدف از انجام پرروژه مقدماتی آشنایی دانشجویان با سیستم عامل ‪FreeBSD‬‬
‫و همچیین بدست آوردن توانایی ایجاد تغییرات در هسته میباشد‪ .‬یادگیری مهارتهای ذکر شده برای انجام پروژه نهایی درس ضرروری میباشد‬
‫و توصیه میشود دانشجویان وقت کافی برای انجام پروژه مقدماتی اختصاص دهند تا در انجام پروژه نهایی دچار مشکل نشوند‪ .‬این پروژه شامل‬
‫سه بخش میباشد که در مورد هر کدام از آنها در ادامه توضیحاتی داده شده است‪.‬‬
‫‪ -5‬نصب سیستم عامل و ابزارهای مورد نیاز برای کامپایل هسته‬
‫در این بخش دانشجویان باید سیستم عامل ‪ FreeBSD‬را بر روی یک ماشین مجازی نصب کرده و بعد از مطالعه منابع موجود در اینترنت‬
‫ابزارهای مورد نیاز برای کامپایل هسته را نیز نصب نمایند‪ .‬در ادامه نیز هسته سیستم عامل را یک بار کامپایل کرده و وارد آن شوند‪ .‬نام هسته‬
‫کامپایل شده باید با نام هسته عمومی متفاوت باشد‪.‬‬
‫‪1‬‬
‫‪ -۵‬حذف ابزارهای غیرضروری از هسته‬
‫در این بخش باید با ایجاد تغییرات در فایلهای تنظیمات هسته و حذف بخشهای غیرضروری هسته‪ ،‬حجم هسته سیستم عامل کاهش یابد‪.‬‬
‫حجم هسته اصلی و هسته کم حجم باید با یک دیگر مقایسه شده و مواردی که از هسته حذف شدهاند نیز بیان شود‪ .‬حداقل تعداد امکانات‬
‫حذف شده در سطح هسته باید ‪ ۱۱‬مورد باشد که برای هر کدام دلیل موجهی برای حذف باید بیان شود‪ .‬همچنین معیار درستی این عمل‪،‬‬
‫کارکرد صحیح هستهی سبک شده میباشد‪.‬‬
‫‪ -۳‬پیاده سازی و استفاده از چند فراخوانی سیستمی‬
‫در این بخش باید یک فراخوانی سیستمی (‪ )system call‬را پیاده سازی کنید که با دریافت شناسه (‪ )PID‬یک پردازه (‪ ،)Process‬شناسه‬
‫و وضعیت (‪ )state‬تمام فرزندان آن را با ترتیب ‪ DFS‬استخراج کند و برگرداند‪ .‬همانطور که میدانید هر رکورد پردازه حاوی اطالعاتی نظیر‬
‫شناسه پردازه‪ ،‬وضعیت‪ ،‬آمارهای زمان اجرا‪ ،‬شناسه پردازه پدر‪ ،‬فرزند اول و برادر است‪ .‬فراخوانی سیستمی که پیاده سازی میکنید حداقل ‪۳‬‬
‫آرگومان زیر را به عنوان ورودی دریافت میکند‪( :‬در صورت نیاز می توانید از آرگومان ورودی دیگری نیز استفاده کنید)‬
‫‪ .1‬شناسه پردازه‬
‫‪ .2‬یک بافر برای ذخیره سازی خروجی در آن‬
‫‪ .3‬یک مقدار ‪ integer‬که طول بافر را مشخص میکند‬
‫برای تست فراخوانی سیستمی پیاده سازی شده نیز یک برنامه کوچک در سطح کاربر توسعه دهید تا با دریافت شناسه پردازه از کاربر و با استفاده‬
‫از فراخوانی سیستمی پیادهسازی شده‪ ،‬فرزندان پردازه و ‪ state‬هر یک را چاپ کند‪.‬‬
‫موارد مورد انتظار برای تحویل‬
‫‪ )۱‬روند نصب و اجرای نسخه استاندارد ‪ ( FREE BSD‬مستند )‬
‫‪ )۵‬توضیحاتی مختصر در مورد نحوه پیدا کردن و اعمال تغییرات روی هسته سیستم عامل ( مستند )‬
‫‪ )۳‬چگونگی و روند انجام سبک سازی هسته سیستم عامل ( مستند )‬
‫‪ )4‬موارد حذف شده از روی هسته سبک شده و دلیل حذف آن امکان خاص ( مستند و حضوری )‬
‫‪ )5‬نسخهی جدید و قابل اجرای سیستم عامل ( ارایه حضوری )‬
‫‪ )۶‬چگونگی و روند پیاده سازی فراخوانی سیستمی خواسته شده ( مستند )‬
‫‪ )۷‬کد و نسخهی قابل اجرای برنامه تست خواسته شده ( ارایه حضوری )‬
‫موفق باشید‬
‫شاهرخی‬
‫‪2‬‬