Классификация программных средств
ЭВМ является исполнителем программ.
Программное обеспечение (ПО) [software]– это просто совокупность программ, используемых для решения задач на ЭВМ. ПО делится на системное и прикладное.
Системное ПО [systemsoftware] предназначено для разработки и выполнения программ, а также для предоставлению пользователю некоторых средств общего назначения для управления ЭВМ. Системное ПО – необходимое дополнение к аппаратной части ЭВМ.
Рис. 1. Классификация программного обеспечения
Источник: [2].
Задачей прикладного ПО является автоматизация конкретного вида человеческой деятельности.
Главное место в наборе системных программ занимают операционные системы. Операционная система – это неотъемлемая часть ЭВМ. Она снабжает другие программы и пользователя необходимыми средствами для управления ЭВМ.
Сервисные системы расширяют возможности операционной системы. (DOS-Shell или NortonCommander для DOS, NortonUtilitiesforWindows, многочисленные оболочки для UNIX-семейства ОС).
Инструментальные системы предназначены для решения задач, которые встречаются в составе любой проблемы, ориентированной на применение ЭВМ, и не связаны с конкретной практической областью.
Системы техобслуживания используются для облегчения тестирования оборудования ЭВМ и применяются специалистами по аппаратуре ЭВМ.
Все программные средства можно разделить на внутреннее и внешнее ПО.
Программы первого уровня хранятся в ПЗУ и работают непосредственно с аппаратурой ЭВМ. Таким образом, все подобные программы являются неотъемлемой частью конкретной ЭВМ. Поэтому набор таких программ называют внутренним программным обеспечением. Для ПЭВМ совокупность этих программ носит название BIOS (BaseInputOutputSystem – базовая система ввода-вывода). В состав BIOS входят:
драйверы стандартных внешних устройств;
тестовые программы для контроля работоспособности оборудования;
программа начальной загрузки.
Все эти программы начинают работать при включении ЭВМ: сначала тестируют память, затем проверяют наличие внешних устройств и их работоспособность и после всего передают управление операционной системе.
Источник: [10].
Драйвер [driver] – программа, обслуживающая внешнее устройство. Она предоставляет пользователю или программам более высокого уровня набор функций – программный интерфейс – для управления конкретным внешним устройством. Кроме того, драйвер обрабатывает прерывания от обслуживаемого устройства.
Второй уровень принадлежит операционным системам. В состав операционной системы обычно также входят дополнительные драйверы, которые обеспечивают работу с внешними устройствами, не известными внутренним драйверам. Операционная система предоставляет программам более высокого уровня набор функций (программный интерфейс), а пользователям – набор утилит и некоторые инструментальные программы (пользовательский интерфейс).
К третьему уровню относятся все остальные программы.
Программы второго и третьего уровней хранятся в файлах.
Программное обеспечение первого уровня является машинно-зависимым [computer-independent]. То есть для каждого микропроцессора или семейства ЭВМ набор данных программ уникален.
Операционная система имеет машинно-зависимое ядро [kernel] – небольшой набор программ, с помощью которых осуществляется более эффективное управление ЭВМ конкретного типа (семейство ЭВМ, тип процессора, конкретные аппаратные компоненты ЭВМ и внешние устройства). Остальные программы операционной системы стараются делать максимально независимыми от конкретной ЭВМ. Свойство программы, позволяющее переносить её без переделок с одной ЭВМ на другую, называется переносимостью [portability]. Если программа является машинно-зависимой, то её переносимость определяется степенью совместимости ЭВМ. Переносимость программ имеет прямое влияние на коммерческие возможности программных продуктов.
Операционная система [operatingsystem] – это комплекс программ, обеспечивающий управление ресурсами ЭВМ и процессами, которые используют эти ресурсы при вычислениях.
Ресурс – это любой логический или аппаратный компонент ЭВМ. Основными ресурсами являются процессорное время и оперативная память. Ресурсы могут принадлежать одной или нескольким внешним ЭВМ, к которым операционная система обращается, используя вычислительную сеть. Процесс – это последовательность действий, предписанных программой.
Управление ресурсом состоит из двух функций:
упрощение доступа к ресурсу;
распределение ресурсов между конкурирующими за них процессами.
Для решения первой задачи операционные системы поддерживают пользовательский и программный интерфейсы. Для решения второй операционные системы используют различные алгоритмы управления виртуальной памятью и процессором.
Операционные системы характеризуются признаками:
количество пользователей, одновременно обслуживаемых системой (однопользовательские и многопользовательские);
число одновременно выполняемых процессов (однозадачные и многозадачные);
тип используемой вычислительной системы (однопроцессорные, многопроцессорные, сетевые, распределённые).
Пример
Операционная система Windows98 является многозадачной, ОС Linux – многопользовательской, MS-DOS однозадачной и, следовательно, однопользовательской. Операционные системы WindowsNT и Linux могут поддерживать многопроцессорные ЭВМ с 16 процессорами. Операционная система NovellNetWare является сетевой, однако, встроенные сетевые средства имеют также WindowsNT и Linux.
Пользовательский и программный интерфейсы
Для упрощения доступа к ресурсам ЭВМ операционные системы поддерживают пользовательский и программный интерфейсы.
Пользовательский интерфейс [userinterface] – это набор команд и сервисных услуг, которые упрощают пользователю работу с ЭВМ.
Источник [2].
Программный интерфейс [programinterface] – это набор процедур, которые упрощают для программиста управление ЭВМ.
Пример
Операционная система Windows98 предоставляет пользователю графический интерфейс, который представляет собой (с точки зрения пользователя) набор правил для наглядного управления ЭВМ. Кроме графического интерфейса пользователю предоставляется также командный интерфейс, то есть набор команд определённого формата. Для этого в системном меню имеется пункт «Выполнить». Например, чтобы скопировать файл на дискету, нужно набрать:
copy file a:\.
Основной упор в Windows98 сделан на графическом интерфейсе. В операционной системе Linux также имеются две возможности для управления ЭВМ, но, как правило, предпочтение отдаётся командам.
Наборсистемныхфункцийв Windows98 носитназвание API (Application Programming Interface). В этом наборе имеются более тысячи процедур для решения разных системных задач. Например, если в программе на языке Си написать
MessageBox (wnd, “Форматирование винчестера, вы уверены?”,” ”, MB_OK);
то, дойдя до этого места, программа высветит небольшое окно с данным сообщением и кнопкой ОК и будет ожидать нажатия этой кнопки.
Процессорное время и организация памяти
Для организации многозадачного режима операционная система должна некоторым образом распределять время работы процессора между одновременно работающими программами. Обычно используется так называемый вытесняющий режим многозадачной работы. При вытесняющем режиме каждая программа непрерывно работает в течение строго определённого промежутка времени кванта времени, по истечении которого процессор переключается на другую программу. Так как квант времени очень небольшой, то при достаточной производительности процессора создаётся иллюзия одновременной работы всех программ.
Одной из главных задач операционной системы является управление памятью. Когда основной памяти не хватает, все данные, которые не используются в данный момент, записываются в особый файл подкачки. Память, представленная файлом подкачки, называется внешней страничной памятью [external page storage]. Совокупность основной и внешней страничной памяти называется виртуальной памятью [virtualmemory]. Однако для программиста виртуальная память выглядит как единое целое, то есть рассматривается как неупорядоченный набор байтов. В этом случае говорят, что используется линейная адресация памяти.
Пример
Операционные системы Windows98 и Linux используют линейную адресацию виртуальной памяти. В операционной системе MS-DOSиспользовалась нелинейная адресация основной памяти. Основная память имела сложную структуру, которую приходилось учитывать при программировании. Файлы подкачки системой MS-DOS не поддерживались.
Структура операционной системы
Современные операционные системы, как правило, имеют многоуровневое строение (см. рис. 3.4).
Непосредственно с аппаратурой работает ядро операционной системы. Ядро [kernel] – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы.