انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

 پایان نامه 

پایان نامه‏ کامپیوتر

انجام پایان نامه‏ ارشد کامپیوتر

مقدمه :
تخصيص پردازنده هاي فيزيكي به فرايندها سبب اجراي فرايندها مي شود. اين تخصيص معمولاً مسألة پيچيده اي است كه توسط سيستم عامل مديريت مي شود. در اين فصل درباره چگونگي تعيين زمان تخصيص پردازنده ها و اينكه پردازنده ها به كدام فرايندها بايد تخصيص يابد، بحث خواهد شد. اين عمل را زمانبندي پردازنده گويند.
سطوح زمانبندي
در شكل زير سه سطح مهم از زمانبندي مورد توجه قرار گرفته است.

شكل 10-1 ) سطوح زمانبندي
•    زمانبندي سطح بالا - اين زمانبندي گاهي به عنوان زمانبندي كار ناميده مي شود و تعيين مي كند كه كدام كارها بطور فعال منابع سيستم را در اختيار مي گيرد و تكميل مي شود. همچنين بعضي اوقات زمانبندي ورود ناميده مي شود، زيرا تعيين مي كند كه كدام كارها اجازه ورود به سيستم را مي يابد. وقتي كاري اجازه ورود پيدا كرد، يكي از فرايندهاي شناخته شده سيستم خواهد شد.
•    زمانبندي سطح مياني – اين زمانبندي تعيين مي كند كه كدام فرايندها اجازه خواهد يافت در اختيار cpu قرار بگيرد. زمانبندي سطح مياني با روش تعليق و فعال كردن فرايندها به نوسانات بار سيستم پاسخ مي دهد تا بتواند به عملكرد متعادل و كارآيي كلي سيستم كمك كند. بنابراين زمانبندي مياني در واقع به عنوان بافر بين ورود كارها به سيستم و تخصيص cpu به اين كارها عمل مي كند.
•    زمانبندي سطح پائين – اين زمانبندي تعيين مي كند كه كداميك از فرايندهاي آماده در اختيار cpu قرار خواهد گرفت (اگر cpu قابل دسترس باشد) و بطور واقعي cpu را در اختيار اين فرايند قرار مي دهد (فرايند را به cpu مي فرستد). زمانبندي سطح پايين به وسيله ارسال كننده انجام مي شود كه در هر ثانيه چندين بار عمل مي كند. بنابراين ارسال كننده مي بايد در تمامي اوقات در حافظه اصلي مقيم باشد.
در اين فصل ما دربارة سياستهاي مختلف زمانبندي كه در سيستمهاي عامل به كارگيري مي شود و نيز روشهاي پياده سازي اين سياستها بحث مي كنيم. بسياري از سياستها هم براي زمانبندي كار و هم براي زمانبندي فرايند مفيد است.
اهداف زمانبندي
هر زمانبندي مي بايد داراي شرايط زير باشد:
•    عادل باشد. زمانبندي عادل است اگر با تمامي فرايندها بطور يكسان برخورد كند و هيچ فرايندي به مدت نامعين به تأخير نيفتد.
•    حداكثر توان عملياتي را داشته باشد. زمانبند بايد سعي كند در واحد زمان بيشترين تعداد ممكن از فرايندها را سرويس دهد.
•    تعداد كاربران محاوره اي را با زمان پاسخ قابل قبول افزايش دهد.
•    قابل پيش بيني باشد. هر كار بدون در نظر گرفتن بار سيستم با زمان و هزينة يكسان (قابل پيش بيني) اجرا شود. در واقع چه بار پردازشي سيستم سنگين باشد چه سبك، زمان و هزينه اجراي هر برنامه قابل تخمين باشد.
•    كمترين سرباري را داشته باشد. جالب است كه اين شرط بطور كلي جزء اهداف مهم زمانبندي نيست. سرباري عموماً منابعي تلف شده تلقي مي شود؛ اما بخشي از منابع واقعي سيستم كه سرباري را به دنبال دارد، باعث بهبود كارآيي كلي سيستم مي شود.
•    استفاده از منابع سيستم را متعادل سازد. روشهاي زمانبندي بايد بتواند منابع سيستم را مشغول نگه دارد.
•    بين زمان پاسخ و به كارگيري منابع، تعادل ايجاد كند. بهترين راه تضمين زمان پاسخ خوب، داشتن منابع كافي است كه در صورت نياز قابل دسترسي باشد. در سيستمهاي بلادرنگ، زمان پاسخ سريع بسيار اساسي و استفاده از منابع از اهميت كمتري برخوردار است. در انواع ديگري از سيستمها، اغلب، مسائل اقتصادي استفادة مؤثر از منابع را ضروري مي سازد.
•    از تأخير به مدت نامعين بپرهيزد. در بسياري از موارد، تأخير به مدت نامعين به اندازة بن بست مشكل ساز است. خودداري از تأخير به مدت نامعين با افزايش اولويت فرايندهاي منتظر (فرايندهايي كه منتظر در اختيار گرفتن منابع هستند) امكانپذير است. سرانجام، اولويت فرايند منتظر آنقدر افزايش مي يابد تا موفق به در اختيار گرفتن منبع مي شود.
•    اولويتها را اعمال كند. در محيطهايي كه فرايندها بر مبناي اولويت مديريت مي شود، زمانبندي مي بايد به فرايندهاي با اولويت بالا مساعدت بيشتري كند.
•    به فرآيندهايي كه منابع كليدي در اختيار دارد، ارجحيت دهد. اگر فرايندي با اولويت پايين منبع كليدي را در اختيار داشته باشد، ممكن است اين منبع توسط فرايندي با اولويت بالا درخواست شود. اگر منبع انحصاري باشد، آنگاه زمانبندي بايد رفتار بهتري (سرويس بهتري) با فرايند انجام دهد تا سريعاً منبع كليدي را آزاد كند (اين سرويس بهتر از حالتي است كه فرايند مورد نظر، منبع كليدي را در اختيار داشته باشد).
•    سرويس بهتري به فرايندهايي ارائه كند كه رفتار بهتري از خود نشان مي دهد. براي مثال آن دسته از فرايندهايي كه ميزان فراخواني و جايگزيني صفحة كمتري دارد، سرويس بهتري دريافت كند.
•    وقتي بار سيستم سنگين است، سطح سرويس دهي را براي همه برنامه ها بطور مناسب كاهش دهد. براي مثال در حالتي كه بار پردازشي سيستم زياد است از پذيرش كار جديد خودداري كند.
بسياري از اين اهداف با يكديگر در تضاد هستند و به همين دليل طراحي زمانبندي عملي مسأله پيچيده اي است.
معيارهاي زمانبندي
براي تحقق اهداف زمانبندي مي بايد معيارهاي زير را در نظر گرفت:
•    ورودي / خروجي گرا بودن فرايند – وقتي فرايندي cpu را در اختيار مي گيرد، آيا قبل از اعلام درخواست براي هر عمل cpu , I/O را به مدت محدود استفاده مي كند؟
•    cpu گرا بودن فرايند – وقتي فرايندي cpu را در اختيار مي گيرد، آيا تمايل دارد قبل از پايان زمان كوانتوم (برهه زماني مشخص براي اجراي فرايند) آن را در اختيار داشته باشد؟
•    دسته اي يا محاوره اي بودن فرايند – كاربران محاوره اي عموماً سؤالات كوچك به سيستم مي فرستند و انتظار دارند سرويس فوري از سيستم دريافت كنند. تضمين زمان پاسخ خوب توسط سيستم از اهميت بسياري برخوردار است. كاربران دسته اي معمولاً هنگام پردازش حضور ندارند و پاسخ را مي توانند با تأخير قابل قبول از سيستم دريافت كنند.
•    اضطراري بودن زمان پاسخ – فرايندهايي كه به صورت دسته اي اجرا مي شود به زمان پاسخ سريع نيازي ندارد. يك فرايند بلادرنگ كه كنترل پالايشگاه را به عهده دارد براي جلوگيري از انفجار به زمان پاسخ سريع (فوري) احتياج دارد.
•    اولويت فرايندها – فرايندهايي كه اولويت بسيار دارد نسبت به فرايندهاي با اولويت كم بايد از سرويس بهتري برخوردار باشد.
•    ميزان توليد خطاي صفحه (page fault) توسط فرايند – عموماً ، فرايندهايي كه خطاي صفحه كمتري توليد مي كند مجموعه كاري (working set) خود را در حافظه اصلي زودتر تشكيل مي دهد. روش متعارف اين است كه چنين فرايندهايي از سرويس بهتر برخوردار باشد. ديدگاه ديگر مي گويد به فرايندهايي كه خطاي صفحه بيشتري توليد مي كند بايد اولويت داده شود تا از زمان cpu بيشتري براي تشكيل مجموعه كاري خود بهره مند شود.
•    پردازندة هر فرايند چند بار توسط فرايند با اولويت بالا گرفته شده است – اينگونه فرايندها مي بايد از مساعدت كمتري برخوردار باشد.
•    هر فرايند تاكنون چقدر زمان واقعي اجرا دريافت كرده است. برخي از طراحان معتقدند فرايندي كه از زمان اجراي كمتري برخوردار بوده است مي بايد بيشتر مساعدت شود. برخي ديگر اعتقاد دارند فرايندي كه زمان اجراي بيشتري دريافت كرده، احتمالاً به زمان تكميل خود نزديك شده و لذا بهتر است از مساعدت بيشتري برخوردار شود تا بطور كامل تكميل گردد و هر چه زودتر سيستم را ترك كند.
•    چقدر زمان براي تكميل فرايند لازم است – زمان متوسط انتظار را مي توان با اجراي فرايندهايي كه براي تكميل آنها زمان كمتري لازم است، كاهش داد. متأسفانه كمتر مي توان تشخيص داد كه زمان باقيمانده براي تكميل هر يك از فرايندها چقدر است.
زمانبندي انحصاري در مقابل غيرانحصاري
زمانبندي را انحصاري گويند اگر نتوان cpu را از دست فرايند پس گرفت. زمانبندي را غير انحصاري گويند اگر بتوان cpu را از دست فرايند آزاد كرد.
زمانبندي غيرانحصاري در سيستمهايي كه بر مبناي اولويت (priority) عمل مي كند، بسيار مفيد است. براي مثال در سيستمهاي بلادرنگ نتيجة از دست دادن يك وقفه مي تواند ويرانگر باشد. در سيستمهاي محاوره اي و اشتراك زماني، زمانبندي غيرانحصاري براي تضمين زمان پاسخ قابل قبول از اهميت بسياري برخوردار است.
انتخاب زمانبندي غيرانحصاري بدون هزينه نيست و بديهي است كه تعويض متن سرباري دارد. براي اينكه زمانبندي غيرانحصاري بطور مؤثر اجرا شود فرايندهاي بيشتري مي بايد در حافظه اصلي نگهداري شود تا عمليات تعويض متن با سرعت بيشتري انجام شود.
در سيستمهاي انحصاري، فرايندهاي كوچك توسط فرايندهاي بزرگ در حالت انتظار نگهداشته مي شود، لكن رفتار تمامي فرايندها عادلانه تر است. در اين سيستمها، زمان پاسخ قابل پيش بيني تر است زيرا آمدن فرايندهاي با اولويت بالا نمي تواند فرايندهاي منتظر را عقب بيندازد.
در طراحي روش زمانبندي غيرانحصاري، مسأله اي كه بايد بطور دقيق مورد توجه قرار گيرد مجازي بودن هر گونه الگوي اولويت است. ممكن است روش پيشرفته اي را براي پياده سازي يك الگوي غيرانحصاري مبتني بر اولويت بسازيم به گونه اي كه اولويتها خودشان براساس واقعيت، قابل اعمال نباشد. در سيستمهاي عامل استفاده از روشهاي تفنني براي پشتيباني برخي الگوها، غير معمول نيست. طراح بايد آگاه باشد كه هر روش پيشنهادي را قبل از پياده سازي بطور دقيق ارزيابي كند.
زمانسنج مياني يا ساعت وقفه
به فرايندي كه هم اكنون پردازنده را در اختيار دارد گفته مي شود كه در حال اجراست. اگر فرايند مربوط به خود سيستم عامل باشد، در واقع سيستم عامل در حال اجراست و مي تواند عمليات سيستم را تحت كنترل قرار دهد.
سيستم عامل براي جلوگيري از به انحصار درآوردن سيستم توسط كاربران، روشهايي دارد كه مي تواند پردازنده را از دست كاربر آزاد كند.
سيستم عامل يك ساعت وقفه يا زمانسنج را تنظيم مي كند تا بتواند در زمان مشخص (در آينده) وقفه اي توليد كند. در اين زمان پردازنده از دست فرايند جاري پس گرفته مي شود و به فرايند ديگر اختصاص مي يابد. فرايند، كنترل پردازنده را در اختيار مي گيرد تا زماني كه بطور ارادي آن را رها كند، يا ساعت (clock) ، وقفه اي را به وجود آورد و يا وقفه هاي ديگر، توجه آن را به خود جلب كند. اگر فرايندي در حال اجرا باشد و ساعت (clock) ، وقفه اي ايجاد كند، اين وقفه باعث اجراي سيستم عامل مي شود. در اين حالت سيستم عامل تصميم خواهد گرفت كه كدام فرآيند پردازنده را در اختيار بگيرد.
ساعت وقفه كمك مي كند تا زمان پاسخ قابل قبول براي كاربران محاوره اي تضمين شود، از قفل شدن سيستم در حلقه هاي بي پايان جلوگيري مي كند و اجازه مي دهد فرايندهاي به وقايع وابسته به زمان پاسخ دهد. فرايندهايي كه بطور مرتب به اجرا نياز دارد، ترتيب اجراي آنها به ساعت وقفه بستگي دارد.
اولويتها
اولويتها ممكن است بطور خودكار توسط سيستم و يا توسط عوامل خارجي اعمال شود. آنها ممكن است كسب و يا خريداري شود؛ كاملاً ايستا و يا پويا باشد؛ بطور معقول (عقلاني) اختصاص يابد و يا تحت شرايطي كه سيستم به تمايز بين فرايندها نياز دارد بطور غير معقول اختصاص يابد، لكن دقيقاً مشخص نيست كه كداميك از روشها از اهميت بيشتري برخوردار است.
اولويتهاي ايستا در مقابل پويا
اولويتهاي ايستا معمولاً عوض نمي شود. پياده سازي آنها راحت است و نسبتاً سرباري كمتري دارد.
روشهاي اولويت پويا معمولاً تغييرپذير است. اولويت اوليه به هر فرايند اختصاص مي يابد و پس از مدت كوتاهي ممكن است به مقدار بهتر تغيير كند. پياده سازي الگوهاي اولويت پويا پيچيده تر و سرباري آنها بيشتر است. البته سرباري به وجود آمده در اين روش با افزايش قابليت پاسخگويي سيستم قابل توجيه مي شود.
اولويتهاي قابل خريداري
سيستم عامل بايد بتواند سرويس معقولي را براي گروه وسيعي از كاربران فراهم كند و همچنين بتواند انتظارات كاربران محيطهاي خاص را تأمين نمايد.
كاربري كه مي خواهد برنامه اش در حداقل زمان اجرا شود، ممكن است مايل باشد براي به دست آوردن سرويس بهتر پول بيشتري پرداخت كند. اين پرداخت اضافي باعث مي شود كه منابع سيستم از ساير كاربران پس گرفته شود. اگر پرداخت اضافي براي سرويس بهتر نباشد، همه كاربران انتظار دارند كه از سرويس بالاتري برخوردار باشند.
زمانبندي ضرب الاجل
در زمانبندي ضرب الاجل، برنامه هاي زمانبندي شده بايد در زمان مشخص به پايان برسد. اينگونه برنامه ها اگر بموقع تكميل شود ارزش بسياري دارد و اگر با تأخير تكميل شود بدون ارزش خواهد بود. كاربر معمولاً تمايل دارد مبلغي را پرداخت كند تا مطمئن شود كه سيستم، كارش را بموقع تكميل مي كند. زمانبندي ضرب الاجل بنا به دلايل زير پيچيده است:
•    كاربر مي بايد نيازمنديهاي دقيق برنامه را به منابع مورد نظر معين كند. چنين اطلاعاتي البته كمتر در دسترس است.
•    سيستم بايد بتواند برنامة ضرب الاجل را اجرا كند، بدون اينكه سرويس دهي به ديگران را مختل كند.
•    سيستم بايد در طول زمان ضرب الاجل بدقت طراحي كند كه به چه منابعي نياز خواهد داشت. اين كار ممكن است مشكل باشد، زيرا ممكن است برنامه هاي جديد وارد سيستم شود و درخواستهاي غيرقابل پيش بيني را روي سيستم قرار دهد.
•    اگر در يك لحظه چندين برنامة ضرب الاجل با هم فعال شود، پيچيدگي بيشتر مي شود.
•    مديريت منابع در زمانبندي ضرب الاجل پيچيده است و ممكن است سرباري بيشتري ايجاد كند. حتي اگر كاربران ضرب الاجل بخواهند مبلغ كافي براي دريافت سرويسهاي بهتر پرداخت كنند، مصرف زياد منابع سيستم ممكن است باعث كاهش سطح سرويس براي بقيه كاربران شود. چنين تضادهايي مي بايد بطور دقيق توسط طراحان سيستمهاي عامل مورد توجه قرار بگيرد.
زمانبندي FIFO
اين زمانبندي شايد يكي از ساده ترين روشهاي زمانبندي باشد (شكل 10-2). فرايندها براساس زمان ورودشان به سيستم در صف آماده (ready list) قرار مي گيرد. وقتي هر فرايند پردازنده را در اختيار مي گيرد، اجرا مي شود تا به پايان برسد. بنابراين روشي انحصاري براي زمانبندي است. اين روش در حالت عادي به عدالت عمل مي كند، لكن در برخي موارد كه برنامه هاي بزرگ معمولاً باعث انتظار برنامه هاي كوچك مي شود غيرعادلانه عمل مي كند. زمانبندي FIFO براي سيستمهاي محاوره اي مناسب نيست زيرا نمي تواند زمان پاسخ خوبي را تضمين كند.
شكل 10-2) زمانبندي FIFO
روش FIFO در سيستمهاي امروزي كمتر به عنوان الگوي اصلي براي زمانبندي به كار گرفته مي شود، بلكه اين روش معمولاً با الگوهاي ديگر ادغام مي شود؛ براي مثال، بسياري از الگوهاي زمانبندي فرايندها را بر مبناي اولويت براي پردازنده مي فرستند، اما فرايندهاي با اولويت يكسان براساس FIFO در اختيار پردازنده قرار مي گيرد.
زمانبندي نوبت دوره اي
در روش زمانبندي نوبت دوره اي (شكل 10-3) ، فرايندها به صورت FIFO براي پردازنده فرستاده مي شود لكن براي هر فرايند مقدار محدودي از زمان پردازنده به نام برش زماني اختصاص مي يابد. اگر فرايندي قبل از انقضاي برش زماني خودش تكميل نشود، پردازنده از دست آن فرايند پس گرفته شده و به فرايند منتظر بعدي داده مي شود. در اين حالت فرايند آزاد شده مجدداً به انتهاي صف برگردانده مي شود.








انجام پایان نامه

انجام پایان نامه کامپیوتر، انجام پایان نامه ارشد کامپیوتر، انجام پایان نامه، پایان نامه

برای دیدن ادامه مطلب از لینک زیر استفاده نمایید

  دانلود مقاله | انجام پایان نامه

سفارش پایان نامه

نقشه