Системный уровень является переходным. Программы этого уровня обеспечивают взаимодействие других программ компьютера с программами базового уровня и непосредственно с аппаратным обеспечением. От программ этого уровня зависят эксплуатационные показатели всей вычислительной системы. При подсоединении к компьютеру нового оборудования на системном уровне должна быть установлена программа, обеспечивающая для остальных программ взаимосвязь с устройством. Конкретные программы, предназначенные для взаимодействия с конкретными устройствами, называют драйверами.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Благодаря им можно вводить данные в вычислительную систему, руководить ее работой и получать результат в удобной форме. Они являются средствами обеспечения пользовательского интерфейса, от них зависит удобство и производительность работы с компьютером.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.
Операционная система – это комплекс программ, обеспечивающих:
· управление ресурсами, т.е. согласованную работу всех аппаратных средств компьютера;
· управление процессами, т.е. выполнение программ, их взаимодействие с устройствами компьютера, с данными;
· пользовательский интерфейс, т.е. диалог пользователя с компьютером, выполнение определенных простых команд-операций по обработке информации.
Операционная система имеет машинно-зависимое ядро (kernel) – небольшой набор программ, с помощью которых осуществляется более эффективное управление ЭВМ конкретного типа. Наличие ядра операционной системы – это первое условие для возможности практической работы пользователя с вычислительной системой.
Ядро операционной системы выполняет следующие функции:
· управления памятью, процессами ввода-вывода, файловой системой;
· организации взаимодействия и диспетчеризации процессов;
· учета использования ресурсов;
· обработки команд и т.д.
Остальные программы операционной системы стараются делать максимально независимыми от конкретной ЭВМ. Свойство программы, позволяющее переносить её без переделок с одной ЭВМ на другую, называется переносимостью (portability). Если программа является машинно-зависимой, то её переносимость определяется степенью совместимости ЭВМ. Переносимость программ имеет прямое влияние на коммерческие возможности программных продуктов.
1.3.2. ПОЛЬЗОВАТЕЛЬСКИЙ И ПРОГРАММНЫЙ ИНТЕРФЕЙСЫ
Для упрощения доступа к ресурсам ЭВМ операционные системы поддерживают пользовательский и программный интерфейсы (рис. 1.2).
Пользовательский интерфейс (user interface) – это набор команд и сервисных услуг, которые упрощают пользователю работу с ЭВМ.
Программный интерфейс (program interface) – это набор процедур, которые упрощают для программиста управление ЭВМ.
1.3.3. ПРОЦЕССОРНОЕ ВРЕМЯ И ОРГАНИЗАЦИЯ ПАМЯТИ
Для организации многозадачного режима операционная система должна некоторым образом распределять время работы процессора между одновременно работающими программами. Обычно используется так называемый вытесняющий режим многозадачной работы. При вытесняющем режиме каждая программа непрерывно работает в течение строго определённого промежутка времени – кванта времени, по истечении которого процессор переключается на другую программу. Так как квант времени очень небольшой, то при достаточной производительности процессора создаётся иллюзия одновременной работы всех программ.
Одной из главных задач операционной системы является управление памятью. Когда основной памяти не хватает, все данные, которые не используются в данный момент, записываются в особый файл подкачки. Память, представленная файлом подкачки, называется внешней страничной памятью (external page storage). Совокупность основной и внешней страничной памяти называется виртуальной памятью (virtual memory). Однако для программиста виртуальная память выглядит как единое целое, то есть рассматривается как неупорядоченный набор байтов. В этом случае говорят, что используется линейная адресация памяти.
1.3.4. СТРУКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ
Современные операционные системы, как правило, имеют многоуровневое строение (рис. 1.3).
Непосредственно с аппаратурой работает ядро операционной системы. Ядро (kernel) – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы.
Ядро определяет программный интерфейс. На втором уровне находятся стандартные программы операционной системы и оболочка, которые работают с ядром и предоставляют пользовательский интерфейс. Программы второго уровня стараются делать машинно-независимыми. В идеале замена ядра равнозначна замене версии операционной системы.