Файл: Функции операционных систем персональных компьютеров(ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ).pdf
Добавлен: 17.05.2023
Просмотров: 117
Скачиваний: 3
СОДЕРЖАНИЕ
1. ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ
1.1 Особенности алгоритмов управления ресурсами
1.2 Особенности аппаратных платформ
1.3 Особенности областей использования
1.4 Особенности методов построения
1.5 СИСТЕМЫ ПАКЕТНОЙ ОБРАБОТКИ
1.6 СИСТЕМЫ РАЗДЕЛЕНИЯ ВРЕМЕНИ
2 СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ
2.2 Надежность и устойчивость операционных систем
16
Удобство.
Средства операционной системы должны быть простыми и гибкими, а логика ее работы ясна пользователю. Современные операционные системы ориентированы на обеспечение пользователю максимально возможного удобства при работе с ними. Необходимым условием этого стало наличие у операционной системы графического пользовательского интерфейса и всевозможных мастеров – программ, автоматизирующих активизацию функций, подключение периферийных устройств, установку, настройку и эксплуатацию самой операционной системы.
2.4 Переносимость
Расширяемость. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться десятилетиями. Примером может служить операционная система UNIX. Поэтому операционные системы всегда эволюционно изменяются со временем, и эти изменения более значимы, чем изменения аппаратных средств. Изменения операционной системы обычно представляют собой приобретение ею новых свойств. Например, поддержка новых устройств, таких как CD-ROM, возможность связи с сетями нового типа, поддержка многообещающих технологий, таких как графический интерфейс пользователя или объектно ориентированное программное окружение, использование более чем одного процессора. Сохранение целостности кода, какие бы изменения ни вносились в операционную систему, является главной целью разработки.
Расширяемость может достигаться за счет модульной структуры операционной системы, при которой программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс. Новые компоненты могут быть добавлены в операционную систему модульным путем, они выполняют свою работу, используя интерфейсы, поддерживаемые существующими компонентами.
Использование объектов для представления системных ресурсов также улучшает расширяемость системы. Объекты — это абстрактные типы данных, над которыми можно производить только те действия, которые предусмотрены специальным набором объектных функций. Объекты позволяют единообразно управлять системными ресурсами. Добавление новых объектов не разрушает существующие объекты и не требует изменений существующего кода.
Прекрасные возможности для расширения предоставляет подход к структурированию операционной системы по типу «клиент—сервер» с использованием микроядерной технологии. В соответствии с этим подходом операционная система строится как совокупность привилегированной управляющей программы и набора непривилегированных услуг-серверов.
17
Основная часть операционной системы может оставаться неизменной, в то время как могут быть добавлены новые серверы или улучшены старые.
Средства вызова удаленных процедур (RPC) также дают возможность расширить функциональные возможности операционной системы. Новые программные процедуры могут быть добавлены в любую машину сети и немедленно поступить в распоряжение прикладных программ на других машинах сети.
Некоторые операционные системы для улучшения расширяемости поддерживают загружаемые драйверы, которые могут быть добавлены в систему во время ее работы. Новые файловые системы, устройства и сети могут поддерживаться путем написания драйвера устройства, драйвера файловой системы или транспортного драйвера и загрузки его в систему.
Требование переносимости кода тесно связано с расширяемостью.
В идеальном случае код операционной системы должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которые различаются не только типом процессора, но и способом организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа. Переносимые операционные системы имеют несколько вариантов реализации для разных платформ, такое свойство операционной системы называется также многоплатформенностью. Достигается это свойство за счет того, что основная часть операционной системы пишется на языке высокого уровня (например С, C++ и др.) и может быть легко перенесена на другой компьютер (машинно-независимая часть), а некоторая меньшая часть операционной системы (программы ядра) приходится машинно-зависимой и разрабатывается на машинном языке другого компьютера.
2.5 Безопасность
Безопасность (защищенность). Каждый пользователь хочет, чтобы другие пользователи не мешали. Операционная система должна защищать пользователей и от воздействия чужих ошибок, и от попыток намеренного со злым умыслом вмешательства (несанкционированного доступа). С этой целью в операционных системах как минимум должны быть средства аутентификации – определения легальности пользователей, авторизации – предоставления легальным пользователям установленные права доступа к ресурсам, и аудита – фиксации всех потенциально опасных для системы событий.
Свойства безопасности особенно важны для сетевых операционных систем. В таких операционных системах к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети.
В дополнение к стандарту POSIX правительство США также определило требования компьютерной безопасности для приложений, используемых
18
правительством. Многие из этих требований являются желаемыми свойствами для любой многопользовательской системы. Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов (таких, как память).
Обеспечение защиты информации от несанкционированного доступа является обязательной функцией сетевых операционных систем. В большинстве популярных систем гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США.
Основы стандартов в области безопасности были заложены «Критериями оценки надежных компьютерных систем». Этот документ, изданный в США в 1983 г. Национальным центром компьютерной безопасности (NCSC — National Computer Security Center), часто называют Оранжевой книгой.
В соответствии с требованиями Оранжевой книги безопасной считается такая система, которая «посредством специальных механизмов защиты контролирует доступ к информации таким образом, что только имеющие соответствующие полномочия лица или процессы, выполняющиеся от их имени, могут получить доступ на чтение, запись, создание или удаление информации».
Иерархия уровней безопасности, приведенная в Оранжевой книге, помечает низший уровень безопасности как D, а высший — как А.
1. К уровню D причисляются системы, оценка которых выявила их несоответствие требованиям всех других классов.
2. Основными свойствами, характерными для С-систем, являются: наличие подсистемы учета событий, связанных с безопасностью, и избирательный контроль доступа. Уровень С делится на 2 подуровня: уровень С1, обеспечивающий защиту данных от ошибок пользователей, но не от действий злоумышленников, и более строгий уровень С2. На уровне С2 должны присутствовать средства секретного входа, обеспечивающие идентификацию пользователей путем ввода уникального имени и пароля перед тем, как им будет разрешен доступ к системе. Избирательный контроль доступа, требуемый на этом уровне, позволяет владельцу ресурса определить, кто имеет доступ к ресурсу и что он может с ним делать. Владелец делает это путем предоставляемых прав доступа пользователю или группе пользователей. Средства учета и наблюдения (auditing) — обеспечивают возможность обнаружить и зафиксировать важные события, связанные с безопасностью, или любые попытки создать, получить доступ или удалить системные ресурсы. Защита памяти заключается в том, что память инициализируется перед тем, как повторно используется. На этом уровне система не защищена от ошибок пользователя, но поведение его может быть проконтролировано по записям в журнале, оставленным средствами наблюдения и аудитинга.
3. Системы уровня В основаны на помеченных данных и распределении
19
пользователей по категориям, то есть реализуют мандатный контроль доступа. Каждому пользователю присваивается рейтинг защиты, и он может получать доступ к данным только в соответствии с этим рейтингом. Этот уровень, в отличие от уровня С, защищает систему от ошибочного поведения пользователя.
4. Уровень А является самым высоким уровнем безопасности, он требует в дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям безопасности.
2.6 Совместимость
1. Совместимость. Существует несколько "долгоживущих" популярных операционных систем (разновидности UNIX, MS-DOS, Windows3.x, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Для пользователя, переходящего с одной операционной системы на другую, очень привлекательна интересная возможность – взять и выполнить свои приложения в новой операционной системе. Если операционная система обладает средствами для выполнения прикладных программ, написанных для других операционных систем, то эта система совместима с этими системами. Следует различать что, есть совместимость на уровне двоичных кодов, и совместимость на уровне исходных текстов. Кроме этого, понятие совместимости включает также поддержку пользовательских интерфейсов других операционных систем.
Совместимость.
Первый из аспектов совместимости - когда у операционной системы есть способность выполнять программы, написанные для других операционных систем или для более ранних версий данной операционной системы, и ещё для другой аппаратной платформы.
Нужно разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений. Двоичной совместимости можно достигнуть в том случае, это когда можно взять исполняемую программу и запустить ее на выполнение в другой операционной системе. Для этого необходимо: совместимость на уровне системных вызовов и даже на уровне библиотечных вызовов, если они являются динамически связываемыми, и совместимость на уровне команд процессора.
Совместимость на уровне исходных текстов запрашивает наличия соответствующего компилятора в составе программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. По этому необходима перекомпиляция этих исходных текстов в новый выполняемый модуль.
Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты
20
имеются всегда. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах.
Обладает ли новая операционная система двоичной совместимостью или совместимостью с существующими системами исходных текстов, это зависит от многих факторов. Самый главный из них — архитектура процессора, на котором работает новая операционная система. Если процессор, на который переносится операционная система, использует тот же набор команд (возможно, с некоторыми добавлениями) и тот же диапазон адресов, то тогда двоичная совместимость должна быть достигнута очень просто.
И ещё бывает сложно достигать двоичной совместимости между процессорами, которые основанны были на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например, DOS-программу на Mac), то такой компьютер должен работать с машинными командами, которые ему изначально были непонятны. Тоесть, процессор типа 680x0 на Mac будет исполнять двоичный код, предназначенный для процессора 80x86 в PC. Процессор 80x86 имеет свои собственные внутреннюю архитектуру, дешифраторы команд и регистры. Процессор 680x0 не понимает двоичный код 80x86, потому он будет должен каждую выбранную команду декодировать, чтобы определить, для чего эти команды предназначены, а затем выполнить эквивалентную подпрограмму, написанную для 680x0. Так как к тому же у 680x0 нет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в 80x86, процессор будет имитировать все эти элементы с использованием своих регистров или памяти. И ему надо тщательно воспроизводить результаты каждой команды, что требует специально написанных подпрограмм для 680x0, гарантирующих, что состояние эмулируемых регистров и флагов после выполнения каждой команды будет в точности таким же, как и на реальном 80x86.
Это простая, но очень медленная работа, так как микрокод внутри процессора 80x86 исполняется на значительно более быстродействующем уровне, чем эмулирующие его внешние команды 680x0. За время выполнения одной команды 80x86 на 680x0 реальный 80x86 может выполнить десятки команд. Следовательно, если процессор, производящий эмуляцию, не настолько быстр, чтобы компенсировать все потери при эмуляции, то программы, исполняющиеся под эмуляцией, будут очень медленными.