OS-HW3.pdf

‫تمرين سری سوم سيستم ھای عامل‬
‫نيمسال دوم ‪86-87‬‬
‫تاريخ تحويل‪87/2/7:‬‬
‫توضيحات‪:‬‬
‫‪ .1‬تمرين ھا بايستی به صورت تک نفره نوشته شوند‪ .‬در صورت مشاھده ھر گونه کپی‪ ،‬برای طرفين نمره صفر منظور‬
‫خواھد شد!‬
‫‪ .2‬جريمه ديرکرد ‪ 25%‬و به ازای ھر روز که از مھلت ارسال بگذرد‪ %5 ،‬اضافه خواھد شد‪ .‬به تمرين ھايی که با بيش از‬
‫يک ھفته تاخير تحويل داده شوند نمره ای تعلق نخواھد گرفت‪.‬‬
‫‪ .3‬تحويل تمرين ھا به صورت کاغذی يا ‪ email‬می با شد‪ .‬در صورت ارسال ‪ ، email‬تمرين ھا را حداکثر تا ‪ 12‬شب‬
‫تاريخ ‪ 87/2/7‬به آدرس ‪ [email protected]‬با مشخصات زير ارسال کنيد‪.‬‬
‫•‬
‫‪ OS-HW3-stID :Subject‬به جای ‪ stID‬شماره دانشجويی قرار می گيرد‪.‬‬
‫•‬
‫عنوان فايل ارسالی ‪OS-HW3-stID :‬‬
‫‪ .1‬تفاوت ميان زمان بندی کوتاه مدت‪ ،‬بلند مدت و ميان مدت را بيان کنيد‪.‬‬
‫‪ PCB .2‬چيست و چه اطالعاتی را در خود نگاه می دارد‪.‬‬
‫‪ .3‬منظور از فرآيند ھای ‪ CPU-bound‬و ‪ I/O-bound‬چيست؟ چرا انتخاب ترکيبی درست از اين دو نوع فرآيند برای‬
‫قرار گرفتن در حافظه‪ ،‬در کارآيی سيستم موثر است؟ اين وظيفه به عھده کدام زمان بند است؟‬
‫‪ .4‬مدل ھای ارتباط ميان فرآيندی را نام ببريد و ھر يک را به طور خالصه شرح دھيد‪.‬‬
‫‪ .5‬عملياتی را که توسط کرنل در ھنگام ‪ context switch‬انجام می گيرد‪ ،‬بيان کنيد‪.‬‬
‫‪(3.4) .6‬خروجی برنامه زير در خط ‪ A‬چيست؟ توضيح دھيد‪.‬‬
‫>‪<unistd.h‬‬
‫>‪<sys/types.h‬‬
‫>‪<stdio.h‬‬
‫>‪<sys/wait.h‬‬
‫‪#include‬‬
‫‪#include‬‬
‫‪#include‬‬
‫‪#include‬‬
‫;‪int value=5‬‬
‫)(‪int main‬‬
‫{‬
‫;‪pid_t pid‬‬
‫;)(‪pid= fork‬‬
‫{)‪if(pid == 0‬‬
‫‪// child process‬‬
‫;‪value +=15‬‬
‫}‬
‫{)‪else if (pid > 0‬‬
‫‪// parent process‬‬
‫;)‪wait (NULL‬‬
‫‪printf("parent: value = %d", value); // line A‬‬
‫;)‪exit(0‬‬
‫}‬
‫}‬
‫‪ .7‬با استفاده از سسيتم کال )(‪ fork‬برنامه ای به زبان ‪ C‬بنويسيد که يک درخت دودويی از فرآيند ھا بسازد‪ .‬تعداد سطوح‬
‫درخت به عنوان ورودی از ‪ command line‬گرفته می شود‪ .‬درخت دودويی درختی است که در آن ھر گره تنھا دو‬
‫فرزند دارد‪.‬‬
‫خروجی‪:‬‬
‫‪Level 1, parent 1234, child 123‬‬
‫‪Level 1, parent 1234, child 234‬‬
‫…………‬