چند برنامهنویسی در مقابل سیستمهای اشتراکگذاری زمان
Multiprogramming تخصیص بیش از یک برنامه همزمان بر روی یک سیستم کامپیوتری و منابع آن است. چندبرنامهنویسی با اجازه دادن به کاربران مختلف برای استفاده مؤثر از دستگاههای CPU و I/O امکان استفاده مؤثر از CPU را فراهم میکند. چندبرنامهنویسی اطمینان حاصل میکند که CPU همیشه چیزی برای اجرا دارد، بنابراین استفاده از CPU را افزایش میدهد. از سوی دیگر، اشتراک گذاری زمان به اشتراک گذاری منابع محاسباتی بین چندین کاربر به طور همزمان است. از آنجایی که این امر به تعداد زیادی از کاربران اجازه می دهد تا در یک سیستم کامپیوتری واحد کار کنند، هزینه ارائه قابلیت های محاسباتی را کاهش می دهد.
سیستم چندبرنامهنویسی چیست؟
Multiprogramming تغییر سریع CPU بین چندین برنامه است. یک برنامه به طور کلی از چندین کار تشکیل شده است. یک کار معمولاً با درخواستی برای انتقال داده خاتمه می یابد که برای اجرای برخی از عملیات I/O نیاز دارد. چندوظیفه ای معمولا برای مشغول نگه داشتن CPU انجام می شود، در حالی که برنامه در حال اجرا در حال انجام عملیات I/O است. در مقایسه با سایر دستورالعمل های اجرایی، عملیات I/O بسیار کند است. حتی اگر یک برنامه شامل تعداد بسیار کمی از عملیات I/O باشد، بیشتر زمان صرف شده برای برنامه صرف آن عملیات I/O می شود. بنابراین، استفاده از این زمان بیکار و اجازه دادن به برنامه دیگری برای استفاده از CPU در آن زمان، استفاده از CPU را افزایش می دهد. برنامه نویسی چندگانه در ابتدا در اواخر دهه 1950 به عنوان یکی از ویژگی های سیستم عامل توسعه یافت و برای اولین بار در محاسبات بزرگ استفاده شد. با معرفی حافظه مجازی و فناوریهای ماشین مجازی، استفاده از چندبرنامهنویسی افزایش یافت.
سیستم اشتراک زمان چیست؟
اشتراک گذاری زمان، که در دهه 1960 معرفی شد، به اشتراک گذاری منابع محاسباتی بین چندین کاربر به طور همزمان است. در سیستمهای اشتراکگذاری زمان، چندین پایانه به یک سرور اختصاصی متصل میشوند که CPU خود را دارد. اقدامات / دستورات اجرا شده توسط سیستم عامل یک سیستم اشتراک گذاری زمان بسیار کوتاه است. بنابراین CPU برای مدت کوتاهی به کاربران در ترمینال ها اختصاص داده می شود، بنابراین کاربر در ترمینال این احساس را پیدا می کند که یک CPU را در پشت ترمینال خود اختصاص داده است. مدت زمان کوتاهی که یک فرمان در یک سیستم اشتراک زمانی اجرا می شود، برش زمانی یا کوانتوم زمانی نامیده می شود. با توسعه اینترنت، سیستمهای اشتراکگذاری زمان محبوبتر شدهاند، زیرا مزارع سرور گران قیمت میتوانند میزبان تعداد بسیار زیادی از مشتریانی باشند که منابع مشابهی را به اشتراک میگذارند. از آنجایی که وبسایتها عمدتاً در فعالیتهای ناگهانی و به دنبال دورههای بیکاری کار میکنند، زمان بیکاری یکی از مشتریان میتواند به طور مؤثر توسط دیگری استفاده شود، بدون اینکه هیچ یک از آنها متوجه تأخیر شوند.
تفاوت بین سیستم چندبرنامهنویسی و سیستم اشتراکگذاری زمان چیست؟
تفاوت اصلی بین چندبرنامهنویسی و اشتراکگذاری زمانی در این است که چندبرنامهنویسی استفاده مؤثر از زمان CPU است، با اجازه دادن به چندین برنامه برای استفاده همزمان از CPU، اما اشتراکگذاری زمان، اشتراکگذاری یک تسهیلات محاسباتی توسط چندین کاربر است که میخواهند. برای استفاده همزمان از همان امکانات هر کاربر در یک سیستم اشتراکگذاری زمان، ترمینال خود را دریافت میکند و احساس میکند که به تنهایی از CPU استفاده میکند. در واقع، سیستمهای اشتراکگذاری زمان از مفهوم چندبرنامهنویسی برای به اشتراک گذاشتن زمان CPU بین چندین کاربر به طور همزمان استفاده میکنند.