قسمت دوم:آشنایی با مفاهیم پردازش و شیوه کار پردازنده (CPU)
سه شنبه 8 دی 1394 9:32 PM
زمانی که فرایندی وارد سیستم می گردد، وارد یک صف کار می شود. این صف شامل تمام فرایندهای موجود در حافظه جانبی ما است و منتظر جابه جایی ی در حافظه اصلی است. فرایندهایی که در حافظه اصلی قرار دارند، و آماده اجرا هستند و یا در حال انتظار به سر می برند، در لیستی نگه داری می شوند که به آن صف آمادگی می گویند. این لیست معمولا یک لیست پیوندی است. هدری برای صف آمادگی وجود دارد که شامل اشاره گرهای اول و آخر PCB در لیست است. هر PCB بک میدان اشاره گر دارد که به فرایند بعدی در صف آمادگی اشاره می کند. در سیستم صف های دیگری نیز وجود دارد. زمانی که فرایندی در سیستم تخصیص داده می شود، مدت زمانی اجرا می شود و سپس یا خارج می شود و یا منتظر یک سلسله رویدادهای خاص، مثل درخواست های I/O می گردد. زمانی که یک درخواست I/0 صادر می گردد، باید به نوار کاست برود، و یابه یک دستگاه مشترک مثل دیسک وارد شود. چون فرایندهای زیادی در سیستم وجود دارد، ممکن است دیسک با درخواستهای I/O زیادی از دیگر منابع نیز مواجه شود. بنابراین، فرایند باید منتظر دیسک بماند. لیست فرایندها که باید منتظر یک دستگاه I/O بماند، صف دستگاه نامیده می شود. هر دستگاه صف دستگاه مربوط یه خود را دارد.اگر دستگاه یک دستگاه اختصاصی باشد، مثل یک نوار کاست، صف دستگاه هیچ گاه بیش از یک فرایند در صف دستگاهش قرار نمی گیرد.
تعویض cpu به یک فرایند دیگر، به ذخیره سازی فرایند قدیمی و بارگذاری حالت ذخیره شده برای فرایند جدید است. به این وظیفه، تعویض زمینه می گویند. زمان تعویض زمینه، سربار خالص است. از یک سیستم به سیستم دیگر این زمان متفاوت است. این زمان به سرعت حافظه، تعداد رجیسترها و وجود دستورالعملهای خاص (مثل یک دستورالعمل خاص برای بارگذاری و ذخیره سازی همه رجیسترها) بستگی دارد. معمولا، این زمان بین 1 تا 100 میکروثانیه است.
زمانهای تعویض زمینه به شدت به سخت افزار سیستم مربوط می شود. مثلا، بعضی ار فرایندها چندین نوع رجیستر دارند. تعویض زمینه به تغییر اشاره گر به مجموعه رجیستر جدید مربوط می شود. البته، اگر فرایندهای فعال بیشتری نسبت به تعداد رجیسترهای موجود بیشتر باشد، سیستم باید همانند قبل از داده های رجیستر و حافظه کپی بگیرد. همانظور که در بخشهای بعد خواهیم دید، روشهای پیشرفته مدیریت حافظه موجب می شود داده های بیشتری در هر بخش تغییر کند.
بخش دیگر تابع زمانبندی cpu ،توریع کننده است. توزیع کننده ماژولی است که کنترل cpu را به فرایندهایی که توسط برنامه زمانبندی کوتاه مدت مشخص شده است، می سپارد. این تابع شامل موارد زیر است:
واضح است که، توزیع کننده تا حد ممکن باید سریع باشد.
زمانبندی cpu به مشکل تصمیم گیری در مورد فرایندهای موجود در صف امادگی مربوط می شود که باید درcpu جایابی شوند. الگوریتم های گوناگونی برای زمانبندی cpu وجود دارد. در این بخش، چندین مورد از این الگوریتمها را توصیف می کنیم.
الگوریتم های زمانبندی گوناگون خصوصیات مختلفی هم دارند و ممکن است در هر مورد یک الگوریتم از الگوریتم دیگر بهتر باشد. در انتخاب اینکه کدام الگوریتم در یک موقعیت خاص بهتر است، باید خصوصیات الگوریتم های مختلف را بدانیم.
معیارهای فراوانی برای مقایسه الگوریتمهای زمانبندی cpu معرفی شده اند. اینکه چه خصوصیاتی برای مقایسه بکار گرفته می شود، می تواند در تعریف بهترین الگوریتم تفاوتهایی را بوجود آورد. معیارهایی که بکار می روند به صورت زیر هستند:
به حداکثر رساندن بهره وری و توان عملیاتی CPU و به حداقل رساندن زمان برگشت، زمان انتظار و زمان پاسخ برای ما کالا مطلوب است.