سیستم عامل
سیستم عامل (operating system)
برنامۀ اصلی کنترلکنندۀ رایانه. سیستم عامل سه وظیفه اساسی دارد: هماهنگسازی و مدیریت سختافزار رایانه (مثل حافظه، چاپگرها، دیسکها، صفحه کلید، ماوس و صفحه نمایش)، سازماندهی فایلها بر روی رسانههای ذخیرهسازی (مثل فلاپیدیسکها، دیسکهای سخت و دیسکهای فشرده)، مدیریت مشکلات، خطاهای سختافزاری و حفظ دادهها. سیستم عامل اجرای پردازشهای رایانه، مثل اجرای برنامه واژهپرداز یا گرفتن اطلاعات از حافظه را کنترل و مدیریت میکند. یکی از مهمترین اعمال سیستم عامل، تفسیر فرمانهاست که کاربر از طریق آنها با رایانه تعامل دارد. مفسر فرمان در سیستم عامل ممکن است متنی باشد، که کاربر مجبور است فرمانها را مستقیماً تایپ کند و یا ممکن است گرافیکی باشد که کاربر میتواند با انتخابکردن وکلیک کردن آیکونها دستورات لازم را به رایانه بدهد. سیستم عاملها یا تکوظیفهایاند و یا چندوظیفهایاند. در سیستم عاملهای تکوظیفهای تنها یک پردازش در هر لحظه اجرا میشود. مثلاً اگر رایانه در حال چاپکردن یک نوشته است، تا وقتی که عمل چاپ تمام نشود، نمیتواند پردازش دیگری را شروع کند یا به فرمانها پاسخ دهد. تمام سیستم عاملهای جدید چند وظیفهایاند و میتوانند چند پردازش را همزمان انجام دهند. البته اکثر رایانهها فقط یک واحد پردازش مرکزی دارند و سیستم عاملهای چندوظیفهای طوری عمل میکنند که کاربر تصور میکند چند پردازش همزمان انجام میشود. این کار اغلب از طریق تکنیک time-slice انجام میشود که طی آن سیستم عامل به هریک از پردازشهای در حال اجرا بخشی از زمانپردازنده را تخصیص میدهد. یکی دیگر از قابلیتهای سیستم عاملهای جدید استفاده از حافظه مجازی برای برنامههایی است که نیاز به حجم حافظه بالایی دارند. سیستمهای عاملی که اغلب در رایانههای شخصی بهکار میروند عبارتاند از یونیکس، OS مکینتاش، لینوکس و ویندوز. سیستم عامل یونیکس بیشتر در محیطهای دانشگاهی بهکار میرود. محبوبیت یونیکس بیشتر به خاطر گستردگی شبکه اینترنت است که اغلب نرمافزارهای آن از ابتدا برای کار روی سیستم عاملهای یونیکس طراحی شده بودند. یونیکس انواع مختلفی دارد ازجمله: SunOS، Xenix و لینوکس. سیستم عاملهای ویندوز و OS مکینتاش بهسبب سادگی و داشتن رابط کاربر گرافیکی، بیشتر در بین عموم مردم متداولاند. در سالهای اخیر نوعی از سیستم عامل ابداع شده است که به آن سیستم عامل توزیعشده میگویند. این نوع از سیستم عامل برای کنترل مجموعهای از رایانههای متصل به هم ولی مستقل که در منابع مختلف مثل دیسکهای سخت با هم مشترکاند، طراحی شده است. در یک سیستم عامل توزیعشده، یک پردازش میتواند روی هریک از رایانههای شبکه اجرا شود. در سیستمهای توزیعشده، انجام اعمال اساسی سیستم عامل بسیار دشوارتر و پیچیدهتر است. جایگزینکردن صفحه کلید و ماوس با رابطهای تشخیص گفتار و تشخیص دستخط شاخه دیگری از تحقیقات سیستم عامل است که در سالهای اخیر مورد توجه قرار گرفته است.