You are on page 1of 249

‫سیستم عامل‬

‫مؤلف ‪ :‬فرشید شیرافکن‬


‫دانشجوی دکترای بیوانفورماتیک دانشگاه تهران‬

‫ناشر‪ :‬سازمان علمی آموزش فرادرس‬

‫بزرگترین پلتفرم آموزش آنالین ایران‬

‫وب‪www.faradars.org :‬‬

‫‪softsara.ir‬‬
‫‪2‬‬ ‫سیستم عامل‬

‫تقدیم به‪:‬‬

‫روح پاک پدرم‬

‫‪ -‬فرشید شیرافکن‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪3‬‬ ‫سیستم عامل‬

‫سخن ناشر‬

‫در عین تمام نقدهای وارد شده به کنکور‪ ،‬هنوز راه حلی عملی که در جمیع جوانب‪ ،‬بهترر از سر ک کوتراه و نرد زیینرهای‬
‫سؤاالت باشد؛ ارائه نشده است‪ .‬همین موضوع‪ ،‬کنکور را به ویژه کنکور کارشناسری ارشرد بره عنروان یرک آزمرون متمرکری و‬
‫سراسری‪ ،‬از اهمیت دو ندانی برخوردار میکند‪.‬‬

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

‫یکی از اهداف و آرمانهای فرادرس به عنوان بیرگترین پرروهه آمروزد دانشرگاهی اجررا شرده برر بسرتر وو کشرور‪ ،‬ایجراد‬
‫دسترسی همگانی و یکسان به آموزد و دانش؛ مستقل از جغرافیا‪ ،‬زمان و سطح مالی دانشجویان بوده است‪ .‬سیاسرت کراری‬
‫فرادرس در راستای این آرمان‪ ،‬انتشار آموزدهای ویدئویی تخصصی و دانشگاهی رایگان و یا بسریار کرم هیینره‪ ،‬برا تردریس‬
‫مجروترین اساتید داخل و خارج کشور بوده است‪.‬‬

‫ما با انتشار رایگان این کتاو (به همراه نیدیک به ده کتاو رایگان دیگر) یکی از زرام هرای دیگرر خرود را در راسرتای آرمران‬
‫فرادرس برداشتیم‪ .‬کتاو حاضر که حاصل نیدیک به یک دهه تدریس و پژوهش و تألیف مؤلف و مدرس فرادرس میباشد؛ در‬
‫عین هیینههای باالی تألیف و آمادهسازی‪ ،‬به جای انتشار و فرود؛ با تأمین مالی و سرمایهزذاری فرادرس به عنوان ناشر‪ ،‬بره‬
‫صورت کامالً رایگان منتشر میشود‪ .‬ما در زامهای بعدی نیی تالد خواهیم کرد که تا هر جا بتوانیم‪ ،‬حتی شرده یرک کتراو‬
‫مرجع دیگر و بیشتر را با پرداخت هیینه‪ ،‬آزادسازی کرده و به صورت رایگان منتشر کنیم‪.‬‬

‫مررؤلفین و ناشرررینی کرره تمایررل برره وازررذاری حررا انتشررار کترراو خررود برره فرررادرس را دارنررد‪ ،‬مرری تواننررد بررا ایمیررل‬
‫‪ ebooks@faradars.org‬مکات ه نمایند‪ .‬ما این کتاوها را با پرداخت هیینه تألیف بره مردرس و ناشرر‪ ،‬بره صرورت رایگران‬
‫منتشر خواهیم کرد تا همه دانشجویان مستقل از سطح مالی‪ ،‬به منابع مفید آزمون دسترسی داشته باشند‪ .‬همچنین ازر ایده‬
‫و نظری در خصوص کتاوهای رایگان فرادرس داشته باشید‪ ،‬خوشحال میشویم که آن را با ایمیل ‪ebooks@faradars.org‬‬
‫مطرح نمایید‪.‬‬

‫سازمان علمی آموزش فرادرس‬


‫بزرگترین پلتفرم آموزش آنالین ایران‬
‫وب‪www.faradars.org :‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪4‬‬ ‫سیستم عامل‬

‫منبع مطالعاتی تکمیلی مرتبط با این کتاب‬

‫آموزش سیستمهای عامل‬


‫سیستم عامل یا سامانه عامل (‪ )Operating System‬بدون‬
‫شک مهمترین نرمافیار در کامپیوتر است‪ .‬سیستم عامل‬
‫اولین نرمافیاری است که پس از روشن کردن کامپیوتر‬
‫مشاهده میشود و همچنین آخرین نرمافیاری خواهد بود که‬
‫ق ل از خامود کردن کامپیوتر مشاهده میشود‪ .‬سیستم‬
‫عامل نرمافیاری است که مدیریت برنامهها را به عهده زرفته‬
‫و با کنترل‪ ،‬مدیریت و سازماندهی منابع سختافیاری امکان‬
‫استفاده بهینه و هدفمند آنها را فراهم کرده و بستری را‬
‫برای اجرای نرمافیارهای کاربردی فراهم میکند‪.‬‬
‫آموزد سیستم عامل‪ ،‬توسط مهندس فرشید شیرافکن‪،‬‬
‫یکی از بهترین مدرسین مسلط به این م احث‪ ،‬ارائه شده‬
‫است‪.‬‬
‫مدرس‪ :‬مهندس فرشید شیر افکن‬

‫مدت زمان‪ 11 :‬ساعت‬

‫‪faradars.org /fvsft103‬‬ ‫جهت مشاهده آموزش ویدئویی این آموزش – کلیک کنید‬

‫درباره مدرس‬
‫مهندس فرشید شیرافکن کارشناس ارشد مهندسی کامپیوتر زرایش نرمافیار‬
‫است و در حال حاضر دانشجوی دکترای بیوانفورماتیک دانشگاه تهران‬
‫هستند‪ .‬ایشان از مدرسین نمونه در زمینه ارائه و آموزد دروس دانشگاهی‬
‫انتخاو شدهاند‪.‬‬
‫ایشان مشاور کنکور هستند و بیش از ‪ 3۰‬کتاو در زمینه کنکور رشته‬
‫کامپیوتر تألیف نمودهاند‪ .‬ایشان در حال حاضر به عنوان یکی از برترین مدرسین‬
‫فرادرس از جهت کمیت و کیفیت دروس ارائه شده‪ ،‬نیدیک به ‪ 2۰‬عنوان درسی را در قالب آموزد ویدئویی از‬
‫طریا فرادرس منتشر کردهاند‪ .‬این مجموعه دروس تا کنون مورد استفاده دهها هیار دانشجوی سراسر کشور قرار‬
‫زرفته اند‪.‬‬
‫مشاهده همه آموزش های تدریسی و تالیفی توسط مؤلف کتاب ‪ -‬کلیک کنید‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪5‬‬ ‫سیستم عامل‬

‫کتب رایگان دیگر از این مجموعه آموزشی‬

‫‪ .1‬آموزش برنامه نویسی ‪ - C++‬کلیک کنید (‪)+‬‬


‫‪ .2‬آموزش شیء گرایی در سی پالس پالس ‪ -‬کلیک کنید (‪)+‬‬
‫‪ .3‬آموزش نظریه زبانها و ماشین ‪ -‬کلیک کنید (‪)+‬‬
‫‪ .4‬آموزش پایگاه دادهها ‪ -‬کلیک کنید (‪)+‬‬
‫‪ .5‬آموزش ساختمان دادهها ‪ -‬کلیک کنید (‪)+‬‬
‫‪ .6‬آموزش ذخیره و بازیابی اطالعات ‪ -‬کلیک کنید (‪)+‬‬

‫برای دانلود رایگان این مجموعه کتب‪ ،‬به لینک زیر مراجعه کنید‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪6‬‬ ‫سیستم عامل‬

‫دستهبندی موضوعی آموزشهای فرادرس‪ ،‬در ادامه آمده است‪:‬‬

‫مهندسی برق الکترونیک و‬ ‫هوش مصنوعی و یادگیری‬ ‫آموزش های دانشگاهی و‬ ‫برنامه نویسی –‬
‫روباتیک – کلیک (‪)+‬‬ ‫ماشین – کلیک (‪)+‬‬ ‫تخصصی – کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬

‫نرم افزارهای تخصصی –‬ ‫مهارت های دانشگاهی –‬ ‫مباحث مشترک –‬ ‫دروس دانشگاهی –‬
‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬

‫آموزش های عمومی –‬ ‫طراحی و توسعه وب –‬ ‫نرم افزارهای عمومی –‬ ‫مهندسی نرم افزار – کلیک‬
‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫(‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪7‬‬ ‫سیستم عامل‬

‫فهرست مطالب‬
‫اولیه‪.................................................................................‬‬ ‫‪ :‬مفاهیم‬ ‫‪1‬‬ ‫فصل‬

‫پردازنده‬
‫وقفه‬
‫فراخوانی های سیستم‬
‫حفاظت‬
‫سلسله مراتب حافظه‬
‫روشهای انتقال ورودی‪/‬خروجی‬
‫نگاه کلی به سیستم عامل‬
‫تاریخچه سیستم عامل‬
‫انواع سیستم عامل از نظر ساختاری‬
‫آزمون‬

‫‪......................................................................................................................................‬‬ ‫‪ :‬فرآیند‬ ‫‪2‬‬ ‫فصل‬

‫فرایند و حاالت آن‬


‫فرایند معلق‬
‫انواع زمانبندها‬
‫نخ )‪(thread‬‬
‫پیاده سازی نخ (سطح کاربر‪ ،‬سطح هسته و ترکیبی)‬

‫پردازنده‪......................................................................................................................................‬‬ ‫‪ :‬زمان بندی‬ ‫فصل ‪3‬‬


‫معیارهای زمان بندی‬
‫الگوریتم های زمانبندی‬
‫الگوریتم ‪FCFS‬‬
‫الگوریتم ‪RR‬‬
‫الگوریتم ‪)SJF( SPN‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪8‬‬ ‫سیستم عامل‬

‫الگوریتم ‪SRT‬‬
‫الگوریتم ‪HRRN‬‬
‫الگوریتم ‪FB‬‬
‫الگوریتم ‪MLFQ‬‬
‫الگوریتم ‪MLQ‬‬
‫زمان بندی اولویت (‪)Priority‬‬
‫زمان بندی ‪FCFS‬‬
‫زمان بندی در سیستم چند پردازنده ای(‪) LPT ,RPT,SPT‬‬
‫آزمون‬

‫سازی‪......................................................‬‬ ‫‪ :‬همروندی‪ :‬انحصار متقابل و همگام‬ ‫فصل ‪4‬‬


‫مباحث مطرح در ارتباط بین فرایندها‬
‫رویکردهای نرم افزاری انحصار متقابل‬
‫الگوریتم ‪( Decker‬پنج تالش دکر)‬

‫الگویتم ‪Peterson‬‬
‫رویکردهای انحصار متقابل با حمایت سخت افزار‬
‫راهکارهای سیستم عامل و زبان برنامه سازی برای تدارک همزمانی‬
‫سمافور‬
‫پیاده سازی انحصار متقابل توسط سمافور‬
‫همگام سازی با استفاده از سمافور‬
‫مسئله تولید کننده و مصرف کننده‬
‫مسئله غذا خوردن فیلسوف ها‬
‫مسئله خوانندگان و نیسندگان‬
‫مانیتور (ناظر)‬
‫مسئله تولید کننده و مصرف کننده با مانیتور‬
‫تبادل پیام‬
‫همگام سازی به کمک تبادل پیام‬
‫پیاده سازی انحصار متقابل توسط تبادل پیام‬
‫حل مسئله تولید کننده و مصرف کننده توسط تبادل پیام‬
‫آزمون‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪9‬‬ ‫سیستم عامل‬

‫‪...................................................................................................................................‬‬ ‫‪ :‬بن بست‬ ‫فصل ‪5‬‬


‫شرایط بن بست‬
‫گراف تخصیص منابع‬
‫روش های رفع بن بست‬
‫ترمیم‬
‫روش های پیشگیری از بن بست‬
‫روش های اجتناب از بن بست‬
‫الگوریتم بانکداران‬
‫خالصه رویکردها‬
‫آزمون‬

‫حافظه‪.................................................................................‬‬ ‫‪ :‬مدیریت‬ ‫فصل ‪6‬‬


‫مدیریت حافظه ابتدایی‬
‫جا به جایی و حفاظت‬
‫مبادله‬
‫الگوریتم های مکان یابی و تخصیص حافظه‬
‫مدیریت حافظه با سیستم رفاقتی‬
‫روی هم گذاری )‪(Overlay‬‬
‫صفحه بندی )‪(Paging‬‬
‫حافظه مجازی‬
‫صفحه بندی درخواستی‬
‫صفحه بندی چند سطحی‬
‫جدول صفحه وارونه(معکوس)‬
‫بافرهای کناری ترجمه )‪(TLB‬‬
‫زمان موثر دسترسی‬
‫آزمون‬
‫الگوریتمهای جایگزینی صفحه‬
‫الگوریتم بهینه (‪)optimal‬‬
‫الگوریتم ‪NRU‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰‬‬ ‫سیستم عامل‬

‫الگوریتم ‪FIFO‬‬
‫الگوریتم دومین شانس‬
‫الگوریتم ساعت‬
‫الگوریتم‪LRU‬‬
‫پیاده سازی سخت افزاری ‪LRU‬‬
‫شبیه سازی ‪ LRU‬در نرم افزار (الگوریتم سالمندی)‬
‫الگوریتم بافر کردن صفحه‬
‫نکات طراحی سیستم های صفحه بندی‬
‫پیش صفحه بندی )‪(prepaging‬‬
‫مدل مجموعه کاری)‪(working sets‬‬

‫الگوریتم فرکانس نقص صفحه )‪(PFF‬‬

‫تناقض بلیدی (‪)Belady's anomaly‬‬


‫الگوریتم های پشته (‪)Stack Algorithms‬‬
‫اندازه صفحه‬
‫ساختار برنامه‬
‫قطعه بندی‬
‫قطعه بندی درخواستی‬
‫قطعه بندی صفحه بندی )‪(Segmentation with paging‬‬

‫مقایسه روشهای مدیریت حافظه‬


‫آزمون‬

‫‪......................................................................................‬‬ ‫‪ :‬مدیریت ‪ I/O‬و دیسک‬ ‫فصل ‪7‬‬


‫نرم افزار ‪I/O‬‬

‫مدیریت دیسک‬
‫الگوریتم های زمانبندی بازوی دیسک( ‪( FCFS , SSTF , SCAN , CSCAN‬‬

‫روشهای تخصیص فضای دیسک به فایل‬


‫سطوح در یک حافظه سه سطحی‬
‫آزمون‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪11‬‬ ‫سیستم عامل‬

‫‪1‬‬ ‫فصل‬

‫مفاهیم اولیه‬

‫سیستم عامل از منابع سخت افیاری پردازنده برای ارائه خردمات بره کراربران اسرتفاده مری کنرد‪ .‬بنرابراین‬
‫آشنایی با سخت افیار کامپیوتر‪ ،‬برای بررسی سیستم عامل ضرروری اسرت‪ .‬اجریای سرخت افریاری تشرکیل‬
‫دهنده کامپیوتر ع ارتند از‪:‬‬
‫‪ -2‬حافظه اصلی‬ ‫‪ -1‬پردازنده‬
‫‪ -4‬اتصاالت داخلی سیستم‪.‬‬ ‫‪ -3‬مولفه های ورودی و خروجی‬

‫پردازنده‬
‫پردازنده از واحد محاس ه و منطا)‪ ،(ALU‬واحد کنترل و رجیسترها(ث ات ها) تشکیل می شرود و سره زرام "واکشری‪ ،‬رمری‬
‫زشایی و اجرا" را به طور مداوم انجام می دهد‪ .‬پردازنده دائما در حال کار است و فقط در موارد خاصی به مدت کوتراهی بره‬
‫حالت ‪ Hold‬می رود و کنترل زذرزاه را به کنترل کننده ‪ DMA‬می دهد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪12‬‬ ‫سیستم عامل‬

‫ثباتهای پردازنده‬
‫در داخل پردازنده مجموعه ای از ث اتها وجود دارد‪ .‬این ث اتها سطحی از حافظره کره سرریعتر و کرو کتر از‬
‫حافظه اصلی است را فراهم می کنند‪ .‬ث اتهای داخل پردازنده ع ارتند از‪:‬‬
‫داده )‪(AX,BX,CX,DX‬‬ ‫‪ -1‬ث اتهای‬
‫شاخص )‪(SI,DI‬‬ ‫‪ -2‬ث ات‬
‫)‪(CS,DS,SS,ES‬‬ ‫‪ -3‬اشاره زر قطعه‬
‫پشته)‪(SP‬‬ ‫‪ -4‬اشاره زر‬
‫‪ -5‬شمارنده برنامه (‪ PC‬یا ‪)IP‬‬
‫دستورالعمل)‪(IR‬‬ ‫‪ -6‬ث ات‬
‫تذکر‪ :‬تمام پردازنده ها شامل یک یا مجموعه ای از ث اتها هستند به نام کلمه وضرعیت (‪ (PSW‬کره حراوی‬
‫اطالعات وضعیت هستند‪ .‬این ث ات‪ ،‬نوعا عالوه بر کردهای وضرعیت‪ ،‬شرامل اطالعرات دیگرری‪ ،‬م رل بیرت‬
‫فعال‪/‬غیر فعال کردن وقفه و بیت حالت کاربر‪/‬سرپرست‪ ،‬نیی می باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪13‬‬ ‫سیستم عامل‬

‫حالتهای اجرای پردازنده‬


‫پردازنده دارای دو حالت اجرا (‪ )dual-mode‬می باشد‪:‬‬
‫‪ -1‬مد کاربر‪ :‬حالت کم امتیازتری که برنامه های کاربران در این حالت اجرا می شوند‪.‬‬
‫‪ -2‬مد هسته(سیستم‪،‬کنترل‪ ،‬کرنل) ‪ :‬حالرت ممترازتری کره دسرتورالعملهایی ماننرد تغییرر ث اتهرای‬
‫کنترل‪ I/O ،‬و مدیریت حافظه‪ ،‬در این حالت اجرا می شوند‪ .‬در این حالت نرم افیار کنتررل کامرل پردازنرده‪،‬‬
‫دسررتورالعملها‪ ،‬ث اتهررا و حافظرره را در اختیررار دارد‪ .‬ایررن سررطح از کنترررل برررای برنامرره هررای کرراربران‬
‫غیرضروری‪،‬ناامن و نامطلوو است‪.‬‬

‫هدف اصلی از عملیات ‪ ، dual-mode‬محافظت سیستم عامل از دیگر نرم افیارها می باشد‪.‬‬

‫فرایند یا پردازد(‪ ،)process‬یک برنامه درحال اجرا می باشد‪ .‬تفاوت برنامه و فرایند در ایرن اسرت کره‬
‫برنامه یک نهاد غیرفعال و فرایند یک نهاد فعال می باشد‪ .‬معموال برنامه بر روی دیسک به صورت یرک‬
‫فایل اجرایی دودویی ذخیره می شود‪ .‬برنامه باید به حافظه لود شود و در داخل فرایندی قرار بگیرد ترا‬
‫اجرا شود‪ .‬فرایند می تواند هم در حافظه اصلی و هم در حافظه جان ی قرار بگیرد‪.‬‬

‫تنظیم زمان سیستم در مد کرنل و خواندن ساعت سیستم در مد کاربر انجام می شود‪.‬‬

‫پردازنده به کمک بیتی که در ‪ PSW‬وجود دارد متوجه می شود کره بایرد در کردام حالرت (کراربر یرا‬
‫هسته) اجرا کند‪.‬‬
‫وقتی کاری برای اجرا موجود ن اشد‪ ،‬پردازنده یک برنامره شرامل یرک حلقره انتظرار مشرغول را اجررا‬
‫خواهد کرد‪.‬‬
‫عمل تغییر وضعیت از مد کرنل به مد کاربر و بلعکس از امکانات سخت افیاری است که برای کمک مستقیم به سیستم‬
‫عامل طراحی شده است‪.‬‬
‫وقفه (‪)interrupt‬‬
‫‪CPU‬‬ ‫وقفه سیگنالی است که روند عادی اجرا را تغییر می دهد‪ .‬وقتی وقفهای به ‪ CPU‬ارسال میشرود‪ ،‬کرار‬
‫‪CPU‬‬ ‫‪ (interrupt‬اجرا میشود‪ .‬بعد از پایان اجرای این روترین‪،‬‬ ‫)‪routine‬‬ ‫متوقف شده و روال پاسخگو به وقفه‬
‫کار ق لیاد را ادامه میدهد‪ .‬آدرس دستوری که هنگام اجررای آن وقفره صرادر شرده (آدرس برزشرت) در‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪14‬‬ ‫سیستم عامل‬

‫پشته ذخیره می شود‪ .‬بعد از پایان پاسخگویی به وقفه‪ ،‬آدرس برزشت در شرمارنده برنامره )‪ (PC‬قررار مری‬
‫زیرد و محاس اتی که اجرای آنها به تعویا افتاده از سر زرفته می شود‪.‬‬
‫اجررای دسرتور‬ ‫با وجود وقفهها‪ ،‬پردازنده میتواند در هنگامی که عمل ورودی‪/‬خروجری درجریران اسرت‪ ،‬مشرغول‬
‫العملهای دیگر باشد‪.‬‬

‫سخت افیار در هر زمان میتواند با ارسال سیگنالی به‪ ،CPU‬وقفهای را صادر کند‪ .‬نرم افریار نیری برا اجررای عملیرات‬
‫خاصی به نام فراخوانی سیستم (‪ ،)System call‬میتواند وقفهای را صادر کند‪.‬‬

‫وقتی وقفهای رخ میدهد‪ ،‬سخت افیار کنترل را به سیستم عامل بر زردانده و ث اتها و شمارنده برنامه را ذخیرره مری‬
‫کند‪ .‬همچنین نوع وقفه را نیی تعیین می کند‪.‬‬

‫بردار وقفه‪ ،‬جدولی از اشاره زرها می باشد که هر اشاره زر به یک روال وقفه اشاره می کند‪.‬‬

‫انواع وقفهها‬
‫وقفه ها بر هار نوع می باشند‪:‬‬
‫‪ -1‬برنامه‬
‫وقفه هایی که به دلیل بعضی شرایط حاصل از اجرای یک دستورالعمل بروز می کند‪:‬‬
‫الف‪ -‬سرریی شدن محاس اتی‬
‫و‪ -‬تقسیم بر صفر‬
‫ج‪ -‬تالد برای اجرای یک دستورالعمل ماشین غیرمجاز‬
‫د‪ -‬مراجعه به آدرس خارج از فضای مجاز کاربر‬
‫‪ -2‬زمان سنج‬
‫وقفه ای که توسط زمان سنج داخلی پردازنده تولید می شود‪ .‬این وقفه به سیستم عامل اجازه مری دهرد‪ ،‬بعضری اعمرال‬
‫(مانند تست حافظه‪ ،‬ک کردن سخت افیار و یا تعیین زمان اجرای پردازنده درهر برد در سیستم استراک زمرانی)را بره‬
‫طور مرتب انجام دهد‪.‬‬
‫‪ -3‬ورودی‪/‬خروجی‬
‫وقفه هایی که به وسیله کنترل کننده ‪ I/O‬تولید می شود‪ ،‬تا کامل شدن ط یعی یک عمل یا شرایط خطا را اعمال کند‪.‬‬
‫‪ -4‬نقص سخت افزار‬
‫وقفه هایی که با نقص سخت افیاری تولید می شود‪ ،‬م ل نقص برق یا خطای توازن حافظه‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪15‬‬ ‫سیستم عامل‬

‫پردازش وقفه‬
‫هنگامی که یک دستگاه ‪ ، I/O‬یک عمل ‪ I/O‬را کامل می کند‪ ،‬دن اله حوادث زیر اتفاق می افتد‪:‬‬
‫‪ -1‬دستگاه یک عالمت وقفه برای پردازنده می فرستد‪.‬‬
‫‪ -2‬پردازنده اجرای دستورالعمل جاری را ق ل از پاسخ به این وقفه‪ ،‬به پایان می رساند‪.‬‬
‫‪ -3‬پردازنده بروز وقفه را بررسی کرده‪ ،‬در می یابد که وقفه ای آمده است و عالمتی م نی بر دریافرت وقفره‬
‫برای دستگاه وقفه دهنده می فرستد‪.‬‬
‫‪ -4‬پردازنده برای انتقال کنترل به روال خدماتی مربوط آماده می شود‪ .‬در ابتدا اطالعات مورد نیراز بررای از‬
‫سرزیری برنامه جاری را ذخیره می کند‪ .‬حداقل اطالعات‪ ،‬محتویات ث ات وضعیت برنامه)‪ (PSW‬و محل‬
‫می باشد‪ .‬این اطالعات می تواند در باالی پشته کنترل سیستم زذاشته شود‪.‬‬ ‫بعدی)‪(PC‬‬ ‫دستورالعمل‬
‫‪ -5‬پردازنده شمارنده برنامه)‪ (PC‬را با آدرس شروع برنامه زرداننده وقفه ای که قرار است به این وقفه پاسرخ‬
‫دهد‪ ،‬بار می کند‪ .‬در این حالت پردازنده به رخه واکشی رفته و کنترل به برنامه زرداننده وقفه منتقل‬
‫می شود‪.‬‬
‫‪ -6‬در این لحظه محتوای ‪ PC‬و ‪ PSW‬مربوط به برنامه وقفه داده شده‪ ،‬در پشته سیستم ذخیره است‪.‬‬
‫‪ -7‬روال وقفه را پردازد می کند‪.‬‬
‫‪ -8‬بعد از کامل شدن پردازد وقفه‪ ،‬مقادیر ث اتها از پشته ‪ POP‬شده و در ث اتها زذاشته می شود‪.‬‬
‫‪ -9‬بار کردن مجدد مقادیر ‪ PSW‬و‪ PC‬از پشته‪ ،‬که موجب اجرای دسرتورالعمل بعردی از برنامره وقفره داده‬
‫شده می شود‪.‬‬
‫تعویض متن (‪)Context Switch‬‬

‫هنگامیکه وقفه ای رخ می دهد‪ ،‬ق ل از اینکه سیستم عامل کنترل را به یرک روال وقفره زیرر بخصروص رد‬
‫کند‪ ،‬وضعیت پردازد جاری را در محلی حفظ می کند‪ ،‬تا بتواند بعدا آنرا ادامه دهد و سپس به طررف روال‬
‫وقفه زیر می رود که به این جریان تعویض متن می زویند‪.‬‬

‫فراخوانی های سیستم )‪(System Calls‬‬


‫فراخوانیهای سیستم واسطی بین فرایند و سیستم عامل فرراهم مری کنرد کره بره صرورت دسرتورات زبران‬
‫اسم لی می باشند‪ .‬در بعضی از سیستم ها‪ ،‬فراخوانی ها مستقیما از برنامه های زبان سطح باال ساخته شرده‬
‫و مانند زیر برنامه می باشند‪ .‬وقتی برنامه ای اجرا می شود از فراخوانی های سیستمی به وفور اسرتفاده مری‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪16‬‬ ‫سیستم عامل‬

‫کند و کاربر جیئیات آن را نمی بیند‪.‬‬


‫انواع فراخوانی های سیستم عبارتند از‪:‬‬
‫‪ -1‬کنترل فرایند‬
‫‪ -2‬دستکاری فایلها‬
‫‪ -3‬دستکاری دستگاه‬
‫‪ -4‬دستکاری اطالعات‬
‫‪ -5‬ارت اطات‬
‫وقتی یک وقفه‪ ،‬تله و یا فراخوانی سرپرست رخ می دهد‪ ،‬پردازنرده در حالرت هسرته زذاشرته شرده و‬
‫کنترل به سیستم عامل منتقل می زردد و یک تعویض حالت به یک روال سیستم عامرل انجرام شرده‪،‬‬
‫ولی ون اجرا در داخل فرایند جاری ادامه می یابد‪ ،‬تعویض فرایند انجام نمی شود‪.‬‬

‫حفاظت‬
‫مسئله حفاظت از سه دیدزاه مورد بررسی است‪:‬‬
‫‪ -1‬حفاظت از ‪I/O‬‬

‫برای حفاظت از ‪ I/O‬می توان تمام دستورات ‪ I/O‬را به عنوان دستورات ممتاز در نظر زرفت ترا کراربران فقرط از طریرا‬
‫سیستم عامل بتوانند آن دستورات را اجرا کنند‪.‬‬
‫‪ -2‬حفاظت از حافظه‬
‫حفاظت حافظه را حداقل برای بردار وقفه و روال وقفه باید فراهم کرد‪.‬در واقع می خواهیم سیستم عامرل را از دسرتیابی‬
‫برنامه کاربر و همچنین برنامه های کاربر را از یکدیگر محافظت کنیم‪ .‬یکی از روشهای ممکن اسرتفاده از ث اتهرای پایره و‬
‫حد می باشد‪.‬‬
‫‪ -3‬حفاظت از ‪CPU‬‬

‫باید کاری کرد که برنامه کاربر در حلقه زیر نکند و کنترل را به سیستم عامل برزرداند‪ .‬برای ایرن منظرور از یرک ترایمر‬
‫استفاده می کنیم‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪17‬‬ ‫سیستم عامل‬

‫سلسله مراتب حافظه‬


‫بین سه ویژزی کلیدی حافظه‪ ،‬یعنی "هیینه‪ ،‬ظرفیت و زمان دسترسی" باید س ک و سرنگین کررد‪ .‬بررای‬
‫این کار نمی توان بر یک حافظه یا فن آوری خاصی تکیه کرد و باید از سلسله مراتب حافظه اسرتفاده کررد‪.‬‬
‫یک سلسله مراتب متداول حافظه در زیر آورده شده است‪:‬‬
‫‪ -1‬ث اتها ‪ -2‬حافظه پنهان ‪ -3‬حافظه اصلی‬
‫‪ -6‬رسانه جا به جایی پذیر‬ ‫‪ -5‬دیسک مغناطیسی‬ ‫‪ -4‬حافظه پنهان دیسک‬

‫با حرکت به سطوح پایین تر این سلسله مراتب‪ ،‬شرایط زیر رخ می دهد‪:‬‬
‫‪ -2‬افیایش ظرفیت‬ ‫‪ -1‬کاهش هیینه در هر بیت‬
‫‪ -4‬کاهش تعداد دفعات دسترسی پردازنده به حافظه‬ ‫‪ -3‬افیایش زمان دسترسی‬
‫مدیریت منابع هر یک از حافظه های زیر در مقابل آن نوشته شده است‪:‬‬
‫ث ات‪ :‬کامپایلر‬
‫حافظه پنهان ‪ :‬خودکار(سخت افیاری)‬
‫حافظه اصلی و دیسک‪ :‬سیستم عامل‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪18‬‬ ‫سیستم عامل‬

‫حافظه پنهان‬
‫حافظه پنهان)‪ ،(cache‬یک حافظه کو ک و سریع بین پردازنده و حافظه اصلی است‪ .‬حافظه پنهران‪ ،‬حراوی‬
‫بخشی از حافظه اصلی است‪ .‬وقتی پردازنده می خواهد کلمه ای از حافظه را بخواند‪ ،‬وجود آن را در حافظره‬
‫پنهان بررسی می کند‪ .‬ازر وجود داشته باشد‪ ،‬به پردازنده تحویل می شود‪ ،‬در غیر اینصرورت یرک بلروک از‬
‫حافظه اصلی‪ ،‬شامل تعداد ثابتی از خانه های حافظه‪ ،‬به حافظه پنهان منتقل شده و سپس کلمه مورد نظرر‬
‫به پردازنده تحویل داده می شود‪ .‬هنگامی که یک بلوک از داده ها به حافظه پنهان آورده می شرود ترا یرک‬
‫مراجعه به حافظه انجام شود‪ ،‬به دلیل پدیده محلی بودن مراجعات‪ ،‬احتماال بیودی به دیگر کلمات آن بلوک‬
‫نیی مراجعه خواهد شد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪19‬‬ ‫سیستم عامل‬

‫روشهای انتقال ورودی‪/‬خروجی‬


‫برای عملیات ‪ I/O‬روشهای زیر وجود دارد‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰‬‬ ‫سیستم عامل‬

‫برنامه سازی شده (سرکشی)‬ ‫‪I/O -1‬‬

‫پردازنده یک فرمان ‪ I/O‬را از جانب فرایندی به یک مولفه ‪ I/O‬صادر می کند‪ .‬سپس آن فراینرد ق رل از ادامره‪ ،‬ترا کامرل‬
‫شدن عمل ‪ ، I/O‬به انتظار مشغولی می زذراند‪.‬‬

‫‪ I/O -2‬مبتنی بر وقفه‬


‫پردازنده یک فرمان ‪ I/O‬را از جانب فرایند صادر می کند‪ ،‬سپس به اجرای دستورالعملهای بعدی ادامه می دهد و با کامرل‬
‫شدن عمل ‪ ، I/O‬با وقفه مولفه ‪ I/O‬مواجه می شود‪.‬‬

‫‪ -3‬دسترسی مستقیم به حافظه)‪(DMA‬‬

‫مولفه ‪ DMA‬ت ادل داده ها بین حافظه اصلی و مولفه ‪ I/O‬را کنترل می کند‪ .‬پردازنده تقاضایی برای انتقال یک بلروک از‬
‫داده ها را به مولفه ‪ DMA‬می فرستد و فقط پس از کنترل کل بلوک‪ ،‬مورد وقفه قرار می زیرد‪.‬‬

‫تذکر‪ :‬در رود ورودی‪/‬خروجی م تنی بر وقفه‪ ،‬دستورالعملهای بعدی می توانند از همان فرایند باشند‪ ،‬ال تره بره شررطی کره‬
‫فرایند نیازی به انتظار برای تکمیل ‪ I/O‬نداشته باشد‪ .‬در غیر اینصورت فرایند در انتظار وقفه معلا می زرردد و کرار دیگرری‬
‫انجام می زیرد‪.‬‬

‫رود دوم کارامدتر از رود اول است‪.‬‬


‫بسیار کارآمدتر از روشهای اول و دوم است‪.‬‬ ‫‪DMA‬‬ ‫ند کلمه ای‪ ،‬رود‬ ‫‪I/O‬‬ ‫برای انتقال‬
‫در رود اول‪ ،‬مولفه ‪ I/O‬به پردازنده وقفه نمی دهد و این مسئولیت پردازنده است که وضرعیت مولفره‬
‫‪ I/O‬را متناوبا بررسی کند تا اتمام آن عمل را دریابد‪ .‬بنابراین رود اول را می توان ورودی‪/‬خروجی برر‬
‫اساس سرکشی)‪ (polling‬نامید‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪21‬‬ ‫سیستم عامل‬

‫مشکل ورودی‪/‬خروجی برنامه سازی شده این است که پردازنده باید برای مدت طوالنی منتظر بماند تا‬
‫مولفه‪ I/O‬برای دریافت یا ارسال آماده شود‪ .‬در مدت انتظار‪ ،‬پردازنده به علت اینکره مکرررا وضرعیت را‬
‫سئوال می کند‪ ،‬کارایی سیستم به شدت پایین می آید‪.‬‬
‫رود ‪ Programed I/O‬و ‪ Interrupt I/O‬پردازنده اصلی را درزیر عملیات ‪ I/O‬می کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪22‬‬ ‫سیستم عامل‬

‫نگاهی کلی به سیستم عامل‬


‫سیستم عامل برنامه ای است که اجرای برنامه های کاربردی را کنترل و به صورت رابط کاربر و سخت افریار‬
‫کامپیوتر عمل می کند‪ .‬برای سیستم عامل انجام سه وظیفه را می توان در نظر زرفت‪:‬‬
‫‪-1‬سهولت‬
‫سیستم عامل استفاده از کامپیوتر را برای کاربر ساده تر می کند‪.‬‬
‫‪ -2‬کارآمدی‬
‫سیستم عامل موجب استفاده کار آمد و بهینه از منابع سیستم کامپیوتری می شود‪.‬‬
‫‪ -3‬قابلیت رشد‬
‫سیستم عامل باید به نحوی ساخته شده باشد که توسعه آن میسر باشد‪.‬‬

‫سیستم عامل ییی جی یک برنامه کامپیوتری نیست‪ .‬این برنامه پردازنرده را بررای اسرتفاده از سرایر‬
‫منابع سیستم هدایت می کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪23‬‬ ‫سیستم عامل‬

‫جایگاه سیستم عامل‬


‫می توان به سخت افیار و نرم افیاری که کاربردها را برای کاربر ارائه می کند به صورت الیه ای (شکل زیرر)‬
‫نگاه کرد‪ .‬در این نگاه‪ ،‬سیستم عامل یک میانجی برای تسهیل دسترسی برنامه ساز و برنامه های کاربردی از‬
‫امکانات و خدمات می باشد‪.‬‬
‫برنامه های‬
‫کاربردی‬
‫برنامه های‬
‫سیستمی‬
‫سیستم عامل‬
‫سخت افیار‬

‫سخت افیار‪ ،‬پایین ترین سطح است که شامل سه قسمت است‪:‬‬


‫‪ -1‬دستگاه های فیییکی (مانند سیم ها‪ ،‬من ع تغذیه‪ ،‬تراشه های مدار مجتمع)‬
‫‪ -2‬ریی معماری( شامل ث ات های درون ‪ CPU‬و یک مسیر داده شامل واحد محاس ه و منطا)‬
‫‪ -3‬زبان ماشین‬

‫تذکر‪ :‬برنامه های سیستمی که در باالی سیستم عامل قرار دارند( مانند کامپایلرها‪ ،‬ادیتورهرا و ‪ ،)..‬بخشری از سیسرتم عامرل‬
‫نمی باشند‪ ،‬ازر ه توسط بعضی از سازندزان سیستم عامل ها عرضه می شوند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪24‬‬ ‫سیستم عامل‬

‫سیستم عامل در زمینه های زیر خدمات خود را ارائه می دهد‪:‬‬


‫‪ -2‬اجرای برنامه‬ ‫‪ -1‬ایجاد برنامه‬
‫‪ -4‬کنترل دسترسی به پرونده ها‬ ‫‪ -3‬دسترسی به دستگاههای ورودی‪/‬خروجی‬
‫‪ -6‬کشف و پاسخ به خطاها‬ ‫‪ -5‬دسترسی به سیستم عامل‬
‫‪ -7‬حسابداری‪.‬‬
‫)‪(shell‬‬ ‫سیستم عامل از طریا هسته )‪ ، (Kernel‬با منابع سخت افیاری و نرم افیاری و از طریا پوسرته‬
‫با کاربران‪ ،‬ارت اط برقرار می کند‪.‬‬
‫بخشی از سیستم عامل که در حافظه اصلی قرار دارد را هسته سیستم عامل می زویند‪.‬‬
‫یک سیستم عامل ممکن است به دالیل زیر در طول زمان تغییر کند‪:‬‬
‫‪ -1‬ارتقاء و انواع جدید سخت افیار‬
‫‪ -2‬خدمات جدید‬
‫‪ -3‬رفع خطا‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪25‬‬ ‫سیستم عامل‬

‫مولفه های سیستم عامل‬


‫سیستم بیرزی ون سیستم عامل را باید به مولفه های )‪ (components‬کرو کتری تقسریم کررد‪ .‬اک رر‬
‫سیستم عامل ها دارای مولفه های زیر می باشند‪:‬‬
‫‪ -1‬مدیریت فرایند‬
‫برخورد با بن بست‪ ،‬ایجاد و حذف فرایندها‪ ،‬تعویا و از سرزیری فرایندها‪ ،‬هماهنگی فرایندها‪.‬‬
‫‪ -2‬مدیریت حافظه اصلی‬
‫تعیین بخشهای پر حافظه‪ ،‬تعیین فرایندی که باید لود شود‪ ،‬تخصیص حافظه و آزاد سازی حافظه‪.‬‬
‫‪ -3‬مدیریت حافظه ثانویه‬
‫مدیریت فضای آزاد‪ ،‬تخصیص حافظه‪ ،‬زمان ندی دیسک‪.‬‬
‫‪ -4‬مدیریت فایل‬
‫ایجاد و حذف فایلها و دایرکتوری ها‪ ،‬نگاشت فایلها درحافظه ثانویه و تهیه پشتی ان‪.‬‬
‫‪ -5‬مدیریت سیستم ‪I/O‬‬

‫مدیریت بافرها‪ ،‬تخصیص کانالهای ‪ I/O‬و دستگاهها به فرایندها‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪26‬‬ ‫سیستم عامل‬

‫تاریخچه سیستم های عامل‬


‫نسل اول‪ :‬سیستم های ردیفی‬
‫در اولین کامپیوترها(حدودا ‪ 6۰‬سال ق ل)‪ ،‬برنامه ساز مستقیما با سخت افریار در ترراکنش برود و سیسرتم‬
‫عاملی در کار ن ود‪ .‬این ماشینها از طریا راغهای نمایش‪ ،‬کلیدها و نوعی دستگاه ورودی و اپگر اجرا می‬
‫شدند‪ .‬مساله اصلی این سیستمها‪ ،‬زمان ندی و زمان نصب بود‪ .‬ون در ایرن عملیرات‪ ،‬کراربران بره صرورت‬
‫ردیفی و یکی پس از دیگری به کامپیوتر دسترسی داشتند‪ ،‬آن را پردازد ردیفی می خوانیم‪.‬‬
‫نسل دوم ‪ :‬سیستم های دستهای ساده‬
‫زمانی که به خاطر زمان ندی و نصب در سیستمهای ردیفی به هدر می رفت قابل ق ول ن ود‪ .‬بررای افریایش‬
‫استفاده از ماشین‪ ،‬مفهوم سیستم عامل دسته ای به وجود آمد‪ .‬اولین سیستم عامل دسته ای در اوسط دهه‬
‫‪ 195۰‬به وجود آمد‪ .‬ایده اصلی‪ ،‬استفاده از نرم افیاری به نام ناظر بود‪ .‬با اسرتفاده از سیسرتم عامرل دسرته‬
‫ای‪ ،‬دیگر کاربر دسترسی مستقیم به ماشین ندارد و کار خود را روی کارت یا نوار به متصدی کرامپیوتر مری‬
‫دهد‪ .‬اپراتور کارها را به صورت ردیفی دسته کرده و همگی را روی یک دستگاه ورودی می زرذارد ترا مرورد‬
‫استفاده ناظر قرار زیرد‪ .‬مساله زمان ندی و زمان تنظیم شرایط اولیه کارها به عهده ناظر است‪.‬‬
‫با هر کار‪ ،‬دستورالعملهایی از زبان کنترل کار)‪ (JCL‬نیی وجود دارد‪ .‬زبان کنترل کار‪ ،‬نوعی زبان برنامره‬
‫نویسی برای فرمان دادن به ناظر می باشد‪.‬‬
‫‪JCL : Job Control Language‬‬

‫اسپولینگ‬
‫در سیستم های اولیه‪ CPU،‬زرانترین جیء کامپیوتر بود و افیایش راندمان ‪ CPU‬مهمترین محرک در تکامرل‬
‫یک کرار را‬ ‫‪I/O‬‬ ‫مطرح شد‪ .‬اسپولینگ‬ ‫‪Spooling‬‬ ‫سیستم های عامل بوده است‪ .‬برای همین منظور‪ ،‬تکنیک‬
‫با محاس ات کار دیگر به طور همیمان انجام میدهد‪ .‬حتی میتواند در حین خواندن ورودیهرای یرک کرار‪،‬‬
‫خروجی های کار دیگر را انجام دهد‪ .‬اسرپولینگ موجرب مری شرود ترا ‪ CPU‬و دسرتگاههای‪ I/O‬برا سررعت‬
‫بیشتری کار کنند‪ .‬استفاده از ‪ spooling‬در سیستم عامل دسته ای باعث افیایش سرعت می شود‪.‬‬
‫سیستم های دسته ای ‪Offline Spooling‬‬
‫در این سیستم ها‪ ،‬کارها توسط دستگاه کارت خوان یک کامپیوتر آهسته و ارزان خوانده می شد و به کمک‬
‫یک نوار زردان بر روی یک نوار مغناطیسی ذخیره می شدند‪ .‬بعد از تشکیل یک دسته از کارها‪ ،‬نوار توسرط‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪27‬‬ ‫سیستم عامل‬

‫اپراتور به ‪ CPU‬اصلی منتقل شده تا اجرا شروع شود‪ .‬نتیجه اجرا بر روی نوار دیگری نوشته می شرد‪ .‬بعرد از‬
‫اجرای تمام دسته کارها‪ ،‬اپراتور نوار خروجی را به یک پردازنده آهسته منتقل می کرد تا عمل را انجرام‬
‫شود‪ .‬در این رود ارت اط پردازنده اصلی محاس اتی با کارت خوان و اپگر‪ ،‬غیر مستقیم بود‪.‬‬
‫نسبت به سیستم های قبلی‬ ‫فواید سیستم های دسته ای ‪offline Spooling‬‬

‫‪ -1‬افیایش راندمان پردازنده زران قیمت‬


‫‪ -2‬عملیات سادهتر‬
‫‪ -3‬ساده شدن استفاده از سیستم از راه دور‪.‬‬

‫‪Offline Spooling‬‬ ‫معایب سیستم های دسته ای‬


‫‪ -1‬تاخیر بین زمان تحویل کار و زمان تکمیل کار‬
‫‪ -2‬نیاز به سخت افیار اضافی‬
‫‪ -3‬عدم وجود اولویت‬
‫‪ -4‬استفاده زیاد از دستگاههای جان ی‬

‫سیستم های دسته ای ‪Online Spooling‬‬


‫با ظهور دیسک های سخت‪ ،‬سیستم های دسته ای متحول شدند‪ .‬در این سیستم ها بالفاصرله بعرد از ورود‬
‫کارها‪ ،‬کارت ها خوانده شده و به دیسک منتقل می شدند‪ .‬زمانی که اجرای یک کار تمام می شود‪ ،‬سیسرتم‬
‫عامل با سرعت بیشتری یک کار جدید را از روی دیسک برداشته و به حافظه اصلی لود کرده و سپس آن را‬
‫اجرا می کند‪.‬‬
‫در خروجی نیی از اسپولینگ استفاده می شود‪ .‬اسناد خروجی ابتدا بر روی دیسک ذخیره شده و زمرانی کره‬
‫خروجی ق لی اپگر تمام شد‪ ،‬این اسناد از دیسک به بافر اپگر منتقل می شوند‪.‬‬
‫در این تکنیک که ‪( Spooling‬عملیات پیوسته‪ ،‬مستقیم و همیمان دستگاه های جان ی) نامیرده مری شرود‪،‬‬
‫ارت اط ‪ CPU‬با دستگاه های جان ی مستقیم است و نیازی به پردازنده های آهسته و نوار زردان های اضافی‬
‫و حمل نوارها توسط اپراتورها نمی باشد‪.‬‬
‫‪SPOOL : Simulataneonus Peripheral Operation On-Line‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪28‬‬ ‫سیستم عامل‬

‫مزایای اسپولینگ ‪ online‬نسبت به ‪ offline‬عبارتند از ‪:‬‬


‫‪ -1‬دسترسی با اولویت‬
‫‪ -2‬زردد سریع کارها‬
‫‪I/O‬‬ ‫‪ -3‬باال بودن راندمان ‪ CPU‬ودستگاههای‬
‫‪ -4‬امکان داشتن همیمان ند مدرک ورودی‪/‬خروجی‬
‫از اسپولینگ برای پردازد داده های راه دور میتوان استفاده کرد‪ CPU .‬دادهها را از طریا مسریرهای‬
‫ارت اطی به اپگر راه دور میفرستد یا ورودی ها را از یرک کرارت خروان راه دور دریافرت میکنرد‪ .‬در‬
‫پردازد راه دور‪ CPU‬دخالت ندارد و فقط مواظب است که ه هنگام کار تمام شود تا دسته دیگرری از‬
‫کارها را جمع آوری کند‪.‬‬

‫نرم افیار ‪ spooler‬کارها را دسته بندی می کند‪ .‬این نرم افیار اجیاء یک کرار(داده‪ ،‬برنامره و‪ ) JCL‬را از‬
‫هم جدا می کند‪ .‬سپس ‪ JCL‬ها دستور به دستور اجرا شده و توسط سیسرتم اسرپولینگ روی دیسرک‬
‫اصلی قرار می زیرند و جدولی به نام )‪ ISPT ( Input SpooL Table‬سراخته مری شرود‪ .‬هرر سرطر ایرن‬
‫می باشد‪.‬‬ ‫یک‪Job‬‬ ‫جدول در برزیرنده اطالعات کنترلی‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪29‬‬ ‫سیستم عامل‬

‫نسل سوم‪ :‬سیستم های دستهای چند برنامگی‬


‫حتی با ردیف کردن خودکار کارها به وسیله سیستم عامل ساده دسته ای‪ ،‬به علت کند برودن دسرتگاههای‬
‫‪ I/O‬در مقایسه با پردازنده‪ ،‬پردازنده اک را بی کار است‪ .‬تمام کارهایی که وارد سیستم میشوند‪ ،‬در ان ار کرار‬
‫‪ ) job‬نگهداری میشوند‪ .‬این کارها شامل فرایندهایی میباشند که بر روی دیسک قرار دارند و منتظر‬ ‫(‪pool‬‬

‫تخصیص حافظه میباشند‪ .‬ازر ند کار آماده ورود به حافظه وجود داشته باشند‪ ،‬سیستم یکری را انتخراو‬
‫کرده (زمان ندی کار) و آنرا به حافظه میآورد تا اجرا کند‪ .‬همچنین ازر ند کار به طور همیمان آماده اجرا‬
‫باشند‪ ،‬سیستم یکی ازآنها را انتخاو میکند و ‪ CPU‬را به آن تخصیص مری دهرد‪( .‬زمان نردی ‪ .)CPU‬ایرده‬
‫ند برنامهای به این صورت است که سیستم عامل در هر زمان ند کار را در حافظه نگه میدارد و یکی از‬
‫کارهای موجود در حافظه را انتخاو کرده و اجرای آن را شروع میکند‪ .‬ازر این کرار منتظرر عمرل دیگرری‬
‫مانند آماده شدن نوار یا تکمیل یک عمل ‪ I/O‬باشد‪ CPU ،‬به اجرای کار دیگری مشرغول میشرود و ازرر آن‬
‫کار نیی نیاز به انتظار داشته باشد‪ ،‬به کار دیگری میپردازد و این روند ادامه مییابد‪ .‬با پایان مدت انتظار کار‬
‫اول‪ ،‬دوباره ‪ CPU‬در اختیار آن قرار میزیرد‪ .‬این عملیات باعث میشود که ‪ CPU‬بیکار نماند‪.‬‬

‫سیستم های دستهای برای اجرای برنامههای بیرگ که نیاز به محاوره کمی دارند‪ ،‬مناسب میباشند‪.‬‬

‫مشکالت سیستم دستهای از نظر کاربر‬


‫‪ -1‬کاربر برای به دست آوردن نتایج مج ور است از کارتهای کنترلی استفاده کند‪.‬‬
‫‪ -2‬مراجعه بعدی در کارهای ند مرحلهای ممکن است به نتایج مراحل ق لی وابسته باشد‪.‬‬
‫دهد‪(.‬دی اگ برنامه ها ایستا می باشد)‬ ‫‪ -3‬برنامه نویس نمیتواند برنامه در حال اجرا را تغییر‬
‫ممکن است حافظه را برای نگهداری ‪ 3،4‬یا تعداد بیشتری از برنامه ها زسترد دهریم و پردازنرده بره‬
‫تمام آنها بپردازد‪ .‬این عمرل را نرد برنامره ای یرا نرد وظیفره ای مری زوینرد کره موضروع اصرلی‬
‫سیستمهای عامل امروزی است‪.‬‬
‫نسل چهارم ‪ :‬سیستم های اشتراک زمانی (‪)Time sharing‬‬
‫سیستم های اشتراک زمانی( ندبرنامگی تعاملی) توسعه منطقی سیستم های ند برنامرهای میباشرند‪ .‬در‬
‫سیستم عامل اشتراک زمانی‪ ،‬وقت پردازنده بین کارها به اشتراک زذاشته می شود‪ .‬برای اجرای نرد کرار‪،‬‬
‫پردازنده بین آنها سوئیچ میکند و کاربران میتوانند با برنامرههای در حرال اجررا تعامرل داشرته باشرند‪ .‬در‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪3۰‬‬ ‫سیستم عامل‬

‫سیستم های اشتراک زمانی ارت اط کاربر با سیستم به صورت محاوره ای )‪ interactive‬یا ‪ )online‬است‪.‬‬
‫سیستم های اشتراک زمانی‪ ،‬هیینه استفاده محاورهای از سیستم های کرامپیوتری را معقرول کردهانرد و برا‬
‫استفاده از زمان ندی ‪ CPU‬و ند برنامهای‪ ،‬به هر کاربر زمان محدودی را تخصیص داده و هر کاربر حداک ر‬
‫یک برنامه در حافظه دارد‪.‬‬
‫در سیستمهای اشتراک زمانی‪ ،‬ون سیستم به سرعت از برنامهای به برنامه دیگرر مریرود‪ ،‬هرر کراربر فکرر‬
‫میکند که یک کامپیوتر اختصاصی در اختیار اوست‪ ،‬در حالی که یک کامپیوتر بین همه کراربران مشرترک‬
‫است‪.‬‬
‫خصوصیات سیستم های اشتراک زمانی ع ارتند از‪:‬‬
‫‪ -1‬پیچیدهتر از ند برنامهای هستند‪.‬‬
‫‪ -2‬برای مواردی که نیاز به زمان پاسخ کوتاه است‪ ،‬استفاده میشوند‪.‬‬
‫‪ -3‬امکان ند برنامگی را فراهم می سازد‪.‬‬
‫‪ -4‬وجود یک سیستم فایل ضروری است‪.‬‬
‫‪ -5‬در ‪ main frame‬قابلیت ند کاربره و ند برنامگی را فراهم می کند‪.‬‬

‫ندبرنامه ای دسته ای و اشتراک زمانی هر دو از ندبرنامگی استفاده می کنند‪.‬‬

‫تفاوتهای اصلی چندبرنامه ای دسته ای با اشتراک زمانی‬


‫اشتراک زمانی‬ ‫چندبرنامه ای دسته ای‬
‫حداقل زمان پاسخ‬ ‫حداک ر استفاده از پردازنده‬ ‫هدف اصلی‬
‫فرمانهایی که از پایانه وارد می‬ ‫دستورالعملهای ‪ JCL‬که همراه کار ارائه‬ ‫منبع دستورات به سیستم‬
‫شود‪.‬‬ ‫شده است‪.‬‬ ‫عامل‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪31‬‬ ‫سیستم عامل‬

‫تذکر‪ :‬سیستم های زیر در کتاو سیل رشاتس آورده شده است‪:‬‬
‫‪ -1‬سیستم های موازی (یا ند پردازنده ای)‬
‫‪ -2‬سیستم های عامل توزیع شده (زسترده)‬
‫‪ -3‬سیستم های عامل بیدرنگ (‪)Real time‬‬
‫سیستم های موازی (یا چند پردازنده ای)‬
‫‪ )Multi‬مینامنرد‪.‬‬ ‫ای(‪Processor‬‬ ‫سیستم هایی که بیش از یک پردازنده در آنها وجود دارد را ند پردازنرده‬
‫پردازندهها در این سیستم با یکدیگر ارت اط نیدیکری دارنرد و از زرذرزاه آدرس‪ ،‬سراعت و زراهی حافظره و‬
‫‪ )tightly‬نیی‬ ‫(‪coupled‬‬ ‫دستگاههای جان ی به طور اشتراکی استفاده میکنند‪ .‬این سیستمها را اتصال محکم‬
‫مینامند‪.‬‬
‫انواع سیستم های چند پردازندهای‬
‫الف‪ -‬چندپردازندهای متقارن‬
‫در سیستم ندپردازندهای متقارن(‪ ،)Symmetric‬هر پردازنده از کپی یکسانی از سیستم عامرل اسرتفاده‬
‫میکند که این کپیها در صورت لیوم با یکدیگر ارت اط برقرار میکنند‪.‬‬
‫ب‪ -‬چندپردازندهای نامتقارن‬
‫در سیستم ند پردازندهای نامتقارن‪ ،‬هر پردازنده کار خاصی را انجام میدهد‪ .‬کنترل سیستم بره عهرده‬
‫پردازنده اصلی میباشد و پردازندههای دیگر منتظر دستور پردازنده اصلی هستند یا کرار از ق رل تعیرین‬
‫شدهای دارند‪ .‬این طرح رئیس‪ /‬مرئوس(‪ )master/slave‬را بیان میکند‪ ،‬که پردازنده اصلی(‪ ،)master‬کارها‬
‫را برای پردازندههای دیگر(‪،)slave‬زمان ندی کرده و به آنها تخصیص میدهد‪.‬‬
‫مزایای سیستم متقارن نسبت به نامتقارن عبارتند از ‪:‬‬
‫‪ -1‬قابل حمل بودن روی سیستم های سخت افیاری مختلف‬
‫‪ -2‬تعادل بار سیستم به علت اجرای سیستم عامل روی ند پردازنده‬
‫دالیل ساخت سیستم های چند پردازندهای‬
‫‪ -1‬افیایش توان عملیاتی )‪ : (throughput‬تعداد کارهای انجام شده در یک واحد زمانی‪.‬‬
‫‪ -2‬افیایش قابلیت اعتماد‬
‫(خرابی یک پردازنده منجر به از کار افتادن سیستم نمی شود بلکه از سرعت آن می کاهد‪).‬‬
‫‪ -3‬مقرون به صرفه بودن از نظر اقتصادی‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪32‬‬ ‫سیستم عامل‬

‫سیستم های عامل توزیع شده (گسترده)‬


‫در این سیستم ها‪ ،‬محاس ات بین ند پردازنده توزیع میشود‪ .‬هر پردازنده‪ ،‬حافظه و ساعت مخصروص بره‬
‫خود را دارد و از طریا خطوط ارت اطی با یکدیگر مرت طاند‪ .‬همچنین پردازندهها از نظر اندازه و عملکررد برا‬
‫یکدیگر فرق دارند‪ .‬سیستم های توزیعی را سیستم های ارت اط ضعیف (‪ )Loselycoupled‬نیی میزویند‪.‬‬
‫دالیل ساخت سیستم های توزیعی‬
‫الف‪ -‬اشتراک منابع ‪ :‬کاربری دریک سایت میتواند از اپگری در سایت دیگر استفاده کند‪.‬‬
‫ب‪ -‬قابلیت اعتماد‪ :‬خرابی یک کامپیوتر‪ ،‬دیگری را تحت تاثیر قرار نمیدهد‪.‬‬
‫ج‪ -‬افزایش سرعت محاسبات‪ :‬توزیع یک محاس ه در بین ند سایت‬
‫د‪ -‬ارتباطات‬
‫سیستم های عامل بیدرنگ (‪)Real time‬‬
‫سیستم عامل بیدرنگ(بالدرنگ)‪ ،‬نوعی ازسیستم عاملهای همه منظوره میباشد و در صورتی به کار زرفته‬
‫میشود که برای عملکرد یک پردازنده نیاز به زمان دقیقی باشد‪ .‬یک سیستم بیدرنرگ وقتری درسرت کرار‬
‫میکند که در محدودیت زمانی مشخص‪ ،‬نتایج مورد انتظار را تولید کند‪ .‬یعنی پردازد بایرد در محردودیت‬
‫زمانی خاص انجام شود وزرنه سیستم از کار میافتد‪.‬‬
‫سیستم های نظامی‪ ،‬تیریا سوخت اتوم یل‪ ،‬کنترل کنندههای لوازم خانگی‪،‬کنترل صرنعتی و تصویرسرازی‬
‫پیشکی نمونه هایی از سیستم های بی درنگ می باشند‪ .‬سیستم های بی درنگ بر دو نوع نرم و سخت مری‬
‫باشند‪.‬‬

‫‪) Soft‬‬ ‫ویژگی های سیستم های بی درنگ نرم (‪Real Time‬‬

‫‪ -1‬دارای محدودیت زمانی نس تا دقیقی می باشند‪.‬‬


‫‪ -2‬در پروهه های علمی پیشرفته استفاده میشوند‪.‬‬
‫‪ -3‬با سیستم های دیگر قابل ترکیب می باشند‪.‬‬
‫‪ -4‬مهلت زمانی را پشتی انی نمی کنند‪( .‬از آنها در کنترل صنعتی و روباتها استفاده نمی شود‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪33‬‬ ‫سیستم عامل‬

‫‪)Hard‬‬ ‫ویژگی های سیستم های بی درنگ سخت (‪Real Time‬‬

‫‪ -1‬دارای محدودیت زمانی دقیقی می باشند و کارهای بحرانی به موقع انجام میشوند‪.‬‬
‫‪ -2‬تمام تاخیرهای موجود درسیستم باید از بین بروند‪.‬‬
‫‪ -3‬از ویژزیهای پیشرفته سیستم عامل استفاده نمیشود‪.‬‬
‫‪ -4‬با سیستم های اشتراک زمانی برخورد (‪ )Conflict‬دارند و با یکدیگر ترکیب نمی شوند‪.‬‬
‫‪ -5‬هیچکدام از سیستم های همه منظوره موجود از عملکرد بیدرنگ سخت پشتی انی نمیکنند‪.‬‬
‫انواع سیستم عامل از نظرساختاری‬
‫انواع سیستم عامل از نظرساختاری ع ارتند از‪:‬‬
‫)‪(Monolitic‬‬ ‫‪ -1‬یکپار ه‬
‫)‪(Layered‬‬ ‫‪ -2‬الیه ای‬
‫)‪(Virtual Machine‬‬ ‫‪ -3‬ماشین مجازی‬
‫خدمتگیار )‪(Client /Server‬‬ ‫‪ -4‬مشتری–‬
‫ساختار یکپارچه‬
‫ساده ترین ساختار برای سیستم عامل است که در ‪ DOS‬از آن استفاده می شود‪ .‬در این ساختار واسط هرا و‬
‫سطوح عملکرد به خوبی از هم تفکیک نشده اند و برنامه های کاربردی می توانند به روالهرای ‪ I/O‬دسرتیابی‬
‫داشته باشند و مستقیما بر روی مونیتور یا دیسک بنویسند‪.‬‬
‫ساختار الیهای‬
‫با اعمال خاصیت پیمانه ای بودن به سیستم عامل‪ ،‬سیستم عامل می تواند کنترل بیشتری بر روی کامپیوتر‬
‫است که سیسرتم‬ ‫و برنامه های کاربردی داشته باشد‪ .‬یکی از بهترین روشها برای این کار‪ ،‬رود الیه ای‬
‫عامل را به تعدادی الیه تقسیم می کند و هر کدام بر روی یکردیگر قررار مری زیرنرد‪ .‬الیره پایینی(شرماره‬
‫صفر)‪ ،‬سخت افیار است و الیه باالیی واسط کاربر است‪ .‬طراحی و پیاده سازی ساختار الیه ای ساده است‪.‬‬
‫ویژگی های ساختار الیه ای‬
‫‪ -1‬هر الیه فقط از توابع و خدمات الیه های پایین تر استفاده می کند که باعث ساده شردن خطایرابی مری‬
‫شود‪.‬‬
‫‪ -2‬خطایابی از الیه پایین شروع می شود و سپس الیه بعدی خطا یابی می شود‪ .‬ازر در حین خطایابی الیه‬
‫ای‪ ،‬خطایی یافت شود‪ ،‬می دانیم که خطا در همان الیه است‪ ،‬زیرا الیه های پایینی ق ال خطا یابی شده اند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪34‬‬ ‫سیستم عامل‬

‫‪ -3‬هر الیه می تواند عملیات‪ ،‬ساختمان داده ها و سخت افیار را از الیه های باالتر مخفی کند‪.‬‬
‫مشکالت روش الیه ای عبارتند از‪:‬‬
‫‪ -1‬هر الیه نیاز به برنامه رییی دقیقی دارد‪ ،‬ون فقط می تواند از الیه های زیرین استفاده کند‪.‬‬
‫‪ -2‬پایین بودن کارایی نس ت به روشهای دیگر‪(.‬تولید سربار زیاد)‬

‫مزایای ساختار الیه ای نسبت به یکپارچه عبارتند از‪:‬‬


‫‪ -3‬مدیریت ساده تر‬ ‫‪ -2‬خطایابی ساده تر‬ ‫‪ -1‬قابلیت زسترد بیشتر‬
‫ساختار ماشین مجازی )‪(Virtual Machine‬‬
‫یک سیستم کامپیوتری دارای الیه های سخت افیار‪ ،‬هسته و برنامه های سیسرتم مری باشرد‪ .‬برنامره هرای‬
‫سیستم که در باالی هسته قرار دارند‪ ،‬می توانند از فراخوانیهای سیستم و دستورات سخت افیاری اسرتفاده‬
‫کنند‪ .‬بعضی سیستمها از این الگو ت عیت می کنند و حتی برنامه های سیستم می تواننرد از طریرا برنامره‬
‫های کاربردی فراخوانی شوند و برنامه های سیستم می توانند آنچه را که در زیر آنهرا قررار دارد را مشراهده‬
‫نمایند‪ ،‬به طوری که زویی برنامه های کاربردی بخشی از خود ماشین هستند‪ .‬این شیوه الیه ای را ماشرین‬
‫‪DOS‬‬ ‫مجازی می نامند که یک کپی از کامپیوتر در اختیار هر فرایند قرار می دهد‪ .‬اجرا شدن سیستم عامل‬
‫تحت محیط ویندوز با استفاده از ایده ماشین مجازی انجام زرفته است‪.‬‬

‫مزایای ساختار ماشین مجازی‬


‫‪ -1‬امکان اجرای هم زمان ند سیستم عامل مختلف‪.‬‬
‫‪ -2‬ش یه سازی دستورات ماشینی که کامپیوتر فاقد آن است‪.‬‬
‫‪ -3‬امکان برنامه نویسی به زبان های غیر اسم لی‪.‬‬
‫‪ -4‬تست سیستم عامل جدید‪.‬‬

‫با تغییراتی در رود ماشین مجازی‪ ،‬ساختاری بره نرام ‪ Exokernels‬بره وجرود آمرده اسرت‪ .‬در ایرن‬
‫ساختار نیازی به الیه نگاشت نمی باشد و همچنین برنامه ای در پایین ترین الیره در مرد هسرته اجررا‬
‫شده که منابع را به ماشین های مجازی تخصیص داده و بررسی می کند که ماشینی از منرابع ماشرین‬
‫دیگر استفاده نکند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪35‬‬ ‫سیستم عامل‬

‫ساختار مشتری – خدمتگزار (‪)Client – Server‬‬


‫در این ساختار‪ ،‬اک ر وظایف سیستم عامل در سطح کاربر انجام می شرود و هسرته از طریرا پیرام هرا برین‬
‫مشتری‪/‬خدمتگیار ارت اط برقرار می سازد‪ .‬ایده طراحی این ساختار‪ ،‬کمینه کردن هسته و انتقرال کردها بره‬
‫الیه های باالتر می باشد‪ .‬میایای ساختارهای مشتری– خدمتگیار ع ارتند از‪:‬‬
‫‪ -1‬طراحی ساده تر سیستم عامل‬
‫‪ -2‬استفاده در سیستم های توزیعی‬
‫‪ -3‬عدم خرابی کل سیستم در صورت خرابی یک سرور‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪36‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫( مهندسی کامپیوتر‪ -‬دولتی ‪)86‬‬


‫‪ -1‬کدام یک از دستور العمل های زیر‪ ،‬فقط قادر به اجرا در مد کرنل )‪ (Kernel Mode‬است؟‬
‫‪ )2‬خواندن ‪PSW‬‬ ‫‪ )1‬خواندن ساعت سیستم‬
‫‪ )4‬نوشتن در ث ات دستور العمل‬ ‫‪ )3‬تنظیم زمان سیستم‬
‫پاسخ‪ :‬زیینه ‪ 3‬درست است‪.‬‬
‫( مهندسی ‪ – IT‬دولتی ‪)86‬‬
‫‪ -2‬مدیریت منابع حافظه ای زیر با کدام عامل است؟‬
‫‪ -4‬فضای دیسک‬ ‫‪ -2‬حافظه پنهان )‪ -3 (cache‬حافظه اصلی‬ ‫‪ -1‬ث ات ها‬
‫(تذکر‪ :‬منظور از خودکار‪ ،‬سخت افزاری است)‬
‫‪ -4‬سیستم عامل‬ ‫‪ -3‬سیستم اصلی‬ ‫‪ -2‬سیستم عامل‬ ‫‪ -1 )1‬کاربر‬
‫‪ -4‬سیستم عامل‬ ‫‪ -3‬سیستم عامل‬ ‫‪ -2‬خودکار‬ ‫‪ -1 )2‬کامپایلر‬
‫‪ -4‬خودکار‬ ‫‪ -3‬کامپایلر‬ ‫‪ -2‬سیستم عامل‬ ‫‪ -1 )3‬کاربر‬
‫‪ -4‬سیستم عامل یا خودکار‬ ‫‪ -3‬سیستم عامل‬ ‫‪ -2‬خودکار‬ ‫‪ -1 )4‬خودکار‬
‫پاسخ‪ :‬زیینه ‪ 2‬درست است‪.‬‬
‫حافظه اصلی و فضای دیسک توسط سیستم عامل مدیریت می شود‪.‬‬

‫( مهندسی ‪ – IT‬دولتی ‪)88‬‬


‫‪ -3‬فرض کنید زمان محاس ات یک فرآیند ‪ 200‬سیکل ‪ CPU‬باشد‪ .‬در ضمن عملیات ‪ I/O‬در حال انجام بررای یرک فرآینرد‬
‫دیگر از طریا ‪ DMA‬در حال انجام بوده و پس از ‪ 100‬سیکل ‪ ،CPU‬پایان عملیات ‪ I/O‬توسط یک وقفه به سیسرتم اطرالع‬
‫داده شود‪ .‬ازر زمان اجرای ‪ ISR‬را ‪ 10‬سیکل ‪ CPU‬فرض کنیم‪ ،‬کل عملیات مذکور ه مقدار از زمران سیسرتم را بره خرود‬
‫اختصاص می دهند؟ (زمان هر سیکل ‪ cpu‬را معادل یک واحد زمانی فرض کنید‪).‬‬
‫‪ )2‬کمتر از ‪ 210‬واحد زمانی‬ ‫‪ 210 )1‬واحد زمانی‬
‫‪ )4‬بیشتر از ‪ 210‬واحد زمانی‬ ‫‪ 310 )3‬واحد زمانی‬
‫پاسخ‪ :‬زیینه ‪ 4‬درست است‪.‬‬
‫فرایند اول برای انجام محاس اتش به اندازه ‪ 200‬سیکل به ‪ CPU‬نیاز دارد و فرایند دوم معادل ‪ 100‬سریکل مشرغول انجرام‬
‫عملیات ‪ I/O‬می باشد و ون از ‪ DMA‬استفاده می شود‪ ،‬این دو عمل همیمان انجام شرده و بره ‪ 200‬سریکل نیراز اسرت‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪37‬‬ ‫سیستم عامل‬

‫همچنین ‪ 10‬سیکل نیی صرف اجرای ‪ ISR‬فرایند دوم می شود‪ .‬ال ته در هنگام کار با ‪ DMA‬و انجام ‪ ، I/O‬زراهی زرذرزاه‬
‫در اختیار ‪ DMA‬قرار می زیرد و زمان اجرای فرایند اول بیشتر از ‪ 200‬سیکل خواهد شد‪ .‬بنابراین کل عملیات بره بریش از‬
‫‪ 210‬سیکل نیاز دارد‪.‬‬

‫(مهندسی کامپوتر‪ -‬آزاد ‪)79‬‬


‫‪ -4‬جدول زیر زمان های الزم برای ورود‪ ،‬محاس ه و خروج ‪ 3‬کار را در یک سیستم دسته ای برا ‪ Spooling‬نشران مری دهرد‪.‬‬
‫حداقل کل زمان مصرفی برای اجرای هر ‪ 3‬کار به شرط آنکره ترتیرب ورود کارهرا تعیرین کننرده ترتیرب پرردازد و ترتیرب‬
‫خروجی آن ها باشد‪ ،‬قدر است؟‬
‫زمان خروج زمان پردازد زمان ورود‬
‫‪Job1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪Job2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪Job3‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫‪2‬‬

‫‪17 )4‬‬ ‫‪20 )3‬‬ ‫‪10 )2‬‬ ‫‪27 )1‬‬

‫پاسخ‪ :‬زیینه ‪ 4‬درست است‪.‬‬


‫در سیستم دسته ای که از تکنیک ‪ Online Spooling‬استفاده می کند‪ ،‬امکان پردازد یک کار‪ ،‬همیمان برا ‪ I/O‬سرایر کارهرا‬
‫وجود دارد‪ .‬ط ا جدول‪ ،‬ورود ‪ 5 ، job1‬واحد زمانی طول می کشد‪ .‬در این زمان پردازشی انجام نمی شود‪ .‬با پایان ورود ‪Job1‬‬

‫‪ ،‬پردازد آن در لحظه ‪ 5‬شروع شده و تا لحظه ‪ 9‬ادامه مری یابرد‪ .‬در زمران‪ 5‬ترا ‪ 7‬نیری ‪ job2‬از ورودی دریافرت مری شرود‪.‬‬
‫اجرای‪ job1‬در لحظه ‪ 9‬تمام شده و به خروجی فرستاده می شود و ‪....‬‬
‫بنابراین داریم‪:‬‬
‫پردازد ورود کارها‬ ‫خروج‬
‫‪Job1‬‬ ‫‪0..5‬‬ ‫‪5..9‬‬ ‫‪9..10‬‬
‫‪Job2‬‬ ‫‪5..7‬‬ ‫‪9..11‬‬ ‫‪11..14‬‬
‫‪Job3‬‬ ‫‪7..12‬‬ ‫‪12..15‬‬ ‫‪15..17‬‬
‫در لحظه ‪ 11‬تا ‪ 12‬پردازشی انجام نمی شود‪ ،‬ون اجرای ‪ job2‬تمام شده و ورود ‪ job3‬کامل نشده است‪.‬‬
‫در لحظه ‪ 10‬تا ‪ 11‬خروجی نداریم‪ ،‬ون خروجی ‪ job1‬تمام شده ولی پردازد ‪ job2‬تمام نشده است‪.‬‬
‫در لحظه ‪ 14‬تا ‪ 15‬خروجی نداریم‪ ،‬ون خروجی ‪ job2‬تمام شده ولی پردازد ‪ job3‬تمام نشده است‪.‬در لحظره ‪ 17‬آخررین‬
‫کار خارج می شود‪.‬‬
‫(مهندسی کامپیوتر‪ -‬آزاد ‪)71‬‬
‫‪ -5‬در یک سیستم عامل گسترده )‪ ، (Distributed Operating System‬کدام یک از موارد زیر درست نیست؟‬
‫‪ )1‬ندین ‪ CPU‬مستقل از نظر جغرافیایی با هم فاصله دارند و تحت یک سیستم عامل کار می کنند‪.‬‬
‫‪ )2‬در ت ادل پیغام کاربران می بایست آدرس ماشین های یکدیگر را بدانند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪38‬‬ ‫سیستم عامل‬

‫‪ )3‬محل استقرار فایل ها در کنترل کاربران نمی باشد‪.‬‬


‫‪ )4‬قابلیت اطمینان یک سیستم عامل زسترده از یک سیستم عامل متمرکی بیش تر است‪.‬‬
‫پاسخ‪ :‬زیینه ‪ 2‬جواو است‪.‬‬
‫در سیستم عامل های توزیع شده‪ ،‬می توان منابع را با نام آنها (بدون نیاز به دانستن آدرس آن هرا)‪ ،‬فراخروانی کررد‪ .‬بره ایرن‬
‫خاصیت "شفافیت" می زویند‪.‬‬

‫(مهندسی ‪ -IT‬آزاد ‪)90‬‬


‫‪ -6‬امکان انتقال یک کلمه توسط واحد ‪ DMA‬در کدام نقطه از یک رخه دستورالعمل وجود ندارد؟‬
‫‪ )2‬پس از کدزشایی دستورالعمل‬ ‫‪ )1‬پس از اجرای دستورالعمل‬
‫‪ )4‬پس از ذخیره نتایج‬ ‫‪ )3‬پس از واکشی عملوندها‬
‫پاسخ‪ :‬زیینه ‪ 3‬جواو است‪.‬‬
‫امکان انتقال یک کلمه توسط واحد ‪ DMA‬پس از واکشی عملوندها وجود ندارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪39‬‬ ‫سیستم عامل‬

‫‪2‬‬ ‫فصل‬

‫فرآیند‬

‫در این فصل مفهوم فرایند و حاالت فرایند بررسی می شوند‪ .‬همچنین نخ نیی توضیح داده می شود‪.‬‬

‫فرایند و حاالت آن‬


‫به برنامه در حال اجرا‪ ،‬فرآیند)‪ (process‬می زویند‪ .‬یک فرایند می تواند در یکی از حالتهای زیر باشد‪:‬‬
‫‪ -1‬آماده)‪ : (READY‬فرایندی که وقتی به آن فرصت داده شود‪ ،‬برای اجرا آماده باشد‪.‬‬

‫‪ -2‬اجرا )‪ : (Running‬فرایندی که هم اکنون در حال اجر می باشد‪.‬‬

‫‪ -3‬مسدود )‪ : (Blocked‬فرایندی که تا بروز حادثهای (م ل اتمام یک عمل ‪ ،)I/O‬نمیتواند اجرا شود‪.‬‬

‫‪ -4‬جدید )‪ : (New‬فرایندی که هم اکنون زرفته شده است‪ ،‬اما هنوز جیء فرایندهای قابل اجرای سیستم عامل پذیرفته‬
‫نشده باشد‪.‬‬
‫‪ :‬فرایندی که اجرای آن پایان یافته است و یا اجرای آن قطع شده و از مجموعه‬ ‫)‪(Terminated‬‬ ‫‪ -5‬خروج‬
‫فرایندهای قابل اجرای سیستم عامل خارج شده است‪.‬‬
‫تذکر ‪ :‬به حالت مسدود‪ ،‬حالت بسته یا انتظار نیی می زویند‪.‬‬

‫در شکل زیر این حاالت‪ ،‬نشان داده شده است‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪4۰‬‬ ‫سیستم عامل‬

‫تغییر حاالت ممکن‬


‫‪ -1‬جدید به آماده‬
‫ازر سیستم عامل آمادزی زرفتن یک فرایند دیگر را داشته باشد‪ ،‬فرایند موجود در حالت جدید را به حالت آماده میبرد‪.‬‬

‫‪ -2‬آماده به اجرا‬
‫سیستم عامل یکی از فرایندهای موجود در حالت آماده که وقت اجرای آن فرا رسیده اسرت را انتخراو کررده و از حالرت‬
‫آماده به اجرا میبرد‪ .‬به این عمل توزیع ) ‪ ( Dispatch‬می زویند‪.‬‬

‫‪ -3‬اجرا به خروج‬
‫وقتی که فرایند جاری اعالم پایان کند‪ ،‬سیستم عامل آن را از حالت اجرا به خروج میبرد‪.‬‬
‫‪ -4‬اجرا به مسدود‬
‫وقتی فرایندی ییی را بخواهد که به خاطر آن باید منتظر بماند‪ ،‬سیستم عامل آن فراینرد را از حالرت اجررا بره مسردود‬
‫میبرد‪ .‬به این عمل بلوکه شدن می زویند‪ .‬م الً فرایندی یک عمل ‪ I/O‬را شروع کند که ق رل از تکمیرل نیراز بره بخرش‬
‫مشترکی از حافظه مجازی را داشته باشد که فوراً فراهم ن اشد یا منتظر دریافت ورودی از یک فرایند دیگر باشد‪.‬‬
‫‪ -5‬مسدود به آماده‬
‫وقتی حادثهای که فرایند منتظر آن بوده است رخ دهد‪ ،‬از حالت مسدود به آماده میرود‪ .‬بره ایرن عمرل ‪ wake up‬مری‬
‫زویند‪.‬‬
‫‪ -6‬اجرا به آماده‬
‫متداول ترین دلیل انتقال یک فرایند از حالت اجرا به آماده‪ ،‬اتمرام زمران مجراز بررای اجررای فراینرد جراری در سیسرتم‬
‫عاملهای ند برنامهای می باشد‪.‬‬
‫‪ -7‬آماده به خروج‬
‫در بعضی سیستمها‪ ،‬یک پدر می تواند هر لحظه که بخواهد‪ ،‬فرایند فرزند خود را پایان دهد و یا برا پایران یرافتن فراینرد‬
‫پدر‪ ،‬ممکن است همه فرایندهای فرزند آن نیی پایان یابند‪.‬‬
‫‪ -8‬مسدود به خروج‬
‫مانند توضیحات آماده به خروج است‪.‬‬
‫‪ -9‬تهی به آماده‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪41‬‬ ‫سیستم عامل‬

‫فرایند جدیدی را برای اجرای یک برنامه ایجاد می کند‪.‬‬

‫وجود وضعیت مسدود باعث افیایش بهره وری پردازنده می شود‪ .‬ون وقتی فرایند در حال اجرا نیاز بره ‪ I/O‬پیردا مری‬
‫کند‪ ،‬به حالت ‪ Blocking‬منتقل شده و فرایند آماده دیگری به قسمت اجرا منتقل مری شرود‪ ،‬ترا در حرد امکران ‪CPU‬‬

‫بیکار نماند‪.‬‬
‫دسته بندی فرایندها‬
‫بطور کلی فرایندها به دو دسته تقسیم میشوند‪:‬‬
‫‪ -1‬محدود به ‪)CPU Limited( CPU‬‬
‫بیشتر زمان کامپیوتر صرف محاس ات ‪ CPU‬میشود‪.‬‬
‫‪ -2‬محدود به ورودی‪ /‬خروجی (‪)I/O Limited‬‬
‫بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطالعات میشود‪.‬‬
‫دالیل ایجاد یک فرایند جدید‬
‫‪ -1‬برقراری ارتباط محاوره ای‬
‫کاربر از طریا پایانه با سیستم ارت اط برقرار می کند‪.‬‬
‫‪ -2‬ارائه سرویس به وسیله سیستم عامل‬
‫سیستم عامل می تواند فرایندی را برای ارائه خدمتی از طرف برنامه کاربر ایجاد نماید‪ ،‬بدون اینکه کاربر نا ار به انتظرار‬
‫باشد‪.‬‬
‫‪ -3‬زایش توسط یک فرایند موجود‬
‫به منظور بهره زیری از توازی با تفکیک‪ ،‬برنامه کاربر می تواند ایجاد فرایندهای جدیدی را دیکته کند‪.‬‬
‫‪-4‬کار دسته ای جدید‬
‫سیستم عامل با جریانی از کارهای دسته ای روبه رو می باشد‪ .‬وقتی برای زرفتن یک کار جدید آماده است‪ ،‬دن اله بعدی‬
‫از فرمانهای کنترل کار را می خواند‪.‬‬
‫عملیات ایجاد فرایند‬
‫‪ -2‬تخصیص فضا برای فرایند‬ ‫‪ -1‬تخصیص یک شناسه یکتا به فرایند جدید‬
‫‪ -4‬برقراری پیوندهای الزم‬ ‫‪ -3‬مقدار دهی اولیه ‪PCB‬‬
‫‪ -5‬ایجاد و زسترد ساختمان داده های ممکن دیگر‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪42‬‬ ‫سیستم عامل‬

‫دالیل پایان یک فرایند‬


‫فراخوانی یک سرویس سیستم عامل برای بیان تکمیل اجرایش‬ ‫پایان طبیعی‬
‫در فرایند محاوره ای‪ ،‬مقدار زمانی که از آخرین ورودی کاربر زذشته است‪.‬‬ ‫سقف زمانی‬
‫انتظار زیادتر از حد برای بروز یک حادثه مشخص‬ ‫گذشت زمان‬
‫نیاز به حافظه ای بیش از آنچه که سیستم می تواند فراهم کند‪.‬‬ ‫نبود حافظه‬
‫مراجعه به محلهای غیر مجاز در حافظه‬ ‫تجاوز از حدود‬
‫تالد برای دسترسی به من عی که مجاز به استفاده از آن نیست‪.‬‬ ‫خطای حفاظت‬
‫مانند تقسیم بر صفر یا تالد برای ذخیره عددی بیرزتر از ظرفیت سخت افیاری‬ ‫خطای محاسباتی‬
‫مانند پیدا نکردن یک فایل‬ ‫خطای ورودی‪/‬خروجی‬
‫تالد برای اجرای دستورالعملی که وجود ندارد‬ ‫دستورالعمل نامعتبر‬
‫تالد برای اجرای دستورالعملی که مخصوص سیستم عامل است‬ ‫دستورالعمل ممتاز‬
‫داده با نوع نامناسب یا بدون مقدار اولیه‬ ‫استفاده نامناسب از‬
‫داده‬
‫به دالیلی مانند بن بست‬ ‫دخالت سیستم عامل‬
‫با پایان یک فرایند‪ ،‬فرایندهای فرزند آن نیی پایان داده شوند‬ ‫پایان یافتن پدر‬
‫فرایند حا پایان دادن به هر یک از فرایندهای فرزند خود را دارد‪.‬‬ ‫درخواست پدر‬

‫بلوک کنترل فرایند (‪)PCB‬‬


‫‪ ( Process Control‬مشخص‬ ‫)‪Bolock‬‬ ‫هر فرایند در سیستم بوسیله یک ساختاری به نام بلوک کنترل فرایند‬
‫میشود‪ .‬این بلوک مهمترین و محوریترین ساختمان داده در سیستم عامل است که تمام اطالعات مورد نیاز‬
‫سیستم عامل در مورد یک فرایند را در بردارد‪.‬‬

‫‪ PCB‬شامل موارد زیر است‪:‬‬


‫‪ -1‬حالت فرایند ‪ :‬یک فرایند می تواند در یکی از حاالت جدید‪ ،‬آماده‪ ،‬اجرا‪ ،‬انتظار و غیره باشد‪.‬‬
‫‪ -2‬شمارنده برنامه ‪ :‬شامل آدرس دستور بعدی که باید اجرا شود‪.‬‬
‫‪ -3‬اطالعات زمانبندی ‪ : CPU‬شامل اولویت فرایند و اشاره زر به صف زمان ندی‪.‬‬
‫‪ -4‬اطالعات مدیریت حافظه ‪ :‬شامل مقدار ث اتهای پایه و حد‪ ،‬جدولهای صفحه یا قطعه‪.‬‬
‫‪ :‬مییان استفاده از پردازنده‪ ،‬محدویتهای زمانی‪ ،‬شماره فرایند‪.‬‬ ‫‪ -5‬اطالعات حسابرسی‬
‫‪ -6‬اطالعات وضعیت ‪ : I/O‬شامل لیست دستگاههای ‪ I/O‬تخصیص داده شده به فرایند‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪43‬‬ ‫سیستم عامل‬

‫‪ -7‬ثباتهای ‪CPU‬‬

‫تفاوت تعویض حالت با تعویض فرایند‬


‫تعویض حالت و تعویض فرایند(تعویض متن) دو مفهوم مجیا هستند‪ .‬ممکن است تعویض حالت بدون تغییر‬
‫حالت فرایندی که در حال اجراست‪ ،‬صورت زیرد‪ .‬تعویض فرایند که متضمن تغییر حالت است‪ ،‬در مقایسره‬
‫با تعویض حالت‪ ،‬به تالد بیشتری نیاز دارد‪.‬‬

‫گامهای که در یک تعویض فرایند کامل وجود دارد‪:‬‬


‫‪ -1‬ذخیره سازی متن پردازنده‬
‫‪ -2‬بهنگام سازی بلوکهای کنترل فرایندی که هم اکنون در حالت اجراست‪.‬‬
‫‪ -3‬انتقال بلوک کنترل فرایند مربوط به این فرایند به صف مناسب‬
‫‪ -4‬انتخاو فرایند دیگری برای اجرا‬
‫‪ -5‬بهنگام کردن بلوک کنترل فرایند مربوط به فرایند انتخاو شده‬
‫‪ -6‬بهنگام سازی ساختمان داده های مدیریت حافظه‬
‫‪ -7‬بارزذاری مجدد متن پردازنده‬
‫فرایند معلق‬
‫فرایند معلا‪ ،‬فرایندی است که فوراً آماده اجرا نیست‪ .‬فرایند معلا توسط عاملی مانند سیستم عامل‪ ،‬خودد یا فراینرد پردر‪،‬‬
‫در حالت معلا قرار زرفته‪ .‬تا وقتی عامل تعلیا فرمان ندهد‪ ،‬نمی توان فرایند را از حالت معلا خارج کرد‪.‬‬
‫دالیل معلق کردن یک فرایند‬
‫‪ -1‬مبادله ‪:‬برای آوردن فرایندی که آماده اجراست‪ ،‬سیستم عامل نیاز به آزاد کردن حافظه کافی دارد‪.‬‬

‫‪ -2‬ترتیب زمانی‪ :‬اجراء به طور دوره ای و به تعلیا رفتن آن هنگام انتظار برای اجرای بعدی‬

‫‪ -3‬درخواست کاربر محاوره ای ‪ :‬به منظور اشکالیدایی یا استفاده از منابع‬

‫‪ -4‬دالیل دیگر سیستم عامل ‪ :‬معلا کردن یک فرایند مضنون‬

‫‪ -5‬درخواست فرایند پدر ‪ :‬به طور نمونه فرایند ‪ ، A‬فرایند ‪ B‬را تولید کرده تا عمل خواندن از یک فایل را انجام دهد‬
‫و فرایند ‪ B‬در هنگام خواندن با خطایی مواجه شود و آنرا به فرایند ‪ A‬زیارد دهد‪ ،‬فرایند ‪ A‬در این حالت بررای رسریدزی‬
‫به علت خطا‪ ،‬فرایند ‪ B‬را به حالت معلا میبرد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪44‬‬ ‫سیستم عامل‬

‫نمودار تغییرحالت فرایند با حاالت معلق‬


‫وقتی هیچ یک از فرایندهای موجرود در حافظره اصرلی در حالرت آمراده نیسرتند‪ ،‬سیسرتم عامرل یکری از‬
‫فرایندهای مسدود را از حافظه اصلی خارج و به صف فرایندهای معلا در روی دیسک مری بررد (م ادلره) و‬
‫فرایند دیگری را از صف معلا به حافظه اصلی می آورد یا درخواست فرایند جدیدی را می پذیرد و اجررا برا‬
‫این فرایند جدید ادامه می یابد‪.‬‬
‫وجود وضعیت معلا‪ ،‬موجب اجرای فرایند جدید حتی در صورت پر بودن حافظه اصلی می شود‪.‬‬
‫بنابراین حالت معلق را به حالتهای گفته شده‪ ،‬اضافه می کنیم‪:‬‬
‫‪ -1‬مسدود و معلق)‪(Suspend-Wait‬‬

‫فرایند مورد نظر در حافظه ثانوی و منتظر حادثه ای است‪.‬‬


‫‪ -2‬آماده و معلق )‪(Suspend-Ready‬‬

‫فرایند مورد نظر در حافظه ثانوی و به محض لود شدن در حافظه اصلی آماده اجراست‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪45‬‬ ‫سیستم عامل‬

‫حاالت ممکن در این نمودار‬


‫‪ -1‬مسدود به مسدود و معلق‬
‫وقتی هیچ فرایند آماده ای وجود نداشته باشد‪ ،‬فرایند مسدودی به خارج برده می شود ترا جرا بررای فراینرد دیگرری کره‬
‫مسدود نیست فراهم شود‪ .‬این تغییر حالت حتی در مواردی که فرایندهای آماده هم وجود دارد مری توانرد جهرت حفرظ‬
‫کارایی انجام شود‪.‬‬

‫‪ -2‬مسدود و معلق به آماده و معلق‬


‫وقتی حادثه ای که یک فرایند مسدود و معلا منتظر آن بوده است رخ دهرد بره حالرت آمراده و معلرا‬
‫میرود‪.‬‬

‫‪ -3‬آماده و معلق به آماده‬


‫وقتی که هیچ فرایند آماده ای در حافظه اصلی ن اشد‪ ،‬سیستم عامل یک فرایند آماده و معلا را به حالت آماده مری آورد‪.‬‬
‫همچنین ممکن است فرایند موجود در حالت آماده و معلا دارای اولویت بیشتری نس ت به همه فرایندهای آمراده باشرد‬
‫که در این حالت فرایند به حالت آماده‪ ،‬آورده می شود‪.‬‬

‫‪ -4‬آماده به آماده و معلق‬


‫به طور معمول سیستم عامل ترجیح می دهد یک فرایند مسدود را به جای فرایند آماده‪ ،‬به حال تعلیرا در آورد‪ .‬ولری در‬
‫صورتی که راهی برای خالی کردن حافظه اصلی ن اشد‪ ،‬یک فرایند آماده را به تعلیا در می آورد‪ .‬سررانجام ممکرن اسرت‬
‫سیستم عامل یک فرایند آماده ولی با اولویت کم را به جای فرایند مسدودی که اولویتش بیشتر است و زمران مری کنرد‬
‫بیودی آماده می شود به حالت معلا می برد‪.‬‬
‫‪ -5‬مسدود و معلق به مسدود‬
‫ازر اولویت فرایندی که در صف مسدود و معلا است از اولویت همه فرایندهای موجود در صف آماده و معلا بیشتر باشرد‬
‫و سیستم عامل زمان کند که حادثه ای که این فرایند مسدود‪ ،‬منتظر آن بوده است به زودی رخ دهرد‪ ،‬آن را بره حالرت‬
‫مسدود می آورد‪ .‬ال ته باید مقداری از حافظه اصلی خالی باشد تا آوردن یک فرایند مسدود به حافظه نس ت به یک فرایند‬
‫آماده معقول به نظر برسد‪.‬‬

‫‪ -6‬اجرا به آماده و معلق‬


‫معموال با پایان زمان منظور شده برای فرایند جاری‪ ،‬فرایند به حالت آماده منتقل می شود‪ .‬در اینحالت ازر این فرایند بره‬
‫خاطر فرایند با اولویت بیشتری ق ضه شود‪ ،‬سیستم عامل می تواند فرایند جاری را مستقیما به صف آماده و معلا منتقرل‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪46‬‬ ‫سیستم عامل‬

‫کند تا بخشی از حافظه اصلی آزاد شود‪.‬‬

‫‪ -7‬مختلف به خروج‬
‫ممکن است یک فرایند از هر حالتی به حالت خروج منتقل شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪47‬‬ ‫سیستم عامل‬

‫انواع زمان ندها‬


‫کلید ند برنامگی زمان ندی است‪ .‬زمان ندی بر روی کارایی سیستم اثر میزرذارد‪ ،‬زیررا مشرخص میکنرد‬
‫کدام فرایندها منتظر مانده و کدام فرایندها به جلو بروند‪ .‬انواع زمان ندی برای پردازنده ع ارت است از‪:‬‬
‫(‪)Long Term Scheduler‬‬ ‫‪ -1‬زمانبند بلند مدت‬
‫تصمیم زیری در مورد افیودن به مجموعه فرایندها برای اجرا‪.‬‬
‫میان مدت(‪)Middle Term Scheduler‬‬ ‫‪ -2‬زمانبند‬
‫تصمیم زیری در مورد افیودن به تعداد فرایندهایی که بخشی یا تمام آنها در حافظه اصلی است‪.‬‬
‫‪ -3‬زمانبند کوتاه مدت ( ‪)Short Term Scheduler‬‬

‫تصمیم زیری در مورد اینکه کدام یک از فرایندهای موجود در حافظه اصلی‪ ،‬برای اجرا توسط پردازنده‬
‫انتخاو شود‪.‬‬
‫‪ -4‬زمانبندی ورودی‪/‬خروجی‬
‫موجود انجام بگیرد‪.‬‬ ‫‪I/O‬‬ ‫تصمیم می زیرد که کدام درخواست ‪ I/O‬فرایندها به وسیله یک دستگاه‬
‫وظیفه فعال سازی و تعلیا فرآیندها بر عهده زمان ند میان مدت(‪ (Medium-term scheduler‬می باشد‪.‬‬

‫زمان ند میان مدت‪ ،‬فرایندی را از حافظه اصلی حذف و به حافظه جان ی می برد‪ .‬این فرایند بعردا مری‬
‫تواند به حافظه اصلی لود شود‪ .‬این الگو را م ادله )‪ (swapping‬می زویند‪.‬‬
‫ایده اصلی زمان ندی میان مدت‪ ،‬این است که می تواند فرایندی را از حافظه حذف کند و درجه نرد‬
‫برنامگی را کاهش دهد‪.‬‬
‫زمان ند بلند مدت‪ ،‬ترکیب خوبی از فرایندهای ‪ I/O limited‬و ‪ ، CPU Limited‬انتخاو می کند‪.‬‬
‫نام دیگر زمان ند بلند مدت‪ ،‬زمان ند کار است‪.‬‬
‫نام دیگر زمان ند کوتاه مدت‪ ،‬زمان ند پردازنده است‪.‬‬
‫زمان ند بلند مدت نس تاً دفعات کمی اجرا میشود‪ ،‬زمان ند میان مدت نس تاً دفعات بیشتری بره اجررا‬
‫در میآید و زمان ند کوتاه مدت‪ ،‬بیشترین دفعات اجرا را دارد‪.‬‬
‫تذکر‪ :‬اک ر سیستم های اشتراک زمانی فاقد زمان ند بلند مدت می باشند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪48‬‬ ‫سیستم عامل‬

‫نمودار تغییر حالت فرایند همراه با زمانبندی‬

‫مثال‬
‫ازر ‪ 1۰‬میلی ثانیه طول بکشد تا فرایندی انتخاو زردد که ‪ 1۰۰‬میلی ثانیه اجرا شود‪ ،‬آنگاه ند درصد از‬
‫زمان ‪ ، CPU‬صرف زمان ندی کار می شود (به هدر می رود)؟‬
‫‪10‬‬
‫‪ 100  %9‬‬
‫‪10  100‬‬

‫توزیع کننده )‪(Dispatcher‬‬


‫توزیع کننده‪ ،‬پیمانه ای است که کنترل را به پردازنده ای می دهد که توسط زمان ند کوتراه مردت انتخراو‬
‫شده است‪ .‬این عمل شامل موارد زیر است‪:‬‬
‫بستر)‪(Context Switch‬‬ ‫‪ -1‬تعویض‬
‫‪ -2‬تغییر به حالت کاربر‬
‫‪ -3‬پرد به محل مناس ی در برنامه کاربر و آغاز مجدد آن برنامه‪.‬‬
‫نخ )‪(Thread‬‬
‫تا به حال‪ ،‬مفهوم فرایند را به صورت واحدی معرفی کرده ایم که دارای دو خصوصیت تملک من ع و توزیع‬
‫وقت پردازنده است‪ .‬این دو خصوصیت می توانند مستقال توسط سیستم عامل رسیدزی شروند‪ .‬بررای تمرایی‬
‫این دو خصوصیت‪ ،‬به توزیع وقت پردازنده‪ ،‬نخ و به تملک من ع‪ ،‬فرایند می زویند‪.‬‬
‫مهم ترین مییت استفاده از سیستم های ند نخی این است کره در فراینرد ترک نخری‪ ،‬هرر زراه فراخروان‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪49‬‬ ‫سیستم عامل‬

‫سیستمی مسدود کننده ای اجرا شود‪ ،‬یا یک نقص صفحه رخ دهد‪ ،‬کل فرایند مسدود می شود‪ .‬بره عنروان‬
‫م ال یک برنامه صفحه زسترده را در نظر بگیرید و فرض کنید کاربری می خواهد به طور دائمری و تعراملی‬
‫مقادیر را تغییر دهد‪ .‬می دانیم که در برنامه صفحه زسترده‪ ،‬وابستگی تابعی بین سلول هرای مختلرف بایرد‬
‫حفظ شود‪ .‬بنابراین ازر سلولی تغییر کند‪ ،‬محاس ات زیادی انجام می زیرد‪ .‬ازر فقط یک نرخ وجرود داشرته‬
‫باشد‪ ،‬وقتی برنامه منتظر دریافت ورودی است‪ ،‬محاس ات نمی تواند ادامه یابرد‪ ،‬رون فراخروان سیسرتمی‬
‫دریافت ورودی‪ ،‬کل فرایند را مسدود کرده است‪ .‬راه حل این است که از یک نخ برای خواندن ورودی کراربر‬
‫و از نخ دیگری برای بهنگام سازی صفحه زسترده استفاده شود‪.‬‬
‫مثال‬
‫بسیاری از صفحات وو‪ ،‬شامل ند تصویر کو ک هستند که مرورزرر بایرد یرک اتصرال جدازانره را بررای‬
‫دریافت هر تصویر برقرار کند که زمان زیادی الزم دارد‪ .‬ازر در مرورزر از رود ند نخی استفاده شود‪ ،‬هرر‬
‫کدام از نخ ها می تواند به طور همیمان با نخ های دیگر تصویر مربوط به خود را درخواست کند‪.‬‬
‫به عنوان م الی دیگر از کاربرد نخ ها‪ ،‬جهت حفاظت در مقابل قطع برق می توان یک کلمه پررداز را طروری‬
‫طراحی کرد که هر یک دقیقه بافر ‪ RAM‬را روی دیسک بنویسد‪ .‬یک نرخ مری توانرد تنهرا بررای زررفتن‬
‫پشتی ان دوره ای ایجاد شود و خودد را مستقیما با سیستم عامل زمان ندی کند‪.‬‬

‫نخها و فرایندها می توانند ‪ 4‬حالت را بوجود آورند‪:‬‬


‫‪ -1‬یک فرایند‪ -‬یک نخ‬
‫‪ -2‬یک فرایند – ند نخ‬
‫‪ -3‬ند فرایند‪ -‬یک نخ در هر فرایند‬
‫‪ -4‬ند فرایند– ند نخ در هر فرایند‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪5۰‬‬ ‫سیستم عامل‬

‫مثال‬
‫شکل زیر سیستمی با هار فرآیند را نشان می دهد که فرآیند اول شامل دو نخ ‪ T11‬و ‪ T12‬می باشد‪ .‬فراینرد‬
‫دوم شامل سه نخ است و ‪...‬‬

‫حاالت اصلی نخ ع ارت است از‪ :‬اجرا‪ ،‬آماده و مسدود‪( .‬نخ حالت معلا ندارد)‬

‫تمام نخ های یک فرایند‪ ،‬در حالت و منابع آن فرایند شریک هستند‪.‬‬

‫ازر نخ یک فرآیند در حال اجرا باشد و آن فرآیند به حالت خروج برود‪ ،‬نخ نمی تواند به اجرا ادامه دهد‪.‬‬

‫تعویض متن میان دو نخ متعلا به دو فرایند جدازانه‪ ،‬م ل این است که تعویض متن فرایند رخ داده است‪ .‬یعنی عمرل‬
‫سوئیچینگ مابین دو نخ متعلا به دو فرآیند جدازانه از نوع تعویض متن فرآیندی است‪.‬‬

‫نخ در برنامه نویسی‪ ،‬بخشی از یک فرایند یا برنامه بیرزتر می باشد‪.‬‬

‫ساختار نخ زاهی در محیط تک پردازنده ای‪ ،‬برای ساده کردن ساختار برنامه ای که منطقا اعمال متعددی را انجام مری‬
‫دهد‪ ،‬نیی مفید است‪.‬‬

‫با تقسیم یک کار به ند نخ‪ ،‬برنامه ساز می تواند کنترل زیادی روی مولفه ای بودن آن کاربرد و تنظیم وقرت حروادث‬
‫مربوط به آن داشته باشد‪.‬‬
‫پیاده سازی نخ‬
‫سه رود برای پیاده سازی و مدیریت نخ وجود دارد‪:‬‬
‫‪ -1‬نخ های سطح کاربر‬
‫‪ -2‬نخ های سطح هسته‬
‫‪ -3‬رود های ترکی ی‬
‫نخ های سطح کاربر‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪51‬‬ ‫سیستم عامل‬

‫در این رود تمام عملیات راه ری در فضای آدرس کاربر انجام می شود‪ .‬در این رود هیینره ایجراد نرخ برا‬
‫هیینه تخصیص حافظه برای بر پا سازی پشته )‪ (stack‬نخ تعیین می شود‪ .‬تعویض متن نخ اغلب با تعرداد‬
‫کمی از دستورات العمل ها انجام می شود و فقط کافی است محتوای ث ات های پردازنرده بررای نرخ فعلری‪،‬‬
‫ذخیره شود و سپس مقادیر ق ال ذخیره شده مربوط به نخی که به آن سوئیچ می شود‪ ،‬بار زذاری شروند‪ .‬در‬
‫تعویض متن نخ ها نیازی به فالد کردن ‪ ، TLB‬تغییر نگاشت هرای حافظره و حسرابداری پردازنرده نمری‬
‫باشد‪.‬‬

‫مزایای کتابخانه نخ سطح کاربر‬


‫‪ -1‬ایجاد و حذف سریع نخ ها‬
‫‪ -2‬همگام سازی سریع نخ ها‬
‫‪ -3‬تعویض متن کم هیینه و سریع‬
‫نقاط ضعف نخ های سطح کاربر‬
‫‪ -1‬ازر یک نقص صفحه )‪ (page fault‬برای یک نخ رخ دهد‪ ،‬کل فرایند و در نتیجه همه نخ های درون‬
‫آن به اشت اه مسدود می شود‪.‬‬
‫‪ -2‬ازر نخی یک فراخوان سیستمی بلوکه کننده را صدا بیند‪ ،‬کل فرایند و همه نخ های درون آن نیری بره‬
‫اشت اه مسدود می شوند‪.‬‬
‫‪ -3‬ون سیستم عامل از وجود نخ ها آزاه نمی باشد‪ ،‬نخ ها را بین نردین پردازنرده بره خروبی پخرش و‬
‫زمان بندی نمی کند‪.‬‬
‫نخ های سطح هسته‬
‫ازر نخ ها در هسته سیستم عامل پیاده سازی شوند‪ ،‬مشرکالت رود ق رل رخ نمری دهنرد‪ .‬امرا رون هرر‬
‫عملیات نخ باید توسط هسته انجام شود‪ ،‬نیاز به یک فراخوانی سیستمی دارد و هیینه باال مری رود‪ .‬تعرویض‬
‫متن نخ در این رود ممکن است به اندازه تعویض متن فرایند پر هیینه باشد‪.‬‬
‫تذکر‪ :‬میایا و معایب نخ های سطح کاربر و نخ های سطح هسته‪ ،‬بر عکس یکدیگرند‪.‬‬
‫روش ترکیبی‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪52‬‬ ‫سیستم عامل‬

‫برای غل ه بر مشکالت دو رود ق ل‪ ،‬نخ های سطح کاربر و سطح هسته را را تلفیا می کنیم‪ .‬برای این کرار‬
‫فرایندهای س ک وزن)‪ (LWP‬ایجاد می کنیم‪ LWP .‬دورن متن یرک فراینرد اجررا شرده و بره ازای هرر‬
‫فرایند ممکن است ند ‪ LWP‬وجود داشته باشد‪ .‬سیستم عالوه بر داشتن ‪ LWP‬ها‪ ،‬یک بسته نخ سرطح‬
‫کاربر برای عملیات ایجاد و حذف نخ ها به برنامه های کاربردی ارائه می دهرد‪ .‬بسرته نرخ کرامال در فضرای‬
‫کاربر پیاده سازی می شود و تمام عملیات روی نخ ها بدون دخالرت هسرته انجرام مری شرود‪ .‬برنامره هرای‬
‫کاربردی ند نخی با ایجاد نخ ها و سپس انتساو هر نخ به یک ‪ LWP‬ساخته می شوند‪.‬‬
‫در این رود ازر نخی فراخوان سیستمی مسدود کننده ای را اجرا کند‪ ،‬اجرا از مد کاربر به مد هسته تغییرر‬
‫می کند ولی همچنان در متن ‪ LWP‬جاری ادامه می یابد‪ .‬در جایی که ‪ LWP‬جاری نتوانرد ادامره دهرد‪،‬‬
‫متن به ‪ LWP‬دیگری تعویض می شود که باعث یک تعویض متن برای باززشت به مد کاربر نیی می شود‪.‬‬

‫در رود ترکی ی‪ ،‬فراخوانی های سیستمی از نوع مسدود با تامین هم روندی حمایت می شوند‪.‬‬

‫تغییر متن )‪ (context switch‬در نخ های یک فرایند‪ ،‬اشاره زر پشرته )‪ (SP‬را تغییرر مری دهرد ولری ث رات هرا و‬
‫جداول مدیریت حافظه را تغییر نمی دهد و ارت اطی با ‪ TLB‬ندارد‪.‬‬

‫‪ TLB‬یک سخت افیار جستجوی سریع‪ ،‬کو ک و پنهان است‪ .‬در صفحه بنردی تعرداد انردکی از ورودیهرای جردول‬
‫صفحه در ‪ TLB‬قرار می زیرد‪.‬‬
‫)‪(TLB : Translation Lookaside Buffers‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪53‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫( مهندسی کامپیوتر – دولتی ‪)86‬‬


‫‪ -1‬در مدل انتقال حالت )‪ (transition state‬یک سیستم عامل که اجازه داده می شود یک فرآینرد از حافظره اصرلی بیررون‬
‫کشیده شود و در زمان مناسب دوباره به حافظه اصلی باززردانده شود (مانند ‪ ،)unix‬کدام یک از انتقال ها نمری توانرد مجراز‬
‫باشد؟‬
‫(‪ :sleep swapped‬جابجا شده‪ ،‬به خواو رفته)‬
‫(‪ : ready to run in memory‬آماده برای اجرا درحافظه)‬
‫‪ )1‬از ‪ sleep swapped‬به ‪ready to run in memory‬‬
‫‪ )2‬از ‪ ready to run in memory‬به ‪ready to run swapped‬‬
‫‪ )3‬از ‪ ready to run swapped‬به ‪ready to run in memory‬‬
‫‪ )4‬از ‪ sleep in memory‬به ‪sleep swapped‬‬
‫پاسخ‪ :‬زیینه ‪ 1‬جواو است‪.‬‬
‫با توجه به نمودار حاالت فرایند‪ ،‬زیینه یک‪ ،‬یعنی انتقال از "مسدود و معلا" به "آماده" ‪ ،‬مجراز نمری باشرد‪.‬به تعراریف زیرر‬
‫توجه کنید‪:‬‬
‫مسدود و معلا ‪sleep swapped :‬‬
‫مسدود ‪sleep in memory :‬‬
‫آماده ‪ready to run in memory :‬‬
‫آماده و معلا ‪ready to run swapped :‬‬
‫ط ا این تعاریف زیینه ها را می توان به صورت زیر نوشت‪:‬‬
‫‪ )1‬از "مسدود و معلا" به "آماده"‬
‫‪ )2‬از "آماده" به "آماده و معلا"‬
‫‪ )3‬از "آماده و معلا" به "آماده"‬
‫‪ )4‬از "مسدود" به "مسدود و معلا"‬
‫(مهندسی کامپیوتر‪ -‬دولتی ‪)92‬‬
‫‪ -2‬کدم زیینه درباره مدل های ند نخی درست نیست؟‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪54‬‬ ‫سیستم عامل‬

‫‪ )1‬مدل های یک به یک و ند به ند‪ ،‬توانایی بکارزیری بهتر از پردازنده ها‪/‬هسته ها را دارند‪.‬‬


‫‪ )2‬مدل ند به یک نس ت به مدل یک به یک‪ ،‬از کارایی کمتری برخوردار است‪.‬‬
‫‪ )3‬در مدل های یک به یک و ند به یک‪ ،‬امکان همیمانی کامل بین نخ ها وجود دارد‪.‬‬
‫‪ )4‬مدل یک به یک نس ت به مدل ند به یک‪ ،‬از همیمانی بیشتری برخوردار است‪.‬‬
‫پاسخ‪ :‬زیینه ‪ 3‬نادرست است‪.‬‬
‫ون در مدل ند به یک‪ ،‬امکان همیمانی کامل بین نخ ها وجود ندارد‪.‬‬
‫توضیح بیشتر‪ :‬بین نخ ها و فرایندها می تواند ‪ 4‬رابطه زیر برقرار باشد‪:‬‬
‫هر نخ اجرا‪ ،‬یک فرایند یکتا با فضای آدرسها و منابع خویش است‪.‬‬ ‫‪UNIX‬‬ ‫یک به یک‬

‫یک فرایند‪ ،‬یک فضای آدرس و مالکیت پویرای منرابع را تعریرف مری‬ ‫‪NT ,‬‬
‫چند به یک‬
‫کند‪ .‬ممکن است نخهای متعدد در داخل آن فرایند ایجاد و اجرا زردد‪.‬‬ ‫‪Solris,OS/2‬‬

‫ممکن است یک نرخ از محریط یرک فراینرد بره محریط فراینرد دیگرر‬
‫مهاجرت کند‪ .‬این موضوع حرکت یک نخ در بین سیستمهای مجریا را‬ ‫‪Clouds‬‬ ‫یک به چند‬

‫میسر می سازد‪.‬‬
‫ترکیب خصوصیات موارد ند به یک و یک به ند‬ ‫‪TRIX‬‬ ‫چند به چند‬

‫در رابطه با این مدل ها می توان زفت که‪:‬‬


‫الف‪ -‬توانایی بکارزیری پردازنده ها در مدل های یک به یک و ند به ند‪ ،‬بیشتر است‪.‬‬
‫و‪ -‬کارایی مدل یک به یک از مدل ند به یک‪ ،‬بیشتر است‪.‬‬
‫ج‪ -‬مدل یک به یک همیمانی بیشتری نس ت به مدل ند به یک دارد‪.‬‬
‫(مهندسی ‪ -IT‬دولتی ‪)91‬‬
‫‪ -3‬در رابطه با مدیریت نخ )‪ (thread‬کدام یک از جمالت زیر صحیح است؟‬
‫(توجه ‪ LWP :‬مخفف ‪ Light Weight Process‬است و محیط اجرای نخ می باشد‪).‬‬
‫‪ )1‬تغییر متن)‪ (Context switch‬مابین نخ ها شامل ‪ )1( :‬ذخیره ث ات های پردازنده مربوط به نخ بیرون رونده و بار کرردن‬
‫ث ات های پردازنده مربوط به نخ داخل شونده و (‪ )2‬ذخیره لیست فایل های باز شده توسط نخ است‪.‬‬
‫‪ )2‬یک نخ عادی در طول حیات خود ممکن است در ‪ LWP‬های متفاوتی‪ ،‬بخش هایی از اجرای خود را بگذراند‪.‬‬
‫‪ )3‬به ازای هر نخ‪ ،‬سیستم عامل یک ‪ LWP‬ایجاد می کند و نخ تا پایان حیات خود به آن ‪ LWP‬منتسب است‪ .‬زمران بنردی‬
‫نخ می تواند توسط سیستم عامل یا کاربر انجام پذیرد‪.‬‬
‫‪ )4‬نخ مستقیما زیر نظر سیستم عامل اجرا می شود و مدیریت آن نمی تواند در سطح کاربر باشد‪.‬‬
‫پاسخ‪ :‬زیینه ‪ 2‬درست است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪55‬‬ ‫سیستم عامل‬

‫فرایند س ک وزن)‪ ، (LWP‬نگاشتی بین نخ سطح کاربر و نخ سطح هسته می باشد‪ .‬هر ‪ LWP‬از یک نخ سطح کاریر یرا بیشرتر حمایرت‬
‫می کند و به یک نخ سطح هسته می نگارد‪ LWP .‬ها مستقال توسط هسته زمان ندی شده و ممکن است به صورت موازی روی پردازنرده‬
‫های متعدد اجرا شوند‪.‬‬
‫یک نخ عادی در طول حیات خود ممکن است در ‪ LWP‬های متفاوتی‪ ،‬بخش هایی از اجرای خود را بگذراند‪ .‬بنرابراین زیینره ‪ 2‬درسرت‬
‫است‪ .‬زیینه ‪ 3‬نادرست است‪ ،‬ون تعداد ‪ LWP‬ها به اندازه تعداد نخ هایی است که هم اکنون با هسته درزیر هستند و سیستم عامل به‬
‫ازای هر نخ‪ ،‬یک ‪ LWP‬ایجاد نمی کند‪ .‬به طور نمونه ازر دو ‪ LWP‬موجود باشد و نخ سوم فرایند‪ ،‬درخواستی از هسته داشته باشد‪ ،‬باید‬
‫منتظر بماند تا یکی از ‪ LWP‬های ق لی کارد با هسته پایان یابد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪56‬‬ ‫سیستم عامل‬

‫منتخبی از عناوین آموزشی منتشر شده بر روی فرادرس‬

‫برنامهنویسی‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 3‬ساعت‬ ‫م انی برنامه نویسی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 13‬ساعت‬ ‫برنامه نویسی ‪ C -‬کلیک کنید (‪)+‬‬

‫‪ 2۰‬ساعت‬ ‫آموزد برنامه نویسی‪++C‬‬

‫‪ 14‬ساعت‬ ‫برنامه نویسی کاربردی سی شار ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 14‬ساعت‬ ‫آموزد جامع شی زرایی در سی شار ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 23‬ساعت‬ ‫برنامه نویسی جاوا ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 28‬ساعت‬ ‫آموزد برنامه نویسی ‪ PHP -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد فریمورک ‪ PHP‬کدایگنایتر ‪ (CodeIgniter) -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد اسکریپت برنامه نویسی ‪ jQuery -‬کلیک کنید (‪)+‬‬

‫‪ 13‬ساعت‬ ‫آموزد ویژوال بیسیک دات نت ‪ (Visual Basic.NET) -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫آموزد تکمیلی ویژوال بیسیک دات نت ‪ (Visual Basic.NET) -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد برنامه نویسی با رود سه الیه به زبان ‪ VB.Net -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫برنامه نویسی اسمال بیسیک یا ‪ Small Basic -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد ساخت بازی ساده در ویژوال بیسیک ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 11‬ساعت‬ ‫آموزد کاربردی ‪ SQL Server -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد آشنایی با ‪ LINQ to SQL‬در ‪ #C -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد برنامه نویسی با رود سه الیه به زبان سی شار ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد برنامه نویسی تحت ش که با سی شار در قالب پروهه ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد ‪ Cryptography‬در دات نت ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪57‬‬ ‫سیستم عامل‬

‫برنامهنویسی (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 4‬ساعت‬ ‫آموزد قفل نرم افیاری در سی شار از طریا رجیستری‬

‫‪ 13‬ساعت‬ ‫آموزد ساخت اپلیکیشن کتاو و کار با دادهها در اندروید ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 14‬ساعت‬ ‫آموزد ارت اط با دیتابیس سمت سرور در اندروید ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫آموزد ساخت روبات و کنترل آن با اندروید ‪ -‬کلیک کنید (‪)+‬‬

‫آموزد ساخت اپلیکیشن دیکشنری صوتی دو زبانه با قابلیت تشخیص صوت کاربر ‪-‬‬
‫‪ 7‬ساعت‬
‫کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد مدیریت بانک اطالعاتی اوراکل ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد مدیریت بانک اطالعاتی اوراکل پیشرفته ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد راه اندازی اوراکل ‪c 12‬در لینوکس‬

‫‪ 3‬ساعت‬ ‫آموزد دیتازارد در اوراکل ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫برنامه نویسی متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 14‬ساعت‬ ‫متلب برای علوم و مهندسی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫برنامه نویسی متلب پیشرفته ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫طراحی رابط های زرافیکی )‪ (GUI‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد برنامه نویسی ‪ R‬و نرمافیار ‪RStudio -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد تکمیلی برنامه نویسی ‪ R‬و نرمافیار ‪ RStudio -‬کلیک کنید)‪(+‬‬

‫‪ 2۰‬ساعت‬ ‫آموزد برنامه نویسی پایتون ‪ - 1‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد برنامه نویسی پایتون ‪ - 2‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫آموزد زرافیک کامپیوتری با ‪ OpenGL -‬کلیک کنید)‪(+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪58‬‬ ‫سیستم عامل‬

‫راه اندازی و مدیریت وبسایتها و سرورها‬

‫مدت زمان تقریبی‬ ‫عنوان فرادرس‬

‫‪ 28‬ساعت‬ ‫آموزد برنامه نویسی ‪ PHP -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد فریمورک ‪ PHP‬کدایگنایتر ‪ (CodeIgniter) -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد طراحی وو با ‪ HTML -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد طراحی وو با ‪ CSS -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد پروهه محور ‪ HTML‬و ‪ CSS -‬کلیک کنید ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد جاوا اسکریپت ‪ (JavaScript) -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد کار با ‪ cPanel -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد مدیریت هاست با ‪ DirectAdmin -‬کلیک کنید ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫راه اندازی سایت و کار با وردپرس ‪ -‬کلیک کنید (‪)+‬‬

‫راه اندازی فروشگاه دیجیتال با وردپرس و ‪ Easy Digital Downloads -‬کلیک کنید‬
‫‪ 1‬ساعت‬
‫(‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد راه اندازی سایت شخصی با وردپرس ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد ترجمه قالب وردپرس ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد راه اندازی سایت خ ری با وردپرس ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪59‬‬ ‫سیستم عامل‬

‫علوم کامپیوتر‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 1۰‬ساعت‬ ‫ساختمان دادهها ‪-‬کلیک کنید (‪)+‬‬

‫‪ 2۰‬ساعت‬ ‫آموزد ساختمان دادهها (مرور – تست کنکور ارشد) ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد نظریه زبانها و ماشینها ‪-‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد نظریه زبانها و ماشین (مرور – تست کنکور ارشد) ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 11‬ساعت‬ ‫آموزد سیستم های عامل ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 12‬ساعت‬ ‫آموزد سیستم عامل (مرور اجمالی و تست کنکور) ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد پایگاه دادهها ‪-‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد پایگاه دادهها (مرور – تست کنکور ارشد) ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد طراحی و پیاده سازی زبان های برنامه سازی ‪ -‬کلیک کنید (‪)+‬‬

‫آموزد طراحی و پیاده سازی زبان های برنامه سازی (مرور – تست کنکور ارشد) ‪-‬‬
‫‪ 12‬ساعت‬
‫کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد رود های حل روابط باززشتی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد رود تقسیم و حل در طراحی الگوریتم ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد ذخیره و بازیابی اطالعات ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫آموزد ساختمان زسسته با رویکرد حل مساله ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد جامع مدارهای منطقی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2۰‬ساعت‬ ‫آموزد معماری کامپیوتر با رویکرد حل مسأله ‪ -‬کلیک کنید (‪)+‬‬

‫آموزد ساختمان زسسته (مرور و حل تست های کنکور کارشناسی ارشد) ‪ -‬کلیک‬
‫‪ 12‬ساعت‬
‫کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد طراحی الگوریتم ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 19‬ساعت‬ ‫آموزد ش که های کامپیوتری ‪ - 1‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪6۰‬‬ ‫سیستم عامل‬

‫علوم کامپیوتر (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 14‬ساعت‬ ‫آموزد نظریه زراف و کاربردها ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد نتورک پالس ‪ (+Network) -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد مدل سازی ‪ UML‬با نرمافیار ‪Rational Rose -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد پردازد ویدئو ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫پردازد تصویر در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد پردازد تصویر با ‪ OpenCV -‬کلیک کنید (‪)+‬‬

‫هوش مصنوعی‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 14‬ساعت‬ ‫الگوریتم هنتیک در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫الگوریتم ‪ PSO‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫الگوریتم ازدحام ذرات )‪ (PSO‬زسسته باینری ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫ترکیب الگوریتم هنتیک و ‪ PSO‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫حل مسأله فروشنده دوره زرد با استفاده از الگوریتم هنتیک ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 6‬ساعت‬ ‫الگوریتم مور گان در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 13‬ساعت‬ ‫الگوریتم رقابت استعماری در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫طراحی سیستم های فازی عص ی یا ‪ ANFIS‬با استفاده از الگوریتم های فرا ابتکاری و‬
‫‪ 2‬ساعت‬
‫تکاملی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫الگوریتم فرهنگی یا ‪ Cultural Algorithm‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪61‬‬ ‫سیستم عامل‬

‫هوش مصنوعی (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 4‬ساعت‬ ‫ش یه سازی ت رید یا ‪ Simulated Annealing‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫جستجوی ممنوع یا ‪ Tabu Search‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫الگوریتم کرم شب تاو یا ‪ Firefly Algorithm‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫بهینه سازی م تنی بر جغرافیای زیستی یا ‪ BBO‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫جستجوی هارمونی یا ‪ Harmony Search‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫کلونی زن ور مصنوعی یا ‪ Artificial Bee Colony‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫الگوریتم زن ورها یا ‪ Bees Algorithm‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫الگوریتم تکامل تفاضلی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫الگوریتم بهینه سازی علف هرز مهاجم یا ‪ IWO‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫الگوریتم بهینه سازی م تنی بر و یادزیری یا ‪ TLBO -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫الگوریتم بهینه سازی جهش قورباغه یا ‪ SFLA‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 19‬ساعت‬ ‫بهینه سازی ند هدفه در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫بهینه سازی مقید در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 28‬ساعت‬ ‫ش که های عص ی مصنوعی در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد کاربردی ش که های عص ی مصنوعی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد استفاده از ش که عص ی مصنوعی با نروسولوشن ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫ش که عص ی ‪ GMDH‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫ش که های عص ی زازی به همراه پیاده سازی عملی در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫ط قه بندی و بازشناسی الگو با ش که های عص ی ‪ LVQ‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد پیاده سازی الگوریتم های تکاملی و فراابتکاری در سی شار ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪62‬‬ ‫سیستم عامل‬

‫آمار و داده کاوی‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 88‬ساعت‬ ‫زنجینه فرادرس های یادزیری ماشین و داده کاوی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 71‬ساعت‬ ‫زنجینه فرادرس های محاس ات هوشمند ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 24‬ساعت‬ ‫آموزد یادزیری ماشین ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 24‬ساعت‬ ‫داده کاوی یا ‪ Data Mining‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد داده کاوی در ‪ RapidMiner -‬کلیک کنید (‪)+‬‬

‫‪ 17‬ساعت‬ ‫آموزد وو کاوی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 28‬ساعت‬ ‫ش که های عص ی مصنوعی در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد کاربردی ش که های عص ی مصنوعی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫ش که عص ی ‪ GMDH‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫ش که های عص ی زازی به همراه پیاده سازی عملی در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫ط قه بندی و بازشناسی الگو با ش که های عص ی ‪ LVQ‬در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫خوشه بندی با استفاده از الگوریتم های تکاملی و فراابتکاری ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫تخمین خطای کالسیفایر یا ‪ Classifier -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫انتخاو ویژزی یا ‪ Feature Selection -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫انتخاو ویژزی با استفاده از الگوریتم های فرا ابتکاری و تکاملی ‪ -‬کلیک کنید (‪)+‬‬

‫کاهش تعداد رنگ تصاویر با استفاده از رود های خوشه بندی هوشمند ‪ -‬کلیک کنید‬
‫‪ 1‬ساعت‬
‫(‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد پردازد سیگنال های واقعی در متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫م انی و کاربردهای راه رد تلفیا داده یا ‪ Data Fusion -‬کلیک کنید (‪)+‬‬

‫‪ 13‬ساعت‬ ‫آمار و احتمال مهندسی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آزمونهای فرض مربوط به میانگین جامعه نرمال در ‪ SPSS -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪63‬‬ ‫سیستم عامل‬

‫آمار و داده کاوی (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 2‬ساعت‬ ‫آموزد محاس ات آماری در اکسل ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد کنترل کیفیت آماری ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد کنترل کیفیت آماری با ‪ SPSS -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد مدل سازی معادالت ساختاری با ‪ Amos -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫تجییه و تحلیل اطالعات با نرمافیار ‪SAS -‬کلیک کنید (‪)+‬‬

‫مهندسی برق‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 7‬ساعت‬ ‫طراحی دیجیتال با استفاده از وریلوگ یا ‪ Verilog -‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد جامع مدارهای منطقی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد مروری طراحی و پیاده سازی مدارات منطقی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد میکروکنترلر ‪ AVR‬و نرمافیار ‪CodevisionAVR -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫آموزد تکمیلی میکروکنترلر ‪ AVR‬و نرمافیار ‪CodevisionAVR -‬کلیک کنید (‪)+‬‬

‫‪ 6‬ساعت‬ ‫آشنایی با‪ PLC‬های ساخت شرکت های ‪ Omron‬و ‪ Keyence -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫میکروکنترلر ‪ PIC‬با کامپایلر ‪ CCS -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد تحلیل و طراحی مدارات الکترونیکی با ‪ Proteus -‬کلیک کنید (‪)+‬‬

‫آموزد ش یه سازی و تحلیل مدارهای الکتریکی و الکترونیکی با پی اسپایس )‪(PSpice‬‬


‫‪ 3‬ساعت‬
‫‪-‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد مقدماتی ‪ ADS -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد تکمیلی آنالیی مدار با نرمافیار ‪ADS -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪64‬‬ ‫سیستم عامل‬

‫مهندسی برق (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫‪ 2‬ساعت‬ ‫آموزد تحلیل ریاضی مدارات الکتریکی با ‪ OrCAD -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد ش یه سازی مدارات الکترونیکی با ‪ Orcad Capture -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد برنامه نویسی آردوینو ( ‪Arduino) -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد تکمیلی برنامه نویسی آردوینو ‪ (Arduino) -‬کلیک کنید (‪)+‬‬

‫‪ 7‬ساعت‬ ‫آموزد طراحی برد مدار اپی به کمک نرمافیار ‪ Altium Designer -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد م انی ربات های برنامه پذیر ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 16‬ساعت‬ ‫آموزد ساخت روبات و کنترل آن با اندروید ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 9‬ساعت‬ ‫آموزد مدارهای الکتریکی ‪ - 1‬کلیک کنید (‪)+‬‬

‫‪ 11‬ساعت‬ ‫آموزد مدارهای الکتریکی ‪ - 2‬کلیک کنید (‪)+‬‬

‫‪ 1۰‬ساعت‬ ‫آموزد سیستم های کنترل خطی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 13‬ساعت‬ ‫آموزد مکاترونیک کاربردی ‪ - 1‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد کامسول (م احث منتخب) ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آموزد سینماتیک مستقیم و معکوس رباتها ‪-‬کلیک کنید (‪)+‬‬

‫‪ 27‬ساعت‬ ‫آموزد تجییه و تحلیل سیگنالها و سیستم ها ‪ -‬کلیک کنید (‪)+‬‬

‫آموزد متلب با نگرد تحلیل آماری‪ ،‬تحلیل سری های زمانی و داده های مکانی ‪-‬‬
‫‪ 8‬ساعت‬
‫کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫پردازد سیگنال های دیجیتال با استفاده از نرمافیار متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫ش یه سازی سیستم با سیمیولینک ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 11‬ساعت‬ ‫آموزد سیستم های قدرت در سیمولینک و متلب ‪ -‬کلیک کنید (‪)+‬‬

‫آنالیی پایداری و کنترل سیستم های قدرت با استفاده از جع ه ابیارهای نرمافیار متلب ‪-‬‬
‫‪ 2‬ساعت‬
‫کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫آشنایی با ‪ SimPowerSystems‬در ش یه سازی سیستم های قدرت ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪65‬‬ ‫سیستم عامل‬

‫مهندسی برق (ادامه از صفحه قبل)‬

‫مدت زمان تقریبی‬ ‫عنوان آموزش‬

‫ش یه سازی ماشین های الکتریکی در تول اکس های ‪ Simulink‬و ‪SimPowerSystem‬‬


‫‪ 4‬ساعت‬
‫در نرمافیار متلب ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 8‬ساعت‬ ‫آموزد الکترونیک قدرت – ش یه سازی در متلب و سیمولینک ‪ -‬کلیک کنید (‪)+‬‬

‫آموزد ش یه سازی عملکرد انواع ماشین های الکتریکی در سیمولینک متلب ‪ -‬کلیک‬
‫‪ 1۰‬ساعت‬
‫کنید (‪)+‬‬

‫‪ 4‬ساعت‬ ‫برنامه های پاسخگویی بار ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 21‬ساعت‬ ‫آموزد نرمافیار ‪ ETAP‬برای تحلیل سیستم های قدرت ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد مقدماتی نرمافیار ‪GAMS‬برای حل مسائل بازار برق ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد پخش بار اقتصادی (دیسپا ینگ اقتصادی) در ‪ GAMS -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫کاربرد فازی در سیستم های قدرت ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 5‬ساعت‬ ‫آموزد نرمافیار ‪HFSS -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫طراحی آنتن مایکرواستریپ به کمک نرمافیار ‪HFSS -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫آموزد طراحی و ش یه سازی آنتن های ‪ SIW‬با ‪ HFSS -‬کلیک کنید (‪)+‬‬

‫آموزد بررسی کامل آنتن های مایکرواستریپ و طراحی آن توسط ‪ CST -‬کلیک کنید‬
‫‪ 3‬ساعت‬
‫(‪)+‬‬

‫آموزد تجییه سیگنال به مولفه های مود ذاتی یا ‪Empirical Mode Decomposition‬‬
‫‪ 4۰‬دقیقه‬
‫‪-‬کلیک کنید (‪)+‬‬

‫‪ 3‬ساعت‬ ‫نمونه برداری و بازسازی اطالعات در سیستم های کنترل دیجیتال ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 1‬ساعت‬ ‫بررسی پاسخ ورودی پله در شناسایی فرآیندهای صنعتی ‪ -‬کلیک کنید (‪)+‬‬

‫مدل سازی و شناسایی سیستم های دینامیکی با استفاده از مدل ‪ ARX‬و ش که فازی‬
‫‪ 1‬ساعت‬
‫عص ی ‪ ANFIS -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫طراحی و تنظیم ضرایب کنترل کننده ‪ PID‬با منطا فازی ‪ -‬کلیک کنید (‪)+‬‬

‫‪ 2‬ساعت‬ ‫آموزد کنترل سیستم هار تانک ‪ -‬کلیک کنید (‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪66‬‬ ‫سیستم عامل‬

‫‪3‬‬ ‫فصل‬

‫زمان بندی پردازنده‬


‫هدف از زمان بندی پردازنده‪ ،‬تخصیص فرایندها به پردازنده در طول زمان است به زونه ای که هردف هرای‬
‫سیستم از ق یل زمان پاسخ‪ ،‬توان عملیاتی و کارایی پردازنده را برآورده سازد‪ .‬زمان بندی پردازنرده‪ ،‬اسراس‬
‫سیستمهای عامل ند برنامه ای است‪ .‬با حرکت پردازنده بین فرایندها‪ ،‬سیستم عامل می توانرد بهرره وری‬
‫کامپیوتر را افیایش دهد‪.‬‬
‫معیارهای زمان بندی‬
‫معیارهای زمان بندی به دو دسته تقسیم میشوند‪ .‬معیارهای از دید کاربر مانند زمان پاسخ و معیارهرای از‬
‫دید سیستم ‪ :‬مانند توان عملیاتی‪ ،‬بهره وری پردازنده‪.‬‬
‫توان عملیاتی(‪ : )throughput‬تعداد فرایندهایی که در واحد زمان تکمیل می شوند‪.‬‬
‫زمان انتظار = " زمان خروج – زمان اجرا – زمان ورود "‬
‫زمان برگشت = " زمان خروج – زمان ورود "‬
‫زمان برگشت = " زمان انتظار ‪ +‬زمان اجرا "‬
‫تذکر‪ :‬نام های دیگر زمان برزشت )‪ (turnaround time‬ع ارتنداز ‪:‬‬
‫زمان اجرای کامل‪ ،‬زمان کل‪ ،‬زمان تکمیل و زمان پاسخ(‪.)response time‬‬
‫استفاده از پردازنده (بهره وری ‪ )CPU‬در سیستم های اشتراکی معیار مهمی است‪.‬‬
‫به زمان مشخصی از پردازنده که برای اجرای مجموعه دستور العملهای مربوطه به ‪ CPU‬در نظر زرفته‬
‫می زویند‪.‬‬ ‫شود‪(CPU Brust Time ) CBT،‬‬ ‫می‬
‫از دید کاربر زمان پاسخ و از دید سیستم بهره وری پردازنده‪ ،‬مهم است‪.‬‬
‫معیارهای زمان بندی زفته شده به یکدیگر وابسته هستند و بهینه سازی همه آن ممکن نمیباشد‪.‬‬
‫دسته بندی سیاست های زمان بندی‬
‫‪)non‬‬ ‫‪ -1‬بدون قبضه کردن (‪preemptive‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪67‬‬ ‫سیستم عامل‬

‫در حالت بدون ق ضه کردن (انحصاری)‪ ،‬همین که یک فرایند درحالت اجرا قرار زرفرت‪ ،‬آنقردر بره اجررا‬
‫مسدود شود‪.‬‬ ‫‪I/O‬‬ ‫ادامه میدهد تا خاتمه یابد یا اینکه خودد (داوطل انه)‪ ،‬برای انتظار‬
‫‪ -2‬با قبضه کردن (‪)preemptive‬‬
‫در حالت با ق ضه کردن (غیر انحصاری)‪ ،‬فرایند در حال اجرا میتواند توسط سیستم عامل متوقف شود و‬
‫به حالت آماده منتقل شود‪.‬‬
‫تصمیم به ق ضه کردن میتواند در یکی از حاالت زیر انجام زیرد‪:‬‬
‫‪ -1‬به صورت دوره ای براساس وقفه ساعت‬
‫‪ -2‬در زمان ورود یک فرایند جدید‬
‫‪ -3‬در زمانی که فرایند مسدودی به حالت آماده برود‪.‬‬
‫سیاست هایی که با ق ضه کردن همراه است سربار بیشتری را به همراه دارند ولی خدمت بهتری را ارائه میدهند‪.‬‬

‫الگوریتم های زمان بندی‬


‫الگوریتم های زمان بندی پردازنده ع ارتند از‪:‬‬
‫‪ -1‬سرویس به ترتیب ورود (‪)FCFS‬‬
‫‪ -2‬نوبت زردشی (‪)RR‬‬
‫‪ -3‬کوتاهترین فرایند (‪ SPN‬یا ‪)SJF‬‬
‫‪ -4‬کوتاهترین زمان باقی مانده (‪)SRT‬‬
‫‪ -5‬باالترین نس ت پاسخ (‪)HRRN‬‬
‫‪ -6‬فیدبک (‪)FB‬‬
‫و الگوریتم های زیر که در کتاو سیل رشاتی آورده شده است‪.‬‬
‫‪Priority‬‬ ‫‪-3‬‬ ‫‪MLQ‬‬ ‫‪-2‬‬ ‫‪MLFQ‬‬ ‫‪-1‬‬
‫‪FCFS :‬‬ ‫‪First–Come First-Served‬‬
‫‪RR‬‬ ‫‪:‬‬ ‫‪Round Robin‬‬
‫‪SPN :‬‬ ‫‪Shortest Process Next‬‬
‫‪SRT :‬‬ ‫‪Shortest Remaining Time‬‬
‫‪HRRN :‬‬ ‫‪Highest Response Ratio Next‬‬
‫‪FB‬‬ ‫‪:‬‬ ‫‪Feed Back‬‬
‫‪MLFQ :‬‬ ‫‪Multi Level Feedback Queue‬‬
‫‪MLQ :‬‬ ‫‪Multi Level Queue‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪68‬‬ ‫سیستم عامل‬

‫سرویس به ترتیب ورود )‪(FCFS‬‬


‫در این الگوریتم فرایندی انتخاو میشود که بیشتر منتظر بوده است‪ ،‬یعنی زودتر ‪ CPU‬را درخواست کررده‬
‫است‪ .‬پیاده سازی این الگوریتم با یک صف (‪ )FIFO‬انجام میشود‪ .‬وقتی فرایندی وارد صف آمراده میشرود‪،‬‬
‫‪ PCB‬آن در انتهای صف قرار میزیرد و با آزاد شدن ‪ ، CPU‬فرایند موجود در اول صرف‪ CPU ،‬را در اختیرار‬
‫خواهد زرفت و از صف حذف میشود‪.‬‬

‫‪FCFS‬‬ ‫ویژگی های زمان بندی‬


‫‪ -1‬زرسنگی ندارد‪.‬‬
‫‪ -2‬برای فرایندهای طوالنی بسیار بهتر از فرایندهای کوتاه عمل میکند‪.‬‬
‫‪ -3‬سربار حداقل است‪ ،‬ون نیازی به اطالعات ق لی در مورد فرایندها نمیباشد‪.‬‬
‫‪ -4‬تابع انتخاو برابر )‪ Max (wait‬است‪.‬‬
‫‪ -5‬میانگین زمان انتظار بسیار باال میباشد‪.‬‬
‫‪ -6‬در یک سیستم تک پردازنده ای‪ ،‬رود خوبی نیست‪.‬‬
‫‪ -7‬انحصاری است‪.‬‬
‫ضربه میزند‪ (.‬ون وقتی فرایند ‪ CPU bound‬در حرال اجراسرت‪ ،‬فراینردهای‬ ‫‪I/O bound‬‬ ‫‪ -8‬به فرایندهای‬
‫‪ I/O bound‬باید منتظر باشند‪).‬‬
‫‪ -9‬میتواند باعث استفاده ناکارآمد از ‪ CPU‬و دستگاههای ‪ I/O‬شود‪ .‬وقتی فرایند جاری حالت اجررا را تررک‬
‫میکند‪ ،‬فرایندهای آماده ‪ I/O bound‬به سرعت حالت اجرا را زذرانرده و بررای رویردادهای ‪ I/O‬مسردود‬
‫میشوند‪ .‬در این لحظه‪ ،‬ازر فرایند ‪ CPU bound‬نیی مسدود باشد‪ CPU ،‬بیکار میشود‪.‬‬

‫تذکر‪ :‬برای بدست آوردن زمان پاسخ و زمان انتظار فرایندها از روشی به نام زانت استفاده می شود‪.‬‬

‫مثال‬
‫با توجه الگوریتم ‪ ، FCFS‬زانت را برای فرایندهای زیر رسم نمایید‪.‬‬
‫زمان اجرا زمان ورود‬
‫‪A‬‬ ‫‪1‬‬ ‫‪5‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪69‬‬ ‫سیستم عامل‬

‫‪B‬‬ ‫‪4‬‬ ‫‪8‬‬


‫حل‪:‬‬

‫‪5‬‬ ‫این نمودار مشخص می کند که در لحظه یک اجرای فرایند ‪ ، A‬بدون هیچ انتظاری شروع شرده و بعرد از‬
‫میلی ثانیه در لحظه ‪ ، 6‬پایان یافته است‪ .‬سپس اجرای فرایند ‪ B‬با ‪ 2‬میلی ثانیه تاخیر شروع شده و بعرد از‬
‫‪ 8‬ثانیه دیگر در لحظه ‪ 14‬پایان یافته است‪ .‬از زانت می توان زمان پاسخ را نیی بدست آورد‪ .‬کافی اسرت کره‬
‫زمان ورود (که در جدول اولیه داده شده) را از زمان خروج (که در زانت مشخص است) کرم کررد‪ .‬بنرابراین‬
‫زمان پاسخ فرایند ‪ A‬برابر ‪ 5‬میلی ثانیه )‪ (6-1‬و زمان پاسخ فرایند ‪ B‬برابر ‪ 10‬میلی ثانیه )‪ (14-4‬مری باشرد‪.‬‬

‫مثال‬
‫برا زمانهرای‬ ‫‪P3‬‬ ‫و ‪ P2‬و‬ ‫‪P1‬‬ ‫در صورت استفاده از الگوریتم ‪ ، FCFS‬میانگین زمان انتظار بررای سره فراینرد‬
‫میلی ثانیه را بدست آورید‪(.‬فرایندها در زمان صفر وارد شده اند‪).‬‬ ‫‪8‬‬ ‫اجرای ‪ 10‬و ‪ 4‬و‬
‫حل‪ :‬ابتدا فرایند ‪ P1‬اجرا شده که ‪ 10‬میلی ثانیه طول می کشد‪ ،‬سپس فرایند ‪ P2‬که ‪ 10‬میلی ثانیه منتظرر‬
‫بوده است اجرا شده و بعد از ‪ 4‬میلی ثانیه (در زمان ‪ )14‬اجرای آن تمام می شود‪ .‬در نهایت فراینرد ‪ P3‬بعرد‬
‫از ‪ 14‬میلی ثانیه انتظار اجرا می شود‪ .‬زانت آن به صورت زیر است‪:‬‬

‫زمان انتظار را به کمک رابطه "زمان خروج – زمان اجرا" محاس ه می کنیم‪:‬‬
‫‪(10  10)  (14  4)  (22  8) 0  10  14‬‬
‫‪‬‬ ‫‪8‬‬
‫‪3‬‬ ‫‪3‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪7۰‬‬ ‫سیستم عامل‬

‫مثال‬
‫در الگوریتم ‪ FCFS‬با توجه به فرایندهای داده شده‪ ،‬مطلوو است‪:‬‬
‫الف‪ -‬میانگین زمان اجرا‬
‫و‪ -‬میانگین زمان انتظار‬
‫ج‪ -‬میانگین زمان برزشت(پاسخ)‬
‫نام فرایند‬ ‫زمان ورود‬ ‫زمان پردازش‬
‫‪A‬‬ ‫‪0‬‬ ‫‪3‬‬
‫‪B‬‬ ‫‪1‬‬ ‫‪3‬‬
‫‪C‬‬ ‫‪4‬‬ ‫‪3‬‬
‫‪D‬‬ ‫‪6‬‬ ‫‪2‬‬
‫حل‪:‬‬
‫زانت فرایندها به صورت زیر می باشد‪:‬‬

‫الف‪ -‬میانگین زمان اجرا‪:‬‬


‫‪3  3  3  2 11‬‬
‫‪‬‬
‫‪4‬‬ ‫‪4‬‬
‫و‪ -‬میانگین زمان انتظار‪:‬‬
‫‪(3  3  0)  (6  3  1)  (9  3  4)  (11  2  6) 0  2  2  3 7‬‬
‫‪‬‬ ‫‪‬‬
‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬

‫ج‪ -‬میانگین زمان برزشت‪:‬‬


‫‪(3  0)  (6  1)  (9  4)  (11  6) 3  5  5  5 18‬‬
‫‪‬‬ ‫‪‬‬
‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬

‫تذکر‪ :‬ال ته می توانستیم با توجه به رابطه زیر نیی ‪ ،‬میانگین زمان برزشت را محاس ه کنیم‪:‬‬
‫میانگین زمان برزشت = میانگین زمان اجرا ‪ +‬میانگین زمان انتظار‬

‫نوبت گردشی )‪(RR‬‬


‫این الگوریتم ش یه به ‪ FCFS‬است‪ ،‬با این تفاوت که زمان ند پردازنده بین فرایندها در یرک صرف رخشری‬
‫حرکت کرده و‪ CPU‬حداک ر به مدت یک کوانتوم زمانی به هر فرایند تخصریص داده میشرود‪ .‬ازرر در یرک‬
‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪71‬‬ ‫سیستم عامل‬

‫کوآنتوم زمانی‪ ،‬اجرای پروسسی تمام نشود به ته صف میرود‪.‬‬


‫ویژگی های روش ‪RR‬‬
‫‪ -1‬در سیستمهای اشتراک زمانی یا در سیستم پردازد تراکنش بسیار مؤثر میباشد‪.‬‬
‫‪ -2‬ازر برهه زمانی از زمان اجرای بلندترین فرایند بیشتر باشد‪ ،‬سیاست ‪ RR‬به ‪ FCFS‬تنیل مییابد‪.‬‬
‫‪ -3‬زمان بندی ‪ ،RR‬غیر انحصاری (ق ضه شدنی) میباشد‪.‬‬
‫‪ -4‬زرسنگی ندارد‪.‬‬
‫‪ -5‬عملکرد آن عادالنه است‪.‬‬
‫‪ -6‬ازر برهه زمانی خیلی کو ک باشد‪ ،‬توان عملیاتی ان کم است‪.‬‬
‫‪ -7‬برای فرایندهای کوتاه‪ ،‬زمان برزشت خوبی ارائه می کند‪.‬‬
‫‪ -8‬از مشکالت آن‪ ،‬رفتار با فرایندهای در تنگنای پردازنده در مقایسه با فرایندهای در تنگنای ‪ I/O‬می باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪72‬‬ ‫سیستم عامل‬

‫مثال‬
‫میانگین زمان انتظار سه پردازد زیر با استفاده از سیاست زمان بندی ‪ RR‬با کوانتوم زمانی ‪ 3‬میلی ثانیره را‬
‫بدست آورید؟ (زمان ورود= صفر ) (زمان پردازد ‪)P1=9,P2=2,P3=2 :‬‬
‫حل‪ :‬زانت بصورت زیر می باشد‪:‬‬

‫اجرای پروسس‪ P1‬در اولین برد زمانی تمام نمیشود و به انتهای صف مریرود و پروسرس‪ P2‬و ‪ P3‬ق رل از‬
‫پایان برد زمانی‪ ،‬به پایان میرسند‪ .‬میانگین زمان انتظار برابر است با‪:‬‬
‫)‪(13  9)  (5  2)  (7  2‬‬
‫‪4‬‬
‫‪3‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪73‬‬ ‫سیستم عامل‬

‫مثال‬
‫ازر زمان اجرای پروسسهای ‪ P4,P3,P2,P1‬به ترتیب ‪ 80,90,30,50‬باشد و رود ‪ RR‬برا کوانتروم زمرانی ‪ 40‬و‬
‫زمان تعویض متن ‪ 10‬استفاده شود‪ ،‬میانگین زمان برزشت کدام است؟ (زمان ورود= ‪)0‬‬
‫حل‪ :‬زانت فرایندها به صورت زیر است‪:‬‬

‫میانگین زمان برزشت برابر است با‪:‬‬


‫‪200  80  320  300‬‬
‫‪ 225‬‬
‫‪4‬‬
‫مثال‬
‫پنج فرایند با مشخصات زیر به یک سیستم با زمان بندی ‪ RR‬با برد زمانی ‪ q=1‬وارد شوند‪ .‬نمودار زانت را رسم کنید‪.‬‬
‫زمان ورود‬ ‫زمان اجرا‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪P2‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P4‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P5‬‬ ‫‪2‬‬ ‫‪1‬‬

‫فرض‪ :‬همیشه بین فرایندی که در لحظه ‪ t‬برد زمانی خود را به پایان می رساند و فرایند ورودی در لحظره‬
‫‪ ،t‬اولویت با فرایند ق لی موجود در سیستم است و در شرایط کامال یکسان بین دو فرایند‪ ،‬اولویت با فراینرد‬
‫با شماره کو کتر است‪.‬‬
‫حل‪:‬‬
‫زانت به صورت زیر می باشد‪:‬‬

‫‪P1‬‬ ‫‪P2‬‬ ‫‪P1‬‬ ‫‪P3‬‬ ‫‪P4‬‬ ‫‪P2‬‬ ‫‪P5‬‬


‫‪0‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬
‫‪1‬‬

‫‪1‬‬ ‫در لحظه ‪ P1 ، 0‬و ‪ P2‬وارد می شوند‪ .‬پردازنده به ‪ P1‬داده می شود و ‪ P2‬در صف قرار می زیرد‪ .‬در لحظه‬
‫‪ ،‬پردازنده از ‪ P1‬زرفته شده و بعد از ‪ P2‬در صف قرار می زیرد‪ .‬همچنین ‪ P3‬و ‪ P4‬که در همین لحظه وارد‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪74‬‬ ‫سیستم عامل‬

‫‪P2‬‬ ‫داده می شود‪ .‬در لحظه ‪ ، 2‬پردازنده از‬ ‫‪P2‬‬ ‫قرار می زیرند‪ .‬پردازنده به‬ ‫‪P1‬‬ ‫شده اند‪ ،‬در صف پشت سر‬
‫‪P2‬‬ ‫که در همین لحظه وارد شده در انتهای صف بعد از‬ ‫‪P5‬‬ ‫زرفته شده و به انتهای صف بعد از ‪ P4‬رفته و‬
‫تمام شده و‬ ‫‪P1‬‬ ‫(فرایند ابتدای صف)داده می شود‪ .‬در لحظه ‪ ، 3‬اجرای‬ ‫‪P1‬‬ ‫قرار می زیرد‪ .‬پردازنده هم به‬
‫پردازنده به ‪ P3‬که اول صف است داده می شود‪ .‬در لحظه ‪ ، 4‬اجرای ‪ P3‬تمام شده و پردازنده به فرایند اول‬
‫‪6‬‬ ‫صف یعنی ‪ P4‬داده می شود‪ .‬در لحظه ‪ ، 5‬اجرای ‪ P4‬تمام شده و پردازنده به ‪ P2‬داده می شود‪ .‬در لحظه‬
‫تمام شده و پردازنده به ‪ P5‬داده می شود‪.‬‬ ‫‪P2‬‬ ‫‪ ،‬اجرای‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪75‬‬ ‫سیستم عامل‬

‫مثال‬
‫به کمک رود زمان بندی نوبهای با کوانتوم زمانی ‪ 20‬میلی ثانیه‪ ،‬متوسط زمان انتظار پردازههرا را محاسر ه‬
‫کنید؟ (زمان ‪ Context Switch‬برابر ‪ 5‬میلی ثانیه است‪().‬زمان ورود همه فرایندها = ‪) 0‬‬
‫فراین‬
‫زمان اجرا‬
‫د‬
‫‪A‬‬ ‫‪40‬‬
‫‪B‬‬ ‫‪20‬‬
‫‪C‬‬ ‫‪50‬‬
‫‪D‬‬ ‫‪30‬‬
‫حل‪ :‬زانت آن به صورت زیر است‪:‬‬

‫و میانگین زمان انتظار برابر است با ‪:‬‬


‫‪(120  40)  (45  20)  (175  50)  (160  30) 80  25  125  130‬‬
‫‪‬‬ ‫‪ 90‬‬
‫‪4‬‬ ‫‪4‬‬

‫مثال‬
‫سیستمی شامل هار فرایند است که داخل هر فرایند می تواند بیش از یک نخ اجرایی وجود داشته باشد مطابا جردول زیرر‬
‫مفروض است‪ .‬برای فرایندها از الگوریتم ‪ Round-Robin‬با برد زمانی ‪ q=10‬استفاده کنید‪ .‬داخل هر فرایند از رود ‪FIFO‬‬
‫برای تعویض نخ ها استفاده می شود و تا زمانی که اجرای یک نخ تمام نشده‪ ،‬نوبت به نرخ بعردی نمری رسرد‪ .‬بررای تعرویض‬
‫فرایند ‪ 1ms‬و برای تعویض نخ در داخل فرایند ‪ 0.5ms‬زمان الزم است‪ .‬نمودار زانت را رسم کنید‪.‬‬

‫فرایند‬ ‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬ ‫‪P4‬‬


‫نخ‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬ ‫‪F‬‬ ‫‪G‬‬ ‫‪H‬‬
‫زمان‬
‫‪14‬‬ ‫‪3‬‬ ‫‪7‬‬ ‫‪5‬‬ ‫‪9‬‬ ‫‪7‬‬ ‫‪3‬‬
‫اجرا‬

‫حل‪ :‬نمودار زانت به صورت زیر می باشد‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪76‬‬ ‫سیستم عامل‬

‫مثال‬
‫سیستمی شامل سه فرایند مطابا جدول زیر مفروض است‪ .‬برای فرایندها از الگوریتم ‪ Round-Robin‬با برد زمانی ‪ 8‬میلی‬
‫ثانیه استفاده کنید‪ .‬داخل هر فرایند از رود ‪ FIFO‬برای تعویض نخ ها استفاده می شود و تا زمانی که اجرای یک نخ تمام‬
‫نشده‪ ،‬نوبت به نخ بعدی نمی رسد‪ .‬برای تعویض فرایند ‪ 2ms‬و برای تعویض نخ در داخل فرایند ‪ 1ms‬زمان الزم است‪.‬‬
‫میانگین زمان پاسخ را برای نخ های هر فرایند محاس ه کنید‪.‬‬
‫فرایند‬ ‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬
‫نخ‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬ ‫‪E‬‬ ‫‪F‬‬
‫زمان اجرا‬ ‫‪5‬‬ ‫‪10‬‬ ‫‪2‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪6‬‬

‫حل‪ :‬نمودار زانت به صورت زیر می باشد‪:‬‬

‫میانگین زمان پاسخ برای نخ های هر فرایند برابر است با‪:‬‬


‫‪91‬‬
‫‪A  5, B  36, C  50 ‬‬
‫‪3‬‬
‫‪71‬‬
‫‪D  18, E  53 ‬‬
‫‪2‬‬

‫‪F  26‬‬

‫کوتاهترین فرایند ) ‪ SPN‬یا ‪)SJF‬‬


‫در این سیاست فرایندی برای اجرا انتخاو میشود که به کوتاهترین زمان پردازد نیاز دارد ‪ .‬یعنری فراینرد‬
‫کوتاه از روی فرایندهای بلند میزذرد و به ابتدای صف میآید‪.‬‬
‫ویژگی های الگوریتم ‪SPN‬‬

‫‪ -1‬از معایب آن‪ ،‬نیاز به دانستن زمان پردازد هر فرایند است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪77‬‬ ‫سیستم عامل‬

‫‪ -2‬انحصاری است‪.‬‬
‫‪ -3‬امکان زرسنگی فرایندهای طوالنی وجود دارد‪.‬‬
‫‪ -4‬برای محیط های اشتراک زمانی‪ ،‬مناسب نیست‪.‬‬
‫‪ -5‬میانگین زمان انتظار‪ ،‬کمینه است‪.‬‬
‫مثال‬
‫میانگین زمان انتظار را برای فرایندهای زیر به رود ‪ SJF‬بدست آورید؟(ورود همه در لحظه صفر)‬
‫) ‪(P1=7 , P2=8 , P3=3 , P4=5‬‬
‫حل‪ :‬ترتیب اجرا برابر است با‪( :‬از کوتاهترین کار شروع میشود)‬

‫میانگین زمان انتظار برابر است با‪:‬‬


‫)‪(15  7)  (23  8)  (3  3)  (8  5‬‬
‫‪ 6.5‬‬
‫‪4‬‬

‫مثال‬
‫محاس ه کنید‪.‬‬ ‫‪SJF‬‬ ‫با توجه به جدول زیر متوسط زمان انتظار را در هر یک از روشهای‬
‫(زمان تعویض متن= ‪ 1‬میلی ثانیه)‬
‫زمان ورود‬ ‫زمان موردنیاز‬
‫پروسس‬
‫به سیستم‬ ‫پردازد‬
‫‪A‬‬ ‫‪0‬‬ ‫‪9‬‬
‫‪B‬‬ ‫‪2‬‬ ‫‪4‬‬
‫‪C‬‬ ‫‪0‬‬ ‫‪8‬‬
‫‪D‬‬ ‫‪3‬‬ ‫‪2‬‬
‫‪E‬‬ ‫‪5‬‬ ‫‪1‬‬

‫پاسخ‪ :‬نمودار زانت به صورت زیر است‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪78‬‬ ‫سیستم عامل‬

‫زمان انتظار هر یک از فرایندها برابر است با‪:‬‬


‫‪19  12  0  8  4 43‬‬
‫‪A  19, B  12, C  0, D  8, E  4 ‬‬ ‫‪‬‬
‫‪5‬‬ ‫‪5‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪79‬‬ ‫سیستم عامل‬

‫پیش بینی زمان انفجار محاسباتی بعدی‬


‫در الگوریتم ‪ SJF‬راهی وجود ندارد که از انفجار محاس اتی بعدی آزاهی پیدا کنیم‪ .‬یک رود این اسرت کره‬
‫زمان ندی ‪ SJF‬تخمین زده شود‪ .‬ممکن است طول بعدی را ندانیم‪ ،‬اما می توانیم انردازه اد را پریش بینری‬
‫کنیم‪ .‬با تخمین طول انفجار محاس اتی بعردی‪ ،‬مری تروانیم فرآینردی را انتخراو کنریم کره طرول انفجرار‬
‫محاس ر اتی بعرردی آن کوترراهتر اسررت‪ .‬برررای تخمررین از رابطرره ‪ S n  S n 1  (1   )Tn 1‬اسررتفاده مرری شررود‪.‬‬
‫)‪(0    1‬‬
‫مثال‬
‫سه وظیفه ‪ C, B،A‬را در نظر بگیرید که تاکنون ‪ n-1‬بار در سیکل آماده‪-‬اجرا‪-‬مسدود طی مسیر کررده انرد‪.‬‬
‫زمان اجرای واقعی سیکل ‪ n-1‬ام این وظایف بترتیب‪ 4 ،2 ،‬و ‪ 6‬میلی ثانیه و زمان برآورد شده بررای اجررای‬
‫‪7‬‬ ‫‪ n-1‬ام آنها نیی بترتیب ‪ 6 ،4‬و ‪ 6‬میلی ثانیه می باشد‪.‬زمان اجرای واقعی در سریکل‪ n‬ام بره ترتیرب ‪ 4 ،5‬و‬
‫است‪ .‬با فرض ‪   0.5‬نحوه زمان ندی این وظایف با استفاده از الگوریتم ‪ SJF‬را مشخص کنید‪.‬‬
‫حل‪ :‬توسط الگوریتم سالمندی)‪ ، (aging‬می توان زمان اجرای کارهرا را بره کمرک رابطره ‪Sn  Sn 1  (1  )Tn 1‬‬
‫تخمین زد‪ .‬که ‪ Sn 1‬زمان برآورد مرحله ق ل و ‪ Tn 1‬زمان واقعی مرحله ق ل می باشد‪ .‬با فرض ‪   0.5‬داریم‪:‬‬
‫) ‪Sn  0.5  Sn 1  (1  0.5)  Tn 1  0.5  (Sn 1  Tn 1‬‬
‫بنابراین می توان ‪ S n‬را به صورت زیر محاس ه کرد‪:‬‬
‫‪Sn 1‬‬ ‫‪Tn 1‬‬ ‫‪Sn‬‬
‫‪1‬‬
‫‪A‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪ ( 4  2)  3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪B‬‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪( 6  4)  5‬‬
‫‪2‬‬
‫‪1‬‬
‫‪C‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪( 6  6)  6‬‬
‫‪2‬‬

‫با توجه به ‪ S n‬به دست آمده‪ ،‬مشخص است که ترتیب اجرا برابر است با‪A  B  C :‬‬
‫(ط ا الگوریتم ‪ ، SJF‬کارها از کو ک به بیرگ اجرا می شوند)‬
‫حال با توجه به زمان اجرای واقعی در سیکل ‪ n‬ام که برابر ‪ 4 ،5‬و ‪ 7‬می باشد‪ ،‬نمودار زانت را رسم می کنیم‪:‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬


‫‪0‬‬ ‫‪5‬‬ ‫‪9‬‬ ‫‪16‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪8۰‬‬ ‫سیستم عامل‬

‫کوتاهترین زمان باقیمانده ) ‪)SRT‬‬


‫زمان بندی ‪ SRT‬یک نوع ‪ SPN‬با ق ضه کردن است و فرایندی برای اجرا انتخاو میشود که انتظار میرود کوتاهترین زمان‬
‫پردازد باقیمانده را داشته باشد‪ .‬ازر فرایند جدیدی وارد صف آماده شود و زمان باقیمانده کمترری نسر ت بره فراینردی کره‬
‫درحال اجراست داشته باشد‪ ،‬فرایند درحال اجرا ق ضه میشود و فرایند جدید اجرا میشود‪.‬‬

‫ویژگی های الگوریتم ‪SRT‬‬


‫‪ -1‬غیر انحصاری است‪.‬‬
‫‪ -2‬امکان زرسنگی برای کارهای طوالنی زیاد است‪.‬‬
‫‪ -3‬بر خالف ‪ ،RR‬وقفه های اضافی بوجود نمیآید‪ ،‬بنابراین سربار کاهش می یابد ولی از طرف دیگرر‪ ،‬زمران خردمت سرپری‬
‫شده باید ث ت شود‪ ،‬که ایجاد سربار می کند‪.‬‬
‫‪ -4‬زمان کل‪ SRT‬نس ت به ‪ SPN‬بهتر است‪ ،‬ون کار کوتاه اولویت بیشتری نس ت به کار بلند در حال اجرا دارد‪.‬‬
‫مثال‬
‫در صورت استفاده از الگوریتم ‪ SRT‬برای فرایندهای زیر‪ ،‬میانگین زمان انتظار را بدست آورید‪.‬‬
‫زمان‬ ‫زمان‬
‫فرایند‬
‫ورود‬ ‫اجرا‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪8‬‬
‫‪P2‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪9‬‬
‫‪P4‬‬ ‫‪3‬‬ ‫‪5‬‬

‫حل‪ :‬اجرای فرایند ‪ P1‬در لحظه صفر شروع شده و با ورود ‪ P2‬در زمان ‪ ،1‬اجرای ‪ P1‬قطرع شرده ( رون ‪ P2‬زمران اجررای‬
‫کمتری نس ت به زمان باقیمانده برای ‪ P1‬یعنی ‪ 7‬میلی ثانیه دارد) و اجررای ‪ P2‬شرروع خواهرد شرد و بعرد از اجررای ‪،P2‬‬
‫اجرای ‪ P4‬شروع میشود و سپس اجرای ‪ P1‬ادامه مییابد و در نهایت ‪ P3‬اجرا خواهد شد‪ .‬بنابراین زانت آن به صورت زیرر‬
‫است‪:‬‬

‫میانگین زمان انتظار برابر است با‪:‬‬


‫)‪(17  8  0)  (5  4  1)  (26  9  2)  (10  5  3‬‬
‫‪ 6.5‬‬
‫‪4‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
81 ‫سیستم عامل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪82‬‬ ‫سیستم عامل‬

‫مثال‬
‫با توجه به جدول زیر متوسط زمان انتظار را در هر یک از روشهای ‪ SRT‬محاس ه کنید‪.‬‬
‫زمان ورود‬ ‫زمان موردنیاز‬
‫پروسس‬
‫به سیستم‬ ‫پردازد‬
‫‪A‬‬ ‫‪0‬‬ ‫‪9‬‬
‫‪B‬‬ ‫‪2‬‬ ‫‪4‬‬
‫‪C‬‬ ‫‪0‬‬ ‫‪8‬‬
‫‪D‬‬ ‫‪3‬‬ ‫‪2‬‬
‫‪E‬‬ ‫‪5‬‬ ‫‪1‬‬
‫پاسخ‪ :‬نمودار زانت به صورت زیر است‪:‬‬

‫زمان انتظار هر یک از فرایندها برابر است با‪:‬‬


‫‪24  7  15  2  1 49‬‬
‫‪A  24, B  7, C  15, D  2, E  1 ‬‬ ‫‪‬‬
‫‪5‬‬ ‫‪5‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪83‬‬ ‫سیستم عامل‬

‫باالترین نسبت پاسخ (‪)HRRN‬‬


‫در این رود برای هر فرایند نس ت پاسخی از رابطه ‪ ، W  S‬بدست میآید‪ ،‬سپس فراینردی اجررا میشرود‬
‫‪S‬‬
‫که باالترین نس ت پاسخ را دارد‪.‬‬
‫( ‪ = W‬زمان انتظاربرای ‪ ) CPU‬و ( ‪ = S‬زمان اجرا) و ( ‪ = W+S‬زمان پاسخ (‪) )P‬‬

‫ویژگی های الگوریتم ‪HRRN‬‬

‫‪ -1‬زرسنگی ندارد‪.‬‬
‫‪ -2‬از معایب این رود ‪ ،‬نیاز به تخمین زمان خدمت مورد نیاز ق ل از به کارزیری میباشد‪.‬‬
‫است‪.‬‬ ‫‪W S‬‬ ‫‪ -3‬تابع انتخاو آن برابر‬
‫( ‪MAX‬‬ ‫)‬
‫‪S‬‬
‫‪ -4‬سربار میتواند زیاد باشد‪.‬‬
‫‪ -5‬توان عملیاتی زیاد است‪.‬‬
‫‪ -6‬زمان بندی انحصاری (بدون ق ضه کردن) است‪.‬‬

‫فیدبک )‪(FB‬‬
‫ازر نتوانیم روی زمان باقیمانده برای اجرا تمرکی کنیم‪ ،‬بهتر اسرت روی زمران اجررای سرپری شرده تمرکری‬
‫کنرریم‪ .‬زمرران بنرردی ‪ FB‬براسرراس ق ضرره کررردن صررورت میزیرررد و از یررک رود اولویررت پویررا اسررتفاده‬
‫میشود‪.‬فرایندی که ابتدا وارد شود به صف ‪ 0‬میرود و هنگامی که بعد از اولین اجرا به حالت آماده مریرود‬
‫در صف ‪ 1‬با اولویت کمتر قرار میزیرد پس از هر اجرا به صف کم اولویت تر بعردی مریرود‪ .‬فراینرد کوتراه‬
‫بدون انتقال به صفهای پایین تر به سرعت اجرا میشود‪ ،‬اما فرایندهای طوالنی به صفهای پایین میرونرد و‬
‫فرایندهای جدیدتر و کوتاهتر به فرایندهای قدیمیتر و بلند تر ارجحیت دارند‪ .‬در صف با کمترین اولویت از‬
‫سیاست ‪ RR‬و درصفهای دیگر از سیاست ‪ FCFS‬استفاده میشود‪ ( .‬ون فراینرد درصرف کمتررین اولویرت‪،‬‬
‫نمیتواند به صفهای پایین تر برود‪).‬‬
‫زمان بندی ‪ FB‬غیر انحصاری می باشد‪ ،‬ون فرایندی از صفی به صف دیگر می تواند منتقل شود‪.‬‬

‫زمان بندی های زیر در کتاو سیل رشاتس آورده شده است‪.‬‬
‫زمان بندی صف بازخوردی چند سطحی (‪)MLFQ‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪84‬‬ ‫سیستم عامل‬

‫این زمان ند غیر انحصاری‪ ،‬به فرایندها اجازه میدهد تا از صفی به صف دیگر منتقل شوند‪ .‬فرایندی که زیاد‬
‫‪ I/O‬و محاورهای بره صرف برا اولویرت‬ ‫‪bound‬‬ ‫‪ CPU‬را در اختیار داشته به صف کم اولویتتر میرود و فرایند‬
‫باالتر میرود و فرایندی که زیاد در صف با اولویت پایین بوده به صف با اولویت باالتر میرود‪ ،‬یعنی کهنگری‬
‫(سالمندی) از ایجاد زرسنگی جلوزیری میکند‪.‬‬
‫مثال‬
‫با ‪ 3‬صف (‪ 0‬تا ‪ )2‬را در نظر بگیرید‪ .‬صف اول از رود ‪ RR‬برا‬ ‫سطحی)‪(MLFQ‬‬ ‫زمان ند صف بازخوردی ند‬
‫‪FCFS‬‬ ‫میلی ثانیه و صف دوم نیی از رود ‪ RR‬برا کوانتروم ‪ 16‬میلری ثانیره و صرف اخرر از رود‬ ‫‪8‬‬ ‫کوانتوم‬
‫خرالی برود‬ ‫‪0‬‬ ‫استفاده می کند‪ .‬زمان ند ابتدا تمامی فرایندهای موجود درصف ‪ 0‬را اجرا میکنرد‪ ،‬ازرر صرف‬
‫فرایندهای صف ‪ 1‬اجرا میشود و ازر صف ‪ 0‬و‪ 1‬خالی بود فرایندهای صف ‪ 2‬اجرا میشود‪.‬فرایند تازه وارد در‬
‫صف ‪ 0‬قرار میزیرد ازر در مدت ‪ 8‬میلی ثانیه اجرای آن به پایان نرسد به انتهای صف ‪ 1‬میرود‪ .‬به فراینرد‬
‫موجود در ابتدای صف ‪ ،1‬کوانتوم زمانی ‪ 16‬میلی ثانیه داده میشود که ازر اجررای آن در ایرن مردت تمرام‬
‫نشود به صف ‪ 2‬میرود‪ .‬ازر هر دو صف ‪ 0‬و ‪ 1‬خالی باشد‪ ،‬فرایندهای صف ‪ 2‬براساس ‪ FCFS‬اجررا میشروند‪.‬‬
‫بنابراین فرایندهای طوالنی به صف ‪ 2‬میروند و به ترتیب ‪ FCFS‬اجرا میشوند‪.‬‬

‫مثال‬
‫یک سیستم تک پردازنده ای با صف بازخورد ند سطحی )‪)MLFQ‬را در نظرر بگیریرد‪ .‬بره صرف اول تکره‬
‫زمانی ‪ 8‬میکرو ثانیه‪ ،‬به صف دوم‪ ،‬تکه زمانی ‪ 16‬میکرو ثانیه داده می شود‪ .‬همچنرین صرف سروم برا رود‬
‫‪ FCFS‬زمان بندی می شود‪ .‬میانگین زمان پاسخ و میانگین زمان انتظار قدر خواهد بود؟‬

‫زمان اجرا فرایند‬


‫‪A‬‬ ‫‪4‬‬
‫‪B‬‬ ‫‪7‬‬
‫‪C‬‬ ‫‪12‬‬
‫‪D‬‬ ‫‪20‬‬
‫‪E‬‬ ‫‪25‬‬
‫‪F‬‬ ‫‪30‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪85‬‬ ‫سیستم عامل‬

‫حل‪:‬‬
‫ابتدا برنامه ها وارد صف اول می شوند و در صورت نیراز بره بریش از ‪ 8‬میکروثانیره بره صرف دوم وارد مری‬
‫شوند(فرایندهای ‪ )F,E,D,C‬و در صف دوم در صورت نیاز به بیش از ‪ 16‬میکروثانیه به صف سوم منتقل مری‬
‫شوند (فرایندهای ‪ )F,E‬و در صف سوم به رود ‪ FCFS‬به آنها رسیدزی می شود‪:‬‬

‫میانگین زمان انتظار برابر است با ‪:‬‬


‫‪(4  4)  (11  7)  (47  12)  (59  20)  (92  25)  (98  30) 213‬‬
‫‪‬‬ ‫‪ 35.5‬‬
‫‪6‬‬ ‫‪6‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪86‬‬ ‫سیستم عامل‬

‫زمان بندی صف چند سطحی (‪)MLQ‬‬


‫این الگوریتم صف آماده را به ند بخش تقسیم میکند‪ .‬هر فرایند براسراس صرفات خرود (اولویرت‪،‬نوع) در‬
‫صفی قرار میزیرد‪ ،‬که در هر صف الگوریتم زمان بندی خاصی وجود دارد‪ .‬به طور معمرول فراینردها بره دو‬
‫نوع ‪ ForeGround‬و ‪ BackGround‬تقسیم می شوند‪ .‬اولویت فرایندهای پیشزمینه ممکن است از پسزمینره‬
‫باالتر باشد‪ .‬در صف پیشزمینه از الگوریتم ‪ RR‬و در صف پس زمینه از الگروریتم ‪ FCFS‬اسرتفاده میشرود‪.‬‬
‫همچنین بین صفها نیی باید زمان بندی وجود داشته باشد‪ .‬که بر اساس الگوریتم غیرانحصاری و برا اولویرت‬
‫ثابت پیادهسازی میشود‪.‬‬

‫شکل زیر الگوریتم زمان بندی صف ند سطحی با ‪ 3‬صف را نشان می دهد‪:‬‬

‫باالترين‬
‫باالترين‬ ‫سيستمي‬
‫فرآيندهاي سيستمي‬
‫فرآيندهاي‬
‫اولويت‬
‫اولويت‬
‫اي‬
‫محاورهاي‬
‫فرآيندهاي محاوره‬
‫فرآيندهاي‬

‫تاارين‬
‫پااايين تاارين‬
‫پااايين‬ ‫اي‬
‫دستهاي‬
‫فرآيندهاي دسته‬
‫فرآيندهاي‬
‫اولويت‬
‫اولويت‬

‫در این م ال‪ ،‬هیچ فرایندی در صف محاورهای نمیتواند اجرا شود‪ ،‬مگر اینکره صرف مربروط بره فراینردهای‬
‫سیستمی خالی باشد‪ .‬همچنین ازر در حین اجرای فرایند دستهای‪ ،‬یک فرایند محراورهای وارد صرف شرود‪،‬‬
‫فرایند دستهای ق ضه میشود‪ ،‬ون اولویت فرایند محاورهای باالتراست‪.‬‬
‫زمان بندی اولویت (‪)Priority‬‬
‫به فرایندی داده میشود که براالترین اولویرت را‬ ‫‪CPU‬‬ ‫در این الگوریتم به هر فرایند اولویتی داده میشود و‬
‫دارد و فرایندهایی که اولویت آنها یکسان باشد به ترتیب ‪ FCFS‬زمان بندی میشوند‪.‬‬
‫مثال‬
‫میانگین زمان انتظار برای پنج فرایند زیر را در رود زمان بندی اولویت بدست آورید‪.‬‬
‫(اعداد کو ک‪ ،‬اولویت باال را نشان میدهد‪).‬‬
‫فراین‬ ‫اولوی‬
‫زمان اجرا‬
‫د‬ ‫ت‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪87‬‬ ‫سیستم عامل‬

‫‪P1‬‬ ‫‪10‬‬ ‫‪3‬‬


‫‪P2‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪P4‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪P5‬‬ ‫‪5‬‬ ‫‪2‬‬
‫حل‪ :‬زانت فرایند ها به صورت زیر است‪:‬‬

‫میانگین زمان انتظار ‪:‬‬


‫)‪(16  10)  (1  1)  (18  2)  (19  1)  (6  5‬‬
‫‪ 8.2‬‬
‫‪4‬‬

‫مثال‬
‫برای سه پردازه زیر‪ ،‬زمان متوسط پاسخگویی در رود اولویت کدام است؟‬
‫(عدد کمتر در ستون اولویت‪ ،‬نشان دهنده اولویت بیشتر است‪).‬‬

‫پردازه‬ ‫اولویت‬ ‫زمان ورود‬ ‫زمان اجرا‬


‫‪P1‬‬ ‫‪1‬‬ ‫‪t‬‬ ‫‪4‬‬
‫‪P2‬‬ ‫‪3‬‬ ‫‪t‬‬ ‫‪2‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪t +3‬‬ ‫‪1‬‬

‫‪P2‬‬ ‫حل‪ :‬ابتدا فرایند ‪ P1‬اجرا می شود ( ون اولویت آن بیشتر است) و سپس فرایند ‪ P3‬و در نهایرت فراینرد‬
‫اجرا می شود‪ .‬زانت به صورت زیر می باشد‪:‬‬

‫بنابراین میانگین زمان پاسخگویی برابر است با ‪:‬‬


‫‪‬‬
‫‪t  4  t   t  7  t   t  5  t  3  13‬‬
‫‪3‬‬ ‫‪3‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪88‬‬ ‫سیستم عامل‬

‫زمانبندی ‪LCFS‬‬
‫در این رود‪ ،‬آخرین ورودی ابتدا سرویس می زیرد‪ .‬این رود می تواند ق ضه شدنی یا ق ضه نشدنی باشد‪.‬‬
‫‪LCFS : Last-Come First-Served‬‬

‫مثال‬
‫پنج فرایند زیر به سیستمی وارد شده است‪ .‬نمودار زانت را در صورت استفاده از الگوریتم ‪ LCFS‬انحصاری )‪ (NP-LCFS‬را‬
‫محاس ه کنید‪.‬‬

‫زمان پردازش زمان ورود فرایند‬


‫‪A‬‬ ‫‪0‬‬ ‫‪1.5‬‬
‫‪B‬‬ ‫‪1‬‬ ‫‪1.5‬‬
‫‪C‬‬ ‫‪2‬‬ ‫‪1.5‬‬
‫‪D‬‬ ‫‪3‬‬ ‫‪1.5‬‬
‫‪E‬‬ ‫‪4‬‬ ‫‪1.5‬‬
‫حل‪:‬‬

‫پردازنده در لحظه ‪ 0‬به تنها فرایند موجود یعنی ‪ A‬داده می شود و ون ق ضه شدنی نمی باشد‪ ،‬تا پایان اجررای فراینرد ‪، A‬‬
‫پردازنده را در اختیار دارد‪ .‬در زمان ‪ 1.5‬فقط فرایند ‪ B‬رسیده و پردازنده را می زیرد‪ .‬در زمان ‪ 3‬کره ‪ C‬و ‪ D‬حاضررند‪ ،‬ابتردا‬
‫پردازنده به ‪ D‬داده می شود‪ ،‬ون آخرین ورودی است‪ .‬بعد از اجرای ‪ ، D‬ون ‪ E‬نیی رسیده است‪ ،‬پردازنرده بره ‪ E‬داده مری‬
‫شود و درنهایت به ‪ C‬داده می شود‪.‬‬
‫مثال‬
‫با توجه به جدول زیر‪ ،‬نمودار زانت را رسم کنید‪( .‬برای فرایندها از الگوریتم ‪ Round-Robin‬با برد زمانی ‪ q=2‬و بررای نرخ‬
‫های درون هر فرآیند‪ ،‬از الگوریتم ‪ LCFS‬استفاده کنید‪).‬‬
‫فرایند‬ ‫نخ‬ ‫زمان ورود زمان پردازش‬
‫‪P1‬‬ ‫‪T11‬‬ ‫‪1.5‬‬ ‫‪0‬‬
‫‪T12‬‬ ‫‪1.5‬‬ ‫‪1‬‬
‫‪P2‬‬ ‫‪T21‬‬ ‫‪2.5‬‬ ‫‪2‬‬
‫‪T22‬‬ ‫‪2‬‬ ‫‪3‬‬
‫حل‪ :‬نمودار زانت به صورت زیر می باشد‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪89‬‬ ‫سیستم عامل‬

‫متوسط زمان باززشت نخ های فرایند ‪ P1‬برابر است با‪:‬‬


‫)‪(5  0)  (4.5  1‬‬
‫‪P1 :‬‬ ‫‪ 4.25‬‬
‫‪2‬‬

‫زمانبندی در سیستم چند پردازنده ای‬


‫الگوریتم های متداول برای زمان ندی سیستم های ند پردازنده ای ع ارتند از‪:‬‬
‫‪SPT‬‬ ‫‪-3‬‬ ‫‪RPT‬‬ ‫‪-2‬‬ ‫‪LPT‬‬ ‫‪-1‬‬

‫الگوریتم ‪LPT‬‬
‫این الگوریتم از بین کارهای باقیمانده‪ ،‬طوالنی ترین کار را برای اجرا انتخاو می کند‪ .‬ایرن الگروریتم بهینره‬
‫نیست ولی معموال منجر به زمان ندی هایی با طول معقول می زردد‪.‬‬
‫مثال‬
‫طول زمان ندی را در سیستم تکالیف }‪ {8,4,1,7,2,13,2,6‬در حالت دو پردازنده محاس ه کنید‪.‬‬
‫حل‪ :‬ابتدا کارها را به ترتیب نیولی مرتب می کنیم‪:‬‬
‫}‪{ I }  {13,8,7,6,4,2,2,1‬‬
‫سپس کارها را به ترتیب به پردازنده ها داده و هر پردازنده ای که کرارد را انجرام داد‪ ،‬کرار بعردی را اجررا‬
‫خواهد کرد‪:‬‬

‫بنابراین طول زمان ندی برابر ‪ 22‬خواهد بود‪( .‬زمان مشغول بودن پردازنده اول که بیشترین زمان است‪).‬‬
‫مثال‬
‫طول زمان ندی را در سیستم تکالیف }‪ {8,4,1,7,2,13,2,6‬در حالت سه پردازنده محاس ه کنید‪.‬‬
‫حل‪ :‬ابتدا کارها را به ترتیب نیولی مرتب می کنیم‪:‬‬
‫}‪{ I }  {13,8,7,6,4,2,2,1‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪9۰‬‬ ‫سیستم عامل‬

‫سپس کارها را به ترتیب به پردازنده ها داده و هر پردازنده ای که کرارد را انجرام داد‪ ،‬کرار بعردی را اجررا‬
‫خواهد کرد‪:‬‬

‫بنابراین طول زمان ندی برابر ‪ 15‬خواهد بود‪( .‬زمان مشغول بودن پردازنده اول که بیشترین زمان است‪).‬‬

‫الگوریتم ‪RPT‬‬
‫‪RPT‬‬ ‫این الگوریتم از نظر طول زمان ندی مشابه ‪ LPT‬عمل کرده ولی زمان پاسخ بهتری را می دهد‪ .‬در واقع‬
‫مانند ‪ LPT‬ای است که ترتیب تکالیف هر پردازنده معکوس شده است‪.‬‬
‫مثال‬
‫نتیجه استفاده از ‪ RPT‬برای }‪ { I }  {13,8,7,6,4,2,2,1‬در شرایط دو پردازنده را مشخص نمایید؟‬
‫حل‪ :‬به رود ‪ LPT‬داریم‪:‬‬

‫که با معکوس کردن ترتیب تکالیف‪ ،‬خواهیم داشت‬

‫الگوریتم ‪SPT‬‬
‫این الگوریتم ندپردازنده ای‪ ،‬ابتدا کارها را بر اساس زمان اجرای افیایشی مرتب کرده و سرپس ‪ m‬ترا کرار‬
‫‪m‬‬ ‫اول را برای اجرا در ‪ m‬پردازنده موجود زمان ندی می کند (یک کار برای هر یک از پردازنده هرا )‪ ،‬سرپس‬
‫تا کار بعدی زمان ندی می زردند و بهمین ترتیب تا آخر‪.‬‬
‫مثال‬
‫طول زمان ندی در سیستم تکالیف }‪ {8,4,1,7,2,13,2,6‬با دو پردازنده به رود‪ SPT‬را تعیین نمایید‪.‬‬
‫حل‪ :‬ابتدا کارها را به ترتیب صعودی مرتب می کنیم‪:‬‬
‫}‪{1,2,2,4,6,7,8,13‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪91‬‬ ‫سیستم عامل‬

‫سپس کارها را به ترتیب به پردازنده ها داده و هر پردازنده ای که کرارد را انجرام داد‪ ،‬کرار بعردی را اجررا‬
‫خواهد کرد‪:‬‬

‫بنابراین طول زمان ندی برابر ‪ 26‬خواهد بود‪( .‬زمان مشغول بودن پردازنده دوم که بیشترین زمان است‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪92‬‬ ‫سیستم عامل‬

‫مشخصات سیاست های زمان بندی‬

‫‪FB‬‬ ‫‪HRRN‬‬ ‫‪SRT‬‬ ‫‪SPN‬‬ ‫‪RR‬‬ ‫‪FCFS‬‬

‫‪ws‬‬ ‫تابع‬
‫(‪max‬‬ ‫)‬ ‫]‪Min[s-e‬‬ ‫]‪Min[s‬‬ ‫ثابت‬ ‫]‪MAX[W‬‬
‫‪s‬‬ ‫انتخاو‬
‫حالت‬
‫با ق ضه کردن‬ ‫بدون ق ضه کردن‬
‫با ق ضه کردن‬ ‫بدون ق ضه‬ ‫با ق ضه کردن‬
‫(در برهه‬ ‫بدون ق ضه کردن‬ ‫تصمیم‬
‫در ورود‬ ‫کردن‬ ‫(در برهه زمانی)‬
‫زمانی)‬
‫زیری‬
‫ازر برهه زمانی‬ ‫تاکید نشده است‬
‫تاکید نشده‬ ‫خیلی کو ک‬ ‫توان‬
‫زیاد‬ ‫زیاد‬ ‫زیاد‬
‫است‪.‬‬ ‫باشد‪ ،‬کم می‬
‫عملیاتی‬
‫شود‪.‬‬
‫برای‬ ‫می تواند زیاد‬
‫برای فرایندهای‬
‫زمان پاسخ‬ ‫فرایندهای‬ ‫باشد‪،‬به خصوص‬ ‫زمان‬
‫زمان پاسخ خوبی را‬ ‫کوتاه زمان پاسخ‬
‫تاکید نشده‬ ‫خوبی را ارائه‬ ‫کوتاه زمان‬ ‫ازر واریانس‬
‫ارائه می کند‪.‬‬ ‫خوبی را ارائه می‬
‫است‬ ‫می کند‪.‬‬ ‫پاسخ خوبی را‬ ‫زمانهای اجرا‬ ‫پاسخ‬
‫دهد‪.‬‬
‫ارائه می دهد‪.‬‬ ‫خیلی بیرگ باشد‪.‬‬

‫می تواند زیاد‬ ‫می تواند زیاد‬ ‫می تواند زیاد‬


‫می تواند زیاد باشد‬ ‫کم‬ ‫حداقل‬ ‫سربار‬
‫باشد‬ ‫باشد‬ ‫باشد‬

‫به فرایندهای‬
‫می تواند به نفع‬ ‫تاثیر بر‬
‫به فرایندهای‬ ‫به فرایندهای‬ ‫کوتاه و فرایندهای‬
‫فرایندهای در‬
‫توازن مناسب‬ ‫طوالنی صدمه‬ ‫طوالنی صدمه‬ ‫عملکرد عادالنه‬ ‫در تنگنای ‪I/O‬‬ ‫روی‬
‫تنگنای ‪I/O‬‬
‫می زند‪.‬‬ ‫می زند‪.‬‬ ‫صدمه می زند‪.‬‬
‫باشد‪.‬‬ ‫فرایندها‬

‫امکان دارد‬ ‫خیر‬ ‫امکان دارد‬ ‫امکان دارد‬ ‫خیر‬ ‫خیر‬ ‫زرسنگی‬

‫‪ = w‬زمان سپری شده در سیستم برای انتظار و اجرا تا به حال‬


‫‪ =e‬زمان سپری شده‪ ،‬برای اجرا تا به حال‬
‫‪ =S‬کل زمان مورد نیاز فرایند‪ ،‬که شامل ‪ e‬نیی هست‪.‬‬
‫‪m‬‬
‫‪ci‬‬
‫‪p‬‬
‫‪i 1‬‬
‫شرط اینکه یک سیستم بالدرنگ قابل زمان بندی باشد این است که ‪ 1 :‬‬
‫‪i‬‬

‫‪ : m‬تعداد رخدادها‬ ‫‪ : p i‬تناوو رخداد ‪i‬‬ ‫‪ : c i‬زمان اجرای رخداد ‪i‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
93 ‫سیستم عامل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪94‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)87‬‬


‫‪ -1‬فرض کنید در سیستمی که از زمان بندی ‪ Round-Robin‬استفاده می کند‪ s ،‬زمان مورد نیراز بررای سروئیچ کرردن‪q ،‬‬
‫زمان برد و ‪ r‬میانگین زمان اجرای پردازد ها ق ل از ‪ I/O‬را نشان می دهد‪ .‬کارایی ‪ CPU‬توسط کدام یرک از زیینره هرای‬
‫زیر بیان می شود؟ (با فرض به اینکه رابطه ‪ s=q<r‬برقرار باشد‪).‬‬
‫(از زمان موردنیاز برای سوئیچ کردن بین پردازد ها به دلیل ‪ I/O‬صرفنظر میشود)‬
‫‪ )2‬کمتر از ‪ 50‬درصد می باشد‪.‬‬ ‫‪ )1‬به سمت صد در صد میل می کند‪.‬‬
‫‪ 50 )4‬درصد‬ ‫‪ )3‬به سمت صفر میل می کند‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫‪q‬‬ ‫‪q‬‬ ‫‪1‬‬
‫‪ 100 ‬‬ ‫‪ 100   100  50%‬‬
‫‪qs‬‬ ‫‪qq‬‬ ‫‪2‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)87‬‬


‫‪ -2‬در سیستمی ‪ 5‬فرآیند موجود هستند‪ .‬ازر الگوریتم زمان بندی فرآیندها‪ RR ،‬با مقردار کوانتروم ‪ 10‬میلری ثانیره و زمران‬
‫تعویض متن ‪ 1‬میلی ثانیه باشد‪ ،‬آن زاه حداک ر زمانی که یک فرآیند منتظر می ماند تا نوبت به اجرای کوانتوم زمانی بعردی‬
‫اد برسد کدام است؟‬
‫‪44 )4‬‬ ‫‪55 )3‬‬ ‫‪50 )2‬‬ ‫‪40 )1‬‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪ .‬حداک ر زمان انتظار برای دریافت کوانتوم بعدی برابر است با‪:‬‬
‫‪(n  1)(s  q )  (5  1)(10  1)  44‬‬
‫(مهندسی ‪ -IT‬آزاد ‪)89‬‬
‫‪ -3‬سیستمی از رود زمان ندی نوبتی رخشی استفاده مری کنرد‪ .‬ازرر ‪ c‬زمران مرورد تیراز بررای تعرویض مرتن ‪ q ،‬بررد‬
‫زمانی(کوانتوم) ‪ r ،‬میانگین زمان اجرای فرایندها ق ل از ‪ I/O‬و ‪ q>r‬باشد‪ ،‬کارایی ‪ CPU‬برابر است با‪:‬‬
‫‪q‬‬ ‫‪q‬‬ ‫‪r‬‬ ‫‪r‬‬
‫‪)4‬‬ ‫‪)3‬‬ ‫‪)2‬‬ ‫‪)1‬‬
‫‪rc‬‬ ‫‪qc‬‬ ‫‪rc‬‬ ‫‪qc‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪95‬‬ ‫سیستم عامل‬

‫حل‪ :‬جواو زیینه ‪ 2‬است‪ .‬ون میانگین زمان اجرای فرایندها ق ل از ورودی‪/‬خروجی کمتر از زمان برد زمانی است‪ ،‬اجررای‬
‫فرایندها ق ل از پایان کوانتوم زمانی‪ ،‬به اتمام می رسد‪ .‬بنابراین کارایی پردازنده‪ ،‬یعنی نس ت زمران مفیرد (‪ )r‬بره کرل زمران‬
‫‪r‬‬
‫)‪ (r+c‬برابر است با‪:‬‬
‫‪rc‬‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)74‬‬


‫‪ -4‬پنج کار در وضعیت آماده ‪ ،‬در انتظار اجرا شدن هستند‪ .‬زمان تخمین زده شده برای اجرای آنها برابر است با‬
‫‪ x , 8 , 6 , 5, 10‬میکرو ثانیه‪ x( .‬مجهول است‪ ).‬از کدام رود زمان بندی استفاده شود تا متوسط زمان پاسخگوئی حداقل‬
‫شود؟‬
‫‪RR )4‬‬ ‫‪SRT )3‬‬ ‫‪SJF )2‬‬ ‫‪FCFS )1‬‬

‫حل‪ :‬جواو زیینه ‪ 2‬است‪.‬‬


‫الگوریتم ‪ SJF‬همواره کمترین زمان پاسخ را نتیجه میدهد و به زمان اجراهای داده شده بستگی ندارد‪.‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)84‬‬


‫‪ -5‬کدام زیینه در مورد الگوریتم زمان بندی ‪ (Shortest Job First) SJF‬درست نیست؟‬
‫‪ )2‬توان عملیاتی )‪ (throughput‬را باال میبرد‪.‬‬ ‫‪ )1‬این الگوریتم زمان برزشت را کاهش میدهد‪.‬‬
‫‪ )4‬این الگوریتم بهرهوری ‪ CPU‬را باال میبرد‪.‬‬ ‫‪ )3‬این الگوریتم بر اساس اولویت عمل میکند‪.‬‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫زیینه ‪ 1‬درست است‪ .‬ون الگوریتم ‪ ، SJF‬نس ت به سایر الگوریتم های زمان بندی انحصاری‪ ،‬دارای میانگین زمان برزشرت‬
‫کمتری است‪.‬‬
‫زیینه ‪ 2‬درست است ‪ ،‬ون در این الگوریتم کارهای کوتاه تر‪ ،‬زودتر اجرا می شوند‪ ،‬بنابراین تعرداد کارهرای انجرام شرده در‬
‫واحد زمان (توان عملیاتی) بیشتر است‪.‬‬
‫زیینه ‪ 3‬درست است‪ ،‬ون الگوریتم ‪ SJF‬اولویت را به کارهای کوتاه تر می دهد‪ ،‬یک الگوریتم اولویت است‪.‬‬
‫زیینه ‪ 4‬نادرست است‪ ،‬ون ‪ SJF‬سعی به کم کردن تعداد تعویض متن ها ندارد‪ ،‬بنابراین بهره وری ‪ CPU‬را باال نمی برد‪.‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)83‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪96‬‬ ‫سیستم عامل‬

‫‪ -6‬یک سیستم تک پردازندهای از الگوریتم زمان بندی کوتاهترین زمان باقی مانده )‪ (SRT‬استفاده مینماید‪ .‬هار فراینرد برا‬
‫زمان اجرای تخمینی ‪ 3,2,3,6‬میلی ثانیه به ترتیب در زمانهای ‪ 7,3,1,0‬میلی ثانیه وارد سیستم میشوند‪ .‬ازر زمان تعرویض‬
‫متن نا یی باشد و تمامی فرایندها فقط کار پردازشی داشته باشند‪ ،‬آنگاه میانگین زمان انتظار برای اجرای کامل فرایندها ند‬
‫میلی ثانیه است؟‬
‫‪2.25 )4‬‬ ‫‪2.5 )3‬‬ ‫‪0.25 )2‬‬ ‫‪1.5 )1‬‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫نمودار زانت به صورت زیر می باشد‪:‬‬

‫بنابراین میانگین زمان انتظار برابر است با‪:‬‬


‫‪(14  6  0)  (4  3  1)  (6  2  3)  (10  3  7) 8  0  1  0‬‬
‫‪‬‬ ‫‪ 2.25‬‬
‫‪4‬‬ ‫‪4‬‬

‫(مهندسی کامپیوتر‪-‬آزاد ‪)83‬‬


‫‪ -7‬کدامیک از ویژزیهای زیر به عنوان مالک الگوریتم زمان بندی صفهای ندزانه )‪ (Multiple Queues‬نیست؟‬
‫‪ )2‬کاهش تعداد تعویض متن‬ ‫‪ )1‬افیایش زذردهی‬
‫‪ )4‬اعمال اولویت (ابتدا کوتاهترین فرایند)‬ ‫‪ )3‬افیایش بهرهوری از پردازنده‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫در الگوریتم زمان بندی صف های ند زانه‪ ،‬اولویت لیوما به معنای کوتاهترین فرایند نمی باشد‪.‬‬
‫( مهندسی ‪ – IT‬آزاد ‪)89‬‬
‫‪ -8‬هار فرایند بر اساس جدول زیر وارد سیستم می شوند‪ .‬در این سیستم از زمان بندی ‪ HRRN‬استفاده مری شرود‪ .‬زمران‬
‫تعویض متن یک میلی ثانیه است‪ .‬میانگین زمان برزشت)‪ (TURNAROUND TIME‬برابر است با‪:‬‬
‫فرایند‬ ‫زمان ورود (میلی‬ ‫زمان اجرا (میلی‬
‫ثانیه)‬ ‫ثانیه)‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪7‬‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪6‬‬
‫‪P4‬‬ ‫‪3‬‬ ‫‪5‬‬
‫‪13 )4‬‬ ‫‪14 )3‬‬ ‫‪13.75 )2‬‬ ‫‪12.75 )1‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 1‬است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪97‬‬ ‫سیستم عامل‬

‫در زمان صفر فقط فرایند ‪ P1‬در سیستم وجود دارد و پردازنده به آن داده می شود تا اجرایش به پایان برسرد‪ .‬در ایرن زمران‬
‫‪w s‬‬
‫محاس ه می شود‪:‬‬ ‫(یعنی ‪ ، ) 7‬اولویت فرایندها ط ا فرمول الگوریتم ‪ HRRN‬یعنی‬
‫‪s‬‬
‫‪( 7  2)  3‬‬
‫‪P2 :‬‬ ‫‪ 2.6‬‬
‫‪3‬‬
‫‪(7  3)  6‬‬
‫‪P3 :‬‬ ‫‪ 1.6‬‬
‫‪6‬‬
‫‪(7  3)  5‬‬
‫‪P4 :‬‬ ‫‪ 1.8‬‬
‫‪5‬‬
‫حال ون اولویت ‪ P2‬از فرایندهای ‪ P3‬و ‪ P4‬بیشتر است ‪ ،‬پردازنده در زمان ‪( 8‬بعد از یکی میلی ثانیه از پایان اجرای ‪ P1‬به‬
‫علت تویض متن) به آن داده می شود‪ .‬اجرای ‪ P2‬در لحظه ‪ 11‬به پایان می رسد‪ .‬در زمان ‪ ، 11‬مجرددا اولویرت فراینردهای‬
‫باقی مانده را حساو می کنیم‪:‬‬
‫‪(11  3)  6‬‬
‫‪P3 :‬‬ ‫‪ 2.3‬‬
‫‪6‬‬
‫‪(11  3)  5‬‬
‫‪P4 :‬‬ ‫‪ 2.6‬‬
‫‪5‬‬
‫بنابراین پردازنده به ‪ P4‬داده می شود‪ .‬و در نهایت بعد از اجرای ‪ P4‬به ‪ P3‬داده می شود‪.‬‬
‫نمودار زانت به صورت زیر است‪:‬‬

‫بنابراین میانگین زمان برزشت برابر است با‪:‬‬


‫)‪(7  0)  (11  2)  (17  3)  (24  3‬‬
‫‪ 12.75‬‬
‫‪4‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪98‬‬ ‫سیستم عامل‬

‫‪4‬‬ ‫فصل‬

‫هم روندی‪ :‬انحصار متقابل و همگام سازی‬

‫عملکرد ند برنامه ای به خاطر این ابداع شد که زمان پردازد کامپیوتر به صورت پویرا برین تعردادی کرار‬
‫بتواند تقسیم زردد‪ .‬برای زمینه های ند برنامه ای‪ ،‬ند پردازشی و پردازد توزیعی و همچنرین طراحری‬
‫سیستم عامل‪ ،‬موضوع همیمانی اساسی است‪ .‬فرایندهای هم روند )‪ ، (Concurrent‬به دفعات نیاز به برقراری‬
‫ارت اط با یکدیگر دارند‪ .‬این فرایندها نیاز به هماهنگی‪ ،‬ت ادل داده و استفاده از منابع مشترک دارند‪.‬‬

‫مباحث مطرح در ارتباط بین فرایندها‬


‫در طراحی سیستم عامل‪ ،‬سه موضوع زیر در رابطه با ارت اط بین فرایندها مطرح است‪:‬‬
‫‪ -1‬همگام سازی )‪(Synchronization‬‬

‫ازر بین فرایندها وابستگی وجود داشته باشد‪ ،‬ترتیب درست انجام کارها باید رعایت شود‪.‬‬
‫‪ -2‬تبادل اطالعات )‪(Communication‬‬

‫فرایندها می توانند با مکانیسم هایی ون "حافظه مشترک‪ ،‬ت ادل پیام‪ ،‬فایل مشترک و لوله" با یکدیگر‬
‫ت ادل اطالعات کنند‪.‬‬
‫‪ -3‬رقابت فرایندها‬
‫‪ (Race‬بررای آنهرا رخ‬ ‫رقابتی)‪Condition‬‬ ‫فرایندها در فعالیت های بحرانی یکدیگر مداخله نکنند و شرایط‬
‫ندهد‪.‬‬

‫حالت های ممکن ارتباط بین فرایندها )‪(IPC‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪99‬‬ ‫سیستم عامل‬

‫‪ -1‬فرایندهایی که به طور مستقیم با یکدیگر ت ادل داده و همکاری دارند‪.‬‬


‫‪ -2‬فرایندهایی که غیر مستقیم با یکدیگر ت ادل داده و همکاری دارند‪.‬‬
‫‪ -3‬فرایندهایی که هیچ اطالعی از یکدیگر ندارند‪.‬‬
‫سه مسئله کنترلی‬
‫در مورد فرایندهای رقیب‪ ،‬با سه مسئله کنترلی زیر باید برخورد شود‪:‬‬
‫‪-1‬انحصار متقابل‬
‫‪ -2‬بن بست‬
‫‪ -3‬زرسنگی(قحطی)‬
‫انحصار متقابل‬
‫فرض کنید ند فرایند برای دسترسی به یک من ع غیر اشتراکی مانند راپگر رقابرت مری کننرد‪ .‬در طری‬
‫اجراء‪ ،‬هر یک از فرایندها ‪ ،‬فرمان هایی را به دستگاه ورودی‪ /‬خروجی ارسرال مری کننرد‪ .‬نرین من عری را‬
‫من ع بحرانی و بخشی از برنامه که از آن استفاده می کند را بخش بحرانی آن برنامه می زروییم‪ .‬مهرم ایرن‬
‫است که در یک زمان‪ ،‬تنها یک برنامه مجاز است تا در بخش بحرانی خود باشد‪.‬‬
‫‪(Critical‬‬ ‫بخش هایی از برنامه که رفتار آنها با عوامل مشترک‪ ،‬ایجاد رقابت می کنند‪ ،‬را ناحیه بحرانی‬
‫)‪ Region‬می زویند‪.‬‬
‫بن بست‬
‫اعمال انحصار متقابل دو مسئله کنترلی‪ ،‬بن بست و زرسنگی را به وجود می آورد‪ .‬دو فراینرد ‪ P1‬و ‪ P2‬و دو‬
‫مفروض است که هر یک از فرایندها برای انجام عمل خود به هر دو من ع نیاز دارند‪.‬‬ ‫‪R2‬‬ ‫من ع بحرانی ‪ R1‬و‬
‫ازر من ع ‪ R1‬به ‪ P2‬و من ع ‪ R2‬به ‪ P1‬داده شود‪ ،‬هرر یرک منتظرر من رع دیگرر مری باشرند و هریچ یرک از‬
‫فرایندها‪ ،‬من عی را که در اختیار دارد را رها نمی کند تا فرایند دیگر آن را دریافرت کررده و بخرش بحرانری‬
‫خود را انجام دهد‪ .‬بنابراین هر دو فرایند در بن بست قرار می زیرند‪.‬‬
‫گرسنگی‬
‫فرض کنید هر یک از سه فرایند ‪ P1‬و ‪ P2‬و ‪ P3‬متناوباً نیازمند دسترسی به من ع ‪ R‬هستند‪ .‬وقتری ‪ P1‬ایرن‬
‫من ع را در اختیار زیرد‪ P2 ،‬و ‪ P3‬در انتظار آن من ع‪ ،‬به تاخیر انداختره مری شروند‪ .‬برا خرروج ‪ P1‬از ناحیره‬
‫بحرانی‪ ،‬یکی از ‪ P2‬یا ‪ P3‬باید ‪ R‬را در اختیار زیرند‪ .‬ازر‪ P3‬من ع ‪ R‬را بگیرد و ق ل از پایران بخرش بحرانری‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰۰‬‬ ‫سیستم عامل‬

‫‪P3‬‬ ‫مجدداً ‪ P1‬درخواست ‪ R‬را بکند و بعد از پایان ‪ ، P3‬اجازه به ‪ P1‬داده شود و مکرراً ایرن عمرل برین ‪ P1‬و‬
‫محروم می ماند و زرسنگی می کشد‪.‬‬ ‫‪R‬‬ ‫ادامه یابد‪ P2 ،‬به صورت نامحدود از دسترسی به من ع‬
‫مثال‬
‫در صورت اجرای هم روند و موازی دو پروسس زیر‪ ،‬ه خروجی هایی ممکن می باشد؟‬
‫‪p1‬‬ ‫‪p2‬‬

‫<<‪cout‬‬ ‫;‪cout<< 3‬‬


‫;‪1‬‬ ‫;‪cout<< 4‬‬
‫<<‪cout‬‬
‫;‪2‬‬
‫پاسخ‪:‬‬
‫امکان تولید خروجی های زیر می باشد‪:‬‬
‫‪ : 1234 -1‬ابتدا ‪ P1‬به طور کامل اجرا شده و سپس ‪ P2‬اجرا می شود‪.‬‬
‫‪ : 3412 -2‬ابتدا ‪ P2‬به طور کامل اجرا شده و سپس ‪ P1‬اجرا می شود‪.‬‬
‫‪ : 1342 -3‬ابتدا دستور اول در ‪ P1‬اجرا شده و سپس ‪ P2‬به طور کامل اجرا شده و در نهایت دستور دوم ‪ P1‬اجرا می شود‪.‬‬
‫‪ : 3124 -4‬ابتدا دستور اول از ‪ ، P2‬بعد اجرای کامل‪ ، P1‬مجددا دستور دوم از ‪ P2‬اجرا شود‪.‬‬
‫‪ : 1324 -5‬ابتدا دستور اول از ‪ ،P1‬بعد دستور اول از ‪ ،P2‬مجددا دستور دوم از ‪ P1‬و در نهایت دستور دوم از ‪ P2‬اجرا شود‪.‬‬
‫‪ : 3142 -6‬ابتدا دستور اول از ‪ ، P2‬بعد دستور اول از ‪ ، P1‬مجددا دستور دوم از ‪ P2‬و در نهایت دستور دوم از ‪ P1‬اجرا شود‪.‬‬

‫مثال‬
‫با فرض اینکه دو پردازه ‪ P1‬و ‪ P2‬به صورت هم روند وجود دارند‪ .‬نحوه ایجاد رشته ‪ A(CD ) * B‬گونه می باشد؟‬
‫‪P1‬‬ ‫‪P2‬‬
‫{)‪while(TRUE‬‬ ‫{)‪while(TRUE‬‬
‫;"‪cout<< "A‬‬ ‫;"‪cout<<"C‬‬
‫;"‪cout<< "B‬‬ ‫;"‪cout<<"D‬‬
‫}‬ ‫}‬
‫پاسخ‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰1‬‬ ‫سیستم عامل‬

‫ابتدا اجرای ‪ P1‬شروع شده و دستور "‪ cout<<"A‬اجرا می شود‪ .‬در این لحظه وقفه رخ داده و به ‪ P2‬سوئیچ می شود‪ .‬فراینرد‬
‫‪ P2‬ند مرت ه اجرا می شود‪ .‬در نهایت با رخ دادن وقفه و سوئیچ به ‪ ، P1‬دستور ا ‪ B‬اجرا می شود‪.‬‬

‫مثال‬
‫در صورتی که دو پروسس ‪ P1‬و ‪ P2‬به صورت هم روند اجرا شوند‪ ،‬نحوه ا ‪ BADC‬گونه است؟ (مقدار اولیه متغیرهرای‬
‫‪ x‬و ‪ y‬برابر صفر است‪).‬‬
‫‪P1‬‬ ‫‪P2‬‬
‫;)‪while (x=0‬‬ ‫;"‪cout<<" B‬‬
‫;"‪cout<< "A‬‬ ‫;‪x=1‬‬
‫;"‪cout<< "D‬‬ ‫;)‪while (y=0‬‬
‫;‪y=1‬‬ ‫;"‪cout<<"C‬‬
‫پاسخ‪:‬‬
‫نحوه ا رشته ‪ BADC‬به این صورت است که ابتدا فرایند ‪ P2‬اجرا شده و کاراکتر ‪ B‬را ا کرده و بعد از یک شردن ‪، x‬‬
‫شده و در نهایرت بعرد از یرک شردن ‪ y‬بره ‪P2‬‬ ‫به فرایند ‪ P1‬سوئیچ شده و از حلقه ع ور کرده و کاراکتر ‪ A‬و سپس ‪ D‬ا‬
‫سوئیچ شده و از حلقه ع ور کرده و کاراکتر ‪ C‬ا می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰2‬‬ ‫سیستم عامل‬

‫رویکردهای انحصار متقابل‬


‫شرایطی که باید رعایت شود تا یک همکاری درست و کارا بین فرایندهای هم روند برقرار باشد‪ ،‬ع ارتند از‪:‬‬

‫‪ -1‬انحصار متقابل )‪(Mutual Exclusion‬‬

‫از بین فرایندهایی که برای یک من ع یکسان دارای ناحیه بحرانی هستند‪ ،‬در هر لحظه فقط یک فراینرد‬
‫مجاز است که در ناحیه بحرانی خود باشد‪.‬‬

‫‪ -2‬پیشرفت )‪(Progress‬‬

‫فرایندی که فعرال تصرمیم بره ورود بره ناحیره بحرانری را نردارد و در ناحیره غیرر بحرانری مری باشرد‪،‬و‬
‫دستورالعمل های عادبی برنامه خود را اجرا می کند‪ ،‬ن اید در تصمیم زیری برای ورود فرایندهای دیگرر‬
‫به ناحیه بحرانی شرکت کند‪(.‬امکان ممانعت نداشته باشد)‬

‫‪ -3‬انتظار محدود )‪(Bounded Waiting‬‬

‫باید مدت انتظار فرایندهایی که نیاز به ورود به ناحیه بحرانی دارنرد‪ ،‬محردود باشرد‪ .‬یعنری ن ایرد د رار‬
‫زرسنگی و بن بست شوند‪.‬‬
‫زرسنگی‪ :‬به مدت نامعلوم و بدون حد باالی مشخص‪ ،‬منتظر فرایندهای دیگر بودن‪.‬‬
‫بن بست‪ :‬تا ابد منتظر ورود به ناحیه بحرانی خود بودن‪.‬‬

‫ال ته عالوه بر رعایت ‪ 3‬شرط باال‪ ،‬مسئله را باید در حالت کلی حل کرد و فرضی برای ساده سرازی راه حرل‬
‫به کار ن رد‪ .‬همچنین الگوریتم حالت قطعی و غیر تصادفی داشته باشد‪.‬‬

‫ازر فرایند ‪ P2‬بخواهد وارد ناحیه بحرانی شود در حالی کره ‪ P1‬در ناحیره بحرانری قررار دارد‪ P2 ،‬بایرد‬
‫منتظر بماند تا ‪ P1‬خارج شود‪ P2 .‬برای انتظار کشیدن دو راه " انتظار مشغول و مسدود شردن" پریش‬
‫رو دارد‪ .‬رود انتظار مشغول دارای مشکل اتالف پردازنده است و از این رود وقتی استفاده می کنریم‬
‫که زمان انتظار کوتاه باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰3‬‬ ‫سیستم عامل‬

‫برای تحقا انحصار متقابل‪ ،‬پیشنهادهای مختلفی وجود دارد‪ .‬این راه حل ها را به صورت هار رویکرد زیرر‪،‬‬
‫دسته بندی می کنیم‪:‬‬
‫‪ -1‬نرم افیاری‬
‫‪ -2‬با حمایت سخت افیار (با کمک دستورالعمل های خاص ‪)CPU‬‬
‫‪ -3‬با حمایت سیستم عامل (با کمک فراخوان های سیستمی خاص)‬
‫‪ -4‬با حمایت زبان برنامه سازی (با کمک کامپایلر)‬
‫رویکردهای نرم افزاری انحصار متقابل‬
‫راه حل های نرم افیاری مستقیما توسط برنامه ها استفاده می شوند و وجود حافظه اشرتراکی ضرروری مری‬
‫باشد‪ .‬در این راه حل ها از دستورالعمل های خاص توسرط سرخت افریار اسرتفاده نمری شرود و حمرایتی از‬
‫سیستم عامل و زبان های برنامه سازی نداریم‪.‬‬
‫الگوریتم ‪Decker‬‬
‫آقای ‪ Decker‬اولین شخصی بود که یک راه حل نرم افیاری دو فرایندی برای مسئله انحصار متقابل ارائه داد‪.‬‬
‫‪ Decker‬با پنج مرحله تالد به راه حل درست رسید‪ .‬این تالد ها در زیر آورده شده است‪.‬‬

‫تالش اول (تناوب قطعی)‬


‫در این رود از یک متغیر سراسری مشترک به نام ‪ turn‬استفاده شده که دو مقدار ‪ 0‬یا ‪ 1‬را می تواند بگیرد‪.‬‬
‫مقدار اولیه ‪ turn‬برابر ‪ 0‬است‪ .‬بنابراین ابتدا ‪ P0‬می تواند وارد ناحیه بحرانی شود‪ .‬در این حالت ‪ P1‬در حلقره‬
‫‪ while‬منتظر می ماند تا ‪ P0‬از ناحیه بحرانی خارج شده و ‪ turn‬را ‪ 1‬کند‪ .‬در این صورت ‪ P1‬مری توانرد وارد‬
‫ناحیه بحرانی شود‪ .‬برنامه فرایندها به صورت زیر است‪:‬‬

‫)‪P0(void‬‬ ‫)‪P1(void‬‬
‫{‬ ‫{‬
‫)‪while(TRUE‬‬ ‫)‪while(TRUE‬‬
‫{‬ ‫{‬
‫‪while( turn != 0) ; /*wait*/‬‬ ‫‪while( turn != 1) ; /*wait*/‬‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪turn = 1‬‬ ‫;‪turn = 0‬‬
‫;) (‪non-critical- section‬‬ ‫;) (‪non-critical- section‬‬
‫}‬ ‫}‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
1۰4 ‫سیستم عامل‬

} }

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪1۰5‬‬ ‫سیستم عامل‬

‫بررسی شرط ها در تالش اول‪:‬‬


‫‪ -1‬انحصار متقابل‬
‫راه حل زفته شده انحصار متقابل را تضمین می کند و امکان ندارد که ‪ P0‬و ‪ P1‬با هم وارد ناحیه بحرانی‬
‫شوند‪ .‬ون ‪ P0‬در صورتی وارد ناحیه بحرانی می شود که مقدار ‪ turn‬برابر ‪ 0‬باشد و ‪ P1‬برا مقردار ‪ 1‬وارد‬
‫می شود‪ .‬بنابراین امکان ندارد که هر دو به ‪ turn‬نگاه کنند و هر دو با هم مقدارهای ‪ 0‬و‪ 1‬را ب ینند‪.‬‬
‫‪ -2‬پیشرفت‬
‫این رود شرط پیشرفت را رعایت نمی کند‪ .‬ون ازر ‪ P1‬وارد ناحیه بحرانی شود و کارد تمرام شرده و‬
‫به بخش غیر بحرانی برود‪ ،‬در این حالت ‪ turn‬برابر ‪ 0‬می باشد‪ .‬حال نوبت ‪ P0‬است که وارد ناحیه بحرانی‬
‫شود‪ ،‬ولی می خواهد به مدت طوالنی در ناحیه غیر بحرانی بماند‪ P1 .‬به سررعت کرارد در ناحیره غیرر‬
‫بحرانی تمام شده و قصد ورود مجدد به ناحیه بحرانی را دارد‪ .‬اما ون ‪ turn‬برابر ‪ 0‬است در حلقه انتظرار‬
‫می ماند تا باالخره ‪ P0‬وارد ناحیه بحرانی شده و بعد از خروج‪ turn ،‬را ‪ 1‬کررده ترا ‪ P1‬بتوانرد وارد ناحیره‬
‫بحرانی شود‪ .‬در این سناریو‪ P1 ،‬توسط فرایندی منتظر مانده بود کره در ناحیره بحرانری ن رود و جلروی‬
‫پیشرفت اد را زرفته بود‪.‬‬
‫‪ -3‬انتظار محدود‬
‫در این رود قحطی نداریم‪ ،‬ون فرایندها به صورت یک در میان و نوبتی وارد ناحیه بحرانی می شروند‪.‬‬
‫همچنین بن بست نیی نداریم‪ .‬بنابراین شرط انتظار محدود رعایت می شود‪.‬‬

‫یکی از معایب این رود این است که سرعت عملیات توسط فراینرد کنردتر تعیرین مری شرود‪ ،‬رون‬
‫فرایندها برای دسترسی به ناحیه بحرانی باید به صورت یک در میان عمل کنند‪.‬‬

‫یکی از معایب این رود این است که ازر فرایندی در ناحیه بحرانی از کار بیفتد‪ ،‬فرایند دیگرر ترا ابرد‬
‫منتظر خواهد ماند‪.‬‬
‫تالش دوم‬
‫در این رود از دو متغیر پر م مشترک به نام های ]‪ flag[0‬و ]‪ flag[1‬با مقدار اولیره ‪ FALSE‬اسرتفاده مری‬
‫شود که هر کدام متعلا به یک فرایند است‪ .‬هر فرایندی که قصد ورود به ناحیه بحرانی خود را دارد‪ ،‬پرر م‬
‫خود را ‪ TRUE‬می کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰6‬‬ ‫سیستم عامل‬

‫در این رود هر فرایند دارای کلید مجیا برای ورود به ناحیه بحرانی است تا ازر فراینردی قصرد اسرتفاده از‬
‫ناحیه بحرانی را نداشت‪ ،‬فرایند دیگر بتواند به ناحیه بحرانی خود دسترسی داشته باشد‪ .‬برنامه فراینردها بره‬
‫صورت زیر است‪:‬‬
‫;}‪boolean flag[2] = {FALSE,FALSE‬‬
‫{)‪P0(void‬‬ ‫{)‪P1(void‬‬
‫{ )‪while(TRUE‬‬ ‫{ )‪while(TRUE‬‬
‫;) ]‪while( flag[1‬‬ ‫;) ]‪while( flag[0‬‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;) ( ‪non-critical- section‬‬ ‫;) ( ‪non-critical- section‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫بررسی شرط ها در تالش دوم‬


‫‪ -1‬انحصار متقابل‬
‫این رود انحصار متقابل رعایت نمی شود‪ .‬یعنی حتی از رود اول هم بدتر است‪.‬‬
‫سناریو‪ :‬فرض کنید کره ‪ flag[1] ، P0‬را خوانرده و آن را ‪ FALSE‬مری بینرد‪ ،‬امرا ق رل از ‪ TRUE‬کرردن‬
‫]‪ P1 ،flag[0‬اجرا شود و ]‪ flag[0‬را خوانرده و آن را ‪ FALSE‬مری بینرد و بررای ورود بره ناحیره بحرانری‬
‫]‪ flag[1‬را ‪ TRUE‬کرده و وارد می شود‪ .‬حال در این زمان به ‪ P0‬سوئیچ شده و ]‪ flag[0‬را ‪ TRUE‬کرده و‬
‫این فرایند هم وارد ناحیه بحرانی می شود! بنابراین ون هر دو فرایند در یک زمان وارد ناحیره بحرانری‬
‫خود شده اند‪ ،‬شرط انحصار متقابل برقرار نمی باشد‪.‬‬
‫‪ -2‬پیشرفت‬
‫‪FALSE‬‬ ‫این رود شرط پیشرفت را رعایت می کند‪ .‬ازر ‪ P0‬در ناحیه غیر بحرانی خود باشرد‪ flag[0] ،‬را‬
‫نگه می دارد تا ‪ P1‬بتواند وارد ناحیه بحرانی خودد شود‪ .‬ازر ‪ P0‬برای مدت طوالنی تصمیم بره ورود بره‬
‫ناحیه بحرانی را نداشته باشد‪ P1 ،‬به دفعات می تواند وارد ناحیه بحرانی شود و سپس خارج شود‪ .‬یعنری‬
‫‪ P0‬جلوی پیشرفت ‪ P1‬را نمی زیرد‪.‬‬
‫‪ -3‬انتظار محدود‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰7‬‬ ‫سیستم عامل‬

‫این رود شرط انتظار محدود را رعایت نمی کند‪ ،‬ون امکان قحطی دارد‪ .‬در این تالد امکان ورود پی‬
‫در پی یک فرایند به ناحیه بحرانی و عدم دستیابی فرایند دیگر به ناحیه بحرانی وجود دارد‪.‬‬
‫سناریو‪ :‬فرض کنید ‪ P0‬در ناحیه بحرانی است و به ‪ P1‬سوئیچ می شود‪ .‬ون ]‪ flag[0‬برابر ‪ TRUE‬اسرت‪،‬‬
‫نمی تواند وارد ناحیه بحرانی شود‪ .‬بعد از پایان کوانتروم‪ ،‬پردازنرده بره ‪ P0‬داده شرده و ایرن فراینرد‬ ‫‪P1‬‬

‫سریعا ناحیه بحرانی اد را اجرا کرده و سعی به ورود مجدد به ناحیه بحرانی را دارد و ایرن اجرازه بره او‬
‫داده می شود‪ P0 .‬مجددا ]‪ flag[0‬را ‪ TRUE‬کرده و ازر به ‪ P1‬سوئیچ شود‪ ،‬باز هم نمی تواند اجرازه ورود‬
‫بگیرد‪ .‬بنابراین تالد برای دستیابی به ناحیه بحرانی تصادفی است و امکان قحطی وجود دارد‪.‬‬
‫یکی از معایب این رود این است که ازر فرایندی در ناحیه بحرانی از کار بیفتد‪ ،‬فرایند دیگرر ترا ابرد‬
‫منتظر خواهد ماند‪.‬‬
‫تالش سوم‬
‫در تالد دوم هر فرایند ابتدا وضعیت فرایند مقابل را ک کررده و سرپس ‪ flag‬خرود را ‪ TRUE‬مری کنرد‪.‬‬
‫بنابراین ازر هر دو به طور همیمان قصد ورود به ناحیه بحرانی را داشته باشند‪ flag ،‬یکدیگر را ‪ FALSE‬مری‬
‫بینند و با هم وارد می شوند‪ .‬برای حل این مشکل دو سطر مسئله را عوض می کنیم‪.‬‬
‫;}‪boolean flag[2] = {FALSE,FALSE‬‬
‫{)‪P0(void‬‬ ‫{)‪P1(void‬‬
‫{ )‪while(TRUE‬‬ ‫{ )‪while(TRUE‬‬
‫; ‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫;) ]‪while( flag[1‬‬ ‫;) ]‪while( flag[0‬‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪flag[0]= FALSE‬‬ ‫;‪flag[1]= FALSE‬‬
‫;) (‪non-critical- section‬‬ ‫;) (‪non-critical- section‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬
‫بررسی شرط ها‪:‬‬
‫‪ -1‬انحصار متقابل‬
‫‪TRUE‬‬ ‫ازر یکی از فرایندها بتواند وارد ناحیه بحرانی شود‪ ،‬ون ق ل از بررسی ‪ flag‬مقابل‪ flag ،‬خرود را‬
‫کرده ‪ ،‬جلوی ورود فرایند مقابل را می زیرد‪ .‬بنابراین شرط انحصار متقابل برقرار است‪.‬‬

‫‪ -2‬پیشرفت‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰8‬‬ ‫سیستم عامل‬

‫این رود شرط پیشرفت را رعایت می کند‪( .‬با همان استدالل تالد دوم)‬

‫‪ -3‬انتظار محدود‬
‫در این رود شرط انتظار محدود رعایت نمی شود‪ ،‬ون امکان بن بست وجود دارد‪.‬‬
‫‪P1‬‬ ‫سناریو‪ :‬فرض کنید که ‪ falg[0] ،P0‬را ‪ TRUE‬کنرد ولری ق رل از بررسری ]‪ flag[1‬در برنامره ‪ ، P0‬بره‬
‫سوئیچ شود و ‪ flag[1] ، P1‬را ‪ TRUE‬کند‪ .‬در این صورت هر دو فرایند تا ابد در حلقه انتظار زرفتار مری‬
‫شوند و بن بست رخ می دهد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪1۰9‬‬ ‫سیستم عامل‬

‫تالش چهارم (ادب و تعارف)‬


‫در تالد ق لی هر فرایند می تواند روی حا خود برای ورود به بخرش بحرانری اد پافشراری کنرد‪ .‬در ایرن‬
‫رود هر فرایند متغیر ‪ flag‬خود را ‪ TRUE‬کرده تا خواست خود برای ورود به بخش بحرانی را نشران دهرد‪،‬‬
‫اما آماده است ‪ flag‬را تغییر دهد تا به فرایند دیگر احترام زذارد‪ .‬یعنی فراینردی کره قصرد ورود بره ناحیره‬
‫بحرانی را دارد‪ ،‬ازر ب یند که فرایند مقابل هم می خواهد به ناحیه بحرانی وارد شود‪ falg ،‬خود را برای مدت‬
‫کوتاهی ‪ FALSE‬کرده تا فرایند مقابل بتواند وارد شود‪.‬‬
‫برنامه فرایندها به صورت زیر است‪:‬‬
‫;}‪boolean flag[2] = {FALSE,FALSE‬‬

‫)‪P0(void‬‬ ‫)‪P1(void‬‬
‫{‬ ‫{‬
‫)‪while(TRUE‬‬ ‫)‪while(TRUE‬‬
‫{‬ ‫{‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫)]‪while( flag[1‬‬ ‫)]‪while( flag [0‬‬
‫{‬ ‫{‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;) (‪delay_for_a_short_time‬‬ ‫;) (‪delay_for_a_short_time‬‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫}‬ ‫}‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;) (‪non-critical- section‬‬ ‫;) (‪non-critical- section‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫بررسی شرط ها‪:‬‬


‫‪ -1‬انحصار متقابل‪:‬‬
‫راه حل زفته شده انحصار متقابل را تضمین می کند‪( .‬با استدالل تالد سوم)‬
‫‪ -2‬پیشرفت‪:‬‬
‫این رود شرط پیشرفت را رعایت می کند‪( .‬با همان استدالل تالد دوم و سوم)‬
‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪11۰‬‬ ‫سیستم عامل‬

‫‪ -3‬انتظار محدود‪:‬‬
‫در این رود شرط انتظار محدود رعایت نمی شود‪ ،‬ون ممکن است یک فرایند به مدت نامعلوم و بدون‬
‫حد باالی مشخص‪ ،‬زرفتار قسمت تاخیر )‪ (delay‬شود و فرایند مقابل به دفعات وارد ناحیه بحرانی شرود‪.‬‬
‫بنابراین به دلیل امکان زرسنگی‪ ،‬شرط انتظار محدود رعایت نمی شود‪ .‬همچنین به علرت امکران وجرود‬
‫‪ ، Livelock‬نیی شرط انتظار محدود رعایت نمی شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪111‬‬ ‫سیستم عامل‬

‫مشکل ‪Livelock‬‬
‫در تالد هارم مشکل بن بست وجود ندارد‪ ،‬اما مشکل جدیدی به نام ‪ Livelock‬وجود دارد‪ .‬با دن ال کردن‬
‫اجرای زیر‪ ،‬این مشکل را توضیح می دهیم‪:‬‬
‫‪ flag[0] ، P0 )1‬را ‪ TRUE‬کند‪.‬‬
‫‪ flag[1] ، P1 )2‬را ‪ TRUE‬کند‪.‬‬
‫‪ flag[1] ، P0 )3‬را بررسی کند‪.‬‬
‫‪ flag[0] ، P1 )4‬را بررسی کند‪.‬‬
‫‪ flag[0] ، P0 )5‬را ‪ FALSE‬کند‪.‬‬
‫‪ flag[1] ، P1 )6‬را ‪ FALSE‬کند‪.‬‬
‫هر دو فرایند در یک زمان به مدت کوتاه یکسان عقب نشینی می کنند‪ .‬سپس با هم بر می زردند و مراحل‬
‫باال را تکرار می کنند‪ .‬ازر این دن اله به طور نامحدود تکرار شود‪ ،‬ممکن است هیچ کدام از فرایندها نتواننرد‬
‫وارد ناحیه بحرانی شوند‪ .‬ال ته این تکرار بن بست نمی باشد‪ ،‬ون با تغییر در سرعت نس ی فراینردها‪ ،‬ایرن‬
‫رخه شکسته می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪112‬‬ ‫سیستم عامل‬

‫تالش پنجم (راه حل صحیح)‬


‫‪ Decker‬بعد از هار تالد ناموفا‪ ،‬یک راه حل درست که شرایط انحصار متقابل‪ ،‬انتظار محدود و پیشررفت‬
‫را با هم رعایت می کند‪ ،‬ارائه داد‪ .‬در این رود متغیر نوبت را با متغیرهای پر م ترکیب کرد‪ .‬این الگروریتم‬
‫در زیر آورده شده است‪.‬‬
‫;}‪boolean flag[2] = {FALSE,FALSE‬‬
‫;‪turn=0‬‬
‫{)‪P0(void‬‬ ‫{)‪P1(void‬‬
‫{)‪while(TRUE‬‬ ‫{)‪while(TRUE‬‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫) ]‪while( flag[1‬‬ ‫)]‪while( flag[0‬‬
‫{)‪if (turn == 1‬‬ ‫{)‪if (turn == 0‬‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;‪while( turn==1) do‬‬ ‫;‪while( turn==0) do‬‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫}‬ ‫}‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪turn = 1‬‬ ‫;‪turn = 0‬‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;) ( ‪non-critical-section‬‬ ‫;) (‪non-critical-section‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫هنگامی که ‪ P0‬بخواهد وارد بخش بحرانی خود شود‪ ،‬در ‪ flag‬مربوط به خود مقدار ‪ TRUE‬می زذارد‪ .‬سپس‬
‫‪ flag‬مربوط به‪ P1‬را بررسی می کند که دو حالت رخ می دهد‪:‬‬

‫الف‪ flag[1] -‬برابر‪ TRUE‬باشد‪:‬‬


‫ازر ‪ turn‬برابر یک باشد‪ P0 ،‬به ‪ P1‬احترام زذاشته و با ‪ FALSE‬کردن پر م اد منتظرر مری مانرد‪ .‬در ایرن‬
‫هنگام ‪ P0‬کاری انجام نمی دهد تا ‪ turn‬برابر صفر شود و سپس ‪ flag‬خودد را ‪ TRUE‬می کند‪.‬‬
‫ب‪ flag[1] -‬برابر‪ FALSE‬باشد‪:‬‬
‫‪ P0‬وارد بخش بحرانی شده و بعد از خروج از بخش بحرانی‪ ،‬در ‪ flag‬خود مقدار ‪ FALSE‬می زذارد تا بخش‬
‫بحرانی را آزاد کند و در ‪ turn‬مقدار ‪ 1‬را قرار می دهد تا حا پافشاری را به ‪ P1‬وازذارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪113‬‬ ‫سیستم عامل‬

‫خالصه ای از وضعیت تالش های ‪Decker‬‬


‫در جدول زیر‪ ،‬هر جا که شرط رعایت می شود با عالمت ‪ ‬مشخص شده است‪:‬‬
‫انتظار‬
‫پیشرفت‬ ‫انحصار متقابل‬ ‫تالش های ‪Decker‬‬
‫محدود‬
‫‪‬‬ ‫‪-‬‬ ‫‪‬‬ ‫تالش اول‬
‫‪-‬‬ ‫‪‬‬ ‫‪-‬‬ ‫تالش دوم‬
‫‪-‬‬ ‫‪‬‬ ‫‪‬‬ ‫تالش سوم‬
‫‪-‬‬ ‫‪‬‬ ‫‪‬‬ ‫تالش چهارم‬
‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫تالش پنجم‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪114‬‬ ‫سیستم عامل‬

‫الگوریتم ‪Peterson‬‬
‫ندین سال بعد‪ peterson ،‬راه حل ساده و زی ایی را برای حل مسئله انحصار متقابل ارائه کرد‪ .‬این الگوریتم‬
‫به سادزی برای ‪ n‬فرایند نیی قابل تعمیم است‪.‬‬
‫;}‪boolean flag[2] = {FALSE,FALSE‬‬
‫;‪turn=0‬‬
‫{)‪P0(void‬‬ ‫{)‪P1(void‬‬
‫{‬ ‫{‬
‫{)‪while (TRUE‬‬ ‫{)‪while (TRUE‬‬
‫;‪flag[0] = TRUE‬‬ ‫;‪flag[1] = TRUE‬‬
‫;‪turn = 0‬‬ ‫;‪turn = 1‬‬
‫]‪while (turn==0 && flag[1‬‬ ‫]‪while(turn==1 && flag[0‬‬
‫;)‬ ‫;)‬
‫;) (‪critical-section‬‬ ‫;) (‪critical-section‬‬
‫;‪flag[0] = FALSE‬‬ ‫;‪flag[1] = FALSE‬‬
‫;) (‪non-critical-section‬‬ ‫;) (‪non-critical-section‬‬
‫}‬ ‫}‬
‫{‬ ‫{‬

‫در کتاو استالینگی‪ ،‬مقدار ‪ turn‬برعکس مقدار دهی و تست می شود که تفاوتی با رود باال نردارد‪ .‬بره‬
‫طور م ال برای ‪ ، P0‬داریم‪:‬‬
‫;‪turn = 1‬‬
‫;)]‪while(turn==1 && flag[1‬‬
‫نحوه کار کردن این الگوریتم‪:‬‬
‫فرض کنید ‪ P0‬و‪ P1‬به طور تقری ا همیمان(‪ P1‬کمی دیرتر)‪ ،‬قصد ورود بره ناحیره بحرانری را دارنرد‪ .‬هرر دو‬
‫‪turn‬‬ ‫فرایند‪ ،‬شماره خود را در ‪ turn‬ذخیره کرده ولی ‪ P1‬که دیرتر شماره اد را ذخیره کرده‪ ،‬شماره اد در‬
‫می ماند و ‪ turn‬برابر‪ 1‬می شود‪ .‬حال زمانی که ‪ P0‬و‪ P1‬به دستور ‪ while‬می رسند‪ P0 ،‬از حلقه ع ور کرده و‬
‫وارد ناحیه بحرانی می شود ولی ‪ P1‬در حلقه می رخد(انتظار مشغول) و وارد ناحیه بحرانی نمی شود‪.‬‬
‫الگوریتم ‪ ،Peterson‬شرایط انحصار متقابل‪ ،‬انتظار محردود و پیشررفت را برا هرم رعایرت مری کنرد‪ .‬و‬
‫مشکل بن بست و ‪ Livelock‬و قحطی ندارد‪ .‬این الگوریتم ساده ترین و کوتاهترین راه حل نررم افریاری‬
‫است‪.‬‬
‫معای ی که در هر یک از تالد های ‪ Decker‬و همچنین رود ‪ Peterson‬وجود دارند‪ ،‬ع ارتنداز‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪115‬‬ ‫سیستم عامل‬

‫‪ -1‬ازر یکی از فرایندها در داخل ناحیه بحرانی از کار بیفتد‪ ،‬فرایند دیگر تا ابد منتظر می ماند‪.‬‬
‫‪ -2‬م تنی بر انتظار مشغول می باشند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪116‬‬ ‫سیستم عامل‬

‫رویکردهای انحصار متقابل با حمایت سخت افزار‬


‫می توان به کمک راه حل هایی که از دستورالعمل های ویژه ماشین استفاده می کنند‪ ،‬و نیاز به حمایرت از‬
‫طرف پردازنده دارند‪ ،‬مسئله انحصار متقابل را حل کرد‪ .‬این راه حل ها ع ارتند از‪:‬‬
‫‪ -1‬دستورالعمل از کار انداختن وقفه ها‬
‫‪TSL‬‬ ‫‪ -2‬دستور العمل‬
‫دستورالعمل ‪SWAP‬‬ ‫‪-3‬‬

‫دستورالعمل از کار انداختن وقفه ها‬


‫در این راه حل‪ ،‬هر فرایند باید به محض ورود به ناحیه بحرانی‪ ،‬تمام وقفه ها را از کار بیندازد و دقیقا ق ل از‬
‫خروج از ناحیه بحرانی‪ ،‬همه وقفه ها را مجددا فعال سازد‪ .‬در این صورت پردازنده نمی تواند از فراینردی بره‬
‫فرایند دیگر سوئچ کند‪ ،‬ون وقفه ساعت غیر فعال است‪ .‬بنابراین وقتی که فرایندی وقفه هرا را غیرر فعرال‬
‫می کند‪ ،‬می تواند بدون ترس از دخالت فرایندهای دیگر‪ ،‬به خواندن و نوشتن در حافظه مشترک بپردازد‪.‬‬
‫رویکرد از کار انداختن وقفه ها برای انحصار متقابل به صورت زیر است‪:‬‬
‫{)‪P(int i‬‬
‫)‪while(TRUE‬‬
‫{‬
‫;) (‪disable_interrupts‬‬
‫;) (‪critical_section‬‬
‫;) (‪enable_interrupts‬‬
‫;) (‪non_critical_section‬‬
‫}‬
‫}‬
‫امکان دارد فرایندی وقفه ها را بعد از غیر فعال کردن‪ ،‬مجددا فعال نکند‪(.‬از معایب این رود)‬
‫در سیستم های ندپردازنده ای‪ ،‬غیرفعال کردن وقفه ها‪ ،‬فقط در پردازنده ای که این دستورالعمل را‬
‫اجرا کرده تاثیر زذار است و پردازنده های دیگر می توانند به ناحیه بحرانی دسترسی داشته باشند‪.‬‬
‫دستور العمل ‪TSL‬‬
‫می باشند‪ .‬این دستور محتویرات یرک‬ ‫)‪TSL(Test and Set Lock‬‬ ‫بسیاری از کامپیوترها دارای دستورالعمل‬
‫کلمه از حافظه )‪ (lock‬را خوانده و در ث ات قرار مری دهرد‪ .‬سرپس مقردار ‪ 1‬را در همران آدرس از حافظره‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪117‬‬ ‫سیستم عامل‬

‫ذخیره می کند‪ .‬این عملیات غیر قابل تقسیم انجام می شوند و تا اینکه اجرای دستورالعمل تمام نشود‪ ،‬هیچ‬
‫فرایند و یا پردازنده دیگری نمی تواند به این کلمه از حافظه دسترسی پیدا کند‪.‬‬
‫در زیر تابع ورود به ناحیه بحرانی)‪ (enter_region‬با استفاده از دستوالعمل ‪ ، TSL‬به زبان اسم لی آورده شده‬
‫است‪:‬‬
‫‪enter_region:‬‬
‫‪tsl reg , lock‬‬
‫‪cmp reg , #0‬‬
‫‪jne enter_region‬‬
‫‪ret‬‬
‫توسط اولین دستور‪ ،‬مقدار ق لی ‪ lock‬در رجیستر ذخیره شده و سپس در ‪ lock‬مقدار ‪ 1‬ذخیره مری شرود‪.‬‬
‫توسط دستور دوم مقدار ق لی ‪ lock‬با ‪ 0‬مقایسه می شود‪ .‬ازر ‪ 0‬ن ود‪ ،‬این عملیات تکرار شده (حلقه انتظرار‬
‫مشغول) و ازر ‪ 0‬بود‪ ،‬زیربرنامه باززشت کرده‪ ،‬در حالی که ‪ lock‬را ‪ 1‬کرده است‪.‬‬
‫تذکر‪ :‬برای پاک کردن ‪ lock‬در هنگام خروج از ناحیه بحرانی‪ ،‬کافی است در آن ‪ 0‬را ذخیره کرد‪:‬‬
‫‪move lock , #0‬‬
‫‪ret‬‬

‫راه حل داده شده‪ ،‬انحصار متقابل و پیشرفت را رعایت می کند ولی انتظار محدود به دلیل زرسنگی را رعایت نمی کند‪.‬‬

‫دستور ‪swap‬‬
‫می توان از دستورالعملی به نام ‪ ، swap‬برای نوشتن یک روال ورود بره ناحیره بحرانری اسرتفاده کررد‪ .‬ایرن‬
‫دستور می تواند در یک عمل واحد غیر قابل تقسیم‪ ،‬محتویات یک رجیستر پردازنرده را برا محتویرات یرک‬
‫کلمه حافظه‪ ،‬جابجا کند‪.‬‬
‫‪enter_region:‬‬
‫‪move reg , #1‬‬
‫‪swap reg, lock‬‬
‫‪cmp reg, #0‬‬
‫‪jne‬‬ ‫‪enter_region‬‬
‫‪ret‬‬
‫تذکر‪ :‬برای پاک کردن ‪ lock‬در هنگام خروج از ناحیه بحرانی‪ ،‬کافی است در آن ‪ 0‬را ذخیره کرد‪.‬‬
‫تذکر‪ xchg :‬نام دیگر ‪ swap‬می باشد‪.‬‬

‫راه حل داده شده‪ ،‬انحصار متقابل و پیشرفت را رعایت می کند ولی انتظار محدود به دلیل زرسنگی را رعایت نمی کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪118‬‬ ‫سیستم عامل‬

‫راهکارهای سیستم عامل و زبان برنامه سازی برای تدارک همزمانی‬


‫راهکارهای سیستم عامل و زبان برنامه سازی برای تدارک همیمانی ع ارتند از‪:‬‬
‫‪ -1‬سمافور(راهنما)‬
‫‪ -2‬ناظر (مانیتور)‬
‫‪ -3‬ت ادل پیام‪.‬‬
‫سمافور‬
‫راه حل های نرم افیاری و سخت افیاری که بررسی کردیم ‪ ،‬دارای نقاط ضعف زیادی بودند‪ .‬حال ابریاری بره‬
‫نام سمافور را معرفی می کنیم که دارای قدرت زیادی در برقراری انحصار متقابل مری باشرد و همچنرین از‬
‫عهده انواع مختلف مسایل همگام سازی بر می آید‪.‬‬
‫سمافور یک ساختار شامل فیلدهای زیر است‪:‬‬
‫‪ -1‬شمارنده صحیح )‪(count‬‬

‫از شمارنده برای شمارد تعداد ‪ wakeup‬هایی که می خواهند هدر بروند‪ ،‬استفاده می شود‪ .‬با ایرن کرار‬
‫این سیگنال ها برای استفاده های بعدی ذخیره می شوند‪.‬‬
‫‪ -2‬صف )‪(queue‬‬

‫از صف برای نگهداری فرایندهای بلوکه شده بر روی سمافور استفاده می شود‪.‬‬
‫مطرح شدند که به ترتیب تعمیم یافته ‪ sleep‬و ‪ wakeup‬هستند‪.‬‬ ‫‪signal‬‬ ‫توسط ‪ ، Dijkstra‬دو تابع ‪ wait‬و‬

‫توابع ‪ wait‬و‪ signal‬به صورت زیر است‪:‬‬


‫)‪void wait(semaphore s‬‬
‫{‬ ‫)‪void signal(semaphore s‬‬
‫;‪s.count = s.count –1‬‬ ‫{‬
‫)‪if (s.count < 0‬‬ ‫;‪s.count = s.count +1‬‬
‫{‬ ‫) ‪if (s.count <= 0‬‬
‫‪place this process in‬‬ ‫{‬
‫;‪s.queue‬‬ ‫;‪remove a process from s.queue‬‬
‫;‪block this process‬‬ ‫;‪place this process in ready queue‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪119‬‬ ‫سیستم عامل‬

‫تابع ‪ ، wait‬یک واحد از شمارنده کم کرده و ازر منفی شود‪ ،‬فرایند مربوطه در صف‪ ،‬مسدود می شود‪.‬‬
‫تابع ‪ ،signal‬یک واحد به شمارنده اضافه می کند‪ ،‬ازر مقدار شمارنده بیشتر از صفر نشود‪ ،‬یک فرایند از ق ل‬
‫مسدود شده در صف‪ ،‬آزاد می شود‪.‬‬

‫در بعضی از متون از حرف ‪ P‬به جای ‪ wait‬و از حرف ‪ V‬به جای ‪ signal‬استفاده می شود‪.‬‬
‫در بعضی از متون از ‪ down‬به جای ‪ wait‬و از ‪ up‬به جای ‪ signal‬استفاده می شود‪.‬‬
‫سمافور بر دو نوع عمومی و دودویی می باشد‪ .‬در سمافور عمومی که آن را بررسی کردیم‪ ،‬شمارنده می‬
‫و‪ 1‬را دریافت می کند‪.‬‬ ‫‪0‬‬ ‫تواند م ت‪ ،‬صفر و یا منفی باشد‪ .‬اما شمارنده در سمافور دودویی‪ ،‬فقط مقادیر‬
‫توابع ‪ wait‬و‪ signal‬برای سمافور باینری به صورت زیر است‪:‬‬

‫)‪void wait(semaphore s‬‬


‫{‬ ‫)‪void signal(semaphore s‬‬
‫)‪if (s.count =1‬‬ ‫{‬
‫;‪s.count = 0‬‬ ‫) ‪if (s.queue is empty‬‬
‫{‪else‬‬ ‫;‪s.count =1‬‬
‫‪place this process in‬‬ ‫{‪else‬‬
‫;‪s.queue‬‬ ‫;‪remove a process from s.queue‬‬
‫;‪block this process‬‬ ‫;‪place this process in ready queue‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫قدرت سمافور دودویی معادل با سمافور عمومی است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪12۰‬‬ ‫سیستم عامل‬

‫در سمافورها صفی برای نگهداری فرایندهای بلوکه شده استفاده می شود‪ .‬ازر خروج از ایرن صرف بره‬
‫ترتیب ورود باشد)‪، (FIFO‬به آن سمافور قوی می زویند و ازر این نین ن اشد‪ ،‬به آن سمافور ضعیف می‬
‫زویند‪ .‬در سمافور ضعیف‪ ،‬امکان زرسنگی وجود دارد‪ .‬در این کتاو سمافورها از نوع قوی فرض می شوند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪121‬‬ ‫سیستم عامل‬

‫انحصار متقابل با استفاده از سمافورها‬


‫می خواهیم انحصار متقابل را به کمک سمافورها برقرار کنیم‪ .‬برای حل یک مسئله با سرمافور‪ ،‬بایرد بردانیم‬
‫که‪:‬‬
‫‪ -1‬به ند سمافور نیاز است‪.‬‬
‫‪ -2‬مقدار اولیه شمارنده هر سمافور ند باید باشد‪.‬‬
‫در کجای برنامه باید روی سمافور انجام شود‪.‬‬ ‫‪wait‬‬ ‫‪ -3‬عمل ‪ signal‬و‬
‫مسئله انحصار متقابل برای دو فرایند ‪ p1‬و ‪ p2‬توسط برنامه زیر پیاده سازی شده است‪ .‬در این برنامره عمرل‬
‫‪mutex‬‬ ‫‪ wait‬ق ل از ورود به ناحیه بحرانی و عمل ‪ signal‬بعد از خروج از ناحیه بحرانی روی سمافور دودویی‬
‫با مقدار اولیه ‪ 1‬انجام شده است‪:‬‬
‫;‪semaphore mutex =1‬‬
‫)‪void p(int i‬‬
‫{‬
‫)‪while(TRUE‬‬
‫{‬
‫;)‪wait(mutex‬‬
‫;) (‪critical-section‬‬
‫;)‪signal(mutex‬‬
‫;) (‪non-critical-section‬‬
‫}‬
‫}‬
‫فرض کنیم ‪ P1‬اول اجرا شود‪ .‬با اجرای تابع ‪ ،wait‬ون مقدار سمافور یک است‪،‬آن را صفر مری کنرد و وارد‬
‫ناحیه بحرانی می شود‪ .‬در زمانی که ‪ P1‬در ناحیه بحرانی است‪ ،‬ازرر ‪ P2‬سرعی بره ورود بره ناحیره بحرانری‬
‫داشته باشد‪ ،‬ون سمافور برابر ‪ 0‬است‪ ،‬این فرایند بلوکه شده و در صف قرار می زیرد‪ .‬بعرد از خرروج ‪ P1‬از‬
‫ناحیه بحرانی‪ ،‬تابع ‪ signal‬را اجرا کرده و ون صف خالی نیست‪ P2 ،‬که در صف قرار دارد را آزاد می کند و‬
‫‪ P2‬می تواند وارد ناحیه بحرانی شود‪.‬‬
‫می توان با استفاده از سمافور عمومی‪ ،‬انحصار متقابل را برای بیش از دو فرایند نیی پیاده سازی کرد‪.‬‬

‫سمافوری که ترتیب خروج در آن مشخص ن اشد‪ ،‬سمافور ضعیف نامیرده مری شرود‪ .‬در ایرن نروع سرمافور‪ ،‬امکران‬
‫زرسنگی وجود دارد‪(.‬در سمافور قوی‪ ،‬منطا صف ‪ FIFO‬است‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪122‬‬ ‫سیستم عامل‬

‫پیاده سازی انحصار متقابل به کمک سمافور دارای میایایی است از جمله‪ :‬ارضای شررط هرای انحصرار‬
‫متقابل‪،‬پیشرفت و انتظار محدود ‪ .‬این رود عادالنه اسرت‪ CPU،‬را تلرف نمری کنرد و مشرکل اولویرت‬
‫معکوس ندارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪123‬‬ ‫سیستم عامل‬

‫همگام سازی با استفاده از سمافورها‬


‫سمافور دارای توانایی زیادی در حل مسائل همگام سازی دارد‪ .‬دو فرایند را در نظر بگیریرد کره بایرد ابتردا‬
‫دستور‪ S1‬در ‪ P1‬و سپس دستور ‪ S2‬در ‪ P2‬اجرا شود‪ .‬برای پیاده سازی این همگام سازی از سمافوری به نام‬
‫‪ S‬با مقدار اولیه صفر به صورت زیر استفاده می کنیم‪:‬‬
‫‪P1‬‬ ‫‪P2‬‬
‫‪.‬‬ ‫‪.‬‬
‫;‪S1‬‬ ‫;)‪wait(S‬‬
‫;)‪signal(S‬‬ ‫;‪S2‬‬
‫‪.‬‬ ‫‪.‬‬

‫مشخص است که تا زمانی که ‪ S1‬از ‪ P1‬اجرا نشود‪ ،‬اجرای ‪ S2‬ممکن نیست‪.‬‬


‫تذکر‪ :‬معموال مقدار اولیه سمافور در همگام سازی برابر صفر و در انحصار متقابل برابر ‪ 1‬است‪.‬‬
‫مثال‬
‫آیا ترتیب اجرای ‪ P1,P2,P3‬ممکن است؟ (مقدار اولیه سمافورها ‪ S‬و ‪ Q‬برابر صفر است)‬
‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬
‫‪.‬‬ ‫;)‪wait(Q); wait(S‬‬
‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫;)‪signal(S‬‬ ‫‪.‬‬ ‫;)‪signal(Q‬‬
‫پاسخ‪ :‬خیر‪.‬‬
‫بعد از اجرای ‪ ، P1‬فرایند ‪ P2‬نمی تواند اجرا شود‪ ،‬ون در ابتدای ‪ P2‬دستور )‪ wait(Q‬قرار دارد که به علرت‬
‫یک بودن سمافور ‪ ، Q‬باعث بلوکه شدن ‪ P2‬می شود‪ .‬ولی ازر بعد از ‪ ، P1‬فراینرد ‪ P3‬اجررا شرود‪ ،‬بره علرت‬
‫وجود دستور )‪ signal(Q‬در انتهای آن‪ ،‬می توان بعد از ‪ P3‬فرایند ‪ P2‬را اجرا کرد‪ .‬پرس یرک ترتیرب اجررای‬
‫ممکن ع ارت است از ‪. P1,P3,P2 :‬‬

‫مثال‬
‫با فرض اینکه مقدار اولیه دو سمافور ‪ S‬و ‪ Q‬برابر صفر باشد‪ ،‬نحوه ا ‪ ABCDE‬را مشخص کنید‪.‬‬
‫‪P0‬‬ ‫‪P1‬‬
‫)‪signal(Q‬‬ ‫;)‪wait(Q‬‬
‫;)‪wait(S‬‬ ‫;"‪cout<<"A‬‬
‫;"‪cout<<"C‬‬ ‫;)‪signal(S‬‬
‫;"‪cout<<"D‬‬ ‫;"‪cout<<"B‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪124‬‬ ‫سیستم عامل‬

‫;"‪cout<<"E‬‬
‫پاسخ‪:‬‬
‫در زیر ترتیب اجرا با شماره مشخص شده است‪:‬‬

‫‪P0‬‬ ‫‪P1‬‬
‫;)‪(1) signal(Q‬‬ ‫;)‪(2) wait(Q‬‬
‫;)‪(6) wait(S‬‬ ‫)‪(3‬‬
‫;"‪(7) cout<<"C‬‬ ‫;"‪cout<<"A‬‬
‫;"‪(8) cout<<"D‬‬ ‫)‪(4‬‬
‫;"‪cout<<"B‬‬
‫;)‪(5) signal(S‬‬
‫;"‪(9) cout<<"E‬‬

‫مثال‬
‫نحوه ا ‪ 1324‬را مشخص کنید؟ (مقدار اولیه دو سمافور ‪ S‬و ‪ Q‬برابر صفر است)‬
‫‪P1‬‬ ‫‪P2‬‬
‫;"‪cout<<"1‬‬ ‫;)‪wait(S‬‬
‫;)‪signal(S‬‬ ‫;"‪cout<<"3‬‬
‫;)‪wait(Q‬‬ ‫;)‪signal(Q‬‬
‫;"‪cout<<"2‬‬ ‫;)‪wait(S‬‬
‫;)‪signal(S‬‬ ‫;"‪cout<<"4‬‬
‫پاسخ‪ :‬به علت استفاده از دستور )‪ wait(S‬در ابتدای ‪ ، P2‬و صفر بودن ‪ ، S‬اجرا نمی تواند با ‪ P2‬شرروع شرود‪.‬‬
‫ا می شود‪ .‬سپس توسط )‪ signal(S‬مقدار سمافور ‪ S‬برابرر یرک مری‬ ‫‪1‬‬ ‫بنابراین ابتدا ‪ P1‬اجرا شده و عدد‬
‫‪S‬‬ ‫شود‪ .‬به علت رسیدن به )‪ ، wait(Q‬و صفر بودن ‪ ، Q‬نمی توان ادامه داد ‪ .‬با تعرویض مرتن بره ‪ ، p2‬رون‬
‫ا می شود‪ .‬حال دسرتور )‪ signal(Q‬مقردار‬ ‫‪3‬‬ ‫برابر یک شده از )‪ wait(S‬رد شده و ‪ S‬صفر می شود‪ .‬سپس‬
‫‪ Q‬را برابر یک کرده و با رسیدن به )‪ ، wait(S‬ون ‪ ، S‬صفر است‪ ،‬نمی توان ادامه داد و به ادامه ‪ P1‬رفتره و‬
‫را مری شرود‪ .‬در نهایرت‬ ‫‪2‬‬ ‫ون ‪ Q‬برابر یک است از )‪ wait(Q‬رد شده و ‪ Q‬برابر صفر شده و سپس عدد‬
‫را مری‬ ‫‪4‬‬ ‫توسط )‪ signal(S‬مقدار ‪ S‬برابر یک شده و به ‪ P2‬پرد کرده و از )‪ wait(S‬ع ور کررده و مقردار‬
‫شود‪ .‬در زیر ترتیب اجرا با شماره مشخص شده است‪:‬‬
‫‪P1‬‬ ‫‪P2‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
125 ‫سیستم عامل‬

(1) cout<<"1"; (3) wait(S);


(2) signal(S); (4) cout<<"3";
(6) wait(Q); (5) signal(Q);
(7) cout<<"2"; (9) wait(S);
(8) signal(S); (10) cout<<"4";

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪126‬‬ ‫سیستم عامل‬

‫مثال‬
‫نحوه اجرای فرایندهای ‪ P1‬و ‪ P2‬گونه باشد‪ ،‬تا مقدار نهایی برابر ‪ a=10 , b=6‬شود؟‬
‫(مقدار اولیه سمافور ‪ s‬برابر یک و مقدار اولیه متغیرهای ‪ a,b‬نیی برابر یک می باشند‪).‬‬
‫‪P1‬‬ ‫‪P2‬‬
‫;‪a=a+2‬‬ ‫;‪a=3‬‬
‫;‪b=b+1‬‬ ‫;)‪wait(s‬‬
‫;)‪signal(s‬‬ ‫;‪b=a+b‬‬
‫;‪b=b+1‬‬ ‫;)‪wait(s‬‬
‫;‪a=a+b‬‬
‫پاسخ‪:‬‬
‫ابتدا سه دستور اول ‪ P2‬اجرا می شود‪ .‬بعد از اجرای این سه دستور داریم‪a=3,b=4,s=0 :‬‬
‫سپس سه دستور اول ‪ P1‬اجرا شده و بعد از اجرا خواهیم داشت‪a=5,b=5,s=1 :‬‬
‫مجددا به ‪ P2‬بر زشته و دو دستور بعدی آن اجرا شده و داریم‪a=10,b=5, s=0 :‬‬
‫در نهایت به ‪ P1‬رفته و بعد از اجرای دستور باقی مانده خواهیم داشت‪a=10,b=6 :‬‬

‫مثال‬
‫با فرض اینکه مقدار اولیه سمافور ‪ S‬برابر ‪ ، 8‬سمافور ‪ P‬برابر ‪ 3‬وسمافور ‪ Q‬برابر ‪ 1‬باشرد‪ ،‬حرداک ر نرد فراینرد پشرت هرر‬
‫سمافور قرار می زیرد؟‬
‫‪.‬‬
‫;)‪wait(S‬‬
‫;)‪wait(P‬‬
‫;)‪wait(Q‬‬
‫‪.‬‬
‫;)‪signal(Q‬‬
‫;)‪signal(P‬‬
‫;)‪signal(S‬‬
‫‪.‬‬
‫پاسخ‪:‬‬
‫از ‪ n‬فرایند‪ ،‬حداک ر ‪ 8‬فرایند می تواند از )‪ wait(S‬ع ور کنرد و بقیره (‪ )n-8‬فراینرد در صرف سرمافور ‪ S‬مری‬
‫‪5‬‬ ‫خوابند‪ .‬از ‪ 8‬فرایندی که از سمافور ‪ S‬ع ور کرده‪ ،‬حداک ر ‪ 3‬فرایند مری توانرد از سرمافور ‪ P‬ع رور کنرد و‬
‫فرایند در صف ‪ P‬می خوابند‪ .‬در نهایرت از ‪ 3‬فراینردی کره از سرمافور ‪ P‬ع رور کررده‪ ،‬حرداک ر ‪ 1‬فراینرد از‬
‫)‪ wait(Q‬ع ور کرده و ‪ 2‬فرایند در صف ‪ Q‬می خوابند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
127 ‫سیستم عامل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪128‬‬ ‫سیستم عامل‬

‫مسئله تولیدکننده و مصرف کننده‬


‫یک تولیدکننده یا بیشتر‪ ،‬نوعی داده را تولید و آنها را در بافری به انردازه ‪ n‬قررار مری دهنرد‪ .‬یرک مصررف‬
‫کننده‪ ،‬این اقالم را یکی یکی از بافر برمی دارد‪ .‬سیستم باید از همپوشانی اعمال بافر جلوزیری کند‪ ،‬یعنری‬
‫در هر زمان مصرف کننده یا تولید کننده می تواند به بافر دسترسی داشته باشد‪.‬‬

‫این راه حل از سه سمافور استفاده می کند‪:‬‬


‫‪ -1‬سمافور ‪: mutex‬‬
‫سمافوری برای رعایت شرط انحصار متقابل است‪ ،‬تا تولید کننده و مصرف کننده به طرور همیمران بره برافر‬
‫دسترسی نداشته باشند‪( .‬با مقدار اولیه ‪)1‬‬
‫‪ -2‬سمافور ‪: full‬‬
‫سمافوری برای شمارد تعداد خانه های پر بافر (با مقدار اولیه ‪)0‬‬
‫‪ -3‬سمافور ‪: empty‬‬
‫سمافوری برای شمارد تعداد خانه های خالی بافر (با مقدار اولیه ‪)n‬‬
‫{)‪void producer (void‬‬ ‫{)‪void consumer(void‬‬
‫;‪int item‬‬ ‫;‪int item‬‬
‫)‪while(TRUE‬‬ ‫{‬ ‫{ )‪while(TRUE‬‬
‫;) (‪item= produce‬‬ ‫;)‪wait(full‬‬
‫;)‪wait(empty‬‬ ‫;)‪wait(mutex‬‬
‫;)‪wait(mutex‬‬ ‫;) (‪item=remove‬‬
‫;)‪insert(item‬‬ ‫;)‪signal(mutex‬‬
‫;)‪signal(mutex‬‬ ‫;)‪signal(empty‬‬
‫} ;)‪signal(full‬‬ ‫;) (‪consume‬‬ ‫}‬
‫}‬ ‫}‬
‫ازر در مسئله تولید کننده‪ -‬مصرف کننده ‪ ،‬بافر نامحدود باشد‪ ،‬دیگر نیازی به سمافور ‪ empty‬نیست‪ .‬در نتیجه دستور‬
‫)‪ wait(empty‬از تولید کننده و دستور )‪ signal(empty‬از مصرف کننده حذف می شود‪.‬‬
‫مسئله غذا خوردن فیلسوف ها‬
‫پنج فیلسوف دور یک میی دایره ای نشسته اند‪ .‬هر فیلسوف یک بشرقاو ماکرارونی دارد‪ .‬برین هرر جفرت از‬
‫بشقاو ها‪ ،‬یک نگال قرار دارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪129‬‬ ‫سیستم عامل‬

‫هر فیلسوف برای خوردن از دو نگال طرفین بشرقاو اسرتفاده میکنرد‪ .‬زنردزی هرر فیلسروف از دو دوره‬
‫متناوو خوردن و فکر کردن تشکیل شده است‪ .‬زمانی که هر فیلسوف زرسنه می شود‪ ،‬سرعی مری کنرد دو‬
‫نگال سمت پ و راست خود را بردارد‪ .‬ازر موفا شد‪ ،‬برای مدتی غذا می خورد و سرپس نگرال هرا را‬
‫زمین می زذارد و به فکر کردن ادامه می دهد‪ .‬مسأله تغذیه فیلسوفان عالوه بر انحصار متقابل (که در یک‬
‫زمان دو فیلسوف نمی توانند از یک نگال استفاده کنند)‪ ،‬باید جوابگوی بن بست و گرسنگی نیی باشرد‪.‬‬
‫راه حل‪ :‬هرفیلسوف ابتدا نگال پ و سپس نگال راست را بر می دارد‪ .‬بعد از تغذیره یرک فیلسروف‪ ،‬دو‬
‫نگالی که استفاده می کرد را روی میی زذاشته و دیگران می توانند استفاده کنند‪.‬‬

‫;‪semaphore room=4‬‬
‫;}‪semaphore fork[5]={1‬‬
‫{)‪void philosopher (int i‬‬
‫{)‪while(TRUE‬‬
‫;) (‪think‬‬
‫;) ‪wait( room‬‬
‫;) ]‪wait( fork[i‬‬
‫;) ]‪wait( fork[(i+1) % 5‬‬
‫ناحیه بحرانی ;) (‪eat‬‬
‫;) ]‪signal ( fork[(i+1) % 5‬‬
‫;) ]‪signal ( fork[i‬‬
‫;) ‪signal ( room‬‬
‫}‬
‫}‬
‫{) (‪void main‬‬
‫;)))‪parbegin (p(0),p(1),p(2),p(3),p(4‬‬
‫}‬
‫سمافور ‪ room‬با مقدار اولیه ‪ ، 4‬برای این است که اجازه ورود به بیش از هار نفر داده نشرود‪ .‬ازرر حرداک ر‬
‫هار فیلسوف نشسته باشند‪ ،‬حداقل یک نفر به دو نگال دسترسی خواهرد داشرت‪ .‬ازرر از ‪ room‬اسرتفاده‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪13۰‬‬ ‫سیستم عامل‬

‫نمی شد‪ ،‬و اجازه ورود همیمان هر پنج نفر‪ ،‬داده می شد‪ ،‬همه آنها نگالهای پ خود را برداشرته و دیگرر‬
‫نگال اضافی نمی ماند که کسی بتواند نگال راست خود را بردارد‪ .‬بنابراین بن بست رخ می داد‪.‬‬
‫در کتاو تنن اوم‪ ،‬راه حل زیر داده شده است‪ .‬در این راه حل‪ ،‬از یک آرایه به نام ‪ state‬استفاده می کند کره‬
‫وضعیت جاری فیلسوف(فکر کردن)‪، (0‬زرسنگی)‪ (1‬و خوردن)‪ )(2‬را نگهرداری مری کنرد‪ .‬یرک فیلسروف در‬
‫صورتی که هیچ یک از فیلسوفان پ و راستش‪ ،‬در حال خوردن ن اشند‪ ،‬می تواند غذا بخورد‪ .‬این راه حرل‬
‫بن بست ندارد‪.‬‬
‫‪#define LEFT‬‬ ‫‪(i-1) % 5‬‬
‫‪#define RIGHT (i+1) % 5‬‬
‫;‪typedef int semaphore‬‬
‫;‪semaphore mutex=1‬‬
‫;]‪semaphore s[5‬‬
‫;]‪int state[5‬‬
‫{)‪void philosopher (int i‬‬
‫{)‪while(TRUE‬‬
‫;) (‪think‬‬
‫;)‪take_forks(i‬‬
‫;) (‪eat‬‬
‫;)‪put_fork(i‬‬
‫}‬
‫}‬
‫{)‪void take_forks(int i‬‬
‫;)‪wait(mutex‬‬
‫;‪state[i]= 1‬‬
‫;)‪test(i‬‬
‫;)‪signal(mutex‬‬
‫;)]‪wait(s[i‬‬
‫}‬
‫{)‪void put_forks(int i‬‬
‫;)‪wait(mutex‬‬
‫;‪state[i]=0‬‬
‫;) ‪test( LEFT‬‬
‫;) ‪test( RIGHT‬‬
‫;)‪signal(mutex‬‬
‫}‬
‫{)‪void test(int i‬‬
‫{ ) ‪if( state[i]==1 && state[LEFT]!=2 && state[RIGHT]!= 2‬‬
‫;‪state[i]=2‬‬
‫;)]‪signal(s[i‬‬
‫}‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
131 ‫سیستم عامل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪132‬‬ ‫سیستم عامل‬

‫مسئله خوانندگان و نویسندگان‬


‫در این مسئله‪ ،‬ناحیه داده ای(م ل فایل) وجود دارد که بین تعدادی از فراینردها مشرترک اسرت‪ .‬فراینرد هرای خواننرده مری‬
‫خواهند از این ناحیه بخوانند و فرایندهای نویسنده می خواهند در آن بنویسند‪.‬‬

‫شرایط این مسئله‪:‬‬


‫‪ -1‬هر تعداد از خوانندزان می توانند به صورت همیمان از فایل بخوانند‪.‬‬
‫‪ -2‬در هر زمان تنها یک فرایند ممکن است در این فایل بنویسد‪.‬‬
‫‪ -3‬هنگامی که نویسنده ای در حال نوشتن است‪ ،‬هیچ خواننده ای نمی تواند فایل را بخواند‪.‬‬

‫برای م ال یک سیستم رزرواسیون هواپیمایی را در نظر بگیرید که تعرداد زیرادی فراینرد در آن بررای نوشرتن و خوانردن برا‬
‫یکدیگر رقابت می کنند‪ .‬ند فرایند می توانند به طور همیمان پایگاه داده را بخوانند ولی ازرر یرک فراینرد در حرال بره روز‬
‫رسانی پایگاه داده باشد‪ ،‬فرایندهای دیگر حتی خوانندزان‪،‬ن اید به پایگاه داده دسترسی داشته باشند‪.‬‬

‫این مسئله دارای سه حالت است‪:‬‬


‫‪ )1‬خوانندزان اولیت دارند‪( .‬تا زمانی که خواننده ای وجود دارد‪ ،‬به خواننده اجازه ورود می دهیم)‬
‫‪ )2‬نویسندزان اولویت دارند‪.‬‬
‫‪ )3‬خوانندزان و نویسندزان بدون اولیت هستند‪.‬‬

‫حالتی را بررسی می کنیم که خوانندگان اولویت دارند‪:‬‬


‫;‪typedef int semaphore‬‬
‫;‪semaphore mutex=1‬‬
‫;‪semaphore w=1‬‬
‫;‪int rc=0‬‬

‫) (‪void writer‬‬
‫{‬
‫)‪while(TRUE‬‬
‫{‬
‫;)‪wait(w‬‬
‫;) (‪writing‬‬
‫;)‪signal(w‬‬
‫}‬
‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪133‬‬ ‫سیستم عامل‬

‫}‬

‫) (‪void reader‬‬
‫{‬
‫)‪while(TRUE‬‬
‫{‬
‫;)‪wait(mutex‬‬
‫;‪rc = rc+1‬‬
‫;)‪if (rc == 1) wait(w‬‬
‫;)‪signal(mutex‬‬

‫;) (‪reading‬‬

‫;)‪wait(mutex‬‬
‫;‪rc = rc-1‬‬
‫;)‪if (rc == 0) signal(w‬‬
‫;)‪signal(mutex‬‬
‫}‬
‫{‬

‫روال نویسنده‪:‬‬
‫اولین نویسنده‪ ،‬با عمل )‪ ، wait(w‬اجازه دسترسی پیدا کرده ( ون مقدار اولیه ‪ w‬برابر ‪ 1‬است)‪ ،‬ولری برا صرفر شردن ایرن‬
‫سمافور‪،‬اجازه دسترسی نویسندزان و خوانندزان دیگر زرفته می شود‪ .‬در ایرن روال‪ ،‬ترا هنگرامی کره نویسرنده ای بره فایرل‬
‫دسترسی دارد‪ ،‬هیچ نویسنده ای و خواننده دیگری نمی تواند به فایل دسترسی داشته باشد‪.‬‬

‫روال خواننده‪:‬‬
‫فرایند خواننده از سمافور ‪ w‬برای اعمال انحصار متقابل‪ ،‬از متغیر سراسری ‪ ، rc‬برای شمارد تعداد خواننردزان و از سرمافور‬
‫‪ mutex‬برای اطمینان از تغییر منناسب ‪ rc‬استفاده می کند‪.‬‬
‫دستور افیایش ‪ rc‬و کنترل آن در بین )‪ wait(mutex‬و )‪ signal(mutex‬قرار دارد‪ ،‬تا تغییر ‪ ، rc‬انحصاری شود‪ .‬همچنین‬
‫بعد از پایان عمل خواندن‪ ،‬دستور کاهش ‪ rc‬و کنترل آن در بین )‪ wait(mutex‬و )‪ signal(mutex‬قرار دارد تا تغییرر ‪rc‬‬
‫‪ ،‬انحصاری شود‪.‬‬
‫توسط ‪ if‬اول‪ ،‬به اولین خواننده اجازه ورود داده می شود‪،‬ال ته در صورتی که نویسنده ای فعال ن اشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪134‬‬ ‫سیستم عامل‬

‫توسط ‪ if‬پایانی‪ ،‬بررسی می کنیم که ازر خواننده فعال دیگری وجود نداشته باشد‪ ،‬در صورت اینکه نویسنده بلوکره شرده ای‬
‫داشته باشیم‪ ،‬به آن اجازه داده شود‪.‬‬

‫در این رود شرط انحصار متقابل و شرط پیشرفت رعایت می شود ولی شرط انتظرار محردود رعایرت‬
‫نمی شود‪ ( .‬ون اولویت با خوانندزان است و امکان زرسنگی نویسندزان وجود دارد‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪135‬‬ ‫سیستم عامل‬

‫مانیتور‬
‫مشاهده کردید که همگام سازی فرایندها با سمافور پیچیده است‪ .‬در واقرع تنهرا مشرکل سرمافور در سیسرتمی کره حافظره‬
‫مشترک دارد‪ ،‬پیچیدزی استفاده از آن در حل مسائل همگام سازی می باشد‪ .‬ازر برنامه نویس در اسرتفاده از سرمافور دقرت‬
‫الزم را نکند‪ ،‬ممکن است د ار بن بست شود‪.‬‬
‫مانیتور(ناظر) ساختاری از زبان برنامه سازی است که همان کار سمافور را انجام می دهرد و کنتررل آن هرم سراده ترر اسرت‪.‬‬
‫سمافور اغلب توسط سیستم عامل پشتی انی می شود و می تواند توسط زبان برنامه سازی نیی پشتی انی شود‪ ،‬اما مانیتور باید‬
‫فقط توسط زبان برنامه سازی پشتی انی شود‪.‬‬
‫ساختار مانیتور در زبانهای برنامه سازی به صورت برنامه کتابخانه ای پیاده سازی شده است‪ .‬این به افراد اجرازه مری دهرد ترا‬
‫قفل های مانیتور را روی هر شیئی بگذارند‪ .‬مرانیتور مولفره ای نررم افریاری‪ ،‬مشرتمل برر یرک یرا نرد رویره‪ ،‬دن الره ای از‬
‫مقدارزذاری های اولیه و داده های محلی است‪.‬‬
‫ویژگی های اصلی مانیتور‪:‬‬
‫‪ – 1‬متغیرهای داده ای محلی مانیتور‪ ،‬تنها برای رویه های خود مانیتور قابرل دسرترس بروده و هریچ رویره دیگرری بره آنهرا‬
‫دسترسی ندارد‪.‬‬
‫‪ – 2‬یک فرایند با احضار یکی از رویه های مانیتور‪ ،‬وارد آن می شود‪.‬‬
‫‪ – 3‬در هر زمان تنها یک فرایند می تواند در مانیتور در حال اجرا باشد‪ ،‬فرایندهای دیگری که مانیتور را احضار کرده انرد ترا‬
‫فراهم شدن مانیتور‪ ،‬معلا خواهند بود‪( .‬برقراری انحصار متقابل)‬

‫متغیرهای شرطی)‪(condition variable‬‬

‫مانیتور با استفاده از متغیرهای شرطی که تنها از داخل مانیتور‪ ،‬قابل دسترس هستند‪ ،‬از همگام سازی حمایت می کند‪ .‬برای‬
‫این کار از دو تابع کتابخانه ای )‪ cwait(condition‬و )‪ csignal(condition‬که ساختاری از زبان برنامه سرازی هسرتند‪،‬‬
‫استفاده می کنند‪ .‬در بعضی از منابع‪ ،‬از ‪ c‬اول این دستورها استفاده نمی شود‪.‬‬
‫ازر فرایندی )‪ cwait(c‬را صدا بیند‪ ،‬پشت شرط ‪ c‬به خواو می رود‪ .‬ازر فرایندی )‪ csignal(c‬را صدا بیند‪ ،‬یک پیغام بیدار‬
‫باد برای فرایندهایی که پشت شرط ‪ c‬خوابیده اند می فرستد که فقط یکی از آنها توسط زمان ند سیستم بیدار می شود‪.‬‬

‫متغیرهای شرطی‪ ،‬شمارنده نیستند و مانند سمافور نمی توانند سیگنال ها را برای استفاده آینده‪ ،‬ذخیره کنند‪.‬‬

‫امتیازی که مانیتورها نس ت به سمافورها در همگام سازی فرایندها دارند‪ ،‬این است که تمام اعمرال همگرام سرازی در‬
‫محدوده مانیتور است‪ .‬بنابراین کشف خطاها و تعیین اینکه همگام سازی صحیح انجام شده است‪ ،‬ساده تر می باشد‪.‬‬

‫کامپایلر(نه برنامه نویس) انحصار متقابل را به صورت خودکار در مانیتور برقرار می سازد‪.‬‬
‫حل مسئله تولیدکننده‪ -‬مصرف کننده توسط مانیتور‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
136 ‫سیستم عامل‬

‫ برای بخش هرایی در‬.‫ نواحی بحرانی را در داخل مانیتور تعریف می کنیم‬،‫برای حل مسائل به کمک مانیتور‬
.‫ از متغیرهای شرطی کمک می زیریم‬،‫مسئله که نیاز به همگام سازی وجود دارد‬
monitor ProducerConsumer;
condition full,empty;
integer count;

procedure enter;
begin
if count = N then cwait (full);
enter_item;
count := count + 1;
if count=1 then csignal(empty);
end;

procedure remove;
begin
if count = 0 then cwait (empty);
remove_item;
count := count - 1;
if count=N-1 then csignal(full);
end;

procedure producer;
begin
while true do
begin
produce_item;
ProducerConsumer.enter;
end
end;

procedure consumer;
begin
while true do
begin
ProducerConsumer.remove;
consume_item;

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
137 ‫سیستم عامل‬

end
end;

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪138‬‬ ‫سیستم عامل‬

‫زبانهای برنامه سازی مانند ‪ C‬و پاسکال استاندارد‪ ،‬مانیتور را پشتی انی نمی کنند‪.‬‬
‫در عمل همگام سازی مانیتورها هم ممکرن اسرت اشرت اه رخ دهرد‪ .‬مر الً ازرر هرر یرک از اعمرال ‪ csignal‬در نراظر‬
‫‪ bounded buffer‬حذف شوند‪ ،‬در این صورت فرایندهایی که وارد صف شرط مربوط به آن می شوند‪ ،‬ترا ابرد معطرل‬
‫خواهند بود‪.‬‬

‫در زبان جاوا‪ ،‬ازر نخی اجرای متدی که در معرفی آن از واهه کلیدی ‪ synchronized‬اسرتفاده شرده را شرروع کنرد‪،‬‬
‫هیچ نخ دیگری اجازه نردارد شرروع بره اجررای هریچ یرک از متردهای ‪ synchronized‬درون آن کرالس کنرد‪ .‬جراوا‬
‫متغیرهررای شرررطی نرردارد و برره جررای آنهررا دو رویرره ‪ wait‬و ‪ notify‬دارد کرره وقترری ایررن دو رویرره در مترردهای‬
‫‪ synchronized‬به کار روند‪ ،‬مشکل رقابتی پیش نمی آید‪.‬‬

‫بر اثر اجرای ‪ csignal‬ممکن است فرایند دیگری که از ق ل ‪ wait‬شده بود‪ ،‬فعال زردد و در نتیجه بیش از یک فرایند‬
‫در یک زمان در مانیتور فعال شود‪ .‬برای پرهیی از فعالیت همیمان دو فرایند درون یک مانیتور‪ Hansen ،‬پیشنهاد کررد‬
‫که فرایندی که ‪ csignal‬را انجام داده باید فورا از مانیتور خارج شود‪ .‬بنابراین یک دستور ‪ csignal‬می تواند فقرط بره‬
‫عنوان آخرین دستور در رویه مانیتور به کار رود‪.‬‬
‫تبادل پیام )‪(Message Passing‬‬
‫وقتی فرایندها با یکدیگر محاوره می کنند‪ ،‬نیازهای همگام سازی و ارت اط باید تامین شود‪ .‬فرایندها نیراز بره همگرام سرازی‬
‫دارند تا انحصار متقابل اعمال زردد‪ .‬ممکن است فرایندهایی که با یکدیگر همکاری می کنند نیاز به ت رادل اطالعرات داشرته‬
‫باشند‪ .‬یک رویکرد در فراهم کردن این دو عمل‪ ،‬ت ادل پیام است‪ .‬عمل واقعی ت ادل پیام به شکل دو اولیه زیر ارائه می شرود‪.‬‬
‫این اولیه ها‪ ،‬فراخوان سیستمی هستند که می توان آنها را در رویه های کتابخانه ای قرار داد‪:‬‬
‫)‪1 - send (destination , message‬‬
‫)‪2- receive (source , message‬‬
‫فراخرروان ‪ ،send‬پیررامی را از آدرسرری کرره در فضررای آدرس فراینررد م رردا قرررار دارد را برداشررته )‪ (message‬و برره فراینررد‬
‫مقصد)‪ (destination‬ارسال می کند‪ .‬فرخوان ‪ ،recevie‬یک پیام را از فراینرد م ردا )‪ (source‬دریافرت کررده و آن را در‬
‫آدرس مشخص شده )‪ (message‬قرار می دهد‪.‬‬
‫دو نوع آدرس دهی وجود دارد‪:‬‬
‫‪ -1‬مستقیم‪ :‬پیامها مستقیما از فرستنده به زیرنده فرستاده می شود‪.‬‬
‫‪ -2‬غیر مستقیم‪ :‬فرستنده پیام را به یک صف مشترک(صندوق پستی) ارسال می کند و زیرنده پیام را از صندوق پستی بر‬
‫می دارد‪(.‬سیستم عامل برای هر فرایند‪ ،‬بافری به نام ‪ mailbox‬ایجاد می کند‪).‬‬

‫ازر بین فرستنده ها و زیرنده ها رابطه ند به یک وجود داشته باشد‪ ،‬به صندوق پستی‪" ،‬درزاه" می زویند‪.‬‬

‫پیام در یک قالب متداول از دو بخش‪ ،‬سرآمد(حاوی اطالعاتی درباره پیام) و بدنه(حاوی خود پیام) تشکیل شده است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪139‬‬ ‫سیستم عامل‬

‫همگام سازی به کمک تبادل پیام‬


‫می توان به کمک ‪ send‬و ‪ receive‬امکان هماهنگی بین فرایندها را ایجاد کرد‪ .‬ت ادل پیام بین دو فرایند متضمن سرطحی‬
‫از همگام سازی بین آنها می باشد‪.‬‬
‫زمانی که فرایندی‪ send ،‬را اجرا می کند‪ ،‬دو امکان وجود دارد‪:‬‬
‫الف‪ -‬فرایند فرستنده تا دریافت پیام مسدود می شود‪.‬‬
‫و‪ -‬فرایند فرستنده‪ ،‬بدون توجه به عمل انجام شده‪ ،‬اجرایش ادامه می یابد‪.‬‬
‫زمانی که فرایندی ‪ recive‬را اجرا می کند‪ ،‬دو امکان وجود دارد‪:‬‬
‫الف‪ -‬ازر پیامی ق ال فرستاده شده‪ ،‬این پیام دریافت شده و اجرا ادامه می یابد‪.‬‬
‫و‪ -‬ازر پیام منتظری وجود نداشته باشد‪ ،‬فرایند تا رسیدن پیام مسدود می ماند و یا بره اجررا ادامره مری دهرد‪ .‬بنرابراین‬
‫فرستنده و زیرنده هر دو می توانند مسدود شونده یا مسدود نشونده باشند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪14۰‬‬ ‫سیستم عامل‬

‫پیاده سازی انحصار متقابل توسط تبادل پیام‬


‫مسردود نشرونده و‬ ‫که‪send‬‬ ‫از ت ادل پیام می توان برای اعمال انحصار متقابل استفاده کرد‪ .‬فرض می کنیم‬
‫‪ receive‬مسدود شونده است‪ .‬یعنی وقتی فرایندی می خواهد اطالعاتی را دریافت کنرد‪ ،‬برا اجررای ‪،receive‬‬
‫بلوکه می شود تا اطالعات برایش فرستاده شود‪.‬‬
‫مجموعه ای از فرایندهای همیمان در صندوق پستی ‪ mutex‬شریکند و می توانند از این صندوق پستی برای‬
‫ارسال و دریافت پیام استفاده کنند‪.‬‬
‫; تعداد فرایندها =‪const n‬‬
‫)‪void p(int i‬‬
‫{‬
‫)‪while(true‬‬
‫{‬
‫;)‪receive(mutex , msg‬‬
‫‪/*critical section */‬‬
‫;)‪send(mutex , msg‬‬
‫‪/*non critical section */‬‬
‫}‬
‫}‬

‫) (‪void main‬‬
‫{‬
‫;)‪create_mailbox(mutex‬‬
‫;)‪send(mutex , null‬‬
‫;) )‪Par begin( P(1) , P(2), …,P(n‬‬
‫}‬

‫صندوق پستی با پیامی با محتوای تهی مقدار زذاری اولیه شده است‪ .‬فرایندی که مری خواهرد وارد بخرش‬
‫بحرانی خود شود‪ ،‬ابتدا سعی می کند پیامی دریافت نماید‪ .‬ازر صرندوق پسرتی خرالی باشرد‪ ،‬مسردود مری‬
‫زردد‪ .‬هنگامی که فرایندی پیام را به دست می آورد‪ ،‬بخش بحرانی خود را انجرام داده و سرپس پیرام را بره‬
‫صندوق پستی بر می زرداند‪ .‬در نتیجه این پیام نقش نشانه ای را بازی می کند که از فراینردی بره فراینرد‬
‫دیگر منتقل می شود‪.‬‬

‫ازر بیش از یک فرایند عمل دریافت را همیمان انجام دهند‪ ،‬در این صورت‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪141‬‬ ‫سیستم عامل‬

‫‪ -1‬ازر پیامی باشد‪ ،‬تنها به یک فرایند داده شده و بقیه مسدود می شوند‪.‬‬
‫‪ -2‬ازر صندوق پستی خالی باشد‪ ،‬تمام فرایندها مسدود می زردند‪ .‬موقعی کره پیرامی فرراهم مری‬
‫شود‪ ،‬تنها یکی از فرایندهای مسدود فعال شده و پیام به همان فرایند داده شود‪.‬‬
‫این فرض ها در تمام امکانات ت ادل پیام‪ ،‬برقرار است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪142‬‬ ‫سیستم عامل‬

‫حل مسئله تولیدکننده‪ -‬مصرف کننده توسط تبادل پیام‬


‫می توان توسط ت ادل پیام‪ ،‬راه حلی برای مسئله تولید کننده و مصرف کننده با بافر محدود ارائه داد‪ .‬ایرن برنامره عرالوه برر‬
‫عالئم‪ ،‬داده ها را نیی ع ور می دهد‪ .‬تولید کننده با تولید داده ها‪ ،‬آنها را به عنوان پیرام بره صرندوق پسرتی‪ mc‬مری فرسرتد‪.‬‬
‫مصرف کننده تا هنگامی که حداقل یک پیام در صندوق وجود دارد‪ ،‬می تواند مصرف کند‪ .‬بنابراین صندوق پستی ‪ mc‬ماننرد‬
‫یک بافر عمل می کند‪.‬‬
‫راه حل‪:‬‬
‫یک صندوق پستی برای تولید کننده(‪)mp‬و یک صندوق پستی برای مصرف کننده(‪ )mc‬ایجاد می شود‪:‬‬
‫;)‪create_mailbox(mc‬‬
‫;)‪create_mailbox(mp‬‬
‫سپس صندوق پستی تولید کننده‪ ،‬به اندازه ظرفیت بافر‪ ،‬با پیام تهی پر می شود‪:‬‬
‫)‪for(i=0 ; i<capacity; i++‬‬
‫;)‪send(mp,NULL‬‬
‫سپس دو تابع تولید کننده و مصرف کننده به صورت همروند صدا زده می شود‪:‬‬

‫) (‪void producer‬‬ ‫) (‪void consumer‬‬


‫{‬ ‫{‬
‫;‪message m1‬‬ ‫;‪message m2‬‬
‫)‪while(TRUE‬‬ ‫)‪while(TRUE‬‬
‫{‬ ‫{‬
‫;)‪receive(mp,m1‬‬ ‫;)‪receive(mc,m2‬‬
‫;) (‪m1=produce‬‬ ‫;)‪consume(m2‬‬
‫;)‪send(mc,m1‬‬ ‫;)‪send(mp,null‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬

‫زمانی که فرایندهای فرستنده و زیرنده پیام بر روی یک ماشین اجرا می شوند‪ ،‬مسئله کارایی پیش می اید‪.‬به ع ارتی‬
‫کپی کردن پیام ها از یک فرایند به فرایند دیگر همیشه آهسته تر از انجام عملیات سمافور و یا ورود به یک مانیتور‬
‫است‪.‬‬

‫زیرنده می تواند به محض دریافت پیام از فرستنده‪ ،‬یک پیام تصدیا)‪ (acknowledgment‬به فرستنده بفرستد و او را‬
‫از دریافت پیام با خ ر سازد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪143‬‬ ‫سیستم عامل‬

‫در یک سیستم توزیعی با حافظه اختصاصی برای رعایت انحصار متقابل‪ ،‬از راه حل ت ادل پیام استفاده می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪144‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)79‬‬


‫‪ -1‬دو فرایند ‪ P1‬و ‪ P2‬زیر به صورت هم روند اجرا می شوند‪ .‬در صورتی که مقدار اولیه متغیر سراسری ‪ a‬صفر باشرد‪ ،‬بعرد از‬
‫اجرای کامل دو فرآیند‪ ،‬کدام یک از زیینه های ذیل نادرست می باشد؟‬
‫(امکان اجرای آنها به صورت ‪ Interleaved‬نیی وجود دارد‪ .‬یعنی در هر لحظه از اجرای فرایند‪ ،‬امکان وقوع وقفره و سروئیچ بره‬
‫فرایند دیگر وجود دارد‪).‬‬
‫‪p1‬‬ ‫‪p2‬‬
‫;‪b=a‬‬
‫;‪a=1‬‬
‫;‪c=a‬‬
‫‪ )1‬هر یک از مقادیر ‪ a‬و‪ b‬و‪ c‬یک می باشد‪.‬‬
‫‪ )2‬مقادیر ‪ b‬و‪ c‬صفر می باشد و مقدار ‪ a‬یک است‪.‬‬
‫‪ )3‬مقادیر ‪ a‬و ‪ c‬هر کدام یک می باشد و مقدار ‪ b‬صفر است‪.‬‬
‫‪ )4‬مقادیر ‪ a‬و‪ b‬هر کدام یک می باشد و مقدار ‪ c‬صفر است‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫بعد از اجرای کامل دو فرایند‪ ،‬مقادیر این متغیرها نامشخص است و حالت های زیر ممکن می باشد‪:‬‬
‫‪ )1‬ابتدا ‪ p1‬به طور کامل اجرا شده و سپس ‪ p2‬اجرا شود‪ .‬در این حالت ‪. a=1,b=1,c=1‬‬
‫‪ )2‬ابتدا ‪ p2‬به طور کامل اجرا شده و سپس ‪ p1‬اجرا شود‪ .‬در این حالت ‪. a=1,b=0,c=0‬‬
‫‪ )3‬دستور اول از ‪ p2‬اجرا شده و به ‪ p1‬سوئیچ شود‪ .‬بعد از اجرای ‪ p1‬به ‪ p2‬سوئیچ شده و دستور بعدی آن اجرا شود‪ .‬در ایرن‬
‫حالت داریم ‪. a=1,b=0,c=1‬‬
‫زیینه ‪ 4‬نادرست است‪ ،‬ون وقتی مقدار ‪ b‬یک می شود که دستور ‪ b=a‬بعد از دستور ‪ a=1‬اجرا شود‪ .‬بعد از اجررای ایرن دو‬
‫دستور‪ ،‬نوبت به اجرای دستور ‪ c=a‬می باشد که مقدار ‪ c‬یک می شود‪.‬‬

‫(مهندسی ‪ -IT‬دولتی ‪)84‬‬


‫‪ -2‬در یک سیستم هم روند‪ ،‬هر پروسس برای ورود به بخش بحرانی‪ ،‬تابع ‪ enter-region‬و پرس از خرروج از بخرش بحرانری‬
‫تابع ‪ leave-region‬آمده در زیر را صدا می کند‪ .‬کدام زیینه صحیح است؟‬
‫‪#define FALSE 0‬‬
‫‪# define TRUE 1‬‬
‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪145‬‬ ‫سیستم عامل‬

‫‪# define N 2‬‬


‫;‪int turn‬‬
‫‪int intersted[N]; /* all values initially 0(FALSE) */‬‬
‫{)‪void enter-region(int process‬‬
‫;‪int other‬‬
‫;‪other =1 - process‬‬
‫;‪interested[process] = TRUE‬‬
‫;‪turn = process‬‬
‫;) ]‪while (turn == process && interseted[other‬‬
‫}‬
‫{)‪void leave-region(int process‬‬
‫;‪interested[process] = FALSE‬‬
‫}‬
‫‪ )2‬امکان بن بست وجود دارد‪(deadlock) .‬‬ ‫‪ )1‬امکان زرسنگی وجود دارد )‪(starvation‬‬
‫‪ )4‬انحصار متقابل تأمین نمی شود‪.‬‬ ‫‪ )3‬انحصار متقابل تأمین می شود‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 3‬است‪.‬‬
‫این تست همان راه حل پیترسون در کتاو ‪ ، Tanenbaum‬است‪ .‬در نتیجه هر سه شرط "انحصار متقابرل‪ ،‬انتظرار محردود و‬
‫پیشرفت" را تامین می کند‪ .‬و مشکل بن بست و زرسنگی ندارد‪.‬‬
‫در این راه حل‪ ،‬هر فرایند ق رل از ورود بره ناحیره بحرانری‪ ،‬ترابع ‪ enter_region‬و پرس از خرروج‪ ،‬ترابع ‪ leave_region‬را‬
‫فراخوانی می کند‪.‬‬
‫به طور م ال برای ‪ process=0‬داریم‪:‬‬
‫)‪P0(void‬‬
‫{‬
‫)‪while(TRUE‬‬
‫{‬
‫;)‪enter_region(0‬‬
‫;) (‪critical-section‬‬
‫;)‪leave_region(0‬‬
‫}‬
‫}‬

‫(مهندسی ‪ -IT‬دولتی ‪)83‬‬


‫‪ -3‬الگوریتم زیر یک راه حل نرم افیاری برای حل مسئله ناحیه بحرانی است‪ .‬در این الگوریتم‪:‬‬
‫(‪ -IT‬دولتی‪)83‬‬
‫;‪var c1, c2 : boolean‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪146‬‬ ‫سیستم عامل‬

‫;‪turn: integer‬‬
‫;‪c1 :=TRUE‬‬
‫;‪c2 :=TRUE‬‬

‫‪cobegin‬‬
‫‪P1:‬‬
‫‪loop‬‬
‫;‪c1:=FALSE‬‬
‫‪turn:=1‬‬
‫;‪while (not c2) and (turn=1) do‬‬
‫;‪CS1‬‬
‫;‪c1:=TRUE‬‬
‫‪end loop‬‬
‫‪P2:‬‬
‫‪loop‬‬
‫;‪c2:=FALSE‬‬
‫;‪turn=2‬‬
‫;‪while (not c1) and (turn=2) do‬‬
‫;‪CS2‬‬
‫;‪c2:=TRUE‬‬
‫‪end loop‬‬
‫‪coend‬‬
‫‪ )1‬این الگوریتم صحیح می باشد‪.‬‬
‫‪ Dead lock )2‬وجود دارد‪.‬‬
‫‪ Starvation )3‬وجود دارد‪.‬‬
‫‪ )4‬شرایط ناحیه بحرانی برآورده نمی شود (استفاده انحصاری)‬

‫پاسخ‪ :‬زیینه ‪ 1‬جواو است‪.‬‬


‫این الگوریتم‪ ،‬مشابه راه حل ‪ Peterson‬است‪ .‬در پیترسون مقدار اولیه ‪ flag‬ها ‪ flase‬بود و هر فرایند ق ل از ورود بره ناحیره‬
‫بحرانی‪ ،‬آن را ‪ true‬و بعد از خروج آن را ‪ false‬می کرد‪ .‬در این تست‪ ،‬این منطا معکوس شده است که تراثیری برر عملکررد‬
‫صحیح آن نمی زذارد و مانند پیترسون درست کار می کند و همه شرایط را رعایت می کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪147‬‬ ‫سیستم عامل‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)74‬‬


‫‪ -4‬آیا کد صوری زیر برای مسأله ‪ Critical Section‬بین دو فرآیند هم روند قابل ق ول است؟ را؟‬
‫(اپراتور ‪ AND‬به معنای اجرای هم روند است‪).‬‬
‫}‬
‫;‪int turn‬‬
‫;]‪boolean falg[2‬‬
‫{ ) ‪proc (int i‬‬
‫)‪while(TRUE‬‬
‫{‬
‫;‪compute‬‬
‫;‪falg[i]:= TRUE‬‬
‫;‪turn:= (i+1) mod 2‬‬
‫;) ‪while( flag[(i+1) mod 2] and turn = i‬‬
‫;‪critical-section‬‬
‫;‪flag[i] := FALSE‬‬
‫}‬
‫}‬
‫;‪turn:=0‬‬
‫;‪falg [0] :=FALSE‬‬
‫;‪falg [1] :=FALSE‬‬
‫;)‪proc(0) AND proc(1‬‬
‫{‬
‫‪ )1‬خیر– زیرا ‪ Deadlock‬وجود دارد‪.‬‬
‫‪ )2‬بلی– زیرا شرط ‪ Mutual Exclusion‬برقرار است‪.‬‬
‫‪ )3‬خیر– زیرا شرط ‪ Mutual Exclusion‬برقرار نیست‪.‬‬
‫‪ )4‬بلی– زیرا ‪ Deadlock‬وجود ندارد‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 3‬است‪.‬‬
‫رود به کار رفته‪ ،‬رود پیترسون است با این تفاوت که ق ل از حلقه در ‪ ، turn‬مقدار معکوسری قررار داده مری شرود‪( .‬یعنری‬
‫برای ‪ p0‬مقدار ‪ 1‬و برای ‪ p1‬مقدار ‪ .)0‬که این کار باعث نادرست شدن رود می شود‪.‬‬
‫فرض کنید ‪ P0‬اجرا شود و ‪ flag‬خود را ‪ true‬کرده و توسط دستور ‪ turn:=(i+1)mod 2‬مقدار ‪ turn‬را یک می کنرد و رون‬
‫‪ turn‬برابر صفر نیست از ‪ while‬ع ور کرده و وارد ناحیه بحرانی می شود‪ .‬ازر در این زمان وقفه ای رخ دهرد و بره ‪ P1‬سروئیچ‬
‫شود‪ ،‬این فرایند نیی بعد از ‪ true‬کردن ‪ flag‬خودد ‪ ،‬با اجرای دستور ‪ turn:=(i+1)mod 2‬مقدار ‪ turn‬را صفر کررده و رون‬
‫‪ turn‬برابر یک نیست ‪،‬این فرایند نیی وارد ناحیه بحرانی می شود‪ .‬بنابراین شرط انحصار متقابل برقرار نیست‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪148‬‬ ‫سیستم عامل‬

‫(مهندسی ‪ -IT‬دولتی ‪)88‬‬


‫‪ -5‬راه حل ناحیه بحرانی زیر را برای فرآیندهای )‪ Pi : (i  1,2‬درنظر بگیرید‪ .‬کدام مورد صحیح است؟‬
‫‪shared var‬‬
‫;‪turn: integer; turn:=0‬‬
‫‪Pi :‬‬
‫{ )‪while (1‬‬
‫;‪flag[i]:=TRUE‬‬
‫;‪turn:= ( turn+ i ) %2 + 1‬‬
‫;) ‪while( not( flag[i]) or turn == i %2 +1‬‬
‫‪Critical – Section‬‬
‫;‪flag[i]:= FALSE‬‬
‫;‪turn:=( turn+ i) %2 + 1‬‬
‫‪Non Critical – Section‬‬
‫}‬
‫‪ )1‬راه حل ناحیه بحرانی کامال صحیح است‪.‬‬
‫‪ )2‬شرط پیشرفت )‪ (Progress‬تنها شرطی است که نقض می زردد‪.‬‬
‫‪ )3‬شرط انحصار متقابل )‪ (multual exclusion‬تنها شرطی است که نقض می زردد‪.‬‬
‫‪ )4‬هر دو شرط انحصار متقابل و پیشرفت نقض می شوند‪.‬‬
‫پاسخ‪ :‬زیینه ‪ 4‬جواو است‪.‬‬
‫مقدار ‪ flag‬ها در این راه حل بی اثرند‪ .‬ون در بدنه هر فرایند‪ ،‬به جای بررسی ‪ flag‬فرایند مقابل‪ flag ،‬خرود فراینرد رک‬
‫می شود‪ .‬بعد از حذف ‪ flag‬ها‪ ،‬کد هر دو فرآیند به صورت زیر می باشد‪:‬‬
‫‪P1‬‬ ‫‪P2‬‬
‫‪turn:=0‬‬ ‫;‪turn:=0‬‬
‫{)‪while(1‬‬ ‫{)‪while(1‬‬
‫;‪turn:= (turn+1) %2 + 1‬‬ ‫;‪turn:= (turn+2) %2 + 1‬‬
‫;)‪while( turn == 2‬‬ ‫;)‪while( turn == 1‬‬
‫‪Critical – Section‬‬ ‫‪Critical – Section‬‬
‫;‪turn:=(turn+1) %2 + 1‬‬ ‫;‪turn:=(turn+2) %2 + 1‬‬
‫}‪Non Critical – Section‬‬ ‫}‪Non Critical – Section‬‬
‫ازر ‪ p1‬اجرا شود‪ ،‬مقدار ‪ turn‬را به ‪ 2‬تغییر می دهد و در حلقه ‪ while‬منتظر می ماند‪ .‬ازر در این لحظه به ‪ ، p2‬سوئیچ شود‬
‫‪ p2،‬نیی مقدار ‪ turn‬را به ‪ 1‬تغییر می دهد و در حلقه ‪ while‬منتظر می ماند‪ .‬بنابراین بن بست رخ داده و شرط انتظار محدود‬
‫نقض می شود‪ .‬شرط پیشرفت نیی نقض می شود‪ ،‬ون زمانی که ‪ p1‬در حلقه ‪ while‬منتظر است‪ ،‬ازرر ‪ p2‬کره در خرارج از‬
‫ناحیه بحرانی است‪ ،‬قصد ورود به ناحیه بحرانی را نداشته باشد‪ ،‬مانع پیشرفت ‪ p1‬می شود‪ .‬با این شررایط بردیهی اسرت کره‬
‫شرط انحصار متقابل نیی نقض می شود‪ .‬بنابراین هر ‪ 3‬شرط "انحصار متقابل‪ ،‬پیشرفت و انتظار محدود" نقض می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪149‬‬ ‫سیستم عامل‬

‫تذکر‪ :‬بهتر بود طراح محترم‪ ،‬در زیینه ‪ ، 4‬شرط انتظار محدود را نیی اضافه می کرد‪ ،‬تا داوطلب فکر نکند که منظور این است‬
‫که فقط آن دو شرط که در زیینه ‪ 4‬آمده‪ ،‬نقض می شود‪.‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)91‬‬


‫‪-6‬آیا کد زیر می تواند راه حلی برای دو پردازد هم روند باشد؟‬
‫{) ‪proc ( int i‬‬
‫{)‪while(TRUE‬‬
‫;‪computeation‬‬
‫;‪key[i] = TRUE‬‬
‫) ]‪while ( key[i‬‬
‫;) ‪swap (key[i] , lock‬‬
‫ناحیه بحرانی ‪CS‬‬
‫;‪lock = FALSE‬‬
‫}‬
‫}‬
‫;‪lock = FALSE‬‬
‫;‪key[1] = FALSE‬‬
‫;‪key[2] = FALSE‬‬
‫‪ )1‬راه حل صحیح نیست‪ ،‬زیرا انحصار متقابل)‪ (mutual exclusion‬رعایت نمی شود‪.‬‬
‫‪ )2‬راه حل صحیح نیست‪ ،‬زیرا شرط پیشرفت برقرار نیست‪.‬‬
‫‪ )3‬راه حل صحیح نیست‪ ،‬زیرا تضمینی برای محدودیت زمان انتظار ندارد‪.‬‬
‫‪ )4‬راه حل صحیح است‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 3‬است‪.‬‬
‫راه حل داده شده‪ ،‬انحصار متقابل و پیشرفت را رعایت می کند‪ .‬ولی ون نوبرت دهری بررای ورود بره ناحیره بحرانری کرامال‬
‫تصادفی است‪ ،‬شرط انتظار محدود رعایت نمی شود‪.‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)90‬‬


‫‪ -7‬پیاده سازی زیر از عملیات تجییه ناپذیر)‪ (atomic‬روی سمافورها را در نظر بگیرید‪:‬‬
‫{‪typedef struct‬‬
‫;‪int value‬‬
‫;‪struct process *list‬‬
‫;‪}semaphore‬‬

‫)‪wait(semaphore *S‬‬ ‫)‪signal(semaphore *S‬‬


‫{‬ ‫{‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪15۰‬‬ ‫سیستم عامل‬

‫;‪S   value--‬‬ ‫;‪S   value++‬‬


‫) ‪if ( S   value < 0‬‬ ‫) ‪if ( S   value <= 0‬‬
‫{‬ ‫{‬
‫;‪add this process to S   List‬‬ ‫;‪remove a process P from S   List‬‬
‫;))‪block(-(S   value‬‬ ‫;)‪wakeup(P‬‬
‫}‬ ‫}‬
‫}‬ ‫}‬
‫مفروضات و تعاریف زیر را نیی داریم‪:‬‬
‫)‪ : block(n‬فرآیندهای بلوک شونده را به ترتیب ‪ n‬از کو ک بره بریرگ مرترب کررده کره بره ایرن ترتیرب فرآینرد اول برا‬
‫)‪ block(1‬در سر صف قرار می زیرد و به ترتیب ‪( n‬از کو ک به بیرگ) توسط )‪ wakeup(P‬از حالرت بلروک خرارج مری‬
‫شوند‪.‬‬
‫‪S   value  1‬‬
‫برنامه های سیستم به شکل زیر مفروضند‪:‬‬
‫;‪mutex: semaphore‬‬
‫{‪do‬‬
‫;)‪wait(mutex‬‬
‫;) (‪critical-section‬‬
‫;)‪signal(mutex‬‬
‫‪remainder-section‬‬
‫)‪}while(TRUE‬‬
‫کدام زیینه صحیح است؟‬
‫‪ )1‬خواص انحصار متقابل و انتظار محدود برقرارند ولی پیشرفت برقرار نیست‪.‬‬
‫‪ )2‬خواص انحصار متقابل و پیشرفت برقرارند ولی انتظار محدود برقرار نیست‪.‬‬
‫‪ )3‬خواص پیشرفت و انتظار محدود برقرارند ولی انحصار متقابل برقرار نیست‪.‬‬
‫‪ )4‬خواص انحصار متقابل برقرار است ولی پیشرفت و انتظار محدود برقرار نیست‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫ون ترتیب خروج فرایندها بلوکه شده در صف‪ ،‬بر اساس ورود آنها نیست(سمافور ضعیف)‪ ،‬بنابراین امکان زرسرنگی(قحطی)‬
‫وجود دارد‪ .‬بنابراین شرط انتظار محدود برقرار نیست‪.‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)86‬‬


‫‪ -8‬در صورتی که دو کد زیر برای حل مسأله کالسیک همیمانی بافر محدود با ظرفیت ‪ n‬باشد‪ ،‬آن زاه مقدار سمافورهای ‪ x‬و‬
‫‪ y‬و ‪ z‬باید ه مقداری باشند؟‬
‫مصرف کننده‬ ‫تولید کننده‬
‫{ )‪while (1‬‬ ‫{ )‪while (1‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪151‬‬ ‫سیستم عامل‬

‫)‪wait (z‬‬ ‫تولید قطعه‬


‫)‪wait (y‬‬
‫)‪wait (x‬‬
‫حذف قطعه از بافر‬ ‫)‪wait (y‬‬
‫)‪signal(y‬‬ ‫اضافه کردن قطعه به بافر‬
‫)‪signal (x‬‬
‫)‪signal (y‬‬
‫استفاده از قطعه‬ ‫)‪signal (z‬‬
‫}‬ ‫}‬

‫‪x=n , y=n , z=1 )2‬‬ ‫‪x=0 , y=1 , z=n )1‬‬


‫‪x=0 , y=n , z=1 )4‬‬ ‫‪x=n , y=1 , z=0 )3‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 3‬است‪ .‬از ‪ x‬برای شمارد تعداد خانه های خالی با مقدار اولیه ‪ ، n‬از ‪ z‬برای شمارد تعداد خانه های پرر‬
‫با مقدار اولیه ‪ 0‬و از ‪ y‬برای انحصار متقابل با مقدار اولیه ‪ 1‬استفاده می شود‪.‬‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)84‬‬


‫‪ -9‬ازر مقادیر اولیه سمافورهای ‪ n,s‬به ترتیب‪ 0,1‬باشد‪ ،‬نانچه دو زیر روال به طور هم روند اجرا شوند‪ ،‬کدام یرک از زیینره‬
‫های زیر صحیح است؟‬

‫‪procedure producer‬‬ ‫‪procedure consumer‬‬


‫‪begin‬‬ ‫‪begin‬‬
‫‪repeat‬‬ ‫‪repeat‬‬
‫;‪produce‬‬ ‫;)‪wait(s‬‬
‫;)‪wait(s‬‬ ‫;)‪wait(n‬‬
‫;‪append‬‬ ‫;‪take‬‬
‫;)‪signal(n‬‬ ‫;)‪signal(s‬‬
‫;)‪signal(s‬‬ ‫;)‪signal(n‬‬
‫‪forvere‬‬ ‫‪forever‬‬
‫;‪end‬‬ ‫;‪end‬‬
‫‪ )1‬راه حل کامال درست است‪.‬‬
‫‪ )2‬امکان بن بست وجود دارد‪.‬‬
‫‪ )3‬امکان عدم تأمین انحصار متقابل وجود دارد‪.‬‬
‫‪ )4‬امکان دارد که ‪ consumer‬در حالت زرسنگی بماند و ‪ producer‬فعال باشد‪.‬‬
‫پاسخ‪ :‬همان مسئله تولید کننده‪ -‬مصرف کننده با بافر نامحدود است‪ ،‬ولی جای دو ‪ wait‬در مصرف کننده عوض شده اسرت‪.‬‬
‫ازر ابتدا مصرف کننده اجرا شود‪ s ، wait(s) ،‬را صفر و )‪ n ، wait(n‬را ‪ -1‬کرده و در نتیجه مصرف کننده مسدود می شرود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪152‬‬ ‫سیستم عامل‬

‫حال ازر تولید کننده اجرا شود‪ s ، wait(s) ،‬را ‪ -1‬می کند و در نتیجه تولید کننده نیی مسدود می شود‪ .‬در این لحظه رون‬
‫هر دو فرایند مسدود هستند‪ ،‬بنابراین بن بست رخ می دهد‪.‬‬
‫( مهندسی ‪ – IT‬دولتی ‪)85‬‬
‫‪ -1۰‬در راه حل زیر برای شام خواران فیلسوف (‪ 5‬فیلسوف)‪ ،‬فرض کنید اجرای روال های برداشتن دو نگال و زذاشتن هرر‬
‫نگال از ابتدا تا انتهای روال با رعایت کامل ‪ Mutual Exclusion‬انجام می شود‪.‬‬
‫روال )‪ take-forks(i‬دو نگال سمت راست و پ را بررسی می کند و ازر هرر دو موجرود بودنرد برمری دارد وزرنره عمرل‬
‫بررسی را تکرار می کند‪.‬‬
‫روال )‪ put-fork(i‬نگال شماره ‪ i‬را می زذارد و از روال خارج می شود‪.‬‬
‫{)‪void philosopher (int i‬‬
‫{ )‪while(1‬‬
‫;‪think‬‬
‫;)‪take-forks(i‬‬
‫;‪eat‬‬
‫;)‪put-fork(i‬‬
‫;)‪put-fork((i+1)%n‬‬
‫}‬
‫}‬
‫کدام زیینه درست است؟‬
‫‪ )1‬دارای بن بست‬
‫‪ )2‬فاقد بن بست و زرسنگی‬
‫‪ )3‬دارای بن بست و زرسنگی‬
‫‪ )4‬فاقد بن بست ولی دارای زرسنگی‬
‫پاسخ‪ :‬زیینه ‪ 4‬دست است‪.‬‬
‫در این راه حل ون توسط روال )‪ take-forks(i‬یا هر دو نگال همیمان برداشته شده و یا هیچ کدام برداشرته نمری شرود‪،‬‬
‫بنابراین بن بست رخ نمی دهد‪.‬‬
‫در این رود امکان زرسنگی وجود دارد‪ ،‬ون همه یی تصادفی است و نوبت و عدالت رعایت نمی شود و ممکن اسرت یرک‬
‫فیلسوف به مدت نامعلوم زرسنه بماند‪.‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)87‬‬


‫‪ -11‬کدام زیینه در مورد مانیتور درست نیست؟‬
‫‪ )1‬فقط یک روال مانیتور در آن می تواند فعال باشد‪.‬‬
‫‪ )2‬یک مانیتور هیچ زاه در بخش بحرانی خود مسدود نمی شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪153‬‬ ‫سیستم عامل‬

‫‪ )3‬پیاده سازی مانیتور در سطح کامپایلر انجام می شود‪.‬‬


‫‪ )4‬مانیتور به صورت ضمنی عملیات درخواست ورود‪/‬خروج از بخش بحرانی را انجام می دهد‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫در مانیتور امکان مسدود شدن با ‪ wait‬بر روی متغیر شرطی‪ ،‬وجود دارد‪.‬‬

‫‪5‬‬ ‫فصل‬

‫بن بست‬

‫بن بست )‪ (Deadlock‬یعنی مسدود بودن دائمی مجموعه ای از فرایندها که برای منابع سیستم رقابرت مری‬
‫کنند یا با یکدیگر در ارت اط هستند‪ .‬این مسدود بودن ادامه مییابد تا سیستم عامرل عمرل فروق العرادهای‬
‫انجام دهد‪ ،‬م الً فرایندی را حذف کند یا مج ور به برزشت به عقب کند‪.‬‬
‫یک م ال معمول از بن بست‪ ،‬ترافیک است‪ .‬هار خودرو که در یک زمان به هار راهی رسریدهاند مفرروض‬
‫است‪ .‬هار ربع این هار راه منابع محسوو میشوند‪ .‬ازر هر هار خودرو وارد تقراطع بشروند‪ ،‬هرر خرودرو‬
‫یک ربع از هار راه (یک من ع) را در اختیار زرفته ولی نمیتواند پیش برود‪ .‬ون من ع مرورد نیراز دوم در‬
‫اختیار خودروی دیگر است و این امر باعث ایجاد بن بست خواهد شد‪( .‬هر خودرو برای ع ور از هار راه بره‬
‫دو ربع از هارراه نیاز دارد‪).‬‬

‫شرایط بن بست‬
‫ازر هار شرط زیر همزمان در سیستمی وجود داشته باشد‪ ،‬بن بست رخ میدهد‪:‬‬
‫نگهداری و انتظار (‪)Hold and Wait‬‬ ‫‪-1‬‬
‫فرایندی وجود دارد که حداقل یک من ع را در اختیار داشته باشد(نگهداری) و منتظر به دست آوردن من ع دیگری باشد‬
‫که فعال در اختیار فرایند دیگری است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪154‬‬ ‫سیستم عامل‬

‫نشدنی) (‪)Non Preemption‬‬ ‫‪ -2‬انحصاری بودن (قبضه‬


‫هنگامی که فرایندی من عی را در اختیار دارد و نتوان آن من ع را به زور باز پس زرفت‪.‬‬

‫متقابل (‪)Mutual Exclusion‬‬ ‫‪ -3‬انحصار‬


‫در هر زمان تنها یک فرایند میتواند از یک من ع استفاده کند و ازر فرایند دیگری درخواست همان من ع را کند‪ ،‬باید‬
‫منتظر بماند تا من ع آزاد شود‪.‬‬

‫‪ -4‬انتظار چرخشی (‪)Circular Wait‬‬

‫مجموعه ای از فرایندهای منتظر } ‪ {P0 , P1 ,..., Pn‬وجود دارد که ‪ P0‬منتظر من عی باشد که در اختیار ‪ P1‬است‬
‫و ‪ P1‬منتظر من عی باشد که در اختیار ‪ P2‬است و به همین ترتیب‪ Pn 1 ،‬منتظر من عی باشد که در اختیار ‪ Pn‬است و در‬
‫نهایت ‪ Pn‬منتظر من عی است که در اختیار ‪ P0‬است‪ .‬در واقع رخه ای از انتظار وجود دارد‪.‬‬

‫برقرار بودن هر هار شرط‪ ،‬شروط الزم و کافی برای وقوع بن بست می باشند‪.‬‬

‫شرط انتظار رخشی منجر به شرط نگهداری و انتظار میزردد‪.‬‬


‫مثال‬
‫سیستمی با دو من ع ‪ R1‬و ‪ R2‬مفروض است‪ .‬ازر فرایند ‪ P1‬من رع ‪ R1‬و فراینرد ‪ P2‬من رع ‪ R2‬را در اختیرار‬
‫داشته باشد و فرایند ‪ P1‬برای تکمیل اجرا به من ع ‪ R2‬و فرایند ‪ P2‬به من ع ‪ R1‬نیاز داشته باشرد‪ ،‬برن بسرت‬
‫رخ میدهد‪.‬‬

‫ازر در سیسرتمی ‪ n‬فراینرد و ‪ m‬من رع (از یرک نروع) موجرود باشرد‪ ،‬در صرورت برقررار برودن شررط‬
‫‪n‬‬
‫‪  Re quest(i)  m  n‬بن بست رخ نخواهد داد‪.‬‬
‫‪i 1‬‬

‫مثال‬
‫کامپیوتری دارای ‪ m‬مورد از یک من ع می باشد و ‪ n‬فرایند برای در اختیار زرفتن آنهرا برا هرم رقابرت مری‬
‫کنند‪ .‬هر فرایند حداک ر به دو مورد نیاز دارد‪ .‬حداک ر مقدار ‪ n‬که به ازای آن می توان مطمئن بود‪ ،‬سیستم‬
‫د ار بن بست نشود‪ ،‬قدر است؟‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪155‬‬ ‫سیستم عامل‬

‫حل‪ :‬ون در این م ال هر فرایند حداک ر به دو من ع نیاز دارد‪ ،‬مجموع کل درخواستها برای ‪ n‬فراینرد برابرر‬
‫‪ 2n‬می باشد و داریم‪:‬‬
‫‪n‬‬

‫‪ Re quest(i)  m  n  2n  m  n  n  m‬‬


‫‪i 1‬‬

‫بنابراین حداک ر مقدار ‪ n‬که به ازای آن بن بست رخ نمی دهد‪ ،‬برابر ‪ m – 1‬می باشد‪.‬‬

‫مثال‬
‫یک سیستم کامپیوتری دارای ‪ 6‬عدد ‪ TapeDrive‬است که ‪ n‬پردازه برای دستیابی به آنهرا رقابرت میکننرد‪.‬‬
‫هر پردازه به دو درایو نیاز دارد‪ .‬این سیستم به ازای حداک ر ه ارزشهایی از ‪ n‬فاقد بن بست است؟‬
‫‪n‬‬

‫‪ Re quest(i)  m  n  2n  6  n  n  6‬‬


‫‪i 1‬‬

‫بنابراین حداک ر پنج فرایند میتواند وجود داشته باشد‪.‬در این حالت ازر هرکدام از فرایندها یک من رع را در‬
‫اختیار زیرند‪ ،‬یک من ع آزاد باقی میماند که یکی از فرایندها با زرفتن آن کامل میشود و به همین ترتیب‬
‫بقیه فرایندها کامل خواهند شد و بن بست رخ نمیدهد‪.‬‬
‫گراف تخصیص منابع‬
‫توسط زراف تخصیص منابع میتوان مسئله بن بست را دقیقتر تشریح کرد‪ .‬در این زراف‪ ،‬فرایندها با دایرره‬
‫و منابع با مربع نشان داده میشوند‪.‬‬
‫در زراف تخصیص منابع دو نوع یال وجود دارد‪:‬‬
‫‪ -1‬یال درخواست ‪Pi  R j‬‬
‫فرایند ‪ Pi‬نمونهای از من ع ‪ R j‬را درخواست کرده است و منتظر آن من ع است‪.‬‬
‫‪ -2‬یال تخصیص ‪R j  Pi‬‬
‫نمونه ای از من ع ‪ R j‬به فرایند ‪ Pi‬تخصیص داده شده است‪.‬‬

‫ازر زراف تخصیص منابع فاقد رخه باشد‪ ،‬حالت بن بست وجود ندارد‪.‬‬
‫مثال‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪156‬‬ ‫سیستم عامل‬

‫در زراف تخصیص منابع زیر‪ ،‬وضعیت بن بست را بررسی کنید؟‬

‫حل‪:‬‬
‫حالتهای فرایند در این زراف ع ارتند از‪:‬‬
‫‪ -1‬فرایند ‪ P1‬نمونهای از من ع ‪ R2‬را در اختیار دارد و منتظر نمونهای از من ع ‪ R1‬است‪.‬‬
‫و من ع ‪ R2‬را در اختیار دارد و منتظر نمونهای از من ع ‪ R3‬است‪.‬‬ ‫ع‪R1‬‬ ‫‪ -2‬فرایند ‪ P2‬نمونهای از من‬
‫است‪.‬‬ ‫‪R2‬‬ ‫‪ -3‬فرایند ‪ P3‬نمونهای از من ع ‪ R3‬را در اختیار دارد و منتظر نمونهای از من ع‬
‫با توجه به این زراف‪ ،‬دو رخه کمینه وجود دارد و به همین علت همه فرایندها در بن بست قرار دارند‪ .‬این‬
‫رخه ها ع ارتند از‪:‬‬
‫‪1) P1  R1  P2  R3  P3  R2  P1‬‬
‫‪2) P2  R3  P3  R2  P2‬‬

‫مثال‬
‫در زراف زیر وضعیت بن بست را بررسی نمایید‪.‬‬

‫حل‪ :‬با وجود رخه ‪ ، P1  R1  P3  R2  P1‬بن بست رخ نمی دهد‪ .‬ون فرایند ‪ P4‬میتواند من رع‬
‫نمونه ‪ R2‬را آزاد کند و آنگاه من ع ‪ R2‬به فرایند ‪ P3‬داده میشود و رخه از بین برود‪.‬‬
‫ازر رخه ای در زراف وجود داشته باشد‪ ،‬ممکن است بن بست وجود داشته باشد‪.‬‬
‫مثال‬
‫را در‬ ‫‪ S2‬و‪S3‬‬ ‫و سه نوع من ع قابل استفاده مجدد ‪ S1‬و‬ ‫‪ P1‬و‪ P2‬و‪ P3‬و‪P4‬‬ ‫سیستمی متشکل از هار پردازه‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪157‬‬ ‫سیستم عامل‬

‫نظر بگیرید‪ .‬در وضعیت موجود‪ ،‬کدام یک از پردازه ها در بن بست قرار ندارند؟‬

‫حل‪ :‬تعداد واحدهای هر من ع به ترتیب ‪ 2,2,3‬است‪ P1 .‬یک واحد از من ع ‪ S1‬را در اختیرار دارد و تقاضرای‬
‫یک واحد از ‪ S2‬را کرده است‪ P2 .‬دو واحد از ‪ S2‬را در اختیار دارد و تقاضای یک واحد از ‪ S3‬را کرده اسرت‪.‬‬
‫‪ P3‬یک واحد از ‪ S1‬را در اختیار دارد و تقاضای یرک واحرد از ‪ S2‬را کررده اسرت‪ P4 .‬نیری دو واحرد از ‪ S3‬را‬
‫کره موجرود اسرت را در‬ ‫‪S1‬‬ ‫یرک واحرد از‬ ‫‪P4‬‬ ‫کرده است‪ .‬فرایند‬ ‫‪S1‬‬ ‫دراختیار دارد و تقاضای یک واحد از‬
‫اختیار زرفته و کامل میشود‪ .‬بعد از کامل شدن ‪ ،P4‬منابعی را که در اختیرار داشرت (دو ترا‪ s3‬و یرک‪ )s1‬را‬
‫آزاد می کند‪ .‬سپس فرایند ‪ P2‬کامل میشود‪ ،‬ون منابع درخواستی موجود است‪ .‬بعرد از ‪ P2‬فراینرد ‪ P1‬و‬
‫‪ P3‬کامل میشوند‪ .‬یعنی هیچ فرایندی درحالت بن بست نمیباشد‪.‬‬
‫ازر هر نوع من ع دارای ند نمونه باشد‪ ،‬وجود رخه الیاماً به معنای بن بست نمیباشد‪ .‬یعنی در این‬
‫حالت وجود رخه شرط الزم برای وجود بن بست است ولی شرط کافی نیست‪.‬‬
‫مثال‬
‫سیستمی با ‪ 7‬فرایند و ‪ 6‬من ع مفروض است‪ .‬با توجه به ‪ 7‬درخواست زیر‪ ،‬وضعیت را مشخص کنید؟‬
‫‪1.‬‬ ‫‪Process‬‬ ‫‪A‬‬ ‫‪holds‬‬ ‫‪R and‬‬ ‫‪wants S.‬‬
‫‪2.‬‬ ‫‪Process‬‬ ‫‪B‬‬ ‫‪holds‬‬ ‫‪nothing‬‬ ‫‪and wants T.‬‬
‫‪3.‬‬ ‫‪Process‬‬ ‫‪C‬‬ ‫‪holds‬‬ ‫‪nothing‬‬ ‫‪and wants S.‬‬
‫‪4.‬‬ ‫‪Process‬‬ ‫‪D‬‬ ‫‪holds‬‬ ‫‪U and‬‬ ‫‪wants S and T.‬‬
‫‪5.‬‬ ‫‪Process‬‬ ‫‪E‬‬ ‫‪holds‬‬ ‫‪T and‬‬ ‫‪wants V.‬‬
‫‪6.‬‬ ‫‪Process‬‬ ‫‪F‬‬ ‫‪holds‬‬ ‫‪W and‬‬ ‫‪wants S.‬‬
‫‪7.‬‬ ‫‪Process‬‬ ‫‪G‬‬ ‫‪holds‬‬ ‫‪V and‬‬ ‫‪wants U.‬‬
‫حل‪ :‬زراف منابع زیر است‪:‬‬

‫مشخص می شود که حلقه ‪ DTEVGUD‬وجود دارد‪ .‬بنابراین فرایندهای ‪ B, D,E,G‬در بن بست قرار دارنرد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪158‬‬ ‫سیستم عامل‬

‫اما فرایندهای ‪ A,F,C‬در بن بست نمی باشند‪ ،‬ون من ع ‪ S‬می تواند به هر یک از آنهرا داده شرود و بعرد از‬
‫پایان کار با این من ع‪ ،‬به فرایند دیگر داده شود‪.‬‬
‫روش های رفع بن بست‬
‫روشهای رفع بن بست را می توان به سه زروه عمده تقسیم کرد‪:‬‬
‫پیشگیری(جلوزیری) از بن بست)‪(Prevention‬‬ ‫‪-1‬‬
‫سیستم طوری طراحی شود که از ق ل امکان بن بست از بین برود‪ ،‬یعنی تضمین کنیم که حداقل یکی از هار شرط برن‬
‫بست رخ ندهد‪.‬‬
‫‪ -2‬اجتناب از بن بست )‪(Avoidance‬‬

‫در مورد درخواستهای من ع طوری رفتار شود که حداقل یکی از هار شرط بن بست رخ ندهد‪.‬‬
‫‪ -3‬کشف بن بست )‪(Detection‬‬

‫هرجا که ممکن باشد‪ ،‬منابع درخواستی به فرایندها داده میشود‪ .‬سیسرتم عامرل بره طرور متنراوو الگروریتمی را دن رال‬
‫میکند تا وجود شرط انتظار رخشی را کشف کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪159‬‬ ‫سیستم عامل‬

‫مثال‬
‫‪:(Deadlock‬‬ ‫)‪Detection‬‬ ‫م الی از کاربرد الگوریتم کشف بن بست‬
‫سیستمی با ‪ 3‬فرایند و ‪ 4‬نوع من ع مفروض است‪ .‬تعداد موجود از هر من ع در زیر آمده است‪:‬‬
‫‪Tape drives=4 , Plotters=2 , Printers=3 , CD ROM=1‬‬
‫‪ A=(4‬نشان داده می شود‪.‬‬ ‫)‪2 3 1‬‬ ‫که این موضوع به صورت‬
‫در این سیستم‪ ،‬فرایندها منابع زیر را در اختیار دارند‪:‬‬
‫فرایند اول = یک پرینتر‪ ،‬فرایند دوم= دو ‪ Tape‬و یک ‪ ، CD‬فرایند سوم= یک پالتر و دو پرینتر‬
‫این موضوع با ماتریس زیر نشان داده می شود‪:‬‬
‫‪0 0 1 0 ‬‬
‫‪C  2 0 0 1‬‬
‫‪0 1 2 0‬‬
‫بعد از این تخصیص از هر یک از منابع به تعداد زیر باقی می ماند‪:‬‬
‫‪Tape drives =2 , Plotters=1 , Printers=0 , CD ROM =0‬‬
‫اما فرایندها برای اجرا نیاز به منابع دیگری دارند که در زیر مشخص شده است‪:‬‬
‫فرایند اول=دو ‪ Tape‬و یک ‪ ،CD‬فرایند دوم=یک ‪ Tape‬و یک پرینتر‪،‬‬
‫فرایند سوم=دو ‪Tape‬ویک پالتر‬
‫که این موضوع با ماتریس زیر نشان داده می شود‪:‬‬
‫‪2 0 0 1‬‬
‫‪R  1 0 1 0 ‬‬
‫‪2 1 0 0‬‬
‫با توجه به اطالعات باال‪ ،‬آیا در این سیستم بن بست رخ می دهد؟‬
‫حل‪ :‬فرایند اول نمی تواند اجرا شود‪ ،‬ون نیاز به یک ‪ CD‬دارد که موجود نیست‪ .‬فرایند دوم نیی نمی توانرد‬
‫اجرا شود‪ ،‬ون نیاز به یک پرینتر دارد که موجود نیست‪ .‬ولی فرایند سوم می تواند اجرا شود‪ ،‬رون بره دو‬
‫‪ tape‬و یک پالتر نیاز دارد که موجود است‪ .‬بعد از اجرای فرایند سوم ‪ ،‬منابعی که در اختیار داشته(یک پالتر‬
‫و دو پرینتر)‪ ،‬آزاد شده و تعداد منابع آزاد به صورت زیر در می آید‪:‬‬
‫‪Tape drives =2 , Plotters=2 , Printers=2 , CD ROM =0‬‬
‫در این وضعیت‪ ،‬دو فرایند دیگر می توانند اجرا شوند و بنابراین بن بست رخ نمی دهد‪.‬‬

‫ترمیم‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪16۰‬‬ ‫سیستم عامل‬

‫بعد از کشف بن بست‪ ،‬روشهای زیر برای ترمیم آن وجود دارد‪:‬‬


‫الف‪ -‬قطع تمام فرایندهای بن بست‪.‬‬
‫و‪ -‬برزشت فرایندهای بن بست به نقاطی که از ق ل برای بررسی تعریف شده و شروع مجدد تمام فرایندها‪.‬‬
‫ج‪ -‬قطع پی در پی فرایندهای بن بست تاجایی که دیگر بن بست وجود نداشته باشد‪.‬‬
‫د‪ -‬ق ضه کردن پی درپی منابع تا جایی که دیگر بن بست وجود نداشته باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪161‬‬ ‫سیستم عامل‬

‫روش های پیشگیری از بن بست‬


‫روشهای پیشگیری از بن بست ع ارتند از‪:‬‬
‫الف‪ -‬غیر مستقیم (پیشگیری از بروز یکی از سه شرط الزم اول)‬
‫و‪ -‬مستقیم (پیشگیری از بروز شرط هارم)‬

‫روشهای پیشگیری برای هر یک از چهار شرط بن بست‬


‫‪ -1‬نگهداری و انتظار‬
‫برای پیشگیری از رخ دادن این شرط‪ ،‬باید فرایند را مج ور کرد تا همه منابع مرورد نیراز را یک راره درخواسرت کنرد و ترا‬
‫زمانی که همه منابع به او داده نشود‪ ،‬فرایند را مسدود کرد‪.‬‬
‫‪ -2‬انحصاری بودن (قبضه نکردن)‬
‫برای پیشگیری از بروز این شرط دو راه پیشنهاد شده است‪:‬‬
‫الف‪ -‬ازر فرایندی منابعی را در اختیار دارد‪ ،‬درخواست جدیدد موافقت نشود‪ .‬در این حالت باید منابع ق لی خود را آزاد‬
‫کند و در صورت نیاز‪ ،‬مجدداً با منابع اضافی درخواست نماید‪.‬‬
‫و‪ -‬ازر فرایندی من عی را درخواست کند که در اختیار فرایند دیگرر اسرت‪ ،‬سیسرتم عامرل آن فراینرد را ق ضره کررده و‬
‫منابعش را آزاد کند‪(.‬ال ته فرایندها ن اید اولویت یکسان داشته باشند‪).‬‬

‫‪ -3‬انحصار متقابل‬
‫منابع غیرقابل اشتراک باید انحصاری باشند و نمیتوان این شرط را رد کرد‪ .‬به طور نمونه یک راپگر نمیتوانرد همیمران‬
‫بین ند فرایند مشترک باشد‪ .‬و یا به یک فایل نمی توان توسط ند فرایند جهت نوشتن دسترسی پیدا کرد‪.‬‬

‫‪ -4‬انتظار چرخشی‬
‫برای پیشگیری از بروز این شرط‪ ،‬یک ترتیب خطی از انواع منابع تعریف میکنیم‪ .‬ازر من عری از نروع ‪ R‬بره یرک فراینرد‬
‫تخصیص یابد‪ ،‬در ادامه تنها منابعی را میتواند درخواست کند که نوع آنها بعد از ‪ R‬قرار زرفته باشد‪ .‬م الً ازرر ‪ i<j‬آنگراه‬
‫‪ Ri‬ق ل از ‪ Rj‬است‪ .‬ازر فرایند ‪ P1‬من ع ‪ Ri‬را در اختیار داشته باشرد و ‪ Rj‬را تقاضرا کنرد و فراینرد ‪ P2‬من رع ‪ Rj‬را در‬
‫اختیار داشته باشد و ‪ Ri‬را تقاضا کند‪ ،‬این حالت غیر ممکن است ون مستلیم ‪ i<j‬و ‪ j<i‬می باشد‪.‬‬

‫پیشگیری از شرط انتظار رخشی‪ ،‬ممکن است موجب کند کردن فرایندها و رد کرردن غیرر ضرروری‬
‫دسترسی به منابع زردد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪162‬‬ ‫سیستم عامل‬

‫روش های اجتناب از بن بست‬


‫برای اجتناو از بن بست دو رویکرد وجود دارد‪:‬‬
‫‪ -1‬عدم شروع فرایندی که ممکن است درخواست هایش منجر به بن بست شود‪.‬‬
‫‪ -2‬عدم پاسخ به درخواست های من ع اضافی از طرف فرایندی که با این تخصیص ممکن است منجرر بره‬
‫بن بست شود‪( .‬الگوریتم بانکداران)‬

‫در اجتناو از بن بست‪ ،‬تصمیمزیری زیر بصورت پویا انجام میشود‪:‬‬


‫" ازر من ع درخواست شده‪ ،‬تخصیص داده شود‪ ،‬آیا میتواند منجر به بن بست شود یا نه "‪.‬‬
‫یعنی اجتناو از بن بست نیازمند اطالع از درخواستهای آینده است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪163‬‬ ‫سیستم عامل‬

‫محدودیت های اجتناب از بن بست‬


‫‪ -1‬تعداد منابع تخصیص باید ثابت باشد‪.‬‬
‫‪ -2‬فرایندی که من عی در اختیار دارد نمی تواند خارج شود‪.‬‬
‫‪ -3‬حداک ر منابع مورد نیاز هر فرایند باید از ق ل معلوم شود‪.‬‬
‫‪ -4‬فرایندهای مورد نظر باید مستقل باشند‪.‬‬

‫امتیاز اجتناو از بن بست این است که ق ضه کردن فرایند‪ ،‬الزم نمیباشد‪(.‬بر خالف کشف)‬
‫حالت امن‪ ،‬حالتی است که در آن حداقل یک ترتیب از فرایندها وجود دارد که میتوانند اجرا و کامرل‬
‫شوند‪ ،‬بدون اینکه بن بست رخ دهد‪.‬‬
‫وضعیت بن بست‪ ،‬یک وضعیت ناامن است‪،‬اما تمام وضعیت های ناامن‪،‬الیما ‪،‬بن بسرت تیسرتند‪ ،‬رون‬
‫ممکن است یک فرایند به حداک ر منابع اد نیاز پیدا کند و یا حتی بخشی از منرابع تخصریص یافتره‬
‫اد را آزاد کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪164‬‬ ‫سیستم عامل‬

‫الگوریتم بانکداران‬
‫در این الگوریتم که برای اجتناو از بن بست استفاده می شود از بردارها (آرایره یرک بعردی) و ماتریسرهای‬
‫(آرایه دو بعدی) زیر استفاده می شود‪:‬‬
‫‪ -1‬بردار ‪ : Resource‬شامل مقدار کل هر یک از منابع‪.‬‬
‫‪ -2‬بردار ‪ : Available‬شامل مقدار کل هر یک از منابعی که موجود است (تخصیص داده نشده)‬
‫‪ -3‬ماتریس ‪( Claim‬حداک ر نیاز)‪ :‬شامل درخواستهای فرایندها‪.‬‬
‫‪ -4‬ماتریس ‪ : Allocation‬شامل منابع تخصیص داده شده به فرایندها‪.‬‬
‫مثال ‪14-5‬‬
‫)‪(Resource:R1=9,R2=3,R3=6‬‬ ‫در سیستم زیر با هار فرایند و سه من ع آیا حالت امن وجود دارد؟‬

‫‪R1‬‬ ‫‪R2‬‬ ‫‪R3‬‬ ‫‪R1‬‬ ‫‪R2‬‬ ‫‪R3‬‬


‫‪P1‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪P1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P2‬‬ ‫‪6‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪P2‬‬ ‫‪6‬‬ ‫‪1‬‬ ‫‪2‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪P3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪P4‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬

‫‪Claim‬‬ ‫‪Allocation‬‬

‫حل‪:‬‬
‫‪R3‬‬ ‫با توجه به ماتریس ‪ ، Allocation‬مشخص می شود که تعداد نره من رع ‪ ، R1‬دو من رع ‪ ، R2‬پرنج من رع‬
‫تخصرریص داده شررده انررد‪ .‬بنررابراین بررا توجرره برره منررابع اولیرره‪ ،‬منررابع بعررد از تخصرریص برره صررورت‬
‫بدست‬ ‫‪Allocation‬‬ ‫)‪ (R1=0,R2=1,R3=1‬می باشد‪ .‬سپس ماتریس ‪ NEED‬را از تفاضل دو ماتریس ‪ Claim‬و‬
‫می آوریم‪:‬‬
‫‪ R1‬فرایند‬ ‫‪R2‬‬ ‫‪R3‬‬
‫‪P1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬
‫‪P2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪P3‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪3‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬

‫فراینرد‪P1‬‬ ‫حال با توجه به ماتریس ‪ NEED‬و تعداد منابع آزاد بعد از تخصیص‪ ،‬مشاهده می شود که اجررای‬
‫در حال حاضر ممکن نیست‪ ،‬ون هیچ من ع ‪ R1‬آزادی نداریم‪ .‬ولی منابع مورد نیاز ‪ P2‬موجود است‪ .‬بعد از‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪165‬‬ ‫سیستم عامل‬

‫اجرای ‪ ،P2‬منابعی که در اختیار داشته آزاد شده و به ‪ Available‬اضافه می کند‪:‬‬

‫‪3 2 2‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪3‬‬


‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪Available‬‬
‫‪3 1 4‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪4 2 2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬

‫‪Claim‬‬ ‫‪Allocation‬‬

‫‪P1‬‬ ‫توجه شود که بعد از اجرای ‪ ،P2‬سطر مربوط به فرایند ‪ P2‬در هر دو ماتریس‪ ،‬صفر شدند‪ .‬در این حالرت‬
‫میتواند اجرا شود‪ .‬بعد از اجرای ‪،P1‬منابع در اختیار او به بردار ‪ Available‬اضافه می شود‪:‬‬

‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪3‬‬

‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪Available‬‬

‫‪3 1 4‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪4 2 2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬

‫‪Claim‬‬ ‫‪Allocation‬‬

‫و بعد از اجرای ‪ P3‬داریم‪:‬‬


‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪9‬‬ ‫‪3‬‬ ‫‪4‬‬

‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪Available‬‬

‫‪0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫‪4 2 2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬

‫‪Claim‬‬ ‫‪Allocation‬‬

‫در نهایت ‪ P4‬اجرا می شود و بردار ‪ Availble‬مانند بردار ‪ Resorce‬خواهد شد‪.‬‬


‫بنابراین می توان ترتیب زیر را یک حالت امن سیستم نام برد‪:‬‬

‫‪P2  P1  P3  P4‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪166‬‬ ‫سیستم عامل‬

‫هریک از روشهای برخورد با بن بست (پیشرگیری‪،‬اجتناو و کشرف) دارای میایرا و معرای ی هسرتند‪.‬‬
‫بنابراین بهتر است از روشهای متفاوتی در شرایط متفاوت استفاده کرد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪167‬‬ ‫سیستم عامل‬

‫خالصه رویکردها‬
‫در رابطه با سه رویکرد پیشگیری‪ ،‬کشف و اجتناو طرحهای مختلفی ارائه شده که در جدولهای زیر بررسی‬
‫شده اند‪:‬‬
‫اجتناب‬
‫معایب‬ ‫مزایا‬ ‫طرح‬
‫دسرررتکاری بررررای یرررافتن عرردم نیرراز برره ق ضرره ضرورت اطالع از منابع مرورد نیراز‬
‫آینده‬ ‫کردن‬ ‫حداقل یک مسیر امن‬
‫امکرران مسرردود شرردن طرروالنی‬
‫فرایندها‬

‫کشف‬
‫معایب‬ ‫مزایا‬ ‫طرح‬
‫عدم تاخیر در آغاز فرایند ضررررهای ذاترری ق ضرره‬ ‫احضار دوره ای برای بررسی بن‬
‫تسهیل پردازد در حرین کردن‬ ‫بست‬
‫کار‬

‫پیشگیری‬
‫معایب‬ ‫مزایا‬ ‫طرح ها‬
‫درخواست یک راره در مورد فرایندهایی که فعالیت شایعی را انجام مری نا کارآمدی‬
‫دهند خوو کار می کند‪.‬‬ ‫تمام من ع‬
‫تاخیر شروع فرایند‬ ‫عدم نیاز به ق ضه کردن‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪168‬‬ ‫سیستم عامل‬

‫سهولت بکارزیری منابعی که بتوان وضرعیت آنهرا را ق ضه کردن بریش از تعرداد‬ ‫ق ضه کردن‬
‫الزم‬ ‫به سادزی ذخیره کرد‪.‬‬
‫در معرررض شررروع شرردنهای‬
‫مجدد مدور‬

‫ق ضه کردن نه ندان مفید‬ ‫مرتب کردن منابع امکان اعمال کنترلهای زمان ترجمه‬
‫عدم نیاز به محاس ه در زمان اجرا ‪ ،‬به دلیرل اینکره اجازه نردادن بره درخواسرت‬
‫منابع به صورت افیایشی‬ ‫مساله در طرح سیستم حل شده است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪169‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫(مهندسی ‪ – IT‬دولتی ‪)88‬‬


‫‪ -1‬سیستمی با ‪ 3‬فرایند و ‪ 2‬فایل ‪ read-only‬را در نظر بگیرید‪ .‬با فرض اینکه هر فرایند حرداک ر بره خوانردن ‪ 2‬فایرل نیراز‬
‫داشته باشد‪ ،‬تعداد وضعیت های بن بست )‪ (Deadlock‬حداک ر برابر کدام است؟‬
‫‪5 )4‬‬ ‫‪4 )3‬‬ ‫‪3 )2‬‬ ‫‪0 )1‬‬
‫حل‪ :‬زیینه ‪ 1‬درست است‪.‬‬
‫ون فایل فقط خواندنی است‪ ،‬شرط انحصار متقابل برای آن مطرح ن وده و هرزی بن بست رخ نمی دهد‪.‬‬

‫(مهندسی کامپیوتر– آزاد ‪)89‬‬


‫‪ -2‬سیستمی شامل ‪ 4‬فرایند همروند و ‪ 2‬من ع یکسان قابل استفاده مجدد را در نظرر بگیریرد بره شررط آن کره هرر فرآینرد‬
‫حداک ر به ‪ 2‬من ع نیاز داشته باشد‪ ،‬تعداد وضعیت های بن بست )‪ (deadlock states‬در این سیستم به خاطر من ع مرذکور‬
‫حداک ر ند حالت می باشد؟‬
‫‪6‬‬ ‫‪)4‬‬ ‫‪0‬‬ ‫‪)3‬‬ ‫‪5‬‬ ‫‪)2‬‬ ‫‪10‬‬ ‫‪)1‬‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫‪ 4‬‬ ‫!‪4‬‬
‫‪  ‬‬ ‫‪6‬‬
‫!‪ 2  2!2‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪17۰‬‬ ‫سیستم عامل‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)84‬‬


‫‪ -3‬ازر زراف بن بست زیر نمایش لحظهای درخواستهای منابع و نیی تملک منابع توسط سه فرایند ‪ P1‬و ‪ P2‬و ‪ P3‬باشرد و‬
‫در صورتی که فقط با اتمام یک فرایند‪ ،‬منابع تملک شده توسط آن فرایند آزاد شوند‪ ،‬آن زاه ترتیب اتمام فراینردها از راسرت‬
‫به پ کدام است؟‬

‫‪P3‬‬ ‫‪ P1 )2‬و ‪ P2‬و‬ ‫‪P2‬‬ ‫‪ P1 )1‬و ‪ P3‬و‬


‫‪ )4‬هیچ کدام‪ .‬زیرا سیستم در وضعیت بن بست فرار دارد‪.‬‬ ‫‪P3‬‬ ‫‪ P2 )3‬و ‪ P1‬و‬
‫حل‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫من ع سمت پ باال را ‪ R1‬و من ع سمت راست باال را ‪ R2‬و من رع پرایین را ‪ R3‬مری نرامیم‪ .‬دو نمونره من رع ‪ R1‬در اختیرار‬
‫فرایندهای ‪ P1‬و ‪ P3‬می باشد‪ .‬فرایند ‪ P2‬و ‪ P3‬نمی تواند ابتدا اجرا شوند‪ ،‬ون من ع درخواستی آنها آزاد نیست‪ .‬امرا ‪ P1‬یرک‬
‫نمونه از ‪ R2‬را که آزاد است زرفته و اجرا می شود‪ .‬بعد از پایان اجرایش‪ ،‬من ع ‪ R1‬که در اختیار داشت را رها کررده و ‪ P2‬برا‬
‫زرفتن آن اجرا می شود‪ .‬بعد از پایان اجرایش‪ ،‬من ع ‪ R3‬که در اختیارد بود را آزاد کرده و ‪ P3‬با زرفتن یک نمونره از ‪R3‬‬
‫اجرا می شود‪ .‬بنابراین ‪ P2 ، P1‬و در نهایت ‪ P3‬اجرا می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪171‬‬ ‫سیستم عامل‬

‫(مهندسی ‪– IT‬دولتی ‪)87‬‬


‫‪ -4‬ازر در سیست م عاملی به هر من ع یک شماره اولویت منحصر به فردی اختصاص داده شود و از پردازد درخواست معینری‬
‫با اولویت کمتر یا مساوی اولویت من ع ‪ hold‬شده توسط همان فرایند ممانعت به عمل آیرد‪ ،‬کردام یرک از زیینره هرای زیرر‬
‫صحیح است؟‬
‫‪ )1‬این رود از بن بست جلوزیری می کند ولی احتمال زرسنگی وجود دارد‪.‬‬
‫‪ )2‬این رود موسوم به درخواست افیایش است و جهت پیشگیری از بن بست به کار می رود‪.‬‬
‫‪ )3‬این رود م تنی بر کشف بن بست و بدین ترتیب عامل های بن بست تشخیص داده می شوند‪.‬‬
‫‪ )4‬این رود موسوم به درخواست افیایش است و به صورت دینامیکی از بن بست اجتناو می کند‪.‬‬
‫حل‪ :‬جواو زیینه ‪ 2‬است‪.‬‬

‫(مهندسی ‪– IT‬دولتی ‪)84‬‬


‫‪ -5‬برای پیشگیری از بن بست از طریا شرط انتظار رخشی‪ ،‬رود م تنی بر شماره زذاری همه منابع و الریام فراینردها بره‬
‫درخواست منابع به ترتیب عددی (م ال صعودی)‪ ،‬پیشنهاد شده است‪ .‬در پیاده سازی آن با ه مشکلی روبررو خرواهیم شرد؟‬

‫‪ )1‬منابع سیستم را هدر می دهد‪.‬‬


‫‪ )2‬نیاز به پیش بینی آینده دارد‪.‬‬
‫‪ )3‬همه منابع قابل ‪ Spool‬نیست و خود فضای ‪ Spool‬بر روی دیسک نیی موجب بن بست می شود‪.‬‬
‫‪ )4‬هر دو مورد ‪1‬و‪ 2‬صحیح است‪.‬‬
‫حل‪ :‬جواو زیینه ‪ 4‬است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪172‬‬ ‫سیستم عامل‬

‫(مهندسی ‪ – IT‬دولتی ‪)84‬‬


‫‪ -6‬تحت سیستم عاملی ‪ 4‬فرایند فعال و ‪ 2‬من ع مدیریت می شود‪ .‬وضعیت سیستم تحت جدول ذیل بیان شده است‪ .‬حالرت‬
‫سیستم یست؟ منابع در دسترس ع ارتند از‪( R1  2, R2  1) :‬‬

‫‪R1‬‬ ‫‪R2‬‬ ‫‪R1‬‬ ‫‪R2‬‬

‫‪P1‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪P1‬‬ ‫‪9‬‬ ‫‪5‬‬

‫‪P2‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪P2‬‬ ‫‪2‬‬ ‫‪6‬‬

‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪P3‬‬ ‫‪2‬‬ ‫‪2‬‬

‫‪P4‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪P4‬‬ ‫‪5‬‬ ‫‪0‬‬


‫مقادیر اختصاص داده‬
‫حداک ر نیاز‬
‫شده‬
‫‪ )2‬نا امن‬ ‫‪ )1‬امن‬
‫‪ )4‬بستگی دارد ه فرایندی ه من عی را تقاضا کند‪.‬‬ ‫‪ )3‬به طور قاطع نمی توان پیش بینی کرد‪.‬‬
‫حل‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫با تفاضل دو ماتریس داده شده‪ ،‬ماتریس ‪ Need‬به صورت زیر مشخص می شود‪:‬‬

‫‪R1‬‬ ‫‪R2‬‬

‫‪P1‬‬ ‫‪2‬‬ ‫‪3‬‬

‫‪P2‬‬ ‫‪1‬‬ ‫‪3‬‬

‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪P4‬‬ ‫‪2‬‬ ‫‪0‬‬

‫با توجه به ماتریس ‪ need‬و منابع در دسترس یعنی )‪ ، ( R1  2, R2  1‬مشخص است که ‪ P1‬یا ‪ P2‬نمی توانند اجرا شوند‪ ،‬ون بره‬
‫سه ‪ R2‬نیاز دارند در حالی که فقط یکی موجود است‪ .‬اما ‪ P3‬می تواند اجرا شود‪ .‬بعد از اجرای ‪ ، P3‬منابعی که در اختیار داشته را آزاد‬
‫می کند و منابع در دسترس )‪ ( R1  3, R2  2‬می شوند‪ .‬بعد از اجرای ‪ ، P3‬باز هم ‪ P1‬یا ‪ P2‬نمی توانند اجرا شوند‪ ،‬ون باز هم‬
‫سه ‪ R2‬نداریم‪ .‬بنابراین ‪ P4‬را اجرا می کنیم‪ .‬بعد از اجرای ‪ ، P4‬منابع در دسترس )‪ ( R1  6, R2  2‬خواهد شرد‪ ،‬براز هرم نمری‬
‫توان ‪ P1‬یا ‪ P2‬را اجرا کرد‪ .‬در نتیجه سیستم در وضعیت نا امن قرار دارد‪.‬‬

‫(مهندسی ‪ – IT‬آزاد ‪)89‬‬


‫‪ -7‬وضعیت زیر یک وضعیت‪.........‬بردار منابع‪)A=5,B=5,C=2,D=4) :‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪173‬‬ ‫سیستم عامل‬

‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬


‫‪P1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪P1‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪P2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P4‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪P4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪P5‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪P5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬

‫ماتریس حداک ر نیاز‬ ‫ماتریس تخصیص‬


‫‪ )4‬زرسنگی است‪.‬‬ ‫‪ )3‬نا امن است‪.‬‬ ‫‪ )2‬بن بست است‪.‬‬ ‫‪ )1‬امن است‪.‬‬
‫حل‪ :‬جواو زیینه ‪ 1‬است‪.‬‬
‫با تفاضل دو ماتریس داده شده‪ ،‬ماتریس ‪ Need‬به صورت زیر مشخص می شود‪:‬‬
‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬
‫‪P1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪P4‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪P5‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬

‫با توجه به ماتریس ‪ need‬و منابع در دسترس یعنی )‪ ، ( A  5, B  5, C  2, D  4‬مشخص است که تعداد منابع به‬
‫اندازه ای است که می توان به هر یک از فرایندها به هر ترتی ی اختصاص داد‪ .‬در نتیجه سیستم امن است‪.‬‬
‫یکی از این ترتیب ها‪:‬‬
‫‪ P1 -1‬اجرا شده و بعد از پایان اجرایش منابع در دسترس برابر خواهند بود‪:‬‬
‫)‪( A  7, B  6, C  3, D  8‬‬
‫‪ P2 -2‬اجرا شده و بعد از پایان اجرایش منابع در دسترس برابر خواهند بود‪:‬‬
‫)‪( A  7, B  6, C  3, D  10‬‬
‫‪ P3 -3‬اجرا شده و بعد از پایان اجرایش منابع در دسترس برابر خواهند بود‪:‬‬
‫)‪( A  8, B  7, C  4, D  11‬‬
‫‪ P4 -4‬اجرا شده و بعد از پایان اجرایش منابع در دسترس برابر خواهند بود‪:‬‬
‫)‪( A  10, B  7, C  4, D  13‬‬
‫‪ P5 -5‬اجرا شده و بعد از پایان اجرایش منابع در دسترس برابر خواهند بود‪:‬‬
‫)‪( A  10, B  8, C  4, D  13‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
174 ‫سیستم عامل‬

6 ‫فصل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪175‬‬ ‫سیستم عامل‬

‫مدیریت حافظه‬

‫حافظه‪،‬آرایه بیرزی از کلمات یا بایت ها است‪ .‬یکی از وظایف سیستم عامل‪ ،‬مدیریت حافظه است‪ .‬مدیریت‬
‫حافظه‪ ،‬در سیستم ند برنامه ای باید بسیار کارآمد باشد و حافظه به نحوی باید تخصیص یابد که‬
‫فرایندهای بیشتری در آن قرار بگیرند‪.‬‬
‫انواع حافظه ع ارتند از‪ :‬ث ات‪ ،‬حافظه نهان‪ ،‬حافظه اصلی‪ ،‬حافظه دیسک که در فصل اول بررسی شدند‪.‬‬
‫مدیریت ث ات بر عهده کامپایلر‪ ،‬مدیریت حافظه نهان‪ ،‬سخت افیاری‪ ،‬مدیریت حافظه اصلی و مدیریت‬
‫حافظه دیسک بر عهده سیستم عامل است‪.‬حافظه هایی که مدیریت آنها بر عهده سیستم عامل است را در‬
‫این فصل و فصل های بعد بررسی خواهیم کرد‪.‬‬

‫مدیریت حافظه ابتدایی‬


‫از آنجا که در بعضی سیستم های امروزی‪ ،‬از طرح های ساده مدیریت حافظه‪ ،‬استفاده می شود‪ ،‬این طرح‬
‫ها را مطالعه می کنیم‪.‬‬
‫تک برنامگی ساده‬
‫ساده ترین طرح مدیریت حافظه این است که در هر لحظه‪ ،‬فقط یک برنامه در حال اجرا باشد‪ .‬امروزه از‬
‫طرح تک برنامگی بیشتر در سیستم های توکار استفاده می شود‪.‬‬
‫سه مدل سازماندهی حافظه شامل یک سیستم عامل و یک فرایند کاربر ع ارتند از‪:‬‬
‫‪ -1‬سیستم عامل در پایین حافظه و در ‪ RAM‬باشد‪.‬‬
‫‪ -2‬سیستم عامل در باالی حافظه و در ‪ ROM‬باشد‪.‬‬
‫‪ROM‬‬ ‫باشد‪ .‬زرداننده های دستگاه در باالی حافظه و در‬ ‫‪RAM‬‬ ‫‪ -3‬سیستم عامل در پایین حافظه و در‬
‫باشند‪( .‬در ‪ MS-DOS‬از این مدل استفاده می شود‪).‬‬
‫از معایب مدیریت حافظه به رود تک برنامگی‪ ،‬اتالف شدید حافظه و سایر منابع است‪ .‬همچنین‬
‫امکان اجرای فرایند بیرزتر از حافظه اصلی وجود ندارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪176‬‬ ‫سیستم عامل‬

‫چند برنامگی با پارتیشن ثابت و بدون مبادله‬


‫پارتیشن تقسیم کرد‪ .‬اندازه این پارتیشن ها می تواند‬ ‫‪n‬‬ ‫برای اجرای ندبرنامگی می توان حافظه را به‬
‫یکسان ن اشد‪.‬وقتی کاری وارد می شود‪ ،‬در یک صف ورودی قرار می زیرد تا در کو کترین پارتیشنی که‬
‫در آن جا می شود‪ ،‬قرار داده شود‪ .‬مقداری از پارتیشن که توسط کار درون آن استفاده نمی شود‪ ،‬هدر می‬
‫رود که به آن حفره )‪ (Hole‬می زویند‪.‬‬
‫در یک سیستم با پارتیشن ثابت‪ ،‬هر پارتیشن می تواند‪ ،‬صف مربوط به خود را داشته باشد و یا یک صف‬
‫مشترک برای همه پارتیشن ها در نظر زرفت‪ .‬در حالت اول‪ ،‬ممکن است صف مربوط به یک پارتیشن بیرگ‬
‫خالی باشد‪ ،‬در صورتی که صف مربوط به یک پارتیشن کو ک پر شده باشد‪.‬‬
‫مدیریت حافظه به رود پارتیشن بندی ایستا‪ ،‬امکان ایجاد ندبرنامگی با یک تکنیک ساده را فراهم می‬
‫کند و در مقایسه با تک برنامگی از حافظه و پردازنده بهتر استفاده می شود‪ .‬اما دارای معایب زیر است‪:‬‬
‫‪ -1‬تعیین تعداد و اندازه پارتیشن ها‪ ،‬مشکل است‪.‬‬
‫‪ -2‬درجه ند برنامگی به تعداد پارتیشن ها محدود است‪.‬‬
‫‪ -3‬نمی توان فرایند بیرزتر از بیرزترین پارتیشن را اجرا کرد‪.‬‬
‫‪ -4‬نمی توان یک فرایند را دو تکه کرد و در دو پارتیشن مجیا قرار داد‪.‬‬
‫‪ -5‬اتالف حافظه به علت بارزذاری قسمت هایی از یک فرایند بیرگ که فعال به آنها نیاز نیست‪.‬‬
‫‪ -6‬تکه تکه شدن داخلی‬
‫تذکر‪ :‬به این علت به این تکه تکه شدن‪ ،‬داخلی می زویند که از حفره داخلل فضرای تخصریص یافتره بره‬
‫فرایند ناشی می شود‪.‬‬
‫جا به جایی و حفاظت‬
‫در ندبرنامگی دو مشکل جا به جایی و حفاظت رخ می دهد که باید حل شوند‪.‬‬
‫جا به جایی)‪(Relocation‬‬

‫وقتی که برنامه اصلی با زیر برنامه های نوشته شده توسط کاربر و رویره هرای کتابخانره ای در یرک فضرای‬
‫آدرس ترکیب می شوند‪ ،‬مشکلی که به وجود می آید این است که پیوند دهنده از کجرا بایرد بدانرد کره آن‬
‫برنامه در زمان اجرا از ه آدرسی در حافظه شروع می شود‪ .‬برای حل این مشکل‪ ،‬سیستم عامل و سرخت‬
‫افیار باید بتوانند مراجعات به حافظه را که در کد برنامه مطرح مری شروند را بره آدرس هرای فیییکری کره‬
‫منعکس کننده مکان فعلی برنامه در حافظه اصلی هستند‪ ،‬ت دیل کند‪ .‬یک راه حل نرم افیاری این است که‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪177‬‬ ‫سیستم عامل‬

‫در همان زمان لود برنامه در حافظه‪ ،‬دستورات برنامه دستکاری شده و آدرس ها اصالح شوند‪.‬‬
‫حفاظت )‪(Protection‬‬

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

‫راه حل سخت افزاری دو مشکل حفاظت و جا به جایی‬


‫می توان از دو رجیستر پایه)‪ (Base‬و حد)‪ (Limit‬واقع در ‪ MMU‬بررای حرل ایرن دو مشرکل اسرتفاده کررد‪.‬‬
‫‪Limit‬‬ ‫هنگامی که پردازنده به فرایندی داده می شود‪ ،‬آدرس شروع پارتیشن در ‪ Base‬و طرول پارتیشرن در‬
‫قرار می زیرد‪ .‬برای جلوزیری از مشکل جا به جایی‪ ،‬هر آدرس حافظه ای که تولید می شود‪ ،‬ق ل از ارسرال‬
‫به حافظه‪ ،‬مقدارد به صورت خودکار با محتوای ‪ Base‬جمع می شود‪ .‬برای مشکل حفاظرت‪ ،‬آدرس هرا برا‬
‫محتوای ‪ Limit‬مقایسه می شوند تا به فضای خارج از پارتیشن دسترسی نشود‪.‬‬
‫ازر ث ات پایه حاوی ‪ 100‬و ث ات حد شامل ‪ 20‬باشد‪ ،‬آن زاه برنامه می تواند به آدرسرهایی از ‪ 100‬ترا خرود‬
‫‪ ، 120‬دستیابی داشته باشد‪.‬‬

‫مبادله )‪(swapping‬‬
‫در سیستم های اشتراک زمانی در زاهی اوقات نمی توان همه فرایندهای فعال را در حافظه اصلی جرای داد‬
‫و باید فرایندهای اضافی به دیسک منتقل شده و بعدا به صورت پویا به داخرل حافظره آورده شروند‪ .‬م ادلره‬
‫(پارتیشن بندی پویا)‪ ،‬ساده ترین روشی است که اجازه م ادله بین حافظره و دیسرک را مری دهرد‪ .‬در ایرن‬
‫رود هر فرایند به طور کامل به حافظه اصلی آورده می شرود)‪ (Swap in‬و بعرد از مردتی اجررا‪ ،‬بره دیسرک‬
‫برزردانده می شود)‪.(Swap out‬‬
‫م ال در یک محیط ند برنامه ای که از الگوریتم زمان ندی ‪ RR‬استفاده می کند‪ ،‬وقتی هر فرایندی کوانتوم‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪178‬‬ ‫سیستم عامل‬

‫زمانی خودد را تمام می کند‪ ،‬با فرایند دیگری م ادله می شود‪.‬‬


‫‪A‬‬ ‫شکل زیر نحوه عملکرد سیستمی را نشان می دهد که بر اساس م ادله کار می کند‪ .‬در ابتدا فقط فراینرد‬
‫‪D‬‬ ‫در حافظه است و سپس فرایندهای ‪ B‬و ‪ ،C‬وارد حافظه شده اند‪ .‬سپس فراینرد ‪ ، A‬خرارج شرده و بعرد‬
‫وارد شده و سپس ‪ B‬خارج شده است‪ .‬در انتها‪ ،‬فرایند ‪ E‬وارد شده است‪.‬‬

‫ازر انقیاد در زمان اسم ل یا بار کردن باشد‪ ،‬وقتی فرایندی از حافظه بیرون رفت‪ ،‬هنگام برزشت به حافظه‪،‬‬
‫در همان فضای ق لی بر می زردد‪ .‬ازر انقیاد در زمان اجرا صورت زیرد‪ ،‬فرایند در محلری غیرر از محرل اول‬
‫قرار می زیرد‪ ،‬زیر آدرسهای فیییکی در زمان اجرا محاس ه می شوند‪.‬‬
‫در پارتیشن بندی پویا‪ ،‬تعداد‪ ،‬موقعیت و اندازه پارتیشن ها متفاوت است‪ .‬ایرن انعطراف پرذیری باعرث‬
‫به ود بهره وری حافظه می شود‪.‬‬

‫تخصیص و آزاد سازی حافظه در پارتیشن بندی پویا‪ ،‬پیچیده تر از پارتیشن بندی ایستا است‪.‬‬
‫در پارتیشن بندی پویا‪ ،‬به خاطر م ادله‪ ،‬حفره های متعددی در حافظه به وجود می آید کره باعرث در‬
‫رفتن حافظه می شود‪ .‬به این مشکل‪،‬تکه تکه شدن خارجی می زویند‪ .‬علت اینکه به آن خرارجی مری‬
‫زویند این است که تکه تکه شدن از حفه خارج فضای تخصیص یافته به فرایندها ناشی می شود‪.‬‬

‫برای مقابله با تکه تکه شدن خارجی از فشرده سرازی )‪ (Compaction‬میتروان اسرتفاده کررد‪ .‬در ایرن‬
‫رود‪ ،‬حفره های کو ک با یکدیگر ادغام می شوند تا یک بلوک بیرگ از حافظه را ایجاد کننرد‪ .‬سراده‬
‫ترین الگوریتم فشرده سازی این است که تمام حفره ها را به یک طرف برده و حفره بیرزری از حافظره‬
‫آزاد تشکیل می شود‪ .‬ولی این رود هیینه زیادی دارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪179‬‬ ‫سیستم عامل‬

‫وقتی که حافظه به صورت پویا تخصیص داده می شود‪ ،‬سیستم عامل باید بداند که کدام بخرش حافظره در‬
‫هر لحظه‪ ،‬تخصیص داده شده و کدام بخش آزاد است‪ .‬برای این منظور‪ ،‬دو رود وجود دارد‪:‬‬

‫‪ -1‬مدیریت حافظه با نگاشت های بیتی‬


‫نگاشت بیتی)‪ (Bitmap‬راه حلی را ارائه می دهد تا بتوان به سادزی و با استفاده از مقردار ثرابتی از حافظره‪،‬‬
‫وضعیت پر و خالی بودن کلمات حافظه را تحت نظر داشت‪ .‬در این رود‪ ،‬حافظه به ندین واحد تخصریص‬
‫‪0‬‬ ‫تقسیم می شود‪ .‬متناظر با هر واحد تخصیص‪،‬یک بیت وجود دارد‪ .‬ازر واحد متناظر آزاد باشد‪ ،‬ایرن بیرت‬
‫است و در صورت پر بودن‪ 1 ،‬است‪.‬‬
‫مثال‬
‫سیستمی از الگوریتم مدیریت حافظه نگاشت بیتی )‪ (Bitmap‬به صورت زیر استفاده میکند‪:‬‬
‫‪11001011,00000111‬‬
‫هر بیت نشان دهنده فضای پر )‪ (l‬یا خالی )‪ (0‬به ازاء هر ‪ 4KB‬حافظه اصلی است‪ .‬لیست حفره ها به ه صورت است؟‬
‫پاسخ‪:‬‬
‫با نگاه به ‪ bitmap‬داده شده از پ به راست‪ ،‬سه دسته صفر داریم ‪:‬‬
‫‪11001011, 00000111‬‬
‫‪ -1‬دسته اول‪ :‬دو صفر (‪)8KB‬‬
‫‪ -2‬دسته دوم‪ :‬یک صفر )‪(4KB‬‬

‫‪ -3‬دسته سوم‪ :‬پنج صفر (‪)20KB‬‬


‫بنابراین لیست حفره ها برابر است با‪. 8,4,20 :‬‬

‫هر ه واحد تخصیص کو کتر باشد‪ ،‬نگاشت بیتی بیرزتر خواهد بود‪ .‬در مقابل‪ ،‬ازرر واحرد تخصریص‬
‫بیرگ انتخاو شود‪ ،‬نگاشت بیتی کو کتر خواهد بود‪.‬‬

‫ازر اندازه فرایند‪ ،‬ضری ی از اندازه واحد تخصیص ن اشد‪ ،‬در آخرین واحد مقداری از حافظره هردر مری‬
‫رود‪.‬‬

‫برای انتقال یک فرایند به حافظه که به ‪ k‬واحد فضرا نیراز دارد‪ ،‬مردیر حافظره بایرد در نگاشرت بیتری‬
‫جستجو کرده و ‪ k‬بیت متوالی ‪ 0‬را پیدا کند‪ .‬این عمرل بسریار کنرد اسرت و باعرث مخالفرت از طررح‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪18۰‬‬ ‫سیستم عامل‬

‫‪ Bitmap‬می باشد‪.‬‬

‫‪ -2‬مدیریت حافظه با لیست های پیوندی‬


‫در این رود‪،‬یک لیست پیوندی از قطعه های آزاد یا تخصیص یافته حافظه تشکیل می شرود‪ .‬مییرت ایرن‬
‫رود این است که زمانی که فرایندی خاتمه می یابد‪ ،‬یا م ادله می شود‪ ،‬این لیست به سادزی ‪ update‬مری‬
‫شود‪ .‬فرایندی که پایان یافته با همسایه های خود ترکیب می شود‪ .‬فیلردهای هرر زرره در لیسرت پیونردی‬
‫م ال ق ل شامل فیلدهای زیر است‪:‬‬
‫‪ -1‬حفره )‪ (H‬یا فرایند)‪ (P‬بودن‬
‫‪ -2‬آدرس شروع‬
‫‪ -3‬طول‬
‫‪ -4‬آدرس زره بعدی‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪181‬‬ ‫سیستم عامل‬

‫مثال‬
‫شکل زیر قسمتی از حافظه شامل ‪ 5‬فرایند و ‪ 3‬حفره را نشان می دهرد‪ .‬منراطا هاشرور خرورده‪ ،‬فضراهای‬
‫خالی هستند‪ .‬این حافظه به دو رود ‪ Bitmap‬و لیست پیوندی نشان داده شده است‪.‬‬
‫در طرح ‪ Bitmap‬فضاهای خالی ‪ ،‬با صفر و فضاهای پر با ‪ 1‬مشخص شده انرد‪ .‬بره طرور م رال‪ 8 ،‬بیرت اول ‪،‬‬
‫شامل پنج تا ‪ 1‬و سه تا ‪ 0‬است‪ ،‬ون پنج واحد تخصیص توسط فرایند ‪ A‬پر شده و بعد از آن ‪ 3‬واحد خالی‬
‫می باشد‪.‬‬
‫در طرح لیسست پیوندی‪ ،‬فضاهای خالی با ‪ H‬و فضاهای پر با ‪ P‬مشخص شده اند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪182‬‬ ‫سیستم عامل‬

‫الگوریتم های مکان یابی و تخصیص حافظه‬


‫وقتی فرایندها و حفره ها در یک لیست مرتب شده بر اساس آدرس قرار می زیرند‪ ،‬الگوریتم های مختلفری‬
‫جهت تخصیص حافظه به یک فرایند وجود دارد‪ .‬ند مورد از این الگوریتم ها ع ارتند از‪:‬‬
‫‪ -1‬اولین برازش (‪)First fit‬‬
‫جستجو از ابتدای حافظه شروع شده و فرایند در اولین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬
‫‪ -2‬برازش بعدی(‪)Next fit‬‬
‫مانند ‪ First fit‬است‪ ،‬با این تفاوت که جستجو از آخرین محل تخصیص شروع می شود‪.‬‬
‫‪ -3‬بهترین برازش (‪)Best fit‬‬
‫تمام لیست جستجو می شود و فرایند در کو کترین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬
‫‪ -4‬بدترین برازش (‪)Worst fit‬‬
‫تمام لیست جستجو می شود و فرایند در بیرزترین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬

‫‪ ، First‬ساده ترین رود و معموالً سریع ترین الگوریتم است‪.‬‬ ‫‪fit‬‬ ‫الگوریتم‬
‫‪ ، First‬بیشترین کارایی را دارد‪ .‬یعنی بهره وری حافظه در آن قابل ق ول است‪.‬‬ ‫‪fit‬‬ ‫الگوریتم‬
‫در ‪ ، Best fit‬فضاهای حافظه پر از تکه های کو ک خالی بی مصرف می شود‪.‬‬

‫سرعت الگوریتم های ‪ Best fit‬و ‪ Worst fit‬پایین است‪ ،‬ون کل لیست باید جستجو شود‪.‬‬
‫‪ ، Next‬حفره های بیرگ انتهای حافظه سریع تر شکسته می شود و در ورود فرایندهای بریرگ‬ ‫‪fit‬‬ ‫در‬
‫بعدی‪ ،‬مشکل ایجاد می شود‪.‬‬
‫ازر برای فضاهای خالی و فرایندها‪ ،‬لیست های جدازانه ای داشته باشیم‪ ،‬سرعت هر هرار الگروریتم ‪،‬‬
‫بیشتر می شود‪ .‬ال ته این کار باعث پیچیده شدن مکانیسم آزاد کردن حافظه می شود‪.‬‬
‫ازر لیست فضاهای خالی بر اساس اندازه فضاها مرتب باشد‪ ،‬سرعت ‪ ، Best fit‬افیایش می یابد‪.‬‬
‫مثال‬
‫در یک سیستم که مدیریت حافظه با استفاده از م ادله انجام میشود‪ ،‬حافظه اصلی شرامل فضراهای خرالی برا انردازههای بره‬
‫ترتیب ‪ ( 10 , 4 , 20 , 18 , 7 , 9 , 12‬پ به راست) است‪ .‬برای درخواست تکه هایی از حافظه بره طرور متروالی و بره‬
‫مقدارهای ‪ 12‬و‪ 10‬و ‪ 6‬کیلو بایت با استفاده از رود های ‪ Best fit ، Next fit ، First fit‬و ‪ Worst fit‬کدام یرک از‬
‫فضاهای خالی فوق الذکر اشغال میشوند؟‬
‫پاسخ‪ :‬روش ‪First fit‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪183‬‬ ‫سیستم عامل‬

‫تکه ‪ 12‬از حفره ‪ 20‬زرفته میشود و ‪ 8‬کیلو باقی می ماند و تکه ‪ 10‬از حفره ‪ 10‬و تکه ‪ 6‬از حفره ‪( 8‬باقیمانده از‪ )2۰‬زرفته‬
‫میشود‪:‬‬
‫‪1‬‬ ‫‪2‬‬
‫‪4‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬
‫‪12‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪0‬‬
‫‪10‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪6‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫روش ‪: Next fit‬‬
‫‪2‬‬
‫‪10‬‬ ‫‪4‬‬ ‫‪18 7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪0‬‬
‫‪12 10 4‬‬ ‫‪8 18 7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪10 10 4‬‬ ‫‪8 8‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪6 10 4‬‬ ‫‪8 2‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫ل استفاده کرد‪.‬‬ ‫توجه کنید که فرایند ‪ 6KB‬از همان فضای باقی مانده از حفره مرحله ق‬
‫روش ‪: Best fit‬‬
‫‪1‬‬ ‫‪2‬‬
‫‪4‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪2‬‬
‫‪12‬‬ ‫‪4‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪2‬‬
‫‪10‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪0‬‬
‫‪0‬‬
‫‪2‬‬
‫‪6‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪18‬‬ ‫‪1‬‬ ‫‪9‬‬ ‫‪0‬‬
‫‪0‬‬
‫روش ‪: Worst fit‬‬
‫‪2‬‬
‫‪10‬‬ ‫‪4‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪0‬‬
‫‪12‬‬ ‫‪10‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪10‬‬ ‫‪10‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪6‬‬ ‫‪10‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪6‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪184‬‬ ‫سیستم عامل‬

‫برازش سریع )‪(Quick fit‬‬


‫در این رود برای هر دسته از فرایندها با اندازه های متداول‪ ،‬یک لیست جدازانه تهیه می شود‪ .‬جدولی برا‬
‫‪ n‬خانه را فرض کنید که خانه اول این جدول‪،‬اشاره زری است که به ابتدای لیست حفره های ‪ 4‬کیلو بایتی‪،‬‬
‫خانه دوم‪ ،‬به ابتدای حفره های ‪ 8‬کیلو بایتی و ‪ ...‬اشاره می کند‪.‬‬
‫در این رود یافتن حفره ای با اندازه مناسب‪ ،‬بسیار سریع است‪.‬‬

‫در این رود حافظه‪ ،‬تکه تکه شده و پر از حفره های کو ک و غیر قابل استفاده می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪185‬‬ ‫سیستم عامل‬

‫مدیریت حافظه با سیستم رفاقتی‬


‫سیستم رفاقتی‪ ،‬یک تعادل قابل ق ول برای فائا آمدن بر معایب طرحهای بخش بندی ایسرتا و پویرا اسرت‪ .‬در بخرش بنردی‬
‫ایستا تعداد فرایندهای فعال محدود است و امکان تکه تکه شدن داخلی وجود دارد و در بخش بندی پویا سربار فشرده سرازی‬
‫وجود دارد‪ .‬در یک سیستم رفاقتی‪ ،‬اندازه بالکهای حافظه توانی از ‪ 2‬میباشند‪.‬‬
‫نحوه کار‪ :‬ازر اندازه یک حفره برابر ‪ 2 k‬باشد و فرایندی به اندازه ‪ S‬باید به داخل آن م ادله شود‪ ،‬ازر ‪ S‬از نصف انردازه حفرره‬
‫بیرزتر بود‪ ،‬کل فضا به آن داده می شود‪ ،‬در غیر اینصورت‪،‬کل بلوک نصف شده و دو بلوک رفیا ایجاد می شود‪ .‬این روند بره‬
‫صورت باززشتی تکرار خواهد شد‪ .‬در صورت آزاد شدن یک حفره‪،‬امکان ترکیب رفقای مجاور می باشد‪.‬‬
‫مثال‬
‫شکل زیر نحوه عملکرد سیستم رفاقتی را نشان می دهد‪:‬‬
‫‪1024‬‬
‫‪512‬‬ ‫‪512‬‬
‫‪256‬‬ ‫‪256‬‬ ‫‪512‬‬
‫‪Request 70‬‬ ‫‪A‬‬ ‫‪128‬‬ ‫‪256‬‬ ‫‪512‬‬
‫‪Request 35‬‬ ‫‪A‬‬ ‫‪B 64‬‬ ‫‪256‬‬ ‫‪512‬‬
‫‪Request 80‬‬ ‫‪A‬‬ ‫‪B 64‬‬ ‫‪C‬‬ ‫‪128‬‬ ‫‪512‬‬
‫‪Return A‬‬ ‫‪128‬‬ ‫‪B 64‬‬ ‫‪C‬‬ ‫‪128‬‬ ‫‪512‬‬
‫‪Request 60‬‬ ‫‪128‬‬ ‫‪B D‬‬ ‫‪C‬‬ ‫‪128‬‬ ‫‪512‬‬
‫‪Return B‬‬ ‫‪128‬‬ ‫‪64 D‬‬ ‫‪C‬‬ ‫‪128‬‬ ‫‪512‬‬
‫‪Return D‬‬ ‫‪256‬‬ ‫‪C‬‬ ‫‪128‬‬ ‫‪512‬‬
‫‪Return C‬‬ ‫‪1024‬‬

‫ابتدا بلوک ‪ 1024 K‬به دو بلوک ‪ 512K‬تقسیم شده و سپس بلوک اول به دو بلوک ‪ 256K‬و بلوک اول آن به دو بلوک ‪128K‬‬

‫تقسیم می شود‪ .‬که اولین درخواست)‪ (A‬یعنی ‪ 70K‬در آن قرار می زیرد‪ .‬برای پاسخ به درخواست بعدی)‪ (B‬یعنی ‪، 35 K‬‬
‫حفره ‪ 128 K‬به دو حفره ‪ 64 K‬تقسیم شده و ‪ B‬در حفره اولی قرار می زیرد‪ .‬درخواست بعدی )‪ (C‬یعنی ‪ ، 80 K‬در نیمه‬
‫اول حفره ‪ 256 K‬قرار می زیرد‪ .‬در این لحظه ‪ A‬آزاد شده و بعد به درخواست )‪ (D‬یعنی ‪ 60K‬پاسخ داده می شود‪ .‬با آزاد‬
‫سازی ‪ ، B‬و بعد از آن ‪ ،D‬سه فضای خالی کنار هم ادغام شده و یک حفره ‪ 256K‬را ایجاد می کنند‪ .‬در نهایت بعد از آزاد‬
‫سازی ‪ ،C‬بلوک یکپار ه می شود‪.‬‬

‫مییت سیستم رفاقتی این است که یدمان حفره ها ساخت یافته است و می توان یک ساختار درختی برای بلوک های‬
‫پر و خالی ایجاد کرد و با یک الگوریتم باززشتی‪ ،‬حفره مناسب را خیلی سریع پیدا کرد‪.‬‬

‫حافظه در این رود است‪ .‬زمانی که یک فرایند ‪ 70‬کیلو بایتی در یک حفرره ‪128‬‬ ‫از معایب سیستم رفاقتی‪ ،‬اتالف‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪186‬‬ ‫سیستم عامل‬

‫کیلو بایتی قرار می زیرد‪ ،‬فضایی به اندازه ‪ 58‬کیلو بایت هدر می رود‪.‬‬
‫روی هم گذاری )‪(Overlay‬‬
‫‪Overlay‬‬ ‫در زذشته‪ ،‬ازر حافظه تخصیص داده شده به یک فرایند از اندازه فرایند کرو کتر برود‪ ،‬از تکنیرک‬
‫استفاده می شد‪ .‬در این تکنیک برنامه نویس‪ ،‬برنامه ها را به قسمت هایی به نام ‪ Overlay‬تقسیم مری کنرد‪.‬‬
‫ابتدا ‪ Overlay0‬اجرا شده و بعد از پایان اجرایش‪ Overlay1،‬را صدا می زند و به همین ترتیب ادامه می یابد‪.‬‬
‫در سیستم هایی که امکان نگهداری ندین ‪ Overlay‬به طور همیمران در حافظره وجرود داشرت‪ ،‬سیسرتم‬
‫عامل ‪ Overlay‬ها را روی دیسک نگه می داشت و در مواقع لیوم‪ ،‬عملیات م ادله را انجرام مری داد‪ .‬تقسریم‬
‫برنامه به ‪ overlay‬ها و فراخوانی آنها‪ ،‬بر عهده برنامه نویس بود و سیستم عامل فقط عمل م ادلره را انجرام‬
‫می دهد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪187‬‬ ‫سیستم عامل‬

‫صفحه بندی )‪(Paging‬‬


‫در این رود مدیریت حافظه‪ ،‬حافظه اصلی به بلوکهایی با اندازه های ثابت به نام قاو (‪ )frame‬تقسیم می‬
‫شود‪ .‬حافظه منطقی نیی به بلوک هایی با اندازه های یکسان به نام صفحه (‪ )page‬تقسریم میشرود‪ .‬وقتری‬
‫یک فرایند به داخل حافظه آورده میشود‪ ،‬تمام صفحات آن به داخل قابهرای موجرود برار میشروند و یرک‬
‫جدول صفحه ایجاد میشود‪ .‬جدول صفحه‪ ،‬محل قاو هر صفحه از فرایند را مشخص میکند‪.‬‬
‫مثال‬
‫شکل زیر تخصیص قاو های آزاد به صفحههای فرایند ‪ A‬با سه صفحه را نشان میدهرد‪ .‬جردول صرفحه را‬
‫‪....‬‬ ‫مشخص نمایید‪.‬‬

‫‪5‬‬ ‫‪A.0‬‬
‫‪6‬‬
‫‪7‬‬ ‫‪A.2‬‬
‫‪8‬‬ ‫‪A.1‬‬
‫‪9‬‬

‫پاسخ‪ :‬جدول صفحه فرایند ‪ A‬با سه صفحه به صورت زیر است‪:‬‬


‫‪0‬‬ ‫‪5‬‬
‫‪1‬‬ ‫‪8‬‬
‫‪2‬‬ ‫‪7‬‬

‫آدرس منطقی در صفحه بندی از دو قسمت تشکیل میشود‪ :‬شماره صفحه )‪ (P‬و آفست )‪.(d‬‬
‫به آفست‪ ،‬انحراف یا تفاوت مکان نیی می زویند‪.‬‬
‫اندازه صفحه و اندازه قاو توسط سخت افیار تعریف می شود‪.‬‬
‫برای ساده شدن طرح صفحه بندی‪ ،‬اندازه صفحه و اندازه قاو باید تروانی از ‪ 2‬باشرند‪ .‬در ایرن حالرت‬
‫آدرس نس ی و منطقی یکسان هستند‪.‬‬
‫پردازنده به کمک جدول صفحه‪ ،‬یک آدرس فیییکی تولید میکند که این آدرس از دو قسمت شرماره‬
‫قاو و آفست تشکیل شده است‪.‬‬
‫شکل زیر نحوه ترجمه آدرس در سیستم صفحه بندی را نشان میدهد‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪188‬‬ ‫سیستم عامل‬

‫نحوه تولید آدرس فیییکری برا توجره بره آدرس منطقری در شرکال براال‪ :‬شرماره صرفحه موجرود در آدرس‬
‫مجازی)‪ (page‬با آدرس شروع جدول صفحه‪ ،‬جمع شده و به آدرس بدست آمده‪ ،‬در جدول صفحه مراجعه‬
‫می شود‪ .‬در این آدرس شماره قاو )‪ (frame‬متناظر با صفحه مورد نظر قرار دارد‪ .‬این شماره قاو و همان‬
‫آفست)‪ (disp‬موجود در آدرس مجازی‪ ،‬آدرس فیییکی را مشخص می کنند‪.‬‬
‫مثال‬
‫بررا توجرره برره آدرس نسر ی ‪ 16‬بیترری ‪ ، 0000010111011110‬نررد بیررت برررای شررماره صررفحه نیرراز‬
‫است؟(اندازه صفحه برابر یک کیلو بایت می باشد‪).‬‬
‫پاسخ‪ :‬ون اندازه صفحه یک کیلو بایت ( ‪ 210‬بایت) است‪ 10 ،‬بیت برای آفسرت مرورد نیراز اسرت و رون‬
‫آدرس ‪ 16‬بیتی است‪ 6 ،‬بیت بررای شرماره صرفحه براقی میمانرد‪ .‬آدرس نسر ی داده شرده دارای آفسرت‬
‫)‪ (0111011110‬در صفحه )‪ (000001‬است‪ .‬شکل زیر نحوه تولید آدرس فیییکری از آدرس منطقری را‬
‫نشان می دهد‪:‬‬

‫تذکر‪ :‬یک برنامه میتواند حداک ر ‪ 2 6  64‬صفحه یک کیلوبایتی داشته باشد‪.‬‬


‫مثال‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪189‬‬ ‫سیستم عامل‬

‫یک فضای آدرس دهی منطقی شامل ‪ 4‬صفحه است و هر صفحه حاوی ‪ 2‬کلمه است‪ .‬ازر این صرفحات برر‬
‫روی یک فضای آدرس دهی فیییکی حاوی ‪ 8‬قاو صفحه نگاشت شود‪ ،‬آدرس منطقی و فیییکی ند بیتری‬
‫خواهد بود؟‬
‫‪ = 4  2  8  2 3‬فضای آدرس دهی منطقی‬
‫= فضای آدرس دهی فیییکی ‪8  2  16  2 4‬‬

‫بنابراین آدرس منطقی ‪ 3‬بیتی و آدرس فیییکی ‪ 4‬بیتی است‪.‬‬


‫مثال‬
‫در یک سیستم حافظه صفحه بندی با یک جدول صفحه حاوی ‪ 64‬مدخل ‪ 10‬بیتری و صرفحه هرای ‪512‬‬
‫بایتی‪ ،‬آدرس منطقی و فیییکی ند بیتی است؟‬
‫اندازه حافظه منطقی برابر است با حاصل ضرو تعداد صفحات (تعداد مدخل ها)در اندازه هر صفحه‪:‬‬
‫بایت ‪ = 64  512  26  29  215‬اندازه حافظه منطقی‬
‫اندازه حافظه فیییکی برابر است با حاصل ضرو تعداد آدرسها در اندازه هر صفحه‪:‬‬
‫بایت ‪ = 210  512  219‬اندازه حافظه فیییکی‬
‫بنابراین آدرس منطقی ‪ 15‬بیتی و آدرس فیییکی ‪ 19‬بیتی است‪.‬‬
‫مثال‬
‫در یک فضای آدرس دهی منطقی هر صفحه حاوی ‪ 512‬کلمه اسرت‪ .‬ایرن تعرداد صرفحات حافظره اصرلی‬
‫فضای آدرس دهی بر روی یک فضای آدرس دهی فیییکی حاوی ‪ 8‬قاو صرفحه نگاشرته مری شرود‪ .‬آدرس‬
‫فیییکی حاوی ند بیت است؟‬
‫‪8  512  2 3  2 9  212‬‬

‫نقطه ضعف اصلی صفحه بندی تکه تکه شدن داخلی است‪( .‬ازر احتیاج به ناحیه بسریار کرو کی از‬
‫حافظه باشد‪ ،‬در این صورت مقداری از فضای حافظه تلف می شود‪ ،‬زیرا کو کترین واحردی از حافظره‬
‫که به استفاده کننده اختصاص دارد یک صفحه است‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪19۰‬‬ ‫سیستم عامل‬

‫حافظه مجازی‬
‫حافظه مجازی تکنیکی است که موجب می شود فرایند بدون اینکه کامال در حافظره باشرد اجررا زرردد‪ .‬برا‬
‫استفاده از این تکنیک‪ ،‬می توان برنامه ای بیرزتر از حافظه فیییکی را اجرا کرد‪ .‬حافظه مجازی ندبرنامگی‬
‫را به صورت موثری ممکن میسازد و کاربر را از محدودیتهای حافظه اصلی رها میکنرد‪ .‬بره کمرک حافظره‬
‫مجازی دیگر لیومی ندارد تمام صفحهها(یا قطعههای) یک فرایند در حال اجرا‪ ،‬در حافظه اصلی قرار داشرته‬
‫باشند و در ابتدا یک یا ند تکه حاوی آغاز برنامه‪ ،‬توسط سیستم عامل به حافظه آورده میشود‪.‬‬
‫حافظه مجازی‪ ،‬حافظه منطقی کاربر را از حافظه فیییکی تفکیک می کند‪ .‬این تفکیک موجب مری شرود در‬
‫حالتی که حافظه فیییکی کم است‪ ،‬حافظه مجازی بیرزی برای برنامه نویس فراهم شود‪.‬‬
‫حافظه مجازی‪ ،‬برنامه نویسی را ساده می کند‪ ،‬زیرا برنامه نویس نگران حافظه فیییکی و کد جایگذاری نمی‬
‫باشد‪.‬‬
‫ازر در حین اجرا به آدرسی رجوع شود که در مجموعه مقیم در حافظه ن اشد‪ ،‬یک وقفره ایجراد میشرود و‬
‫این فرایند مسدود میشود و تکه مورد نظر وارد حافظه میشود‪ ،‬سپس کنترل دوباره به سیسرتم عامرل برر‬
‫میزردد و فرایند مسدود را به حالت آماده برمی زرداند‪.‬‬
‫تذکر‪ :‬به بخشی از فرایند که واقعاً داخل حافظه اصلی قرار دارد‪ ،‬مجموعه مقیم میزویند‪.‬‬
‫عناصر الزم برای موثر بودن حافظه مجازی ع ارتند از‪:‬‬
‫‪ -1‬حمایت سخت افیاری برای به کارزیری صفحه بندی (یا قطعه بندی)‬
‫‪ -2‬حمایت نرم افیاری برای انتقال صفحهها (یا قطعهها) بین حافظه ثانوی و حافظه اصلی‪.‬‬
‫حافظه مجازی را می توان به روشهای زیر پیاده سازی کرد‪:‬‬
‫درخواستی )‪(Demand Paging‬‬ ‫‪ -1‬صفحه بندی‬
‫درخواستی )‪(Demand Segmentation‬‬ ‫‪ -2‬قطعه بندی‬
‫)‪(Hybrid Paging and Segmentation‬‬ ‫‪ -3‬قطعه بندی صفحه بندی شده‬
‫رود اول در این فصل و رود دوم و سوم در فصل بعد بررسی می شوند‪.‬‬

‫صفحه بندی درخواستی‬


‫در صفحه بندی برای حافطه مجازی(صفحه بندی درخواستی)‪ ،‬مانند صفحه بندی ساده‪ ،‬حافظه اصلی به تکههای هرم انردازه‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪191‬‬ ‫سیستم عامل‬

‫به نام قاو(‪ )fram‬و برنامه به صفحهها )‪ (page‬تقسیم میشود‪ .‬امرا برر خرالف صرفحه بنردی سراده‪ ،‬لیومری نردارد تمرام‬
‫صفحههای یک فرایند در قابهای حافظه اصلی باشند تا فرایند اجرا شود‪ .‬و تنها صفحاتی از فراینرد کره مرورد نیراز اسرت بره‬
‫حافظه اصلی آورده می شوند‪ .‬این رود تلفیقی از صفحه بندی و م ادله است‪.‬‬
‫آدرس هایی که توسط برنامه ها تولید می شوند(آدرس مجازی)‪ ،‬به واحد ‪ MMU‬که در درون پردازنده قرار دارد‪ ،‬منتقل می‬
‫شوند‪ .‬توسط این واحد‪ ،‬عمل ترجمه(نگاشت) آدرس مجازی به آدرس فیییکی انجام می شود‪ .‬این عمل مشابه مراحل ترجمره‬
‫آدرس در رود صفحه بندی است‪ ،‬با این تفاوت که بیت حضور)‪ (Present‬برای هر درایه جدول صفحه وجود دارد که حضور‬
‫یا عدم حضور صفحه در حافظه اصلی را تعیین می کند‪.‬‬
‫ازر ‪ MMU‬به جدول صفحه مراجعه کند و بیت حضور را برای صفحه مورد نظر صفر ب یند‪ ،‬متوجه می شود کره صرفحه برر‬
‫روی دیسک است‪ .‬دراین حالت پردازنده در تله)‪ (trap‬سیستم عامل می افترد‪ .‬بره ایرن تلره‪ ،‬خطرای نقرص صرفحه ‪(Page‬‬
‫)‪ Fault‬می زویند که مدیریت آن بر عهده سیستم عامل است‪.‬‬

‫وقتی سعی شود مکانی از حافظه مجازی خوانده شود که موجود نیست‪ ،‬فقدان صفحه رخ مری دهرد و‬
‫منجر به صدور وقفه می زردد‪.‬‬

‫جدول صفحه‬
‫واحد مدیریت حافظه یا ‪ MMU‬به کمک جدول صفحه )‪ ، (Page Table‬آدرس مجازی را به آدرس فیییکی‪ ،‬نگاشت می‬
‫کند‪ .‬در صفحه بندی مجازی‪ ،‬هر فرایند جدول صفحه خود را دارد‪ .‬اندازه هر درایه )‪ (e‬جدول صفحه معموال هار بایت است‪.‬‬
‫جدول صفحه بر حسب اندیس شماره صفحه یده شده است و ‪ P#‬یک فیلد از جدول محسوو نمی شود‪.‬‬
‫فیلدهای هر درایه از یک جدول صفحه شامل موارد زیر است‪:‬‬
‫ازر بیت اعت ار برای صفحه ای ‪ 1‬باشد‪ ،‬یعنی برنامه نرویس از آدرس هرای درون ایرن‬ ‫بیت اعتبار‬
‫صفحه استفاده کرده است‪ .‬ازر ‪ 0‬باشد‪ ،‬یعنی صفحه بدون استفاده است‪.‬‬ ‫)‪(Valid‬‬
‫ازر این بیت ‪ 1‬باشد‪ ،‬یعنی صفحه در حافظه قرار دارد و سایر فیلدهای این درایه قابل‬ ‫بیت حضور‪ -‬غیاب‬
‫استفاده می باشند‪ .‬به این فیلد ‪ in/out‬نیی می زویند‪.‬‬ ‫(‪)P/A‬‬
‫شماره قاب صفحه مهمترین فیلد است و هدف اصلی از نگاشت صفحه‪ ،‬یافتن شماره قاو صفحه است‪.‬‬
‫)‪(F#‬‬
‫بیت مراجعه شده )‪ (R‬ازر یک مراجعه‪ ،‬خواندن یا نوشتن به یک صفحه انجام زیرد‪ ،‬ایرن بیرت برابرر ‪ 1‬مری‬
‫شود‪.‬‬ ‫)‪(Referenced‬‬

‫ازر عمل نوشتن بر روی یک صفحه انجام شود‪ ،‬سخت افیار به صورت اتوماتیرک ایرن‬ ‫بیت تغییر یافته )‪(M‬‬
‫بیت را ‪ 1‬می کند‪.‬‬ ‫(‪)Modified‬‬

‫این بیت ها نوع دسترسی مجاز را مشخص می کند‪ .‬در حالت سه بیتی)‪ ، (rwx‬یرک‬ ‫بیتهای حفاظت‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪192‬‬ ‫سیستم عامل‬

‫بیت برای خواندن‪ ،‬یک بیت برای نوشتن و یک بیت بررای اجررا در نظرر زرفتره مری‬ ‫)‪(Protection‬‬

‫شود‪.‬‬
‫هر ه مقدار این فیلد برای صفحه ای کمتر باشد‪ ،‬نشران دهنرده ایرن اسرت کره آن‬ ‫سن )‪(Age‬‬
‫صفحه مدت بیشتری در حافظه بدون مراجعه بوده است‪.‬‬
‫این فیلد زمانی مقدار می زیرد که بیش از یک فرایند در یک صفحه شرریک باشرند‪.‬‬ ‫بیت کپی در نوشتن‬
‫ازر یکی از فرایندها در صفحه بنویسد‪ ،‬یک کپی جدازانه برای تمام فراینردهایی کره‬ ‫)‪(Copy on Write‬‬

‫در این صفحه شریک هستند‪ ،‬درست می شود‪.‬‬


‫توسط این بیت‪ ،‬می توان امکان استفاده از حافظه نهان را بررای صرفحه‪ ،‬غیرر فعرال‬ ‫بیت کش غیر فعال‬
‫کرد‪.‬‬ ‫شده‬
‫ماشین هایی که از فضای ‪ I/O‬جدازانه برخوردارند و از ‪ I/O‬نگاشت شده با حافظره‬ ‫)‪(Cashing Disable‬‬
‫استفاده نمی کنند‪،‬نیازی به این بیت ندارند‪.‬‬

‫مثال‬
‫یک سیستم کامپیوتری م تنی بر حافظه مجازی با اندازه صفحه ‪ 32KB‬مفروض است‪ .‬ازرر حرداک ر برنامره‬
‫قابل اجرا در این سیستم ‪ 4MB‬باشد‪ ،‬تعداد مدخل های جدول صفحه کدام است؟‬
‫پاسخ‪:‬‬
‫‪4 MB‬‬ ‫‪4  2 20‬‬
‫‪‬‬ ‫‪ 2 7  128‬‬
‫‪32KB 32  2‬‬ ‫‪10‬‬

‫مثال‬
‫یک سیستم کامپیوتری م تنی بر حافظه مجازی با اندازه صفحه ‪ 32KB‬مفروض است‪ .‬در صورتی که حجرم‬
‫حافظه اصلی این سیستم ‪ 512KB‬باشد‪ ،‬تعداد صفحات حافظه اصلی ه مقدار خواهد بود؟‬
‫‪512 KB‬‬
‫پاسخ‪ 16 :‬‬
‫‪32 KB‬‬

‫مثال‬
‫یک سیستم حافظه صفحه بندی مجازی را در نظر بگیرید که حداک ر اندازه جدول صفحه هر فراینرد در آن‬
‫برابر ‪ 8‬مگابایت‪ ،‬اندازه هر صفحه برابر ‪ 8‬کیلوبایت و مدخلهای هر جدول صفحه ‪ 16‬بایتی باشند‪ ،‬آدرسهای‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪193‬‬ ‫سیستم عامل‬

‫ماشینی که بتواند این حافظه مجازی را مستقیماً آدرس دهی کند‪ ،‬باید ند بیتی باشند؟‬
‫پاسخ‪:‬‬
‫‪8MB 8  2 20‬‬
‫‪e‬‬ ‫‪‬‬ ‫‪ 219‬‬
‫‪16‬‬ ‫‪16‬‬
‫‪219  (8kb)  219  (8  210 )  2 32‬‬
‫بنابراین آدرس باید ‪ 32‬بیتی باشد‪.‬‬
‫جدول صفحه در حافظه اصلی قرار میزیرد‪ .‬ون برای هر فرایند یک جدول وجود دارد و هرر فراینرد‬
‫میتواند مقدار زیادی از حافظه مجازی را اشغال کند‪ ،‬بنابراین تعداد مدخلهای صفحه برای هرر فراینرد‬
‫زیاد خواهد شد و جدول صفحه فضای زیادی را اشغال خواهد کرد‪ .‬بنابراین بهتر است جرداول صرفحه‬
‫در حافظه مجازی ذخیره شوند‪ ،‬یعنی خود جداول صفحه نیی در معرض صفحه بندی هستند‪.‬‬
‫روشهای کاهش اندازه جدول صفحه‬
‫‪ -1‬جداول صفحه ند سطحی ‪ -2‬جدول صفحه وارونه(معکوس)‬
‫صفحه بندی چند سطحی‬
‫سیستم های مدرن از فضای آدرس منطقی زسترده ای پشتی انی می کنند‪ .‬در این محیط ها درایه های جدول صرفحه زیراد‬
‫خواهند شد و در نتیجه اندازه جدول صفحه بیرگ خواهد شد و ون نمی خواهیم جدول صفحه را به طور همجوار در حافظه‬
‫اصلی تخصیص دهیم‪ ،‬باید آن را به فضاهای کو کتری تقسیم کرد‪ .‬برای این کار می توان از الگوی صفحه بندی دو سرطحی‬
‫استفاده کرد که خود جدول صفحه نیی صفحه بندی می شود‪.‬فرض کنید یک فرایند ‪ 20‬کیلو بایتی در یک سیستم برا آدرس‬
‫های ‪ 32‬بیتی و صفحات ‪ 4‬کیلو بایتی ( ‪ 212‬بایت) داشته باشیم‪ .‬بنابراین فرایند نیاز به ‪ 5‬صفحه دارد‪ .‬از طرفی رون آدرس‬
‫‪ 32‬بیتی است و ‪ 12‬بیت آن برای آفست است‪ ،‬پس ‪ 20‬بیت برای شماره صرفحه براقی مری مانرد‪ .‬بنرابراین جردول صرفحه‬
‫دارای ‪ 2 20‬درایه خواهد بود که فقط ‪ 5‬درایه آن استفاده خواهد شد‪ .‬پس تعداد بسیار زیرادی از درایره هرای جردول صرفحه‬
‫استفاده نشده است‪ .‬ازر درایه های استفاده نشده را حذف کنیم‪ ،‬دیگر نمی توان بر اساس ‪ ، P#‬جدول صفحه را اندیس دهری‬
‫کرد و ترجمه آدرس کند می شود‪ .‬برای حذف اغلب(نه تمامی) درایه های خالی و حفظ مکانیسم نشانی دهی بر اساس ‪، P#‬‬
‫از جدول صفحه ند سطحی استفاده می کنیم‪ .‬در این رود‪ ،‬اندیس دهی ند مرحله ای می شود‪.‬‬
‫مثال‬
‫سیستمی از یرک جردول صرفحه دو سرطحی و آدرس هرای مجرازی ‪ 32‬بیتری اسرتفاده مری کنرد‪ .‬انردازه‬
‫صفحات ‪ 212‬بایت است‪ .‬اولین ‪ 10‬بیت آدرس به عنوان ایندکس به اولین جدول صفحه عمرل مری کنرد‪ .‬در‬
‫نتیجه جدول صفحه سطح اول دارای ‪ 210‬درایه است‪ .‬بنابراین ایندکس سطح دوم ‪ 10‬بیتری اسرت‪ .‬هرر جردول‬
‫صفحه در سطح دوم دارای ‪ 210‬درایه است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪194‬‬ ‫سیستم عامل‬

‫مثال‬
‫کامپیوتری با یک فضای آدرس پذیر مجازی ‪ 18‬بیتی را که صفحات آن هر یک ‪ 2 6‬بایت ظرفیرت دارنرد‪ ،‬در‬
‫نظر بگیرید‪ .‬اندازه هر مدخل جدول صفحه ‪ 4‬بایت است‪ .‬به دلیل آنکه هر جردول بایرد داخرل یرک صرفحه‬
‫جای زیرد‪ ،‬یک جدول صفحه ند سطحی استفاده شده است‪ .‬ند سطح مورد نیاز است؟‬
‫پاسخ‪:‬‬
‫فضای آدرس مجازی ‪ 18‬بیت است که ‪ 6‬بیت آن مربوط به آفست است‪ .‬بنابراین ‪ 12‬بیت برای شماره صفحه‬
‫جا داریم‪ .‬حال باید ب ینیم که این ‪ 12‬بیت را به ند قسمت‪ ،‬تقسیم کنیم‪.‬‬
‫از آنجا که هر مدخل جدول صفحه هار بایتی است‪ ،‬تعداد مدخل های هر جدول صفحه که مری توانرد در‬
‫‪26‬‬
‫برابر ‪ 4‬بیت است‪ .‬در نتیجه تعداد سطوح مرورد‬ ‫است‪ .‬بنابراین اندیس های ‪PTi‬‬ ‫برابر ‪ 2 4‬‬ ‫یک صفحه جای زیرد‪،‬‬
‫‪4‬‬

‫نیاز برابر ‪ 12   3‬می باشد‪ .‬آدرس منطقی ‪:‬‬


‫‪4‬‬
‫‪PT1= 4bit‬‬ ‫‪PT2= 4 bit‬‬ ‫‪PT3= 4 bit‬‬ ‫‪OFFSET= 6 bit‬‬

‫مثال‬
‫فرض کنید سیستمی از فضای آدرس دهی مجازی ‪ 210‬بایت پشتی انی می کند‪ .‬در این سیستم اندازه حافظه فیییکری قابرل‬
‫دسترسی ‪ 2 9‬بایت و طول هر قاو حافظه در این سیستم ‪ 2 4‬بایت می باشد‪ .‬این سیستم از رود صفحه بندی برای مدیریت‬
‫حافظه استفاده کرده است‪ .‬با فرض اینکه هر مدخل از جدول صفحه به ‪ 11 bit‬به عنوان بیتهای کنترلی(بیت حضور‪ -‬غیراو‬
‫و ‪ )...‬نیاز داشته باشد‪ ،‬در این صورت برای اینکه هر جدول صفحه جیئی‪ ،‬دقیقا در یک قاو قرار زیرد‪ ،‬باید حرداقل از جردول‬
‫صفحه ند سطحی استفاده شود؟‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪195‬‬ ‫سیستم عامل‬

‫پاسخ‪ :‬ط ا اطالعات مسئله‪ ،‬مشخص است که فضای آدرس مجازی ‪ 10‬بیت است کره ‪ 4‬بیرت آن مربروط بره آفسرت اسرت‪.‬‬
‫بنابراین ‪ 6‬بیت برای شماره صفحه جا داریم‪ .‬حال باید ب ینیم که این ‪ 6‬بیت را باید به ند قسمت تقسیم کنیم‪ .‬تعرداد قراو‬
‫‪29‬‬
‫‪4‬‬
‫ها از تقسیم اندازه فضای فیییکی به اندازه هر قاو بدست می آید‪ 2 5 :‬‬
‫‪2‬‬
‫پس ون ‪ 32‬قاو صفحه داریم‪ 5 ،‬بیت برای شماره قاو در جدول صفحه در نظر زرفته می شود‪.‬‬
‫همچنین ‪ 11‬بیت نیی برای بیتهای کنترلی در نظر زرفته می شود‪ .‬بنابراین اندازه هر درایه جردول صرفحه‪ ،‬برابرر ‪ 16‬بیرت(‪2‬‬

‫‪24‬‬
‫)) می تواند در یک قراو جرای بگیررد‪.‬‬ ‫بایت) است‪ .‬ون هر درایه جدول صفحه ‪ 2‬بایت است‪ ،‬پس تعداد ‪ 8‬درایه ‪ 2 3‬‬
‫‪2‬‬
‫‪6‬‬
‫بنابراین اندیس های ‪ PTi‬برابر ‪ 3‬بیت است‪ .‬و در نتیجه بایرد از جردول صرفحه ‪ )  2 ( 2‬سرطحی اسرتفاده کررد‪ .‬آدرس‬
‫‪3‬‬
‫منطقی به صورت زیر است‪:‬‬

‫‪PT1 =3 bit‬‬ ‫‪PT2 =3 bit‬‬ ‫‪Offset =4 bit‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪196‬‬ ‫سیستم عامل‬

‫جدول صفحه وارونه(معکوس)‬


‫یکی از رود های کاهش اندازه جدول صفحه‪ ،‬استفاده از جدول صفحه معکوس است‪ .‬جدول صفحه معکوس بر اساس شماره‬
‫قاو )‪ (F#‬اندیس شده است(نه شماره صفحه)‪ .‬هر یک از درایه ها جدول صفحه معکوس‪ ،‬مشخص می کنرد صرفحه مجرازی‬
‫شماره ند از کدام فرایند در آن قاو صفحه قرار زرفته است‪.‬در این رود‪ ،‬به جای اینکره بره ازای هرر فراینرد‪ ،‬یرک جردول‬
‫صفحه مجیا داشته باشیم‪ ،‬فقط یک جدول صفحه عمومی داریم‪.‬‬

‫ازر ه جدول صفحه معکوس جای کمی را اشغال می کند‪ ،‬ولی ت دیل آدرس مجازی به فیییکی بسیار مشکل تر مری باشرد‪.‬‬
‫برای سریع کردن جستجو‪ ،‬از یک جدول درهم )‪ (Hash Table‬استفاده می شود‪ .‬قسمت شماره صفحه از آدرس مجازی به‬
‫کمک یک تابع درهم ساز به یک جدول درهم نگاشت می شود‪ .‬جدول درهم دارای نشانگری به جدول صفحه معکروس اسرت‬
‫که شامل مدخلهای جدول صفحه می باشد‪ .‬با این ساختار در جدول درهم و در جردول صرفحه معکروس‪ ،‬بررای هرر صرفحه‬
‫حافظه حقیقی تنها یک مدخل وجود دارد‪(.‬به جای یک مدخل برای هر صفحه مجازی)‪.‬‬

‫پس جدول صفحه معکوس‪:‬‬


‫‪ -1‬س ب کاهش اندازه حافظه فیییکی جهت ذخیره سازی آن می شود‪.‬‬
‫‪ -2‬باید یک جدول صفحه خارجی نیی برای آن ذخیره شود‪.‬‬
‫‪ -3‬زمان سرویس نقص صفحه افیایش می یابد‪(.‬به دلیل ایجاد یک نقص صفحه دیگر)‬

‫شکل زیر ساختار جدول صفحه معکوس نشان داده شده است‪:‬‬

‫بافرهای کناری ترجمه )‪(TLB‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪197‬‬ ‫سیستم عامل‬

‫روشهای پیاده سازی سخت افیاری جدول صفحه ع ارتند از‪:‬‬


‫‪ -1‬جدول صفحه به صورت مجموعه ای از ث اتها پیاده سازی می شود‪.‬‬
‫‪ -2‬جدول صفحه در حافظه اصلی ذخیره شود و ث ات پایه جدول صفحه )‪ (PTBR‬به آن اشاره کند‪.‬‬
‫‪ -3‬استفاده از ‪( TLB‬یک سخت افیار جستجوی سریع‪ ،‬کو ک و پنهان)‬
‫‪TLB : Translation Lookaside Buffers‬‬
‫تذکر‪ :‬ث اتهای انجمنی ‪ TLB‬را میانگیرهای دم دستی نیی می نامند‪.‬‬
‫ازر جدول صفحه بیرگ باشد‪ ،‬رود ‪ 1‬مناسب نمی باشد‪.‬‬

‫در رود ‪ ،2‬برای دسترسی به هر بایت‪ ،‬نیاز به دو دستیابی داریم (یک ار برای ورودی جدول صرفحه و‬
‫دیگری برای دسترسی به بایت) که این باعث کند شدن دستیابی به حافظه می شود‪.‬‬
‫نحوه بکارگیری ‪TLB‬‬
‫در صفحه بندی تعداد اندکی از ورودیهای جدول صفحه در ‪ TLB‬قرار می زیرد‪ .‬وقتری آدرسری تولیرد مری‬
‫شود‪ ،‬شماره صفحه آن با شماره صفحه موجود در ث اتهای انجمنی (که حاوی شماره صفحه و شماره قابهای‬
‫متناطر با آنهاست)‪ ،‬مقایسه می زردد‪ .‬ازر شماره صفحه در ث اتهای انجمنی پیردا شرود‪ ،‬از شرماره قراو آن‬
‫برای دستیابی به حافظه استفاده می شود‪ .‬ازر شماره صفحه در ث اتهای انجمنی موجرود ن اشرد‪ ،‬ارجراع بره‬
‫جدول صفحه باید انجام زرفته و شماره صفحه و شماره قاو به ‪ TLB‬اضافه می شود تا در مراجعرات بعردی‬
‫به سرعت پیدا شود‪ .‬ازر ‪ TLB‬پر باشد‪ ،‬سیستم عامل باید یکی از ورودی ها را حذف کررده و ورودی جدیرد‬
‫را به جای آن قرار می دهد‪.‬‬
‫هر بار که تعویض بستر (انتخاو جدول صفحه جدید) رخ دهد‪ ،‬باید ‪ TLB‬پاک شود تا فراینرد بعردی‬
‫که باید اجرا شود‪ ،‬از اطالعات ترجمه ای نادرست استفاده نکند‪.‬‬
‫‪ (hit‬نام دارد‪.‬‬ ‫)‪ratio‬‬ ‫درصد تعداد دفعاتی که شماره صفحه در ث اتهای انجمنی پیدا شود‪ ،‬نس ت اصابت‬
‫باشد‪ ،‬یعنی که ‪ %80‬از تعداد دفعراتی کره بره ث اتهرای انجمنری مراجعره‬ ‫‪%80‬‬ ‫م ال ازر نس ت اصابت‬
‫کردیم‪ ،‬شماره صفحه پیدا شده است‪ .‬نس ت اصابت را با ‪ H‬نشان می دهیم‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪198‬‬ ‫سیستم عامل‬

‫زمان موثر دسترسی‬


‫زمان موثر دسترسی‪ ،‬میانگین زمان واقعی است که برای یک دسترسی به حافظه اصلی مورد نیاز است‪ .‬ایرن‬
‫زمان از زمان ترجمه آدرس و زمان دسترسی به کلمه مورد نظرر در حافظره اصرلی پرس از محاسر ه آدرس‬
‫فیییکی می باشد‪.‬‬
‫زمان موثر دسترسی با فرض استفاده از ‪ TLB‬و جدول صفحه ساده‪:‬‬
‫‪TAccess  TTranslation  TMem‬‬

‫‪TTranslation  H  TTLB  (1  H )  (TTLB  TMem )  TTLB  (1  H )  TMem‬‬


‫( ‪ : TTLB‬زمان دستیابی ‪ : H ، TLB‬نس ت اصابت ‪) TLB‬‬
‫با فرض اینکه آدرس در ‪ TLB‬ن اشد(یعنی ‪ )H=0‬رابطه به صورت زیر خواهد بود‪:‬‬
‫‪TAccess  TTLB  2TMem‬‬
‫زمان موثر دسترسی در صورت رخ دادن نقص صفحه با احتمال ‪: P‬‬
‫‪TAccess  TTranslation  TMem  P  TDisk‬‬
‫) ‪TTranslation  TTLB  (1  H )  (TMem  P  TDisk‬‬
‫‪ : ) TDisk‬زمان انتقال صفحه از دیسک ‪ : P ،‬احتمال خطای صفحه)‬
‫با فرض اینکه آدرس در ‪ TLB‬ن اشد و نقص صفحه حتما رخ دهد(یعنی ‪ H=0‬و‪ )P=1‬رابطه بره صرورت زیرر‬
‫خواهد بود‪:‬‬
‫‪TAccess  TTLB  2TMem  2TDisk‬‬
‫در این فرمول فرض شده که صفحه به علت تغییر باید در دیسک ذخیره شود‪ .‬ازر نیازی به ذخیره ن اشد از به جای ‪ 2‬ق ل از‬
‫‪ TDisk‬باید ‪ 1‬قرار داد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪199‬‬ ‫سیستم عامل‬

‫زمان موثر دسترسی با فرض استفاده از ‪ TLB‬و جدول صفحه دو سطحی‬


‫فرمت آدرس منطقی پردازنده در این حالت به صورت زیر است‪:‬‬
‫‪Dir‬‬ ‫‪Page‬‬ ‫‪Offset‬‬
‫‪T  TTLB  (1  H TLB )(T1  T2 )  T3  P  TDISK‬‬
‫‪T1  TCacheDir  (1  H Cache )  Tcache Dir _ Miss‬‬
‫‪T2  TCachePagetable  (1  H Cache )  TCachePagetableMiss‬‬
‫‪T3  TCache Frame  (1  H Cache )  TCache FrameMiss‬‬
‫بررسی حالت های مختلف‪:‬‬
‫‪ - 1‬اگر در مراجعه به داده اصلی در قاب صفحه دچار فقدان صفحه شویم‪ ،‬دو حالت رخ می دهد‪.‬‬
‫الف‪ -‬قاو خالی وجود دارد و نیاز به جایگیینی صفحه نیست‪T  Tdisk :‬‬
‫و‪ -‬قاو خالی وجود ندارد و نیاز به جایگیینی صفحه می باشد‪T  2  TDisk :‬‬
‫‪ -2‬اگر ‪ TLB‬اصابت کند‪ .‬برای مراجعه به خود داده در حافظه دو حالت رخ می دهد‪:‬‬
‫الف‪ cache -‬اصابت کند‪T  TTranslation  Tcache :‬‬
‫و‪ cache -‬اصابت نکند‪T  Ttranslation  Tcache  Tcache misspenalty :‬‬
‫‪ -3‬اگر ‪ TLB‬اصابت نکند‪ ،‬با توجه به سه مورد "دایرکتوری‪ ،‬جدول صفحه و قاب" در این صورت چهلار حاللت‬
‫رخ می دهد‪:‬‬
‫الف‪ -‬در مراجعه به هر سه مورد‪ ،‬اصابت ‪ cache‬داشته باشیم‪:‬‬
‫‪T  TTLB  TCacheDir  TCachepagetable  Tcache Frame‬‬
‫و‪ -‬در مراجعه به یکی از سه مورد‪ cache ،‬اصابت نکند‪:‬‬
‫‪T  Told  1 Tpenalty‬‬
‫(منظور از ‪ ، Told‬همان ‪ T‬بدست آمده از حالت الف این حالت است)‬
‫ج‪ -‬در مراجعه به دو تا از سه مورد‪ cache ،‬اصابت نکند‪T  Told  2  Tpenalty :‬‬
‫د‪ -‬در مراجعه هر سه مورد‪ cache ،‬اصابت نکند‪T  Told  3  Tpenalty :‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰۰‬‬ ‫سیستم عامل‬

‫الگوریتمهای جایگزینی صفحه )‪(Page Replacement Algorithms‬‬

‫در یک سیستم ند برنامه ای که از بخش بنردی پویرا اسرتفاده میکنرد زمرانی خواهرد رسرید کره تمرام‬
‫فرایندهای موجود در حافظه اصلی در حالرت مسردود قررار دارنرد‪ .‬در ایرن حالرت سیسرتم عامرل یکری از‬
‫فرایندهای داخل حافظه اصلی را به خارج م ادله میکند تا فضای کافی برای فرایندی جدید یا یرک فراینرد‬
‫آماده و معلا ایجاد شود‪ .‬در این حالت سیستم عامل باید فرایندی که قرار است جرایگیین شرود را انتخراو‬
‫کند‪ .‬در واقع سیاست جایگیینی درباره انتخاو یک صفحه برای جرایگیینی در زمرانی کره الزم اسرت یرک‬
‫صفحه جدید به داخل آورده شود صح ت میکند‪.‬‬

‫الگوریتم های جایگزینی عبارتند از‪:‬‬


‫)‪( optimal‬‬ ‫‪ -1‬بهینه‬
‫‪ -2‬عدم استفاده در زذشته اخیر (‪)NRU‬‬
‫‪ -3‬خروج به ترتیب ورود (‪)FIFO‬‬
‫شانس)‪(Second Change‬‬ ‫‪ -4‬دومین‬
‫ساعت )‪(Clock‬‬ ‫‪-5‬‬
‫‪ -6‬کمترین استفاده در زذشته نیدیک (‪)LRU‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰1‬‬ ‫سیستم عامل‬

‫الگوریتم بهینه (‪)optimal‬‬


‫در این رود‪ ،‬صفحه ای جایگیین شود که به مدت طوالنی مورد استفاده قرار نخواهد زرفت‪.‬‬

‫الگوریتم بهینه‪ ،‬قابل اجرا نیست‪ ،‬ون نیاز به پیش بینی آینده دارد‪ .‬علت مطرح شدن این الگوریتم‪ ،‬استفاده از آن بره‬
‫عنوان شاخص مقایسه می باشد‪.‬‬

‫نام دیگر این الگوریتم‪ BO (Belady Optimal) ،‬می باشد‪.‬‬

‫مثال‬
‫تعداد فقدان صفحه برای مراجعات زیر با داشتن ‪ 3‬قاو صفحه در صورت استفاده از رود بهینه را مشرخص‬
‫کنید‪.‬‬
‫‪7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1‬‬
‫پاسخ‪:‬‬
‫در ابتدا به صفحه ‪ 7‬مراجعه شده و ون در قابها موجود نیست‪ ،‬فقدان صفحه رخ می دهد و این صفحه بره‬
‫داخل آورده می شود‪ .‬مراجعه به صفحه ‪ 0‬و ‪ 1‬نیی منجر به فقدان صفحه می شود‪.‬‬
‫حال به صفحه ‪ 2‬مراجعه می شود‪ .‬ون هر ‪ 3‬قاو پر شده است‪ ،‬باید یکی از صرفحه هرای ‪ 0 , 7‬و‪ ، 1‬را از‬
‫‪0‬‬ ‫قابها خارج کرد‪ ،‬که همان صفحه ‪ 7‬است‪ ،‬ون در آینده دورتری به آن مراجعه شده است‪ .‬بعد بره صرفحه‬
‫مراجعه می شود که در قاو موجود است و بعد بره ‪ 3‬مراجعره مری شرود کره جرای صرفحه ‪ 1‬قررار خواهرد‬
‫زرفت‪ ،‬ون صفحه ‪ 1‬بین صفحه های موجود در قاو در آن لحظره(یعنی ‪ )2,0,1‬در آینرده دورترری بره آن‬
‫مراجعه شده است‪.‬‬
‫این روال را ادامه می دهیم‪ .‬در نهایت ‪ 9‬خطای صفحه رخ می دهد‪.‬‬

‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬

‫الگوریتم ‪NRU‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰2‬‬ ‫سیستم عامل‬

‫در رود )‪ ، NRU( Not Recently Used‬وقتی نقص صفحه رخ می دهد‪، ،‬سیستم عامل بر اسراس وضرعیت بیرت هرای‬
‫ارجاع )‪ (R‬و اصالح )‪ ، (M‬صفحات را به هار کالس مطابا شکل زیر‪ ،‬تقسیم می کند و سپس به طور تصادفی ‪ ،‬صفحه ای‬
‫را از کالسی که در دسته با شماره کمتری باشد‪ ،‬را انتخاو می کند‪.‬‬
‫شماره کالس‬ ‫‪R‬‬ ‫‪M‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪3‬‬ ‫‪1‬‬ ‫‪1‬‬

‫در واقع صفحه ای انتخاو می شود که در درجه اول از ابتدای دوره جاری‪،‬استفاده نشرده اسرت و در درجره‬
‫دوم‪ ،‬از هنگام ورود به حافظه تغییر نکرده است‪ .‬صفحه متعلا به دسته شماره ‪ ، 0‬اخیرا مورد اسرتفاده قررار‬
‫نگرفته و تغییر نکرده است‪ .‬به همین علت بهترین انتخاو می باشد‪.‬‬
‫تذکر‪ :‬صفحه ای که بیت اصالح آن یک باشد‪ ،‬ق ل از جایگیینی باید نوشته شود‪.‬‬
‫کالس ‪ ،1‬زمانی رخ می دهد که در کالس ‪ ، 3‬بیت ‪ R‬در یک وقفه ساعت‪ 0 ،‬شود‪( .‬وقفه ساعت بیت ‪ M‬را ‪ 0‬نمی کند‪،‬‬
‫ون این بیت نشان دهنده این است که آیا این صفحه باید دوباره در دیسک نوشته شود یا خیر‪).‬‬
‫الگوریتم ‪FIFO‬‬
‫در این رود(خروج به ترتیب ورود) ‪ ،‬صفحه ای جایگیین شود که زمان بیشتری منتظر بوده است‪ .‬بررای جرایگیینی‪ ،‬صرفحه‬
‫موجود در ابتدای صف را انتخاو کرده و صفحه ای که وارد حافظه شده را به انتهای صف اضافه می کنیم‪.‬‬
‫مثال‬
‫تعداد فقدان صفحه برای مراجعات زیر با داشتن ‪ 3‬قراو صرفحه در صرورت اسرتفاده از رود ‪ ، FIFO‬نرد‬
‫است؟‬
‫‪7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1‬‬
‫پاسخ‪ :‬در ‪ FIFO‬از یک صف استفاده می شود که ط ا قانون صف‪ ،‬حذف از ابتدا و درج به انتها صرورت مری‬
‫زیرد‪ .‬سه مراجعه اول قابها را پر کرده و ‪ 3‬نقص صفحه رخ می دهد‪ .‬مراجعره بره صرفحه ‪ ،2‬موجرب حرذف‬
‫صفحه ‪( 7‬اول صف) شده و صفحه ‪ 2‬به انتهای صف اضافه می شود‪ .‬مراجعه بره صرفحه ‪ 0‬تغییرری را ایجراد‬
‫نمی کند ون در قاو موجود است‪ .‬مراجعه به صفحه ‪ 3‬موجب حذف ‪ 0‬از ابتدای صف و درج ‪ 3‬بره انتهرای‬
‫صف و بروز نقص صفحه خواهد شد‪ .‬در نهایت ‪ 15‬خطای صفحه داریم‪.‬‬
‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪7‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪0‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰3‬‬ ‫سیستم عامل‬

‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬
‫الگوریتم دومین شانس‬
‫الگوریتم دومین شانس‪ ،‬مانند ‪ FIFO‬می باشد‪ .‬با این تفاوت که وقتی نقص صفحه رخ می دهد‪ ،‬ازرر بیرت ‪ R‬قردیمی تررین‬
‫صفحه‪ 1 ،‬بود‪ ،‬این بیت ‪ 0‬شده و صفحه به انتهای لیست منتقل می شود‪ .‬با این کار به او شانس دوباره ای داده شده است‪.‬‬

‫ازر بیت ‪ R‬همه صفحات ‪ 1‬باشد‪ ،‬الگوریتم دومین شانس به ‪ FIFO‬ت دیل می شود‪.‬‬

‫مثال‬
‫سیستمی از الگوریتم دومین شانس استفاده می نماید‪ .‬در صورتی که بره شرماره صرفحه مجرازی ‪ 2‬ارجراع‬
‫شود‪ ،‬به جای کدام صفحه قرار می زیرد؟‬

‫پاسخ‪:‬‬
‫ون ‪ 1‬است‪ ،‬آن را صفر کرده و صفحه ها به انتهای صف منتقل می شوند‪ .‬حال به‬ ‫‪ 4‬و‪5‬‬ ‫بیت ‪ R‬صفحه های‬
‫صفحه ‪ 7‬رسیده ایم که ون بیت ‪ R‬آن صفر است‪ ،‬صفحه را از حافظه خارج کرده و صفحه ‪ 2‬را به جای آن‬
‫در انتهای صف اضافه می کنیم‪( .‬بیت ‪ R‬صفحه دو را ‪ 1‬قرار می دهیم‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰4‬‬ ‫سیستم عامل‬

‫الگوریتم ساعت‬
‫ازر ه الگوریتم دومین شانس‪ ،‬الگوریتم قابل ق ولی بود‪ ،‬اما به علت حذف صفحه از ابتدای لیست و اضرافه‬
‫کردن آن به انتهای لیست‪ ،‬روشی پر هیینه است‪ .‬برای حل این مشرکل از لیسرت رخشری اسرتفاده مری‬
‫شود‪ .‬در الگوریتم ساعت‪ ،‬لیست پیوندی صفحات به صورت حلقوی و به شرکل یرک سراعت نگهرداری مری‬
‫شود‪ ،‬به طوری که عقربه ساعت به قدیمی ترین صفحه اشاره می کند‪.‬‬
‫وقتی نقص صفحه رخ می دهد‪ ،‬به بیت ‪ R‬صفحه ای که توسط عقربه به آن اشاره شده‪ ،‬نگراه کررده کره دو‬
‫حالت رخ می دهد‪:‬‬
‫الف‪ -‬ازر بیت ‪ 0 ، R‬باشد‪ ،‬صفحه مورد نظر خارج شده و صفحه جدیرد در همران مکران جرایگیین شرده و‬
‫عقربه به جلو می رود‪.‬‬
‫و‪ -‬ازر بیت ‪ 1 ، R‬باشد‪ ،‬آنگاه ‪ 0‬شده و عقربه به صفحه بعدی اشاره خواهد کرد‪.‬‬

‫مثال‬
‫سیستمی دارای ‪ 4‬قاو صفحه است که مطابا جدول زیر صفحات مجازی در آن ها قررار دارنرد‪ .‬ازرر سیسرتم‬
‫عامل از الگوریتم ساعت )‪ (Clock‬استفاده نماید‪ ،‬در صورت وقوع نقص صفحه‪ ،‬صفحه جدید برا کردام صرفحه مجرازی بایرد‬
‫جایگیین شود؟‬
‫شماره‬ ‫زمان بارگذاری صفحه در‬
‫‪R‬‬
‫صفحه‬ ‫حافظه‬
‫‪1‬‬ ‫‪50‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪30‬‬ ‫‪0‬‬
‫‪3‬‬ ‫‪20‬‬ ‫‪1‬‬
‫‪4‬‬ ‫‪40‬‬ ‫‪0‬‬
‫پاسخ‪:‬‬
‫ابتدا عقربه بر روی قدیمی ترین صفحه یعنی صفحه ‪ 3‬است‪ .‬ون بیت ‪ R‬آن ‪ 1‬است‪ ،‬بیرت ‪ R‬آن ‪ 0‬شرده و عقربره بره جلرو‬
‫حرکت می کند و بر روی صفحه ‪ 2‬می رود(صفحه بعدی بر اساس زمان بارزرذاری) ‪ .‬رون بیرت ‪ R‬صرفحه ‪ ، 2‬صرفر اسرت‪،‬‬
‫صفحه جدید با این صفحه جایگیین می شود‪.‬‬

‫الگوریتمی به نام ‪ WS-Clock‬هست که در آن وقتری عقربره بره صرفحه ای مری رسرد‪ ،‬کره عضروی از‬
‫‪ (Working‬فرایند باشد‪ ،‬انتخاو نمی شود و عقربه بره جلرو مری رود‪ .‬بررای پیراده‬ ‫)‪Set‬‬ ‫مجموعه کاری‬
‫سازی این رود از فیلد سن )‪ (Age‬جدول صفحه استفاده می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰5‬‬ ‫سیستم عامل‬

‫(مجموعه صفحاتی که فرایند در حال حاضر از آنها استفاده می کند‪ ،‬مجموعه کاری نام دارد‪).‬‬
‫الگوریتم‪LRU‬‬
‫در رود ) ‪ ، LRU(Least Recently Used‬صفحه ای جایگیین می شود که برای مدت طوالنی مورد استفاده قرار نگرفته‬
‫است‪ .‬یعنی در زذشته دورتری به آن مراجعه شده است‪.‬‬
‫مثال‬
‫ند است؟‬ ‫‪LRU‬‬ ‫تعداد فقدان صفحه برای مراجعات زیر با داشتن ‪ 3‬قاو صفحه در صورت استفاده از رود‬
‫‪7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1‬‬
‫پاسخ‪:‬‬
‫در ابتدا به صفحه ‪ 7‬مراجعه شده و ون در قابها موجود نیست‪ ،‬فقدان صفحه رخ می دهد و این صفحه بره‬
‫داخل آورده می شود‪ .‬مراجعه به صفحه ‪ 0‬و ‪ 1‬نیی منجر به فقدان صفحه می شود‪.‬‬
‫حال به صفحه ‪ 2‬مراجعه می شود‪ .‬ون هر ‪ 3‬قاو پر شده است‪ ،‬باید یکی از صرفحه هرای ‪ 0 , 7‬و‪ ، 1‬را از‬
‫قابها خارج کرد‪ ،‬که همان صفحه ‪ 7‬است‪ ،‬ون نس ت به صفحه های ‪ 0‬و‪ 1‬در زذشته دورتری به آن مراجعه‬
‫شده است‪ .‬بعد به صفحه ‪ 0‬مراجعه می شود که در قاو موجود است و بعد به ‪ 3‬مراجعه می شود کره جرای‬
‫صفحه ‪ 1‬قرار خواهد زرفت‪ ،‬ون صفحه ‪ 1‬بین صفحه هرای موجرود در قراو در آن لحظره(یعنی ‪ )2,0,1‬در‬
‫زذشته دورتری به آن مراجعه شده است‪.‬‬
‫بنابراین الگوریتم ‪ LRU‬دارای ‪ 12‬خطای صفحه است‪.‬‬
‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬

‫پیاده سازی سخت افزاری ‪LRU‬‬


‫پیاده سازی الگوریتم ‪ ، LRU‬پر هیینه است‪ .‬یکی از طرح هرای سرخت افریاری بررای پیراده سرازی آن‪،‬‬
‫استفاده از ماتریس ‪ n  n‬است‪ .‬در این طرح‪ ،‬برای یک ماشین با ‪ n‬قاو صفحه‪ ،‬سرخت افریار ‪ ، LRU‬یرک‬
‫ماتریس ‪ n  n‬بیتی است‪ ،‬که در ابتدا همه عناصر آن صفر است‪ .‬ازر به قاو صفحه شماره ‪ k‬مراجعه شرود‪،‬‬
‫همه بیت های سطر ‪ k‬ام را یک می کند و سپس همه بیت های ستون ‪ k‬ام‪ ،‬را صفر می کند‪ .‬در هر لحظه‪،‬‬
‫سطری که مقدار دودویی آن از همه سطرها کمتر باشد‪ ،‬همان صفحه مورد نظر اسرت و نسر ت بره صرفحه‬
‫های دیگر‪ ،‬مدت طوالنی تری بدون استفاده مانده است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰6‬‬ ‫سیستم عامل‬

‫مثال‬
‫عملکرد این الگوریتم برای ‪ 4‬قاو صفحه و دسترسی به صفحات ‪( 0 1 2 3 2 1 0 3 2 3‬از پ به است) در شکل زیر نشان‬
‫داده شده است‪.‬‬
‫ون ‪ 4‬قاو داریم‪ ،‬پس یک ماتریس ‪ 4  4‬بیتی با عناصر صفر در نظر می زیریم‪ .‬اولین درخواست به صفحه ‪ 0‬است‪.‬‬
‫بنابراین ابتدا همه بیت های سطر شماره صفر را ‪ 1‬می کنیم‪ .‬سپس همه بیت های ستون شماره صفر را ‪ 0‬می کنیم(شکل ‪.)a‬‬
‫درخواست بعدی شماره ‪ 1‬است‪ .‬در ماتریس شکل ‪ ، a‬ابتدا سطر یک را ‪ 1‬کرده و سپس ستون یک را ‪ 0‬می کنیم (شکل ‪. )b‬‬
‫و‪...‬‬

‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0 1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0 0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0 0‬‬ ‫‪0‬‬
‫‪2‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1 0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1 0‬‬ ‫‪1‬‬
‫‪3‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1 1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1 0‬‬ ‫‪0‬‬
‫)‪(a‬‬ ‫)‪(b‬‬ ‫)‪(c‬‬ ‫)‪(d‬‬ ‫)‪(e‬‬

‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1 2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪0 0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪3‬‬ ‫‪1‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1 1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫)‪(f‬‬ ‫)‪(g‬‬ ‫)‪(h‬‬ ‫)‪(i‬‬ ‫)‪(j‬‬

‫مثال‬
‫یک سیستم با ‪ 256‬مگا بایت حافظه اصلی را در نظر بگیرید که از تکنیک صفحه بندی با اندازه قاو ‪ 4‬کیلو بایت استفاده می‬
‫کند‪ .‬ازر بخواهیم الگوریتم کمترین استفاده در زذشته اخیر)‪ (LRU‬را با رود ماتریس دو بعدی تقریب بینیم‪ ،‬قدر حافظره‬
‫برای ذخیره سازی ماتریس نیاز است؟‬
‫پاسخ‪:‬‬
‫از آنجا که در این طرح‪ ،‬برای یک ماشین با ‪ n‬قاو صفحه‪ ،‬یک ماتریس ‪ n  n‬بیتی در نظر زرفته می شود‪ ،‬پس ابتدا تعرداد‬
‫قاو ها را محاس ه می کنیم‪:‬‬
‫‪256MB 28  2 20 2 28‬‬
‫‪ 2 10  12  216‬‬
‫‪4 KB‬‬ ‫‪2 2‬‬ ‫‪2‬‬
‫بنابراین ماتریس مورد نیاز ‪ 216  216‬بیتی است‪.‬‬
‫نحوه ت دیل ‪ 216  216‬بیت به بایت‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰7‬‬ ‫سیستم عامل‬

‫‪216  216‬‬
‫‪ 2 29  2 9  2 20  512MB‬‬
‫‪8‬‬
‫بنابراین به ‪ 512‬مگا بایت (دو برابر اندازه حافظه اصلی)‪ ،‬حافظه نیاز داریم‪.‬‬

‫شبیه سازی ‪ LRU‬در نرم افزار (الگوریتم سالمندی)‬

‫در الگوریتم سالمندی )‪ ،(Aging‬از فیلد سن)‪ (age‬در جدول صفحه استفاده می شود که م ال می تواند ‪8‬‬
‫بیتی باشد‪ .‬مقدار این فیلد در هنگام بارزذاری صفحه‪ 0 ،‬است‪ .‬سیستم عامل در هر وقفه ساعت‪ ،‬فیلد سن‬
‫را در بیت انتهایی‬ ‫‪R‬‬ ‫همه صفحه های موجود در حافظه را یک بیت به سمت راست شیفت داده و بیت‬
‫همه صفحات را ‪ 0‬می کند‪ .‬ازر نقص صفحه رخ‬ ‫‪R‬‬ ‫سمت پ(بیت با ارزد)‪ ،‬قرار می دهد‪ .‬سپس فیلد‬
‫دهد‪ ،‬صفحه ای با کمترین مقدار شمارنده برای جایگیینی انتخاو می شود‪.‬‬
‫آن برابر ‪ 1‬باشد‪ ،‬پس از پایان پریود‬ ‫‪R‬‬ ‫به عنوان م ال ازر فیلد سن یک صفحه برابر ‪ 00001101‬و بیت‬
‫در بیت‬ ‫‪R‬‬ ‫زمانی‪ ،‬ابتدا این فیلد به اندازه یک بیت به راست شیفت داده شده (‪ )0000110‬و سپس بیت‬
‫انتهایی سمت پش قرار می زیرد‪ .‬پس فیلد سن برابر ‪ 10000110‬خواهد شد‪.‬‬
‫به کمک فیلد سن می توان به تاریخچه مراجعات به صفحه در ند دوره اخیر پی برد‪ .‬به عنوان م ال ازر‬
‫فیلد سن یک صفحه ‪ 11000111‬باشد‪ ،‬متوجه می شویم که به این صفحه در دو دوره اخیر مراجعه شده ‪.،‬‬
‫در سه دوره ق ل از آن‪ ،‬مراجعه ای به آن انجام نشده و ق ل از این پنج دوره‪ ،‬در سه دوره متوالی نیی به این‬
‫صفحه مراجعه شده است‪.‬‬
‫مثال‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰8‬‬ ‫سیستم عامل‬

‫ازر فیلد سن صفحه ‪ 1‬برابر ‪ 00010010‬و فیلد سن صفحه ‪ 2‬برابرر ‪ 00010000‬باشرد‪ ،‬کردام صرفحه بررای‬
‫جایگیینی انتخاو می شود؟‬
‫پاسخ‪ :‬به هر یک از دو صفحه در سه دوره متوالی اخیر‪ ،‬مراجعه ای نشده است‪ .‬ولی به هرر دو در دوره ق رل‬
‫از آن مراجعه شده است‪ .‬اما نمی توان تشخیص داد که به کردام صرفحه در آن دوره‪ ،‬دیرترر مراجعره شرده‬
‫است‪ .‬در اینصورت ون به صفحه شماره ‪ 1‬در سه دوره ق ل از آن مراجعه شده و در مورد صفحه ‪ 2‬نرین‬
‫نمی باشد‪ ،‬صفحه ‪ 1‬برای جایگیینی انتخاو می شود‪.‬‬
‫یکی از تفاوت های رود سالمندی با ‪ LRU‬این است‪،‬که نمی تروان تقردم و تراخر دسترسری هرا در‬
‫داخل یک دوره را تشخیص داد‪.‬‬

‫ون تعداد بیت های شمارنده در رود سالمندی محدود است‪( ،‬به طور م ال ‪ 8‬بیرت) ‪ ،‬ازرر مقردار‬
‫شمارنده برای دو صفحه ‪ 00000000‬باشد‪ ،‬ازر به یکی از آنها در ‪ 9‬دوره ق ل مراجعه شده باشد و به‬
‫دیگری در ‪100‬دوره ق ل‪ ،‬نمی توان از این موضروع آزراه شرد‪ .‬در اینصرورت یرک صرفحه بره صرورت‬
‫تصادفی انتخاو می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪2۰9‬‬ ‫سیستم عامل‬

‫الگوریتم های جایگیینی ‪ LFU‬و ‪ MFU‬نیی وجود دارد که به علت پایین بودن کارایی‪ ،‬در بیشتر منرابع‬
‫‪MFU‬‬ ‫بیان نشده است‪ .‬در صورت وقوع نقص صفحه‪ ،‬در ‪ ، LFU‬صفحه با کمترین مقدار شمارنده و در‬
‫‪ ،‬صفحه با بیشترین مقدار شمارنده‪ ،‬جهت جایگیینی انتخاو می شود‪.‬‬

‫الگوریتم بافر کردن صفحه‬


‫در این رود‪ ،‬تعدادی قاو صفحه به عنوان بافر رزرو شده و صفحات درون آن از نظر جدول صرفحه‪ ،‬غایرب‬
‫در نظر زرفته می شوند و با مراجعه به آنها نقص صفحه رخ می دهد‪ .‬در این رود سه لیست صفحه داریم‪:‬‬
‫‪ -2‬درون بافر(بدون تغییر) ‪ -3‬درون بافر(تغییر یافته)‬ ‫‪ -1‬درون حافظه‬
‫این لیست ها‪ ،‬به ترتیب ورود مرتب می باشند‪ .‬هنگامی که صفحه ای با الگوریتم ‪ ، FIFO‬از ابتردای لیسرت‬
‫اول برای جایگیینی انتخاو می شود‪ ،‬از لیست اول خارج شده و به انتهای لیست دوم یرا سروم اضرافه مری‬
‫شود‪ .‬این صفحه واقعا از حافظه خارج نمی شود(در جدول صفحه به عنوان غایب عالمت زذاری می شرود)و‬
‫به جای آن یک صفحه از ابتدای لیست دوم و یا سوم خارج شده و واقعا از حافظه حذف می شود‪.‬‬
‫یکی از نقطه ضعف های الگوریتم ‪ ، FIFO‬اخراج صفحات قدیمی پر استفاده است که در الگوریتم بافر کردن‬
‫صفحه برطرف شده است‪ .‬ون ازر صفحه ای با استفاده زیاد‪ ،‬به طور ظاهری اخراج شود‪ ،‬به زودی با نقرص‬
‫صفحه مواجه شده و به سرعت این صفحه از بافر بر زردانده می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪21۰‬‬ ‫سیستم عامل‬

‫نکات طراحی سیستم های صفحه بندی‬


‫تعداد کل قاو صفحاتی که می توان در یک سیستم به مجموعه فرایندها داد‪ ،‬مقداری ثابرت و متناسرب برا‬
‫اندازه حافظه اصلی است‪ .‬کاهش تعداد قاو ها باعث می شود که یک فرایند نتواند مجموعه صفحاتی که در‬
‫طی یک زمان از آنها استفاده می کند را در حافظه اصلی بارزذاری کند‪ .‬در نتیجه تعرداد نقرص صرفحه هرا‬
‫زیاد می شود‪ .‬در این وضعیت‪ ،‬زمان ‪ CPU‬به جای اجرای فرایندها‪ ،‬صررف م ادلره صرفحه هرا مری شرود و‬
‫کارایی سیستم کاهش می یابد‪ .‬به این پدیده‪ ،‬کوبیدزی (‪ )Thrashing‬می زویند‪.‬‬
‫از مشکل های دیگر‪ ،‬می توان به این موضوع اشاره کرد کره ازرر در ابتردای بارزرذاری یرک فراینرد‪ ،‬نتروان‬
‫مجموعه کاری را تشخیص داد‪ ،‬باید آنقدر نقص صفحه به وجود آورد تا مجموعه کراری اد در حافظره لرود‬
‫شود‪ .‬که باعث کند شدن سیستم می شود‪ .‬بنابراین به دن ال راه حل هایی هستیم تا از این نوع مشکالت به‬
‫وجود نیاید‪.‬‬

‫پیش صفحه بندی )‪(prepaging‬‬


‫سیاست واکشی در مورد تعیین زمانی که یک صفحه باید به داخل حافظه آورده شود‪ ،‬دو رویکرد دارد‪:‬‬
‫‪ -1‬صفحه بندی درخواستی‬
‫‪ -2‬پیش صفحه بندی‬
‫در صفحه بندی درخواستی‪ ،‬فقط زمانی که مراجعه ای به مکانی از یک صفحه شود‪ ،‬آن صفحه بره حافظره اصرلی آورده مری‬
‫شود‪ .‬ولی در پیش صفحه بندی‪ ،‬صفحه هایی به غیر از آنچه به وسیله خطای صفحه درخواست شده نیی به داخرل آورده مری‬
‫شوند‪.‬‬
‫یکی از خصوصیات صفحه بندی درخواستی‪ ،‬رخ دادن تعداد زیادی خطای صفحه در شروع یک کار می باشد‪ ،‬که پیش صفحه‬
‫بندی سعی به جلوزیری از این صفحه بندی زیاد دارد و از ابتدا تمام صفحات مورد نیاز فرایند را به صورت یکجا‪ ،‬بره حافظره‬
‫می آورد‪.‬‬

‫سیاست پیش صفحه بندی می تواند یا در زمان شروع فرایند به کار زرفته شود یا هر بار که یک خطای صفحه رخ می‬
‫دهد‪.‬‬

‫مدل مجموعه کاری)‪(working sets‬‬


‫در هر لحظه زمانی)‪ ، (t‬مجموعه ای از صفحات وجود دارد که در ‪ k‬مراجعه اخیر به حافظره‪ ،‬مرورد اسرتفاده‬
‫واقع شده اند‪ .‬به این مجموعه‪ ،‬مجموعه کاری می زویند و به صورت )‪ w(k,t‬نمایش داده می شود‪ .‬سیسرتم‬
‫عامل با نظارت به مجموعه کاری هر فرایند‪ ،‬به آن قاو کافی اختصاص می دهد‪ .‬ازرر مجمروع انردازه هرای‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪211‬‬ ‫سیستم عامل‬

‫مجموعه کاری فرایندها‪ ،‬زیادتر از تعداد کل قاو ها شود‪ ،‬پردازد معلا شده و از کوبیدزی پیشرگیری مری‬
‫شود‪.‬‬
‫مثال‬
‫(از پ به راست)‬ ‫در صورت وجود ارجاعات یک برنامه به صفحات حافظه به ترتیب زیر‬
‫‪4,2,0,2,1,5,1,2,3,2,1,2,6,2,1,3‬‬
‫مجموعه کاری ) ‪ w(t , k‬که در آن ‪ t‬برابر زمان بین ارجاع هشتم و نهم و ‪ k‬برابر هار باشد‪ ،‬کدام است؟‬
‫پاسخ‪ :‬از ارجاع بین دهم و یازدهم به اندازه ‪ 4‬ارجاع به عقب بر می زردیم‪:‬‬
‫‪4,2,0,2,1,5,1,2,3,2,1,2,6,2,1,3‬‬
‫}‪W (t , k )  {1,2,5‬‬ ‫بنابراین داریم‪:‬‬

‫الگوریتم فرکانس نقص صفحه )‪(PFF‬‬


‫‪ ، PFF( Page Fault‬کران باال و پایین برای نرخ خطای صفحه تعیرین مری شرود‪ .‬ازرر‬ ‫)‪Frequency‬‬ ‫در رود‬
‫نرخ خطای صفحه از کران باال‪ ،‬بیشتر شود‪ ،‬قاو دیگری به آن فرایند تخصریص داده مری شرود و ازرر نررخ‬
‫خطای صفحه از کران پایین کمتر شود‪ ،‬قابی از فرایند پس زرفته می شود‪.‬‬
‫سعی می کند که نرخ صفحه بندی را بین دو حد قابل ق ول نگه دارد تا از تفریط(کوبیردزی)‬ ‫‪PFF‬‬ ‫بنابراین‬
‫و افراط(اتالف حافظه) جلوزیری شود‪.‬‬

‫تناقض بلیدی (‪)Belady's anomaly‬‬


‫در رود ‪ FIFO‬ممکن است با افیایش تعداد قابها‪ ،‬خطای صفحه کم نشود که به این پدیده تناقض بلیدی می زویند‪ .‬تنراقض‬
‫بلیدی در الگوریتم های ‪ BO,LRU‬رخ نمی دهد‪ .‬در واقع تناقض بلیدی به این معنی است که الگوریتم ‪ FIFO‬ممکن اسرت‬
‫از نمودار زیر‪ ،‬پیروی نکند‪:‬‬

‫مثال‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪212‬‬ ‫سیستم عامل‬

‫دستیابی به صفحات } ‪ { 4 , 3 , 2 , 1 , 4 , 3 , 5 , 4 , 3 , 2 , 1 , 5‬را در نظر بگیرید‪ .‬ازر اندازه حافظه سره صرفحه‬
‫باشد‪ ،‬تعداد ‪ 9‬نقص صفحه رخ می دهد و ازر اندازه حافظه را به هار صفحه افیایش دهیم‪ ،‬تعداد ده نقرص‬
‫صفحه رخ می دهد‪ .‬به این موضوع تناقض ‪ FIFO‬می زویند‪ .‬ون انتظار داشتیم برا افریایش تعرداد قابهرای‬
‫صفحه‪ ،‬تعداد فقدان صفحه ها )‪ (page fault‬کمتر شود ولی این نین نشد‪.‬‬
‫پاسخ‪ :‬با ان اره ‪ 3‬صفحه ای‪ 9 ،‬فقدان صفحه رخ می دهد‪:‬‬
‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬
‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪5‬‬
‫‪3‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬

‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬

‫و با در نظر زرفتن ان اره ‪ 4‬صفحه ای‪ 10 ،‬فقدان صفحه رخ می دهد‪:‬‬


‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬
‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬
‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪213‬‬ ‫سیستم عامل‬

‫الگوریتم های پشته (‪)Stack Algorithms‬‬


‫الگوریتم پشته ای الگوریتمی است که در آن‪ ،‬مجموعه ای از صفحات موجود در حافظه برای ‪ n‬قاو‪ ،‬همیشره‬
‫زیر مجموعه ای از صفحاتی است که برای ‪ n+1‬قاو در حافظه خواهند بود‪ .‬الگروریتم هرای پشرته ای هیچگراه د رار‬
‫تناقض بلیدی نمی شوند‪.‬‬
‫اندازه صفحه‬
‫اندازه صفحات توانی از ‪ 2‬هستند‪ .‬برای تعیین اندازه صفحه باید به موارد زیر توجه شود‪:‬‬
‫‪ -1‬اندازه جدول صفحه‬
‫استفاده از صفحه های کو کتر موجب افیایش اندازه جدول صفحه می شود‪ .‬ون تعداد صفحات زیادتر می شود‪.‬‬
‫‪ -2‬بهره وری‬
‫هر ه صفحه کو کتر باشد‪ ،‬بهره وری بیشتر است‪ ،‬ون تکه تکه شدن داخلی کمتر می شود‪.‬‬
‫‪ -3‬زمان خواندن یا نوشتن یک صفحه‬
‫استفاده از صفحه های کو کتر‪ ،‬موجب کاهش کل زمان ‪ I/O‬می شود‪ ،‬ون محلی بودن به ود می یابد‪.‬‬

‫کاهش اندازه صفحه موجب‪:‬‬


‫الف‪ -‬کاهش تکه تکه شدن داخلی حافظه می شود‪.‬‬
‫و‪ -‬افیایش بهره وری حافظه و افیایش زمان ‪ I/O‬می شود‪.‬‬
‫ج‪ -‬کاهش زمان سرویس نقص صفحه می شود‪.‬‬
‫تذکر‪ :‬برای کمینه کردن تعداد خطای صفحه باید از صفحات بیرگ استفاده شود‪.‬‬

‫اندازه صفحه بهینه برابر ‪ P  2Se‬می باشد‪ : s(.‬اندازه فرایند)(‪:e‬اندازه یک مدخل جدول صفحه)‬
‫مثال‬
‫در محیط یک سیستم عامل که از رود حافظه مجازی برای مدیریت حافظه استفاده میکند‪ ،‬نانچه اندزه‬
‫هرفرایند ‪ 64‬کیلوبایت و برای هر پروسس در جدول صفحه‪ 8 ،‬بایت اطالعرات ذخیرره شرود‪ ،‬انردازه صرفحه‬
‫بهینه در این سیستم ند بایت خواهد بود؟‬
‫‪P  2Se  2  64  210  8  220  210‬‬

‫ساختار برنامه‬
‫در بیشتر موارد‪ ،‬کاربر از ماهیت صفحه بندی حافظه بی اطرالع اسرت و در بعضری مروارد مطلرع اسرت کره‬
‫موجب به ود کارایی سیستم می شود‪ .‬به طور م ال در سیستمی کره انردازه صرفحات ‪ 4‬کلمره اسرت‪ ،‬یرک‬
‫برنامه نویس پاسکال می خواهد آرایه ‪ A‬را با صفر مقدار دهی اولیه کند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪214‬‬ ‫سیستم عامل‬

‫‪Var‬‬ ‫;‪A : Array [1..4] [1..4] of integer‬‬


‫می دانیم که آرایه در پاسکال به صورت سطری در حافظه ذخیره می شود‪ .‬بنرابراین هرر سرطر آرایره یرک‬
‫صفحه را اشغال می کند‪.‬‬
‫الف‪ :‬الگوریتم ناکارا‬
‫‪for‬‬ ‫‪j:=1 to 4 do‬‬
‫‪for i:=1 to 4 do‬‬
‫;‪A[i][j] := 0‬‬
‫این کد‪ ،‬یک کلمه از یک صفحه و یک کلمه از صفحه دیگر را صفر می کند و این روند ادامه می یابرد‪ .‬ازرر‬
‫سیستم عامل برای کل برنامه کمتر از هار قاو را تخصیص دهد‪ ،‬اجرای آن منجر به ‪ 16‬خطای صفحه مری‬
‫زردد‪(4  4  16) .‬‬

‫ب‪ :‬الگوریتم کارا‬


‫‪for i=1 to 4 do‬‬
‫‪for j=1 to 4 do‬‬
‫;‪A[i][j]=0‬‬
‫این کد تمام کلمات یک صفحه را صفر می کند و سپس به صفحه بعدی می پردازد و به همین علت تعرداد‬
‫خطای صفحه برابر هار می شود‪.‬‬
‫بنابراین‪ ،‬انتخاو درست ساختمان داده ها و ساختارهای برنامه نویسی می تواند موجب افیایش محلی برودن‬
‫مراجعات و کاهش نرخ خطای صفحه و تعداد صفحات موجود در مجموعه کاری شود‪.‬‬
‫مثال‬
‫ماتریس ]‪ A[1..4][1..4‬به صورت ردیفی )‪ (row–major‬مفروض است‪ .‬دستورات زیر عناصرر ایرن مراتریس را صرفر مری‬
‫کند‪:‬‬
‫‪for j:=1 to 4 do‬‬
‫‪for i:=1 to 4 do‬‬
‫;‪A[i][j]:=0‬‬
‫فرض کنید این برنامه در یک سیستم با مدیریت حافظه صفحه بندی بر حسب نیراز )‪ (demand paging‬کره انردازه قراو‬
‫صفحه آن ‪ 8‬کلمه است اجرا می شود‪ .‬به این برنامه ‪ 2‬قاو صفحه اختصاص داده شده است که دسرتورات برنامره در یکری از‬
‫این قابها بار شده است‪ .‬قاو دیگر که ابتدا خالی است برای داده ها منظور شده است‪ .‬ازر بررای جرایگیینی صرفحات از رود‬
‫‪ LRU‬استفاده شود‪ ،‬تعداد کل فقدان صفحات قدر است؟‬
‫(هر خانه آرایه از نوع ‪ integer‬است که یک کلمه از حافظه را اشغال می کند)‬
‫حل‪ :‬حلقه های داده شده‪ ،‬ماتریس را به صورت ستون به ستون صفر می کند‪ .‬از آنجرا کره مراتریس داده شرده دو صرفحه را‬
‫‪4 4‬‬
‫( ‪ ،‬و هر دو سطر آن یک صفحه است‪ ،‬در هر با خواندن صفحه (دو سطر)‪ ،‬فقرط دو خانره از یرک‬ ‫اشغال می کند )‪ 2‬‬
‫‪8‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪215‬‬ ‫سیستم عامل‬

‫ستون مقدار دهی می شوند و برای مقدار دهی به هر دو خانه‪ ،‬یک نقص صفحه رخ می دهد و تعداد کل نقص صفحه ها برابر‬
‫‪4 4‬‬
‫است با‪ 8 :‬‬
‫‪2‬‬
‫قطعه بندی‬
‫در رود قطعه بندی برای مدیریت حافظه‪ ،‬برنامه و داده ها به تعدادی قطعه (‪ )Segment‬تقسیم میشروند و‬
‫لیومی ندارد اندازه این قطعهها هم اندازه باشند‪ .‬هنگامی کره یرک فراینرد بره داخرل آورده میشرود‪ ،‬کلیره‬
‫قطعههای آن به داخل حافظه بار میشوند و جدول قطعه ایجاد می شود‪ .‬هر سطر این جدول شرامل آدرس‬
‫شروع قطعه مورد نظر در حافظه اصلی و طول قطعه می باشد‪.‬‬
‫نکاتی در رابطه با قطعه بندی‪:‬‬
‫‪ -1‬آدرس منطقی در قطعه بندی از دو قسمت تشکیل یافته است‪ :‬شماره قطعه و آفست‪.‬‬
‫‪ -2‬امتیاز قطعه بندی‪ ،‬حفاظت از قطعات و اشتراک داده ها و کد می باشد‪.‬‬
‫‪ -3‬الگوی صفحه بندی نمی تواند حافظه فیییکی را از دیدزاه کاربر نس ت به حافظه تفکیک کند‪.‬‬
‫‪ -4‬قطعه بندی به دلیل بکارزیری قطعههای غیرهم اندازه‪ ،‬مشابه بخش بندی پویا است‪.‬‬
‫اشرغال‬ ‫‪ -5‬تفاوت قطعه بندی با بخش بندی در این است که یک برنامه میتواند بیش از یک بخش را‬
‫کند و لیومی ندارد این بخشها پیوسته باشند‪.‬‬
‫‪ -6‬قطعه بندی تکه تکه شدن داخلی را حذف میکند‪ ،‬اما دارای تکه تکه شدن خارجی است‪.‬‬
‫‪ -7‬تکه تکه شدن خارجی هم در بخش بندی پویا وهم در قطعه بندی وجود دارد‪ .‬اما ون یرک فراینرد بره‬
‫قطعههای کو کتر شکسته میشود‪ ،‬تکه تکه شدن خارجی در قطعه بندی کمتر است‪.‬‬
‫‪ -8‬در حالی که صفحه بندی از دید برنامهسراز مخفری اسرت‪ ،‬قطعره بنردی قابرل رویرت و عامرل تسرهیل‬
‫سازماندهی برنامهها و دادهها میباشد‪.‬‬
‫مثال‬
‫مفروض اسرت‪ .‬نحروه تولیرد آدرس فیییکری در رود قطعره‬ ‫‪0001001011110000‬‬ ‫آدرس منطقی ‪ 16‬بیتی‬
‫بندی را نشان دهید‪( .‬آفست ‪ 12‬بیتی و شماره قطعه ‪ 4‬بیتی)‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪216‬‬ ‫سیستم عامل‬

‫تذکر‪ :‬آدرس فیییکی از جمع آفست ‪ 12‬بیتی با مقدار پایه بدست می آید‪.‬‬
‫تذکر ‪ :‬حداک ر اندازه قطعه برابر ‪ 212  4096‬می باشد‪.‬‬
‫مثال‬
‫در یک سیستم حافظه قطعه بندی ساده‪ ،‬با جدول قطعه زیر‪ ،‬کدام آدرس منطقری )‪ (2,700) ، (0,150‬فاقرد‬
‫آدرس فیییکی هستند؟‬
‫‪Base‬‬ ‫‪Length‬‬
‫‪0‬‬ ‫‪500‬‬ ‫‪200‬‬
‫‪1‬‬ ‫‪700‬‬ ‫‪1000‬‬
‫‪2‬‬ ‫‪400‬‬ ‫‪600‬‬

‫پاسخ‪ :‬آدرس منطقی در سیستم قطعه بندی از دو قسمت (شماره قطعه و آفسرت) تشرکیل شرده‪ ،‬بنرابراین‬
‫)‪.(700>600‬‬ ‫آدرس منطقی)‪ (2,700‬آدرس فیییکی ندارد‪ ،‬ون‬
‫‪ .‬ایرررن آدرس برابرررر اسرررت‬ ‫‪150<200‬‬ ‫آدرس منطقررری )‪ ، (0,150‬دارای آدرس فیییکررری اسرررت‪ ،‬رررون‬
‫با‪500+150=650:‬‬

‫مزایای سازماندهی بر اساس قطعه بندی‬


‫‪ -1‬ساده شدن اداره ساختمان دادههای رشد کننده‬
‫‪ -2‬میسر ساختن اشتراک بین فرایندها‬
‫‪ -3‬میسر شدن حفاظت‬
‫‪ -4‬امکان تغییر برنامهها به صورت مستقل و ترجمه آنها بدون نیاز به پیوند و بار شدن همه مجموعهها‬
‫قطعه بندی درخواستی‬
‫در قطعه بندی ساده‪ ،‬هرفرایند جدول قطعه خودد را دارد و هرزاه تمام قطعههای مربوط به آن فرایند بره‬
‫داخل حافظه اصلی بارشدند‪ ،‬جدول قطعه برای آن فرایند ایجاد و داخل حافظه بار میشرود‪ .‬امرا در حافظره‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪217‬‬ ‫سیستم عامل‬

‫مجازی با قطعه بندی ‪ ،‬لیومی ندارد تمام قطعه های یک فرایند درحافظه اصلی باشند و میتوانند برحسرب‬
‫نیاز به داخل خوانده شوند‪ .‬هر مدخل جدول قطعه شامل موارد زیر است‪:‬‬
‫)‪(P‬‬ ‫‪ -3‬بیت حضور‬ ‫‪ -2‬پایه قطعه‬ ‫‪ -1‬طول قطعه‬
‫‪ -5‬بیتهای کنترلی دیگر‬ ‫‪ -4‬بیت تغییر (‪)M‬‬
‫ازر بیت حضور فعال باشد (قطعه مورد نظر در حافظه اصلی باشد)‪،‬آدرس شروع قطعه و طول قطعره نیری در‬
‫مدخل جدول در نظر زرفته میشود‪.‬‬

‫هنگامی که فرایندی در حال اجرا است‪ ،‬آدرس شروع جدول قطعه این فرایند در یک ث رات نگهرداری‬
‫میشود‪.‬‬

‫شکل زیر نحوه ترجمه آدرس در یک سیستم قطعه بندی مجازی را نشان می دهد‪:‬‬

‫)‪(Segmentation with paging‬‬ ‫قطعه بندی صفحه بندی‬


‫در سیستم ترکی ی قطعه بندی و صفحه بندی‪ ،‬فضای آدرس به تعدادی قطعه تقسیم میشرود و هرر قطعره‬
‫نیی به تعدادی صفحه تقسیم میشوند‪ .‬برای هر فرایند یک جدول قطعه و ند جدول صفحه وجود دارد‪.‬‬
‫آدرس مجازی در این سیستم از ‪ 3‬قسمت تشکیل شده است‪:‬‬
‫شماره قطعه‬ ‫شماره صفحه‬ ‫آفست درون صفحه‬
‫آدرس فیییکی نیی برابر است با‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
218 ‫سیستم عامل‬

‫شماره قاو صفحه‬ ‫آفست درون صفحه‬


(PTBA: Page Table Base Address)

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪219‬‬ ‫سیستم عامل‬

‫مثال‬
‫یک حافظه به اندازه ‪ 8KB‬و با صفحات ‪ 512‬بایتی را در نظر بگیرید که با رود قطعات صفحه بندی شده مدیریت می شود‪.‬‬
‫جدول قطعه به صورت زیر است‪:‬‬
‫‪PTBA‬‬ ‫‪Limit‬‬
‫‪0‬‬ ‫‪0070‬‬ ‫‪8‬‬
‫‪1‬‬ ‫‪0078‬‬ ‫‪8‬‬
‫‪2‬‬ ‫‪0086‬‬ ‫‪8‬‬
‫‪3‬‬ ‫‪0094‬‬ ‫‪8‬‬

‫آدرس فیییکی متناظر با آدرس مجازی زیر را مشخص کنید‪.‬‬

‫‪S# P#‬‬ ‫‪Offset‬‬


‫‪11 101 1010101101‬‬

‫(الزم است بدانید در خانه به آدرس حافظه ‪ 0099‬مقدار ‪ 9H‬ذخیره شده است‪).‬‬
‫پاسخ‪:‬‬
‫با توجه به آدرس مجازی داده شده‪ ،‬ون شماره قطعه برابر ‪( 3‬همان ‪ 11‬در م نای دو) می باشرد‪ ،‬بره انردیس ‪ 3‬در جردول‬
‫قطعه مراجعه کرده و مقدار ‪ PTBA‬یعنی ‪ 0094‬مشخص می شود‪ .‬این مقدار را برا شرماره صرفحه یعنری ‪( 5‬همران‪ 101‬در‬
‫م نای دو) جمع می کنیم و حاصل برابر ‪ 0099‬می شود‪ .‬در این آدرس‪ ،‬شماره قاو نوشته شده است(‪ .) 9H‬با قرار دادن این‬
‫مقدار ق ل از آفست‪ ،‬آدرس فیییکی بدست می آید‪:‬‬

‫‪P#‬‬ ‫‪offset‬‬
‫‪1001 1010101101‬‬

‫که این آدرس (یعنی ‪ )10011010101101‬در م نای شانیده برابر است با ‪26AD :‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪22۰‬‬ ‫سیستم عامل‬

‫مثال‬
‫‪4‬‬ ‫مدیریت حافظه در یک سیستم فرضی به صورت قطعه بندی صفحه بندی شده است و اندازه هرر صرفحه‬
‫)‪(STBA‬‬ ‫کیلو بایت است‪ ،‬یعنی آفست ‪ 12‬بیتی است‪ .‬در ‪ PCB‬یک فرایند بررای آدرس پایره جردول قطعره‬
‫مقدار ‪ 0B05H‬دیده می شود‪ .‬ازر در این فرایند آدرس منطقی ] ‪ [ 01H , 4678H‬تولید شود‪ ،‬آدرس فیییکری‬
‫نظیر ه خواهد بود؟‬
‫(بخش اول آدرس منطقی شماره قطعه است‪( ).‬حرف ‪ H‬به معنی ‪ Hex‬است‪).‬‬
‫هر درایه جدول قطعه سه بایتی است‪ .‬بایت اول و دوم نشان دهنرده آدرس پایره جردول صرفحه)‪ (PTBA‬و‬
‫بایت سوم مسخص کننده ‪ LIMIT‬می باشد‪.‬‬
‫هر درایه جدول صفحه یک بایتی است و نشان دهنده شماره قاو است‪.‬‬
‫)‪(0B08=0B ,0B09=07 , 0B0B=0D‬‬ ‫محتویات حافظه به صورت زیر است‪:‬‬
‫پاسخ‪:‬‬
‫در مدیریت حافظه به رود"قطعه بندی صفحه بندی شده"‪ ،‬آدرس منطقری از سره قسرمت تشرکیل شرده‬
‫است‪:‬‬
‫شماره قطعه‬ ‫شماره صفحه‬ ‫آفست‬
‫در آدرس منطقی داده شده ]‪ ، [01,4678‬قسمت اول یعنی ‪ ، 01‬شرماره قطعره مری باشرد‪ .‬همچنرین رون‬
‫آفست ‪ 12‬بیتی است و ون یک عدد ‪ 12‬بیتی در م نای دو‪ ،‬معادل یک عدد ‪ 3‬رقمی در م نای شانیده می‬
‫باشد‪ ،‬در نتیجه آفست برابر سه رقم آخر یعنی ‪ 678‬می باشد‪ .‬بنابراین شرماره صرفحه برابرر ‪ 4‬اسرت‪ .‬یعنری‬
‫آدرس منطقی برابر است با‪:‬‬
‫‪01‬‬ ‫‪4‬‬ ‫‪678‬‬
‫از آنجا که آدرس شروع جدول قطعه برابر ‪ ، 0B05‬شماره قطعه برابر ‪ 01‬و هرر سرطر جردول قطعره ‪ 3‬برایتی‬
‫است‪ ،‬به آدرس ‪ 0B05  3  0B08‬مراجعه می کنیم‪ .‬در این آدرس دو بایرت اول‪ ،‬مشرخص کننرده آدرس‬
‫پایه جدول صفحه( ‪ )PTBA‬می باشد که برابر ‪ 0B07‬است‪ .‬از آنجا که شماره صفحه برابر ‪ 4‬و اندازه هر سرطر‬
‫جدول صفحه یک بایتی است‪ ،‬به آدرس ‪ 0B07  4  0B0B‬مراجعه کرده تا شماره قاو را پیدا کنیم‪ ،‬کره‬
‫برابر ‪ 0D‬است‪.‬‬
‫در نهایت با قرار دادن آفست یعنی ‪ 678‬بعد از شماره قاو‪ ،‬آدرس فیییکی مشخص می شود‪:‬‬

‫‪ ‬آفست شماره قاو‬ ‫‪0D‬‬ ‫‪678‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪221‬‬ ‫سیستم عامل‬

‫تذکر‪ :‬آفست در آدرس منطقی و فیییکی یکسان است‪ ( .‬ون اندازه صفحه و اندازه قاو برابر است)‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪222‬‬ ‫سیستم عامل‬

‫مقایسه روشهای مدیریت حافظه‬


‫در جدول زیر‪ ،‬هار نوع مدیریت حافظه با یکدیگر مقایسه شده اند‪:‬‬

‫قطعه بندی‬ ‫صفحه بندی‬ ‫قطعه بندی‬ ‫صفحه بندی‬


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

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪223‬‬ ‫سیستم عامل‬

‫حافظه اصلی‪ ،‬ممکرن اسرت‬ ‫حافظرره اصررلی‪،‬ممکن اسررت‬


‫نیازمند نوشتن یک قطعه بر‬ ‫نیازمند نوشتن یرک صرفحه‬
‫روی دیسک باشد‪.‬‬ ‫بر روی دیسک باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪224‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫(مهندسی کامپیوتر ‪ -‬دولتی ‪)86‬‬


‫‪ -1‬در یک سیستم حافظه صفحه بندی ساده )‪ (Simple Paging‬حافظه فیییکی دارای ‪ 2 24‬بایرت اسرت‪.‬‬
‫‪ 256‬صفحه فضای آدرس منطقی را تشکیل می دهد و اندازه صفحات ‪ 210‬بایت اسرت‪ .‬کردام یرک از زیینره‬
‫های زیر تعداد بیت های آدرس منطقی و اندازه جدول صفحه را مشخص می کند؟‬
‫‪ 18 )2‬بیت و ‪ 16‬کیلو عضو‬ ‫‪ 18 )1‬بیت و ‪ 256‬عضو‬
‫‪ 24 )4‬بیت و ‪ 16‬کیلوعضو‬ ‫‪ 24 )3‬بیت و ‪ 256‬عضو‬
‫پاسخ‪ :‬جواو زیینه ‪ 1‬است‪.‬‬
‫تعداد درایه های جدول صفحه با تعداد صفحات فضای آدرس منطقی برابرر اسرت‪ .‬بنرابراین جردول صرفحه‬
‫دارای ‪ 256‬عضو است‪ .‬اندازه حافظه منطقی از حاصل ضرو تعداد صفحات در اندازه صفحه بدست می آید‪:‬‬
‫‪256  210  218‬‬
‫بنابراین تعداد بیت های آدرس منطقی برابر ‪ 18‬می باشد‪.‬‬
‫(مهندسی کامپیوتر‪ -‬دولتی ‪)71‬‬
‫‪-2‬در یک سیستم با مدیریت حافظه ‪ ،Overlay‬برنامه زیر اجراء می شود‪ .‬این برنامه با پردازه ‪ A‬شروع و در انتهای این پردازه‬
‫پایان می پذیرد‪ .‬اندازه پردازه ها ( کیلو بایت) ع ارتند از‪A=5 :‬‬
‫‪,B=9,C=10,D=15,E=7,F=10‬‬
‫ازر ‪ Overlay Driver‬احتیاج به ‪ 2‬کیلو بایت حافظه داشته باشد‪ ،‬حداقل فضای مورد نیاز جهت اجرای این برنامه کدام است؟‬

‫;‪procedure A‬‬ ‫‪procedure‬‬ ‫;‪B‬‬ ‫;‪Procedure C‬‬


‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫;‪call D‬‬ ‫‪.‬‬ ‫‪.‬‬
‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫;‪call F‬‬ ‫‪.‬‬ ‫‪.‬‬
‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫;‪end‬‬ ‫;‪end‬‬ ‫;‪end‬‬
‫;‪procedure D‬‬
‫‪procedure‬‬ ‫;‪E‬‬ ‫;‪Procedure F‬‬
‫‪.‬‬
‫‪.‬‬ ‫‪.‬‬
‫;‪call E‬‬
‫‪.‬‬ ‫;‪call C‬‬
‫‪.‬‬
‫‪.‬‬ ‫‪.‬‬
‫;‪call B‬‬
‫;‪end‬‬ ‫;‪end‬‬
‫;‪end‬‬
‫‪30 K )4‬‬ ‫‪29 K )3‬‬ ‫‪27 K )2‬‬ ‫‪31 K )1‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪225‬‬ ‫سیستم عامل‬

‫پاسخ‪ :‬زیینه ‪ 1‬صحیح است‪.‬‬


‫در این رود هر زیر برنامه ای که صدا زده می شود‪ ،‬در حافظه فضائی به آن اختصاص می یابد و هنگامی که زیر برنامه پایان‬
‫می یابد‪ ،‬حافظه آزاد می شود‪ .‬با توجه به اینکه این برنامه با پردازه ‪ A‬شروع می شود‪ ،‬در ابتدا فضای ‪ 5K‬از حافظه به فرایند‬
‫‪ A‬داده می شود‪ .‬در داخل این فرایند‪ ،‬فرایند ‪ D‬اجرا شده و ‪ 15K‬به آن داده می شود‪ .‬در داخل فرایند ‪ ، D‬فرایند ‪ E‬اجرا‬
‫شده و ‪ 7K‬حافظه به آن داده می شود‪ .‬تا این لحظه ‪ 27K‬حافظه تخصیص داده شده است‪ .‬با اتمام ‪ ، E‬فضای داده شده به‬
‫آن آزاد شده و سپس با اجرای ‪ 9K ، B‬فضا به آن داده شده و در مجموع به ‪ 29K‬فضا نیاز خواهیم داشت‪ .‬بعد از اتمام‬
‫اجرای ‪ ،B‬اجرای ‪ D‬نیی پایان یافته و ‪ F‬اجرا می شود‪ .‬در داخل این فرایند نیی ‪ C‬اجرا می شود‪ .‬در این حالت به ‪25K‬‬
‫حافظه نیاز است‪ .‬با توجه به این توضیحات‪ ،‬بیشترین حافظه مورد نیاز مربوط به حالت ‪ A  D  B‬می باشد که به ‪29‬‬
‫کیلو بایت حافظه نیاز است‪ .‬ال ته خود درایور نیاز به ‪ 2K‬دارد‪ ،‬بنابراین در مجموع حداقل به ‪ 31K‬حافظه نیاز است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪226‬‬ ‫سیستم عامل‬

‫(مهندسی ‪ -IT‬دولتی ‪)87‬‬


‫‪ -3‬در یک سیستم صفحه بندی ساده که جدول صفحه )‪ (page table‬آن ‪ 512‬عنصر‪ 16‬بیتی (شامل بیرت نرامعت ر‪ /‬معت رر‬
‫)‪ (valid/invalid‬است و اندازه صفحات‪ 1‬کیلوبایتی است‪ ،‬به ترتیب اندازه فضای آدرس فیییکی قدر است و آدرس فیییکی‬
‫ند بیتی است؟‬
‫‪16 - 216 )4‬‬ ‫‪24 - 2 24 )3‬‬ ‫‪25 - 2 25 )2‬‬ ‫‪26 - 2 26 )1‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫ون اندازه صفحه ‪ 1KB‬است‪ ،‬افست ‪ 10‬بیتی است‪ .‬از ‪ 16‬بیت ون ‪ 1‬بیت آن برای اعت ار است‪ 15 ،‬بیت برای شماره قاو‬
‫صفحه باقی می ماند‪ .‬پس تعداد بیت های آدرس فیییکری برابرر ‪ 15+10=25‬مری باشرد‪ .‬همچنرین انردازه حافظره فیییکری‬
‫برابر ‪ 2 25‬است‪.‬‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)92‬‬


‫‪ -4‬کدام زیینه زیر درباره جدول صفحه معکوس)‪ (inverted page-table‬درست نیست؟‬
‫‪ )1‬این نوع جدول‪ ،‬زمان نگاشت آدرس منطقی به آدرس فیییکی را کاهش می دهد‪.‬‬
‫‪ )2‬این نوع جدول صفحه‪ ،‬س ب کاهش اندازه حافظه فیییکی جهت ذخیره سازی آن می شود‪.‬‬
‫‪ )3‬در این نوع جدول صفحه‪ ،‬زمان سرویس نقص صفحه)‪ (page fault‬به دلیل ایجاد یک نقص صفحه دیگر افیایش می‬
‫یابد‪.‬‬
‫‪ )4‬برای این نوع جدول صفحه‪ ،‬می بایست یک جدول صفحه خارجی نیی ذخیره شود‪.‬‬
‫حل‪ :‬زیینه ‪ 1‬جواو است‪.‬‬
‫زیینه ‪ 1‬نادرست است‪ ،‬ون جدول صفحه معکوس‪ ،‬به علت نیاز به جستجو و تابع ‪ ، Hash‬زمان ترجمره آدرس را براال مری‬
‫برد‪.‬‬

‫(مهندسی ‪ -IT‬آزاد ‪)88‬‬


‫‪ -5‬در یک کامپیوتر از رود جدول صفحه معکوس شده استفاده شده اسرت‪ .‬ایرن کرامپیوتر دارای آدرس مجرازی ‪ 32‬بیتری‪،‬‬
‫حافظه فیییکی ‪ 64‬مگا بایتی و صفحات ‪ 4‬کیلو بایتی است‪ .‬جدول صفحه ند مدخل )‪ (Table Entry‬دارد؟‬
‫‪214 )4‬‬ ‫‪2 20 )3‬‬ ‫‪212 )2‬‬ ‫‪2 8 )1‬‬
‫پاسخ ‪ :‬زیینه ‪ 4‬جواو است‪.‬‬
‫در جدول صفحه وارونه‪ ،‬تعداد درایه های جدول صفحه برابر است با تعداد قاو های حافظه‪:‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪227‬‬ ‫سیستم عامل‬

‫‪64MB 2 6  2 20‬‬
‫‪ 2 10  214‬‬
‫‪4 KB‬‬ ‫‪2 2‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)88‬‬


‫‪ -6‬با فرض اینکه جدول صفحه در حافظه ذخیره شده باشد و ‪ %85‬از ارجاعات به حافظه از طریا ‪ TLB‬انجام شود و هیینه‬
‫هر ارجاع حافظه ‪ 250‬نانو ثانیه و ارجاع به ‪ TLB‬با هیینه ‪ 5‬نانو ثانیه انجام شود‪ ،‬با فرض عدم رخداد نقصران صرفحه و عردم‬
‫توازی عملیات در معماری سیستم مذکور‪ ،‬هر ارجاع به حافظه به طور متوسط قدر طول می کشد؟‬
‫‪ 505 )4‬نانو ثانیه‬ ‫‪ 291.75 )3‬ثانیه‬ ‫‪ 292.5 )2‬نانو ثانیه‬ ‫‪ 287.5 )1‬ثانیه‬
‫حل‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫همان حالت اول است‪:‬‬
‫‪TTranslation  TTLB  (1  H)  TMem  5  (0.15  250)  42.5 ns‬‬

‫‪TAccess  TTranslation  TMem  42.5  250  292.5ns‬‬

‫(مهندسی ‪ – IT‬آزاد ‪)84‬‬


‫‪ -7‬سیستمی عالوه بر ذخیره جدول صفحه در حافظه اصلی از ‪ TLB‬نیی استفاده می کند‪ .‬ازر زمان خواندن از حافظره اصرلی‬
‫‪ 50ns‬و زمان خواندن از ‪ TLB‬برابر ‪ 20ns‬باشد و درصد کارایی سیستم بدون استفاده از ‪ TLB‬نس ت بره اسرتفاده سیسرتم از‬
‫‪ TLB‬برابر ‪ 80‬درصد باشد‪ ،‬آن زاه نرخ برخورد ‪ TLB‬قدر است؟‬
‫‪ 90 )4‬درصد‬ ‫‪ 80 )3‬درصد‬ ‫‪ 2 )2‬درصد‬ ‫‪ 10 )1‬درصد‬
‫حل‪ :‬زیینه ‪ 3‬جواو است‪.‬‬
‫ازر از ‪ TLB‬استفاده نشود‪:‬‬
‫‪TAccess  TTranslation  Tmem  2  TMem  2  50ns  100ns‬‬
‫و ازر از ‪ TLB‬استفاده شود‪:‬‬
‫‪TAccess  [TTLB  (1  H)  TMem ]  TMem  [20  (1  H)  50]  50‬‬
‫و ون درصد کارایی برابر ‪ 80%‬است‪ ،‬داریم‪:‬‬
‫‪70  (1  H )  50 80‬‬
‫‪‬‬ ‫‪‬‬ ‫‪H  0.8  H  80%‬‬
‫‪100‬‬ ‫‪100‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)84‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪228‬‬ ‫سیستم عامل‬

‫‪ -8‬در یک سیستم مدیریت حافظه‪،‬ازر زمان دسترسی به حافظه ‪ 400ns‬و زمران دسترسری بره جردول ‪ 50ns ، TLB‬و ‪hit‬‬
‫‪ ratio‬در جدول ‪ TLB‬برابر ‪ %80‬باشد‪ ،‬کدام ع ارت درست است؟‬
‫‪ )1‬سیاست صفحه بندی و ‪ TLB‬دارای زمان دسترسی به حافظه برابر با ‪ 530ns‬است‪.‬‬
‫‪ )2‬سیاست صفحه بندی دارای زمان دسترسی به حافظه برابر با ‪ 850ns‬است‪.‬‬
‫‪ )3‬سیاست صفحه بندی دارای زمان دسترسی به حافظه برابر با ‪ 730ns‬است‪.‬‬
‫‪ )4‬سیاست صفحه بندی و ‪ TLB‬دارای زمان دسترسی به حافظه برابر با ‪ 450ns‬است‪.‬‬
‫پاسخ‪ :‬زیینه ‪ 1‬درست است‪.‬‬
‫سیاست صفحه بندی به همراه سخت افیار ‪: TLB‬‬
‫‪TTranslation  TTLB  (1  H )  TMem  50  (0.2  400)  130ns‬‬
‫‪TAccess  TTranslation  TMem  130  400  530ns‬‬
‫زیینه ‪2‬و ‪ 3‬نادرست است‪ ،‬ون در سیاست صفحه بندی بدون سخت افیار ‪: TLB‬‬
‫‪TTranslation  TMem  400ns‬‬
‫‪TAccess  TTranslation  TMem  400  400  800ns‬‬

‫زمان موثر دسترسی در صورت استفاده از حافظه نهان و با در نظر زرفتن احتمال وقوع نقص صفحه‪:‬‬
‫‪TAccess  TTranslation  TCM  P  TDisk‬‬
‫‪TTranslation  TTLB  (1  H )  TCM‬‬
‫‪TCM  TCache  (1  H Cache )  TPenalty‬‬
‫جریمه هر عدم اصابت در حافظه پنهان ‪TPenalty :‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)89‬‬


‫‪ -9‬یک حافظه مجازی با این مشخصات در نظر بگیرید‪.‬‬
‫زمان دسترسی حافظه ‪ 50ns‬و زمان دستیابی ‪ TLB‬برابر ‪ ، 2ns‬نس ت اصرابت ‪ TLB‬برابرر ‪ 98%‬و احتمرال خطرای صرفحه‬
‫برای کل دسترسی ها به حافظه ‪ 2  10 6‬است‪ .‬زمان انتقال صفحه از دیسک را ‪ 10ms‬فرض کنید‪.‬‬
‫برای سرعت بخشیدن به این حافظه از حافظه پنهان)‪ (cache‬با این مشخصات استفاده شده است‪:‬‬
‫زمان دسترسی حافظه پنهان ‪ 10ns‬و نس ت اصابت حافظه پنهان ‪ ، 90%‬جریمه هر عدم اصرابت در حافظره پنهران ‪100ns‬‬
‫است‪.‬‬
‫میانگین زمان دسترسی به حافظه برای هر آدرس‪ ،‬به کدام یک از زیینه های زیر نیدیک تر است؟‬
‫‪43ns )4‬‬ ‫‪73ns )3‬‬ ‫‪45ns )2‬‬ ‫‪75ns )1‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫‪TTranslation  TTLB  (1  H )  TCM  2  (1  0.98)  20  2.4ns‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪229‬‬ ‫سیستم عامل‬

‫‪TCM  TCache  (1  H cache )  TPenalty  10  (1  0.9)  100  20ns‬‬


‫‪TAccess  TTranslation  TCM  P  TDisk  2.4  20  (2  106 )(10  103 )  43ns‬‬

‫(مهندسی ‪ – IT‬دولتی ‪)86‬‬


‫‪-1۰‬در یک سیستم حافظه صفحه بندی‪ ،‬در یک برنامه به ترتیب به صفحات زیر رجوع شده است‪:‬‬
‫‪0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2‬‬
‫ازر برای این برنامه سه قاو صفحه )‪ (Page Frame‬در نظر زرفته می شود و از الگوریتم جابه جرائی ‪ FIFO‬اسرتفاده شرود‪،‬‬
‫تعداد خطاهای صفحه )‪ (Page Faults‬برابر است با‪:‬‬
‫‪13 )4‬‬ ‫‪14 )3‬‬ ‫‪12 )2‬‬ ‫‪10 )1‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪6‬‬ ‫‪2‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪6‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪1‬‬
‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)86‬‬


‫‪ -11‬حافظه اصلی کامپیوتری دارای هار قاو صفحه می باشد‪ .‬زمان بار شدن‪ ،‬زمان آخرین دسترسی‪ ،‬بیرت )‪(Reference‬‬
‫‪ R‬و بیت ‪ (Modify) M‬مربوط به هر یک از صفحات در جدول زیر آمده است‪ .‬ازر خطای صفحه روی صفحه مجازی شرماره‬
‫‪ 4‬در زمان ‪ 319‬رخ دهد‪ ،‬تحت الگوریتم های جایگیینی ‪ NRU , LRU‬به ترتیب محتویات کدام یرک از قراو صرفحه هرا ‪،‬‬
‫بایستی جابجا شوند؟‬

‫زمان بار‬ ‫زمان آخرین‬


‫قاب صفحه‬ ‫شماره صفحه مجازی‬ ‫‪R‬‬ ‫‪M‬‬
‫شدن‬ ‫دسترسی‬
‫‪0‬‬ ‫‪2‬‬ ‫‪125‬‬ ‫‪278‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪229‬‬ ‫‪239‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪2‬‬ ‫‪0‬‬ ‫‪119‬‬ ‫‪271‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪3‬‬ ‫‪3‬‬ ‫‪159‬‬ ‫‪318‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪ )4‬سه و صفر‬ ‫‪ )3‬دو و یک‬ ‫‪ )2‬یک و صفر‬ ‫‪ )1‬یک و دو‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪23۰‬‬ ‫سیستم عامل‬

‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬


‫در رود ‪ ، LRU‬صفحه ای خارج می شود که در زذشته دورتری به آن مراجعه شده است‪ .‬یعنی زمان آخرین دسترسری اد‬
‫از همه کمتر باشد‪ .‬بنابراین صفحه شماره ‪ ، 1‬که آخرین دسترسی به آن در زمان ‪ 239‬بوده است‪ ،‬انتخاو می شود‪.‬‬
‫در رود ‪ ، NRU‬صفحه ‪ 2‬انتخاو می شود‪ ،‬ون در دسته با شماره کمتری قرار دارد‪.‬‬
‫تذکر‪ :‬در صورت تست‪ ،‬شماره قاو ها خواسته شده است‪ .‬بنابراین ون صفحه ‪ 1‬در قاو ‪ 1‬و صفحه ‪ 2‬در قراو‪ 0‬قررار دارد‪،‬‬
‫زیینه ‪ 2‬جواو است‪.‬‬
‫تذکر‪ :‬ون در زمان رخ دادن خطای صفحه‪ ،‬یعنی ‪ ، 319‬همه صفحه ها موجود هستند‪ ،‬تصمیم زیری بین همه آنهرا انجرام‬
‫زرفته است‪.‬‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)90‬‬


‫‪ -12‬یک سیستم با ‪ 128‬مگا بایت حافظه اصلی را در نظر بگیرید که از تکنیک صرفحه بنردی برا انردازه قراو ‪ 4‬کیلرو بایرت‬
‫استفاده می کند‪ .‬ازر بخواهیم الگوریتم کمترین استفاده در زذشته اخیر)‪ (LRU‬را با رود ماتریس دو بعدی تقریرب برینیم‪،‬‬
‫قدر حافظه برای ذخیره سازی ماتریس نیاز است؟‬
‫‪ 32 )4‬کیلو بایت‬ ‫‪ 128 )3‬مگا بایت‬ ‫‪ 16 )2‬مگا بایت‬ ‫‪ 16 )1‬کیلو بایت‬
‫پاسخ‪ :‬جواو زیینه ‪ 3‬است‪.‬‬
‫ابتدا باید تعداد قاو ها را مشخص کرد‪:‬‬
‫‪128MB 128  2 20‬‬
‫‪‬‬ ‫‪ 215‬‬
‫‪4KB‬‬ ‫‪4 2‬‬ ‫‪10‬‬

‫بنابراین ماتریس مورد نیاز ‪ 215  215‬بیتی یا ‪ 128‬مگا بایتی است‪.‬‬


‫نحوه ت دیل به بایت‪:‬‬
‫‪215  215‬‬
‫‪ 2 27  2 7  2 20  128MB‬‬
‫‪8‬‬
‫بنابراین به ‪ 128‬مگا بایت (برابر اندازه حافظه اصلی)‪ ،‬حافظه نیاز داریم‪.‬‬
‫(مهندسی کامپیوتر‪ -‬دولتی ‪)84‬‬
‫‪ -13‬سیستمی را در نظر بگیرید که در حالت ‪ Thrashing‬می باشد‪ .‬در این صورت کدام یک از شرایط زیر را لیوما در سیستم‬
‫خواهیم داشت؟‬
‫‪ CPU )1‬در ‪ %100‬اشتغال خود خواهد بود‪.‬‬
‫‪ %100 ، CPU )2‬بیکار )‪ (Idle‬خواهد بود‪.‬‬
‫‪ )3‬صفحه بندی دیسک )‪ (Paging disk‬در حالت ‪( %100‬صد درصد) ظرفیت خود خواهد بود‪.‬‬
‫‪ )4‬صفحه بندی دیسک )‪ (Paging disk‬تقری ا ‪(%100‬صد درصد) فعال خواهد بود‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪231‬‬ ‫سیستم عامل‬

‫در حالت ‪ ، Thrashing‬نرخ نقص صفحه بسیار باال و بهره وری ‪ CPU‬بسیار پایین و نیدیک به صفر (نه الیما صفر) است‪ .‬پس‬
‫زیینه های ‪1‬و‪ 2‬نادرست هستند‪ .‬همچنین در صد عملیات م ادله صفحات بین حافظه اصلی و دیسک بسیار باال حتی نیدیک‬
‫به ‪( 100%‬نه الیما ‪ )100%‬می باشد‪ .‬بنابراین زیینه ‪ 4‬که از ع ارت "تقری ا" استفاده کرده‪ ،‬صحیح می باشد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪232‬‬ ‫سیستم عامل‬

‫(مهندسی کامپیوتر‪ -‬آزاد ‪)85‬‬


‫‪-14‬ازر فرایندی اک ر زمان هایش را به جای اجرا‪ ،‬اختصاص به صفحه بندی دهد‪ ،‬این عمل ه نام دارد؟‬
‫‪Thrashing )4‬‬ ‫‪Local Allocation )3‬‬ ‫‪Demand Paging )2‬‬ ‫‪Prepaging )1‬‬
‫پاسخ ‪ :‬زیینه ‪ 4‬جواو است‪.‬‬

‫(مهندسی ‪ – IT‬آزاد ‪)87‬‬


‫‪ -15‬کدام یک از زیینه های زیر در مورد الگوریتم جایگیینی صفحه درست نیست؟‬
‫‪ )1‬الگوریتم بهینه با ‪ n+1‬قاو صفحه همواره بهتر یا مساوی با الگوریتم بهینه با ‪ n‬قاو صفحه عمل می کند‪.‬‬
‫‪ )2‬الگوریتم ‪ LRU‬با ‪ n+1‬قاو صفحه همواره بهتر یا مساوی با ‪ LRU‬با ‪ n‬قاو صفحه عمل می کند‪.‬‬
‫‪ )3‬الگوریتم ‪ FIFO‬با ‪ n+1‬قاو صفحه بعضی مواقع بدتر از الگوریتم ‪ FIFO‬با ‪ n‬قاو صفحه عمل می کند‪.‬‬
‫‪ )4‬الگوریتم ‪ LRU‬همواره بدتر از الگوریتم بهینه عمل می کند‪.‬‬
‫پاسخ ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫زاهی ممکن است عملکرد الگوریتم ‪ LRU‬به خوبی عملکرد الگوریتم بهینه باشد‪.‬‬
‫زیینه دیگر درست می باشند‪ ،‬ون ‪ BO‬و ‪ LRU‬ناهنجاری بلیدی ندارند ولی ‪ ، FIFO‬ناهنجاری بلیدی دارد‪.‬‬
‫(مهندسی ‪ – IT‬آزاد ‪)90‬‬
‫‪ -16‬در ه صورت با پدیده ‪ Beladys Anomaly‬روبرو می شویم؟‬
‫‪ )1‬زمانی که الگوریتم جایگیینی صفحه از نوع ‪ Stack‬باشد‪.‬‬
‫‪ )2‬زمانی که رابطه مستقیم بین تعداد قاو های صفحه و تعداد نقض صفحه وجود داشته باشد‪.‬‬
‫‪ )3‬زمانی که از الگوریتم جایگیینی صفحه بهینه )‪ (Optimal‬استفاده می کنیم‪.‬‬
‫‪ )4‬زمانی که مجموعه صفحات در حافظه با ‪ n‬قاو زیر مجموعه ای در حافظه با ‪ n+1‬قاو باشد‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫زمانی این پدیده رخ می دهد که رابطه مستقیم بین تعداد قاو های صفحه و تعداد نقص صفحه وجود داشته باشد‪ .‬یعنری برا‬
‫افیایش تعداد قاو‪ ،‬تعداد نقص صفحه نیی افیایش یابد‪.‬‬
‫(مهندسی کامپیوتر – آزاد ‪)88‬‬
‫‪ -17‬کدام الگوریتم یک الگوریتم جایگیینی صفحه ‪ ، Stack‬محسوو نمی شود؟‬
‫‪Optimal )4‬‬ ‫‪NFU )3‬‬ ‫‪LRU )2‬‬ ‫‪FIFO)1‬‬
‫پاسخ‪ :‬زیینه ‪ 1‬جواو است‪.‬‬

‫(مهندسی ‪ - IT‬دولتی ‪)84‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪233‬‬ ‫سیستم عامل‬

‫‪ -18‬اندازه صفحه در سیستمی با مدیریت حافظه مجازی به صورت صفحه بندی درخواستی‪ 256 ،‬بایت است‪ .‬حافظه سیستم‬
‫حاوی سه قاو صفحه (در ابتدا خالی) می باشد‪ .‬هر قاو صفحه می تواند به کد یا داده انتساو شود و قراو هرای صرفحه بره‬
‫اشتراک بین کد و داده استفاده می شوند‪ .‬اندازه کد فرایند برابر یک صفحه است و فرض کنید که حافظره فراینرد فقرط از دو‬
‫بخش کد و داده تشکیل می شود‪ .‬ازر از رود جایگیینی ‪ FIFO‬استفاده شود‪ ،‬اجرای کد زیر منجرر بره نرد نقرص صرفحه‬
‫خواهد شد؟‬
‫‪X : array [1..128][1..128] of byte‬‬
‫‪for register int i=1 to 128 do‬‬
‫‪for register int j=1 to 128 do‬‬
‫;‪X[i][j]=0‬‬
‫‪ )4‬بیشتر از ‪ 65‬و کمتر از ‪100‬‬ ‫‪ )3‬کمتر از ‪65‬‬ ‫‪8193 )2‬‬ ‫‪65 )1‬‬
‫پاسخ‪ :‬زیینه ‪ 4‬درست است‪.‬‬
‫هر سطر ماتریس (‪ 128‬عنصر ‪ 1‬بایتی) نیاز به ‪ 128‬بایت حافظه دارد‪ .‬بنابراین در یک صفحه ‪ 256‬بایتی‪ ،‬دو سطر ماتریس جرا‬
‫می شود‪ .‬بنابراین ماتریس با ‪ 128‬سطر به ‪ 64‬صفحه نیاز دارد‪ .‬ون برنامه به صورت ردیفی‪ ،‬ماتریس را مقدار دهی می کنرد‪،‬‬
‫بنابراین ‪ 64‬نقص صفحه برای داده ها رخ می دهد‪ .‬از طرفی ون برای کد برنامه‪ ،‬قاو خاصری بره صرورت جدازانره در نظرر‬
‫زرفته نشده است‪ ،‬صفحه حاوی کد نیی مانند صفحات حاوی داده‪ ،‬ط ا الگوریتم ‪ FIFO‬خارج می شود و ون کرد بره طرور‬
‫دائم در حال اجرا است‪ ،‬به محض خروج دوباره نقص صفحه رخ می دهد و به حافظه بر می زردد‪ .‬بنابراین رون برا ورود هرر‬
‫سه صفحه داده‪ ،‬یک کد خارج شده و نقص صفحه رخ می دهد‪ ،‬پس تعداد ‪  64 ‬یعنی ‪ 22‬نقص صفحه برای کد رخ می دهد‪.‬‬
‫‪ 3 ‬‬

‫بنابراین در کل تعداد نقص صفحه ها برابر ‪ 64  22‬یعنی ‪ 86‬می باشد که از ‪ 65‬بیشتر و از ‪ 100‬کمتر است‪.‬‬
‫(مهندسی ‪ – IT‬دولتی ‪)84‬‬
‫‪-19‬در مورد آدرس مجازی زیر در یک سیستم مدیریت حافظه که از ترکیب قطعه بندی و صفحه بندی با جداول صرفحه دو‬
‫سطحی بهره می برد‪ ،‬کدام ع ارت نادرست است؟‬
‫‪Segment‬‬ ‫‪PT1 PT2 Offset‬‬
‫‪No‬‬
‫‪9 Bit‬‬ ‫‪5 Bit‬‬ ‫‪7 Bit‬‬ ‫‪13 Bit‬‬

‫‪ )1‬اندازه صفحه ‪ 8K‬و اندازه حافظه مجازی هر فرایند ‪ 16 G‬است‪.‬‬


‫‪ )2‬حداک ر تعداد جداول صفحه سطح دو در هر قطعه برابر‪ 128‬است‪.‬‬
‫‪ )3‬حداک ر تعداد جداول صفحه سطح یک در هر فرایند برابر ‪ 512‬است‪.‬‬
‫‪ )4‬حداک ر اندازه هر قطعه برابر ‪ ،32M‬حداک ر تعداد صفحات در هر قطعه برابر ‪ )4K( 4096‬و حداک ر تعرداد صرفحات در‬
‫هر فرایند برابر ‪ 2M‬است‪.‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪234‬‬ ‫سیستم عامل‬

‫زیینه ‪ 2‬نادرست است‪ ،‬ون حداک ر تعداد جداول صفحه سطح دو‪ ،‬در هر قطعه برابر ‪ 2 5  32‬است‪.‬‬
‫علت درستی زیینه های دیگر‪:‬‬
‫‪ = 213  8K‬اندازه صفحه‬
‫‪ = 2 ( 95 7 13)  2 34  2 4  2 30  16G‬اندازه حافظه مجازی هر فرایند‬
‫‪ = 2 ( 5 7 13)  2 25  2 5  2 20  32M‬حداک ر اندازه هر قطعه‬
‫‪ = 2 9  512‬حداک ر تعداد جداول صفحه سطح یک در هر فرایند‬
‫‪ = 2 (57)  212  2 2  210  4K‬حداک ر تعداد صفحات در هر قطعه‬
‫‪ = 2 (957 )  2 21  2  2 20  2M‬حداک ر تعداد صفحات در هر فرایند‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪235‬‬ ‫سیستم عامل‬

‫فصل ‪7‬‬
‫مدیریک ورودی و خروجی – مدیریت دیسک‬
‫در این فصل به نحوه اداره ‪ I/O‬توسط سیستم عامل می پردازیم‪ .‬همچنین زمان بنردی دیسرک هرا را مرورد‬
‫بررسی قرار می دهیم‪.‬‬
‫نرم افزار ‪I/O‬‬
‫نرم افیار ‪ I/O‬دارای هار الیه می باشد که بر روی سخت افیار قرار دارند‪ .‬این الیه هرا در شرکل زیرر نشران‬
‫داده شده اند‪:‬‬
‫فرایند کاربر‬
‫نرم افزار مستقل از‬
‫دستگاه‬
‫گرداننده دستگاه‬
‫اداره کننده وقفه‬
‫سخت افزار‬

‫نحوه عملکرد الیه ها در هنگام خواندن بلوکی از فایل توسط فرایند کاربر‬
‫‪ -1‬توسط فرایند کاربر‪ ،‬سیستم عامل برای خواندن بلوک فراخوانی می شود‪( .‬فراخوانی سیستمی)‬
‫‪ -2‬بلوک در حافظه پنهان بافر توسط نرم افزار مستقل از دستگاه جستجو می شود‪.‬‬
‫‪ -3‬ازر بلوک در حافظه پنهان پیدا نشد‪ ،‬گرداننده دستگاه برای صدور فرمان به سخت افریار بررای آوردن‬
‫بلوک از دیسک فراخوانی می شود‪( .‬فرایند تا کامل شدن عملیات دیسک‪ ،‬بلوکه می شود‪).‬‬
‫‪ -4‬سخت افیار بعد از پایان کار دیسک‪ ،‬وقفه ای ایجاد کرده و اداره کننده وقفه اجرا می شود تا وضرعیت‬
‫دستگاه را ک کرده و زرداننده دستگاه را بیدار سازد‪ .‬سپس نرم افیار مستقل از دستگاه و بعرد فراینرد‬
‫کاربر‪ ،‬بیدار شده و نتیجه عملیات را دریافت می کنند‪.‬‬

‫مدیریت دیسک‬
‫یکی از وظایف سیستم عامل‪ ،‬مدیریت دیسک می باشد‪ .‬ابتدا دیسک مغناطیسی را تشریح می کنیم‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪236‬‬ ‫سیستم عامل‬

‫دیسک مغناطیسی‬
‫دیسک مغناطیسی رسانه ای زردان با امکان دستیابی مستقیم به داده های ذخیره شده می باشد‪ .‬دیسک از‬
‫صفحه ای مدور و مغناطیس شونده که حول یک محور عمودی می رخد‪ ،‬تشکیل شده است‪ .‬رویههای این‬
‫صفحه از غشاء فرو مغناطیسی پوشیده شده که بر روی آنها شریارهایی بره صرورت دایرههرای متحردالمرکی‬
‫وجود دارد‪ .‬شیارها از بیرون به درون با شروع از صفر شماره زذاری شده اند‪.‬‬
‫تمام شیارهای هم شعاع‪ ،‬تشکیل یک استوانه را میدهند‪.‬‬
‫شکل زیر یک دیسک پک ‪ 3‬صفحه ای را نشان می دهد‪ .‬هدها به یرک برازوی دیسرک متصرل انرد کره در‬
‫راستای شعاع دایره حرکت می کنند‪.‬‬

‫نرم افزار دیسک‬


‫در بخش نرم افیار دیسک‪ ،‬به نحوه محاس ه زمان دستیابی اطالعات و الگوریتم های زمان ندی دیسرک مری‬
‫پردازیم‪.‬‬

‫)‪(Seek time‬‬ ‫زمان استوانه جویی‬


‫زمانی که طول می کشد تا نوک خواندن‪/‬نوشتن به استوانه ای کره داده مرورد نظرر در آن قررار دارد برسرد‪.‬‬
‫متوسط این زمان را با ‪ S‬نمایش میدهند و واحد آن میلی ثانیه است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪237‬‬ ‫سیستم عامل‬

‫) ‪(Rotational latency time‬‬ ‫زمان درنگ دوران‬


‫زمانی که طول می کشد تا ابتدای داده مورد نظر در اثر دوران دیسک به زیر نوک ‪ R /W‬برسد‪ .‬که واحرد آن‬
‫میلی ثانیه است‪.‬‬

‫زمان یک دور چرخش دیسک‬


‫زمان یک دور کامل رخش دیسک )‪ (2r‬از رابطه زیر محاس ه می شود‪ .‬واحد این زمان میلی ثانیه است‪:‬‬
‫‪60000‬‬
‫‪2r ‬‬
‫‪rpm‬‬
‫که ‪ rpm‬سرعت رخش دیسک است و واحد آن دور در دقیقه است‪.‬‬
‫متوسط زمان درنگ دورانی از رابطه زیر محاس ه می شود‪:‬‬
‫‪30000‬‬
‫‪r‬‬
‫‪rpm‬‬
‫زمان دستیابی‬
‫زمان دستیابی به دیسک از مجموع زمان های استوانه جویی‪ ،‬درنگ دورانی و انتقال محاس ه می شود‪.‬‬
‫زمان دسترسی به فایل‬
‫الف‪ -‬فایل بر روی ‪ n‬سکتورهای پراکنده ذخیره شده است‪.‬‬
‫) ‪n (s  r  t‬‬
‫‪ : s‬متوسط زمان استوانه جویی‬
‫‪ : r‬متوسط زمان درنگ دورانی‬
‫‪ : t‬زمان خواندن یک سکتور‬
‫ب‪ -‬فایل بر روی ‪ k‬شیار پشت سرهم ذخیره شده است‪.‬‬
‫) ‪(s  r  2r )  (k  1)(r  2r‬‬
‫این زمان تشکیل شده است از مجموع زمان خواندن شیار اول (‪ )s+r+2r‬و زمان خواندن شیارهای بعدی‬
‫تذکر‪ :‬متوسط زمان جستجو یعنی ‪ ، s‬فقط برای شیار اول در نظر زرفته می شود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪238‬‬ ‫سیستم عامل‬

‫الگوریتم های زمان بندی بازوی دیسک‬


‫به ترتیب ورود )‪FCFS (First Come First Serviced‬‬ ‫‪ -1‬خروج‬
‫در خواست ها به ترتیب ورود به صف‪ ،‬اجرا میشوند‪.‬‬
‫کوتاهترین زمان جستجو )‪SSTF (Shortest Seek Time First‬‬ ‫‪ -2‬ابتدا‬
‫بازو به سمت درخواستی حرکت میکند که نیدیک ترین درخواسرت بعردی بره مکران فعلری باشرد‪ .‬بره‬
‫ع ارتی درخواستی به کمترین زمان برای حرکت بازو نیاز دارد‪.‬‬
‫مرور(آسانسور ( ‪Scan:‬‬ ‫‪-3‬‬
‫در ابتدا بازو به جهتی حرکت میکند که کوتاهترین زمان استوانه جویی را برای دستیابی نیاز دارد‪ .‬ازرر‬
‫در جهت انتخاو شده به همه درخواستها پاسخ داده شد‪ ،‬جهت حرکت عوض میشود‪.‬‬
‫مدور‪C- Scan :‬‬ ‫‪ -4‬مرور‬
‫مانند رود ‪ Scan‬است‪ ،‬با این تفاوت که پس از پاسخ به آخرین درخواست در یک جهت(م ال رو به باال)‪،‬‬
‫بازو بالفاصله به پایین ترین شماره سیلندر رفته و به سمت باال حرکت می کند‪ .‬ترذکر‪ :‬نرام دیگرر رود‬
‫‪ ، SCAN‬رود ‪ LOOK‬می باشد‪.‬‬
‫مثال‬
‫صف درخواستهای سیلندر به صورت ‪ 12 ،5 ،9 ،2۰ ،14‬میباشد و هرد برر روی سریلندر ‪ 1۰‬قررار دارد‪ .‬در‬
‫صورت استفاده از هر یک از الگوریتم ها ی کنترل حرکت بازو‪ ،‬ترتیب حرکت هد را مشخص کنید؟‬
‫‪FCFS : 10 , 12 , 5 , 9 , 20 , 14‬‬ ‫‪SCAN : 10 , 9 , 5 , 12 , 14 , 20‬‬
‫‪SSTF : 10 , 9 , 12 , 14 , 20 , 5‬‬ ‫‪C-SCAN : 10 , 9 , 5 , 20 , 14 , 12‬‬

‫مثال‬
‫‪ I/O‬روی سیلندر‪ 2۰‬قرار دارد‪ .‬ازر تقاضا برای خوانردن سریلندرهای بره‬ ‫‪HEAD‬‬ ‫در یک دیسک سخت‪ ،‬نوک‬
‫ترتیب ‪ 6 ،4۰ ،2 ،2۰ ،22 ،1۰‬و ‪ 38‬به ‪ Driver‬آن وارد شود و نانچه حرکت هد‪ I/O‬بین دو سیلندر مجراور‬
‫‪ seek‬مورد‬ ‫کل‪time‬‬ ‫‪ 6‬میلی ثانیه طول بکشد‪ ،‬در صورت استفاده از الگوریتم ‪ SSTF‬برای خواندن سیلندرهای‪،‬‬
‫نیاز قدر خواهد بود؟‬
‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪239‬‬ ‫سیستم عامل‬

‫حل‪ :‬در ‪ SSTF‬همواره به سمت نیدیکترین سیلندر حرکت می شود‪:‬‬


‫‪20  22 10  6  2  38  40‬‬
‫مجموعه فاصلههای برابر است با‪:‬‬
‫‪2 + 12 + 4 + 4 + 36 + 2 = 60‬‬
‫و ون هر حرکت ‪ 6‬میلی ثانیه طول میکشد‪ ،‬پس در کل ‪ 60 × 6‬میلی ثانیه طول خواهد کشید‪.‬‬
‫مثال‬
‫فرض کنید در سیستمی‪ ،‬مدیریت دیسک از زمان ندی ‪ SSTF‬استفاده کند‪ .‬در صورتی که جابجایی بین هرر‬
‫دو شیار مجاور زمانی ثابت )‪ (4ms‬طول بکشد و نوک خواندن – نوشتن روی شیار ‪ 40‬قرار داشته باشد‪ ،‬زمان‬
‫جابجایی بین شیارها برای سرویس دهی به درخواستهای زیر ند میلی ثانیه است؟‬
‫است‪.‬‬ ‫‪97,100 , 55 , 35 , 5 , 14 , 7 , 44 , 41:‬‬ ‫ترتیب درخواستها برای شیارها(از راست به پ)‬
‫‪40 ‬‬
‫‪‬‬
‫‪1‬‬
‫‪41 ‬‬
‫‪‬‬
‫‪3‬‬
‫‪44 ‬‬
‫‪‬‬
‫‪9‬‬
‫‪35 ‬‬
‫‪20‬‬
‫‪55 ‬‬
‫‪41‬‬
‫‪14 ‬‬
‫‪‬‬
‫‪7‬‬
‫‪7‬‬
‫‪‬‬
‫‪2‬‬
‫‪5 ‬‬
‫‪92‬‬
‫‪97 ‬‬
‫‪‬‬
‫‪3‬‬
‫‪100‬‬
‫که با جمع اعداد روی فلش ها‪ ،‬و ضرو در ‪ 4‬حاصل ‪ 712‬می شود‪.‬‬
‫عدالت فقط در رود ‪ FCFS‬رعایت می شود‪.‬‬
‫و ‪ ، C-Scan‬بدون قحطی هستند‪.‬‬ ‫‪Scan ، FCFS‬‬ ‫روشهای‬
‫کارایی(میانگین زمان جستجو) در ‪ FCFS‬پایین است‪.‬‬
‫مراجعات در ‪ FCFS‬محلی می باشد‪.‬‬
‫حداک ر زمان پاسخ در رود ‪ C-Scan‬نس ت به ‪ Scan‬کاهش داشته است‪.‬‬
‫الگوریتمی به نام ‪ N-Setp_Scan‬وجرود دارد کره در آن از نرد صرف برا طرول ‪ N‬اسرتفاده شرده و بره‬
‫درخواست های هر صف به رود ‪ Scan‬پاسخ داده می شود‪ .‬در زمرانی کره صرفی پرردازد مری شرود‪،‬‬
‫درخواست های جدید به صف های دیگر وارد می شوند‪.‬‬
‫الگوریتم ‪ N-Setp_Scan‬با دو صف را الگوریتم ‪ F-Scan‬می زویند‪.‬‬
‫یکی از تکنیکهای کاهش زمان درنگ دوران‪ ،‬استفاده از رود تداخل بالکهرا )‪ (Interleaving‬مری باشرد‪.‬‬
‫در این تکنیک‪ ،‬بالکها به صورت ‪ n‬در میان روی شیار یده میشوند‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪24۰‬‬ ‫سیستم عامل‬

‫روش های تخصیص فضای دیسک به فایل‬


‫فضای دیسک به سه رود "پیوسته ‪ ،‬پیوندی و شاخصی" می تواند به فایل تخصیص داده شود‪ .‬هدف رود‬
‫های مختلف‪ ،‬رسیدن به حالتی است که هم از فضای دیسک به خوبی استفاده شود و هم دستیابی به فایرل‬
‫به سرعت صورت زیرد‪.‬‬

‫‪ -1‬تخصیص پیوسته‬
‫در این رود هر فایل تعدادی بالک پیوسته روی دیسک را اشغال می کند و کافی است کره شرماره برالک‬
‫اول روی دیسک و تعداد بالک های فایل را ذخیره کرد‪.‬‬
‫شکل زیر این نوع تخصیص را نشان می دهد‪:‬‬

‫‪ -2‬تخصیص پیوندی‬
‫در این رود هر فایل‪ ،‬یک لیست پیوندی از بالک های روی دیسک اسرت‪ .‬برالک هرا ممکرن اسرت در هرر‬
‫کجای دیسک پراکنده باشند‪ .‬در فهرست راهنما برای هر فایل اشاره زری به اولین بالک فایل قرار دارد‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪241‬‬ ‫سیستم عامل‬

‫‪ -3‬تخصیص شاخصی‬
‫در رود شاخصی‪ ،‬اشاره زرها به بالکهای فایل روی دیسک در یک مکران کره بره آن برالک شراخص مری‬
‫زویند‪ ،‬جمع آوری می شوند‪ .‬هر فایل دارای بالک شاخص خود است که یک مراتریس از آدرسرهای بالکهرا‬
‫است‪ .‬ورودی ‪I‬ام در بالک شاخص به بالک ‪ I‬ام فایل اشاره می کند‪.‬‬
‫در فهرست راهنما تنها آدرس بالک شاخص حفرظ مری شرود‪ .‬در ایرن رود براحتری مری تروان دسرتیابی‬
‫مستقیم را حمایت کرد‪ .‬ال ته فضای بالک شاخص تلف می شود و در بسریاری از مواقرع بره تمرامی برالک‬
‫شاخص نیاز نمی باشد‪ .‬علت پر طرفدار بودن رود شاخصی‪ ،‬رابطه نیدیرک آن برا مردیریت حافظره قطعره‬
‫بندی– صفحه بندی شده است‪ .‬بالک شاخص می تواند یک جدول صفحه باشد و برالک هرای فایرل همانرا‬
‫صفحات فایل (در واقع یک قطعه) هستند‪.‬‬
‫مشکالت تخصیص پیوسته‪:‬‬
‫(برای یک فایل ‪ n‬بالکی باید به دن ال ‪ n‬بالک آزاد پشت سرهم زشت‪) .‬‬ ‫‪ -1‬یافتن فضای خالی برای یک فایل جدید‪.‬‬
‫‪ -2‬تعیین مقدار فضای مورد نیاز یک فایل‬
‫مشکالت تخصیص پیوندی‬
‫‪ -1‬عدم حمایت از دستیابی مستقیم‬
‫این رود فقط در رابطه با دستیابی ترتی ی خوو عمل می کند‪ .‬زیرا برای رسیدن به بالک ‪ ، i‬باید‬
‫بالکهای ق ل از آن دستیابی شوند که هر کدام از اینها به یک خواندن از دیسک نیاز دارد‪.‬‬
‫‪ -2‬اتالف فضا توسط پیوند ها‬
‫‪ -3‬عدم قابلیت اطمینان سیستم‬
‫با از بین رفتن تنها یکی از اشاره زرها‪ ،‬صدمات جدی به فایل و فضای روی دیسک وارد می زردد‪.‬‬

‫دستیابی به فایل در تخصیص پیوسته‬


‫‪ -1‬ترتیبی‬
‫سیستم فایل برای دستیابی ترتی ی‪ ،‬شماره بالک روی دیسک‪ ،‬آخرین بالک فایل که مورد دستیابی قرار‬
‫زرفته را به خاطر می سپارد و در صورت لیوم سراغ بالکهای بعدی می رود‪.‬‬
‫‪ -2‬مستقیم‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪242‬‬ ‫سیستم عامل‬

‫برای دستیابی مستقیم به بالک ‪ i‬فایل‪ ،‬کافی است که به بالک ‪ b+i‬دستیابی صورت زیرد‪( .‬با این فررض‬
‫که فایل از بالک ‪ b‬دیسک آغاز شده باشد‪).‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪243‬‬ ‫سیستم عامل‬

‫مثال‬
‫فایلی دارای ‪ 5‬بلوک از شماره ‪ 1‬تا ‪ 5‬می باشد‪ .‬می خواهیم بلوک شماره ‪ 4‬را حذف کنیم‪ .‬تعرداد کرل نقرل و‬
‫انتقال دیسک در سه حالت تخصیص دیسک به فایل را مشخص کنید‪( .‬در ابتدا فایل باز است‪).‬‬
‫حل‪ :‬الف‪ -‬پیوسته‪ :‬ون همه بلوک های فایل به صورت پشت سر هم قرار دارند‪ ،‬بلوک ‪ 5‬خوانده شده و بر‬
‫روی بلوک ‪ 4‬نوشته می شود‪ .‬بنابراین به ‪ 2‬دسترسی دیسک نیاز است‪.‬‬
‫و‪ -‬پیوندی‪ :‬ون هر بلوک فایل حاوی اشاره زری است که آدرس بلوک بعردی را مشرخص مری کنرد‪ ،‬از‬
‫بلوک ‪ 1‬تا ‪ 4‬خوانده تا آدرس بلوک ‪ 5‬را به دست آوریم‪ .‬سپس این آدرس را جرایگیین آدرس بلروک ‪ 3‬مری‬
‫کنیم‪ .‬بنابراین به ‪ 5‬دسترسی دیسک نیاز است‪.‬‬
‫ج‪ -‬شاخصی(اندیسی)‪ :‬ون آدرس همه بلوک ها در یک جدول شاخص بر روی دیسک ذخیره شده‪ ،‬بلوک‬
‫حاوی اندیس ها را خوانده و آدرس بلوک ‪ 4‬را حذف کرده و بعد از به روز رسانی‪ ،‬بر روی دیسک باز نویسری‬
‫می کنیم‪ .‬بنابراین به ‪ 2‬دسترسی دیسک نیاز دارد‪.‬‬

‫سطوح در یک حافظه سه سطحی‬


‫سطوح در یک حافظه سه سطحی ع ارتند از‪:‬‬
‫‪ -1‬دیسک‬
‫‪ -2‬حافظه بیرگ (وسیع ولی آهسته)‬
‫‪ -3‬حافظه کو ک (سریع ولی با زنجایش محدود)‬
‫مثال‬
‫ازر اندازه صفحه حافظه بیرگ ‪ 4‬کیلو بایت و اندازه صفحه حافظه کو ک ‪ 1‬کیلو بایت باشد و زمران انتقرال‬
‫یک کیلو بایت برابر‪ 0.5‬میلی ثانیه باشد‪ ،‬آنگاه‪:‬‬
‫الف‪ -‬زمان انتقال ‪ 4‬صفحه یک کیلو بایتی متوالی از دیسک به حافظه کو ک ند میلی ثانیه است؟‬
‫( هار انتقال از حافظه بیرگ به حافظه کو ک )‪ (+‬یک انتقال از دیسک به حافظه بیرگ )=‬
‫‪ (5  2)  (4  0.5)  9ms‬‬
‫و‪ -‬ازر مستقیما از دیسک به حافظه کو ک منتقل می کردیم و با توجه به اینکه اندازه صرفحه بایرد یرک‬
‫کیلو بایت باشد‪ ،‬زمان مورد نیاز ند میلی ثانیه خواهد بود؟(زمان درنگ دورانی= ‪ 5‬میلی ثانیه)‬
‫‪4  (5  0.5)  22ms‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
244 ‫سیستم عامل‬

http://faradars.org/computer-engineering-exam ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

softsara.ir
‫‪245‬‬ ‫سیستم عامل‬

‫کنکور ارشد‬

‫(مهندسی کامپوتر‪ -‬آزاد ‪)90‬‬


‫‪ -1‬دیسکی با سرعت رخش ‪ 12000‬دور در دقیقه و متوسط زمان جستجوی ‪ 8‬میلی ثانیه را در نظر بگیرید‪ .‬در هرر شریار‬
‫‪ 256‬سکتور و در هر سکتور ‪ 512‬بایت وجود دارد‪ .‬فایلی بره انردازه ‪ 1‬مگرا بایرت برر روی شریارها و سرکتورهای پراکنرده و‬
‫تصادفی ذخیره شده است‪ .‬کل زمان دسترسی به این فایل ند ثانیه است؟‬
‫‪55 )4‬‬ ‫‪50 )3‬‬ ‫‪68 )2‬‬ ‫‪21.5 )1‬‬

‫پاسخ‪ :‬جواو زیینه ‪ 1‬است‪.‬‬


‫زمان میانگین تاخیر رخشی )‪: (r‬‬
‫‪60000‬‬ ‫‪60000‬‬
‫‪2r ‬‬ ‫‪ 2r ‬‬ ‫‪ r  2.5m sec‬‬
‫‪RPM‬‬ ‫‪12000‬‬

‫تعداد سکتورهای مورد نیاز برای ذخیره فایل‪:‬‬


‫‪1MB‬‬
‫‪ 2048‬‬
‫‪512‬‬
‫زمان خواندن یک سکتور‪( :‬زمان خواندن یک شیار)‪ (2r‬تقسیم بر تعداد سکتور در هر شیار)‬
‫‪5‬‬
‫‪ 0.02m sec‬‬
‫‪256‬‬
‫در نهایت زمان خواندن یک فایل با ‪ n‬سکتور به صورت تصادفی برابر است با‪:‬‬
‫‪2048 (8  2.5  0.02)  21.5 sec‬‬

‫(مهندسی کامپیوتر‪ -‬دولتی ‪)90‬‬


‫‪ -2‬یک دیسک را در نظر بگیرید که شامل ‪ 100‬سیلندر است(‪ 0‬تا ‪ . )99‬زمان الزم برای ع ور هد از یک سیلندر به سریلندر‬
‫مجاور یک واحد زمانی است‪ .‬در زمان صفر هد بر روی سیلندر صفر است و درخواستی از زذشته وجود ندارد‪ .‬شش درخواست‬
‫در زمان های مختلف مطابا جدول زیر وارد می شوند‪.‬‬
‫‪90‬‬ ‫‪80‬‬ ‫‪70‬‬ ‫‪20‬‬ ‫‪10‬‬ ‫‪0‬‬ ‫زمان ورود درخواست‬
‫‪17‬‬ ‫‪2‬‬ ‫‪68‬‬ ‫‪16‬‬ ‫‪75‬‬ ‫‪21‬‬ ‫سیلندر درخواست شده‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪246‬‬ ‫سیستم عامل‬

‫در زمان حرکت هد به سمت یک سیلندر‪ ،‬ورود درخواست جدید تاثیری بر حرکت ندارد‪ .‬ترتیب اجرای درخواسرت هرا بررای‬
‫الگوریتم ‪(SCAN‬آسانسور) یست؟‬
‫‪68 2 17 16 75 21 0 )2‬‬ ‫‪68 17 2 16 75 21 0 )1‬‬
‫‪17 2 16 68 75 21 0 )4‬‬ ‫‪17 2 68 16 75‬‬ ‫‪21 0 )3‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 4‬است‪.‬‬
‫نحوه پاسخ به درخواست ها برابر است با‪:‬‬
‫‪0  21  75  68  16  2  17‬‬
‫در لحظه صفر هد بر روی سیلندر صفر قرار دارد و تنها درخواست موجود در این لحظره‪ ،‬درخواسرت بررای سریلندر ‪ 21‬مری‬
‫باشد‪ .‬بنابراین هد از سیلندر ‪ 0‬به سمت سیلندر ‪ 21‬می رود‪ .‬در ثانیه ‪ ،21‬درخواست بررای سریلندر‪75‬و‪ 16‬رسریده‪ ،‬کره برر‬
‫ط ا الگوریتم ‪ ، scan‬هد به سمت سیلندر ‪ 75‬می رود(حرکت به سمت باالی سیلندر ‪ .)21‬زمانی که هد برر روی سریلندر‬
‫‪ 75‬قرار دارد‪ ،‬درخواست برای سیلندرهای ‪ 68‬و ‪ 16‬وجرود دارد کره برر ط را الگروریتم ‪ ، scan‬هرد بره سریلندر ‪ 68‬مری‬
‫رود(نیدیکترین سیلندر به ‪ .)75‬سپس به سیلندر ‪ 16‬می رود‪ .‬زمانی که بر روی سیلندر ‪ 16‬قرار دارد‪ ،‬درخواست سیلندر ‪17‬‬
‫نرسیده است‪ ،‬بنابراین هد به سیلندر ‪ 2‬می رود‪ .‬در نهایت هد به سیلندر ‪ 17‬می رود‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪247‬‬ ‫سیستم عامل‬

‫(مهندسی ‪ -IT‬دولتی ‪)83‬‬


‫‪ -3‬به نظر شما کدام الگوریتم زمان ندی دیسک سخت‪ ،‬کارایی یک ‪ RAM Disk‬را بهینه تر می کند؟‬
‫‪ )2‬تمام الگوریتم ها منجر به کارایی یکسانی می شوند‪.‬‬ ‫‪FIFO )1‬‬
‫‪SSTF )4‬‬ ‫‪Elevator/SCAN )3‬‬
‫پاسخ‪ :‬جواو زیینه ‪ 2‬است‪.‬‬
‫در ‪ RAM Disk‬که از ‪ RAM‬برای ش یه سازی دیسک استفاده می شود‪ ،‬به علت نداشتن حرکت مکانیکی‪ ،‬زمان جستجو‬
‫صفر است و بهینه تر کردن کارایی بی معنی است‪.‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪248‬‬ ‫سیستم عامل‬

‫دستهبندی موضوعی آموزشهای فرادرس‪ ،‬در ادامه آمده است‪:‬‬

‫مهندسی برق الکترونیک و‬ ‫هوش مصنوعی و یادگیری‬ ‫آموزش های دانشگاهی و‬ ‫برنامه نویسی –‬
‫روباتیک – کلیک (‪)+‬‬ ‫ماشین – کلیک (‪)+‬‬ ‫تخصصی – کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬

‫نرم افزارهای تخصصی –‬ ‫مهارت های دانشگاهی –‬ ‫مباحث مشترک –‬ ‫دروس دانشگاهی –‬
‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬

‫آموزش های عمومی –‬ ‫طراحی و توسعه وب –‬ ‫نرم افزارهای عمومی –‬ ‫مهندسی نرم افزار – کلیک‬
‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫کلیک (‪)+‬‬ ‫(‪)+‬‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬
‫‪249‬‬ ‫سیستم عامل‬

‫منبع مطالعاتی تکمیلی مرتبط با این کتاب‬

‫آموزش سیستمهای عامل‬


‫سیستم عامل یا سامانه عامل (‪ )Operating System‬بدون‬
‫شک مهمترین نرمافیار در کامپیوتر است‪ .‬سیستم عامل‬
‫اولین نرمافیاری است که پس از روشن کردن کامپیوتر‬
‫مشاهده میشود و همچنین آخرین نرمافیاری خواهد بود که‬
‫ق ل از خامود کردن کامپیوتر مشاهده میشود‪ .‬سیستم‬
‫عامل نرمافیاری است که مدیریت برنامهها را به عهده زرفته‬
‫و با کنترل‪ ،‬مدیریت و سازماندهی منابع سختافیاری امکان‬
‫استفاده بهینه و هدفمند آنها را فراهم کرده و بستری را‬
‫برای اجرای نرمافیارهای کاربردی فراهم میکند‪.‬‬
‫آموزد سیستم عامل‪ ،‬توسط مهندس فرشید شیرافکن‪،‬‬
‫یکی از بهترین مدرسین مسلط به این م احث‪ ،‬ارائه شده‬
‫است‪.‬‬
‫مدرس‪ :‬مهندس فرشید شیر افکن‬

‫مدت زمان‪ 11 :‬ساعت‬

‫‪faradars.org /fvsft103‬‬ ‫جهت مشاهده آموزش ویدئویی این آموزش – کلیک کنید‬

‫‪http://faradars.org/computer-engineering-exam‬‬ ‫دانلود رایگان مجموعه کتب ارشد کامپیوتر‬

‫‪softsara.ir‬‬

You might also like