Наверное, ни одно из существующих на настоящий момент определений понятия «операционная система» не может претендовать на универсальность и полноту. С учетом данной оговорки остановимся на следующей формулировке:
Операционная система (ОС) - это комплекс специальных программных средств, предназначенных для управления загрузкой, запуском и выполнением других (пользовательских) программ, а также для планирования и управления вычислительными ресурсами ЭВМ.
Важно подчеркнуть то, что операционная система - это именно комплекс программ, неоднородный по характеру и многоплановый по уровню. Этот комплекс программ динамичен по своему составу: из него можно удалять и в него добавлять определенные части. Та часть программ, которая взаимодействует с аппаратными средствами непосредственно и потому должна постоянно хранится в компьютере, составляет ядро операционной системы. В частности, программное обеспечение, входящее в состав ядра, отвечает за проверку работоспособности компьютера и выполнение элементарных (базовых) операций, связанных с работой дисплея, клавиатуры, магнитных накопителей и т.п.
Операционная система образует автономную среду, не связанную ни с одним из языков программирования. Любая прикладная программа связана с операционной системой и может эксплуатироваться только на тех компьютерах, где имеется аналогичная системная среда (или должна быть обеспечена возможность конвертации - преобразования программ).
Очевидно, что операционная система должна храниться на внешнем запоминающем устройстве, к которому может быть обеспечен относительно быстрый доступ, Например, на жестком диске, или на специальном гибком диске, который называется системным'. При включении компьютера операционная система автоматически загружается с диска в оперативную память.
Операционная система MS DOS, являвшаяся до последнего времени наиболее популярным продуктом данного класса для персональных компьютеров, была создана фирмой Microsoft в 1981 г. Начиная с 1996 г. MS DOS распространяется в составе Windows 9х - 32-разрядной многозадачной и многопоточной операционной системы с графическим интерфейсом и расширенными сетевыми возможностями.
Операционная система как расширенная машина: использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода/вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т.п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода/вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя.
Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи, - это, конечно, операционная система. Точно так же, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.
С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной или виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.
Операционная система как система управления ресурсами: в соответствии со вторым подходом функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы. Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач:
· планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов - и в каком количестве необходимо выделить данный ресурс;
· отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов - какое количество ресурса уже распределено, а какое свободно.