Часть кода ос которая непосредственно взаимодействует с аппаратным обеспечением компьютера
Компьютерная программа - это алгоритм решения определенной задачи на языке, понятном компьютеру. Программное обеспечение состоит из операционной системы, языков программирования и применяемых программ.
Операционная система (ОС) - это комплекс специальных программных средств, предназначенных для управления загрузкой, запуском и выполнением прикладных программ, вводом-выводом данных, а также для планирования и управления вычислительными ресурсами компьютера.
Та часть ОС, которая взаимодействует с аппаратными средствами непосредственно и поэтому постоянно хранится в компьютере, называется ядром ОС. Программное обеспечение, входящее в состав ядра ОС, отвечает за проверку работоспособности компонент компьютера и выполнения элементарных операций, связанных с работой дисплея, клавиатуры, магнитных накопителей и др. При включении компьютера ОС автоматически загружается в оперативную память.
Кроме ядра, ОС содержит сервисные программы для тестирования оборудования, изменения параметров его функционирования, форматирование магнитных дисков и т.д.
Каждая прикладная программа связана с определенной ОС и может эксплуатироваться только на тех компьютерах, где есть соответствующая ОС.
ОС как система управления ресурсами (процессорами, оперативной памятью, внешними устройствами, устройствами передачи данных между устройствами) обеспечивает максимальную эффективность их функционирования. Управление ресурсами связано с решением двух общих задач, не зависящих от типа ресурса:
1) планирование ресурса, т.е. определение того, кому, когда и в каком количестве необходимо предоставить этот ресурс;
2) отслеживание состояния ресурса, то есть оперативное информирование о занятости ресурса.
По количеству задач, которые могут выполняться одновременно, ОС разделяют на те, что выполняют одно задание (MS DOS, MSX), и те, что способны выполнять одновременно много задач (OS/2, UNIX, Windows 95), а по количеству пользователей, работающих одновременно, - на ОС, которые взаимодействуют с одним пользователем (MS DOS, Windows 3.x), и те, что взаимодействуют со многими (UNIX, Windows NT).
Файловая система обеспечивает взаимодействие программ и физических устройств ввода-выводу. ее основные функции можно разделить на две группы: 1) для работы с файлами (создание, удаление, изменение атрибутов), 2) для работы с данными, хранящимися в файлах (чтение, запись, поиск и т.п.).
Основной атрибут файла - его имя. Это символьная строка, длина которого зависит от конкретной файловой системы (например, в MS DOS - 11 символов, в Windows NT - 255 символов). Замечание: использование в именах файлов букв кириллицы достаточно часто приводит к проблемам.
Языки программирования - это инструментальные средства, предназначенные для создания программного обеспечения. Программа разрабатывается на понятном человеку языке формализованной, а затем с помощью транслятора превращается в машинные коды.
Есть два типа трансляторов: интерпретаторы, обрабатывающих команды непосредственно в процессе выполнения программы, и компиляторы, что переделывают программу в машинные коды к ее выполнению. Программы, интерпретируются, работают медленнее, чем программы, которые компилируются. Компиляторы сохраняют результаты обработки в отдельных файлах, которые можно использовать на других компьютерах.
Прикладное программное обеспечение - это программы, предназначенные для решения конкретных задач или классов задач в определенной О.
Прикладные программы предназначены для решения конкретных задач, стоящих перед пользователями, - как специализированных, так и общеиспользуемых. Самые распространенные типы прикладных программ:
1) текстовые процессоры: введение (набор с клавиатуры, сканирование и распознавание, голосовой ввод), редактирование, сохранение документа, публикация (печать, электронная публикация, поиск и открытие сохраненного документа), перевод;
2) процессоры электронных таблиц: обработка таблиц, содержащих информацию, проведение расчетов на их основе, обеспечения визуализации этой информации и результатов ее обработки. Информация структурируется непосредственно при вводе данных;
3) графические редакторы: программы, предназначенные для обработки изображений, представленных в электронной форме;
4) системы управления базами данных;
5) архиваторы: программы, предназначенные для уменьшения объема памяти, необходимой для хранения информации;
6) антивирусные программы: программные средства, способные находить и обезвреживать компьютерные вирусы.
в настоящее время разработаны различные ИС, построенные как для высшего звена управления соответствующих организационных структур, так и для отделов предприятий в виде автоматизированных рабочих мест.
Выделено три класса типовых АРМ:
3) технического и вспомогательного персонала. Комплектация АРМ зависит от назначения и тематики
решаемых задач (административно-организационные, профессионально-творческие, технические и др.). Например, административно-организационная работа - контроль исполнения, анализ текущего состояния дел и планирования работы; профессионально-творческая - разработка документов, анализ информации; техническая работа - получение, передача, сохранение, печать документов, отчетов, контроль за движением документов.
При проектировании ПО АРМ необходимо соблюдать принцип ориентации программных средств, отвечающих профессиональным интересам специалиста.
Проектирование проиллюстрируем АРМ на примере всем понятных процедур расчета заработной платы на предприятии.
Начинается проектирование с создания логической модели БД по результатам исследования требований пользователей соответствующих служб, что затем отражается в ряде внешних моделей, объединенных впоследствии в единую концептуальную модель, что соответствует общей схеме баз данных.
АРМ "Расчет заработной платы" обрабатывает информацию о расчет заработной платы сотрудников предприятия. По справочникам "Сотрудники", "Ставка", "Тарифы", "Подразделения", "Должности", операциями начислений и удержаний по фонду заработной платы и выполненными работами производится начисление персональной заработной платы каждому работнику предприятия.
Функции АРМ сводятся к меню, что может иметь следующие блоки: "Система", "Редактировать", "Расчеты", "Сервис" с соответствующими подменю (рис. 4.2).
функционально-информационной модели бизнес-процесса інфологічна модель этого АРМ на рис. 4.2 определяет сущности, их свойства (атрибуты) и отношения между ними (связи), выражаемых глаголом и размещаются над линией связи на диаграмме.
Все оконечные и сетевые устройства, подключенные к сети Интернет, функционируют благодаря операционной системе (ОС).
При включении компьютер загружает ОС в ОЗУ (обычно с диска). Часть кода ОС, которая непосредственно взаимодействует с аппаратным обеспечением компьютера, называется ядром ОС. Часть, которая обеспечивает связь между приложениями и пользователем, называется оболочкой. Пользователь взаимодействует с оболочкой посредством интерфейса командной строки (CLI) или графического интерфейса пользователя (GUI).
При использовании интерфейса командной строки происходит непосредственное обращение к системе в текстовом режиме методом ввода команд с клавиатуры в командную строку. Система выполняет команду, часто выводя выходные данные в текстовом формате. Графический интерфейс обеспечивает взаимодействие с системой в среде, где используются графические изображения, мультимедиа и текст. Действия выполняются с помощью изображений на экране. Графический интерфейс удобнее и не требует таких знаний структуры команд, как интерфейс командной строки. Именно поэтому многие используют графический интерфейс (GUI). В большинстве операционных систем есть оба интерфейса.
Для получения дополнительной информации нажмите на изображение оборудования, ядра ОС и оболочки.
Доступ к большинству операционных систем оконечных устройств осуществляется с помощью графического интерфейса пользователя, включая доступ к MS Windows, MAC OS X, ОС Linux, Apple iOS, Аndroid и другим.
Операционная система на домашних маршрутизаторах обычно называется микропрограммой. Наиболее распространенный способ настройки домашнего маршрутизатора — доступ к графическому интерфейсу через веб-браузер. На большинстве домашних маршрутизаторов при появлении новых функций или уязвимых мест в безопасности активируется обновление микропрограмм.
Сетевые устройства инфраструктуры работают на основе сетевой операционной системе. Сетевая операционная система, используемая на устройствах Cisco, называется операционной системой сетевого взаимодействия Cisco (IOS). Операционная система сетевого взаимодействия Cisco (IOS) — это общий термин для группы сетевых операционных систем, используемых на сетевых устройствах Cisco. Операционная система Cisco IOS используется в большинстве устройств Cisco, независимо от их типа и размеров. Наиболее распространённый способ доступа к этим устройствам — использование интерфейса командной строки (CLI).
В этой главе мы подробно рассмотрим топологию сетевого коммутатора малого бизнеса. Топология состоит из двух коммутаторов и двух ПК. На ней мы продемонстрируем использование CISCO IOS с помощью интерфейса командной строки (CLI).
Взаимодействие ОС и аппаратного обеспечения следует рассматривать с двух сторон. С одной стороны, ОС должна реализовывать средства взаимодействия с аппаратным обеспечением, с другой стороны - архитектуру компьютера надо проектировать с учетом того, что на компьютере будет функционировать ОС.
Интерфейс аппаратного обеспечения должны быть полностью скрыт от прикладных программ и пользователей, всю работу с ним выполняет ОС. Рассмотрим особенности аппаратной поддержки этого интерфейса и его использование в современных ОС.
Средства аппаратной поддержки операционных систем
Современные аппаратные архитектуры компьютеров реализуют базовые средства поддержки операционных систем. К ним принадлежат:
-привилегированный режим процессора,
-средства переключения задач,
-поддержка управления памятью (механизмы трансляции адресов, защита памяти),
-защита устройств ввода-вывода,
-базовая система ввода-вывода (BIOS).
Рассмотрим эти средства подробнее.
Система прерываний является основным механизмом, который обеспечивает функционирование ОС. С помощью прерываний процессор получает информацию о событиях, не связанных с основным циклом его работы (получением инструкций по памяти и их выполнением). Прерывания бывают двух типов: аппаратные и программные.
Аппаратное прерывание - это специальный сигнал (запрос прерывания, IRQ), который передается процессору от аппаратного устройства.
К аппаратным прерываниям принадлежат:
-прерывание введения-вывода, которые поступают от контролера периферийного устройства; например, такое прерывание генерирует контролер клавиатуры при нажатии на клавишу;
-прерывание, связанные с аппаратными или программными ошибками (такие прерывания возникают, например, в случае сбоя контролера диска, доступа к запрещенной области памяти или деление на нуль).
Программные прерывания генерирует прикладная программа, выполняя специальную инструкцию прерывания. Такая инструкция есть в системе команд большинства процессоров. Обработка программных прерываний процессором не отличается от обработки аппаратных прерываний.
Если прерывания состоялось, то процессор немедленно передает управление специальной процедуре - обработчику прерывания. После выхода из обработчика процессор продолжает выполнение инструкций прерванной программы. Различают два типа прерываний в зависимости от того, какая инструкция будет выполнена после выхода из обработчика:
-для отказов повторяется инструкция, которая вызвала прерывание,
-для ловушек - выполняется следующая инструкция.
Все прерывания ввода-вывода и программные прерывания принадлежат к категории ловушек, большинство прерываний через ошибки относятся к отказам.
Если ОС не занятая выполнениям какой-нибудь задачи, она ожидает прерывание, которое и привлекает ее к работе. Поэтому можно считать, что современные ОС управляются прерываниями.
Для реализации привилегированного режима процессора в одном из его регистры предусмотрены специальный бит (бит режима), который показывает, в каком режиме находится процессор. В случае программного или аппаратного прерывания процессор автоматически переключается в привилегированный режим, и именно поэтому ядро ОС (которое состоит из обработчиков прерываний) всегда получает управление в этом режиме. За любой попытки непосредственно выполнить привилегированную инструкцию в режиме пользователя происходит аппаратное прерывание.
Средства переключения задач дают возможность сохранять содержимое регистров процессора (контекст задачи) в случае прекращения задачи и восстанавливать данные перед ее дальнейшим выполнением.
Механизм трансляции адресов обеспечивает преобразование адресов памяти, с которыми работает программа, у адреса физической памяти компьютера. Аппаратное обеспечение генерирует физический адрес, используя специальные таблицы трансляции.
Защита памяти обеспечивает проверку прав доступа к памяти во время каждой попытки его получить. Средства защиты памяти интегрированные с механизмами трансляции адресов: в таблицах трансляции поддерживается информация о правах, необходимых для их использования, и о лимите (размеры участка памяти, к которой можно получить доступ с их помощью). Невозможно получить доступ к памяти сверх лимита или при отсутствии прав на использование таблицы трансляции.
Системный таймер является аппаратным устройством, которое генерирует прерывание таймера через определенные промежутки времени. Такие прерывания обрабатывает ОС; информацию от таймера чаще всего используют для определения времени переключения задач.
Защита устройств ввода-вывода основывается на том, что все инструкции ввода-вывода определены как привилегированные. Прикладные программы осуществляют ввод-вывод не прямо, а при посредничестве ОС.
Базовая система ввода-вывода (BIOS) - служебный программный код, который сохраняется в постоянном запоминающем устройстве и предназначен для изоляции ОС от конкретного аппаратного обеспечения. Укажем, что средства BIOS не всегда дают возможность использовать все возможности архитектуры: например, процедуры BIOS для архитектуры IА-32 не работают в защищенном режиме. Поэтому современные ОС используют их только для начальной загрузки системы.
Ключевые термины: программные ресурсы, аппаратные ресурсы, ядро операционной системы, сетевые операционные системы, распределенные операционные системы, подготовка и установка ОС.
Ежедневно работая с компьютером, мы зачастую даже не задумываемся о том, что одним нажатием клавиши заставляем активироваться миллионы мельчайших элементов, принуждаем работать сложнейшую логику, открываем и закрываем множество скрытых программ и функций. Об операционной системе мы задумываемся лишь тогда, когда нам не хватает функций, когда выходят новые версии уже используемых операционных систем или же разрабатываются кардинально новые системы. Тогда мы устанавливаем новую систему, открываем для себя новые возможности информационного мира.
Операционная система (ОС) - комплекс программ, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных.
Все функции ОС можно разделить на две категории: интерфейсные функции и внутренние функции.
• управление аппаратными средствами, устройствами ввода-вывода;
- • файловая система;
- • поддержка многозадачности (разделение использования памяти, времени выполнения);
- • ограничение доступа, многопользовательский режим;
- • сеть.
- • обработка прерываний;
- • виртуальная память;
- • «планировщик» задач;
- • буферы ввода - вывода;
- • обслуживание драйверов устройств.
Ресурсы операционной системы можно разделить на две группы (рис 2.):
- 1) программные ресурсы (процессы, виртуальное адресное пространство, подсистема ввода-вывода);
- 2) аппаратные ресурсы (процессоры, память, устройства).
Виртуальное адресное пространство
Устройства ввода - вывода Дисковая память
Рис. 2. Классификация ресурсов
Практически каждому аппаратному ресурсу соответствует некоторый программный ресурс, тесно с ним связанный (например, процессор и процесс).
При включении компьютер загружает ОС в ОЗУ (обычно с диска). Часть кода ОС, которая непосредственно взаимодействует с аппаратным обеспечением компьютера, называется ядром ОС. Эти модули обычно поддерживают управление процессами, памятью, устройствами ввода-вывода. Код ядра операционной системы исполняется в привилегированном режиме работы процессора.
Часть, которая обеспечивает связь между приложениями и пользователем, называется оболочкой.
Операционные системы полностью контролируют локальные аппаратные ресурсы. Они рассчитаны на одного пользователя. Пользователь ОС может одновременно выполнять несколько задач. Операционная система отслеживает, какие ресурсы каким приложением используются.
Для работы с ресурсами, не подключенными к компьютерной системе непосредственно, нужно дополнительное программное обеспечение, обеспечивающее отправку и получение данных по сети. Данное ПО, которое называется редиректором, может входить в состав ОС или устанавливаться отдельно, в качестве сетевого клиента. При наличии такого ПО ОС превращается в сетевую операционную систему (NOS).
В сетевую ОС входит сложное программное обеспечение планирования и управления действиями пользователя, которое позволяет распределять ресурсы между многочисленными пользователями и использовать их так, как будто они непосредственно входят в систему.
Для работы с большинством операционных систем пользователь должен приобрести коммерческую лицензию и согласиться выполнять ее требования. Однако существуют несколько операционных систем, которые предоставляются по другой схеме лицензирования, так называемой общедоступной лицензии GNU, или стандартной общедоступной лицензии (GPL).
Коммерческие лицензии, как правило, не позволяют каким-либо образом менять программу. Windows ХР, ОС Mac X и UNIX относятся к категории коммерческих.
Напротив, общедоступная лицензия GPL позволяет конечным пользователям при желании менять код в соответствии с требованиями своей среды. В некоторые распространенные операционные системы, которые распространяются по лицензии GPL, входит код Linux и BSD.
Операционные системы прежде всего классифицируются по степени централизации (связности) (рис. 3).
Рис. 3. Классификация ресурсов по степени централизации
Эта классификация принимает во внимание особенности аппаратных платформ, для которых операционные системы создаются.
Централизованные (локальные) операционные системы управляют ресурсами единственного локального компьютера. Они включают два различных подкласса:
- • однопроцессорные системы;
- • многопроцессорные системы.
Сетевые операционные системы предоставляют пользователю сети некоторую виртуальную машину, работать с которой проще, чем с реальной сетевой аппаратурой. Однако пользователь всегда выполняет специальные операции для доступа к сетевым ресурсам.
Сетевые системы включают дополнительные компоненты:
Распределенные операционные системы предоставляют пользователю сети единую централизованную виртуальную машину, которая дает максимальную степень прозрачности сетевых ресурсов. Распределенные системы объединяют все компьютеров сети, для работы в тесной кооперации. При работе в таких системах пользователь, запускающий приложение, не знает, на каком компьютере оно реально выполняется.
Классификация по особенностям алгоритмов управления ресурсами имеет следующие аспекты.
- 1. Поддержка многозадачности, а именно:
- • однозадачные операционные системы выполняют функцию предоставления пользователю виртуальной машины, делая простым и удобным процесс его взаимодействия с компьютером;
- • многозадачные операционные системы дополнительно управляют разделением совместно используемых ресурсов. В первую очередь они дают возможность одновременно исполнять несколько задач на одном процессоре.
По областям использования многозадачные операционные системы могут быть разделены на три типа:
- 1) операционные системы пакетной обработки. Они работают с пакетами задач, причем переключение процессора с одной задачи на другую происходит лишь в том случае, если активная задача сама отказывается от процессора;
- 2) операционные системы разделения времени. Такие системы предоставляют каждой из задач квант процессорного времени. При этом время ответа программы обычно оказывается достаточно приемлемым, что позволяет использовать эти системы в качестве диалоговых;
- 3) операционные системы реального времени. Они применяются для управления некоторыми технологическими объектами и процессами. В них существует предельно допустимое время, в течение которого программа сама должно ответить. Операционные системы реального времени характеризуются тем, что в ответ на события они должны гарантированно реагировать до определенного времени. Как и в предыдущем случае, компоненты работают в привилегированном режиме.
Рассмотрим такой важный этап, как подготовка и установка ОС.
ОС устанавливается в определенном секторе жесткого диска, именуемом разделом. Существуют различные методы установки. Выбор делается в зависимости от конфигурации системного программного обеспечения, установленной ОС и требований пользователя. Существует четыре основных варианта установки новой ОС.
1. Установка с нуля
Установка «с нуля» выполняется на новую (только что собранную или купленную) систему или при отсутствии метода обновления существующей ОС до требуемой. В процессе из раздела установки ОС удаляются все данные. Прикладные программы приходится переустанавливать. В новой компьютерной системе ОС приходится устанавливать с нуля. Этот же метод используется при повреждении установленной ОС.
2. Обновление
Если платформа ОС не меняется, чаще всего возможно выполнить обновление. При этом настройки конфигурации системы, приложения и данные сохраняются. Файлы старой ОС просто заменяются файлами новой.
3. Многовариантная загрузка
На одном компьютере можно установить несколько ОС и, таким образом, создать систему с многовариантной загрузкой. Каждая ОС находится в отдельном разделе, у каждой могут быть собственные файлы и настройки конфигурации. При загрузке открывается меню выбора нужной ОС. Одновременно можно запустить только одну ОС, которая будет полностью контролировать аппаратное обеспечение.
4. Виртуализация
Технология виртуализации часто используется на серверах. Она позволяет запускать несколько копий ОС на одном комплекте аппаратного обеспечения, создавая, таким образом, несколько виртуальных компьютеров. Каждое виртуальное устройство можно рассматривать как отдельный компьютер. Благодаря этому один физический ресурс может работать как несколько логических.
Контрольный список действий, которые необходимо выполнить до установки ОС.
- 1. Проверьте, что ОС поддерживает работу со всем аппаратным обеспечением.
- 2. Убедитесь в том, что аппаратные ресурсы отвечают или превосходят минимальные требования.
- 3. Проверьте наличие соответствующего носителя с установочными файлами. Из-за большого размера файлов современные операционные системы поставляются на компакт-дисках и DVD.
- 4. Если ОС устанавливается в системе, где уже есть данные: проверить состояние текущей ОС, отсутствие неполадок и поврежденных файлов и кодов с использованием средств диагностики системы и служебных программ, сделать полную резервную копию всех важных данных.
- 5. При выполнении установки с нуля необходимо убедиться, что все прикладные программы в наличии.
Перед началом установки ОС нужно выбрать структуру разделов жесткого диска, которая лучше всего соответствует требованиям пользователя.
Одна из методик сохранения данных предусматривает деление жесткого диска на несколько разделов. При установке с нуля многие предпочитают создавать раздел для данных и отдельный раздел для ОС. При этом можно обновлять ОС, не боясь потерять данные. Кроме того, это упрощает резервное копирование и восстановление файлов данных.
Такая система позволяет определить тип используемой файловой системы. ОС использует файловую систему для отслеживания файлов. Существует много разных типов файловых систем. Чаще всего встречаются следующие: FAT 16/32, NTFS, HPFS, ext2, ext3. Каждая ОС рассчитана на работу с одним или несколькими типами файловых систем. У каждого типа есть свои преимущества. Необходимо тщательно продумывать, какой тип файловых систем и сопутствующих преимуществ поддерживает выбранная ОС.
Хотя средства изменения структуры разделов и файловой системы жесткого диска существуют, по возможности их лучше не использовать. Это может привести к потере данных. Тщательное планирование структуры жесткого диска перед установкой ОС поможет обеспечить сохранность данных.
После установки ОС компьютер можно настроить для работы в сети. В большинстве случаев, в качестве этой сети выступает Интернет (глобальная всемирная IP-сеть). Чтобы компьютер смог обмениваться данными через IP-сеть, необходимо правильно настроить три следующих параметра:
- • IP-адрес - уникальный указатель компьютера в глобальной сети;
- • маска подсети - параметр, позволяющий определить сеть, к которой он подключен;
- • основной шлюз - устройство в локальной подсети, через которое локальная подсеть и компьютер, подключаются к Интернету или к другой сети.
IP-адрес компьютера настраивают вручную или присваивают автоматически, с помощью другого устройства.
При настройке вручную сетевой администратор (как правило) вводит в компьютер необходимые значения с клавиатуры. Такая настройка называется статической и подлежит изменению только при перемещении компьютера в другую логическую подсеть.
Компьютеры можно настроить для получения информации о сетевых настройках в автоматическом режиме (динамически). В этом случае компьютер запрашивает адрес из пула адресов, которые на значает через сеть другое устройство. Если адрес больше не используется, он возвращается в пул и может быть присвоен другому компьютеру.
Некоторые сетевые операционные системы используют не только IP-адреса, но и имена. В такой среде каждой системе нужно присвоить уникальное имя.
Имя компьютера представляет собой удобное название, которое облегчает пользователям доступ к общим ресурсам, например, к папкам и принтерам с других компьютеров.
В процессе присвоения имени можно добавить описание компьютера с дополнительной информацией о местоположении или функциях устройства.
По мере увеличения размера и сложности сети растет и важность правильного планирования, логичной организации и подробного документирования.
Многие организации разрабатывают общие принципы присвоения компьютерам имен и адресов. Их можно использовать в качестве правил для персонала, обслуживающего сеть. Имена компьютеров должны быть уникальными, с одинаковым форматом, несущим значимую информацию. Это поможет определить тип, функции, местоположение и номер устройства в последовательности. IP-адрес устройства также должен быть уникальным.
Использование правильно документированных общих правил присвоения имен и адресации логических устройств сильно упрощает обучение и управление сетью и помогает проводить поиск и устранение неполадок при их возникновении.
Установленную операционную систему (ОС) или приложение важно постоянно дополнять новейшими исправлениями.
Исправление представляет собой устраняющую проблему часть кода программы и улучшающую функции прикладной программы или ОС. Компьютеры нужно постоянно обновлять последними исправлениями (если не существует разумных причин этого не делать). Иногда исправления плохо влияют на работоспособность другой функции системы. Перед установкой нужно четко понимать роль каждого исправления. Обычно производитель программного обеспечения указывает эту информацию на своей веб-странице.
Исправления ОС устанавливаются различными способами, в зависимости от типа ОС и потребностей пользователя. Существуют следующие варианты загрузки и установки обновлений.
- 1. Автоматическая установка. Можно настроить ОС так, чтобы она подключалась к веб-странице производителя, загружала и обновляла небольшие исправления без участия пользователя. Обновление можно запланировать на то время, когда компьютер работает, но не используется.
- 2. Установка вручную. Обновления, заменяющие основную часть системного кода, нужно запускать вручную. Обычно их называют пакетами обновлений. Такие пакеты используются для устранения проблем с приложением или ОС или для добавления функций. В таких случаях пользователю обычно приходится открывать веб-страницу, загружать пакет и устанавливать его вручную.
Для приложений тоже нужны исправления и обновления. Обычно производитель выпускает исправления для устранения обнаруженных уязвимостей, которые могут вызвать нежелательное поведение приложения.
Обозреватели и офисное программное обеспечение, например текстовые и табличные редакторы и приложения для работы с базами данных, часто становятся жертвами сетевых атак. Этим приложениям нужны обновления, исправляющие части кода, благодаря которым атака может оказаться успешной. Кроме того, иногда производители разрабатывают обновления, которые расширяют функции продукта без дополнительных расходов.
Как правило, исправления для ОС и приложений находятся на веб-странице производителя. В процессе компьютер может запросить разрешение на установку обновления и проверить наличие необходимого ПО. Кроме того, иногда устанавливаются программы, поддерживающие данное обновление. Веб-обновления можно загружать в систему из Интернета и устанавливать автоматически.
Итак, подведем следующие выводы.
• Операционная система - самое важное программное обеспечение в компьютере. ОС обеспечивает управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.
Под архитектурной операционной системы понимают структурную и функциональную организацию ОС на основе некоторой совокупности программных модулей. В состав ОС входят исполняемые и объектные модули стандартных для данной ОС форматов, программные модули специального формата (например, загрузчик ОС, драйверы ввода-вывода ), конфигурационные файлы, файлы документации, модули справочной системы и т.д.
На архитектуру ранних операционных систем обращалось мало внимания: во-первых, ни у кого не было опыта в разработке больших программных систем, а во-вторых, проблема взаимозависимости и взаимодействия модулей недооценивались. В подобных монолитных ОС почти все процедуры могли вызывать одна другую. Такое отсутствие структуры было несовместимо с расширением операционных систем. Первая версия ОС OS/360 была создана коллективом из 5000 человек за 5 лет и содержала более 1 млн строк кода. Разработанная несколько позже операционная система Multics содержала к 1975 году уже 20 млн строк. Стало ясно, что разработка таких систем должна вестись на основе модульного программирования.
Большинство современных ОС представляют собой хорошо структурированное модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой унифицированной архитектуры ОС не существует, но известны универсальные подходы к структурированию ОС. Принципиально важными универсальными подходами к разработке архитектуры ОС являются [4, 13, 22]:
- модульная организация;
- функциональная избыточность;
- функциональная избирательность;
- параметрическая универсальность;
- концепция многоуровневой иерархической вычислительной системы, по которой ОС представляется многослойной структурой;
- разделение модулей на 2 группы по функциям – ядро, модули, выполняющие основные функции ОС, и модули, выполняющие вспомогательные функции ОС;
- разделение модулей ОС на 2 группы по размещению в памяти вычислительной системы – резидентные, постоянно находящиеся в оперативной памяти, и транзитные, загружаемые в оперативную память только на время пополнения своих функций;
- реализация двух режимов работы вычислительной системы – привилегированного режима (или режима ядра – Kernel mode ),или режима супервизора ( supervisor mode ), и пользовательского режима ( user mode ), или режима задачи (task mode);
- ограничение функций ядра (а следовательно, и количества модулей ядра) до минимального количества необходимых самых важных функций.
Первые ОС разрабатывались как монолитные системы без четко выраженной структуры (рис.3.4).
Для построения монолитной системы необходимо скомпилировать все отдельные процедуры, а затем связать их вместе в единый объектный файл с помощью компоновщика (примерами могут служить ранние версии ядра UNIX или Novell NetWare). Каждая процедура видит любую другую процедуру (в отличие от структуры, содержащей модули, в которой большая часть информации является локальной для модуля, процедуры модуля можно вызвать только через специально определенные точки входа).
Однако даже такие монолитные системы могут быть немного структурированными. При обращении к системным вызовам, поддерживаемым ОС, параметры помешаются в строго определенные места, такие как регистры или стек , а затем выполняется специальная команда прерывания, известная как вызов ядра или вызов супервизора. Эта команда переключает машину из режима пользователя в режим ядра, называемый также режимом супервизора, и передает управление ОС. Затем ОС проверяет параметры вызова для того, чтобы определить, какой системный вызов должен быть выполнен. После этого ОС индексирует таблицу, содержащую ссылки на процедуры, и вызывает соответствующую процедуру.
Такая организация ОС предполагает следующую структуру [28]:
- главная программа, которая вызывает требуемые сервисные процедуры;
- набор сервисных процедур, реализующих системные вызовы;
- набор утилит, обслуживающих сервисные процедуры.
В этой модели для каждого системного вызова имеется одна сервисная процедура. Утилиты выполняют функции, которые нужны нескольким сервисным процедурам. Это деление процедур на три слоя показано на рис.3.5.
Классической считается архитектура ОС, основанная на концепции иерархической многоуровневой машины, привилегированном ядре и пользовательском режиме работы транзитных модулей. Модули ядра выполняют базовые функции ОС: управление процессами , памятью, устройствами ввода-вывода и т. п. Ядро составляет сердцевину ОС, без которой она является полностью неработоспособной и не может выполнить ни одну из своих функций. В ядре решаются внутрисистемные задачи организации вычислительного процесса, недоступные для приложения.
Рис. 3.5. Усовершенствованная структура монолитной системыОсобый класс функций ядра служит для поддержки приложений, создавая для них так называемою прикладную программную среду. Приложения могут обращаться к ядру запросами – системными вызовами – для выполнения тех или иных действий, например, открытие и чтение файла , получение системного времени, вывода информации на дисплей и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API ( Application Programming Interface ).
Для обеспечения высокой скорости работы ОС модули ядра ( по крайней мере, большая их часть) являются резидентными и работают в привилегированном режиме ( Kernel mode ). Этот режим обеспечивает, вопервых, безопасность работы самой ОС от вмешательства приложений, и, во-вторых, возможность работы модулей ядра с полным набором машинных инструкций, позволяющих собственно ядру выполнять управление ресурсами компьютера, в частности, переключение процессора с задачи на задачу, управление устройствами ввода-вывода, распределением и защитой памяти и др.
Остальные модули ОС выполняют не столь важные, как ядро , функции и являются транзитными. Например, это могут быть программы архивирования данных, дефрагментации диска , сжатие дисков, очистки дисков и т.п.
Вспомогательные модули обычно подразделяются на группы:
- утилиты – программы, выполняющие отдельные задачи управления и сопровождения вычислительной системы;
- системные обрабатывающие программы – текстовые и графические редакторы (Paint, Imaging в Windows 2000), компиляторы и др.;
- программы представления пользователю дополнительных услуг (специальный вариант пользовательского интерфейса, калькулятор, игры, средства мультимедиа Windows 2000);
- библиотеки процедур различного назначения, упрощения разработку приложений, например, библиотека функций ввода-вывода, библиотека математических функций и т.п.
Эти модули ОС оформляются как обычные приложения, обращаются к функциям ядра посредством системных вызовов и выполняются в пользовательском режиме ( user mode ). В этом режиме запрещается выполнение некоторых команд, которые связаны с функциями ядра ОС ( управление ресурсами , распределение и защита памяти и т. п.).
В концепции многоуровневой (многослойной) иерархической машины структура ОС также представляется рядом слоев. При такой организации каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс . На основе этих функций следующий верх по иерархии слой строит свои функции – более сложные и более мощные и т.д. Такая организация системы существенно упрощает ее разработку, т. к. позволяет сначала "сверху вниз" определить функции слоев и межслойные интерфейсы, а при детальной реализации, двигаясь "снизу вверх", наращивать мощность функции слоев. Кроме того, модули каждого слоя можно изменять без необходимости изменений в других слоях (но не меняя межслойных интерфейсов!).
Многослойная структура ядра ОС может быть представлена, например, вариантом, показанным на рис.3.6.
Рис. 3.6. Многослойная структура операционной системыВ данной схеме выделены следующие слои.
- Средства аппаратной поддержки ОС. Значительная часть функций ОС может выполняться аппаратными средствами [13]. Чисто программных ОС сейчас не существу-ет. Как правило, в современных системах всегда есть средства аппаратной поддержки ОС, которые прямо участвуют в организации вычислительного процесса. К ним относятся: система прерываний, средство поддержки привилегированного режима, средства поддержки виртуальной памяти, системный таймер , средство переключения контекстов процессов (информация о состоянии процесса в момент его приостановки), средство защиты памяти и др.
- Машинно-зависимые модули ОС. Этот слой образует модули, в которых отражается специфика аппаратной платформы компьютера. Назначение этого слоя – "экранирование" вышележащих слоев ОС от особенностей аппаратуры (например, Windows 2000 – это слой HAL , Hardware Abstraction Layer , уровень аппаратных абстракций).
- Базовые механизмы ядра. Этот слой модулей выполняет наиболее примитивные операции ядра: программное переключение контекстов процессов , диспетчеризацию прерываний, перемещение страниц между основной памятью и диском и т.п. Модули этого слоя не принимают решений о распределении ресурсов, а только обрабатывают решения, принятые модулями вышележащих уровней. Поэтому их часто называют исполнительными механизмами для модулей верхних слоев ОС.
- Менеджеры ресурсов . Модули этого слоя выполняют стратегические задачи по управлению ресурсами вычислительной системы. Это менеджеры (диспетчеры) процессов, ввода-вывода, оперативной памяти и файловой системы. Каждый менеджер ведет учет свободных и используемых ресурсов и планирует их распределение в соответствии запросами приложений.
- Интерфейс системных вызовов. Это верхний слой ядра ОС, взаимодействующий с приложениями и системными утилитами , он образует прикладной программный интерфейс ОС. Функции API обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной компактной форме, без указания деталей их физического расположения.
Повышение устойчивости ОС обеспечивается переходом ядра в привилегированный режим. При этом происходит некоторое замедление выполнение системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению – обратное переключение. За счет этого возникает дополнительная задержка в обработке системного вызова (рис.3.7). Однако такое решение стало классическим и используется во многих ОС ( UNIX , VAX , VMS , IBM OS/390, OS/2 и др.).
Многослойная классическая многоуровневая архитектура ОС не лишена своих проблем. Дело в том, что значительные изменения одного из уровней могут иметь трудно предвидимое влияние на смежные уровни. Кроме того, многочисленные взаимодействия между соседними уровнями усложняют обеспечение безопасности. Поэтому, как альтернатива классическому варианту архитектуры ОС, часто используется микроядерная архитектура ОС.
Суть этой архитектуры состоит в следующем. В привилегированном режиме оста-ется работать только очень небольшая часть ОС, называемая микроядром. Микроядро защищено от остальных частей ОС и приложений. В его состав входят машинно-зависимые модули, а также модули, выполняющие базовые механизмы обычного ядра. Все остальные более высокоуровневые функции ядра оформляются как модули, работающие в пользовательском режиме. Так, менеджеры ресурсов , являющиеся неотъемлемой частью обычного ядра, становятся "периферийными" модулями, работающими в пользовательском режиме. Таким образом, в архитектуре с микроядром традиционное расположение уровней по вертикали заменяется горизонтальным. Это можно представить, как показано на рис.3.8.
Рис. 3.8. Архитектура операционной системы с микроядромСхематично механизм обращений к функциям ОС, оформленным в виде серверов, выглядит, как показано на рис.3.9.
Рис. 3.9. Клиент-серверная архитектура операционной системыСхема смены режимов при выполнении системного вызова в ОС с микроядерной архитектурой выглядит, как показано на рис.3.10.
Рис. 3.10. Выполнение системного вызова в операционной системе с микроядромИз рисунка ясно, что выполнение системного вызова сопровождается четырьмя переключениями режимов (4 t), в то время как в классической архитектуре – двумя. Следовательно, производительность ОС с микроядерной архитектурой при прочих равных условиях будет ниже, чем у ОС с классическим ядром.
В то же время признаны следующие достоинства микроядерной архитектуры [36]:
- единообразные интерфейсы;
- простота расширяемости;
- высокая гибкость;
- возможность переносимости;
- высокая надежность;
- поддержка распределенных систем;
- поддержка объектно-ориентированных ОС.
По многим источникам вопрос масштабов потери производительности в микроядерных ОС является спорным. Многое зависит от размеров и функциональных возможностей микроядра. Избирательное увеличение функциональности микроядра приводит к снижению количества переключений между режимами системы, а также переключений адресных пространств процессов.
Может быть, это покажется парадоксальным, но есть и такой подход к микроядерной ОС, как уменьшение микроядра.
Для возможности представления о размерах микроядер операционных систем в ряде источников [22] приводятся такие данные:
- типичное микроядро первого поколения – 300 Кбайт кода и 140 интерфейсов системных вызовов;
- микроядро ОС L4 (второе поколение) – 12 Кбайт кода и 7 интерфейсов системных вызовов.
В современных операционных системах различают следующие виды ядер.
- Наноядро (НЯ) – крайне упрощенное и минимальное ядро, выполняет лишь одну задачу, обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки посылает информацию о результатах обработки вышележащему программному обеспечению. НЯ используются для виртуализации аппаратного обеспечения реальных компьютеров или для реализации механизма гипервизора.
- Микроядро (МЯ) предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Микроядерными являются ОС Minix , GNU Hurd и системы семейства BSD.
- Экзоядро (ЭЯ) дает лишь набор сервисов для взаимодействия между приложениями, а также необходимый минимум функций, связанных с защитой: выделение и высвобождение ресурсов, контроль прав доступа, и т. д. ЭЯ не занимается предоставлением абстракций для физических ресурсов – эти функции выносятся в библиотеку пользовательского уровня (так называемую libOS). В отличие от микроядра ОС, базирующиеся на ЭЯ, обеспечивают большую эффективность за счет отсутствия необходимости в переключении между процессами при каждом обращении к оборудованию.
- Монолитное ядро (МЯ) предоставляет широкий набор абстракций оборудования. Все части ядра работают в одном адресном пространстве. МЯ требуют перекомпиляции при изменении состава оборудования. Компоненты операционной системы являются не самостоятельными модулями, а составными частями одной программы. МЯ более производительно, чем микроядро, поскольку работает как один большой процесс. МЯ является большинство Unix-систем и Linux. Монолитность ядер усложняет отладку, понимание кода ядра, добавление новых функций и возможностей, удаление ненужного, унаследованного от предыдущих версий, кода. "Разбухание" кода монолитных ядер также повышает требования к объему оперативной памяти.
- Модульное ядро (Мод. Я) – современная, усовершенствованная модификация архитектуры МЯ. В отличие от классических" МЯ, модульные ядра не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого они предоставляют тот или иной механизм подгрузки модулей, поддерживающих то или иное аппаратное обеспечение (например, драйверов). Подгрузка модулей может быть как динамической, так и статической (при перезагрузке ОС после переконфигурирования системы). Мод. Я удобнее для разработки, чем традиционные монолитные ядра. Они предоставляют программный интерфейс (API) для связывания модулей с ядром, для обеспечения динамической подгрузки и выгрузки модулей. Не все части ядра могут быть сделаны модулями. Некоторые части ядра всегда обязаны присутствовать в оперативной памяти и должны быть жестко "вшиты" в ядро.
- Гибридное ядро (ГЯ) – модифицированные микроядра, позволяющие для ускорения работы запускать "несущественные" части в пространстве ядра. Имеют "гибридные" достоинства и недостатки. Примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach . Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры , сохраняя по возможности хорошо отлаженный код монолитного ядра .
Читайте также: