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