Системное программное обеспечение
Назначение операционных систем
Особое место в программном обеспечении занимают операционные системы.
Операционная система — это комплекс программ, обеспечивающих:
• управление устройствами и задачами (процессами) — согласованную работу всех аппаратных средств компьютера и выполняемых программ;
• работу с файлами — организацию хранения и обработки файлов на внешних носителях;
• пользовательский интерфейс — диалог пользователя с компьютером.
Кроме того, существуют специальные программы, выполняющие некоторые дополнительные услуги системного характера (например, управление внешними устройствами, архивирование файлов, защиту от вирусов, «лечение» и оптимизацию дисков и т. д.). Эти программы называются утилитами.
Управление устройствами
Мы уже знаем, что современный компьютер может включать много (иногда десятки) устройств — ресурсов компьютера. Эти устройства иногда работают одновременно, иногда «встают в очередь» друг за другом. Это и центральный процессор, и несколько видов устройств оперативной памяти, и периферийные (внешние) устройства, среди которых;
• устройства ввода (клавиатура, мышь, сканер и др.);
• устройства вывода (монитор, принтер, графопостроитель и др.);
• внешние запоминающие устройства (дисководы для магнитных и оптических дисков, устройства для работы с флэш-памятью);
• устройства управления (мышь, джойстик и др.);
• мультимедийные устройства.
Все это оборудование должно работать согласованно, по заданной программе, в едином режиме. При этом скорости работы различных устройств различаются в сотни, тысячи и более раз. Деятельность операционной системы по управлению ресурсами можно уподобить действиям дирижера, которому надо управлять огромным оркестром, включающим десятки различных инструментов, чтобы они вступали в игру в нужный момент и отдельные звуки переплетались бы в стройную мелодию.
Для управления работой внешних устройств в состав операционной системы входят специальные программы, которые называются драйверами внешних устройств. Для каждого типа и каждой конкретной модели внешнего устройства существует свой драйвер. Иногда ОС автоматически подбирает подходящий драйвер, иногда об этом приходится заботиться пользователю.
Управление процессами
В память компьютера может быть загружено одновременно несколько программ, которые будут выполняться частями параллельно. Иногда мы сознательно поручаем это нашему ПК, запустив, скажем, одновременно почтовую программу и текстовый процессор. Но даже если мы этого не делаем, все равно: на экране идут часы, в то же время компьютер производит незаметные, но совершенно необходимые операции по защите от вирусов, защите от удаленных хакерских атак по сети, контролю состояния устройств и т. д.
Каждую выполняемую программу называют процессом. Отсюда термин «управление процессами». Организовать параллельное выполнение программ очень непросто, поскольку они обращаются к одним и тем же ресурсам — к центральному процессору, к различным видам памяти, к внешним устройствам. Решает эту задачу операционная система.
Компьютеры первых двух поколений работали в однозадачном режиме: пока не заканчивалось выполнение очередной программы, другие программы в компьютер не загружались. При этом значительная часть времени уходила на механический ввод программы и данных с перфорационного носителя, вывод на бумажную печать, чтение и запись на магнитные носители. Все это время процессор «простаивал», ожидая, когда свою работу закончат его «медленные сотрудники».
Ситуация изменилась с появлением на ЭВМ третьего поколения контроллеров внешних устройств. Стало возможным освободить процессор от управления «неповоротливыми» механизмами, переложив эту задачу на контроллеры. А процессор получил возможность все время заниматься своей основной работой — обработкой данных. Пока одна программа (процесс) ожидает, например, завершения ввода/вывода данных, другая программа может занимать процессор. При этом состояние первого, прерванного процесса должно быть сохранено, чтобы его в нужный момент можно было восстановить и продолжить выполнение программы. Такой режим работы называется многозадачным режимом.
Наиболее сложны многопользовательские многозадачные операционные системы, применяемые в многотерминальных системах — вычислительных комплексах, в которых к одному общему компьютеру подключается несколько устройств ввода/вывода или персональных компьютеров (терминалов) для одновременной работы многих пользователей.
Пользовательский интерфейс
Важная функция ОС — поддержка пользовательского интерфейса. В настоящее время общепринятым стал графический интерфейс, поддерживаемый системами меню (по крайней мере, в мире ПК).
Наибольшее число ПК во всем мире работают под управлением ОС Windows, с которой вы наверняка знакомы. Тем не менее напомним основные правила пользовательского интерфейса. Взаимодействие пользователя с ОС происходит по схеме:
1) ОС находится в состоянии ожидания команды пользователя;
2) пользователь отдает команду в какой-либо форме (чаще всего — через меню);
3) ОС исполняет команду или сообщает о невозможности выполнения;
4) ОС возвращается в состояние ожидания следующей команды пользователя; и т. д.
Графический интерфейс, который пришел на смену некогда существовавшему символьному, позволяет пользователю выбирать объекты для команд с помощью графических образов этих объектов. Когда мы запускаем современную версию ОС Windows, перед нами на экране дисплея возникает Рабочий стол (рис. 4.5), на котором расположено несколько графических объектов — символических изображений тех программ, с которыми пользователь работает наиболее часто. Кроме того, в нижней части экрана находится панель задач, содержащая ряд кнопок для запуска программ.
Меню — один из основных элементов графического интерфейса. С внедрением панелей с ниспадающими и каскадными меню удалось обеспечить комфортную работу любому пользователю. Каскадные меню предоставляют пользователю список возможных действий с выделенным информационным объектом. На рис. 4.6 видно, что выполняется процедура отправки текстового документа в виде сообщения электронной почты. В зависимости от текущего состояния объекта содержание меню может изменяться. В одном случае некоторые из пунктов могут стать недоступными для выбора, в другом может измениться набор пунктов меню. Меню в приложениях могут настраиваться пользователем.