Операционные системы основные принципы организации. §3.1 Принципы построения ОС. Принцип функциональной избирательности

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

Таблица 1. Принципы построения операционных систем

п/п

Принцип

Сущность

Частотный

Наиболее часто встречающиеся операции выполняются наиболее быстро.

Модульности

ОС создают на основе объединения самостоятельных функциональных элементов системы.

Функциональной избирательности

Наиболее значимые и часто используемые модули выделяют в ядро ОС.

Генерируемости

Настройка системных программ исходя из конкретной конфигурации ЭВМ и круга решаемых задач.

По умолчанию

ОС самостоятельно задает параметры работы вычислительной системы, если их не задает пользователь.

Перемещаемости

Построение модулей, исполнение которых не зависит от расположения в ОЗУ.

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

Независимости программ от внешних устройств

Наращиваемости и открытости

Открытая ОС доступна для анализа специалистам, а наращиваемая – для модификации и совершенствования.

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

1.10. Переносимость ос

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

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

Контрольные вопросы

1. В чем отличие операционных систем от других программ? 2. Каковы основные функции операционной системы? 3. Какие виды программного обеспечения Вы знаете? 4. Что является основной частью операционной системы? 5. Какие категории операционных систем Вам известны? 6. Возможно ли экстраполировать (распространить) принципы построения операционных систем на разработку прикладных программ? 7. Определение операционной системы

Глава 2. Архитектура ос

2.1. Архитектура на базе ядра в привилегированном режиме

Концепция архитектуры.

Наиболее общим подходом к структуризации операционной системы является разде­ление всех ее модулей на две группы: ядро и вспомогательные модули. Ядро выполняет все основные функции ОС и работает в особом - привилегированном - режиме. Приложения выполняются независимо, каждое - в своем собственном адресном про­странстве.

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

Архитектура ОС, основанная на привилегированном ядре и приложениях пользо­вателя, считается классической. Она используется, в частности, в большинстве ва­риантов ОС Unix и с определенными модификациями - в ОС Windows NT .

Ядро и вспомогательные модули ОС

Ядро включает модули, выполняющие основные функции ОС:

- управление процессами; управление памятью;

Управление вводом-выводом и файловая система;

Интерфейс прикладного программирования API (Application Program Interface ) для поддержки обращений к ядру из приложений.

Для обеспечения высокой скорости работы ОС модули ядра (все или большая часть), являются резидентными , т.е. постоянно находятся в оперативной памяти.

Вспомогательные модули по выполняемым функциям обычно подразделяют­ся на следующие группы:

утилиты - программы, решающие отдельные задачи управления и сопровожде­ния компьютерной системы (сжатие дисков, их проверка, дефрагментация; архиви­рование, сбор статистики и т.д.);

системные обрабатывающие программы (компиляторы, редакторы связей, заг­рузчики, отладчики, текстовые или графические редакторы);

библиотеки процедур различного назначения для разработки приложений (мате­матические функции, функции ввода-вывода и т.д.);

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

Вспомогательные модули ОС загружаются в оперативную память только на вре­мя выполнения (транзитные модули).

Решение о том, является ли какая-либо программа частью ОС или нет, принима­ет производитель ОС. Так, самостоятельное приложение, имеющее спрос, может быть включено в состав ОС (например, Веб-браузер Internet Explorer ), или, наоборот, мо­дуль ОС может превратиться в отдельное приложение.

Все модули (как вспомогательные, так и пользовательские приложения) обраща­ются к функциям ядра посредством системных вызовов (рис. 1).

Рис. 1 - Взаимодействие между ядром и другими модулями

Привилегированный режим ядра и пользовательский режим

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

Пользовательский режим (user mode ) - для работы приложений ;

Привилегированный режим, он же - режим ядра (kernel mode ), или режим суперви­зора (supervisor mode ) - для работы ОС или ее частей.

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

Привилегии обеспечиваются за счет запрета выполнения в пользовательском ре­жиме некоторых критичных команд, связанных со следующими операциями:

    переключением процессора с задачи на задачу;

    управлением устройствами ввода-вывода;

    доступом к механизмам распределения и защиты памяти.

