V. Способность к развитию

Чтобы сложная программа имела шансы просуществовать долго, в нее изначально должны быть заложены возможности для будущего развития.

Одним из главных условий способности системы к развитию является хорошо продуманная модульная структура, в которой четко определены функции каждого модуля и его взаимосвязи с другими модулями. При этом создается возможность совершенствования отдельных модулей с минимальным риском вызвать нежелательные последствия для других частей системы.

Важным требованием к развитию ОС является совместимость версий снизу вверх, означающая возможность безболезненного перехода от старой версии к новой, без потери ранее наработанных прикладных программ и без необходимости резкой смены всех навыков пользователя. Обратная совместимость – сверху вниз – как правило, не гарантируется, поскольку в ходе развития система приобретает новые возможности, не реализованные в старых версиях. Программа из Windows 3.1 будет нормально работать и в Windows XP; наоборот – вряд ли.

Фирмы-производители ОС прилагают максимум усилий для обеспечения совместимости снизу вверх, чтобы не отпугнуть пользователей. Но при этом фирмы стараются в каждую новую версию заложить какую-нибудь новую конфетку, которая побудила бы пользователей как можно скорее купить ее.

Совместимость версий – благо для пользователя, однако на практике она часто приводит к консервации давно отживших свой век особенностей или же просто неудачных решений, принятых в ранней версии системы. В документации подобные архаизмы помечаются как «устаревшие» (obsolete), но полного отказа от них, как правило, не происходит (а вдруг где-то еще работает прикладная программа, написанная двадцать лет назад с использованием именно этих средств?).

Как правило, наиболее консервативной стороной любой ОС являются не алгоритмы, а структуры системных данных, поэтому дальновидные разработчики заранее строят структуры «на вырост»: закладывают в них резервные поля, используют переменные вместо некоторых констант, устанавливают количественные ограничения с большим запасом и т.п.

Vi. Мобильность

Под мобильностью (portability) понимается возможность переноса программы (в данном случае ОС) на другую аппаратную платформу, т.е. на другой тип процессора и другую архитектуру компьютера. Здесь имеется в виду перенос с умеренными трудозатратами, не требующий полной переработки системы.

Свойство мобильности не столь однозначно положительно, как может показаться. Чтобы программа была мобильна, при ее разработке следует отказаться от глубокого использования особенностей конкретной архитектуры (таких, как количество и функциональные возможности регистров процессора, нестандартные команды и т.п.). Мобильная программа должна быть написана на языке достаточно высокого уровня (часто используется язык C), который можно реализовать на компьютерах любой архитектуры. Платой за мобильность всегда является некоторая потеря эффективности, поэтому немобильные системы распространены достаточно широко.

С другой стороны, история системного программирования усеяна останками замечательных, эффективных и удобных, но немобильных ОС, которые вымерли вместе с процессорами, для которых они предназначались. В то же время мобильная система UNIX продолжает процветать четвертый десяток лет, намного пережив те компьютеры, для которых она первоначально создавалась. Примерно 5-10% исходных текстов UNIX написаны на языка ассемблера и должны переписываться заново при переносе на новую архитектуру. Остальная часть системы написана на C и практически не требует изменений при переносе.

Некоторым компромиссом являются многоплатформенные ОС (например, Windows NT), изначально спроектированные для использования на нескольких аппаратных платформах, но не гарантирующие возможность переноса на новые, не предусмотренные заранее архитектуры.

Функции любой ОС.

1) выделение ресурсов и управление ими (время МП и объем ОЗУ – аппаратные ресурсы) и программные ресурсы (драйверы и необходимые системные обработчики)

2) загрузка программ в ОП

3) пересылка информации в устройствах связи

4) управление операциями ввода-вывода (драйверы)

5) обслуживание системы прерываний. Прерывание – это ситуация, вызывающая приостановку выполнения текущей команды МП и переключение на системную обработку данной ситуации

6) управление и поддержка файловой системы

7) конфигурирование технических средств – настройка ОС на конкретные устройства, которые могут быть использованы самой системой и пользователем (user)

8) Обработка командного языка

9) Защита и учет использования ресурсов

10) Диспетчеризация процессов вычислительной системы

11) Распределение памяти внешних Запоминающих Устройств (ЗУ)


Структура ОС.

2. Ядро (супервизор, режим ядра – это особый режим при выполнении команд МП, который позволяет напрямую обращаться к устройствам ПЭВМ и в любой раздел ОП) включает в себя драйверы стандартных ПУ и обработчики системных вызовов.

Часто зашито в ПЗУ (Basic Input-Output System – BIOS – базовая система ввода-вывода).

3. Программы управления задачей – обеспечивают загрузку программных кодов в ОЗУ, запуск на выполнение, выделение раздела ОЗУ, а так же очищение раздела памяти из ОЗУ (выгрузка) после выполнения программы, либо оставляет программу резидентной в ОЗУ.

4. Программы управления заданиями – обеспечивают мультипрограммный режим с использованием программы-планировщика заданий, распределяет разделы памяти (ОЗУ) между задачами, обеспечивая защищенность и безопасность работы каждой из них.

5. Программы управления вводом-выводом – обеспечивают операции ввода-вывода (за счет драйверов), обработку очередей запросов на ввод-вывод и распределение этих запросов между устройствами и наборами данных.

6. Программы управления данными – обеспечивают методы доступа к данным библиотекам, каталогам (связаны со средствами управления задачей), а также передают в ОЗУ и к устройствам ввода-вывода.

7. Сервисные программы – расширяют возможности ОС (утилиты) и пользовательского интерфейса.

8. Тесты – для диагностики и тестирования устройств и программ.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: