Операционные системы/Структура вычислительной системы
Материал из eSyr's wiki.
(Новая: '''Вычислительная система''' (ВС) – результат интеграции аппаратных и программных средств, функциониру...) |
м (→Виртуальная машина) |
||
Строка 101: | Строка 101: | ||
=== Виртуальная машина === | === Виртуальная машина === | ||
- | '''Виртуальная машина''' – функциональный срез ( | + | '''Виртуальная машина''' – функциональный срез (обобщение) возможностей ВС с позиции конкретного пользователя. |
Основные категории пользователей: | Основные категории пользователей: | ||
# Оператор или прикладной пользователь (доступны средства пользовательского интерфейса) | # Оператор или прикладной пользователь (доступны средства пользовательского интерфейса) |
Версия 12:01, 7 января 2012
Вычислительная система (ВС) – результат интеграции аппаратных и программных средств, функционирующих в единой системе и предназначенных для решения задач определенного класса.
Структура вычислительной системы состоит из пяти уровней:
Каждый вышестоящий уровень базируется на нижестоящем.
Содержание |
Аппаратный уровень вычислительной системы
Определяется наборами аппаратных компонентов и их характеристиками, используемыми вышестоящими уровнями иерархии и определяющими воздействие на них.
Физические ресурсы: процессор, оперативная память, внешние устройства. Характеристики:
- Правила программного использования, которые определяют возможность корректного использования в программе.
- Производительность или емкость: тактовая частота, длина обрабатываемого машинного слова.
- Степень занятости или используемости данного физического ресурса.
Нет единого правила формирования этих характеристик. Мы можем определить, какие из них соответствуют данному физическому ресурсу.
Средства программирования, доступные на аппаратном уровне:
- Система команд компьютера.
- Аппаратные интерфейсы программного взаимодействия с физическими ресурсами.
Уровень управления физическими ресурсами вычислительной системы
Уровень управления физическими ресурсами ВС является первым уровнем системного программного обеспечения вычислительной системы, его назначение – систематизация и стандартизация правил программного использования физических ресурсов. На этом уровне обеспечивается создание программ управления физическими ресурсами. Для обеспечения управления физическими ресурсами используются программы, которые называются драйверами физического ресурса (устройства).
Драйвер физического устройства – программа, основанная на использовании команд управления конкретного физического устройства и предназначенная для организации работы с данным устройством.
Уровень управления логическими/виртуальными ресурсами вычислительной системы
Логическое/виртуальное устройство (ресурс) – устройство, некоторые эксплуатационные характеристики которого (возможно, все) реализованы программным образом.
Драйвер логического/виртуального ресурса – программа, обеспечивающая существование и использование соответствующего ресурса.
Этот уровень ориентирован на пользователя. Команды данного уровня не зависят от физических устройств, они обращены к предыдущему уровню. На базе этого уровня могут создаваться новые логические ресурсы. При организации драйвера логического устройства могут использоваться драйверы физических или логических/виртуальных устройств. Система поддерживает иерархию драйверов. Многоуровневая унификация интерфейса.
Ресурсы вычислительной системы – совокупность всех физических и виртуальных ресурсов. Одной из характеристик ресурсов является их конечность, следовательно, возникает конкуренция за обладание ресурсом между его программными потребителями.
Средства программирования, доступные на уровнях управления ресурсами ВС:
- Система команд компьютера
- Программные интерфейсы драйверов устройств (как физических, так и виртуальных)
Операционная система – это комплекс программ, обеспечивающий управление ресурсами вычислительной системы.
Разветвленная иерархия виртуальных и физических устройств. Драйверы можно разделить на 3 группы:
- Драйверы физических устройств
- Драйверы виртуальных устройств, обобщающих характеристики соответствующих физических устройств
- Драйверы виртуальных устройств, не имеющих аппаратной реализации (т.е. "полностью" виртуальных, например, драйвер файловой системы)
Уровень систем программирования
Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
Жизненный цикл программы в вычислительной системе состоит из четырех основных этапов:
- Проектирование программного продукта. Результатом этапа проектирования является спецификация на создаваемую программную систему. Этот этап состоит из нескольких взаимосвязанных между собой стадий:
- Исследование решаемой задачи – формулирование концептуальных требований к разрабатываемой программной системе.
- Определение характеристик объектной ВС (ВС, на которой предполагается работа программной системы).
- Построение модели функционирования автоматизированного объекта.
- Определение характеристик инструментальной ВС (ВС, на которой будет вестись разработка программной системы).
- Обдумывание алгоритмов, подбор инструментальных средств.
- Априорная системная оценка ожидаемых результатов.
- Кодирование (программная реализация). Построение кода на основании спецификаций при использовании языков программирования, трансляторов, средств для использования библиотек и средств для разработки программных продуктов. Результатом этапа кодирования являются исполняемые модули, объектные модули, исходные тексты программ и библиотеки. Средства для разработки программных продуктов включают:
- Средства автоматизации контроля использования межмодульных интерфейсов, которые обеспечивают контроль за правильностью использования в программе классификаций, регламентирующих межмодульные связи: количество параметров, типы параметров права доступа к параметрам и т.д.
- Средства автоматизации получения объектных и исполняемых модулей программы, обеспечивающие автоматический контроль за соответствием исходных модулей объектным и исполняемым модулям, т.е. предусматривается возможность последующего редактирования исходных модулей. Эти средства, в частности, следят, чтобы объектные и исполняемые модули находились в адекватном состоянии. Говорят, что объектный/исполняемый модуль находится в адекватном состоянии, если дата его создания позже даты изменения любого файла, от которого он зависит (для объектного модуля это соответствующие ему файлы с исходным кодом, для исполняемого модуля - соответствующие ему объектные модули). Пример: утилита make.
- Системы поддержки версий, т.е. системы, которые позволяют фиксировать состояние проекта в виде некоторых версий, а также протоколировать все изменения исходных модулей и при необходимости осуществлять возврат к предыдущим версиям.
- Средства поддержки коллективной работы.
- Тестирование и отладка. Тестирование – проверка программы на тестовых нагрузках. Тест – заранее определенные входные данные. Тестовое покрытие – минимальный набор тестов, наиболее полно проверяющих программу. Отладка – процесс поиска, локализации и исправления зафиксированных при тестировании ошибок.
- Внедрение и сопровождение. Внедрение – установка программного комплекса на объектную вычыслительную систему и его первичная настройка. Сопровождение – исправление недочетов разработки и внедрения программного комплекса (например, выпуск патчей). Включает следующий набор требований:
- Подготовка документации, иногда автоматической или автоматизированной
- Возможность сбора так называемых логов по функционированию программы или параметров функционирования программы для того, чтобы можно было анализировать как характеристики эксплуатации так возникающие внештатные ситуации и т.д . и т.п.
Последний этап предъявляет программному продукту целый ряд специфических требований. Этапы жизненного цикла программы могут комбинироваться.
Среди современных технологий разработки программного обеспечения можно выделить каскадную модель, каскадную итерационную модель и спиральную модель, см. модели разработки программного обеспечения.
Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
С 90-х годов 20 века по настоящее время появляются промышленные средства автоматизации проектирования программного обеспечения, средств CASE (Computer-Aided Software/System Engineering), унифицированного языка моделирования UML (Unified Modeling Language). Системы программирования – интегрированные системы.
Уровень прикладных систем
Прикладная система – программная система, ориентированная на решение или автоматизацию решения задач из конкретной предметной области.
Этапы развития прикладных систем
- Первый этап: Задача -> Разработка, программирование -> Решение.
- Второй этап: развитие систем программирования и появление средств создания и использования библиотек программ.
- Третий этап: появление пакетов прикладных программ, имеющих развитые и стандартизированные интерфейсы; возможность совместного использования различных пакетов.
Тенденции в развитии прикладных систем
- Стандартизация моделей автоматизируемых бизнес - процессов
- B2B (Business to Business)
- B2C (Business to Customer)
- ERP (Enterprise Resource Planning)
- CRM (Customer Relationship Management)
- Открытость систем
- API (Application Programming Interface)
- Использование при построении прикладных систем современных моделей и шаболнов
- OOP (Object Oriented Programming)
Виртуальная машина
Виртуальная машина – функциональный срез (обобщение) возможностей ВС с позиции конкретного пользователя. Основные категории пользователей:
- Оператор или прикладной пользователь (доступны средства пользовательского интерфейса)
- Системный программист (пользователь компонентов прикладной системы)
- Системный администратор
Выводы
Пользователь и уровни структурной организации вычислительной системы:
- Прикладные программы (набор функциональных средств прикладной системы)
- Системные программы (трансляторы языков высокого уровня, библиотеки)
- Управление логическими/виртуальными ресурсами (интерфейсы драйверов виртуальных устройств)
- Управление физическими ресурсами (интерфейсы драйверов физических устройств)
- Аппаратные средства (система команд, аппаратные интерфейсы программного управления физическими устройствами).