В пользовательском режиме безусловно запрещено выполнение инструкции пере­хода в привилегированный режим. Другие инструкции запрещается выполнять при определенных условиях, полностью контролируемых ОС. Например, ввод-вывод дан­ных или доступ к памяти разрешены приложению, если соответствующие ресурсы выделены только этому приложению, и запрещены, если данные (соответственно па­мять) являются общими для ОС и других приложений.

Если аппаратура (процессор) поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты и соответствующих прав доступа. Прямого соответствия между числом аппа­ратно реализуемых и программно реализуемых уровней привилегий нет. Так, на базе четырех уровней процессоров архитектуры х86 OS/2 строит трехуровневую, а Windows NT и Unix - двухуровневую систему привилегий.

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

Многослойная структура ОС

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

Система представляется как иерархия слоев.

Функции нижележащего слоя являются примитивами для построения более слож­ных функций вышележащего слоя.

Взаимодействие слоев осуществляется через посредство функций межслойного интерфейса .

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

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

В

Утилиты, системные обрабатывающие программы, библиотеки процедур

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

Аппаратура

Рис. 2 Трехслойная структура вычислительной системы.

При такой организации ОС приложения могут взаимодействовать с аппаратурой только через слой ядра.

Многослойная структура ядра

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


Рис.3. Многослойная структура ядра ОС

Средства аппаратной поддержки ОС - аппаратные средства, прямо участвую­щие в организации вычислительных процессов: средства поддержки привилегирован­ного режима, система прерываний, переключение контекстов процессов, трансляция адресов, защита памяти и т.п.

Машино-зависимые модули - программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью эк­ранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Примером может служить слой HAL (Hardware Abstraction Layer ) в Windows NT /2000 . На уровне HAL работа с устрой­ством определенного типа (накопитель, видеоплата, мышь и т.п.) всегда описыва­ется при помощи одного и того же заранее определенного набора функций. В слу­чае, если устройство имеет иной набор функций (например, устаревший 3d -ускоритель может не поддерживать многих современных функций), драйвер обязан эму­лировать стандартные функции с тем, чтобы ОС могла не заботиться о том, какое конкретно устройство установлено.

Базовые механизмы ядра. Модули этого слоя не принимают решений о распре­делении ресурсов, а только отрабатывают принятые на более высоком уровне ре­шения. Выполняются наиболее примитивные операции ядра: программное переклю­чение контекстов процессов, перемещение страниц между памятью и диском, дис­петчеризация прерываний и т.п.

Менеджеры ресурсов . Модули этого уровня реализуют управление основными ресурсами системы. Группировка модулей в менеджеры обычно осуществляется по

функциям основных подсистем ОС: выделяются менеджеры процессов, ввода-выво­да и файловой системы (могут быть объединены), оперативной памяти.

