Вопросы для самопроверки
Какую роль выполняет ОС при организации сетевой работы?
Что понимают под термином «сетевая оболочка»?
Что означает термин «сетевой сервис»?
Может ли использоваться сетевая оболочка в сетевых операционных системах?
Контрольные вопросы
В чем сходство и различие сетевой и распределенной ОС?
Какие два признака характеризуют термин «сетевая ОС»?
Какие основные функциональные компоненты можно выделить в сетевой ОС?
Дайте определение сетевой службы.
Является ли сетевая служба только клиентской или только серверной?
Назовите принципиальное различие между клиентом и сервером.
Перечислите основные требования, предъявляемые к современным операционным системам.
2. Архитектура операционной системы
Любая хорошо организованная сложная система имеет понятную и рациональную структуру, т.е. разделяется на части модули, имеющие вполне законченное функциональное назначение с четко оговоренными правилами взаимодействия. Ясное понимание роли каждого отдельного модуля существенно упрощает работу по модификации и развитию системы, а сложную систему без хорошей структуры чаще проще разработать заново, чем модернизировать.
Функциональная сложность операционной системы неизбежно приводит к сложности ее архитектуры, под которой понимают структурную организацию ОС на основе различных программных модулей. Обычно в состав ОС входят выполняемые и объектные модули стандартных для данной ОС форматов, библиотеки разных типов, модули исходного текста программ, программные модули специального формата (например, загрузчик ОС, драйверы ввода-вывода), конфигурационные файлы, файлы документации, модули справочной системы и т.д.
Большинство современных операционных систем представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой архитектуры ОС не существует, но существуют универсальные подходы к структурированию ОС.
2.1. Ядро и вспомогательные модули ос
Наиболее общим подходом к структурированию операционной системы является разделение всех ее модулей на две группы:
ядро модули ОС, выполняющие основные функции;
модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т.п. Ядро составляет сердцевину операционной системы. Без него ОС является полностью неработоспособной и не может выполнить ни одну из своих функций.
В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами системными вызовами для выполнения тех или иных действий, например, для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API.
Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, т.е. являются резидентными.
Ядро является движущей силой всех вычислительных процессов в компьютерной системе, и крах ядра равносилен краху всей системы. Поэтому разработчики операционной системы уделяют особое внимание надежности кодов ядра, в результате процесс их отладки может растягиваться на многие месяцы.
Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений. Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме.
Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Например, к таким вспомогательным модулям могут быть отнесены программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Поскольку некоторые компоненты ОС оформлены как обычные приложения, т.е. в виде выполняемых модулей стандартного для данной ОС формата, то часто бывает очень сложно провести четкую грань между операционной системой и приложениями. Решение о том, является какая-либо программа частью ОС или нет, принимает производитель ОС. Среди многих факторов, способных повлиять на это решение, немаловажными являются перспективы того, будет ли программа иметь массовый спрос у потенциальных пользователей данной ОС.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
утилиты программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;
системные обрабатывающие программы текстовые или графиче- ские редакторы, компиляторы, компоновщики, отладчики;
программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор и даже игры;
библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т.д.
Как и обычные приложения, утилиты, системные обрабатывающие программы и библиотеки ОС для выполнения своих задач обращаются к функциям ядра посредством системных вызовов.
Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС. Чтобы добавить новую высокоуровневую функцию, достаточно разработать новое приложение, и при этом не требуется модифицировать ответственные функции, образующие ядро системы. Однако внесение изменений в функции ядра может оказаться гораздо сложнее, и сложность эта зависит от структурной организации самого ядра. В некоторых случаях каждое исправление ядра может потребовать его полной перекомпиляции.
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, т.е. являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.
Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.
Вопросы для самопроверки
Какие характеристики безопасности используются в общей модели объекта, применяемого для разделяемых ресурсов в ОС Windows NT?
Какие схемы хранения объектов используются в ОС Windows NT?
Какой метод доступа (централизованный или распределенный) применяется в Windows NT?
Какие классы операций доступа поддерживаются в Windows NT?
Какие правила в Windows NT используются для назначения списка ACL вновь создаваемому объекту?
По каким правилам в ОС Windows NT определяются действия разрешений?
Контрольные вопросы
Как именуется программа, используемая в ОС Windows NT для проверки прав доступа к объектам?
В чем смысл встроенных пользователей и групп в ОС Windows NT?
Может ли администратор Windows NT создавать пользователей и группы и самостоятельно назначать им права?
Наследуются ли права группы ее членами?
Что понимается под словосочетанием «токен доступа» (access token)?
Какие объекты в Windows NT снабжаются дескрипторами безопасности?
Может ли менять ACL объекта пользователь, который его создал?
Если администратор Windows NT стал владельцем некоторого объекта, принадлежащего другому пользователю, а затем захотел вернуть владение объектом прежнему хозяину, то может ли он это сделать?
В чем отличие элементов ACL Windows NT от ОС UNIX?
Допустимо ли в Windows NT управлять доступом к файлам и каталогам для ФС типа FAT?
Какие типы разрешений определены в Windows NT?
Перечислите стандартные разрешения ОС Windows NT, применяемые для файлов.
Перечислите стандартные разрешения ОС Windows NT, применяемые для каталогов.
Ответы на вопросы для самопроверки
Заменяет реальные машинные команды командами высокого уровня.
Создание и уничтожение процессов, распределение процессорного времени, обеспечение процессов ресурсами, синхронизация и межпроцессное взаимодействие.
Использование объемов памяти больших размеров, превышающих размер наличной физической памяти.
Преобразует символьные имена файлов в физические адреса данных на диске, организует совместный доступ к данным, защищает данные от несанкционированного доступа.
Логический вход в систему, назначение прав доступа к файлам и принтерам, ограничение на выполнение системных действий, аудит со-бытий.
Экранирует от пользователя все низкоуровневые аппаратные интерфейсы.
Сетевая надстройка к операционной системе.
Интерфейс между потребителем и поставщиком услуг (службой).
Структурная организация ОС на основе различных программных модулей.
Аппаратура, ядро, утилиты и приложения.
Согласовать прикладной программный интерфейс с функциями операционной системы.
Большая часть кода пишется на языке, трансляторы которого имеются на всех машинах, аппаратно зависимый код изолируется в нескольких модулях.
В привилегированном режиме остается небольшая часть ОС, соответствующая базовым механизмам, работа которых в пользовательском режиме невозможна.
Микроядро использует механизмы, аналогичные взаимодействию клиента и сервера путем обмена сообщениями.
Возможность ОС выполнять приложения, написанные для дру-гих ОС.
Библиотечные функции одной ОС подготавливаются в среде другой ОС. За счет выполнения этих функций на родном процессоре скорость работы приложения существенно повышается.
Количество задач, выполняемых системой в единицу времени; интерактивная работа пользователя; способность системы выдерживать заранее заданные интервалы времени между запуском задачи и получением результатов.
Квант времени, выдаваемый системой каждому процессу.
Выдерживание заданного интервала времени между запуском задачи и получением результата.
В мультипрограммной среде в каждый момент времени выполняется только одна задача, а в мультипроцессорной – несколько, но каждая на своем процессоре.
Обеспечение процессов необходимыми ресурсами, синхронизация потоков, «зачистка» завершившихся процессов.
Определяет момент времени смены активного потока, выбирает на выполнение готовый поток.
При значительном увеличении кванта времени, когда любая задача может быть решена за один квант.
Потоки реального времени, потоки с переменным приоритетом.
101. Символьные адреса – присваивает пользователь при написании программы.
Виртуальные адреса (математические или логические адреса) –вырабатывает транслятор, переводящий программу на машинный язык.
Физические адреса – соответствуют номерам ячеек оперативной памяти, где будут расположены переменные и команды.
102. Замена всех виртуальных адресов один раз во время загрузки процесса.
Программа загружается в виртуальных адресах, но во время обращения к ОП они преобразуются в физические адреса ОП.
Вытесняемая (paged) и невытесняемая (non-paged).
110. Алгоритмы, основанные на перемещении сегментов процессов между ОП и дисками, и алгоритмы, в которых внешняя память не используется.
111. Свопинг (swapping) – образы процессов перемещаются целиком.
Виртуальная память (virtual memory) – только части образов процессов (сегменты и страницы) перемещаются между ОП и диском.
Файл свопинга или страничный файл.
Нет, так как в этом случае отсутствует механизм прав доступа к областям ОП.
129. Блок-ориентированные и байт-ориентированные.
Логическая модель заменяет физическую структуру хранимых данных на более удобную, представляя ее в виде файла.
Обычные файлы, каталоги и специальные файлы.
Один файл – одно полное имя.
Принципы размещения файлов, каталогов и системной информации на реальном устройстве.
152. На системную (загрузочная запись, FAT, корневой каталог) и область данных.
153. Главная таблица файлов (MFT).
Атрибут. Данные также являются атрибутом файла, как и его имя.
Для разбиения упорядоченных имен файлов на группы с целью сокращения поиска нужного файла.
169. Нет. В роли общего ресурса могут выступать различные внешние устройства: принтеры, модемы, графопостроители и т.п. Область памяти, используемая для обмена данными между процессами, также является разделяемым ресурсом. Сами процессы в некоторых случаях выступают в роли разделяемого ресурса, когда пользователи посылают процессам сигналы, на которые процесс должен реагировать.
170. Пользователь осуществляет доступ к разделяемым ресурсам не непосредственно, а с помощью прикладных процессов, запускаемых от его имени или группы, которой принадлежит пользователь.
Нет. Для файла – чтение, запись, удаление. Для принтера – перезапуск, очистка очереди, приостановка печати.
Избирательный доступ, когда для каждого объекта сам владелец может определить допустимые операции с объектами.
Мандатный доступ (обязательный, принудительный) – это такой подход к определению прав доступа, при котором система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу в зависимости от того, к какой группе пользователей он принад-лежит.
Реальные идентификаторы субъектов задаются процессу при его порождении, а по эффективным идентификаторам проверяются права доступа процесса к файлу. Эффективные идентификаторы могут заменить реальные, но в исходном состоянии они совпадают с реальными.
184. Набор допустимых операций.
185. Древовидная иерархическая структура для файлов и каталогов.
Иерархическая структура «родитель-потомок» для процессов.
Для устройств – принадлежность к определенному типу устройств и связь с устройствами других типов.
Разрешения (permissions) – это множество операций, которые могут быть определены для субъектов всех типов по отношению к объектам любого типа: файлам, каталогам, принтерам, секциям памяти и т.д.
Права (user rights) – определяются для субъектов типа «группа» на выполнение некоторых системных операций: установку системного времени, архивирование файлов, выключение компьютера и т.п. Именно права, а не разрешения отличают одну встроенную группу пользователей от другой. Некоторые права у встроенной группы являются также встроенными – их у группы нельзя отнять. Остальные права можно удалить или добавить из общего списка прав.
Возможности пользователей (user abilities) определяются для отдельных пользователей на выполнение действий, связанных с формированием их операционной среды, например, на изменение состава главного меню и т.д.
Если процесс во время создания объекта явно задает все права доступа, то система безопасности приписывает этот ACL объекту.
Если процесс не снабжает объект списком ACL и объект имеет имя, то применяется принцип наследования разрешений.
Если процесс не задал явно ACL для создаваемого объекта и не имеет наследуемых элементов ACL, то используется список ACL по умолчанию из токена доступа процесса.
Пользователи не могут работать с каталогом или файлом, если они не имеют явного разрешения на это или же они не относятся к группе, которая имеет соответствующее разрешение. Разрешения имеют накопительный характер за исключением разрешения No Access, которое отменяет все прочие разрешения.