سيستم هاي چند برنامگي Multiprogramming
در نسل سوم كامپيوترها (80-1965) از مدارات مجتمع (Integrated Circuit=IC) براي ساخت كامپيوترها استفاده شد. به طور كلي برنامه را مي توان به دو دسته تقسيم كرد: يكي برنامه ها با تنگناي محاسباتي (CPU bound يا CPU Limited) مانند محاسبات علمي سنگين كه بيشتر زمان كامپيوتر صرف محاسبات CPU مي شود و ديگري برنامه ها با تنگناي (I/O Limited) I/O مانند برنامه هاي تجاري كه بيشتر زمان كامپيوتر صرف ورود داده ها و خروج اطلاعات مي شود.
يك اشكال مهم سيستم هاي دسته اي اين است كه وقتي كار جاري براي تكميل عمليات I/O مثلاًٌ بر روي نوار گردان منتظر مي شود، در اين حال CPU بيكار مي ماند مجبور است صبر كند تا عمليات I/O به اتمام برسد. در برنامه هاي CPU Limited اين اتلاف وقت اندك است ولي در برنامه هاي I/OLimited ممكن است حدود 80 تا 90 درصد وقت CPU به هدر برود.
براي رفع اين مشكل از تكنيك multiprogramming استفاده مي شود. بدين ترتيب كه حافظه به چند قسمت تقسيم شده و در هر قسمت يك برنامه مجزا قرار داده مي شود. وقتي كه يك كار براي تكميل عمليات I/O منتظر مي ماند، پردازنده به كار ديگري داده مي شود. اگر تعداد كارهاي موجود در حافظه كافي باشد مي توان CPU را تقريباً صد درصد مشغول نگه داشت. البته نگهداري همزمان چند برنامه در حافظه نياز به مديريت خاص حافظه دارد تا برنامه ها بر همديگر اثر سوء نداشته باشند. لذا مديريت حافظه بحث مهمي در سيستم عالم مي باشد.
پس سيستم هاي چند برنامگي فقط يك پردازنده دارند و به كمك مكانيزم وقفه بين كارهاي I/OLimited , CPU-limited سوئيچ مي شود و به ظاهر اجراي اين برنامه ها به صورت موازي و همزمان صورت مي گيرد و بدين ترتيب بهره وري از سيستم افزايش مي يابد.
يك شيوه براي بالا بردن راندمان CPU آن است كه تعداد كار CPU – Limited را با I/OLimited مخلوط كنيم. ولي در عمل امكان تقسيم بندي كارها قبل از اجراء شدنشان وجود ندارد. از طرف ديگر برنامه اي ممكن است در ابتدا CPU – Limited باشد ولي در حين اجراء تبديل به I/OLimited گردد.
برچسب ها:
سيستم هاي چند برنامگي