Интерфейс системных вызовов . Взаимодействует непосредственно с приложе­ниями и системными утилитами, образуя прикладной программный интерфейс ОС (API ).

  1. принцип модульности . Модуль – функционально законченный элемент, выполняемый в соответствии с принятым межмодульным интерфейсом. Модуль выделяется по функциональному признаку. Модульная организация позволяет легко (из)заменять неправильно работающие модули в ОС. Чаще всего используются реентерабельные и привилегированные модули.
  2. принцип функциональной избирательности . Для организации эффективной работы ОС, необходимо выделить некоторые модули и хранить их в ОЗУ. Эти модули составляют ядро ОС. Ядро:
    1. Модули по управлению системы прерываний;
    2. Средство управления выполнения программ (загрузка, приостановка, остановка);
    3. Модули по управлению процессом (распределение процессорного времени), т.е. диспетчеры программ;
    4. Модули по управлению выделения памяти. В зависимости от ОС в ядро могут ещё входить другие модули;
    5. Транзитные модули (загружаются в ОЗУ по мере необходимости, при нехватке ОЗУ могут быть выгружены из памяти).
  3. принцип генерируемости ОС . Подразумевает собой возможность генерации ОС в зависимости от аппаратного обеспечения. Процесс генерации обычно производится один раз, перед достаточно долгим режимом эксплуатации. Для генерации необходимо наличие нескольких компонентов:
    1. Исходный код ОС;
    2. Компилятор с языка программирования на котором система написана;
    3. Специальная программа и входной язык для неё, который позволяет управлять процессом генерации.
    ОС с открытым системным кодом – Linux (UNIX), есть возможность тонкой настройки ядра для конкретного процессора.
  4. принцип функциональной избыточности . В состав ОС должно входит несколько типов ПО для выполнения одинаковых функций (поддержка разных файловых систем).
  5. принцип виртуализации . Позволяет представить ресурсы ОС в виде определённого набора планировщиков и мониторов и использует единую схему распределения ресурсов. Наибольшее проявление – концепция виртуальной машины (воспроизводит архитектуру реальной машины, но может обладать произвольными характеристиками).
  6. принцип независимости программ от внешних устройств . Связь программ с конкретным внешним устройством производится не на этапе трансляции, а на этапе выполнения программы. Получается выгода: не нужна лишняя «перекомпиляция».
  7. принцип совместимости . Способность выполнять программы для другой ОС или даже для другой аппаратной платформы.
    2 уровня совместимости:
    1. по выполняемому коду (бинарная). Условия совместимости:
      1. На уровне команд процессора (одна и та же платформа);
      2. Совместимость на уровне библиотечных вызовов, если являются динамично связываемыми.
    2. 2. по исходному коду. Требуется выполнение следующих условий:
      1. Наличие компилятора платформы, на котором написана программа;
      2. Совместимость на уровне системных вызовов;
      3. Совместимость на уровне библиотечных вызовов.
  8. принцип открытой наращиваемой ОС (открыт исходный код). Целостность ОС сохраняется (UNIX).
  9. принцип мобильности (переносимости). ОС должна легко переноситься на другую аппаратную платформу. Правила создания переносимых ОС:
    1. ОС должна быть написана на языке высокого уровня, для которой существует компилятор на аппаратной платформе. В основном, современные ОС пишут на Си.
    2. Необходимо избегать кода, который непосредственно работает с аппаратным обеспечением.
  10. принцип обеспечения безопасности и защиты :
    1. Защита системы от пользователя;
    2. Защита от несанкционированного доступа.

В 1983 г. придуманы критерии оценки надёжности ОС. Существуют 4 класса безопасности:

Класс D . Относятся системы, не удовлетворяющие системам предыдущих классов (небезопасный);

Класс C . Обеспечение защиты данных от ошибок пользователя. ОС должна иметь следующие средства:

  1. Средства секретного входа;
  2. Обязательно наличие избирательного контроля доступа;
  3. Средства учёта и наблюдения (аудит);
  4. Необходима инициализация памяти при её освобождении. Современные ОС относятся к этому классу.

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

Класс A . Самый высокий уровень безопасности. Необходимо, чтобы имелось формальное (математическое) доказательство безопасности ОС. Примерно 90% процессорного времени тратится на систему безопасности. В наше время используются классы B и C.

Назначение и функции ОС.

В процессе работы ЭВМ выполняется множество различных действий: ввод программы, написанной на некотором исходном языке, запись введенной программы на некоторый накопитель, трансляция ее в объектное представление, редактирование оттранслированной программы, при котором происходит сборка программы, то есть устанавливаются все необходимые связи между отдельными подпрограммами. Полученный после редактирования загрузочный модуль либо исполняется, либо записывается на внешний носитель данных. В процессе выполнения программы может потребоваться ввод или вывод данных. Все вышеописанные действия образуют либо одну общую технологическую цепочку, либо несколько независимых (автономных) цепочек. В общем случае такие цепочки выполняются на машине одновременно.

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

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

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

· Включить в код программы коды управления устройством;

· Создание резидентных программ;

· Разработка полноценного драйвера.

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


Рисунок 1. Функции ОС

Требования, предъявляемые к ОС

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

Расширяемость

