- •Рецензенты:
- •Ответственные за выпуск:
- •Оглавление
- •Введение
- •1. Назначение и функции операционной системы
- •1.1. Функциональные компоненты операционной системы автономного компьютера
- •1.1.1. Управление процессами
- •1.1.2. Управление памятью
- •1.1.3. Управление файлами и внешними устройствами
- •1.1.4. Защита данных и администрирование
- •1.1.5. Интерфейс прикладного программирования
- •1.1.6. Пользовательский интерфейс
- •Вопросы для самопроверки
- •Контрольные вопросы
- •1.2. Сетевые операционные системы
- •1.2.1. Сетевые и распределенные ос
- •1.2.2. Два значения термина «сетевая ос»
- •1.2.3. Функциональные компоненты сетевой ос
- •1.2.4. Сетевые службы и сетевые сервисы
- •1.2.5. Встроенные сетевые службы и сетевые оболочки
- •1.3. Требования к современным операционным системам
- •Вопросы для самопроверки
- •Контрольные вопросы
- •2. Архитектура операционной системы
- •2.1. Ядро и вспомогательные модули ос
- •2.2. Ядро и привилегированный режим
- •2.3. Многослойная структура ос
- •2.4. Аппаратная зависимость ос
- •2.5. Переносимость операционной системы
- •Вопросы для самопроверки
- •Контрольные вопросы
- •2.6. Микроядерная архитектура
- •2.6.1. Концепция
- •2.6.2. Преимущества и недостатки микроядерной архитектуры
- •2.7. Совместимость и множественные прикладные среды
- •2.7.1. Двоичная совместимость и совместимость исходных текстов
- •2.7.2. Трансляция библиотек
- •2.7.3. Способы реализации прикладных программных сред
- •Вопросы для самопроверки
- •Контрольные вопросы
- •3. Процессы и потоки
- •3.1. Мультипрограммирование
- •3.1.1. Мультипрограммирование в системах пакетной обработки
- •3.1.2. Мультипрограммирование в системах разделения времени
- •3.1.3. Мультипрограммирование в системах реального времени
- •Вопросы для самопроверки
- •Контрольные вопросы
- •3.2. Мультипроцессорная обработка
- •Вопросы для самопроверки
- •Контрольные вопросы
- •3.3. Планирование процессов и потоков
- •3.4. Понятия «процесс» и «поток»
- •3.4.1. Создание процессов и потоков
- •3.4.2. Планирование и диспетчеризация потоков
- •3.4.3. Состояния потока
- •3.4.4. Вытесняющие и невытесняющие алгоритмы планирования
- •3.4.5. Алгоритмы планирования, основанные на квантовании
- •3.4.6. Алгоритмы планирования, основанные на приоритетах
- •3.4.7. Смешанные алгоритмы планирования
- •3.5. Синхронизация процессов и потоков
- •3.5.1. Цели и средства синхронизации
- •3.5.2. Сигналы
- •Вопросы для самопроверки
- •Контрольные вопросы
- •4. Управление памятью
- •4.1. Функции операционной системы по управлению памятью
- •4.2. Типы адресов
- •Вопросы для самопроверки
- •Контрольные вопросы
- •4.3. Алгоритмы распределения памяти
- •4.3.1. Алгоритмы распределения без использования внешней памяти Распределение памяти динамическими разделами
- •Распределение памяти перемещаемыми разделами
- •4.3.2. Алгоритмы распределения с использованием внешней памяти
- •Свопинг и виртуальная память
- •Страничное распределение
- •Сегментное распределение
- •Сегментно-страничное распределение
- •Разделяемые сегменты памяти
- •Вопросы для самопроверки
- •Контрольные вопросы
- •5. Ввод-вывод и файловая система
- •5.1. Задачи операционной системы по управлению файлами и устройствами
- •5.2. Специальные файлы
- •5.3. Логическая организация файловой системы
- •5.3.1. Цели и задачи файловой системы
- •5.3.2. Типы файлов
- •5.3.3. Иерархическая структура файловой системы
- •5.3.4. Имена файлов
- •5.3.5. Монтирование
- •5.3.6. Атрибуты файлов
- •5.3.7. Логическая организация файла
- •Вопросы для самопроверки
- •Контрольные вопросы
- •5.4. Физическая организация файловой системы
- •5.4.1. Диски, разделы, секторы, кластеры
- •5.4.2. Физическая организация и адресация файла
- •2048 Записей
- •5.5. Физическая организация fat
- •Кластер № 17 – начальный кластер файла file1; кластер № 18 – начальный кластер файла file2
- •5.6. Физическая организация файловых систем s5 и ufs
- •5.7. Физическая организация файловой системы ntfs
- •5.7.1. Структура тома ntfs
- •5.7.2. Структура файлов ntfs
- •5.7.3. Каталоги ntfs
- •Вопросы для самопроверки
- •Контрольные вопросы
- •5.8. Контроль доступа к файлам
- •5.8.1. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- •5.8.2. Механизм контроля доступа
- •Имена файлов
- •5.8.3. Организация контроля доступа в ос unix
- •Процесс
- •Запрос операции
- •Вопросы для самопроверки
- •Контрольные вопросы
- •5.8.4. Организация контроля доступа в ос Windows nt
- •5.8.5. Разрешения на доступ к каталогам и файлам
- •Соотношение индивидуальных и стандартных разрешений для файлов
- •Вопросы для самопроверки
- •Контрольные вопросы
- •Ответы на вопросы для самопроверки
- •Лабораторные работы
- •Методические указания для проведения лабораторных занятий и выполнения контрольной работы
- •Лабораторная работа № 1 Системный реестр Windows 9x. Редактор базы данных регистрации
- •Редактор системного реестра. Утилита regedit.Exe
- •Командный файл системного реестра
- •Утилита редактора системных правил Poledit
- •Список ключей системного реестра
- •Заблокировать возможность удаления принтеров.
- •Заблокировать возможность добавления принтеров.
- •Скрыть вкладку «Устройства» утилиты «Система».
- •Скрыть вкладку «Профили оборудования» утилиты «Система».
- •Лабораторная работа № 2 Администрирование сетевой ос Windows xp
- •Установка удаленного терминала (Remote DeskTop Connection)
- •Работа с Windows 2003 Server
- •Утилиты панели управления
- •Управление рабочей станцией
- •Администрирование
- •Конфигурирование сервера
- •Управление контроллером домена
- •Предоставление доступа к ресурсам сервера
- •Привилегия клиента удаленного терминала
- •Панель задач. Управление процессами
- •Лабораторная работа № 3 Командные центры Windows 9х
- •Утилита «Дата/время»
- •Утилита «Клавиатура»
- •Утилита «Мышь»
- •Утилита «Специальные возможности»
- •Утилита «Принтеры»
- •Утилита «Шрифты»
- •Утилита «Установка и удаление программ»
- •Утилита «Система»
- •Утилита «Язык и стандарты» Окно утилиты Язык и стандарты содержит вкладки Денежные единицы, Время, Дата, Региональные стандарты, Числа.
- •Рабочий стол. Свойства рабочего стола
- •Лабораторная работа № 4 Установка ос Fedora Core X. Режимы работы системы. Инсталляция приложений
- •Подготовка жесткого диска к инсталляции ос Linux
- •Программа редактирования разделов жесткого диска PowerQuest PartitionMagic 8.0
- •Создать как: (Create as:) Logical Partition Тип раздела: (Partition type:) Linux Ext3 Размер: (Size:) 9500
- •Инсталляция ос Fedora Core X
- •Графический интерфейс gnome ос Linux
- •Лабораторная работа № 4 Установка ос Fedora Core X
- •Текстовый интерфейс ос Linux Алфавитно-цифровой терминал
- •Режимы работы ос Linux
- •Установка приложений в ос Red Hat
- •Лабораторная работа № 5 Подсистемы управления ос
- •Управление ресурсами ос Linux
- •Графические утилиты управления процессами. Системный монитор
- •Подсистемы управления, общие для всех ресурсов
- •Администрирование в ос Red Hat. Локальные системы
- •Пользовательский интерфейс
- •Регистрация событий
- •Лабораторная работа № 6 Файловые системы. Сетевые сервисы ос Linux
- •Команды и утилиты, предназначенные для работы с файловыми системами
- •Создание, редактирование и удаление разделов жесткого диска. Утилита fdisk
- •Создание и локализация файловой системы
- •Файловые службы и сетевые файловые системы
- •Автомонтирование
- •Сервисы Linux
- •Список вопросов к контрольной работе
- •Библиографический список
Вопросы для самопроверки
Что понимают под архитектурой ОС?
Какие три основных слоя принято выделять в структуре вычислительной системы?
Какая роль возложена ОС на интерфейс системных вызовов?
Какие условия при проектировании ОС должны быть соблюдены с тем, чтобы ОС была легко переносимой?
Контрольные вопросы
Назовите составляющие ОС.
На какие группы принято разделять модули ОС?
Какие базовые функции закреплены за модулями ядра?
На какие группы программ подразделяются вспомогательные модули ОС?
Какие режимы процессора Intel x86, используемые ОС для работы ядра, Вам известны?
Какой из режимов работы процессора Intel x86 используется при выполнении модулей ядра?
На какие слои подразделяется ядро ОС?
Какие функции выполняет слой базовых механизмов ядра?
Какие функции выполняет слой менеджеров ресурсов?
Можно ли рассматривать базовую систему ввода-вывода компьютера (BIOS) как часть операционной системы?
В каком случае ОС, написанная на ассемблере, является переносимой?
2.6. Микроядерная архитектура
2.6.1. Концепция
Микроядерная архитектура является альтернативой классическому способу построения операционной системы. Под классической архитектурой в данном случае понимается рассмотренная выше структурная организация ОС, в соответствии с которой все основные функции операционной системы, составляющие многослойное ядро, выполняются в привилегированном режиме. При этом некоторые вспомогательные функции ОС оформляются в виде приложений и выполняются в пользовательском режиме наряду с обычными пользовательскими программами, становясь системными утилитами или обрабатывающими программами. Каждое приложение пользовательского режима работает в собственном адресном пространстве и защищено тем самым от какого-либо вмешательства других приложений. Код ядра, выполняемый в привилегированном режиме, имеет доступ к областям памяти всех приложений, но сам полностью от них защищен. Приложения обращаются к ядру с запросами на выполнение системных функций.
Суть микроядерной архитектуры состоит в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром (рис. 2.4). Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие базовые (но не все) функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами ввода-вывода, связанные с загрузкой или чтением регистров устройств. Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра. Такие функции операционной системы трудно, если не невозможно, выполнить в пространстве пользователя.
Все остальные более высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Однозначного решения о том, какие из системных функций нужно оставить в привилегированном режиме, а какие перенести в пользовательский, не существует. В общем случае многие менеджеры ресурсов, являющиеся неотъемлемыми частями обычного ядра, файловая система, подсистемы управления виртуальной памятью и процессами, менеджер безопасности и т.п., становятся «периферийными» модулями, работающими в пользовательском режиме.
Приложения Утилиты Приложения Утилиты
Пользовательский режим
Привилегированный
режим
Рис. 2.4. Перенос основного объема функций ядра в пользовательское пространство
Работающие в пользовательском режиме менеджеры ресурсов имеют принципиальные отличия от традиционных утилит и обрабатывающих программ операционной системы, хотя при микроядерной архитектуре все эти программные компоненты также оформлены в виде приложений.
Утилиты и обрабатывающие программы вызываются в основном пользователями. Ситуации, когда одному приложению требуется выполнение функции (процедуры) другого приложения, возникают крайне редко. Поэтому в операционных системах с классической архитектурой отсутствует механизм, с помощью которого одно приложение могло бы вызвать функции другого.
Совсем другая ситуация возникает, когда в форме приложения оформляется часть операционной системы. По определению, основным назначением такого приложения является обслуживание запросов других приложений, например создание процесса, выделение памяти, проверка прав доступа к ресурсу и т.д. Именно поэтому менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС, т.е. модулями, основным назначением которых является обслуживание запросов локальных приложений и других модулей ОС. Очевидно, что для реализации микроядерной архитектуры необходимым условием является наличие в операционной системе удобного и эффективного способа вызова процедур одного процесса из другого. Поддержка такого механизма и является одной из главных задач микроядра.
Схематично механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом (рис. 2.5). Клиент, которым может быть либо прикладная программа, либо другой компонент ОС, запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему сообщение. Непосредственная передача сообщений между приложениями невозможна, так как их адресные пространства изолированы друг от друга. Микроядро работает в привилегированном режиме, имеет доступ к адресным пространствам каждого из этих приложений и поэтому может выступать в качестве посредника. Микроядро сначала передает сообщение, содержащее имя и параметры вызываемой процедуры нужному серверу, затем сервер выполняет запрошенную операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения. Таким образом, работа микроядерной операционной системы соответствует известной модели клиент-сервер, в которой роль транспортных средств выполняет микроядро.
Операционные системы, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За эти достоинства приходится платить снижением производительности, что и является основным недостатком микроядерной архитектуры.
Приложения
пользователей
Пользовательский
режим
Привилегированный
режим
Рис. 2.5. Реализация системного вызова в микроядерной архитектуре