Professional Documents
Culture Documents
وبwww.faradars.org :
softsara.ir
2 سیستم عامل
تقدیم به:
-فرشید شیرافکن
softsara.ir
3 سیستم عامل
سخن ناشر
در عین تمام نقدهای وارد شده به کنکور ،هنوز راه حلی عملی که در جمیع جوانب ،بهترر از سر ک کوتراه و نرد زیینرهای
سؤاالت باشد؛ ارائه نشده است .همین موضوع ،کنکور را به ویژه کنکور کارشناسری ارشرد بره عنروان یرک آزمرون متمرکری و
سراسری ،از اهمیت دو ندانی برخوردار میکند.
یکی از آسیبهای همراه با این آزمون سراسری این است که فضای رقابتی آن با ایجاد مؤسسات زونازون ،به سرعت از فضای
یک رقابت علمی ت دیل به فضای رقابت اقتصادی میشود؛ به زونهای که هیینه سرسام آور کالسها ،دورهها و منابع مرت ط با
آزمون ،از عهده بسیاری از دانشجویان خارج میشود .دانشجویانی که در عین استعداد تحصیلی براال ،در میردان رقابرت مرالی
تحمیلی ،در عین تمام شایستگیهای خود ،قدرت ادامه مسیر را از دست میدهند یا به نتیجهای که در فضای مسراوی مرالی
برای همه باید به آن میرسیدند ،دست نمییابند.
یکی از اهداف و آرمانهای فرادرس به عنوان بیرگترین پرروهه آمروزد دانشرگاهی اجررا شرده برر بسرتر وو کشرور ،ایجراد
دسترسی همگانی و یکسان به آموزد و دانش؛ مستقل از جغرافیا ،زمان و سطح مالی دانشجویان بوده است .سیاسرت کراری
فرادرس در راستای این آرمان ،انتشار آموزدهای ویدئویی تخصصی و دانشگاهی رایگان و یا بسریار کرم هیینره ،برا تردریس
مجروترین اساتید داخل و خارج کشور بوده است.
ما با انتشار رایگان این کتاو (به همراه نیدیک به ده کتاو رایگان دیگر) یکی از زرام هرای دیگرر خرود را در راسرتای آرمران
فرادرس برداشتیم .کتاو حاضر که حاصل نیدیک به یک دهه تدریس و پژوهش و تألیف مؤلف و مدرس فرادرس میباشد؛ در
عین هیینههای باالی تألیف و آمادهسازی ،به جای انتشار و فرود؛ با تأمین مالی و سرمایهزذاری فرادرس به عنوان ناشر ،بره
صورت کامالً رایگان منتشر میشود .ما در زامهای بعدی نیی تالد خواهیم کرد که تا هر جا بتوانیم ،حتی شرده یرک کتراو
مرجع دیگر و بیشتر را با پرداخت هیینه ،آزادسازی کرده و به صورت رایگان منتشر کنیم.
مررؤلفین و ناشرررینی کرره تمایررل برره وازررذاری حررا انتشررار کترراو خررود برره فرررادرس را دارنررد ،مرری تواننررد بررا ایمیررل
ebooks@faradars.orgمکات ه نمایند .ما این کتاوها را با پرداخت هیینه تألیف بره مردرس و ناشرر ،بره صرورت رایگران
منتشر خواهیم کرد تا همه دانشجویان مستقل از سطح مالی ،به منابع مفید آزمون دسترسی داشته باشند .همچنین ازر ایده
و نظری در خصوص کتاوهای رایگان فرادرس داشته باشید ،خوشحال میشویم که آن را با ایمیل ebooks@faradars.org
مطرح نمایید.
softsara.ir
4 سیستم عامل
faradars.org /fvsft103 جهت مشاهده آموزش ویدئویی این آموزش – کلیک کنید
درباره مدرس
مهندس فرشید شیرافکن کارشناس ارشد مهندسی کامپیوتر زرایش نرمافیار
است و در حال حاضر دانشجوی دکترای بیوانفورماتیک دانشگاه تهران
هستند .ایشان از مدرسین نمونه در زمینه ارائه و آموزد دروس دانشگاهی
انتخاو شدهاند.
ایشان مشاور کنکور هستند و بیش از 3۰کتاو در زمینه کنکور رشته
کامپیوتر تألیف نمودهاند .ایشان در حال حاضر به عنوان یکی از برترین مدرسین
فرادرس از جهت کمیت و کیفیت دروس ارائه شده ،نیدیک به 2۰عنوان درسی را در قالب آموزد ویدئویی از
طریا فرادرس منتشر کردهاند .این مجموعه دروس تا کنون مورد استفاده دهها هیار دانشجوی سراسر کشور قرار
زرفته اند.
مشاهده همه آموزش های تدریسی و تالیفی توسط مؤلف کتاب -کلیک کنید.
softsara.ir
5 سیستم عامل
برای دانلود رایگان این مجموعه کتب ،به لینک زیر مراجعه کنید:
http://faradars.org/computer-engineering-exam
softsara.ir
6 سیستم عامل
مهندسی برق الکترونیک و هوش مصنوعی و یادگیری آموزش های دانشگاهی و برنامه نویسی –
روباتیک – کلیک ()+ ماشین – کلیک ()+ تخصصی – کلیک ()+ کلیک ()+
نرم افزارهای تخصصی – مهارت های دانشگاهی – مباحث مشترک – دروس دانشگاهی –
کلیک ()+ کلیک ()+ کلیک ()+ کلیک ()+
آموزش های عمومی – طراحی و توسعه وب – نرم افزارهای عمومی – مهندسی نرم افزار – کلیک
کلیک ()+ کلیک ()+ کلیک ()+ ()+
softsara.ir
7 سیستم عامل
فهرست مطالب
اولیه................................................................................. :مفاهیم 1 فصل
پردازنده
وقفه
فراخوانی های سیستم
حفاظت
سلسله مراتب حافظه
روشهای انتقال ورودی/خروجی
نگاه کلی به سیستم عامل
تاریخچه سیستم عامل
انواع سیستم عامل از نظر ساختاری
آزمون
softsara.ir
8 سیستم عامل
الگوریتم SRT
الگوریتم HRRN
الگوریتم FB
الگوریتم MLFQ
الگوریتم MLQ
زمان بندی اولویت ()Priority
زمان بندی FCFS
زمان بندی در سیستم چند پردازنده ای() LPT ,RPT,SPT
آزمون
الگویتم Peterson
رویکردهای انحصار متقابل با حمایت سخت افزار
راهکارهای سیستم عامل و زبان برنامه سازی برای تدارک همزمانی
سمافور
پیاده سازی انحصار متقابل توسط سمافور
همگام سازی با استفاده از سمافور
مسئله تولید کننده و مصرف کننده
مسئله غذا خوردن فیلسوف ها
مسئله خوانندگان و نیسندگان
مانیتور (ناظر)
مسئله تولید کننده و مصرف کننده با مانیتور
تبادل پیام
همگام سازی به کمک تبادل پیام
پیاده سازی انحصار متقابل توسط تبادل پیام
حل مسئله تولید کننده و مصرف کننده توسط تبادل پیام
آزمون
softsara.ir
9 سیستم عامل
softsara.ir
1۰ سیستم عامل
الگوریتم FIFO
الگوریتم دومین شانس
الگوریتم ساعت
الگوریتمLRU
پیاده سازی سخت افزاری LRU
شبیه سازی LRUدر نرم افزار (الگوریتم سالمندی)
الگوریتم بافر کردن صفحه
نکات طراحی سیستم های صفحه بندی
پیش صفحه بندی )(prepaging
مدل مجموعه کاری)(working sets
مدیریت دیسک
الگوریتم های زمانبندی بازوی دیسک( ( FCFS , SSTF , SCAN , CSCAN
softsara.ir
11 سیستم عامل
1 فصل
مفاهیم اولیه
سیستم عامل از منابع سخت افیاری پردازنده برای ارائه خردمات بره کراربران اسرتفاده مری کنرد .بنرابراین
آشنایی با سخت افیار کامپیوتر ،برای بررسی سیستم عامل ضرروری اسرت .اجریای سرخت افریاری تشرکیل
دهنده کامپیوتر ع ارتند از:
-2حافظه اصلی -1پردازنده
-4اتصاالت داخلی سیستم. -3مولفه های ورودی و خروجی
پردازنده
پردازنده از واحد محاس ه و منطا) ،(ALUواحد کنترل و رجیسترها(ث ات ها) تشکیل می شرود و سره زرام "واکشری ،رمری
زشایی و اجرا" را به طور مداوم انجام می دهد .پردازنده دائما در حال کار است و فقط در موارد خاصی به مدت کوتراهی بره
حالت Holdمی رود و کنترل زذرزاه را به کنترل کننده DMAمی دهد.
softsara.ir
12 سیستم عامل
ثباتهای پردازنده
در داخل پردازنده مجموعه ای از ث اتها وجود دارد .این ث اتها سطحی از حافظره کره سرریعتر و کرو کتر از
حافظه اصلی است را فراهم می کنند .ث اتهای داخل پردازنده ع ارتند از:
داده )(AX,BX,CX,DX -1ث اتهای
شاخص )(SI,DI -2ث ات
)(CS,DS,SS,ES -3اشاره زر قطعه
پشته)(SP -4اشاره زر
-5شمارنده برنامه ( PCیا )IP
دستورالعمل)(IR -6ث ات
تذکر :تمام پردازنده ها شامل یک یا مجموعه ای از ث اتها هستند به نام کلمه وضرعیت ( (PSWکره حراوی
اطالعات وضعیت هستند .این ث ات ،نوعا عالوه بر کردهای وضرعیت ،شرامل اطالعرات دیگرری ،م رل بیرت
فعال/غیر فعال کردن وقفه و بیت حالت کاربر/سرپرست ،نیی می باشد.
softsara.ir
13 سیستم عامل
هدف اصلی از عملیات ، dual-modeمحافظت سیستم عامل از دیگر نرم افیارها می باشد.
فرایند یا پردازد( ،)processیک برنامه درحال اجرا می باشد .تفاوت برنامه و فرایند در ایرن اسرت کره
برنامه یک نهاد غیرفعال و فرایند یک نهاد فعال می باشد .معموال برنامه بر روی دیسک به صورت یرک
فایل اجرایی دودویی ذخیره می شود .برنامه باید به حافظه لود شود و در داخل فرایندی قرار بگیرد ترا
اجرا شود .فرایند می تواند هم در حافظه اصلی و هم در حافظه جان ی قرار بگیرد.
تنظیم زمان سیستم در مد کرنل و خواندن ساعت سیستم در مد کاربر انجام می شود.
پردازنده به کمک بیتی که در PSWوجود دارد متوجه می شود کره بایرد در کردام حالرت (کراربر یرا
هسته) اجرا کند.
وقتی کاری برای اجرا موجود ن اشد ،پردازنده یک برنامره شرامل یرک حلقره انتظرار مشرغول را اجررا
خواهد کرد.
عمل تغییر وضعیت از مد کرنل به مد کاربر و بلعکس از امکانات سخت افیاری است که برای کمک مستقیم به سیستم
عامل طراحی شده است.
وقفه ()interrupt
CPU وقفه سیگنالی است که روند عادی اجرا را تغییر می دهد .وقتی وقفهای به CPUارسال میشرود ،کرار
CPU (interruptاجرا میشود .بعد از پایان اجرای این روترین، )routine متوقف شده و روال پاسخگو به وقفه
کار ق لیاد را ادامه میدهد .آدرس دستوری که هنگام اجررای آن وقفره صرادر شرده (آدرس برزشرت) در
softsara.ir
14 سیستم عامل
پشته ذخیره می شود .بعد از پایان پاسخگویی به وقفه ،آدرس برزشت در شرمارنده برنامره ) (PCقررار مری
زیرد و محاس اتی که اجرای آنها به تعویا افتاده از سر زرفته می شود.
اجررای دسرتور با وجود وقفهها ،پردازنده میتواند در هنگامی که عمل ورودی/خروجری درجریران اسرت ،مشرغول
العملهای دیگر باشد.
سخت افیار در هر زمان میتواند با ارسال سیگنالی به ،CPUوقفهای را صادر کند .نرم افریار نیری برا اجررای عملیرات
خاصی به نام فراخوانی سیستم ( ،)System callمیتواند وقفهای را صادر کند.
وقتی وقفهای رخ میدهد ،سخت افیار کنترل را به سیستم عامل بر زردانده و ث اتها و شمارنده برنامه را ذخیرره مری
کند .همچنین نوع وقفه را نیی تعیین می کند.
بردار وقفه ،جدولی از اشاره زرها می باشد که هر اشاره زر به یک روال وقفه اشاره می کند.
انواع وقفهها
وقفه ها بر هار نوع می باشند:
-1برنامه
وقفه هایی که به دلیل بعضی شرایط حاصل از اجرای یک دستورالعمل بروز می کند:
الف -سرریی شدن محاس اتی
و -تقسیم بر صفر
ج -تالد برای اجرای یک دستورالعمل ماشین غیرمجاز
د -مراجعه به آدرس خارج از فضای مجاز کاربر
-2زمان سنج
وقفه ای که توسط زمان سنج داخلی پردازنده تولید می شود .این وقفه به سیستم عامل اجازه مری دهرد ،بعضری اعمرال
(مانند تست حافظه ،ک کردن سخت افیار و یا تعیین زمان اجرای پردازنده درهر برد در سیستم استراک زمرانی)را بره
طور مرتب انجام دهد.
-3ورودی/خروجی
وقفه هایی که به وسیله کنترل کننده I/Oتولید می شود ،تا کامل شدن ط یعی یک عمل یا شرایط خطا را اعمال کند.
-4نقص سخت افزار
وقفه هایی که با نقص سخت افیاری تولید می شود ،م ل نقص برق یا خطای توازن حافظه.
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
هنگامیکه وقفه ای رخ می دهد ،ق ل از اینکه سیستم عامل کنترل را به یرک روال وقفره زیرر بخصروص رد
کند ،وضعیت پردازد جاری را در محلی حفظ می کند ،تا بتواند بعدا آنرا ادامه دهد و سپس به طررف روال
وقفه زیر می رود که به این جریان تعویض متن می زویند.
softsara.ir
16 سیستم عامل
حفاظت
مسئله حفاظت از سه دیدزاه مورد بررسی است:
-1حفاظت از I/O
برای حفاظت از I/Oمی توان تمام دستورات I/Oرا به عنوان دستورات ممتاز در نظر زرفت ترا کراربران فقرط از طریرا
سیستم عامل بتوانند آن دستورات را اجرا کنند.
-2حفاظت از حافظه
حفاظت حافظه را حداقل برای بردار وقفه و روال وقفه باید فراهم کرد.در واقع می خواهیم سیستم عامرل را از دسرتیابی
برنامه کاربر و همچنین برنامه های کاربر را از یکدیگر محافظت کنیم .یکی از روشهای ممکن اسرتفاده از ث اتهرای پایره و
حد می باشد.
-3حفاظت از CPU
باید کاری کرد که برنامه کاربر در حلقه زیر نکند و کنترل را به سیستم عامل برزرداند .برای ایرن منظرور از یرک ترایمر
استفاده می کنیم.
softsara.ir
17 سیستم عامل
با حرکت به سطوح پایین تر این سلسله مراتب ،شرایط زیر رخ می دهد:
-2افیایش ظرفیت -1کاهش هیینه در هر بیت
-4کاهش تعداد دفعات دسترسی پردازنده به حافظه -3افیایش زمان دسترسی
مدیریت منابع هر یک از حافظه های زیر در مقابل آن نوشته شده است:
ث ات :کامپایلر
حافظه پنهان :خودکار(سخت افیاری)
حافظه اصلی و دیسک :سیستم عامل
softsara.ir
18 سیستم عامل
حافظه پنهان
حافظه پنهان) ،(cacheیک حافظه کو ک و سریع بین پردازنده و حافظه اصلی است .حافظه پنهران ،حراوی
بخشی از حافظه اصلی است .وقتی پردازنده می خواهد کلمه ای از حافظه را بخواند ،وجود آن را در حافظره
پنهان بررسی می کند .ازر وجود داشته باشد ،به پردازنده تحویل می شود ،در غیر اینصرورت یرک بلروک از
حافظه اصلی ،شامل تعداد ثابتی از خانه های حافظه ،به حافظه پنهان منتقل شده و سپس کلمه مورد نظرر
به پردازنده تحویل داده می شود .هنگامی که یک بلوک از داده ها به حافظه پنهان آورده می شرود ترا یرک
مراجعه به حافظه انجام شود ،به دلیل پدیده محلی بودن مراجعات ،احتماال بیودی به دیگر کلمات آن بلوک
نیی مراجعه خواهد شد.
softsara.ir
19 سیستم عامل
softsara.ir
2۰ سیستم عامل
پردازنده یک فرمان I/Oرا از جانب فرایندی به یک مولفه I/Oصادر می کند .سپس آن فراینرد ق رل از ادامره ،ترا کامرل
شدن عمل ، I/Oبه انتظار مشغولی می زذراند.
مولفه DMAت ادل داده ها بین حافظه اصلی و مولفه I/Oرا کنترل می کند .پردازنده تقاضایی برای انتقال یک بلروک از
داده ها را به مولفه DMAمی فرستد و فقط پس از کنترل کل بلوک ،مورد وقفه قرار می زیرد.
تذکر :در رود ورودی/خروجی م تنی بر وقفه ،دستورالعملهای بعدی می توانند از همان فرایند باشند ،ال تره بره شررطی کره
فرایند نیازی به انتظار برای تکمیل I/Oنداشته باشد .در غیر اینصورت فرایند در انتظار وقفه معلا می زرردد و کرار دیگرری
انجام می زیرد.
softsara.ir
21 سیستم عامل
مشکل ورودی/خروجی برنامه سازی شده این است که پردازنده باید برای مدت طوالنی منتظر بماند تا
مولفه I/Oبرای دریافت یا ارسال آماده شود .در مدت انتظار ،پردازنده به علت اینکره مکرررا وضرعیت را
سئوال می کند ،کارایی سیستم به شدت پایین می آید.
رود Programed I/Oو Interrupt I/Oپردازنده اصلی را درزیر عملیات I/Oمی کند.
softsara.ir
22 سیستم عامل
سیستم عامل ییی جی یک برنامه کامپیوتری نیست .این برنامه پردازنرده را بررای اسرتفاده از سرایر
منابع سیستم هدایت می کند.
softsara.ir
23 سیستم عامل
تذکر :برنامه های سیستمی که در باالی سیستم عامل قرار دارند( مانند کامپایلرها ،ادیتورهرا و ،)..بخشری از سیسرتم عامرل
نمی باشند ،ازر ه توسط بعضی از سازندزان سیستم عامل ها عرضه می شوند.
softsara.ir
24 سیستم عامل
softsara.ir
25 سیستم عامل
softsara.ir
26 سیستم عامل
اسپولینگ
در سیستم های اولیه CPU،زرانترین جیء کامپیوتر بود و افیایش راندمان CPUمهمترین محرک در تکامرل
یک کرار را I/O مطرح شد .اسپولینگ Spooling سیستم های عامل بوده است .برای همین منظور ،تکنیک
با محاس ات کار دیگر به طور همیمان انجام میدهد .حتی میتواند در حین خواندن ورودیهرای یرک کرار،
خروجی های کار دیگر را انجام دهد .اسرپولینگ موجرب مری شرود ترا CPUو دسرتگاههای I/Oبرا سررعت
بیشتری کار کنند .استفاده از spoolingدر سیستم عامل دسته ای باعث افیایش سرعت می شود.
سیستم های دسته ای Offline Spooling
در این سیستم ها ،کارها توسط دستگاه کارت خوان یک کامپیوتر آهسته و ارزان خوانده می شد و به کمک
یک نوار زردان بر روی یک نوار مغناطیسی ذخیره می شدند .بعد از تشکیل یک دسته از کارها ،نوار توسرط
softsara.ir
27 سیستم عامل
اپراتور به CPUاصلی منتقل شده تا اجرا شروع شود .نتیجه اجرا بر روی نوار دیگری نوشته می شرد .بعرد از
اجرای تمام دسته کارها ،اپراتور نوار خروجی را به یک پردازنده آهسته منتقل می کرد تا عمل را انجرام
شود .در این رود ارت اط پردازنده اصلی محاس اتی با کارت خوان و اپگر ،غیر مستقیم بود.
نسبت به سیستم های قبلی فواید سیستم های دسته ای offline Spooling
softsara.ir
28 سیستم عامل
نرم افیار spoolerکارها را دسته بندی می کند .این نرم افیار اجیاء یک کرار(داده ،برنامره و ) JCLرا از
هم جدا می کند .سپس JCLها دستور به دستور اجرا شده و توسط سیسرتم اسرپولینگ روی دیسرک
اصلی قرار می زیرند و جدولی به نام ) ISPT ( Input SpooL Tableسراخته مری شرود .هرر سرطر ایرن
می باشد. یکJob جدول در برزیرنده اطالعات کنترلی
softsara.ir
29 سیستم عامل
تخصیص حافظه میباشند .ازر ند کار آماده ورود به حافظه وجود داشته باشند ،سیستم یکری را انتخراو
کرده (زمان ندی کار) و آنرا به حافظه میآورد تا اجرا کند .همچنین ازر ند کار به طور همیمان آماده اجرا
باشند ،سیستم یکی ازآنها را انتخاو میکند و CPUرا به آن تخصیص مری دهرد( .زمان نردی .)CPUایرده
ند برنامهای به این صورت است که سیستم عامل در هر زمان ند کار را در حافظه نگه میدارد و یکی از
کارهای موجود در حافظه را انتخاو کرده و اجرای آن را شروع میکند .ازر این کرار منتظرر عمرل دیگرری
مانند آماده شدن نوار یا تکمیل یک عمل I/Oباشد CPU ،به اجرای کار دیگری مشرغول میشرود و ازرر آن
کار نیی نیاز به انتظار داشته باشد ،به کار دیگری میپردازد و این روند ادامه مییابد .با پایان مدت انتظار کار
اول ،دوباره CPUدر اختیار آن قرار میزیرد .این عملیات باعث میشود که CPUبیکار نماند.
سیستم های دستهای برای اجرای برنامههای بیرگ که نیاز به محاوره کمی دارند ،مناسب میباشند.
softsara.ir
3۰ سیستم عامل
سیستم های اشتراک زمانی ارت اط کاربر با سیستم به صورت محاوره ای ) interactiveیا )onlineاست.
سیستم های اشتراک زمانی ،هیینه استفاده محاورهای از سیستم های کرامپیوتری را معقرول کردهانرد و برا
استفاده از زمان ندی CPUو ند برنامهای ،به هر کاربر زمان محدودی را تخصیص داده و هر کاربر حداک ر
یک برنامه در حافظه دارد.
در سیستمهای اشتراک زمانی ،ون سیستم به سرعت از برنامهای به برنامه دیگرر مریرود ،هرر کراربر فکرر
میکند که یک کامپیوتر اختصاصی در اختیار اوست ،در حالی که یک کامپیوتر بین همه کراربران مشرترک
است.
خصوصیات سیستم های اشتراک زمانی ع ارتند از:
-1پیچیدهتر از ند برنامهای هستند.
-2برای مواردی که نیاز به زمان پاسخ کوتاه است ،استفاده میشوند.
-3امکان ند برنامگی را فراهم می سازد.
-4وجود یک سیستم فایل ضروری است.
-5در main frameقابلیت ند کاربره و ند برنامگی را فراهم می کند.
softsara.ir
31 سیستم عامل
تذکر :سیستم های زیر در کتاو سیل رشاتس آورده شده است:
-1سیستم های موازی (یا ند پردازنده ای)
-2سیستم های عامل توزیع شده (زسترده)
-3سیستم های عامل بیدرنگ ()Real time
سیستم های موازی (یا چند پردازنده ای)
)Multiمینامنرد. ای(Processor سیستم هایی که بیش از یک پردازنده در آنها وجود دارد را ند پردازنرده
پردازندهها در این سیستم با یکدیگر ارت اط نیدیکری دارنرد و از زرذرزاه آدرس ،سراعت و زراهی حافظره و
)tightlyنیی (coupled دستگاههای جان ی به طور اشتراکی استفاده میکنند .این سیستمها را اتصال محکم
مینامند.
انواع سیستم های چند پردازندهای
الف -چندپردازندهای متقارن
در سیستم ندپردازندهای متقارن( ،)Symmetricهر پردازنده از کپی یکسانی از سیستم عامرل اسرتفاده
میکند که این کپیها در صورت لیوم با یکدیگر ارت اط برقرار میکنند.
ب -چندپردازندهای نامتقارن
در سیستم ند پردازندهای نامتقارن ،هر پردازنده کار خاصی را انجام میدهد .کنترل سیستم بره عهرده
پردازنده اصلی میباشد و پردازندههای دیگر منتظر دستور پردازنده اصلی هستند یا کرار از ق رل تعیرین
شدهای دارند .این طرح رئیس /مرئوس( )master/slaveرا بیان میکند ،که پردازنده اصلی( ،)masterکارها
را برای پردازندههای دیگر(،)slaveزمان ندی کرده و به آنها تخصیص میدهد.
مزایای سیستم متقارن نسبت به نامتقارن عبارتند از :
-1قابل حمل بودن روی سیستم های سخت افیاری مختلف
-2تعادل بار سیستم به علت اجرای سیستم عامل روی ند پردازنده
دالیل ساخت سیستم های چند پردازندهای
-1افیایش توان عملیاتی ) : (throughputتعداد کارهای انجام شده در یک واحد زمانی.
-2افیایش قابلیت اعتماد
(خرابی یک پردازنده منجر به از کار افتادن سیستم نمی شود بلکه از سرعت آن می کاهد).
-3مقرون به صرفه بودن از نظر اقتصادی
softsara.ir
32 سیستم عامل
) Soft ویژگی های سیستم های بی درنگ نرم (Real Time
softsara.ir
33 سیستم عامل
-1دارای محدودیت زمانی دقیقی می باشند و کارهای بحرانی به موقع انجام میشوند.
-2تمام تاخیرهای موجود درسیستم باید از بین بروند.
-3از ویژزیهای پیشرفته سیستم عامل استفاده نمیشود.
-4با سیستم های اشتراک زمانی برخورد ( )Conflictدارند و با یکدیگر ترکیب نمی شوند.
-5هیچکدام از سیستم های همه منظوره موجود از عملکرد بیدرنگ سخت پشتی انی نمیکنند.
انواع سیستم عامل از نظرساختاری
انواع سیستم عامل از نظرساختاری ع ارتند از:
)(Monolitic -1یکپار ه
)(Layered -2الیه ای
)(Virtual Machine -3ماشین مجازی
خدمتگیار )(Client /Server -4مشتری–
ساختار یکپارچه
ساده ترین ساختار برای سیستم عامل است که در DOSاز آن استفاده می شود .در این ساختار واسط هرا و
سطوح عملکرد به خوبی از هم تفکیک نشده اند و برنامه های کاربردی می توانند به روالهرای I/Oدسرتیابی
داشته باشند و مستقیما بر روی مونیتور یا دیسک بنویسند.
ساختار الیهای
با اعمال خاصیت پیمانه ای بودن به سیستم عامل ،سیستم عامل می تواند کنترل بیشتری بر روی کامپیوتر
است که سیسرتم و برنامه های کاربردی داشته باشد .یکی از بهترین روشها برای این کار ،رود الیه ای
عامل را به تعدادی الیه تقسیم می کند و هر کدام بر روی یکردیگر قررار مری زیرنرد .الیره پایینی(شرماره
صفر) ،سخت افیار است و الیه باالیی واسط کاربر است .طراحی و پیاده سازی ساختار الیه ای ساده است.
ویژگی های ساختار الیه ای
-1هر الیه فقط از توابع و خدمات الیه های پایین تر استفاده می کند که باعث ساده شردن خطایرابی مری
شود.
-2خطایابی از الیه پایین شروع می شود و سپس الیه بعدی خطا یابی می شود .ازر در حین خطایابی الیه
ای ،خطایی یافت شود ،می دانیم که خطا در همان الیه است ،زیرا الیه های پایینی ق ال خطا یابی شده اند.
softsara.ir
34 سیستم عامل
-3هر الیه می تواند عملیات ،ساختمان داده ها و سخت افیار را از الیه های باالتر مخفی کند.
مشکالت روش الیه ای عبارتند از:
-1هر الیه نیاز به برنامه رییی دقیقی دارد ،ون فقط می تواند از الیه های زیرین استفاده کند.
-2پایین بودن کارایی نس ت به روشهای دیگر(.تولید سربار زیاد)
با تغییراتی در رود ماشین مجازی ،ساختاری بره نرام Exokernelsبره وجرود آمرده اسرت .در ایرن
ساختار نیازی به الیه نگاشت نمی باشد و همچنین برنامه ای در پایین ترین الیره در مرد هسرته اجررا
شده که منابع را به ماشین های مجازی تخصیص داده و بررسی می کند که ماشینی از منرابع ماشرین
دیگر استفاده نکند.
softsara.ir
35 سیستم عامل
softsara.ir
36 سیستم عامل
کنکور ارشد
softsara.ir
37 سیستم عامل
همچنین 10سیکل نیی صرف اجرای ISRفرایند دوم می شود .ال ته در هنگام کار با DMAو انجام ، I/Oزراهی زرذرزاه
در اختیار DMAقرار می زیرد و زمان اجرای فرایند اول بیشتر از 200سیکل خواهد شد .بنابراین کل عملیات بره بریش از
210سیکل نیاز دارد.
،پردازد آن در لحظه 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در ت ادل پیغام کاربران می بایست آدرس ماشین های یکدیگر را بدانند.
softsara.ir
38 سیستم عامل
softsara.ir
39 سیستم عامل
2 فصل
فرآیند
در این فصل مفهوم فرایند و حاالت فرایند بررسی می شوند .همچنین نخ نیی توضیح داده می شود.
-4جدید ) : (Newفرایندی که هم اکنون زرفته شده است ،اما هنوز جیء فرایندهای قابل اجرای سیستم عامل پذیرفته
نشده باشد.
:فرایندی که اجرای آن پایان یافته است و یا اجرای آن قطع شده و از مجموعه )(Terminated -5خروج
فرایندهای قابل اجرای سیستم عامل خارج شده است.
تذکر :به حالت مسدود ،حالت بسته یا انتظار نیی می زویند.
softsara.ir
4۰ سیستم عامل
-2آماده به اجرا
سیستم عامل یکی از فرایندهای موجود در حالت آماده که وقت اجرای آن فرا رسیده اسرت را انتخراو کررده و از حالرت
آماده به اجرا میبرد .به این عمل توزیع ) ( Dispatchمی زویند.
-3اجرا به خروج
وقتی که فرایند جاری اعالم پایان کند ،سیستم عامل آن را از حالت اجرا به خروج میبرد.
-4اجرا به مسدود
وقتی فرایندی ییی را بخواهد که به خاطر آن باید منتظر بماند ،سیستم عامل آن فراینرد را از حالرت اجررا بره مسردود
میبرد .به این عمل بلوکه شدن می زویند .م الً فرایندی یک عمل I/Oرا شروع کند که ق رل از تکمیرل نیراز بره بخرش
مشترکی از حافظه مجازی را داشته باشد که فوراً فراهم ن اشد یا منتظر دریافت ورودی از یک فرایند دیگر باشد.
-5مسدود به آماده
وقتی حادثهای که فرایند منتظر آن بوده است رخ دهد ،از حالت مسدود به آماده میرود .بره ایرن عمرل wake upمری
زویند.
-6اجرا به آماده
متداول ترین دلیل انتقال یک فرایند از حالت اجرا به آماده ،اتمرام زمران مجراز بررای اجررای فراینرد جراری در سیسرتم
عاملهای ند برنامهای می باشد.
-7آماده به خروج
در بعضی سیستمها ،یک پدر می تواند هر لحظه که بخواهد ،فرایند فرزند خود را پایان دهد و یا برا پایران یرافتن فراینرد
پدر ،ممکن است همه فرایندهای فرزند آن نیی پایان یابند.
-8مسدود به خروج
مانند توضیحات آماده به خروج است.
-9تهی به آماده
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ایجاد و زسترد ساختمان داده های ممکن دیگر.
softsara.ir
42 سیستم عامل
softsara.ir
43 سیستم عامل
-7ثباتهای CPU
-2ترتیب زمانی :اجراء به طور دوره ای و به تعلیا رفتن آن هنگام انتظار برای اجرای بعدی
-5درخواست فرایند پدر :به طور نمونه فرایند ، Aفرایند Bرا تولید کرده تا عمل خواندن از یک فایل را انجام دهد
و فرایند Bدر هنگام خواندن با خطایی مواجه شود و آنرا به فرایند Aزیارد دهد ،فرایند Aدر این حالت بررای رسریدزی
به علت خطا ،فرایند Bرا به حالت معلا میبرد.
softsara.ir
44 سیستم عامل
فرایند مورد نظر در حافظه ثانوی و به محض لود شدن در حافظه اصلی آماده اجراست.
softsara.ir
45 سیستم عامل
softsara.ir
46 سیستم عامل
-7مختلف به خروج
ممکن است یک فرایند از هر حالتی به حالت خروج منتقل شود.
softsara.ir
47 سیستم عامل
تصمیم زیری در مورد اینکه کدام یک از فرایندهای موجود در حافظه اصلی ،برای اجرا توسط پردازنده
انتخاو شود.
-4زمانبندی ورودی/خروجی
موجود انجام بگیرد. I/O تصمیم می زیرد که کدام درخواست I/Oفرایندها به وسیله یک دستگاه
وظیفه فعال سازی و تعلیا فرآیندها بر عهده زمان ند میان مدت( (Medium-term schedulerمی باشد.
زمان ند میان مدت ،فرایندی را از حافظه اصلی حذف و به حافظه جان ی می برد .این فرایند بعردا مری
تواند به حافظه اصلی لود شود .این الگو را م ادله ) (swappingمی زویند.
ایده اصلی زمان ندی میان مدت ،این است که می تواند فرایندی را از حافظه حذف کند و درجه نرد
برنامگی را کاهش دهد.
زمان ند بلند مدت ،ترکیب خوبی از فرایندهای I/O limitedو ، CPU Limitedانتخاو می کند.
نام دیگر زمان ند بلند مدت ،زمان ند کار است.
نام دیگر زمان ند کوتاه مدت ،زمان ند پردازنده است.
زمان ند بلند مدت نس تاً دفعات کمی اجرا میشود ،زمان ند میان مدت نس تاً دفعات بیشتری بره اجررا
در میآید و زمان ند کوتاه مدت ،بیشترین دفعات اجرا را دارد.
تذکر :اک ر سیستم های اشتراک زمانی فاقد زمان ند بلند مدت می باشند.
softsara.ir
48 سیستم عامل
مثال
ازر 1۰میلی ثانیه طول بکشد تا فرایندی انتخاو زردد که 1۰۰میلی ثانیه اجرا شود ،آنگاه ند درصد از
زمان ، CPUصرف زمان ندی کار می شود (به هدر می رود)؟
10
100 %9
10 100
softsara.ir
49 سیستم عامل
سیستمی مسدود کننده ای اجرا شود ،یا یک نقص صفحه رخ دهد ،کل فرایند مسدود می شود .بره عنروان
م ال یک برنامه صفحه زسترده را در نظر بگیرید و فرض کنید کاربری می خواهد به طور دائمری و تعراملی
مقادیر را تغییر دهد .می دانیم که در برنامه صفحه زسترده ،وابستگی تابعی بین سلول هرای مختلرف بایرد
حفظ شود .بنابراین ازر سلولی تغییر کند ،محاس ات زیادی انجام می زیرد .ازر فقط یک نرخ وجرود داشرته
باشد ،وقتی برنامه منتظر دریافت ورودی است ،محاس ات نمی تواند ادامه یابرد ،رون فراخروان سیسرتمی
دریافت ورودی ،کل فرایند را مسدود کرده است .راه حل این است که از یک نخ برای خواندن ورودی کراربر
و از نخ دیگری برای بهنگام سازی صفحه زسترده استفاده شود.
مثال
بسیاری از صفحات وو ،شامل ند تصویر کو ک هستند که مرورزرر بایرد یرک اتصرال جدازانره را بررای
دریافت هر تصویر برقرار کند که زمان زیادی الزم دارد .ازر در مرورزر از رود ند نخی استفاده شود ،هرر
کدام از نخ ها می تواند به طور همیمان با نخ های دیگر تصویر مربوط به خود را درخواست کند.
به عنوان م الی دیگر از کاربرد نخ ها ،جهت حفاظت در مقابل قطع برق می توان یک کلمه پررداز را طروری
طراحی کرد که هر یک دقیقه بافر RAMرا روی دیسک بنویسد .یک نرخ مری توانرد تنهرا بررای زررفتن
پشتی ان دوره ای ایجاد شود و خودد را مستقیما با سیستم عامل زمان ندی کند.
softsara.ir
5۰ سیستم عامل
مثال
شکل زیر سیستمی با هار فرآیند را نشان می دهد که فرآیند اول شامل دو نخ T11و T12می باشد .فراینرد
دوم شامل سه نخ است و ...
حاالت اصلی نخ ع ارت است از :اجرا ،آماده و مسدود( .نخ حالت معلا ندارد)
ازر نخ یک فرآیند در حال اجرا باشد و آن فرآیند به حالت خروج برود ،نخ نمی تواند به اجرا ادامه دهد.
تعویض متن میان دو نخ متعلا به دو فرایند جدازانه ،م ل این است که تعویض متن فرایند رخ داده است .یعنی عمرل
سوئیچینگ مابین دو نخ متعلا به دو فرآیند جدازانه از نوع تعویض متن فرآیندی است.
ساختار نخ زاهی در محیط تک پردازنده ای ،برای ساده کردن ساختار برنامه ای که منطقا اعمال متعددی را انجام مری
دهد ،نیی مفید است.
با تقسیم یک کار به ند نخ ،برنامه ساز می تواند کنترل زیادی روی مولفه ای بودن آن کاربرد و تنظیم وقرت حروادث
مربوط به آن داشته باشد.
پیاده سازی نخ
سه رود برای پیاده سازی و مدیریت نخ وجود دارد:
-1نخ های سطح کاربر
-2نخ های سطح هسته
-3رود های ترکی ی
نخ های سطح کاربر
softsara.ir
51 سیستم عامل
در این رود تمام عملیات راه ری در فضای آدرس کاربر انجام می شود .در این رود هیینره ایجراد نرخ برا
هیینه تخصیص حافظه برای بر پا سازی پشته ) (stackنخ تعیین می شود .تعویض متن نخ اغلب با تعرداد
کمی از دستورات العمل ها انجام می شود و فقط کافی است محتوای ث ات های پردازنرده بررای نرخ فعلری،
ذخیره شود و سپس مقادیر ق ال ذخیره شده مربوط به نخی که به آن سوئیچ می شود ،بار زذاری شروند .در
تعویض متن نخ ها نیازی به فالد کردن ، TLBتغییر نگاشت هرای حافظره و حسرابداری پردازنرده نمری
باشد.
softsara.ir
52 سیستم عامل
برای غل ه بر مشکالت دو رود ق ل ،نخ های سطح کاربر و سطح هسته را را تلفیا می کنیم .برای این کرار
فرایندهای س ک وزن) (LWPایجاد می کنیم LWP .دورن متن یرک فراینرد اجررا شرده و بره ازای هرر
فرایند ممکن است ند LWPوجود داشته باشد .سیستم عالوه بر داشتن LWPها ،یک بسته نخ سرطح
کاربر برای عملیات ایجاد و حذف نخ ها به برنامه های کاربردی ارائه می دهرد .بسرته نرخ کرامال در فضرای
کاربر پیاده سازی می شود و تمام عملیات روی نخ ها بدون دخالرت هسرته انجرام مری شرود .برنامره هرای
کاربردی ند نخی با ایجاد نخ ها و سپس انتساو هر نخ به یک LWPساخته می شوند.
در این رود ازر نخی فراخوان سیستمی مسدود کننده ای را اجرا کند ،اجرا از مد کاربر به مد هسته تغییرر
می کند ولی همچنان در متن LWPجاری ادامه می یابد .در جایی که LWPجاری نتوانرد ادامره دهرد،
متن به LWPدیگری تعویض می شود که باعث یک تعویض متن برای باززشت به مد کاربر نیی می شود.
در رود ترکی ی ،فراخوانی های سیستمی از نوع مسدود با تامین هم روندی حمایت می شوند.
تغییر متن ) (context switchدر نخ های یک فرایند ،اشاره زر پشرته ) (SPرا تغییرر مری دهرد ولری ث رات هرا و
جداول مدیریت حافظه را تغییر نمی دهد و ارت اطی با TLBندارد.
TLBیک سخت افیار جستجوی سریع ،کو ک و پنهان است .در صفحه بنردی تعرداد انردکی از ورودیهرای جردول
صفحه در TLBقرار می زیرد.
)(TLB : Translation Lookaside Buffers
softsara.ir
53 سیستم عامل
کنکور ارشد
softsara.ir
54 سیستم عامل
یک فرایند ،یک فضای آدرس و مالکیت پویرای منرابع را تعریرف مری NT ,
چند به یک
کند .ممکن است نخهای متعدد در داخل آن فرایند ایجاد و اجرا زردد. Solris,OS/2
ممکن است یک نرخ از محریط یرک فراینرد بره محریط فراینرد دیگرر
مهاجرت کند .این موضوع حرکت یک نخ در بین سیستمهای مجریا را Clouds یک به چند
میسر می سازد.
ترکیب خصوصیات موارد ند به یک و یک به ند TRIX چند به چند
softsara.ir
55 سیستم عامل
فرایند س ک وزن) ، (LWPنگاشتی بین نخ سطح کاربر و نخ سطح هسته می باشد .هر LWPاز یک نخ سطح کاریر یرا بیشرتر حمایرت
می کند و به یک نخ سطح هسته می نگارد LWP .ها مستقال توسط هسته زمان ندی شده و ممکن است به صورت موازی روی پردازنرده
های متعدد اجرا شوند.
یک نخ عادی در طول حیات خود ممکن است در LWPهای متفاوتی ،بخش هایی از اجرای خود را بگذراند .بنرابراین زیینره 2درسرت
است .زیینه 3نادرست است ،ون تعداد LWPها به اندازه تعداد نخ هایی است که هم اکنون با هسته درزیر هستند و سیستم عامل به
ازای هر نخ ،یک LWPایجاد نمی کند .به طور نمونه ازر دو LWPموجود باشد و نخ سوم فرایند ،درخواستی از هسته داشته باشد ،باید
منتظر بماند تا یکی از LWPهای ق لی کارد با هسته پایان یابد.
softsara.ir
56 سیستم عامل
برنامهنویسی
13ساعت آموزد ویژوال بیسیک دات نت (Visual Basic.NET) -کلیک کنید ()+
16ساعت آموزد تکمیلی ویژوال بیسیک دات نت (Visual Basic.NET) -کلیک کنید ()+
4ساعت آموزد برنامه نویسی با رود سه الیه به زبان VB.Net -کلیک کنید ()+
16ساعت برنامه نویسی اسمال بیسیک یا Small Basic -کلیک کنید ()+
2ساعت آموزد ساخت بازی ساده در ویژوال بیسیک -کلیک کنید ()+
4ساعت آموزد برنامه نویسی با رود سه الیه به زبان سی شار -کلیک کنید ()+
1ساعت آموزد برنامه نویسی تحت ش که با سی شار در قالب پروهه -کلیک کنید ()+
softsara.ir
57 سیستم عامل
13ساعت آموزد ساخت اپلیکیشن کتاو و کار با دادهها در اندروید -کلیک کنید ()+
14ساعت آموزد ارت اط با دیتابیس سمت سرور در اندروید -کلیک کنید ()+
آموزد ساخت اپلیکیشن دیکشنری صوتی دو زبانه با قابلیت تشخیص صوت کاربر -
7ساعت
کلیک کنید ()+
7ساعت آموزد مدیریت بانک اطالعاتی اوراکل پیشرفته -کلیک کنید ()+
8ساعت طراحی رابط های زرافیکی ) (GUIدر متلب -کلیک کنید ()+
7ساعت آموزد برنامه نویسی Rو نرمافیار RStudio -کلیک کنید ()+
5ساعت آموزد تکمیلی برنامه نویسی Rو نرمافیار RStudio -کلیک کنید)(+
softsara.ir
58 سیستم عامل
4ساعت آموزد پروهه محور HTMLو CSS -کلیک کنید -کلیک کنید ()+
1ساعت آموزد مدیریت هاست با DirectAdmin -کلیک کنید -کلیک کنید ()+
راه اندازی فروشگاه دیجیتال با وردپرس و Easy Digital Downloads -کلیک کنید
1ساعت
()+
1ساعت آموزد راه اندازی سایت شخصی با وردپرس -کلیک کنید ()+
softsara.ir
59 سیستم عامل
علوم کامپیوتر
2۰ساعت آموزد ساختمان دادهها (مرور – تست کنکور ارشد) -کلیک کنید ()+
8ساعت آموزد نظریه زبانها و ماشین (مرور – تست کنکور ارشد) -کلیک کنید ()+
12ساعت آموزد سیستم عامل (مرور اجمالی و تست کنکور) -کلیک کنید ()+
5ساعت آموزد پایگاه دادهها (مرور – تست کنکور ارشد) -کلیک کنید ()+
1۰ساعت آموزد طراحی و پیاده سازی زبان های برنامه سازی -کلیک کنید ()+
آموزد طراحی و پیاده سازی زبان های برنامه سازی (مرور – تست کنکور ارشد) -
12ساعت
کلیک کنید ()+
آموزد ساختمان زسسته (مرور و حل تست های کنکور کارشناسی ارشد) -کلیک
12ساعت
کنید ()+
softsara.ir
6۰ سیستم عامل
3ساعت آموزد مدل سازی UMLبا نرمافیار Rational Rose -کلیک کنید ()+
هوش مصنوعی
2ساعت حل مسأله فروشنده دوره زرد با استفاده از الگوریتم هنتیک -کلیک کنید ()+
طراحی سیستم های فازی عص ی یا ANFISبا استفاده از الگوریتم های فرا ابتکاری و
2ساعت
تکاملی -کلیک کنید ()+
softsara.ir
61 سیستم عامل
1ساعت الگوریتم کرم شب تاو یا Firefly Algorithmدر متلب -کلیک کنید ()+
2ساعت بهینه سازی م تنی بر جغرافیای زیستی یا BBOدر متلب -کلیک کنید ()+
3ساعت کلونی زن ور مصنوعی یا Artificial Bee Colonyدر متلب -کلیک کنید ()+
2ساعت الگوریتم بهینه سازی علف هرز مهاجم یا IWOدر متلب -کلیک کنید ()+
1ساعت الگوریتم بهینه سازی م تنی بر و یادزیری یا TLBO -کلیک کنید ()+
4ساعت الگوریتم بهینه سازی جهش قورباغه یا SFLAدر متلب -کلیک کنید ()+
3ساعت ش که های عص ی زازی به همراه پیاده سازی عملی در متلب -کلیک کنید ()+
3ساعت ط قه بندی و بازشناسی الگو با ش که های عص ی LVQدر متلب -کلیک کنید ()+
8ساعت آموزد پیاده سازی الگوریتم های تکاملی و فراابتکاری در سی شار -کلیک کنید ()+
softsara.ir
62 سیستم عامل
88ساعت زنجینه فرادرس های یادزیری ماشین و داده کاوی -کلیک کنید ()+
3ساعت ش که های عص ی زازی به همراه پیاده سازی عملی در متلب -کلیک کنید ()+
3ساعت ط قه بندی و بازشناسی الگو با ش که های عص ی LVQدر متلب -کلیک کنید ()+
3ساعت خوشه بندی با استفاده از الگوریتم های تکاملی و فراابتکاری -کلیک کنید ()+
4ساعت انتخاو ویژزی با استفاده از الگوریتم های فرا ابتکاری و تکاملی -کلیک کنید ()+
کاهش تعداد رنگ تصاویر با استفاده از رود های خوشه بندی هوشمند -کلیک کنید
1ساعت
()+
4ساعت آموزد پردازد سیگنال های واقعی در متلب -کلیک کنید ()+
9ساعت م انی و کاربردهای راه رد تلفیا داده یا Data Fusion -کلیک کنید ()+
3ساعت آزمونهای فرض مربوط به میانگین جامعه نرمال در SPSS -کلیک کنید ()+
softsara.ir
63 سیستم عامل
7ساعت آموزد مدل سازی معادالت ساختاری با Amos -کلیک کنید ()+
مهندسی برق
4ساعت آموزد مروری طراحی و پیاده سازی مدارات منطقی -کلیک کنید ()+
4ساعت آموزد تکمیلی میکروکنترلر AVRو نرمافیار CodevisionAVR -کلیک کنید ()+
6ساعت آشنایی با PLCهای ساخت شرکت های Omronو Keyence -کلیک کنید ()+
3ساعت آموزد تحلیل و طراحی مدارات الکترونیکی با Proteus -کلیک کنید ()+
2ساعت آموزد تکمیلی آنالیی مدار با نرمافیار ADS -کلیک کنید ()+
softsara.ir
64 سیستم عامل
2ساعت آموزد تحلیل ریاضی مدارات الکتریکی با OrCAD -کلیک کنید ()+
2ساعت آموزد ش یه سازی مدارات الکترونیکی با Orcad Capture -کلیک کنید ()+
7ساعت آموزد تکمیلی برنامه نویسی آردوینو (Arduino) -کلیک کنید ()+
7ساعت آموزد طراحی برد مدار اپی به کمک نرمافیار Altium Designer -کلیک کنید ()+
5ساعت آموزد م انی ربات های برنامه پذیر -کلیک کنید ()+
آموزد متلب با نگرد تحلیل آماری ،تحلیل سری های زمانی و داده های مکانی -
8ساعت
کلیک کنید ()+
4ساعت پردازد سیگنال های دیجیتال با استفاده از نرمافیار متلب -کلیک کنید ()+
11ساعت آموزد سیستم های قدرت در سیمولینک و متلب -کلیک کنید ()+
آنالیی پایداری و کنترل سیستم های قدرت با استفاده از جع ه ابیارهای نرمافیار متلب -
2ساعت
کلیک کنید ()+
3ساعت آشنایی با SimPowerSystemsدر ش یه سازی سیستم های قدرت -کلیک کنید ()+
softsara.ir
65 سیستم عامل
8ساعت آموزد الکترونیک قدرت – ش یه سازی در متلب و سیمولینک -کلیک کنید ()+
آموزد ش یه سازی عملکرد انواع ماشین های الکتریکی در سیمولینک متلب -کلیک
1۰ساعت
کنید ()+
21ساعت آموزد نرمافیار ETAPبرای تحلیل سیستم های قدرت -کلیک کنید ()+
5ساعت آموزد مقدماتی نرمافیار GAMSبرای حل مسائل بازار برق -کلیک کنید ()+
2ساعت آموزد پخش بار اقتصادی (دیسپا ینگ اقتصادی) در GAMS -کلیک کنید ()+
1ساعت طراحی آنتن مایکرواستریپ به کمک نرمافیار HFSS -کلیک کنید ()+
1ساعت آموزد طراحی و ش یه سازی آنتن های SIWبا HFSS -کلیک کنید ()+
آموزد بررسی کامل آنتن های مایکرواستریپ و طراحی آن توسط CST -کلیک کنید
3ساعت
()+
آموزد تجییه سیگنال به مولفه های مود ذاتی یا Empirical Mode Decomposition
4۰دقیقه
-کلیک کنید ()+
3ساعت نمونه برداری و بازسازی اطالعات در سیستم های کنترل دیجیتال -کلیک کنید ()+
1ساعت بررسی پاسخ ورودی پله در شناسایی فرآیندهای صنعتی -کلیک کنید ()+
مدل سازی و شناسایی سیستم های دینامیکی با استفاده از مدل ARXو ش که فازی
1ساعت
عص ی ANFIS -کلیک کنید ()+
2ساعت طراحی و تنظیم ضرایب کنترل کننده PIDبا منطا فازی -کلیک کنید ()+
softsara.ir
66 سیستم عامل
3 فصل
softsara.ir
67 سیستم عامل
در حالت بدون ق ضه کردن (انحصاری) ،همین که یک فرایند درحالت اجرا قرار زرفرت ،آنقردر بره اجررا
مسدود شود. I/O ادامه میدهد تا خاتمه یابد یا اینکه خودد (داوطل انه) ،برای انتظار
-2با قبضه کردن ()preemptive
در حالت با ق ضه کردن (غیر انحصاری) ،فرایند در حال اجرا میتواند توسط سیستم عامل متوقف شود و
به حالت آماده منتقل شود.
تصمیم به ق ضه کردن میتواند در یکی از حاالت زیر انجام زیرد:
-1به صورت دوره ای براساس وقفه ساعت
-2در زمان ورود یک فرایند جدید
-3در زمانی که فرایند مسدودی به حالت آماده برود.
سیاست هایی که با ق ضه کردن همراه است سربار بیشتری را به همراه دارند ولی خدمت بهتری را ارائه میدهند.
softsara.ir
68 سیستم عامل
تذکر :برای بدست آوردن زمان پاسخ و زمان انتظار فرایندها از روشی به نام زانت استفاده می شود.
مثال
با توجه الگوریتم ، FCFSزانت را برای فرایندهای زیر رسم نمایید.
زمان اجرا زمان ورود
A 1 5
softsara.ir
69 سیستم عامل
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
softsara.ir
7۰ سیستم عامل
مثال
در الگوریتم FCFSبا توجه به فرایندهای داده شده ،مطلوو است:
الف -میانگین زمان اجرا
و -میانگین زمان انتظار
ج -میانگین زمان برزشت(پاسخ)
نام فرایند زمان ورود زمان پردازش
A 0 3
B 1 3
C 4 3
D 6 2
حل:
زانت فرایندها به صورت زیر می باشد:
تذکر :ال ته می توانستیم با توجه به رابطه زیر نیی ،میانگین زمان برزشت را محاس ه کنیم:
میانگین زمان برزشت = میانگین زمان اجرا +میانگین زمان انتظار
softsara.ir
71 سیستم عامل
softsara.ir
72 سیستم عامل
مثال
میانگین زمان انتظار سه پردازد زیر با استفاده از سیاست زمان بندی RRبا کوانتوم زمانی 3میلی ثانیره را
بدست آورید؟ (زمان ورود= صفر ) (زمان پردازد )P1=9,P2=2,P3=2 :
حل :زانت بصورت زیر می باشد:
اجرای پروسس P1در اولین برد زمانی تمام نمیشود و به انتهای صف مریرود و پروسرس P2و P3ق رل از
پایان برد زمانی ،به پایان میرسند .میانگین زمان انتظار برابر است با:
)(13 9) (5 2) (7 2
4
3
softsara.ir
73 سیستم عامل
مثال
ازر زمان اجرای پروسسهای P4,P3,P2,P1به ترتیب 80,90,30,50باشد و رود RRبرا کوانتروم زمرانی 40و
زمان تعویض متن 10استفاده شود ،میانگین زمان برزشت کدام است؟ (زمان ورود= )0
حل :زانت فرایندها به صورت زیر است:
فرض :همیشه بین فرایندی که در لحظه tبرد زمانی خود را به پایان می رساند و فرایند ورودی در لحظره
،tاولویت با فرایند ق لی موجود در سیستم است و در شرایط کامال یکسان بین دو فرایند ،اولویت با فراینرد
با شماره کو کتر است.
حل:
زانت به صورت زیر می باشد:
1 در لحظه P1 ، 0و P2وارد می شوند .پردازنده به P1داده می شود و P2در صف قرار می زیرد .در لحظه
،پردازنده از P1زرفته شده و بعد از P2در صف قرار می زیرد .همچنین P3و P4که در همین لحظه وارد
softsara.ir
74 سیستم عامل
P2 داده می شود .در لحظه ، 2پردازنده از P2 قرار می زیرند .پردازنده به P1 شده اند ،در صف پشت سر
P2 که در همین لحظه وارد شده در انتهای صف بعد از P5 زرفته شده و به انتهای صف بعد از P4رفته و
تمام شده و P1 (فرایند ابتدای صف)داده می شود .در لحظه ، 3اجرای P1 قرار می زیرد .پردازنده هم به
پردازنده به P3که اول صف است داده می شود .در لحظه ، 4اجرای P3تمام شده و پردازنده به فرایند اول
6 صف یعنی P4داده می شود .در لحظه ، 5اجرای P4تمام شده و پردازنده به P2داده می شود .در لحظه
تمام شده و پردازنده به P5داده می شود. P2 ،اجرای
softsara.ir
75 سیستم عامل
مثال
به کمک رود زمان بندی نوبهای با کوانتوم زمانی 20میلی ثانیه ،متوسط زمان انتظار پردازههرا را محاسر ه
کنید؟ (زمان Context Switchبرابر 5میلی ثانیه است().زمان ورود همه فرایندها = ) 0
فراین
زمان اجرا
د
A 40
B 20
C 50
D 30
حل :زانت آن به صورت زیر است:
مثال
سیستمی شامل هار فرایند است که داخل هر فرایند می تواند بیش از یک نخ اجرایی وجود داشته باشد مطابا جردول زیرر
مفروض است .برای فرایندها از الگوریتم Round-Robinبا برد زمانی q=10استفاده کنید .داخل هر فرایند از رود FIFO
برای تعویض نخ ها استفاده می شود و تا زمانی که اجرای یک نخ تمام نشده ،نوبت به نرخ بعردی نمری رسرد .بررای تعرویض
فرایند 1msو برای تعویض نخ در داخل فرایند 0.5msزمان الزم است .نمودار زانت را رسم کنید.
softsara.ir
76 سیستم عامل
مثال
سیستمی شامل سه فرایند مطابا جدول زیر مفروض است .برای فرایندها از الگوریتم Round-Robinبا برد زمانی 8میلی
ثانیه استفاده کنید .داخل هر فرایند از رود FIFOبرای تعویض نخ ها استفاده می شود و تا زمانی که اجرای یک نخ تمام
نشده ،نوبت به نخ بعدی نمی رسد .برای تعویض فرایند 2msو برای تعویض نخ در داخل فرایند 1msزمان الزم است.
میانگین زمان پاسخ را برای نخ های هر فرایند محاس ه کنید.
فرایند P1 P2 P3
نخ A B C D E F
زمان اجرا 5 10 2 8 9 6
F 26
softsara.ir
77 سیستم عامل
-2انحصاری است.
-3امکان زرسنگی فرایندهای طوالنی وجود دارد.
-4برای محیط های اشتراک زمانی ،مناسب نیست.
-5میانگین زمان انتظار ،کمینه است.
مثال
میانگین زمان انتظار را برای فرایندهای زیر به رود SJFبدست آورید؟(ورود همه در لحظه صفر)
) (P1=7 , P2=8 , P3=3 , P4=5
حل :ترتیب اجرا برابر است با( :از کوتاهترین کار شروع میشود)
مثال
محاس ه کنید. SJF با توجه به جدول زیر متوسط زمان انتظار را در هر یک از روشهای
(زمان تعویض متن= 1میلی ثانیه)
زمان ورود زمان موردنیاز
پروسس
به سیستم پردازد
A 0 9
B 2 4
C 0 8
D 3 2
E 5 1
softsara.ir
78 سیستم عامل
softsara.ir
79 سیستم عامل
با توجه به S nبه دست آمده ،مشخص است که ترتیب اجرا برابر است باA B C :
(ط ا الگوریتم ، SJFکارها از کو ک به بیرگ اجرا می شوند)
حال با توجه به زمان اجرای واقعی در سیکل nام که برابر 4 ،5و 7می باشد ،نمودار زانت را رسم می کنیم:
softsara.ir
8۰ سیستم عامل
حل :اجرای فرایند P1در لحظه صفر شروع شده و با ورود P2در زمان ،1اجرای P1قطرع شرده ( رون P2زمران اجررای
کمتری نس ت به زمان باقیمانده برای P1یعنی 7میلی ثانیه دارد) و اجررای P2شرروع خواهرد شرد و بعرد از اجررای ،P2
اجرای P4شروع میشود و سپس اجرای P1ادامه مییابد و در نهایت P3اجرا خواهد شد .بنابراین زانت آن به صورت زیرر
است:
softsara.ir
81 سیستم عامل
softsara.ir
82 سیستم عامل
مثال
با توجه به جدول زیر متوسط زمان انتظار را در هر یک از روشهای SRTمحاس ه کنید.
زمان ورود زمان موردنیاز
پروسس
به سیستم پردازد
A 0 9
B 2 4
C 0 8
D 3 2
E 5 1
پاسخ :نمودار زانت به صورت زیر است:
softsara.ir
83 سیستم عامل
-1زرسنگی ندارد.
-2از معایب این رود ،نیاز به تخمین زمان خدمت مورد نیاز ق ل از به کارزیری میباشد.
است. W S -3تابع انتخاو آن برابر
( MAX )
S
-4سربار میتواند زیاد باشد.
-5توان عملیاتی زیاد است.
-6زمان بندی انحصاری (بدون ق ضه کردن) است.
فیدبک )(FB
ازر نتوانیم روی زمان باقیمانده برای اجرا تمرکی کنیم ،بهتر اسرت روی زمران اجررای سرپری شرده تمرکری
کنرریم .زمرران بنرردی FBبراسرراس ق ضرره کررردن صررورت میزیرررد و از یررک رود اولویررت پویررا اسررتفاده
میشود.فرایندی که ابتدا وارد شود به صف 0میرود و هنگامی که بعد از اولین اجرا به حالت آماده مریرود
در صف 1با اولویت کمتر قرار میزیرد پس از هر اجرا به صف کم اولویت تر بعردی مریرود .فراینرد کوتراه
بدون انتقال به صفهای پایین تر به سرعت اجرا میشود ،اما فرایندهای طوالنی به صفهای پایین میرونرد و
فرایندهای جدیدتر و کوتاهتر به فرایندهای قدیمیتر و بلند تر ارجحیت دارند .در صف با کمترین اولویت از
سیاست RRو درصفهای دیگر از سیاست FCFSاستفاده میشود ( .ون فراینرد درصرف کمتررین اولویرت،
نمیتواند به صفهای پایین تر برود).
زمان بندی FBغیر انحصاری می باشد ،ون فرایندی از صفی به صف دیگر می تواند منتقل شود.
زمان بندی های زیر در کتاو سیل رشاتس آورده شده است.
زمان بندی صف بازخوردی چند سطحی ()MLFQ
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زمان بندی می شود .میانگین زمان پاسخ و میانگین زمان انتظار قدر خواهد بود؟
softsara.ir
85 سیستم عامل
حل:
ابتدا برنامه ها وارد صف اول می شوند و در صورت نیراز بره بریش از 8میکروثانیره بره صرف دوم وارد مری
شوند(فرایندهای )F,E,D,Cو در صف دوم در صورت نیاز به بیش از 16میکروثانیه به صف سوم منتقل مری
شوند (فرایندهای )F,Eو در صف سوم به رود FCFSبه آنها رسیدزی می شود:
softsara.ir
86 سیستم عامل
باالترين
باالترين سيستمي
فرآيندهاي سيستمي
فرآيندهاي
اولويت
اولويت
اي
محاورهاي
فرآيندهاي محاوره
فرآيندهاي
تاارين
پااايين تاارين
پااايين اي
دستهاي
فرآيندهاي دسته
فرآيندهاي
اولويت
اولويت
در این م ال ،هیچ فرایندی در صف محاورهای نمیتواند اجرا شود ،مگر اینکره صرف مربروط بره فراینردهای
سیستمی خالی باشد .همچنین ازر در حین اجرای فرایند دستهای ،یک فرایند محراورهای وارد صرف شرود،
فرایند دستهای ق ضه میشود ،ون اولویت فرایند محاورهای باالتراست.
زمان بندی اولویت ()Priority
به فرایندی داده میشود که براالترین اولویرت را CPU در این الگوریتم به هر فرایند اولویتی داده میشود و
دارد و فرایندهایی که اولویت آنها یکسان باشد به ترتیب FCFSزمان بندی میشوند.
مثال
میانگین زمان انتظار برای پنج فرایند زیر را در رود زمان بندی اولویت بدست آورید.
(اعداد کو ک ،اولویت باال را نشان میدهد).
فراین اولوی
زمان اجرا
د ت
softsara.ir
87 سیستم عامل
مثال
برای سه پردازه زیر ،زمان متوسط پاسخگویی در رود اولویت کدام است؟
(عدد کمتر در ستون اولویت ،نشان دهنده اولویت بیشتر است).
P2 حل :ابتدا فرایند P1اجرا می شود ( ون اولویت آن بیشتر است) و سپس فرایند P3و در نهایرت فراینرد
اجرا می شود .زانت به صورت زیر می باشد:
softsara.ir
88 سیستم عامل
زمانبندی LCFS
در این رود ،آخرین ورودی ابتدا سرویس می زیرد .این رود می تواند ق ضه شدنی یا ق ضه نشدنی باشد.
LCFS : Last-Come First-Served
مثال
پنج فرایند زیر به سیستمی وارد شده است .نمودار زانت را در صورت استفاده از الگوریتم LCFSانحصاری ) (NP-LCFSرا
محاس ه کنید.
پردازنده در لحظه 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
حل :نمودار زانت به صورت زیر می باشد:
softsara.ir
89 سیستم عامل
الگوریتم 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
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
softsara.ir
91 سیستم عامل
سپس کارها را به ترتیب به پردازنده ها داده و هر پردازنده ای که کرارد را انجرام داد ،کرار بعردی را اجررا
خواهد کرد:
بنابراین طول زمان ندی برابر 26خواهد بود( .زمان مشغول بودن پردازنده دوم که بیشترین زمان است).
softsara.ir
92 سیستم عامل
ws تابع
(max ) ]Min[s-e ]Min[s ثابت ]MAX[W
s انتخاو
حالت
با ق ضه کردن بدون ق ضه کردن
با ق ضه کردن بدون ق ضه با ق ضه کردن
(در برهه بدون ق ضه کردن تصمیم
در ورود کردن (در برهه زمانی)
زمانی)
زیری
ازر برهه زمانی تاکید نشده است
تاکید نشده خیلی کو ک توان
زیاد زیاد زیاد
است. باشد ،کم می
عملیاتی
شود.
برای می تواند زیاد
برای فرایندهای
زمان پاسخ فرایندهای باشد،به خصوص زمان
زمان پاسخ خوبی را کوتاه زمان پاسخ
تاکید نشده خوبی را ارائه کوتاه زمان ازر واریانس
ارائه می کند. خوبی را ارائه می
است می کند. پاسخ خوبی را زمانهای اجرا پاسخ
دهد.
ارائه می دهد. خیلی بیرگ باشد.
به فرایندهای
می تواند به نفع تاثیر بر
به فرایندهای به فرایندهای کوتاه و فرایندهای
فرایندهای در
توازن مناسب طوالنی صدمه طوالنی صدمه عملکرد عادالنه در تنگنای I/O روی
تنگنای I/O
می زند. می زند. صدمه می زند.
باشد. فرایندها
امکان دارد خیر امکان دارد امکان دارد خیر خیر زرسنگی
softsara.ir
93 سیستم عامل
softsara.ir
94 سیستم عامل
کنکور ارشد
softsara.ir
95 سیستم عامل
حل :جواو زیینه 2است .ون میانگین زمان اجرای فرایندها ق ل از ورودی/خروجی کمتر از زمان برد زمانی است ،اجررای
فرایندها ق ل از پایان کوانتوم زمانی ،به اتمام می رسد .بنابراین کارایی پردازنده ،یعنی نس ت زمران مفیرد ( )rبره کرل زمران
r
) (r+cبرابر است با:
rc
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است.
نمودار زانت به صورت زیر می باشد:
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داده می شود.
نمودار زانت به صورت زیر است:
softsara.ir
98 سیستم عامل
4 فصل
عملکرد ند برنامه ای به خاطر این ابداع شد که زمان پردازد کامپیوتر به صورت پویرا برین تعردادی کرار
بتواند تقسیم زردد .برای زمینه های ند برنامه ای ،ند پردازشی و پردازد توزیعی و همچنرین طراحری
سیستم عامل ،موضوع همیمانی اساسی است .فرایندهای هم روند ) ، (Concurrentبه دفعات نیاز به برقراری
ارت اط با یکدیگر دارند .این فرایندها نیاز به هماهنگی ،ت ادل داده و استفاده از منابع مشترک دارند.
ازر بین فرایندها وابستگی وجود داشته باشد ،ترتیب درست انجام کارها باید رعایت شود.
-2تبادل اطالعات )(Communication
فرایندها می توانند با مکانیسم هایی ون "حافظه مشترک ،ت ادل پیام ،فایل مشترک و لوله" با یکدیگر
ت ادل اطالعات کنند.
-3رقابت فرایندها
(Raceبررای آنهرا رخ رقابتی)Condition فرایندها در فعالیت های بحرانی یکدیگر مداخله نکنند و شرایط
ندهد.
softsara.ir
99 سیستم عامل
softsara.ir
1۰۰ سیستم عامل
P3 مجدداً P1درخواست Rرا بکند و بعد از پایان ، P3اجازه به P1داده شود و مکرراً ایرن عمرل برین P1و
محروم می ماند و زرسنگی می کشد. R ادامه یابد P2 ،به صورت نامحدود از دسترسی به من ع
مثال
در صورت اجرای هم روند و موازی دو پروسس زیر ،ه خروجی هایی ممکن می باشد؟
p1 p2
مثال
با فرض اینکه دو پردازه P1و P2به صورت هم روند وجود دارند .نحوه ایجاد رشته A(CD ) * Bگونه می باشد؟
P1 P2
{)while(TRUE {)while(TRUE
;"cout<< "A ;"cout<<"C
;"cout<< "B ;"cout<<"D
} }
پاسخ:
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ا می شود.
softsara.ir
1۰2 سیستم عامل
از بین فرایندهایی که برای یک من ع یکسان دارای ناحیه بحرانی هستند ،در هر لحظه فقط یک فراینرد
مجاز است که در ناحیه بحرانی خود باشد.
-2پیشرفت )(Progress
فرایندی که فعرال تصرمیم بره ورود بره ناحیره بحرانری را نردارد و در ناحیره غیرر بحرانری مری باشرد،و
دستورالعمل های عادبی برنامه خود را اجرا می کند ،ن اید در تصمیم زیری برای ورود فرایندهای دیگرر
به ناحیه بحرانی شرکت کند(.امکان ممانعت نداشته باشد)
باید مدت انتظار فرایندهایی که نیاز به ورود به ناحیه بحرانی دارنرد ،محردود باشرد .یعنری ن ایرد د رار
زرسنگی و بن بست شوند.
زرسنگی :به مدت نامعلوم و بدون حد باالی مشخص ،منتظر فرایندهای دیگر بودن.
بن بست :تا ابد منتظر ورود به ناحیه بحرانی خود بودن.
ال ته عالوه بر رعایت 3شرط باال ،مسئله را باید در حالت کلی حل کرد و فرضی برای ساده سرازی راه حرل
به کار ن رد .همچنین الگوریتم حالت قطعی و غیر تصادفی داشته باشد.
ازر فرایند P2بخواهد وارد ناحیه بحرانی شود در حالی کره P1در ناحیره بحرانری قررار دارد P2 ،بایرد
منتظر بماند تا P1خارج شود P2 .برای انتظار کشیدن دو راه " انتظار مشغول و مسدود شردن" پریش
رو دارد .رود انتظار مشغول دارای مشکل اتالف پردازنده است و از این رود وقتی استفاده می کنریم
که زمان انتظار کوتاه باشد.
softsara.ir
1۰3 سیستم عامل
برای تحقا انحصار متقابل ،پیشنهادهای مختلفی وجود دارد .این راه حل ها را به صورت هار رویکرد زیرر،
دسته بندی می کنیم:
-1نرم افیاری
-2با حمایت سخت افیار (با کمک دستورالعمل های خاص )CPU
-3با حمایت سیستم عامل (با کمک فراخوان های سیستمی خاص)
-4با حمایت زبان برنامه سازی (با کمک کامپایلر)
رویکردهای نرم افزاری انحصار متقابل
راه حل های نرم افیاری مستقیما توسط برنامه ها استفاده می شوند و وجود حافظه اشرتراکی ضرروری مری
باشد .در این راه حل ها از دستورالعمل های خاص توسرط سرخت افریار اسرتفاده نمری شرود و حمرایتی از
سیستم عامل و زبان های برنامه سازی نداریم.
الگوریتم Decker
آقای Deckerاولین شخصی بود که یک راه حل نرم افیاری دو فرایندی برای مسئله انحصار متقابل ارائه داد.
Deckerبا پنج مرحله تالد به راه حل درست رسید .این تالد ها در زیر آورده شده است.
)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
} }
softsara.ir
1۰4 سیستم عامل
} }
softsara.ir
1۰5 سیستم عامل
یکی از معایب این رود این است که سرعت عملیات توسط فراینرد کنردتر تعیرین مری شرود ،رون
فرایندها برای دسترسی به ناحیه بحرانی باید به صورت یک در میان عمل کنند.
یکی از معایب این رود این است که ازر فرایندی در ناحیه بحرانی از کار بیفتد ،فرایند دیگرر ترا ابرد
منتظر خواهد ماند.
تالش دوم
در این رود از دو متغیر پر م مشترک به نام های ] flag[0و ] flag[1با مقدار اولیره FALSEاسرتفاده مری
شود که هر کدام متعلا به یک فرایند است .هر فرایندی که قصد ورود به ناحیه بحرانی خود را دارد ،پرر م
خود را TRUEمی کند.
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
} }
} }
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پیشرفت
softsara.ir
1۰8 سیستم عامل
این رود شرط پیشرفت را رعایت می کند( .با همان استدالل تالد دوم)
-3انتظار محدود
در این رود شرط انتظار محدود رعایت نمی شود ،ون امکان بن بست وجود دارد.
P1 سناریو :فرض کنید که falg[0] ،P0را TRUEکنرد ولری ق رل از بررسری ] flag[1در برنامره ، P0بره
سوئیچ شود و flag[1] ، P1را TRUEکند .در این صورت هر دو فرایند تا ابد در حلقه انتظار زرفتار مری
شوند و بن بست رخ می دهد.
softsara.ir
1۰9 سیستم عامل
)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
} }
} }
softsara.ir
11۰ سیستم عامل
-3انتظار محدود:
در این رود شرط انتظار محدود رعایت نمی شود ،ون ممکن است یک فرایند به مدت نامعلوم و بدون
حد باالی مشخص ،زرفتار قسمت تاخیر ) (delayشود و فرایند مقابل به دفعات وارد ناحیه بحرانی شرود.
بنابراین به دلیل امکان زرسنگی ،شرط انتظار محدود رعایت نمی شود .همچنین به علرت امکران وجرود
، Livelockنیی شرط انتظار محدود رعایت نمی شود.
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کند.
هر دو فرایند در یک زمان به مدت کوتاه یکسان عقب نشینی می کنند .سپس با هم بر می زردند و مراحل
باال را تکرار می کنند .ازر این دن اله به طور نامحدود تکرار شود ،ممکن است هیچ کدام از فرایندها نتواننرد
وارد ناحیه بحرانی شوند .ال ته این تکرار بن بست نمی باشد ،ون با تغییر در سرعت نس ی فراینردها ،ایرن
رخه شکسته می شود.
softsara.ir
112 سیستم عامل
هنگامی که P0بخواهد وارد بخش بحرانی خود شود ،در flagمربوط به خود مقدار TRUEمی زذارد .سپس
flagمربوط به P1را بررسی می کند که دو حالت رخ می دهد:
softsara.ir
113 سیستم عامل
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وجود دارند ،ع ارتنداز:
softsara.ir
115 سیستم عامل
-1ازر یکی از فرایندها در داخل ناحیه بحرانی از کار بیفتد ،فرایند دیگر تا ابد منتظر می ماند.
-2م تنی بر انتظار مشغول می باشند.
softsara.ir
116 سیستم عامل
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می باشد.
راه حل داده شده ،انحصار متقابل و پیشرفت را رعایت می کند ولی انتظار محدود به دلیل زرسنگی را رعایت نمی کند.
softsara.ir
118 سیستم عامل
از شمارنده برای شمارد تعداد wakeupهایی که می خواهند هدر بروند ،استفاده می شود .با ایرن کرار
این سیگنال ها برای استفاده های بعدی ذخیره می شوند.
-2صف )(queue
از صف برای نگهداری فرایندهای بلوکه شده بر روی سمافور استفاده می شود.
مطرح شدند که به ترتیب تعمیم یافته sleepو wakeupهستند. signal توسط ، Dijkstraدو تابع waitو
softsara.ir
119 سیستم عامل
تابع ، waitیک واحد از شمارنده کم کرده و ازر منفی شود ،فرایند مربوطه در صف ،مسدود می شود.
تابع ،signalیک واحد به شمارنده اضافه می کند ،ازر مقدار شمارنده بیشتر از صفر نشود ،یک فرایند از ق ل
مسدود شده در صف ،آزاد می شود.
در بعضی از متون از حرف Pبه جای waitو از حرف Vبه جای signalاستفاده می شود.
در بعضی از متون از downبه جای waitو از upبه جای signalاستفاده می شود.
سمافور بر دو نوع عمومی و دودویی می باشد .در سمافور عمومی که آن را بررسی کردیم ،شمارنده می
و 1را دریافت می کند. 0 تواند م ت ،صفر و یا منفی باشد .اما شمارنده در سمافور دودویی ،فقط مقادیر
توابع waitو signalبرای سمافور باینری به صورت زیر است:
softsara.ir
12۰ سیستم عامل
در سمافورها صفی برای نگهداری فرایندهای بلوکه شده استفاده می شود .ازر خروج از ایرن صرف بره
ترتیب ورود باشد)، (FIFOبه آن سمافور قوی می زویند و ازر این نین ن اشد ،به آن سمافور ضعیف می
زویند .در سمافور ضعیف ،امکان زرسنگی وجود دارد .در این کتاو سمافورها از نوع قوی فرض می شوند.
softsara.ir
121 سیستم عامل
سمافوری که ترتیب خروج در آن مشخص ن اشد ،سمافور ضعیف نامیرده مری شرود .در ایرن نروع سرمافور ،امکران
زرسنگی وجود دارد(.در سمافور قوی ،منطا صف FIFOاست).
softsara.ir
122 سیستم عامل
پیاده سازی انحصار متقابل به کمک سمافور دارای میایایی است از جمله :ارضای شررط هرای انحصرار
متقابل،پیشرفت و انتظار محدود .این رود عادالنه اسرت CPU،را تلرف نمری کنرد و مشرکل اولویرت
معکوس ندارد.
softsara.ir
123 سیستم عامل
مثال
با فرض اینکه مقدار اولیه دو سمافور Sو Qبرابر صفر باشد ،نحوه ا ABCDEرا مشخص کنید.
P0 P1
)signal(Q ;)wait(Q
;)wait(S ;"cout<<"A
;"cout<<"C ;)signal(S
;"cout<<"D ;"cout<<"B
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
softsara.ir
125 سیستم عامل
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می خوابند.
softsara.ir
127 سیستم عامل
softsara.ir
128 سیستم عامل
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اسرتفاده
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
}
softsara.ir
131 سیستم عامل
softsara.ir
132 سیستم عامل
برای م ال یک سیستم رزرواسیون هواپیمایی را در نظر بگیرید که تعرداد زیرادی فراینرد در آن بررای نوشرتن و خوانردن برا
یکدیگر رقابت می کنند .ند فرایند می توانند به طور همیمان پایگاه داده را بخوانند ولی ازرر یرک فراینرد در حرال بره روز
رسانی پایگاه داده باشد ،فرایندهای دیگر حتی خوانندزان،ن اید به پایگاه داده دسترسی داشته باشند.
) (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اول ،به اولین خواننده اجازه ورود داده می شود،ال ته در صورتی که نویسنده ای فعال ن اشد.
softsara.ir
134 سیستم عامل
توسط ifپایانی ،بررسی می کنیم که ازر خواننده فعال دیگری وجود نداشته باشد ،در صورت اینکه نویسنده بلوکره شرده ای
داشته باشیم ،به آن اجازه داده شود.
در این رود شرط انحصار متقابل و شرط پیشرفت رعایت می شود ولی شرط انتظرار محردود رعایرت
نمی شود ( .ون اولویت با خوانندزان است و امکان زرسنگی نویسندزان وجود دارد).
softsara.ir
135 سیستم عامل
مانیتور
مشاهده کردید که همگام سازی فرایندها با سمافور پیچیده است .در واقرع تنهرا مشرکل سرمافور در سیسرتمی کره حافظره
مشترک دارد ،پیچیدزی استفاده از آن در حل مسائل همگام سازی می باشد .ازر برنامه نویس در اسرتفاده از سرمافور دقرت
الزم را نکند ،ممکن است د ار بن بست شود.
مانیتور(ناظر) ساختاری از زبان برنامه سازی است که همان کار سمافور را انجام می دهرد و کنتررل آن هرم سراده ترر اسرت.
سمافور اغلب توسط سیستم عامل پشتی انی می شود و می تواند توسط زبان برنامه سازی نیی پشتی انی شود ،اما مانیتور باید
فقط توسط زبان برنامه سازی پشتی انی شود.
ساختار مانیتور در زبانهای برنامه سازی به صورت برنامه کتابخانه ای پیاده سازی شده است .این به افراد اجرازه مری دهرد ترا
قفل های مانیتور را روی هر شیئی بگذارند .مرانیتور مولفره ای نررم افریاری ،مشرتمل برر یرک یرا نرد رویره ،دن الره ای از
مقدارزذاری های اولیه و داده های محلی است.
ویژگی های اصلی مانیتور:
– 1متغیرهای داده ای محلی مانیتور ،تنها برای رویه های خود مانیتور قابرل دسرترس بروده و هریچ رویره دیگرری بره آنهرا
دسترسی ندارد.
– 2یک فرایند با احضار یکی از رویه های مانیتور ،وارد آن می شود.
– 3در هر زمان تنها یک فرایند می تواند در مانیتور در حال اجرا باشد ،فرایندهای دیگری که مانیتور را احضار کرده انرد ترا
فراهم شدن مانیتور ،معلا خواهند بود( .برقراری انحصار متقابل)
مانیتور با استفاده از متغیرهای شرطی که تنها از داخل مانیتور ،قابل دسترس هستند ،از همگام سازی حمایت می کند .برای
این کار از دو تابع کتابخانه ای ) cwait(conditionو ) csignal(conditionکه ساختاری از زبان برنامه سرازی هسرتند،
استفاده می کنند .در بعضی از منابع ،از cاول این دستورها استفاده نمی شود.
ازر فرایندی ) cwait(cرا صدا بیند ،پشت شرط cبه خواو می رود .ازر فرایندی ) csignal(cرا صدا بیند ،یک پیغام بیدار
باد برای فرایندهایی که پشت شرط cخوابیده اند می فرستد که فقط یکی از آنها توسط زمان ند سیستم بیدار می شود.
متغیرهای شرطی ،شمارنده نیستند و مانند سمافور نمی توانند سیگنال ها را برای استفاده آینده ،ذخیره کنند.
امتیازی که مانیتورها نس ت به سمافورها در همگام سازی فرایندها دارند ،این است که تمام اعمرال همگرام سرازی در
محدوده مانیتور است .بنابراین کشف خطاها و تعیین اینکه همگام سازی صحیح انجام شده است ،ساده تر می باشد.
کامپایلر(نه برنامه نویس) انحصار متقابل را به صورت خودکار در مانیتور برقرار می سازد.
حل مسئله تولیدکننده -مصرف کننده توسط مانیتور
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;
softsara.ir
137 سیستم عامل
end
end;
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ایجاد می کند).
ازر بین فرستنده ها و زیرنده ها رابطه ند به یک وجود داشته باشد ،به صندوق پستی" ،درزاه" می زویند.
پیام در یک قالب متداول از دو بخش ،سرآمد(حاوی اطالعاتی درباره پیام) و بدنه(حاوی خود پیام) تشکیل شده است.
softsara.ir
139 سیستم عامل
softsara.ir
14۰ سیستم عامل
) (void main
{
;)create_mailbox(mutex
;)send(mutex , null
;) )Par begin( P(1) , P(2), …,P(n
}
صندوق پستی با پیامی با محتوای تهی مقدار زذاری اولیه شده است .فرایندی که مری خواهرد وارد بخرش
بحرانی خود شود ،ابتدا سعی می کند پیامی دریافت نماید .ازر صرندوق پسرتی خرالی باشرد ،مسردود مری
زردد .هنگامی که فرایندی پیام را به دست می آورد ،بخش بحرانی خود را انجرام داده و سرپس پیرام را بره
صندوق پستی بر می زرداند .در نتیجه این پیام نقش نشانه ای را بازی می کند که از فراینردی بره فراینرد
دیگر منتقل می شود.
ازر بیش از یک فرایند عمل دریافت را همیمان انجام دهند ،در این صورت:
softsara.ir
141 سیستم عامل
-1ازر پیامی باشد ،تنها به یک فرایند داده شده و بقیه مسدود می شوند.
-2ازر صندوق پستی خالی باشد ،تمام فرایندها مسدود می زردند .موقعی کره پیرامی فرراهم مری
شود ،تنها یکی از فرایندهای مسدود فعال شده و پیام به همان فرایند داده شود.
این فرض ها در تمام امکانات ت ادل پیام ،برقرار است.
softsara.ir
142 سیستم عامل
زمانی که فرایندهای فرستنده و زیرنده پیام بر روی یک ماشین اجرا می شوند ،مسئله کارایی پیش می اید.به ع ارتی
کپی کردن پیام ها از یک فرایند به فرایند دیگر همیشه آهسته تر از انجام عملیات سمافور و یا ورود به یک مانیتور
است.
زیرنده می تواند به محض دریافت پیام از فرستنده ،یک پیام تصدیا) (acknowledgmentبه فرستنده بفرستد و او را
از دریافت پیام با خ ر سازد.
softsara.ir
143 سیستم عامل
در یک سیستم توزیعی با حافظه اختصاصی برای رعایت انحصار متقابل ،از راه حل ت ادل پیام استفاده می شود.
softsara.ir
144 سیستم عامل
کنکور ارشد
softsara.ir
145 سیستم عامل
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شرایط ناحیه بحرانی برآورده نمی شود (استفاده انحصاری)
softsara.ir
147 سیستم عامل
softsara.ir
148 سیستم عامل
softsara.ir
149 سیستم عامل
تذکر :بهتر بود طراح محترم ،در زیینه ، 4شرط انتظار محدود را نیی اضافه می کرد ،تا داوطلب فکر نکند که منظور این است
که فقط آن دو شرط که در زیینه 4آمده ،نقض می شود.
softsara.ir
15۰ سیستم عامل
softsara.ir
151 سیستم عامل
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یا هر دو نگال همیمان برداشته شده و یا هیچ کدام برداشرته نمری شرود،
بنابراین بن بست رخ نمی دهد.
در این رود امکان زرسنگی وجود دارد ،ون همه یی تصادفی است و نوبت و عدالت رعایت نمی شود و ممکن اسرت یرک
فیلسوف به مدت نامعلوم زرسنه بماند.
softsara.ir
153 سیستم عامل
5 فصل
بن بست
بن بست ) (Deadlockیعنی مسدود بودن دائمی مجموعه ای از فرایندها که برای منابع سیستم رقابرت مری
کنند یا با یکدیگر در ارت اط هستند .این مسدود بودن ادامه مییابد تا سیستم عامرل عمرل فروق العرادهای
انجام دهد ،م الً فرایندی را حذف کند یا مج ور به برزشت به عقب کند.
یک م ال معمول از بن بست ،ترافیک است .هار خودرو که در یک زمان به هار راهی رسریدهاند مفرروض
است .هار ربع این هار راه منابع محسوو میشوند .ازر هر هار خودرو وارد تقراطع بشروند ،هرر خرودرو
یک ربع از هار راه (یک من ع) را در اختیار زرفته ولی نمیتواند پیش برود .ون من ع مرورد نیراز دوم در
اختیار خودروی دیگر است و این امر باعث ایجاد بن بست خواهد شد( .هر خودرو برای ع ور از هار راه بره
دو ربع از هارراه نیاز دارد).
شرایط بن بست
ازر هار شرط زیر همزمان در سیستمی وجود داشته باشد ،بن بست رخ میدهد:
نگهداری و انتظار ()Hold and Wait -1
فرایندی وجود دارد که حداقل یک من ع را در اختیار داشته باشد(نگهداری) و منتظر به دست آوردن من ع دیگری باشد
که فعال در اختیار فرایند دیگری است.
softsara.ir
154 سیستم عامل
مجموعه ای از فرایندهای منتظر } {P0 , P1 ,..., Pnوجود دارد که P0منتظر من عی باشد که در اختیار P1است
و P1منتظر من عی باشد که در اختیار P2است و به همین ترتیب Pn 1 ،منتظر من عی باشد که در اختیار Pnاست و در
نهایت Pnمنتظر من عی است که در اختیار P0است .در واقع رخه ای از انتظار وجود دارد.
برقرار بودن هر هار شرط ،شروط الزم و کافی برای وقوع بن بست می باشند.
ازر در سیسرتمی nفراینرد و mمن رع (از یرک نروع) موجرود باشرد ،در صرورت برقررار برودن شررط
n
Re quest(i) m nبن بست رخ نخواهد داد.
i 1
مثال
کامپیوتری دارای mمورد از یک من ع می باشد و nفرایند برای در اختیار زرفتن آنهرا برا هرم رقابرت مری
کنند .هر فرایند حداک ر به دو مورد نیاز دارد .حداک ر مقدار nکه به ازای آن می توان مطمئن بود ،سیستم
د ار بن بست نشود ،قدر است؟
softsara.ir
155 سیستم عامل
حل :ون در این م ال هر فرایند حداک ر به دو من ع نیاز دارد ،مجموع کل درخواستها برای nفراینرد برابرر
2nمی باشد و داریم:
n
بنابراین حداک ر مقدار nکه به ازای آن بن بست رخ نمی دهد ،برابر m – 1می باشد.
مثال
یک سیستم کامپیوتری دارای 6عدد TapeDriveاست که nپردازه برای دستیابی به آنهرا رقابرت میکننرد.
هر پردازه به دو درایو نیاز دارد .این سیستم به ازای حداک ر ه ارزشهایی از nفاقد بن بست است؟
n
بنابراین حداک ر پنج فرایند میتواند وجود داشته باشد.در این حالت ازر هرکدام از فرایندها یک من رع را در
اختیار زیرند ،یک من ع آزاد باقی میماند که یکی از فرایندها با زرفتن آن کامل میشود و به همین ترتیب
بقیه فرایندها کامل خواهند شد و بن بست رخ نمیدهد.
گراف تخصیص منابع
توسط زراف تخصیص منابع میتوان مسئله بن بست را دقیقتر تشریح کرد .در این زراف ،فرایندها با دایرره
و منابع با مربع نشان داده میشوند.
در زراف تخصیص منابع دو نوع یال وجود دارد:
-1یال درخواست Pi R j
فرایند Piنمونهای از من ع R jرا درخواست کرده است و منتظر آن من ع است.
-2یال تخصیص R j Pi
نمونه ای از من ع R jبه فرایند Piتخصیص داده شده است.
ازر زراف تخصیص منابع فاقد رخه باشد ،حالت بن بست وجود ندارد.
مثال
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 سیستمی متشکل از هار پردازه
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در بن بست قرار دارنرد.
softsara.ir
158 سیستم عامل
اما فرایندهای A,F,Cدر بن بست نمی باشند ،ون من ع Sمی تواند به هر یک از آنهرا داده شرود و بعرد از
پایان کار با این من ع ،به فرایند دیگر داده شود.
روش های رفع بن بست
روشهای رفع بن بست را می توان به سه زروه عمده تقسیم کرد:
پیشگیری(جلوزیری) از بن بست)(Prevention -1
سیستم طوری طراحی شود که از ق ل امکان بن بست از بین برود ،یعنی تضمین کنیم که حداقل یکی از هار شرط برن
بست رخ ندهد.
-2اجتناب از بن بست )(Avoidance
در مورد درخواستهای من ع طوری رفتار شود که حداقل یکی از هار شرط بن بست رخ ندهد.
-3کشف بن بست )(Detection
هرجا که ممکن باشد ،منابع درخواستی به فرایندها داده میشود .سیسرتم عامرل بره طرور متنراوو الگروریتمی را دن رال
میکند تا وجود شرط انتظار رخشی را کشف کند.
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
در این وضعیت ،دو فرایند دیگر می توانند اجرا شوند و بنابراین بن بست رخ نمی دهد.
ترمیم
softsara.ir
16۰ سیستم عامل
softsara.ir
161 سیستم عامل
-3انحصار متقابل
منابع غیرقابل اشتراک باید انحصاری باشند و نمیتوان این شرط را رد کرد .به طور نمونه یک راپگر نمیتوانرد همیمران
بین ند فرایند مشترک باشد .و یا به یک فایل نمی توان توسط ند فرایند جهت نوشتن دسترسی پیدا کرد.
-4انتظار چرخشی
برای پیشگیری از بروز این شرط ،یک ترتیب خطی از انواع منابع تعریف میکنیم .ازر من عری از نروع Rبره یرک فراینرد
تخصیص یابد ،در ادامه تنها منابعی را میتواند درخواست کند که نوع آنها بعد از Rقرار زرفته باشد .م الً ازرر i<jآنگراه
Riق ل از Rjاست .ازر فرایند P1من ع Riرا در اختیار داشته باشرد و Rjرا تقاضرا کنرد و فراینرد P2من رع Rjرا در
اختیار داشته باشد و Riرا تقاضا کند ،این حالت غیر ممکن است ون مستلیم i<jو j<iمی باشد.
پیشگیری از شرط انتظار رخشی ،ممکن است موجب کند کردن فرایندها و رد کرردن غیرر ضرروری
دسترسی به منابع زردد.
softsara.ir
162 سیستم عامل
softsara.ir
163 سیستم عامل
امتیاز اجتناو از بن بست این است که ق ضه کردن فرایند ،الزم نمیباشد(.بر خالف کشف)
حالت امن ،حالتی است که در آن حداقل یک ترتیب از فرایندها وجود دارد که میتوانند اجرا و کامرل
شوند ،بدون اینکه بن بست رخ دهد.
وضعیت بن بست ،یک وضعیت ناامن است،اما تمام وضعیت های ناامن،الیما ،بن بسرت تیسرتند ،رون
ممکن است یک فرایند به حداک ر منابع اد نیاز پیدا کند و یا حتی بخشی از منرابع تخصریص یافتره
اد را آزاد کند.
softsara.ir
164 سیستم عامل
الگوریتم بانکداران
در این الگوریتم که برای اجتناو از بن بست استفاده می شود از بردارها (آرایره یرک بعردی) و ماتریسرهای
(آرایه دو بعدی) زیر استفاده می شود:
-1بردار : Resourceشامل مقدار کل هر یک از منابع.
-2بردار : Availableشامل مقدار کل هر یک از منابعی که موجود است (تخصیص داده نشده)
-3ماتریس ( Claimحداک ر نیاز) :شامل درخواستهای فرایندها.
-4ماتریس : Allocationشامل منابع تخصیص داده شده به فرایندها.
مثال 14-5
)(Resource:R1=9,R2=3,R3=6 در سیستم زیر با هار فرایند و سه من ع آیا حالت امن وجود دارد؟
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موجود است .بعد از
softsara.ir
165 سیستم عامل
Claim Allocation
P1 توجه شود که بعد از اجرای ،P2سطر مربوط به فرایند P2در هر دو ماتریس ،صفر شدند .در این حالرت
میتواند اجرا شود .بعد از اجرای ،P1منابع در اختیار او به بردار Availableاضافه می شود:
Claim Allocation
Claim Allocation
P2 P1 P3 P4
softsara.ir
166 سیستم عامل
هریک از روشهای برخورد با بن بست (پیشرگیری،اجتناو و کشرف) دارای میایرا و معرای ی هسرتند.
بنابراین بهتر است از روشهای متفاوتی در شرایط متفاوت استفاده کرد.
softsara.ir
167 سیستم عامل
خالصه رویکردها
در رابطه با سه رویکرد پیشگیری ،کشف و اجتناو طرحهای مختلفی ارائه شده که در جدولهای زیر بررسی
شده اند:
اجتناب
معایب مزایا طرح
دسرررتکاری بررررای یرررافتن عرردم نیرراز برره ق ضرره ضرورت اطالع از منابع مرورد نیراز
آینده کردن حداقل یک مسیر امن
امکرران مسرردود شرردن طرروالنی
فرایندها
کشف
معایب مزایا طرح
عدم تاخیر در آغاز فرایند ضررررهای ذاترری ق ضرره احضار دوره ای برای بررسی بن
تسهیل پردازد در حرین کردن بست
کار
پیشگیری
معایب مزایا طرح ها
درخواست یک راره در مورد فرایندهایی که فعالیت شایعی را انجام مری نا کارآمدی
دهند خوو کار می کند. تمام من ع
تاخیر شروع فرایند عدم نیاز به ق ضه کردن
softsara.ir
168 سیستم عامل
سهولت بکارزیری منابعی که بتوان وضرعیت آنهرا را ق ضه کردن بریش از تعرداد ق ضه کردن
الزم به سادزی ذخیره کرد.
در معرررض شررروع شرردنهای
مجدد مدور
ق ضه کردن نه ندان مفید مرتب کردن منابع امکان اعمال کنترلهای زمان ترجمه
عدم نیاز به محاس ه در زمان اجرا ،به دلیرل اینکره اجازه نردادن بره درخواسرت
منابع به صورت افیایشی مساله در طرح سیستم حل شده است.
softsara.ir
169 سیستم عامل
کنکور ارشد
softsara.ir
17۰ سیستم عامل
softsara.ir
171 سیستم عامل
softsara.ir
172 سیستم عامل
R1 R2
با توجه به ماتریس 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را اجرا کرد .در نتیجه سیستم در وضعیت نا امن قرار دارد.
softsara.ir
173 سیستم عامل
با توجه به ماتریس 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
softsara.ir
174 سیستم عامل
6 فصل
softsara.ir
175 سیستم عامل
مدیریت حافظه
حافظه،آرایه بیرزی از کلمات یا بایت ها است .یکی از وظایف سیستم عامل ،مدیریت حافظه است .مدیریت
حافظه ،در سیستم ند برنامه ای باید بسیار کارآمد باشد و حافظه به نحوی باید تخصیص یابد که
فرایندهای بیشتری در آن قرار بگیرند.
انواع حافظه ع ارتند از :ث ات ،حافظه نهان ،حافظه اصلی ،حافظه دیسک که در فصل اول بررسی شدند.
مدیریت ث ات بر عهده کامپایلر ،مدیریت حافظه نهان ،سخت افیاری ،مدیریت حافظه اصلی و مدیریت
حافظه دیسک بر عهده سیستم عامل است.حافظه هایی که مدیریت آنها بر عهده سیستم عامل است را در
این فصل و فصل های بعد بررسی خواهیم کرد.
softsara.ir
176 سیستم عامل
وقتی که برنامه اصلی با زیر برنامه های نوشته شده توسط کاربر و رویره هرای کتابخانره ای در یرک فضرای
آدرس ترکیب می شوند ،مشکلی که به وجود می آید این است که پیوند دهنده از کجرا بایرد بدانرد کره آن
برنامه در زمان اجرا از ه آدرسی در حافظه شروع می شود .برای حل این مشکل ،سیستم عامل و سرخت
افیار باید بتوانند مراجعات به حافظه را که در کد برنامه مطرح مری شروند را بره آدرس هرای فیییکری کره
منعکس کننده مکان فعلی برنامه در حافظه اصلی هستند ،ت دیل کند .یک راه حل نرم افیاری این است که
softsara.ir
177 سیستم عامل
در همان زمان لود برنامه در حافظه ،دستورات برنامه دستکاری شده و آدرس ها اصالح شوند.
حفاظت )(Protection
در سیستم های ند کاربره ،از حافظه متعلا به برنامه یک کاربر ،در مقابل خواندن یا نوشتن برنامه کاربران
دیگر باید حفاظت کرد.
یک راه حل:
حافظه به بلوک های دو کیلو بایتی که هر بلوک شامل یک کد حفاظتی هرار بیتری اسرت ،تقسریم شرود.
PSWنیی شامل یک کلید 4بیتی است .همچنین فقط سیستم عامل قادر بره تغییرر کلیرد و کرد حفراظتی
باشد .در این صورت هر دستور فرایند در حال اجرا ،که منجر به دسترسی به بلوکی از حافظه شود کره کرد
حفاظتی آن بلوک با کلید درون PSWیکسان ن اشد ،متوقف شود.
مبادله )(swapping
در سیستم های اشتراک زمانی در زاهی اوقات نمی توان همه فرایندهای فعال را در حافظه اصلی جرای داد
و باید فرایندهای اضافی به دیسک منتقل شده و بعدا به صورت پویا به داخرل حافظره آورده شروند .م ادلره
(پارتیشن بندی پویا) ،ساده ترین روشی است که اجازه م ادله بین حافظره و دیسرک را مری دهرد .در ایرن
رود هر فرایند به طور کامل به حافظه اصلی آورده می شرود) (Swap inو بعرد از مردتی اجررا ،بره دیسرک
برزردانده می شود).(Swap out
م ال در یک محیط ند برنامه ای که از الگوریتم زمان ندی RRاستفاده می کند ،وقتی هر فرایندی کوانتوم
softsara.ir
178 سیستم عامل
ازر انقیاد در زمان اسم ل یا بار کردن باشد ،وقتی فرایندی از حافظه بیرون رفت ،هنگام برزشت به حافظه،
در همان فضای ق لی بر می زردد .ازر انقیاد در زمان اجرا صورت زیرد ،فرایند در محلری غیرر از محرل اول
قرار می زیرد ،زیر آدرسهای فیییکی در زمان اجرا محاس ه می شوند.
در پارتیشن بندی پویا ،تعداد ،موقعیت و اندازه پارتیشن ها متفاوت است .ایرن انعطراف پرذیری باعرث
به ود بهره وری حافظه می شود.
تخصیص و آزاد سازی حافظه در پارتیشن بندی پویا ،پیچیده تر از پارتیشن بندی ایستا است.
در پارتیشن بندی پویا ،به خاطر م ادله ،حفره های متعددی در حافظه به وجود می آید کره باعرث در
رفتن حافظه می شود .به این مشکل،تکه تکه شدن خارجی می زویند .علت اینکه به آن خرارجی مری
زویند این است که تکه تکه شدن از حفه خارج فضای تخصیص یافته به فرایندها ناشی می شود.
برای مقابله با تکه تکه شدن خارجی از فشرده سرازی ) (Compactionمیتروان اسرتفاده کررد .در ایرن
رود ،حفره های کو ک با یکدیگر ادغام می شوند تا یک بلوک بیرگ از حافظه را ایجاد کننرد .سراده
ترین الگوریتم فشرده سازی این است که تمام حفره ها را به یک طرف برده و حفره بیرزری از حافظره
آزاد تشکیل می شود .ولی این رود هیینه زیادی دارد.
softsara.ir
179 سیستم عامل
وقتی که حافظه به صورت پویا تخصیص داده می شود ،سیستم عامل باید بداند که کدام بخرش حافظره در
هر لحظه ،تخصیص داده شده و کدام بخش آزاد است .برای این منظور ،دو رود وجود دارد:
هر ه واحد تخصیص کو کتر باشد ،نگاشت بیتی بیرزتر خواهد بود .در مقابل ،ازرر واحرد تخصریص
بیرگ انتخاو شود ،نگاشت بیتی کو کتر خواهد بود.
ازر اندازه فرایند ،ضری ی از اندازه واحد تخصیص ن اشد ،در آخرین واحد مقداری از حافظره هردر مری
رود.
برای انتقال یک فرایند به حافظه که به kواحد فضرا نیراز دارد ،مردیر حافظره بایرد در نگاشرت بیتری
جستجو کرده و kبیت متوالی 0را پیدا کند .این عمرل بسریار کنرد اسرت و باعرث مخالفرت از طررح
softsara.ir
18۰ سیستم عامل
Bitmapمی باشد.
softsara.ir
181 سیستم عامل
مثال
شکل زیر قسمتی از حافظه شامل 5فرایند و 3حفره را نشان می دهرد .منراطا هاشرور خرورده ،فضراهای
خالی هستند .این حافظه به دو رود Bitmapو لیست پیوندی نشان داده شده است.
در طرح Bitmapفضاهای خالی ،با صفر و فضاهای پر با 1مشخص شده انرد .بره طرور م رال 8 ،بیرت اول ،
شامل پنج تا 1و سه تا 0است ،ون پنج واحد تخصیص توسط فرایند Aپر شده و بعد از آن 3واحد خالی
می باشد.
در طرح لیسست پیوندی ،فضاهای خالی با Hو فضاهای پر با Pمشخص شده اند.
softsara.ir
182 سیستم عامل
، 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
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
softsara.ir
184 سیستم عامل
در این رود حافظه ،تکه تکه شده و پر از حفره های کو ک و غیر قابل استفاده می شود.
softsara.ir
185 سیستم عامل
ابتدا بلوک 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 از معایب سیستم رفاقتی ،اتالف
softsara.ir
186 سیستم عامل
کیلو بایتی قرار می زیرد ،فضایی به اندازه 58کیلو بایت هدر می رود.
روی هم گذاری )(Overlay
Overlay در زذشته ،ازر حافظه تخصیص داده شده به یک فرایند از اندازه فرایند کرو کتر برود ،از تکنیرک
استفاده می شد .در این تکنیک برنامه نویس ،برنامه ها را به قسمت هایی به نام Overlayتقسیم مری کنرد.
ابتدا Overlay0اجرا شده و بعد از پایان اجرایش Overlay1،را صدا می زند و به همین ترتیب ادامه می یابد.
در سیستم هایی که امکان نگهداری ندین Overlayبه طور همیمران در حافظره وجرود داشرت ،سیسرتم
عامل Overlayها را روی دیسک نگه می داشت و در مواقع لیوم ،عملیات م ادله را انجرام مری داد .تقسریم
برنامه به overlayها و فراخوانی آنها ،بر عهده برنامه نویس بود و سیستم عامل فقط عمل م ادلره را انجرام
می دهد.
softsara.ir
187 سیستم عامل
5 A.0
6
7 A.2
8 A.1
9
آدرس منطقی در صفحه بندی از دو قسمت تشکیل میشود :شماره صفحه ) (Pو آفست ).(d
به آفست ،انحراف یا تفاوت مکان نیی می زویند.
اندازه صفحه و اندازه قاو توسط سخت افیار تعریف می شود.
برای ساده شدن طرح صفحه بندی ،اندازه صفحه و اندازه قاو باید تروانی از 2باشرند .در ایرن حالرت
آدرس نس ی و منطقی یکسان هستند.
پردازنده به کمک جدول صفحه ،یک آدرس فیییکی تولید میکند که این آدرس از دو قسمت شرماره
قاو و آفست تشکیل شده است.
شکل زیر نحوه ترجمه آدرس در سیستم صفحه بندی را نشان میدهد:
softsara.ir
188 سیستم عامل
نحوه تولید آدرس فیییکری برا توجره بره آدرس منطقری در شرکال براال :شرماره صرفحه موجرود در آدرس
مجازی) (pageبا آدرس شروع جدول صفحه ،جمع شده و به آدرس بدست آمده ،در جدول صفحه مراجعه
می شود .در این آدرس شماره قاو ) (frameمتناظر با صفحه مورد نظر قرار دارد .این شماره قاو و همان
آفست) (dispموجود در آدرس مجازی ،آدرس فیییکی را مشخص می کنند.
مثال
بررا توجرره برره آدرس نسر ی 16بیترری ، 0000010111011110نررد بیررت برررای شررماره صررفحه نیرراز
است؟(اندازه صفحه برابر یک کیلو بایت می باشد).
پاسخ :ون اندازه صفحه یک کیلو بایت ( 210بایت) است 10 ،بیت برای آفسرت مرورد نیراز اسرت و رون
آدرس 16بیتی است 6 ،بیت بررای شرماره صرفحه براقی میمانرد .آدرس نسر ی داده شرده دارای آفسرت
) (0111011110در صفحه ) (000001است .شکل زیر نحوه تولید آدرس فیییکری از آدرس منطقری را
نشان می دهد:
softsara.ir
189 سیستم عامل
یک فضای آدرس دهی منطقی شامل 4صفحه است و هر صفحه حاوی 2کلمه است .ازر این صرفحات برر
روی یک فضای آدرس دهی فیییکی حاوی 8قاو صفحه نگاشت شود ،آدرس منطقی و فیییکی ند بیتری
خواهد بود؟
= 4 2 8 2 3فضای آدرس دهی منطقی
= فضای آدرس دهی فیییکی 8 2 16 2 4
نقطه ضعف اصلی صفحه بندی تکه تکه شدن داخلی است( .ازر احتیاج به ناحیه بسریار کرو کی از
حافظه باشد ،در این صورت مقداری از فضای حافظه تلف می شود ،زیرا کو کترین واحردی از حافظره
که به استفاده کننده اختصاص دارد یک صفحه است).
softsara.ir
19۰ سیستم عامل
حافظه مجازی
حافظه مجازی تکنیکی است که موجب می شود فرایند بدون اینکه کامال در حافظره باشرد اجررا زرردد .برا
استفاده از این تکنیک ،می توان برنامه ای بیرزتر از حافظه فیییکی را اجرا کرد .حافظه مجازی ندبرنامگی
را به صورت موثری ممکن میسازد و کاربر را از محدودیتهای حافظه اصلی رها میکنرد .بره کمرک حافظره
مجازی دیگر لیومی ندارد تمام صفحهها(یا قطعههای) یک فرایند در حال اجرا ،در حافظه اصلی قرار داشرته
باشند و در ابتدا یک یا ند تکه حاوی آغاز برنامه ،توسط سیستم عامل به حافظه آورده میشود.
حافظه مجازی ،حافظه منطقی کاربر را از حافظه فیییکی تفکیک می کند .این تفکیک موجب مری شرود در
حالتی که حافظه فیییکی کم است ،حافظه مجازی بیرزی برای برنامه نویس فراهم شود.
حافظه مجازی ،برنامه نویسی را ساده می کند ،زیرا برنامه نویس نگران حافظه فیییکی و کد جایگذاری نمی
باشد.
ازر در حین اجرا به آدرسی رجوع شود که در مجموعه مقیم در حافظه ن اشد ،یک وقفره ایجراد میشرود و
این فرایند مسدود میشود و تکه مورد نظر وارد حافظه میشود ،سپس کنترل دوباره به سیسرتم عامرل برر
میزردد و فرایند مسدود را به حالت آماده برمی زرداند.
تذکر :به بخشی از فرایند که واقعاً داخل حافظه اصلی قرار دارد ،مجموعه مقیم میزویند.
عناصر الزم برای موثر بودن حافظه مجازی ع ارتند از:
-1حمایت سخت افیاری برای به کارزیری صفحه بندی (یا قطعه بندی)
-2حمایت نرم افیاری برای انتقال صفحهها (یا قطعهها) بین حافظه ثانوی و حافظه اصلی.
حافظه مجازی را می توان به روشهای زیر پیاده سازی کرد:
درخواستی )(Demand Paging -1صفحه بندی
درخواستی )(Demand Segmentation -2قطعه بندی
)(Hybrid Paging and Segmentation -3قطعه بندی صفحه بندی شده
رود اول در این فصل و رود دوم و سوم در فصل بعد بررسی می شوند.
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یرک بیتهای حفاظت
softsara.ir
192 سیستم عامل
بیت برای خواندن ،یک بیت برای نوشتن و یک بیت بررای اجررا در نظرر زرفتره مری )(Protection
شود.
هر ه مقدار این فیلد برای صفحه ای کمتر باشد ،نشران دهنرده ایرن اسرت کره آن سن )(Age
صفحه مدت بیشتری در حافظه بدون مراجعه بوده است.
این فیلد زمانی مقدار می زیرد که بیش از یک فرایند در یک صفحه شرریک باشرند. بیت کپی در نوشتن
ازر یکی از فرایندها در صفحه بنویسد ،یک کپی جدازانه برای تمام فراینردهایی کره )(Copy on Write
مثال
یک سیستم کامپیوتری م تنی بر حافظه مجازی با اندازه صفحه 32KBمفروض است .ازرر حرداک ر برنامره
قابل اجرا در این سیستم 4MBباشد ،تعداد مدخل های جدول صفحه کدام است؟
پاسخ:
4 MB 4 2 20
2 7 128
32KB 32 2 10
مثال
یک سیستم کامپیوتری م تنی بر حافظه مجازی با اندازه صفحه 32KBمفروض است .در صورتی که حجرم
حافظه اصلی این سیستم 512KBباشد ،تعداد صفحات حافظه اصلی ه مقدار خواهد بود؟
512 KB
پاسخ 16 :
32 KB
مثال
یک سیستم حافظه صفحه بندی مجازی را در نظر بگیرید که حداک ر اندازه جدول صفحه هر فراینرد در آن
برابر 8مگابایت ،اندازه هر صفحه برابر 8کیلوبایت و مدخلهای هر جدول صفحه 16بایتی باشند ،آدرسهای
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درایه است.
softsara.ir
194 سیستم عامل
مثال
کامپیوتری با یک فضای آدرس پذیر مجازی 18بیتی را که صفحات آن هر یک 2 6بایت ظرفیرت دارنرد ،در
نظر بگیرید .اندازه هر مدخل جدول صفحه 4بایت است .به دلیل آنکه هر جردول بایرد داخرل یرک صرفحه
جای زیرد ،یک جدول صفحه ند سطحی استفاده شده است .ند سطح مورد نیاز است؟
پاسخ:
فضای آدرس مجازی 18بیت است که 6بیت آن مربوط به آفست است .بنابراین 12بیت برای شماره صفحه
جا داریم .حال باید ب ینیم که این 12بیت را به ند قسمت ،تقسیم کنیم.
از آنجا که هر مدخل جدول صفحه هار بایتی است ،تعداد مدخل های هر جدول صفحه که مری توانرد در
26
برابر 4بیت است .در نتیجه تعداد سطوح مرورد است .بنابراین اندیس های PTi برابر 2 4 یک صفحه جای زیرد،
4
مثال
فرض کنید سیستمی از فضای آدرس دهی مجازی 210بایت پشتی انی می کند .در این سیستم اندازه حافظه فیییکری قابرل
دسترسی 2 9بایت و طول هر قاو حافظه در این سیستم 2 4بایت می باشد .این سیستم از رود صفحه بندی برای مدیریت
حافظه استفاده کرده است .با فرض اینکه هر مدخل از جدول صفحه به 11 bitبه عنوان بیتهای کنترلی(بیت حضور -غیراو
و )...نیاز داشته باشد ،در این صورت برای اینکه هر جدول صفحه جیئی ،دقیقا در یک قاو قرار زیرد ،باید حرداقل از جردول
صفحه ند سطحی استفاده شود؟
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
منطقی به صورت زیر است:
softsara.ir
196 سیستم عامل
ازر ه جدول صفحه معکوس جای کمی را اشغال می کند ،ولی ت دیل آدرس مجازی به فیییکی بسیار مشکل تر مری باشرد.
برای سریع کردن جستجو ،از یک جدول درهم ) (Hash Tableاستفاده می شود .قسمت شماره صفحه از آدرس مجازی به
کمک یک تابع درهم ساز به یک جدول درهم نگاشت می شود .جدول درهم دارای نشانگری به جدول صفحه معکروس اسرت
که شامل مدخلهای جدول صفحه می باشد .با این ساختار در جدول درهم و در جردول صرفحه معکروس ،بررای هرر صرفحه
حافظه حقیقی تنها یک مدخل وجود دارد(.به جای یک مدخل برای هر صفحه مجازی).
شکل زیر ساختار جدول صفحه معکوس نشان داده شده است:
softsara.ir
197 سیستم عامل
در رود ،2برای دسترسی به هر بایت ،نیاز به دو دستیابی داریم (یک ار برای ورودی جدول صرفحه و
دیگری برای دسترسی به بایت) که این باعث کند شدن دستیابی به حافظه می شود.
نحوه بکارگیری TLB
در صفحه بندی تعداد اندکی از ورودیهای جدول صفحه در TLBقرار می زیرد .وقتری آدرسری تولیرد مری
شود ،شماره صفحه آن با شماره صفحه موجود در ث اتهای انجمنی (که حاوی شماره صفحه و شماره قابهای
متناطر با آنهاست) ،مقایسه می زردد .ازر شماره صفحه در ث اتهای انجمنی پیردا شرود ،از شرماره قراو آن
برای دستیابی به حافظه استفاده می شود .ازر شماره صفحه در ث اتهای انجمنی موجرود ن اشرد ،ارجراع بره
جدول صفحه باید انجام زرفته و شماره صفحه و شماره قاو به TLBاضافه می شود تا در مراجعرات بعردی
به سرعت پیدا شود .ازر TLBپر باشد ،سیستم عامل باید یکی از ورودی ها را حذف کررده و ورودی جدیرد
را به جای آن قرار می دهد.
هر بار که تعویض بستر (انتخاو جدول صفحه جدید) رخ دهد ،باید TLBپاک شود تا فراینرد بعردی
که باید اجرا شود ،از اطالعات ترجمه ای نادرست استفاده نکند.
(hitنام دارد. )ratio درصد تعداد دفعاتی که شماره صفحه در ث اتهای انجمنی پیدا شود ،نس ت اصابت
باشد ،یعنی که %80از تعداد دفعراتی کره بره ث اتهرای انجمنری مراجعره %80 م ال ازر نس ت اصابت
کردیم ،شماره صفحه پیدا شده است .نس ت اصابت را با Hنشان می دهیم.
softsara.ir
198 سیستم عامل
softsara.ir
199 سیستم عامل
softsara.ir
2۰۰ سیستم عامل
در یک سیستم ند برنامه ای که از بخش بنردی پویرا اسرتفاده میکنرد زمرانی خواهرد رسرید کره تمرام
فرایندهای موجود در حافظه اصلی در حالرت مسردود قررار دارنرد .در ایرن حالرت سیسرتم عامرل یکری از
فرایندهای داخل حافظه اصلی را به خارج م ادله میکند تا فضای کافی برای فرایندی جدید یا یرک فراینرد
آماده و معلا ایجاد شود .در این حالت سیستم عامل باید فرایندی که قرار است جرایگیین شرود را انتخراو
کند .در واقع سیاست جایگیینی درباره انتخاو یک صفحه برای جرایگیینی در زمرانی کره الزم اسرت یرک
صفحه جدید به داخل آورده شود صح ت میکند.
softsara.ir
2۰1 سیستم عامل
الگوریتم بهینه ،قابل اجرا نیست ،ون نیاز به پیش بینی آینده دارد .علت مطرح شدن این الگوریتم ،استفاده از آن بره
عنوان شاخص مقایسه می باشد.
مثال
تعداد فقدان صفحه برای مراجعات زیر با داشتن 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
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
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قرار می دهیم).
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جدول صفحه استفاده می شود.
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
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بیت به بایت:
softsara.ir
2۰7 سیستم عامل
216 216
2 29 2 9 2 20 512MB
8
بنابراین به 512مگا بایت (دو برابر اندازه حافظه اصلی) ،حافظه نیاز داریم.
در الگوریتم سالمندی ) ،(Agingاز فیلد سن) (ageدر جدول صفحه استفاده می شود که م ال می تواند 8
بیتی باشد .مقدار این فیلد در هنگام بارزذاری صفحه 0 ،است .سیستم عامل در هر وقفه ساعت ،فیلد سن
را در بیت انتهایی R همه صفحه های موجود در حافظه را یک بیت به سمت راست شیفت داده و بیت
همه صفحات را 0می کند .ازر نقص صفحه رخ R سمت پ(بیت با ارزد) ،قرار می دهد .سپس فیلد
دهد ،صفحه ای با کمترین مقدار شمارنده برای جایگیینی انتخاو می شود.
آن برابر 1باشد ،پس از پایان پریود R به عنوان م ال ازر فیلد سن یک صفحه برابر 00001101و بیت
در بیت R زمانی ،ابتدا این فیلد به اندازه یک بیت به راست شیفت داده شده ( )0000110و سپس بیت
انتهایی سمت پش قرار می زیرد .پس فیلد سن برابر 10000110خواهد شد.
به کمک فیلد سن می توان به تاریخچه مراجعات به صفحه در ند دوره اخیر پی برد .به عنوان م ال ازر
فیلد سن یک صفحه 11000111باشد ،متوجه می شویم که به این صفحه در دو دوره اخیر مراجعه شده .،
در سه دوره ق ل از آن ،مراجعه ای به آن انجام نشده و ق ل از این پنج دوره ،در سه دوره متوالی نیی به این
صفحه مراجعه شده است.
مثال
softsara.ir
2۰8 سیستم عامل
ازر فیلد سن صفحه 1برابر 00010010و فیلد سن صفحه 2برابرر 00010000باشرد ،کردام صرفحه بررای
جایگیینی انتخاو می شود؟
پاسخ :به هر یک از دو صفحه در سه دوره متوالی اخیر ،مراجعه ای نشده است .ولی به هرر دو در دوره ق رل
از آن مراجعه شده است .اما نمی توان تشخیص داد که به کردام صرفحه در آن دوره ،دیرترر مراجعره شرده
است .در اینصورت ون به صفحه شماره 1در سه دوره ق ل از آن مراجعه شده و در مورد صفحه 2نرین
نمی باشد ،صفحه 1برای جایگیینی انتخاو می شود.
یکی از تفاوت های رود سالمندی با LRUاین است،که نمی تروان تقردم و تراخر دسترسری هرا در
داخل یک دوره را تشخیص داد.
ون تعداد بیت های شمارنده در رود سالمندی محدود است( ،به طور م ال 8بیرت) ،ازرر مقردار
شمارنده برای دو صفحه 00000000باشد ،ازر به یکی از آنها در 9دوره ق ل مراجعه شده باشد و به
دیگری در 100دوره ق ل ،نمی توان از این موضروع آزراه شرد .در اینصرورت یرک صرفحه بره صرورت
تصادفی انتخاو می شود.
softsara.ir
2۰9 سیستم عامل
الگوریتم های جایگیینی LFUو MFUنیی وجود دارد که به علت پایین بودن کارایی ،در بیشتر منرابع
MFU بیان نشده است .در صورت وقوع نقص صفحه ،در ، LFUصفحه با کمترین مقدار شمارنده و در
،صفحه با بیشترین مقدار شمارنده ،جهت جایگیینی انتخاو می شود.
softsara.ir
21۰ سیستم عامل
سیاست پیش صفحه بندی می تواند یا در زمان شروع فرایند به کار زرفته شود یا هر بار که یک خطای صفحه رخ می
دهد.
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 بنابراین داریم:
مثال
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
softsara.ir
213 سیستم عامل
اندازه صفحه بهینه برابر P 2Seمی باشد : s(.اندازه فرایند)(:eاندازه یک مدخل جدول صفحه)
مثال
در محیط یک سیستم عامل که از رود حافظه مجازی برای مدیریت حافظه استفاده میکند ،نانچه اندزه
هرفرایند 64کیلوبایت و برای هر پروسس در جدول صفحه 8 ،بایت اطالعرات ذخیرره شرود ،انردازه صرفحه
بهینه در این سیستم ند بایت خواهد بود؟
P 2Se 2 64 210 8 220 210
ساختار برنامه
در بیشتر موارد ،کاربر از ماهیت صفحه بندی حافظه بی اطرالع اسرت و در بعضری مروارد مطلرع اسرت کره
موجب به ود کارایی سیستم می شود .به طور م ال در سیستمی کره انردازه صرفحات 4کلمره اسرت ،یرک
برنامه نویس پاسکال می خواهد آرایه Aرا با صفر مقدار دهی اولیه کند.
softsara.ir
214 سیستم عامل
softsara.ir
215 سیستم عامل
ستون مقدار دهی می شوند و برای مقدار دهی به هر دو خانه ،یک نقص صفحه رخ می دهد و تعداد کل نقص صفحه ها برابر
4 4
است با 8 :
2
قطعه بندی
در رود قطعه بندی برای مدیریت حافظه ،برنامه و داده ها به تعدادی قطعه ( )Segmentتقسیم میشروند و
لیومی ندارد اندازه این قطعهها هم اندازه باشند .هنگامی کره یرک فراینرد بره داخرل آورده میشرود ،کلیره
قطعههای آن به داخل حافظه بار میشوند و جدول قطعه ایجاد می شود .هر سطر این جدول شرامل آدرس
شروع قطعه مورد نظر در حافظه اصلی و طول قطعه می باشد.
نکاتی در رابطه با قطعه بندی:
-1آدرس منطقی در قطعه بندی از دو قسمت تشکیل یافته است :شماره قطعه و آفست.
-2امتیاز قطعه بندی ،حفاظت از قطعات و اشتراک داده ها و کد می باشد.
-3الگوی صفحه بندی نمی تواند حافظه فیییکی را از دیدزاه کاربر نس ت به حافظه تفکیک کند.
-4قطعه بندی به دلیل بکارزیری قطعههای غیرهم اندازه ،مشابه بخش بندی پویا است.
اشرغال -5تفاوت قطعه بندی با بخش بندی در این است که یک برنامه میتواند بیش از یک بخش را
کند و لیومی ندارد این بخشها پیوسته باشند.
-6قطعه بندی تکه تکه شدن داخلی را حذف میکند ،اما دارای تکه تکه شدن خارجی است.
-7تکه تکه شدن خارجی هم در بخش بندی پویا وهم در قطعه بندی وجود دارد .اما ون یرک فراینرد بره
قطعههای کو کتر شکسته میشود ،تکه تکه شدن خارجی در قطعه بندی کمتر است.
-8در حالی که صفحه بندی از دید برنامهسراز مخفری اسرت ،قطعره بنردی قابرل رویرت و عامرل تسرهیل
سازماندهی برنامهها و دادهها میباشد.
مثال
مفروض اسرت .نحروه تولیرد آدرس فیییکری در رود قطعره 0001001011110000 آدرس منطقی 16بیتی
بندی را نشان دهید( .آفست 12بیتی و شماره قطعه 4بیتی)
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:
softsara.ir
217 سیستم عامل
مجازی با قطعه بندی ،لیومی ندارد تمام قطعه های یک فرایند درحافظه اصلی باشند و میتوانند برحسرب
نیاز به داخل خوانده شوند .هر مدخل جدول قطعه شامل موارد زیر است:
)(P -3بیت حضور -2پایه قطعه -1طول قطعه
-5بیتهای کنترلی دیگر -4بیت تغییر ()M
ازر بیت حضور فعال باشد (قطعه مورد نظر در حافظه اصلی باشد)،آدرس شروع قطعه و طول قطعره نیری در
مدخل جدول در نظر زرفته میشود.
هنگامی که فرایندی در حال اجرا است ،آدرس شروع جدول قطعه این فرایند در یک ث رات نگهرداری
میشود.
شکل زیر نحوه ترجمه آدرس در یک سیستم قطعه بندی مجازی را نشان می دهد:
softsara.ir
218 سیستم عامل
softsara.ir
219 سیستم عامل
مثال
یک حافظه به اندازه 8KBو با صفحات 512بایتی را در نظر بگیرید که با رود قطعات صفحه بندی شده مدیریت می شود.
جدول قطعه به صورت زیر است:
PTBA Limit
0 0070 8
1 0078 8
2 0086 8
3 0094 8
(الزم است بدانید در خانه به آدرس حافظه 0099مقدار 9Hذخیره شده است).
پاسخ:
با توجه به آدرس مجازی داده شده ،ون شماره قطعه برابر ( 3همان 11در م نای دو) می باشرد ،بره انردیس 3در جردول
قطعه مراجعه کرده و مقدار PTBAیعنی 0094مشخص می شود .این مقدار را برا شرماره صرفحه یعنری ( 5همران 101در
م نای دو) جمع می کنیم و حاصل برابر 0099می شود .در این آدرس ،شماره قاو نوشته شده است( .) 9Hبا قرار دادن این
مقدار ق ل از آفست ،آدرس فیییکی بدست می آید:
P# offset
1001 1010101101
که این آدرس (یعنی )10011010101101در م نای شانیده برابر است با 26AD :
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بعد از شماره قاو ،آدرس فیییکی مشخص می شود:
softsara.ir
221 سیستم عامل
تذکر :آفست در آدرس منطقی و فیییکی یکسان است ( .ون اندازه صفحه و اندازه قاو برابر است)
softsara.ir
222 سیستم عامل
softsara.ir
223 سیستم عامل
softsara.ir
224 سیستم عامل
کنکور ارشد
softsara.ir
225 سیستم عامل
softsara.ir
226 سیستم عامل
softsara.ir
227 سیستم عامل
64MB 2 6 2 20
2 10 214
4 KB 2 2
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 :
softsara.ir
229 سیستم عامل
softsara.ir
23۰ سیستم عامل
softsara.ir
231 سیستم عامل
در حالت ، Thrashingنرخ نقص صفحه بسیار باال و بهره وری CPUبسیار پایین و نیدیک به صفر (نه الیما صفر) است .پس
زیینه های 1و 2نادرست هستند .همچنین در صد عملیات م ادله صفحات بین حافظه اصلی و دیسک بسیار باال حتی نیدیک
به ( 100%نه الیما )100%می باشد .بنابراین زیینه 4که از ع ارت "تقری ا" استفاده کرده ،صحیح می باشد.
softsara.ir
232 سیستم عامل
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
softsara.ir
234 سیستم عامل
زیینه 2نادرست است ،ون حداک ر تعداد جداول صفحه سطح دو ،در هر قطعه برابر 2 5 32است.
علت درستی زیینه های دیگر:
= 213 8Kاندازه صفحه
= 2 ( 95 7 13) 2 34 2 4 2 30 16Gاندازه حافظه مجازی هر فرایند
= 2 ( 5 7 13) 2 25 2 5 2 20 32Mحداک ر اندازه هر قطعه
= 2 9 512حداک ر تعداد جداول صفحه سطح یک در هر فرایند
= 2 (57) 212 2 2 210 4Kحداک ر تعداد صفحات در هر قطعه
= 2 (957 ) 2 21 2 2 20 2Mحداک ر تعداد صفحات در هر فرایند
softsara.ir
235 سیستم عامل
فصل 7
مدیریک ورودی و خروجی – مدیریت دیسک
در این فصل به نحوه اداره I/Oتوسط سیستم عامل می پردازیم .همچنین زمان بنردی دیسرک هرا را مرورد
بررسی قرار می دهیم.
نرم افزار I/O
نرم افیار I/Oدارای هار الیه می باشد که بر روی سخت افیار قرار دارند .این الیه هرا در شرکل زیرر نشران
داده شده اند:
فرایند کاربر
نرم افزار مستقل از
دستگاه
گرداننده دستگاه
اداره کننده وقفه
سخت افزار
نحوه عملکرد الیه ها در هنگام خواندن بلوکی از فایل توسط فرایند کاربر
-1توسط فرایند کاربر ،سیستم عامل برای خواندن بلوک فراخوانی می شود( .فراخوانی سیستمی)
-2بلوک در حافظه پنهان بافر توسط نرم افزار مستقل از دستگاه جستجو می شود.
-3ازر بلوک در حافظه پنهان پیدا نشد ،گرداننده دستگاه برای صدور فرمان به سخت افریار بررای آوردن
بلوک از دیسک فراخوانی می شود( .فرایند تا کامل شدن عملیات دیسک ،بلوکه می شود).
-4سخت افیار بعد از پایان کار دیسک ،وقفه ای ایجاد کرده و اداره کننده وقفه اجرا می شود تا وضرعیت
دستگاه را ک کرده و زرداننده دستگاه را بیدار سازد .سپس نرم افیار مستقل از دستگاه و بعرد فراینرد
کاربر ،بیدار شده و نتیجه عملیات را دریافت می کنند.
مدیریت دیسک
یکی از وظایف سیستم عامل ،مدیریت دیسک می باشد .ابتدا دیسک مغناطیسی را تشریح می کنیم.
softsara.ir
236 سیستم عامل
دیسک مغناطیسی
دیسک مغناطیسی رسانه ای زردان با امکان دستیابی مستقیم به داده های ذخیره شده می باشد .دیسک از
صفحه ای مدور و مغناطیس شونده که حول یک محور عمودی می رخد ،تشکیل شده است .رویههای این
صفحه از غشاء فرو مغناطیسی پوشیده شده که بر روی آنها شریارهایی بره صرورت دایرههرای متحردالمرکی
وجود دارد .شیارها از بیرون به درون با شروع از صفر شماره زذاری شده اند.
تمام شیارهای هم شعاع ،تشکیل یک استوانه را میدهند.
شکل زیر یک دیسک پک 3صفحه ای را نشان می دهد .هدها به یرک برازوی دیسرک متصرل انرد کره در
راستای شعاع دایره حرکت می کنند.
softsara.ir
237 سیستم عامل
softsara.ir
238 سیستم عامل
مثال
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 سیستم عامل
softsara.ir
24۰ سیستم عامل
-1تخصیص پیوسته
در این رود هر فایل تعدادی بالک پیوسته روی دیسک را اشغال می کند و کافی است کره شرماره برالک
اول روی دیسک و تعداد بالک های فایل را ذخیره کرد.
شکل زیر این نوع تخصیص را نشان می دهد:
-2تخصیص پیوندی
در این رود هر فایل ،یک لیست پیوندی از بالک های روی دیسک اسرت .برالک هرا ممکرن اسرت در هرر
کجای دیسک پراکنده باشند .در فهرست راهنما برای هر فایل اشاره زری به اولین بالک فایل قرار دارد.
softsara.ir
241 سیستم عامل
-3تخصیص شاخصی
در رود شاخصی ،اشاره زرها به بالکهای فایل روی دیسک در یک مکران کره بره آن برالک شراخص مری
زویند ،جمع آوری می شوند .هر فایل دارای بالک شاخص خود است که یک مراتریس از آدرسرهای بالکهرا
است .ورودی Iام در بالک شاخص به بالک Iام فایل اشاره می کند.
در فهرست راهنما تنها آدرس بالک شاخص حفرظ مری شرود .در ایرن رود براحتری مری تروان دسرتیابی
مستقیم را حمایت کرد .ال ته فضای بالک شاخص تلف می شود و در بسریاری از مواقرع بره تمرامی برالک
شاخص نیاز نمی باشد .علت پر طرفدار بودن رود شاخصی ،رابطه نیدیرک آن برا مردیریت حافظره قطعره
بندی– صفحه بندی شده است .بالک شاخص می تواند یک جدول صفحه باشد و برالک هرای فایرل همانرا
صفحات فایل (در واقع یک قطعه) هستند.
مشکالت تخصیص پیوسته:
(برای یک فایل nبالکی باید به دن ال nبالک آزاد پشت سرهم زشت) . -1یافتن فضای خالی برای یک فایل جدید.
-2تعیین مقدار فضای مورد نیاز یک فایل
مشکالت تخصیص پیوندی
-1عدم حمایت از دستیابی مستقیم
این رود فقط در رابطه با دستیابی ترتی ی خوو عمل می کند .زیرا برای رسیدن به بالک ، iباید
بالکهای ق ل از آن دستیابی شوند که هر کدام از اینها به یک خواندن از دیسک نیاز دارد.
-2اتالف فضا توسط پیوند ها
-3عدم قابلیت اطمینان سیستم
با از بین رفتن تنها یکی از اشاره زرها ،صدمات جدی به فایل و فضای روی دیسک وارد می زردد.
softsara.ir
242 سیستم عامل
برای دستیابی مستقیم به بالک iفایل ،کافی است که به بالک b+iدستیابی صورت زیرد( .با این فررض
که فایل از بالک bدیسک آغاز شده باشد).
softsara.ir
243 سیستم عامل
مثال
فایلی دارای 5بلوک از شماره 1تا 5می باشد .می خواهیم بلوک شماره 4را حذف کنیم .تعرداد کرل نقرل و
انتقال دیسک در سه حالت تخصیص دیسک به فایل را مشخص کنید( .در ابتدا فایل باز است).
حل :الف -پیوسته :ون همه بلوک های فایل به صورت پشت سر هم قرار دارند ،بلوک 5خوانده شده و بر
روی بلوک 4نوشته می شود .بنابراین به 2دسترسی دیسک نیاز است.
و -پیوندی :ون هر بلوک فایل حاوی اشاره زری است که آدرس بلوک بعردی را مشرخص مری کنرد ،از
بلوک 1تا 4خوانده تا آدرس بلوک 5را به دست آوریم .سپس این آدرس را جرایگیین آدرس بلروک 3مری
کنیم .بنابراین به 5دسترسی دیسک نیاز است.
ج -شاخصی(اندیسی) :ون آدرس همه بلوک ها در یک جدول شاخص بر روی دیسک ذخیره شده ،بلوک
حاوی اندیس ها را خوانده و آدرس بلوک 4را حذف کرده و بعد از به روز رسانی ،بر روی دیسک باز نویسری
می کنیم .بنابراین به 2دسترسی دیسک نیاز دارد.
softsara.ir
244 سیستم عامل
softsara.ir
245 سیستم عامل
کنکور ارشد
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می رود.
softsara.ir
247 سیستم عامل
softsara.ir
248 سیستم عامل
مهندسی برق الکترونیک و هوش مصنوعی و یادگیری آموزش های دانشگاهی و برنامه نویسی –
روباتیک – کلیک ()+ ماشین – کلیک ()+ تخصصی – کلیک ()+ کلیک ()+
نرم افزارهای تخصصی – مهارت های دانشگاهی – مباحث مشترک – دروس دانشگاهی –
کلیک ()+ کلیک ()+ کلیک ()+ کلیک ()+
آموزش های عمومی – طراحی و توسعه وب – نرم افزارهای عمومی – مهندسی نرم افزار – کلیک
کلیک ()+ کلیک ()+ کلیک ()+ ()+
softsara.ir
249 سیستم عامل
faradars.org /fvsft103 جهت مشاهده آموزش ویدئویی این آموزش – کلیک کنید
softsara.ir