· Код должен быть написан таким образом, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы.

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

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

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

Средства вызова удаленных процедур (RPC) также дают возможность расширить функциональные возможности ОС. Новые программные процедуры могут немедленно поступить в распоряжение прикладных программ.

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

Переносимость

· Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа.

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

Во-первых, большая часть кода должна быть написана на языке, который имеется на всех машинах. Это означает, что код должен быть написан на языке высокого уровня, предпочтительно стандартизованном, например, на языке С. Программа, написанная на ассемблере, не является переносимой, если только вы не собираетесь переносить ее на машину, обладающую командной совместимостью с вашей.

Во-вторых, следует учесть, в какое физическое окружение программа должна быть перенесена. Различная аппаратура требует различных решений при создании ОС. Например, ОС, построенная на 32-битовых адресах, не может быть перенесена на машину с 16-битовыми адресами (разве что с огромными трудностями).

В-третьих, важно минимизировать те части кода, которые непосредственно взаимодействуют с аппаратными средствами.

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

Для легкого переноса ОС при ее разработке должны быть соблюдены следующие требования:

· Переносимый язык высокого уровня . Большинство переносимых ОС написано на языке С. Непереносимый код должен быть тщательно изолирован внутри тех компонентов, где он используется.

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

· Изоляция платформы . Зависимость от платформы заключается в различиях между рабочими станциями разных производителей, построенными на одном и том же процессоре. Должен быть введен программный уровень, абстрагирующий аппаратуру (кэши, контроллеры прерываний ввода-вывода и т. п.) вместе со слоем низкоуровневых программ таким образом, чтобы высокоуровневый код не нуждался в изменении при переносе с одной платформы на другую.

Совместимость

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

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

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

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

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

Безопасность

· ОС должна обладать средствами защиты ресурсов одних пользователей от других.

Обеспечение защиты информации от несанкционированного доступа является обязательной функцией сетевых операционных систем. В большинстве популярных систем гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США.

Основы стандартов в области безопасности были заложены "Критериями оценки надежных компьютерных систем ". Этот документ, изданный в США в 1983 году (Оранжевая Книга).

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

Иерархия уровней безопасности, приведенная в Оранжевой Книге, помечает низший уровень безопасности как D, а высший - как А.

· В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов.

· Основными свойствами, характерными для С-систем, являются: наличие подсистемы учета событий, связанных с безопасностью, и избирательный контроль доступа. Уровень С делится на 2 подуровня: уровень С1, обеспечивающий защиту данных от ошибок пользователей, но не от действий злоумышленников, и более строгий уровень С2. На уровне С2 должны присутствовать средства секретного входа, обеспечивающие идентификацию пользователей путем ввода уникального имени и пароля перед тем, как им будет разрешен доступ к системе. Средства учета и наблюдения (auditing ) - обеспечивают возможность обнаружить и зафиксировать события, связанные с безопасностью, или любые попытки создать, получить доступ или удалить системные ресурсы. Защита памяти - заключается в том, что память инициализируется перед тем, как повторно используется. На этом уровне система не защищена от ошибок пользователя, но поведение его может быть проконтролировано по записям в журнале.

· Системы уровня В основаны на помеченных данных и распределении пользователей по категориям, то есть реализуют мандатный контроль доступа . Каждому пользователю присваивается рейтинг защиты, и он может получать доступ к данным только в соответствии с этим рейтингом. Этот уровень в отличие от уровня С защищает систему от ошибочного поведения пользователя.

· Уровень А является самым высоким уровнем безопасности, он требует в дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям безопасности.

Надежность и отказоустойчивость

· Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны быть в состоянии наносить вред ОС.

Производительность.

· Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.

Режимы обслуживания.

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


1.Режим индивидуального пользования.

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

2. Режим однопрограммной пакетной обработки.


