تاریخچه ی:
سیستم های چند برنامه ایMulti programming
V{maketoc}
در نسل سوم کامپیوترها (80-1965) از ((مدارات مجتمع)) (Integrated Circuit=IC) برای ساخت کامپیوترها استفاده شد. به طور کلی برنامهها را میتوان به دو دسته تقسیم کرد : یکی برنامه ها با تنگنای محاسباتی CPU boundیا CPU Limiter ( مانند محاسبات علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات Cpu میشود ودیگری برنامه های تنگنای I/O Limited)I/O )مانند برنامههای تجاری که بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطلاعات میشود.
یک اشکال مهم ((سیستم های دستهای)) این است که وقتی کار جاری برای تکمیل یک عملیات ((I/O ))مثلاً بر روی ((نوار گردان)) منتظر میشود. در این حال ((CPU ))بیکار میماند و مجبور است صبر کند تا عملیات I/Oبه اتمام برسد. در برنامه های CPU Limited این اتلاف وقت اندک است ولی در برنامه های I/O Limited ممکن است حدود 80تا90 درصد وقت CPU به هدر برود.
برای رفع این مشکل از تکنیک multiprogramming استفاده میشود. بدنی ترتیب که حافظه به چند قسمت تقسیم شده و در هر قسمت یک برنامه مجزا قرار داده میشود. وقتی که یک کار برای تکمیل عملیات I/O منتظر میماند, پردازنده به کار دیگری داده میشود. اگر تعداد کارهای موجود در حافظه کافی باشد میتوان CPU را تقریباً صد در صد مشغول نگه داشت .
البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامهها بر همدیگر اثر سوء نداشته باشند . لذا مدیریت حافظه بحث مهمی در سیستم عامل میباشد.