Основные принципы построения ОС.
Частотный принцип. Основан на выделении в алгоритмах программ, а в обрабатываемых массивах действий и данных по частоте использования. Действия и данные, которые часто используются, располагаются в операционной памяти, для обеспечения наиболее быстрого доступа. Основным средством такого доступа является организация многоуровневого планирования. На уровень долгосрочного планирования выносятся редкие и длинные операции управления деятельностью системы. К краткосрочному планированию подвергаются часто используемые и короткие операции. Система инициирует или прерывает исполнение программ, предоставляет или забирает динамически требуемые ресурсы, и прежде всего центральный процессор и память.
Принцип модульности. Модуль - это функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. Модуль по определению предполагает возможность замены его на любой другой при наличии соответствующих интерфейсов. Чаще всего при построении ОС разделение на модули происходит по функциональному признаку. Важное значение при построении ОС имеют привилегированные, повторно входимые и реентерабельные модули. Привилегированные модули функционируют в привилегированном режиме, при котором отключается система прерываний, и никакие внешние события не могут нарушить последовательность вычислений. Реентерабельные модули допускают повторное многократное прерывание исполнения и повторный запуск из других задач. Для этого обеспечивается сохранение промежуточных вычислений и возврат к ним с прерванной точки. Повторно входимые модули допускают многократное параллельное использование, однако не допускают прерываний. Они состоят из привилегированных блоков и повторное обращение к ним возможно после завершения какого-либо из этих блоков. Принцип модульности отражает технологические и эксплуатационные свойства системы. Максимальный эффект от использования достигается, если принцип распространяется и на ОС, и на прикладные программы, и на аппаратуру.
Принцип функциональной избирательности.Этот принцип подразумевает выделение некоторых модулей, которые должны постоянно находиться в оперативной памяти для повышения производительности вычислений. Эту часть ОС называют ядром. С одной стороны, чем больше модулей в ОЗУ, тем выше скорость выполнения операций. С другой стороны, объем памяти, занимаемой ядром, не должен быть слишком большим, поскольку в противном случае обработка прикладных задач будет низкоэффективной. В состав ядра включают модули по управлению прерываниями, модули для обеспечения мультизадачности и передачи управления между процессами, модули по распределению памяти и т.д.
Принцип генерируемости ОС.Этот принцип определяет такой способ организации архитектуры ядра ОС, который позволял бы настраивать его, исходя из конкретной конфигурации вычислительного комплекса и круга решаемых задач. Эта процедура выполняется редко, перед достаточно протяженным периодом эксплуатации ОС. Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка. В результате генерации получается полная версия ОС, представляющая собой совокупность системных наборов модулей и данных. Принцип модульности существенно упрощает генерацию. Наиболее ярко этот принцип используется в ОС Linux, которая позволяет не только генерировать ядро ОС, но указывать состав подгружаемых, т.н. транзитных модулей. В остальных ОС конфигурирование выполняется в процессе инсталляции.
Принцип функциональной избыточности.Принцип учитывает возможность проведения одной и той же операции различными средствами. В состав ОС могут входить несколько разных мониторов, управляющих тем или иным видом ресурса, несколько систем управления файлами и т.д. Это позволяет быстро и достаточно адекватно адаптировать ОС к определенной конфигурации вычислительной системы, обеспечить максимально эффективную загрузку технических средств при решении конкретного класса задач и получить при этом максимальную производительность.
Принцип умолчания.Применяется для облегчения организации связи с системами, как на стадии генерации, так и при работе с системой. Принцип основан на хранении в системе некоторых базовых описаний, структур процесса, модулей, конфигураций оборудования и данных, определяющих прогнозируемые объемы требуемой памяти, времени счета программы, потребности во внешних устройствах, которые характеризуют пользовательские программы и условия их выполнения. Эту информацию пользовательская система использует в качестве заданной, если она не будет заданна или сознательно не конкретизирована. В целом применение этого принципа позволяет сократить число параметров устанавливаемых пользователем, когда он работает с системой.
Принцип перемещаемости.Предусматривает построение модулей, исполнение которых не зависит от места расположения в операционной памяти. Настройка текста модуля в соответствии с его расположением в памяти осуществляется либо специальными механизмами, либо по мере ее выполнения. Настройка заключается в определении фактических адресов, используемых в адресных частях команды, и определяется применяемым способом адресации и алгоритмом распределения оперативной памяти, принятой для данной ОС. Она может быть распределена и на пользовательские программы.
Принцип виртуализации.Принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распределителей ресурсов (мониторов), используя единую централизованную схему. Концепция виртуальности выражается в понятии виртуальной машины. Любая ОС фактически скрывает от пользователя реальные аппаратные и иные ресурсы, заменяя их некоторой абстракцией. В результате пользователи видят и используют виртуальную машину как достаточно абстрактное устройство, способное воспринимать их программы, выполнять их и выдавать результат. Пользователю совершенно не интересна реальная конфигурация вычислительной системы и способы эффективного использования ее компонентов. Он работает в терминах используемого им языка и представленных ему виртуальной машиной ресурсов. Для нескольких параллельных процессов создается иллюзия одновременного использования того, что одновременно в реальной системе существовать не может. Виртуальная машина может воспроизводить и реальную архитектуру, однако элементы архитектуры выступают с новыми, либо улучшенными, характеристиками, зачастую упрощающими работу с системой. Идеальная, с точки зрения пользователя, машина должна иметь:
- единообразную по логике работы виртуальную память практически неограниченного объема;
- произвольное количество виртуальных процессоров, способных функционировать параллельно и взаимодействовать во время работы;
- произвольное количество виртуальных внешних устройств, способных получать доступ к памяти виртуальной машины последовательно или параллельно, синхронно или асинхронно. Объемы информации не ограничиваются.
Чем больше виртуальная машина, реализуемая ОС, приближена к идеальной, т.е. чем больше ее архитектурно-логические характеристики отличны от реальных, тем большая степень виртуальности достигнута. ОС строится как иерархия вложенных друг в друга виртуальных машин. Нижним уровнем программ является аппаратные средства машин. Следующим уровнем уже является программным, который совместно с нижним уровнем обеспечивает достижение машиной новых свойств. Каждый новый уровень дает возможность расширять функции возможности по обработке данных и позволяет достаточно просто производить доступ к низшим уровням. Применение метода иерархического упорядочивания виртуальных машин наряду с достоинствами: систематичность проекта, возрастание надежности программных систем, уменьшение сроков разработки имеет проблемы. Основная из них: определение свойств и количества уровней виртуализации, определения правил внесения на каждый уровень необходимых частей ОС. Свойства отдельных уровней абстракции (виртуализации):
1. На каждом уровне ничего не известно о свойствах и о существовании более высоких уровней.
2. На каждом уровне ничего не известно о внутреннем строении других уровней. Связь между ними осуществляется только через жесткие, заранее определенные сопряжения.
3. Каждый уровень представляет собой группу модулей, некоторые из них являются внутренними для данного и доступны для других уровней. Имена остальных модулей известны на следующим, более высоком уровне, и представляют собой сопряжение с этим уровнем.
4. Каждый уровень располагает определенными ресурсами и либо скрывает от других уровней, либо представляет другим уровням их абстракции (виртуальные ресурсы).
5. Каждый уровень может обеспечивать некоторую абстракцию данных в системе.
6. Предположения, что на каждом уровне делается относительно других уровней, должны быть минимальными.
7. Связь между уровнями ограничена явными аргументами, передаваемыми с одного уровня на другой.
8. Недопустимо совместное использование несколькими уровнями глобальных данных.
9. Каждый уровень должен иметь более прочное и слабое сцепление с другими уровнями.
10. Всякая функция, выполняемая уровнем абстракции должна иметь единственный вход.
Принцип независимости ПОот внешних устройств. Принцип заключается в том, что связь программы с конкретными устройствами производится не на уровне трансляции программы, а в период планирования ее использования. При работе программы с новым устройством, перекомпиляция не требуется. Принцип реализуется в подавляющем большинстве ОС.
Принцип совместимости.Этот принцип определяет возможность выполнения ПО, написанного для другой ОС или для более ранних версий данной ОС. Различают совместимость на уровне исполняемых файлов и на уровне исходных текстов программ. В первом случае готовую программу можно запустить на другой ОС. Для этого требуется совместимость на уровне команд микропроцессора, на уровне системных и библиотечных вызовов. Как правило, используются специально разработанные эмуляторы, позволяющие декодировать машинный код и заменить его эквивалентной последовательностью команд в терминах другого процессора. Совместимость на уровне исходных текстов требует наличия соответствующего транслятора и также совместимости на уровне системных вызовов и библиотек.
Принцип открытости и наращиваемости.Открытость подразумевает возможность доступа для анализа как системным специалистам, так и пользователям. Наращиваемость подразумевает возможность введения в состав ОС новых модулей и модификации существующих. Построение ОС по принципу клиент-сервер с использованием микроядерной структуры обеспечивает широкие возможности по наращиваемости. В этом случае ОС строится как совокупность привилегированной управляющей программы и непривилегированных услуг-серверов. Основная часть остается неизменной, тогда как серверы могут быть легко заменены или добавлены.
Принцип мобильности (переносимости).Подразумевает возможность перенесения ОС с аппаратной платформы одного типа на платформу другого типа. При разработке переносимой ОС следуют следующим правилам: большая часть ОС пишется на языке, который имеет трансляторы на всех платформах, предназначенных для использования. Это язык высокого уровня, как правило, С. Программа на ассемблере в общем случае не является переносимой. Далее, минимизируют или исключают те фрагменты кода, которые непосредственно взаимодействуют с аппаратными ресурсами. Аппаратно-зависимый кол изолируется в нескольких хорошо локализуемых модулях.
Принцип безопасности.Подразумевает защиту ресурсов одного пользователя от другого, а также предотвращения захвата всех системных ресурсов одним пользователем, включая и защиту от несанкционированного доступа. Согласно стандарту NCSC (National Computer Security Center) 1985 года, т.н. Оранжевой книге, системы подразделяются на 7 категорий: D, С1, С2, В1, В2, ВЗ, А1, где А является классом с максимальной защитой. Большинство современных ОС отвечают требованиям уровня С2. Он обеспечивает:
- средства секретного входа, позволяющие идентифицировать пользователя путем ввода уникального имени и пароля при входе в систему;
- избирательный контроль доступа, позволяющий владельцу ресурса определить, кто имеет доступ к ресурсу и его права;
- средства учета и наблюдения (аудита), обеспечивающие возможность обнаружения и фиксации событий, связанных с безопасностью системы и доступом к системным ресурсам;
- защита памяти, подразумевающая инициализацию перед повторным использованием.
На этом уровне система не защищена от ошибок пользователя, но его действия легко отслеживаются по журналу. Системы уровня В распределяют пользователей по категориям, присваивая определенный рейтинг защиты, и предоставляя доступ к данным только в соответствии с этим рейтингом. Уровень А требует выполнения формального, математически обоснованного доказательства соответствия системы определенным критериям безопасности. На уровне А управляющие безопасностью механизмы занимают до 90% процессорного времени. В ОС реализуется несколько подходов для обеспечения защиты. Одним из них является двухконтекстность работы процессора, т.е. в каждый момент времени процессор может выполнить либо программу из состава ОС, либо прикладную или служебную программу, не входящую в состав ОС. Для того, чтобы гарантировать невозможность непосредственного доступа к любому разделяемому ресурсу со стороны пользовательских и служебных программ, в состав машинных команд вводятся специальные привилегированные команды, управляющие распределением и использованием ресурсов. Эти команды разрешается выполнять только ОС. Контроль за их выполнением производится аппаратно. При попытке выполнить такую команду возникает прерывание, и процессор переводится в привилегированный режим. Для реализации принципа защиты используется механизм защиты данных и текста программ, находящихся в ОЗУ. Самым распространенным подходом при этом является контекстная защита. Для программ и пользователей выделяется определенный участок памяти, и выход за его пределы приводит к прерыванию по защите. Механизм контроля реализуется аппаратным способом на основе ограниченных регистров или ключей памяти. Применяются различные способы защиты хранения данных в файлах. Самый простой способ защиты - парольный.
Дата добавления: 2015-06-27; просмотров: 1251;