Пользователь не имеет непосредственного доступа к вычислительной сети. Подготовленные заранее программы пользователь передает обслуживающему персоналу вычислительной системы. Собранные от нескольких пользователей программы накапливаются в пакет на магнитных дисках или лентах (пакет-это совокупность отдельных программ и данных, разделенных специальными метками на магнитном носителе). Затем, в соответствии с расписанием, оператор устанавливает носитель с пакетом на соответствующий накопитель, и специальная программа из состава ОС последовательно считывает программы и данные из пакета, после чего запускает их на выполнение. Результаты работы выводятся на другой накопитель, составляя очередь (пакет) выходных результатов. Управляющая программа должна фиксировать время, затраченное на выполнение каждой программы из пакета, а также реагировать на определенные ситуации по управлению пользовательскими программами. Ситуации могут быть как штатные (предусмотренные), например, останов программы в ожидании смены магнитной ленты, так и нештатные, к примеру, зацикливание некоторой программы из пакета. Таким образом, управляющая программа выполняет внутрисистемные операции управления, которые ранее (в режиме 1) выполнял пользователь. Дополнительно эта программа автоматически переключает машину на использование программ из пакета по вышеописанной схеме, при этом каждая программа, получившая доступ к процессору, обслуживается до конца. Рассматриваемая управляющая система автоматизирует операции оператора по организации работы ЭВМ при обработке на ней некоторой последовательности программ и может быть названа простейшей ОС.

Применение такого режима позволило улучшить эксплуатационных характеристики ЭВМ, прежде всего путем повышения процента использования оборудования. Однако этот режим обладает двумя существенными недостатками: значительное увеличение интервала времени между моментами передачи пользователями программ оператору на выполнение и получением результатов (чем больше пакет, тем больше интервал времени, а в среднем 2-4 часа); во время выполнения некоторой программы может потребоваться передача данных из оперативной памяти в накопитель и обратно, а процессор во время выполнения таких обменов простаивает и продолжит обработку только после завершения обмена, то есть наиболее дорогостоящее и высокоскоростное оборудование используется нерационально.

3. Режим мультипрограммной пакетной обработки.

Стремление устранить недостаток однопрограммного пакетного режима привело к дальнейшей эволюции ЭВМ и ОС, к мультипрограммным вычислительным системам. Основной функцией таких систем является размещение в оперативной памяти не одной, а нескольких пользовательских программ. Рассмотрим пример.

Пусть в оперативную память загружены три программы А,Б и В. Временные диаграммы их выполнения в однопрограммном и мультипрограммном режимах представлены ниже.


Однопрограммный режим
Многопрограммный режим

На диаграммах интервалы времени, необходимые для ввода-вывода обозначены t BB (А), t BB (Б) и t BB (В). Время выполнения всех трех программ (А, Б и В) в пакетном однопрограммном режиме равно Т(А)+Т(Б)+Т(В), то есть программы выполняются последовательно друг за другом. Рассмотрим выполнение программ в многопрограммном режиме.

Допустим, что процессор начинает обслуживание с программы А в момент t 0 .В момент t 1 программе А требуются данные, находящиеся на одном из внешних устройств. В этот момент выполнение программы А приостанавливается и начинает выполняться операция ввода-вывода, которая будет завершена через время t BB (А) в момент t 4 .Одновременно (параллельно) с операцией ввода-вывода процессор переключается на выполнение программы Б. В момент времени t 2 программе Б потребовалось выдать промежуточные данные на одно из внешних устройств. Происходит приостановка выполнения процессором программы Б, и начинает выполняться операция ввода-вывода, которая будет завершена через время t BB (Б) в момент времени t 7 .Далее одновременно с этой операцией ввода-вывода процессор переключается на выполнение программы В. В момент времени t 3 происходит приостановка выполнения программы В, и начинает выполняться операция ввода-вывода, которая будет завершена за время t BB (Б). После завершения операции ввода-вывода для программы А в момент t 4 свободный к этому моменту процессор вновь начинает выполнять программу А до ее завершения в момент времени t 6 . .Так как операция ввода-вывода программы В завершилась ранее (в момент t 5), то процессор переключается на продолжение программы В; закончив ее выполнение (в момент t 8), процессор переходит к выполнению программы Б, операция ввода-вывода для которой закончилась в момент t 7 . Таким образом, выполнение всех трех программ закончилось в момент t 9, причем величина t 9 –t 0 значительно меньше суммы Т (А)+Т (Б)+Т (В) в однопрограммном режиме. Однако время выполнения программ Б и В увеличилось по сравнению с однопрограммным режимом на величины t 6 –t 5 иt 8 –t 7 соответственно (на схеме эти фрагменты обозначены). Эти временные задержки возникли из-за занятости процессора обслуживанием других программ при готовности программ Б и В к продолжению выполнения. При выполнении в пакетном режиме наличие этих задержек не имеет существенного значения, так как они практически не влияют на время получения пользователем результатов счета. Основным достоинством многопрограммного пакетного режима является значительное уменьшение времени простоя процессора.

