بخشی از مقاله
سیستم عاملهای چندبرنامه ای
فهرست:
آشنایی با سیستم عاملهای چند رسانه ای
آشنایی با سیستم عاملهای چند رسانه ای
سیستم عامل بدون شک مهمترین نرم افزار در کامپیوتر است . پس از روشن کردن کامپیوتر اولین نرم افزاری که مشاهده می گردد سیستم عامل بوده و آخرین نرم افزاری که قبل از خاموش کردن کامپیوتر مشاهده خواهد شد، نیز سیستم عامل است..
سیستم عامل های چند برنامه ای multi programming :
برای جلوگیری از تلف شدن وقت واحد پردازشگر این سیستم های عامل طوری طراحی شده اند که میتوانند اجرای چند برنامه را به طور همزمان بر عهده بگیرند . انجام این کار بدین صورت است که در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر کدام از این برنامه ها در مرحله اجرای خاص خود قرار دارند .این برنامه ها به صورت قسمت قسمت مطابق با احتیاجات ورودی و خروجی
خود پردازش میشوند . میتوان برای پردازش برنامه ها اولویت هائی را نیز در نظر گرفت در این حالت برنامه هائی که دارای اولویت برای اجرا هستند زود تر از دیگر برنامه ها پردازش خواهند شد به عبارت دیگر اجرای این برنامه ها بر برنامه های دیگری که دارای اولویت نیستند تقدم خواهند داشت . کاربر میتواند بنا به میل خود ترتیب پردازش برنامه ها را تغییر دهد یا برای اجرای برنامه ها اولویت قائل شوند .
• الف) سیستم های دسته ایBatch system
• ب ) سیستم های چند برنامه ایMulti programming
• پ ) سیستم spooling
• ت ) سیستم اشتراک زمانی Time sharing
• س ) سیستم عامل های کامپیوتر های شخصی و شبکه
• ج ) سیستم های توزیع شدهDistributed system
• چ ) سیستم ها ی چند وظیفه ایMulti tasking
• ح) سیستم های چند پردازنده ای Multi processing
• خ) سیستم های بی درنگReal Time
الف) سیستم های دسته ای (Portable Batch System ):
یکی از معایب روش offline- spooling زیاد بودن زمان برگشت گردش (turnaround time) است ,یعنی تأخیر زمانی مابین تحویل کار و تکمیل کار. همچنین در این سیستم اولویت بندی به معنای واقعی وجود ندارد. تنها روش بدست آوردن اولویت این بود که نوار کارهای مهم را ابتدا در ماشین اصلی قرار دهند. حتی در این صورت هم باید چندین ساعت صبر میکردند تا خروجی ها ظاهر شوند. همچنین نیاز به سخت افزار اضافی(مثل کامپیوترهای۱۴۰۱) از دیگر معایب این روش بود.
ب ) سیستم های چند برنامه ای ( Multi programming ):
در نسل سوم کامپیوترها (۸۰-۱۹۶۵) از مدارات مجتمع (Integrated
Circuit=IC) برای ساخت کامپیوترها استفاده شد. به طور کلی برنامهها را میتوان به دو دسته تقسیم کرد : یکی برنامه ها با تنگنای محاسباتی CPU boundیا CPU Limiter مانند محاسبات علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات Cpu میشود ودیگری برنامه های تنگنای I/O Limited)I/O) مانند برنامههای تجاری که بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطلاعات میشود.یک اشکال مهم سیستم های دستهای این است که وقتی کار جاری برای
تکمیل یک عملیات I/O مثلاً بر روی نوار گردان منتظر میشود. در این حال CPU بیکار میماند و مجبور است صبر کند تا عملیات I/Oبه اتمام برسد. در برنامه های CPU Limited این اتلاف وقت اندک است ولی در برنامه های I/O Limited ممکن است حدود ۸۰ تا ۹۰ درصد وقت CPU به هدر برود.
برای رفع این مشکل از تکنیک multiprogramming استفاده میشود. بدین ترتیب که حافظه به چند قسمت تقسیم شده و در هر قسمت یک برنامه مجزا قرار داده میشود. وقتی که یک کار برای تکمیل عملیات I/O منتظر میماند, پردازنده به کار دیگری داده میشود. اگر تعداد کارهای موجود در حافظه کافی باشد میتوان CPU را تقریباً صد در صد مشغول نگه داشت.البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامهها بر همدیگر اثر سوء نداشته باشند . لذا مدیریت حافظه بحث مهمی در سیستم عامل میباشد.
پ ) سیستم ( spooling):
یکی دیگر از ویژگیهای سیستم عامل نسل سوم SpoolingیاOn Line Spooling)) است که معمولاً همراه چند برنامه گی استفاده میشود. این کلمه مخفف عبارت
( Simultaneous Peripheral OperationonLine ) میباشد. در این سیستم به جای آنک
ه کارتها از دستگاه کارت خوان مستقیماً وارد حافظه گردند و توسط CPU پردازش شوند ابتدا کاراکتر به کاراکتر در بافری در حافظه قرار گرفته و سپس به صورت بلوکی بر روی دیسک نوشته میشود.
وقتیکه برنامه کاربر اجراء میشود و از سیستم عامل تقاضای ورودی میکند, اطلاعات ورودی به صورت بلوکی و با سرعت زیاد از دیسک خوانده میشوند. به طور مشابه هنگامی که برنامه برای
خروجی چاپگر را احضار میکند, خط خروجی در یک بافر کپی شده و سپس در دیسک نوشته میشود. پس اطلاعات خروجی از دیسک بر اساس ترتیب و اولویت در چاپگر چاپ میشوند.در واقع اسپولینگ عمل I\O یک کار را با عمل محاسباتی کار دیگر روی هم میاندازد (overlap) . در سیستم اسپولینگ درحالیکه ورودی یک کار از دستگاه ورودی خوانده میشود,کار دیگری در حال چاپ شدن است , در همین بین حتی کار دیگری میتواند در حال پردازش و اجراء باشد . در اسپولینگ برنامه عملیات ورودی و خروجی اش را متناسب با سرعت دیسک (که سریع است) انجام میدهد و نه متناسب با سرعت کارتخوان یا چاپگر (که خیلی کند هستند).
0- بنابراین سیستم مذکور باعث استفاده بهینه از CPU و سایل I\O میشود و سرعت عمل را بالا میبرد. در این سیستم دیگر نیازی به کامپیوترهای ۱۴۰۱,نوار گردانهای اضافی و حمل نوارها (مانند سیستمهای دستهای ) نداریم. Free : یک پردازش ویژه را جهت زمانبندی, آماده میکند.بافر کردن امکان میدهد که عمل I\Oیک کار با عمل پردازش همان کار همزمان گردد در حالیکه spooling امکان میدهد عملیات I\O و پردازش چندین کار با هم همزمان گردند.
هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند. به آنها ایستگاههای کاری
(Work stations) میگویند . در یک سیستم عامل شبکه ، کاربران از وجود ماشین های مختلف در شبکه با خبرند. آنها میتوانند از دور وارد یک ماشین شوند و همچنین فایلهای یک ماشین را روی ماشین دیگر کپی کنند.هر کامپیوتر سیستم عامل محلی خودش را اجراء میکندو کاربر یا ک
اربران محلی مخصوص به خود را دارد .
سیستم ها ی چند وظیفه ای(Multi tasking ):
در تکنیک چندنخی (multitasking) یک فرایند (process) که برنامهای در حال اجراست , میتواند به بخشها یا نخهایی (بندهایی) تقسیم شود که میتوانند به صورت همزمان اجراء شوند.برنامههایی که چند وظیفه مستقل از هم را انجام میدهند میتوانند به صورت چند نخی نوشته شوند. گاهی اوقات به سیستمهای multithreading سیستمهای چند تکلیفی یا چند وظیفه ای (multitasking)هم گفته میشود.
فرآیند (process)یا پردازش اساس یک برنامه در حال اجراست که منابعی از سیستم به آن تخصیص داده شده است (شامل رجیسترها,حافظه,فایلها و دستگاهها).فرآیند میتواند مجموعهای از یک یا چند نخ باشد.به نخ, رشته یا بند هم گفته میشود . کلیه اطلاعات مربوط به هر پروسس , در یکی از جداول سیستم عامل به نام جداول process Control Block=PCB ذخیره میشود. این جدول یک آرایه یا لیست پیوندی از ساختارهاست که هر عضو آن مربوط به یکی از پروسسهاست که در حال حاضر موجودیت دارد.
اطلاعات موجود در PCB عبارتند از
• حالت جاری پردازش
• شماره شناسایی پردازش
• اولیت پردازش
• نشانی حافظه پردازش
• نشانی محل برنامه پردازش بر روی دیسک
• نشانی سایر منابع پردازش
• محلی برای حفظ ثباتها .
سیستم های چند پردازنده ای (Multi processing):
کامپیوترها میتوانند به جای یک CPU چندین CPU داشته باشند که در اینصورت به آنها سیستم multiprocessing میگویند.جهت استفاده از این سیستمهای نیاز به یک سیستم عامل خاص میباشد که بتواند چندین برنامه یانخهای یک فرآیند را به صورت موازی واقعی روی آنها اجراء کند سیستم عامل multitasking برای اجراء چند نخ بر روی یک CPU و سیستم عامل multiprocessing برای اجرای چند نخ بر روی چند CPU به کار میروند.در سیستم چند پردازندهای , CPUها باید بتواند از حافظه , امکانات ورودی و خروجی و گذرگاه Bus سیستم به صورت اشتراکی استفاده کنند .مزایای این سیستمهای عبارتند از
۱/ زیاد شدن توان عملیاتی (throughput) .منظور از throughput تعداد کارهایی است که در یک واحد زمانی تمام میشوند. بدیهی است هر چقدر تعداد پردازندهها بیشتر باشد تعداد کارهای تمام شده در یک پریود زمانی نیز بیشتر خواهد بود. البته این نسبت خطی نیست , مثلا اگر تعداد پردازندهها n باشد سرعت اجراء برنامهها nبرابر نمیشود چرا که بخشی از وقت پردازندهها جهت مسائل کنترلی و امنیتی وسوئیچ کردنها به هدر میرود.
*صرفه جویی در هزینهها , از آنجا که پردازندهها منابع تغذیه , دیسکها , حافظهها و ادوات جانبی را به صورت مشترک استفاده میکنند در هزینههای سخت افزاری صرفهجویی میشود.
۲/ تحمل پذیری در برابر خطا (fault-tolerant) سیستم های مالتی پروسسور قابلیت اعتماد ر
ا افزایش میدهند چرا که خرابی یک CPU سبب توقف سیستم نمیشود بلکه تنها سبب کند شدن آن خواهدشد .استمرار عمل با وجود خرابی نیازمند مکانیزمی است که اجازه دهد خرابی جستوجو شده , تشخیص داده شده و در صورت امکان اصلاح شود (یا کنار گذاشته شود). این توانایی به ادامه سرویس , متناسب با سطح بقای سخت افزار ,تنزل مطبوع یا graceful degradationنامیده میشود.
سیستمهای عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند:
در سیستم چند پردازندهای نامتقارن(Asymmetric Multi Processing = ASMP) یک پردازنده جهت اجراء سیستم عامل و پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء میشود, ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید.