در قسمت اول آشنایی با پردازش و مفاهیم آن،به مواردی از جمله مفهوم پیک پردازش توسط پردازنده،پردازش های ترکیبی و مفاهیم زمانبدنی پرداختیم.این با قسمت دوم همراه باشید.
صف های زمان بندی
زمانی که فرایندی وارد سیستم می گردد، وارد یک صف کار می شود. این صف شامل تمام فرایندهای موجود در حافظه جانبی ما است و منتظر جابه جایی ی در حافظه اصلی است. فرایندهایی که در حافظه اصلی قرار دارند، و آماده اجرا هستند و یا در حال انتظار به سر می برند، در لیستی نگه داری می شوند که به آن صف آمادگی می گویند. این لیست معمولا یک لیست پیوندی است. هدری برای صف آمادگی وجود دارد که شامل اشاره گرهای اول و آخر PCB در لیست است. هر PCB بک میدان اشاره گر دارد که به فرایند بعدی در صف آمادگی اشاره می کند. در سیستم صف های دیگری نیز وجود دارد. زمانی که فرایندی در سیستم تخصیص داده می شود، مدت زمانی اجرا می شود و سپس یا خارج می شود و یا منتظر یک سلسله رویدادهای خاص، مثل درخواست های I/O می گردد. زمانی که یک درخواست I/0 صادر می گردد، باید به نوار کاست برود، و یابه یک دستگاه مشترک مثل دیسک وارد شود. چون فرایندهای زیادی در سیستم وجود دارد، ممکن است دیسک با درخواستهای I/O زیادی از دیگر منابع نیز مواجه شود. بنابراین، فرایند باید منتظر دیسک بماند. لیست فرایندها که باید منتظر یک دستگاه I/O بماند، صف دستگاه نامیده می شود. هر دستگاه صف دستگاه مربوط یه خود را دارد.اگر دستگاه یک دستگاه اختصاصی باشد، مثل یک نوار کاست، صف دستگاه هیچ گاه بیش از یک فرایند در صف دستگاهش قرار نمی گیرد.
تعویض زمینه
تعویض cpu به یک فرایند دیگر، به ذخیره سازی فرایند قدیمی و بارگذاری حالت ذخیره شده برای فرایند جدید است. به این وظیفه، تعویض زمینه می گویند. زمان تعویض زمینه، سربار خالص است. از یک سیستم به سیستم دیگر این زمان متفاوت است. این زمان به سرعت حافظه، تعداد رجیسترها و وجود دستورالعملهای خاص (مثل یک دستورالعمل خاص برای بارگذاری و ذخیره سازی همه رجیسترها) بستگی دارد. معمولا، این زمان بین 1 تا 100 میکروثانیه است.
زمانهای تعویض زمینه به شدت به سخت افزار سیستم مربوط می شود. مثلا، بعضی ار فرایندها چندین نوع رجیستر دارند. تعویض زمینه به تغییر اشاره گر به مجموعه رجیستر جدید مربوط می شود. البته، اگر فرایندهای فعال بیشتری نسبت به تعداد رجیسترهای موجود بیشتر باشد، سیستم باید همانند قبل از داده های رجیستر و حافظه کپی بگیرد. همانظور که در بخشهای بعد خواهیم دید، روشهای پیشرفته مدیریت حافظه موجب می شود داده های بیشتری در هر بخش تغییر کند.
توزیع کننده
بخش دیگر تابع زمانبندی cpu ،توریع کننده است. توزیع کننده ماژولی است که کنترل cpu را به فرایندهایی که توسط برنامه زمانبندی کوتاه مدت مشخص شده است، می سپارد. این تابع شامل موارد زیر است:
- تعویض زمینه ها
- تعویض به مد کاربری
- پرش به مکان مناسب در برنامه کاربری برای اجرای مجدد برنامه ها
واضح است که، توزیع کننده تا حد ممکن باید سریع باشد.
الگوریتمهای زمان بندی
زمانبندی cpu به مشکل تصمیم گیری در مورد فرایندهای موجود در صف امادگی مربوط می شود که باید درcpu جایابی شوند. الگوریتم های گوناگونی برای زمانبندی cpu وجود دارد. در این بخش، چندین مورد از این الگوریتمها را توصیف می کنیم.
الگوریتم های زمانبندی گوناگون خصوصیات مختلفی هم دارند و ممکن است در هر مورد یک الگوریتم از الگوریتم دیگر بهتر باشد. در انتخاب اینکه کدام الگوریتم در یک موقعیت خاص بهتر است، باید خصوصیات الگوریتم های مختلف را بدانیم.
معیارهای فراوانی برای مقایسه الگوریتمهای زمانبندی cpu معرفی شده اند. اینکه چه خصوصیاتی برای مقایسه بکار گرفته می شود، می تواند در تعریف بهترین الگوریتم تفاوتهایی را بوجود آورد. معیارهایی که بکار می روند به صورت زیر هستند:
- بهره وری cpu: می خواهیم تا جایی که امکان دارد cpu مشغول باشد. بهره وری cpu می تواند از صفر تا 100 درصد تغییر کند. در یک سیستم واقعی، راندمان از 40درصد آغاز می شود، (برای سیستم های کم بار) و تا 90 درصد ادامه پیدا می کند (برای سیستم های پربار).
- توان عملیاتی. اگر cpu مشغول باشد، کاری انجام می شود. یک معیار کار تعداد فرایندهایی است که در هر واحد زمان انجام می شود، توان عملیاتی نامیده می شود. در فرایندهای طولانی، این نرخ می تواند یک فرایند در هر ساعت باشد، برای تراکنش های کوتاه مدت این مقدار می تواند تا 10 فرایند در هر ثانیه هم برسد.
- زمان برگشت. از نقطه نظر یک فرایندد خاص، معیار مهم این است که چه مدت زمانی طول می کشد تا این فرایند اجرا شود. فاصله زمانی از آغاز یک فرایند تا تکمیل ان را زمان برگشت می گویند. زمان برگشت مجموع دوره های زمانی است که منتظر می مانند تا وارد حافظه شوند. و در صف آمادگی منتظر می مانند، در cpu اجرا می شوند و به I/O ارسال می شوند.
- زمان انتظار. الگوریتم زمانبندی CPU واقعا مدت زمان لازمی را که یک فرایند می تواند اجرا کند یا با I/O در ارتباط باشد را تحت تاثیر قرار نمی دهد. این الگوریتم تنها مدت زمانی که یک فرایند در صف آمادگی منتظر می ماند را تحت تاثیر قرار دهد. بنابراین، بجای انکه توجه به زمان برگشت معطوف گردد، باید معمولا زمان انتظار را در هر فرایند در نظر بگیریم.
- زمان پاسخ. در یک سیستم تعاملی ، زمان برگشت ممکن است بهترین معیار نباشد. اغلب، یک فرایند خروجی خود را خیلی سریع تولید می کند، و می تواند محاسباتش نتایج جدیدش را زمانی که نتایج قبلی به کاربر ارسال می شود، را محاسبه کند. بنابراین، معیار دیگر زمان ارسال یک تقاضا است تا زمانی که اولین پاسخ ایجاد گردد. این معیار، که به ان زمان پاسخ می گویند، مقدار زمانی است که پاسخ دادن آغاز می شود. زمان برگشت معمولا توسط سرعت دستگاه خروجی محدود می گردد.
به حداکثر رساندن بهره وری و توان عملیاتی CPU و به حداقل رساندن زمان برگشت، زمان انتظار و زمان پاسخ برای ما کالا مطلوب است.
خیلی خوبه هرچند من کاملا متوجه نمیشم مطالب رو،اگه میشه یخورده ساده تر بنویسید
من که چیزی نفهمیدم شما رو نمیدونم.:D
خیلی جالب بود… ممنون.. کاش اینجور موضوعات تو سایتتون افزایش پیدا کنه… دروووود
ممنون دوست عزیز.قسمت های بعدی رو هم مطالعه بفرمائید.مورد هم اصلاح شد.
سلام
همیشه تو ذهنم بود که چه جوری این cpu کار میکنه به طور کل ذهنم رو مشغول کرده بود ولی حالا یه چیز هایی فهمیدم دستتون درد نکنه بابت مقاله
:oلطفاً اینو درست کنید
” این نرخ می تواند یک فرایند در عر ساعت باشد” به جای (عر) (هر) باید باشه