Реализация рассматриваемой идеи многопрограммной обработки потребовала изменения, как аппаратных, так и программных средств:

1) реализован механизм прерывания;

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

операции ввода-вывода с использованием средств процессора,

операции через канал ввода-вывода);

3) организация функционирования ЭВМ реализуется с помощью комплекса взаимосвязанных управляющих программ, то есть ОС, ставшей неотъемлемой частью мультипроцессорных ЭВМ.

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

4. Режим коллективного пользования.

Это такая форма обслуживания, при которой возможен одновременный доступ нескольких независимых пользователей к вычислительным ресурсам мощной вычислительной системы. Каждому пользователю предоставляется терминал, с помощью которого он устанавливает связь с системой коллективного пользования. Системы коллективного пользования с однородными запросами (обработка которых занимает примерно одно и то же время) реализуют режим «запрос-ответ» (например, справочный экран на вокзале).В этом режиме ОС работает также как в мультипрограммном. Но, в отличие от пакетного режима, очередь программ, ожидающих выполнения, формируется динамически: по каждому вопросу от терминала соответствующая программа обработки этого запроса попадает в очередь, которую покидает после выполнения. Такой режим обслуживания позволил сократить время ожидания пользователя, но если некоторый пользователь вводит запрос, требующий длительной обработки, то время ожидания других пользователей может возрасти до недопустимых величин. С целью устранения этого недостатка появился режим квантования времени: режим основан на многозадачной обработке; при этом каждой готовой к выполнению программе выделяется для исполнения на процессоре фиксированный, заранее определенный интервал времени (квант). Программа, получившая квант времени, может завершить свою работу в течение этого интервала (тогда она покидает очередь), либо по истечению выделенного кванта времени программа не выполнена до конца (тогда она прерывается и перемещается в конец очереди других готовых к выполнению программ). Такое циклическое обслуживание, основанное на детерминированной схеме прерывания, гарантирует, что всем программам будет выделяться процессорное время «справедливо», то есть никто не сможет монополизировать процессор. Дальнейшее развитие ОС получили при создании многомашинных, мультипроцессорных вычислительных систем, а также локальных и глобальных вычислительных сетей.

Основные принципы построения ОС.

Каждая ОС является уникальной и сложной программной системой. Однако в основу разработки каждой из них положены некоторые общие принципы.

1.Частотный принцип.

Этот принцип основан на выделении в алгоритмах программ действий (в обрабатываемых массивах данных) примерно равных по частоте использования. Для программ и данных, которые часто используются, обеспечиваются условия их быстрого выполнения и быстрого доступа для данных.

2. Принцип модуля.

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

Пусть некоторая программа А в процессе своего выполнения обратилась к модулю С. Во время выполнения модуля С произошло прерывание от внешнего устройства, и началась обработка этого прерывания программой В, которая имеет приоритет больше, чем у программы А и С. В ходе выполнения программа В также обратилась к модулю С. Если модуль С не реентерабельный, то такая ситуация недопустима, так как состояния внутренних рабочих переменных в модуле С соответствует выполнению обращения от программы А на момент прерывания t 1 , поэтому при повторном вхождении в незавершенный модуль С в момент t 2 текущее состояние рабочих ячеек будет потеряно. Реентерабельность, то есть обеспечение повторной входимости в модуль, достигается различными способами, в основе которых лежит отделение кода от данных, то есть внутренних переменных. При каждом обращении к модулю ему предоставляется отдельная область памяти под внутренние переменные. Разработка реентерабельных программ требует применения специальных приемов программирования.

