
- •Рецензенты:
- •Ответственные за выпуск:
- •Оглавление
- •Введение
- •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
- •Список вопросов к контрольной работе
- •Библиографический список
Вопросы для самопроверки
Какую роль выполняет ОС при организации сетевой работы?
Что понимают под термином «сетевая оболочка»?
Что означает термин «сетевой сервис»?
Может ли использоваться сетевая оболочка в сетевых операционных системах?
Контрольные вопросы
В чем сходство и различие сетевой и распределенной ОС?
Какие два признака характеризуют термин «сетевая ОС»?
Какие основные функциональные компоненты можно выделить в сетевой ОС?
Дайте определение сетевой службы.
Является ли сетевая служба только клиентской или только серверной?
Назовите принципиальное различие между клиентом и сервером.
Перечислите основные требования, предъявляемые к современным операционным системам.
2. Архитектура операционной системы
Любая хорошо организованная сложная система имеет понятную и рациональную структуру, т.е. разделяется на части модули, имеющие вполне законченное функциональное назначение с четко оговоренными правилами взаимодействия. Ясное понимание роли каждого отдельного модуля существенно упрощает работу по модификации и развитию системы, а сложную систему без хорошей структуры чаще проще разработать заново, чем модернизировать.
Функциональная сложность операционной системы неизбежно приводит к сложности ее архитектуры, под которой понимают структурную организацию ОС на основе различных программных модулей. Обычно в состав ОС входят выполняемые и объектные модули стандартных для данной ОС форматов, библиотеки разных типов, модули исходного текста программ, программные модули специального формата (например, загрузчик ОС, драйверы ввода-вывода), конфигурационные файлы, файлы документации, модули справочной системы и т.д.
Большинство современных операционных систем представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой архитектуры ОС не существует, но существуют универсальные подходы к структурированию ОС.
2.1. Ядро и вспомогательные модули ос
Наиболее общим подходом к структурированию операционной системы является разделение всех ее модулей на две группы:
ядро модули ОС, выполняющие основные функции;
модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т.п. Ядро составляет сердцевину операционной системы. Без него ОС является полностью неработоспособной и не может выполнить ни одну из своих функций.
В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами системными вызовами для выполнения тех или иных действий, например, для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API.
Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, т.е. являются резидентными.
Ядро является движущей силой всех вычислительных процессов в компьютерной системе, и крах ядра равносилен краху всей системы. Поэтому разработчики операционной системы уделяют особое внимание надежности кодов ядра, в результате процесс их отладки может растягиваться на многие месяцы.
Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений. Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме.
Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Например, к таким вспомогательным модулям могут быть отнесены программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Поскольку некоторые компоненты ОС оформлены как обычные приложения, т.е. в виде выполняемых модулей стандартного для данной ОС формата, то часто бывает очень сложно провести четкую грань между операционной системой и приложениями. Решение о том, является какая-либо программа частью ОС или нет, принимает производитель ОС. Среди многих факторов, способных повлиять на это решение, немаловажными являются перспективы того, будет ли программа иметь массовый спрос у потенциальных пользователей данной ОС.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
утилиты программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;
системные обрабатывающие программы текстовые или графиче- ские редакторы, компиляторы, компоновщики, отладчики;
программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор и даже игры;
библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т.д.
Как и обычные приложения, утилиты, системные обрабатывающие программы и библиотеки ОС для выполнения своих задач обращаются к функциям ядра посредством системных вызовов.
Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС. Чтобы добавить новую высокоуровневую функцию, достаточно разработать новое приложение, и при этом не требуется модифицировать ответственные функции, образующие ядро системы. Однако внесение изменений в функции ядра может оказаться гораздо сложнее, и сложность эта зависит от структурной организации самого ядра. В некоторых случаях каждое исправление ядра может потребовать его полной перекомпиляции.
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, т.е. являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.
Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.