- •Челябинск
- •2002 Предисловие
- •От издательства
- •Часть 1 Операционные системы и среды
- •Глава 1 Основные понятия Понятие операционной среды
- •Понятия вычислительного процесса и ресурса
- •Диаграмма состояний процесса
- •Реализация понятия последовательного процесса в ос
- •Процессы и треды
- •Прерывания
- •Основные виды ресурсов
- •Классификация операционных систем
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 2 Управление задачами и памятью в операционных системах
- •Планирование и диспетчеризация процессов и задач Стратегии планирования
- •Дисциплины диспетчеризации
- •Вытесняющие и не вытесняющие алгоритмы диспетчеризации
- •Качество диспетчеризации и гарантии обслуживания
- •Диспетчеризация задач с использованием динамических приоритетов
- •Память и отображения, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры)
- •Распределение статическими и динамическими разделами
- •Разделы с фиксированными границами
- •Разделы с подвижными границами
- •Сегментная, страничная и сегментно-страничная организация памяти
- •Сегментный способ организации виртуальной памяти
- •Страничный способ организации виртуальной памяти
- •Сегментно-страничный способ организации виртуальной памяти
- •Распределение оперативной памяти в современных ос для пк
- •Распределение оперативной памяти вMs-dos
- •Распределение оперативной памяти вMicrosoftWindows95/98
- •Распределение оперативной памяти вMicrosoftWindowsNt
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 3 Особенности архитектуры микропроцессоровi80x86
- •Реальный и защищённый режимы работы процессора
- •Новые системные регистры микропроцессоров i80x86
- •Адресация в 32-разрядных микропроцессорахi80х86 при работе в защищённом режиме Поддержка сегментного способа организации виртуальной памяти
- •Поддержка страничного способа организации виртуальной памяти
- •Режим виртуальных машин для исполнения приложений реального режима
- •Защита адресного пространства задач
- •Уровни привилегий для защиты адресного пространства задач
- •Механизм шлюзов для передачи управления на сегменты кода с другими уровнями привилегий
- •Система прерываний 32-разрядных микропроцессоровi80x86
- •Работа системы прерываний в реальном режиме работы процессора
- •Работа системы прерываний в защищённом режиме работы процессора
- •Обработка прерываний в контексте текущей задачи
- •Обработка прерываний с переключением на новую задачу
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 4 Управление вводом/выводом и файловые системы
- •Основные понятия и концепции организации ввода/вывода в ос
- •Режимы управления вводом/выводом
- •Закрепление устройств, общие устройства ввода/вывода
- •Основные системные таблицы ввода/вывода
- •Синхронный и асинхронный ввод/вывод
- •Кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Функции файловой системы ос и иерархия данных
- •Структура магнитного диска (разбиение дисков на разделы)
- •Файловая системаFat
- •Структура загрузочной записиDos
- •Файловые системыVfaTиFat32
- •Файловая система hpfs
- •Файловая система ntfs (New Technology File System)
- •Основные возможности файловой системы ntfs
- •Структура тома с файловой системой ntfs
- •Возможности файловой системыNtfSпо ограничению доступа к файлам и каталогам
- •Основные отличияFaTи ntfs
- •Контрольные вопросы и задачи Вопросы для проверки
- •Задания
- •Глава 5 Архитектура операционных систем и интерфейсы прикладного
- •Принцип функциональной избирательности
- •Принцип генерируемости ос
- •Принцип функциональной избыточности
- •Принцип виртуализации
- •Принцип независимости программ от внешних устройств
- •Принцип совместимости
- •Принцип открытой и наращиваемой ос
- •Принцип мобильности (переносимости)
- •Принцип обеспечения безопасности вычислений
- •Микроядерные операционные системы
- •Монолитные операционные системы
- •Требования, предъявляемые к ос реального времени
- •Мультипрограммность и многозадачность
- •Приоритеты задач (потоков)
- •Наследование приоритетов
- •Синхронизация процессов и задач
- •Предсказуемость
- •Принципы построения интерфейсов операционных систем
- •Интерфейс прикладного программирования
- •Реализация функцийApIна уровне ос
- •Реализация функцийApIна уровне системы программирования
- •Реализация функцийApIс помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Пример программирования в различныхApiос
- •Текст программы дляWindows(WinApi)
- •Текст программы дляLinux(posixapi)
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 6 Проектирование параллельных взаимодействующих вычислительных процессов
- •Независимые и взаимодействующие вычислительные процессы
- •Средства синхронизации и связи при проектировании взаимодействующих вычислительных процессов
- •Использование блокировки памяти при синхронизации параллельных процессов
- •Возможные проблемы при организации взаимного исключения посредством использования только блокировки памяти
- •Алгоритм Деккера
- •Синхронизация процессов посредством операции «проверка и установка»
- •Семафорные примитивы Дейкстры
- •Мьютексы
- •Использование семафоров при проектировании взаимодействующих вычислительных процессов
- •Задача «поставщик – потребитель»
- •Пример простейшей синхронизации взаимодействующих процессов
- •Решение задачи «читатели – писатели»
- •Мониторы Хоара
- •Почтовые ящики
- •Конвейеры и очереди сообщений Конвейеры (программные каналы)
- •Очереди сообщений
- •Примеры создания параллельных взаимодействующих вычислительных процессов
- •Пример создания многозадачного приложения с помощью системы программированияBorlandDelphi
- •Пример создания комплекса параллельных взаимодействующих программ, выступающих как самостоятельные вычислительные процессы
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 7 Проблема тупиков и методы борьбы с ними
- •Понятие тупиковой ситуации при выполнении параллельных вычислительных процессов
- •Примеры тупиковых ситуаций и причины их возникновения
- •Пример тупика на ресурсах типаCr
- •Пример тупика на ресурсах типаCRиSr
- •Пример тупика на ресурсах типаSr
- •1: P(s2); 5: p(s1);
- •Формальные модели для изучения проблемы тупиковых ситуаций
- •Сети Петри
- •Вычислительные схемы
- •Модель пространства состояний системы
- •Методы борьбы с тупиками
- •Предотвращение тупиков
- •Обход тупиков
- •Обнаружение тупика
- •Обнаружение тупика посредством редукции графа повторно используемых ресурсов
- •Методы обнаружения тупика по наличию замкнутой цепочки запросов
- •Алгоритм обнаружения тупика по наличию замкнутой цепочки запросов
- •Контрольные вопросы и задачи Вопросы для проверки
- •Глава 8 Современные операционные системы
- •Семейство операционных системUnix Общая характеристика семейства операционных систем unix, особенности архитектуры семейства осunix
- •Основные понятия системыUnix
- •Виртуальная машина
- •Пользователь
- •Интерфейс пользователя
- •Привилегированный пользователь
- •Команды и командный интерпретатор
- •Процессы
- •Функционирование системыUnix
- •Выполнение процессов
- •Подсистема ввода/вывода
- •Перенаправление ввода/вывода
- •Файловая система
- •Структура файловой системы
- •Защита файлов
- •Межпроцессные коммуникации вUnix
- •Сигналы
- •Семафоры
- •Программные каналы
- •Очереди сообщений
- •Разделяемая память
- •Вызовы удаленных процедур (rpc)
- •Операционная системаLinux
- •Семейство операционных систем os/2WarpкомпанииIbm
- •Особенности архитектуры и основные возможности os/2Warp
- •Особенности интерфейса os/2Warp
- •Серверная операционная система os/2Warp4.5
- •Сетевая ос реального времениQnx
- •Архитектура системыQnx
- •Основные механизмы qnx для организации распредёленных вычислений
- •Контрольные вопросы и задачи Вопросы для проверки
- •Приложение а Тексты программы параллельных взаимодействующих задач
- •Приложение б Тексты программ комплекса параллельных взаимодействующих приложений
- •Текст программы а
- •Текст программы в
- •Текст программы d
- •Текст программы g
- •Список литературы
- •Часть 1 6
- •Глава 5 Архитектура операционных систем и интерфейсы прикладного 240
- •Глава 6 Проектирование параллельных взаимодействующих вычислительных 279
- •Глава 7 Проблема тупиков и методы 348
- •Глава 8 Современные операционные 391
Структура загрузочной записиDos
Сектор, содержащий загрузочную запись, является самым первым на логическом диске (на дискете – имеет физический адрес [0-0-1]). BootRecordсостоит, как мы уже знаем, из двух частей –diskparameterblock(DPB) иsystembootstrap(SB). Структура блока параметров диска (DPB) служит для идентификации физического и логического форматов логического диска, а загрузчикsystembootstrapиграет существенную роль в процессе загрузкиDOS. Эта информационная структура приведена в табл. 4.5.
Первые два байта bootrecordзанимаетJMP– команда безусловного перехода в программуSB. Третий байт содержит код 90Н (NOP– нет операции). Далее располагается восьмибайтовый системный идентификатор, включающий информацию о фирме-разработчике и версии операционной системы. Затем следуетDPB,aпосле него –SB.
Таблица 4.5.Структура загрузочной записиBootRecordдляFAT16
Смещение поля, байт
|
Длина поля, байт
|
Обозначение поля
|
Содержимое поля
|
00Н(0)
|
3
|
JUMP 3EH
|
Безусловный переход на начало SB
|
0ЗН(З)
|
8
|
|
Системный идентификатор
|
0ВН(11)
|
2
|
SectSize
|
Размер сектора, байт
|
0DH (13)
|
1
|
ClastSize
|
Число секторов в кластере
|
0ЕН (14)
|
2
|
ResSecs
|
Число зарезервированных секторов
|
10Н (16)
|
1
|
FATcnt
|
Число копий FAT
|
11Н (17)
|
2
|
RootSize
|
Максимальное число элементов Rdir
|
13Н (19)
|
2
|
TotSecs
|
Число секторов на логическом диске, если его размер не превышает 32 Мбайт, иначе 0000Н
|
15Н (21)
|
1
|
Media
|
Дескриптор носителя
|
16Н (22)
|
2
|
FATsize
|
Размер FAT, секторов
|
18Н (24)
|
2
|
TrkSecs
|
Число секторов на дорожке
|
1АН (26)
|
2
|
HeadCnt
|
Число рабочих поверхностей
|
1СН (28)
|
4
|
HidnSecs
|
Число скрытых секторов
|
20Н (32)
|
4
|
|
Число секторов на логическом диске, если его размер превышает 32 Мбайт
|
24Н (36)
|
1
|
|
Тип логического диска (00Н – гибкий, 80Н – жесткий)
|
25Н (37)
|
1
|
|
Пусто (резерв)
|
26Н (38)
|
1
|
|
Маркер с кодом 29Н
|
27Н (39)
|
4
|
|
Серийный номер тома
|
2ВН (43)
|
11
|
|
Метка тома
|
36Н(54)
|
8
|
|
Имя файловой системы
|
3ЕН (62)
|
|
|
System bootstrap
|
1FEH(510)
|
2
|
|
Сигнатура (слово АА55Н)
|
Для работы с загрузочной записью удобно использовать широко известную утилиту DiskEditorиз комплекта утилит Питера Нортона. Эта утилита снабжена встроенной системой подсказок и необходимой справочной информацией. Используя её, можно сохранять, модифицировать и восстанавливать загрузочную запись, а также выполнять много других операций. Достаточно подробно работа с этой утилитой описана в книге [9].
Таблица 4.6.Структура загрузочной записиbootrecordдля FAT32
Смещение поля, байт
|
Длина поля, байт
|
Обозначение поля
|
Содержимое поля
|
00Н (0)
|
3
|
JUMP ЗЕН
|
Безусловный переход на начало SB
|
03Н (3)
|
8
|
|
Системный идентификатор
|
0ВН (11)
|
2
|
SectSize
|
Размер сектора, байт
|
0DH (13)
|
1
|
ClastSize
|
Число секторов в кластере
|
0ЕН (14)
|
2
|
ResSecs
|
Число зарезервированных секторов, для FAT32 равно 32
|
10Н (16)
|
1
|
FATcnt
|
Число копий FAT
|
11Н(17)
|
2
|
RootSize
|
0000Н
|
13Н (19)
|
2
|
TotSecs
|
0000H
|
15Н(21)
|
1
|
Media
|
Дескриптор носителя
|
16Н (22)
|
2
|
FATsize
|
0000Н
|
18Н (24)
|
2
|
TrkSecs
|
Число секторов на дорожке
|
1АН (26)
|
2
|
HeadCnt
|
Число рабочих поверхностей
|
1СН(28)
|
4
|
HidnSecs
|
Число скрытых секторов (располагаются перед загрузочным сектором). Используется при загрузке для вычисления абсолютного смещения корневого каталога и данных
|
20Н(32)
|
4
|
|
Число секторов на логическом диске |
24Н(36)
|
4
|
|
Число секторов в таблице FAT
|
28Н(37)
|
2
|
|
Расширенные флаги
|
2АН (38)
|
2
|
|
Версия файловой системы
|
2СН (39)
|
4
|
|
Номер кластера для первого кластера корневого Каталога
|
34Н(43)
|
2
|
|
Номер сектора с резервной копией загрузочного Сектора
|
36Н (54)
|
12
|
|
Зарезервировано
|
Загрузочные записи других операционных систем отличаются от рассмотренной. Так, например, в загрузочном секторе для тома с FAT32 в блокеDPBсодержатся дополнительные поля, а те поля, что находятся в привычном для системыFAT16 месте, перенесены. Поэтому ОС, в которой имеется возможность работать с файловой системой FAT16, но нет системы управления файлами, понимающей спецификации FAT32, не может читать данные с томов, отформатированных под файловую систему FAT32. В загрузочном секторе для файловой системы FAT32 по-прежнему байты 00Н по 0АН содержат команду перехода иOEMID, а в байтах 0ВН по 59Н содержатся данные блока DPB. Отличие заключается именно в несколько другой структуре блокаDPB; его содержимое приведено1в табл. 4.6.