3. Принцип функциональной избирательности (вытекает из 1-го и 2-го).

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

4. Принцип генерируемости.

Этот принцип определяет такой способ исходного представления ОС, который позволял бы настраивать ее под конкретную конфигурацию ЭВМ и конкретный набор прикладных программ, управлением выполнения которых она должна заниматься.

5. Принцип функциональной избыточности.

Этот принцип обеспечивает возможность выполнения одной и той же функциональной операции различными средствами.

6. Принцип «по умолчанию».

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

7. Принцип перемещаемости.

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

8. Принцип защиты.

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


Похожая информация.


операционный система совместимость программа

Принципы построения ОС

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

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

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

  • 2.) Принцип функциональной избирательности - в ОС выделяется некоторая часть важных модулей, которые должны постоянно находится в оперативной памяти для более эффективной организации вычислительного процесса. Эту часть в ОС называют ядром, так как это - основа системы. При формировании состава ядра приходится учитывать два противоречивых требования. С одной стороны, в состав ядра должны войти наиболее часто используемые системные модули, с другой - количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, не был слишком большим. Помимо программных модулей, входящих в состав ядра и постоянно располагающихся в оперативной памяти, может быть много других системных программных модулей, которые получают название транзитных. Транзитные программные модули загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями.
  • 3.) Принцип генерируемости ОС: суть принципа состоит в организации (выборе) такого способа исходного представления центральной системной управляющей программы ОС (ядра и постоянно находящихся в оперативной памяти основных компонентов), который позволял настраивать эту системную супервизорную часть исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач. Эта процедура проводится редко перед достаточно протяженным периодом эксплуатации ОС. Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка для этой программы, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерации получается полная версия ОС. Сгенерированная версия ОС представляет собой совокупность системных наборов модулей и данных.
  • 4.) Принцип функциональной избыточности: Этот принцип учитывает возможность проведения одной и той же работы различными средствами. В состав ОС может входить несколько типов мониторов (модулей супервизора, управляющих тем или другим видом ресурса), различные средства организации коммуникаций между вычислительными процессами. Наличие нескольких типов мониторов, нескольких систем управления файлами позволяет пользователям быстро и наиболее адекватно адаптировать ОС к определенной конфигурации вычислительной системы, обеспечивать максимально эффективную загрузку технических средств при решении конкретного класса задач, получать максимальную производительность при решении заданного класса задач.
  • 5.) Принцип виртуализации: построение виртуальных ресурсов, их распределение и использование в настоящее время применяется практически в любой ОС. Этот принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распределителей ресурсов (мониторов) и использовать единую централизованную схему распределения ресурсов.

Наиболее естественным и законченным проявлением концепции виртуальности является понятие виртуальной машины. Виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представлении выступают с новыми или улучшенными характеристиками, как правило, упрощающими работу с системой. Характеристики могут быть произвольными, но чаще всего пользователи желают иметь собственную «идеальную» по архитектурным характеристикам машину в следующем составе:

  • - единообразная по логике работы виртуальная память практически неограниченного объема.
  • - произвольное количество виртуальных процессоров, способных работать параллельно и взаимодействовать во время работы.
  • - произвольное количество внешних виртуальных устройств, способных работать с памятью виртуальной машины параллельно или последовательно, асинхронно или синхронно по отношению к работе того или иного виртуального процессора, инициирующего работу этих устройств.

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

  • 6.) Принцип независимости программ от внешних устройств: этот принцип реализуется сейчас в подавляющем большинстве ОС общего применения. Впервые наиболее последовательно данный принцип был реализован в ОС UNIX. Реализован он и в большинстве современных ОС для ПК. Этот принцип заключается в том, что связь программ с конкретными устройствами производится не на уровне трансляции программы, а в период планирования ее исполнения. В результате перекомпиляция при работе программы с новым устройством, на котором располагаются данные, не требуется.
  • 7.) Принцип совместимости: одним из аспектов совместимости является способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной ОС, а также для другой аппаратной платформы. Необходимо разделять вопросыдвоичной совместимости и совместимости на уровне исходных текстов приложений.

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

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

Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например, программу для ПК типа IBM PC желательно выполнить на ПК типа Macintosh фирмы Apple), этот компьютер должен работать с машинными командами, которые ему изначально непонятны. В таком случае процессор типа 680?0 (или PowerPC) должен исполнять двоичный код, предназначенный для процессора i80x86. Процессор 80?86 имеет свои собственные дешифратор команд, регистры и внутреннюю архитектуру. Процессор 680?0 не понимает двоичный код 80?86, поэтому он должен выбрать каждую команду, декодировать ее, чтобы определить, для чего она предназначена, а затем выполнить эквивалентную подпрограмму, написанную для 680?0.

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

  • 8.) Принцип открытости и наращиваемости: Открытая операционная система доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) ОС позволяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т.д. Другими словами, следует обеспечить возможность легкого внесения дополнений и изменений в необходимых случаях без нарушения целостности системы. Прекрасные возможности для расширения предоставляет подход к структурированию ОС по типу клиент-сервер с использованием микро-ядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программ-мы и набора непривилегированных услуг (серверов). Основная часть ОС остается неизменной, и в то же время могут быть добавлены новые серверы или улучшены старые. Этот принцип иногда трактуют как расширяемость системы.
  • 9.) Принцип мобильности: операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа, которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера (архитектуру вычислительной системы), на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же. Создание переносимой ОС аналогично написанию любого переносимого кода, при этом нужно следовать некоторым правилам:
    • - большая часть ОС должна быть выполнена на языке, имеющемся на всех системах, на которые планируется в дальнейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой.
    • - важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование регистрами и другими аппаратными средствами. Наконец, если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно-зависимую структуру в программно задаваемые данные абстрактного типа.

Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.

10.) Принцип обеспечения безопасности вычислений: обеспечение безопасности при выполнении вычислений является желательным свойством для любой много-пользовательской системы. Правила безопасности определяют такие свойства, как защиту ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов, таких, например, как память.

На этой страничке мы поговорим на такие темы, как: Модульный принцип построения компьютера, операционной системы.

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

Кроме этих функциональных требований к операционным системам предъявляются не менее важные принципы построения, обеспечивающие жизнеспособность системы : модульность , расширяемость, принцип функциональной избирательности, переносимость (мобильность), надежность и отказоустойчивость, совместимость, безопасность, производительность.

Модульный принцип построения компьютера

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

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

  • модуль, отвечающий за загрузку ОС.
  • модуль обработки прерываний.
  • модуль справочной системы.
  • конфигурационные файлы.
  • утилиты.
  • драйверы.
  • библиотеки программ и др.

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

Расширяемость

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

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

Изменения ОС обычно представляют собой приобретение новых свойств:

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

Принцип функциональной избирательности

Принцип функциональной избирательности заключается в следующем: разделение всех модулей системы в зависимости от их приоритетов и наиболее оптимальное формирование состава ядра ОС.

В ОС выделяется некоторая часть важных модулей (ядро), которые должны постоянно находиться в оперативной памяти для более эффективной организации вычислительного процесса. Эта часть ОС образует основу системы и при формировании ее состава требуется учитывать два противоречивых требования:

  1. В состав ядра должны войти наиболее часто используемые системные модули.
  2. Количество модулей должно быть таким, чтобы объем памяти, занимаемый ядром, был бы не слишком большим (т.к. большая часть ядра загружается в оперативную память).

Переносимость (мобильность)

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

Надежность, отказоустойчивость и совместимость

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

Принцип совместимости заключается в следующем:

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

Безопасность и производительность

Принцип безопасности заключается в следующем:

  • Защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов (например, таких как память).
  • Защита данных от несанкционированного доступа.

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

Понравилось? Лайкни нас на Facebook