Содержание
- 2. Операционные системы 7.1. Сетевые и распределенные операционные системы Большое разнообразие типов компьютеров, используемых в вычислительных сетях,
- 3. Операционные системы 7.1. Сетевые и распределенные операционные системы Сетевая ОС предоставляет пользователю виртуальную вычислительную систему, работать
- 4. Операционные системы 7.1. Сетевые и распределенные операционные системы Сетевые ОС могут быть разделены на три группы:
- 5. Операционные системы 7.2. Виды сетевых операционных систем 1. Сети отделов – используются небольшой группой сотрудников, решающих
- 6. Операционные системы 7.3. Требования, предъявляемые к корпоративным сетевым операционным системам 1. Масштабируемость, т.е. способность обеспечивать работу
- 7. Операционные системы 7.4. Серверные операционные системы ведущих производителей Windows (Microsoft) Windows NT. Применение Windows NT Server
- 8. Операционные системы Windows Server 2003 • Windows Server 2003 Web Edition — операционная система для поддержки
- 9. Операционные системы UNIX Solaris (Sun Microsystems). Sun Solaris сегодня входит в число самых известных коммерческих версий
- 10. Операционные системы AIX (IBM). AIX является клоном UNIX производства IBM, предназначенным для выполнения на серверах IBM
- 11. Операционные системы NetWare (Novell) Основными особенностями последней версии операционной системы, Novell NetWare 6.5, являются возможность создания
- 12. Операционные системы Операционная система Z/OC для высокоуровневых вычислительных устройств eServer z900 (IBM) Z/OS является усовершенствованной версией
- 13. Операционные системы 7.5. Тенденции на рынке операционных систем Перераспределение рынка ОС по данным Gartner Group
- 14. Операционные системы Прогнозы распределения серверного рынка ОС по данным Gartner Group на сентябрь 1999 г.
- 15. Операционные системы Распределение от продажи серверов в ценовой категории менее 25 тыс. долл. по операционным системам
- 16. Операционные системы Российский рынок серверов (1997-2000) с делением по операционным системам (по данным IDC на 2001
- 17. Операционные системы 7.6. Операционная система UNIX 7.6.1. История создания 1. Создание CTSS (Compatible Time Sharing System)
- 18. Операционные системы 7.6.2. Общая характеристика системы UNIX Общие черты Unix независимо от версии: 1. Многопользовательский режим
- 19. Операционные системы 7.6.3. Интерфейс системы UNIX Пользователи Стандартные обслуживающие программы ( оболочка, компиляторы, утилиты для работы
- 20. Операционные системы 7.6.3. Интерфейс системы UNIX У основания пирамиды располагается аппаратное обеспечение, состоящее из центрального процессора,
- 21. Операционные системы 7.6.3. Интерфейс системы UNIX Команду эмулированного прерывания исполняют библиотечные функции, по одной на системный
- 22. Операционные системы 7.6.3. Интерфейс системы UNIX Все версии UNIX содержат большое количество стандартных программ, некоторые из
- 23. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Системные вызовы Аппаратные и эмулированные прерывания Управление
- 24. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Нижний уровень ядра состоит из драйверов устройств
- 25. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Диспетчеризация процессов производится, когда ядро завершает свою
- 26. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Сетевое программное обеспечение часто бывает модульным, с
- 27. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Над сетевыми протоколами располагается интерфейс сокетов, позволяющий
- 28. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Над страничным кэшем располагается система виртуальной памяти.
- 29. Операционные системы 7.6.4. Структура ядра системы Unix (4.4 BSD) Над планировщиком расположена программа обработки сигналов и
- 30. Операционные системы 7.6.5. Загрузка системы UNIX (4.4 BSD) Считывание главной загрузочной записи (первый сектор) загружаемого диска
- 31. Операционные системы Проверка флагов процессом init Процесс многопользовательский ? Установка программы getty Да Нет Запуск сценария
- 32. Операционные системы Процесс 0 Процесс 1 Процесс 2 int login getty sh cp Login: Password: Страничный
- 33. Операционные системы 7.6.5. Загрузка системы UNIX (4.4 BSD) Программа getty устанавливает для каждой линии скорость, после
- 34. Операционные системы 7.6.5. Загрузка системы UNIX (4.4 BSD) На рис выше процесс getty, работающий на терминале
- 35. Операционные системы 7.6.6. Оболочка системы UNIX Система поддерживает графическое окружение X Windows, но многие программисты предпочитают
- 36. Операционные системы 7.6.6. Оболочка системы UNIX У команд оболочки могут быть аргументы, которые передаются запускаемой программе
- 37. Операционные системы 7.6.6. Оболочка системы UNIX Программа оболочки не должна открывать терминал, чтобы прочитать с него
- 38. Операционные системы 7.6.6. Оболочка системы UNIX В системе UNIX часто используются командные строки, в которых первая
- 39. Операционные системы 7.6.6. Оболочка системы UNIX Примеры командных строк: 1) cp file1 file2 - копировать файл
- 40. Операционные системы 7.6.6. Оболочка системы UNIX Примеры командных строк: 7) wc-1 b& Запустит программу подсчета количества
- 41. Операционные системы 7.6.6. Оболочка системы UNIX Файлы, содержащие команды оболочки,называются сценариями оболочки. В них можно использовать
- 42. Операционные системы 7.6.7. Утилиты системы Unix Кроме оболочки пользовательский интерфейс содержит большое число обслуживающих программ (утилит):
- 43. Операционные системы 7.6.7. Утилиты системы Unix Программа Функция (POSIX) cat Конкатенация нескольких файлов в стандартный выходной
- 44. Операционные системы 7.6.8. Процессы в системе Unix У каждого пользователя системы может быть одновременно несколько активных
- 45. Операционные системы 7.6.8. Процессы в системе Unix pid = fork ( ); /* если fork завершился
- 46. Операционные системы 7.6.8. Процессы в системе Unix Процессы располагаются по своим PID-идентификаторам. Если дочерний процесс желает
- 47. Операционные системы Процессы взаимодействуют с помощью каналов. Можно создать канал между двумя процессами, в котором один
- 48. Операционные системы Для управления процессами используются системные вызовы. Системный вызов Описание pid = fork ( )
- 49. Операционные системы Системный вызов fork представляет собой единственный способ создания новых процессов в системе UNIX. Он
- 50. Операционные системы У этого системного вызова три параметра. В первом указывается PID процесса, завершение которого ожидается
- 51. Операционные системы while (TRUE) { /*Вечный цикл */ type_prompt ( ); /*Вывести приглашение ко вводу*/ read_command
- 52. Операционные системы В самом общем случае у системного вызова exec три параметра: имя исполняемого файла, указатель
- 53. Операционные системы 7.6.10. Системные вызовы для управления потоками Стандартом POSIX (P1003.1c) предусматривается реализация потоков в пространстве
- 54. Операционные системы 7.6.10. Системные вызовы для управления потоками Для создания потока используется системный вызов pthread. Например,
- 55. Операционные системы 7.6.10. Системные вызовы для управления потоками Синхронизация потоков может осуществляться при помощи мьютексов. Как
- 56. Операционные системы 7.6.11. Реализация процессов в системе Unix У каждого процесса есть пользовательская часть, в которой
- 57. Операционные системы 7.6.11. Реализация процессов в системе Unix Ядро поддерживает две ключевые структуры данных, относящиеся к
- 58. Операционные системы 7.6.11. Реализация процессов в системе Unix Когда выполняется системный вызов fork, вызывающий процесс обращается
- 59. Операционные системы 7.6.12. Планирование в системеUNIX Низкоуровневый алгоритм выбирает процесс, готовый к работе из очереди, имеющей
- 60. Операционные системы 7.6.12. Планирование в системеUNIX Когда процесс эмулирует прерывание для выполнения системного вызова в ядре,
- 61. Операционные системы 7.6.13. Управление памятью в системе UNIX У каждого процесса в системе UNIX есть адресное
- 62. Операционные системы 7.6.13. Управление памятью в системе UNIX В отличие от текстового сегмента, сегмент данных может
- 63. Операционные системы 7.6.13. Управление памятью в системе UNIX Большинство систем UNIX поддерживает текстовые сегменты совместного использования.
- 64. Операционные системы 7.6.13. Управление памятью в системе UNIX Стандартом POSIX системные вызовы для управления памятью не
- 65. Операционные системы 7.6.13. Управление памятью в системе UNIX До версии 3BSD большинство систем UNIX основывалось на
- 66. Операционные системы 7.6.13. Управление памятью в системе UNIX Каждые несколько секунд свопер исследовал список выгруженных процессов,
- 67. Операционные системы 7.6.13. Управление памятью в системе UNIX Начиная с версии 3BSD университет в Беркли добавил
- 68. Операционные системы 7.6.13. Управление памятью в системе UNIX Остальная память делится на страничные блоки, каждый из
- 69. Операционные системы 7.6.13. Управление памятью в системе UNIX При запуске процесс может вызвать страничное прерывание, если
- 70. Операционные системы 7.6.13. Алгоритм замещения страниц Алгоритм замещения страниц выполняется страничным демоном. Раз в 250 мс
- 71. Операционные системы 7.6.13. Алгоритм замещения страниц Основной алгоритм часов работает, сканируя в цикле страничные блоки (как
- 72. Операционные системы 7.6.13. Алгоритм замещения страниц Изначально в Berkley UNIX использовался основной алгоритм часов, но затем
- 73. Операционные системы 7.6.13. Алгоритм замещения страниц Если операционная система обнаруживает, что частота подкачки страниц слишком высока,
- 74. Операционные системы 7.6.13. Алгоритм замещения страниц Эта функция обычно взвешивается так, чтобы загружать в память процесс,
- 75. Операционные системы 7.6.14. Ввод-вывод в системе UNIX Подход, применяемый в UNIX, в построении системы ввода-вывода заключается
- 76. Операционные системы 7.6.14. Ввод-вывод в системе UNIX Специальные файлы подразделяются на две категории: блочные и символьные.
- 77. Операционные системы 7.6.14. Ввод-вывод в системе UNIX Каждый сокет поддерживает определенный тип работы в сети, указываемый
- 78. Операционные системы 7.6.14. Ввод-вывод в системе UNIX При создании сокета одним из параметров указывается протокол. Для
- 79. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Появление фирмы MICROSOFT и интерпретатора языка
- 80. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Интерфейсная графическая оболочка над MS DOS
- 81. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 У каждого процесса 4-гигабайтное адресное пространство,
- 82. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 К концу 80-х годов MS осознала,
- 83. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Windows NT 4.0 (1996 г.) -
- 84. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 У каждого процесса собственное 32-разрядное виртуальное
- 85. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Новые свойства получила файловая система NTFS
- 86. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Как и предыдущая версия NT, в
- 87. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Размер кластера означает способность операционной системы
- 88. Операционные системы 7.7.1. История создания 7.7. Операционная система Windows 2000 Кроме основных операционных систем корпорация MS
- 89. Операционные системы Инструментальные средства MS для продвинутых пользователей (наборы утилит для отладки и мониторинга системы): 1.
- 90. Операционные системы 7.7.2. Структура системы Windows 2000 ОС Windows можно разделить на 2 части: 1. Основная
- 91. Операционные системы Аппаратное обеспечение Уровень аппаратных абстракций (HAL) Я д р о Системные службы Менеджер ввода-вывода
- 92. Операционные системы Windows NT 3.x состояла из относительно небольшого ядра и нескольких серверных процессов, работающих в
- 93. Операционные системы Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) Работа уровня HAL заключается в том,
- 94. Операционные системы Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) К службам уровня HAL относятся доступ
- 95. Операционные системы Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) После загрузки ОС уровень HAL общается
- 96. Операционные системы Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) Функция спин-блокировки необходима, чтобы избежать конфликтов
- 97. Операционные системы 7.7.3. Уровень ядра Назначение ядра – сделать остальную часть ОС независимой от аппаратуры. Для
- 98. Операционные системы 7.7.3. Уровень ядра Объект DPC используется, чтобы отделить часть процедуры обработки прерываний, для которой
- 99. Операционные системы 7.7.3. Уровень ядра Объект АРС похож на отложенный вызов процедуры DPC, но отличается тем,
- 100. Операционные системы 7.7.4. Исполняющая система Написана на языке С, не зависит от архитектуры машины и относительно
- 101. Операционные системы 7.7.4. Исполняющая система Менеджер памяти реализует архитектуру виртуальной памяти со страничной подкачкой по требованию
- 102. Операционные системы Менеджер конфигурации отвечает за сохранение реестра. Он добавляет новые записи и ищет запрашиваемые ключи.
- 103. Операционные системы Основная часть ОС, состоящая из ядра и исполняющей системы, хранится в файле ntoskrnl.exe (1674
- 104. Операционные системы Драйверы устройств устанавливаются в систему, добавляются в реестр и затем динамически загружаются при каждой
- 105. Операционные системы 7.7.6. Реализация объектов ОС Windows 2000 является объектно-ориентированной системой. Объект ОС предоставляет однородный и
- 106. Операционные системы 7.7.6. Реализация объектов Исполняемый объект представляет собой набор последовательных слов в виртуальном адресном пространстве
- 107. Операционные системы 7.7.6. Реализация объектов Структура объектов
- 108. Операционные системы 7.7.6. Реализация объектов Каждый объект содержит заголовок с определенной информацией, общей для всех объектов
- 109. Операционные системы 7.7.6. Реализация объектов Когда объект открывается или освобождается компонентом исполняющей системы, используется второй счетчик,
- 110. Операционные системы 7.7.6. Реализация объектов Объекты, которые могут понадобиться, когда система выполняет критический участок программы (в
- 111. Операционные системы 7.7.6. Реализация объектов Наиболее употребительные типы объектов
- 112. Операционные системы 7.7.6. Реализация объектов Для каждого процесса и потока существует соответствующий объект, хранящий основные данные,
- 113. Операционные системы 7.7.6. Реализация объектов Секции являются объектами, используемыми системой памяти для управления отображаемыми на память
- 114. Операционные системы 7.7.6. Реализация объектов Для выполнения задачи слежения за объектами менеджер объектов использует пространство имен
- 115. Операционные системы 7.7.6. Реализация объектов Некоторые каталоги
- 116. Операционные системы 7.7.7. Подсистемы окружения В Windows 2000 существует три типа компонентов, работающих в режиме пользователя:
- 117. Операционные системы 7.7.7. Подсистемы окружения Каждая динамическая библиотека содержит набор тесно связанных библиотечных процедур и все
- 118. Операционные системы 7.7.7. Подсистемы окружения Каждый пользовательский процесс, как правило, связан с несколькими динамическими библиотеками, совместно
- 119. Операционные системы 2б Вызов Вызов Вызов Gdi32.dll User32.dll Kernel32.dll Подсистема Win32 Процесс подсистемы окружения (csrss.exe) Системный
- 120. Операционные системы 7.7.8. Загрузка Windows Считывание главной загрузочной записи MBR загружаемого диска Анализ таблицы разделов и
- 121. Операционные системы Общие процедуры инициализации и инициализация компонентов исполняющей системы. Загрузка и инициализация драйверов устройств и
- 122. Операционные системы 7.7.9. Файловая система Windows 2000 Основные свойства файловой системы NTFS: 1. Поддержка больших файлов
- 123. Операционные системы Структура тома NTFS Основой структуры тома является главная таблица файлов (Master File Table, MFT),
- 124. Операционные системы Структура тома NTFS Адрес отрезка – пара (LCN, k), где LCN – логический номер
- 125. Операционные системы Загрузочный блок 0 1 2 15 Системный файл 1 Системный файл 2 Системный файл
- 126. Операционные системы 0. Описание MFT, в том числе адреса всех ее отрезков. Первая запись (нулевая) описывает
- 127. Операционные системы 5. Индекс корневого каталога. Содержит данные о корневом каталоге. Последний представляет собой файл, который
- 128. Операционные системы Каждая запись MFT состоит из заголовка записи, за которым идет последовательность пар (заголовок атрибута,
- 129. Операционные системы Структура файлов NTFS Файлы и каталоги состоят из набора атрибутов. Атрибут содержит следующие поля:
- 130. Операционные системы Структура файлов NTFS Как правило, значения атрибутов располагаются непосредственно за заголовками, но если длина
- 131. Операционные системы Структура файлов NTFS Список атрибутов нужен на случай, если атрибуты не помещаются в запись
- 132. Операционные системы Структура файлов NTFS Конечно, в большинстве случаев все данные файла не помещаются в запись
- 133. Операционные системы Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие и
- 134. Операционные системы Структура файлов NTFS Если файл очень большой, то иногда бывает необходимо использовать две или
- 135. Операционные системы Структура файлов NTFS Каждый каталог NTFS представляет собой один вход в таблицу MFT, который
- 136. Операционные системы Структура файлов NTFS Остальные части списка файлов размещаются вне MFT. Для их поиска используется
- 137. Операционные системы Файловая система NTFS поддерживает прозрачное сжатие файлов. Файл может быть создан в сжатом режиме.
- 138. Операционные системы Произвольный доступ к сжатому файлу также возможен. Для получения доступа к данному блоку сначала
- 139. Операционные системы На персональном компьютере ОС можно загружать с гибкого диска. Это позволяет обойти проблемы, связанные
- 140. Операционные системы Структура EFS ОС Windows 2000 7.7.10. Сжатие файлов и шифрующая файловая система
- 141. Операционные системы Шифрующая файловая система содержит следующие компоненты: Драйвер EFS, являющийся надстройкой над файловой системой NTFS.
- 142. Операционные системы С помощью механизма управления файлами операции записи значений атрибутов EFS (DDF и DRF) реализованы
- 143. Операционные системы Схема шифрования 7.7.10. Сжатие файлов и шифрующая файловая система
- 144. Операционные системы Когда пользователь сообщает системе, что хочет зашифровать определенный файл, формируется случайный 128-разрядный ключ (File
- 145. Операционные системы Когда пользователь в первый раз зашифровывает файл с помощью EFS, ОС формирует пару ключей
- 146. Операционные системы ОС Windows NT была разработана так, чтобы соответствовать уровню С2 требований безопасности Министерства обороны
- 147. Операционные системы Безопасная регистрация означает, что системный администратор может потребовать от всех пользователей наличия пароля для
- 148. Операционные системы Дискреционное управление доступом позволяет владельцу файла или другого объекта указать, кто может пользоваться объектом
- 149. Операционные системы У каждого пользователя (и группы) ОС Windows 2000 есть идентификатор безопасности SID (Security IDentifier),
- 150. Операционные системы Чтобы получить эту информацию, процесс должен вызвать функцию GetTokenInformation, так как информация может измениться
- 151. Операционные системы Перечисленные в маркере привилегии дают процессу особые полномочия, такие как право выключить компьютер или
- 152. Операционные системы У каждого объекта есть ассоциированный с ним дескриптор защиты, содержащий список пользователей и групп,
- 153. Операционные системы В основе большей части механизмов управления доступом в Windows 2000 лежат дескрипторы защиты. Как
- 154. Операционные системы Список DACL или SACL дескриптора защиты может быть проинициализирован при помощи функции InitializeAcl. Элементы
- 155. Операционные системы Как только пользователь регистрируется в системе, выполняется операция защиты при открытии объекта. Для каждого
- 156. Операционные системы Поскольку менеджер безопасности прекращает поиск, найдя первую запись с указанным идентификатором, запрещающие записи помещаются
- 157. Операционные системы Многозадачность в истинном смысле этого слова. Невытесняющая многозадачность неприемлема, поскольку допускает возможность блокировки или
- 158. Операционные системы Желательна эффективная поддержка сетевых коммуникаций и наличие развитых механизмов взаимодействия между процессами, поскольку реальные
- 159. Операционные системы Мощная ОС, разработанная для процессоров с архитектурой ia32. Позволяет проектировать сложные программные комплексы, работающие
- 160. Операционные системы QNX — это не версия UNIX, хотя почему-то многие так считают. Система QNX была
- 161. Операционные системы Масштабируемость и эффективность достигаются оптимальным использованием ресурсов и означают применимость QNX для встроенных (embedded)
- 162. Операционные системы Компактная графическая подсистема Photon, построенная на тех же принципах модульности, что и сама операционная
- 163. Операционные системы QNX — это операционная система реального времени для персональных компьютеров, позволяющая эффективно организовать распределенные
- 164. Операционные системы В микроядре помещаются : механизм передачи сообщений между процессами IPC (Inter Process Communication —
- 165. Операционные системы Сообщения и ответы, пересылаемые между процессами при их взаимодействии, находятся в теле отправляющего их
- 166. Операционные системы Любой процесс, знающий идентификатор представителя, может вызвать функцию Trigger(), после чего будет доставлено первое
- 167. Операционные системы Редиректор прерываний занимается перенаправлением аппаратных прерываний в связанные с ними процессы. C аппаратной частью
- 168. Операционные системы Блок планирования выполнения задач обеспечивает многозадачность. ОС QNX предоставляет разработчику огромный простор для выбора
- 169. Операционные системы К выполнению своих функций как диспетчера ядро приступает в следующих случаях: какой-либо процесс вышел
- 170. Операционные системы Метод FIFO наиболее близок к невытесняющей многозадачности. Процесс выполняется до тех пор, пока он
- 171. Операционные системы По умолчанию процессы запускаются в режиме адаптивной многозадачности. В этом же режиме работают все
- 172. Операционные системы Сетевой интерфейс в операционной системе QNX является неотъемлемой частью ядра. Взаимодействует с сетевым адаптером
- 173. Операционные системы Драйверы устройств также работают как стандартные процессы. Чтобы новый драйвер устройства стал частью операционной
- 174. Операционные системы QNX является сетевой операционной системой, которая позволяет организовать эффективные распределенные вычисления. Для этого на
- 175. Операционные системы QNX обеспечивает возможность одновременной работы в сетях Ethernet, Arcnet, Serial и Token Ring, более
- 176. Операционные системы Разработчики операционной системы QNX создали собственную специальную сетевую технологию FLEET и соответствующий уникальный протокол
- 177. Операционные системы Благодаря технологии FLEET сеть компьютеров с операционными системами QNX фактически можно представлять как один
- 178. Операционные системы Кроме поддержки собственного протокола, Net обеспечивает передачу пакетов TCP/IP, SMB (Server Message Block) и
- 179. Операционные системы Передачу и диспетчеризацию сообщений в QNX осуществляет ядро системы. Кроме того, ядро управляет временными
- 180. Операционные системы Основные операции над сообщениями: послать, получить и ответить, а также несколько их вариантов для
- 181. Операционные системы ОС QNX обеспечивает объединение сообщений в структуру данных, называемую очередью. Очередь сообщений — это
- 182. Операционные системы Помимо сообщений и очередей в операционной системе QNX для взаимодействия задач и организации распределенных
- 183. Операционные системы Одновременно к порту может быть присоединена только одна задача. Если другая задача попытается «отсоединиться»
- 184. Операционные системы Исключения обеспечивают асинхронное взаимодействие, то есть исключение может прервать нормальное выполнение потока задачи. ОС
- 185. Операционные системы Благодаря возможности обмена посланиями между задачами и узлами сети, программы не заботятся о конкретном
- 187. Скачать презентацию
Операционные системы
7.1. Сетевые и распределенные операционные системы
Большое разнообразие типов компьютеров, используемых
Операционные системы
7.1. Сетевые и распределенные операционные системы
Большое разнообразие типов компьютеров, используемых
К ним могут предъявляться различные требования по производительности, функциональным возможностям и совместимости.
Операционные системы
7.1. Сетевые и распределенные операционные системы
Сетевая ОС предоставляет пользователю виртуальную
Операционные системы
7.1. Сетевые и распределенные операционные системы
Сетевая ОС предоставляет пользователю виртуальную
Термин “сетевая операционная система” используется в двух значениях: 1. Совокупность взаимодействующих ОС всех компьютеров сети. 2. Операционная система отдельного компьютера, позволяющая ему работать в сети.
В идеальном случае сетевая ОС должна предоставлять пользователю сетевые ресурсы в виде ресурсов единой централизованной виртуальной машины. В этом случае сетевая ОС является распределенной ОС. Распределенная операционная система существует как единая ОС в масштабах всей вычислительной системы.
Степень автономности каждого компьютера сети, работающего под управлением сетевой ОС, значительно выше по сравнению с с компьютерами, работающими под управлением распределенной ОС.
Операционные системы
7.1. Сетевые и распределенные операционные системы
Сетевые ОС могут быть разделены
Операционные системы
7.1. Сетевые и распределенные операционные системы
Сетевые ОС могут быть разделены
Операционные системы
7.2. Виды сетевых операционных систем
1. Сети отделов – используются небольшой
Операционные системы
7.2. Виды сетевых операционных систем
1. Сети отделов – используются небольшой
2. Сети кампусов – соединяют несколько сетей отделов внутри одной территории предприятия. Задачи сетевой ОС: взаимодействие между сетями отделов, доступ к базам данных предприятия, доступ к факс-серверам и серверам скоростных модемов, высокоскоростных принтеров и др.
3. Сети предприятия (корпоративные сети) – объединяют все компьютеры всех территорий отдельного предприятия. Задачи сетевой ОС: предоставлять доступ к информации и приложениям, находящимся в других рабочих группах, других отделах, подразделениях и штаб-квартирах корпорации, обеспечивать широкий набор сервисов –справочную и почтовую службы, средства коллективной работы,поддержку удаленных пользователей, факс-сервис, обработку голосовых сообщений, организацию видеоконференций и др. Особую важность приобретают вопросы безопасности по причинам, связанным с крупномасштабностью сети.
Операционные системы
7.3. Требования, предъявляемые к корпоративным сетевым операционным системам
1. Масштабируемость, т.е.
Операционные системы
7.3. Требования, предъявляемые к корпоративным сетевым операционным системам
1. Масштабируемость, т.е.
Операционные системы
7.4. Серверные операционные системы ведущих производителей
Windows (Microsoft)
Windows NT.
Операционные системы
7.4. Серверные операционные системы ведущих производителей
Windows (Microsoft)
Windows NT.
Windows 2000. Windows 2000 является самой популярной операционной системой Microsoft в корпоративном секторе. К серверным операционным системам этого семейства относятся Windows 2000 Server — универсальная сетевая операционная система для серверов рабочих групп и отделов, Windows 2000 Advanced Server — операционная система для эксплуатации бизнес-приложений и приложений для электронной коммерции и Windows 2000 Datacenter Server — ОС для наиболее ответственных приложений обработки данных.
Windows 2000 Advanced Server поддерживает кластеризацию и баланс нагрузки, что делает возможным выполнение масштабируемых приложений с непрерывным доступом к данным. Windows 2000 Datacenter Server поддерживает симметричную мультипроцессорную обработку с использованием 32 процессоров, 64 Гбайт оперативной памяти, средства восстановления после отказа на основе четырехузловой кластеризации.
Операционные системы
Windows Server 2003 • Windows Server 2003 Web Edition —
Операционные системы
Windows Server 2003 • Windows Server 2003 Web Edition —
• Windows Server 2003 Standard Edition — сетевая операционная система для выполнения серверной части бизнес-решений и рассчитанная на применение в небольших компаниях и подразделениях, поддерживает до 4 Гбайт оперативной памяти и симметричную многопроцессорную обработку с использованием двух процессоров;
• Windows Server 2003 Enterprise Edition — предназначена для средних и крупных компаний. Она поддерживает серверы на базе 64-разрядных процессоров (до восьми штук) и объем оперативной памяти до 64 Гбайт и выпускается в версиях для 32- и 64-разрядных платформ;
• Windows Server 2003 Datacenter Edition — предназначена для создания критически важных технических решений с высокими требованиями к масштабируемости и доступности. К таким решениям относятся приложения для обработки транзакций в режиме реального времени, а также решения, основанные на интеграции нескольких серверных продуктов. В ОС реализована поддержка симметричной многопроцессорной обработки (до 32 процессоров), а также имеются службы балансировки нагрузки и создания кластеров, состоящих из восьми узлов. Эта ОС доступна для 32- и 64-разрядных платформ.
Операционные системы
UNIX
Solaris (Sun Microsystems). Sun Solaris сегодня входит в число
Операционные системы
UNIX
Solaris (Sun Microsystems). Sun Solaris сегодня входит в число
HP-UX (Hewlett-Packard). HP-UX 11i имеет средства интеграции с Windows и Linux, средства переноса Java-приложений, разработанных для этих платформ, а также средства повышения производительности Java-приложений. HP-UX 11i поддерживает Linux API, что гарантирует перенос приложений между HP-UX и Linux. Операционная система поддерживает до 256 процессоров и кластеры размером до 128 узлов, подключение и отключение дополнительных процессоров, замену аппаратного обеспечения, динамическую настройку и обновление операционной системы без необходимости перезагрузки, резервное копирование в режиме on-line и дефрагментацию дисков без выключения системы.
Операционные системы
AIX (IBM). AIX является клоном UNIX производства IBM, предназначенным для
Операционные системы
AIX (IBM). AIX является клоном UNIX производства IBM, предназначенным для
Linux и FreeBSD. Операционная система Linux — это некоммерческий продукт категории Open Source для платформы Intel. Список серверных продуктов для Linux включает такие популярные продукты, как Web-сервер Apache, серверные СУБД и серверы приложений практически от всех производителей. Еще одной известной некоммерческой версией UNIX является FreeBSD, доступная для платформ Intel и DEC Alpha. Основой FreeBSD послужил дистрибутив BSD UNIX, выпущенный группой Калифорнийского университета (Беркли). Операционная система имеет объединенный кэш виртуальной памяти и буферов файловых систем, совместно используемые библиотеки, модули совместимости с приложениями других версий UNIX, динамически загружаемые модули ядра, позволяющие добавлять во время работы поддержку новых типов файловых систем, сетевых протоколов или эмуляторов без перегенерации ядра.
Операционные системы
NetWare (Novell)
Основными особенностями последней версии операционной системы, Novell NetWare
Операционные системы
NetWare (Novell)
Основными особенностями последней версии операционной системы, Novell NetWare
Mac OS X (Apple)
Операционная система Mac OS X, созданная компанией Apple совместно с рядом университетских ученых, основана на BSD UNIX. В 1999 году версия Mac OS X Server была выпущена в виде продукта Open Source, что позволило разработчикам адаптировать Mac OS X для конкретных заказчиков, а также привлечь их к дальнейшему развитию этой операционной системы. Mac OS X характеризуется наличием менеджера виртуальной памяти, возможностью полной изоляции приложений друг от друга, поддержкой многозадачности, сравнимой с аналогичной поддержкой в Windows.
Операционные системы
Операционная система Z/OC для высокоуровневых вычислительных устройств eServer z900 (IBM)
Операционные системы
Операционная система Z/OC для высокоуровневых вычислительных устройств eServer z900 (IBM)
Важным компонентом z/OS является ПО Intelligent Resource Director, предназначенное для автоматического распределения вычислительных мощностей между одновременно выполняющимися приложениями. Другими отличительными особенностями новой ОС является поддержка ПО для платформ Java и Linux, а также простота в настройке и администрировании.
Операционные системы
7.5. Тенденции на рынке операционных систем
Перераспределение рынка ОС по данным
Операционные системы
7.5. Тенденции на рынке операционных систем
Перераспределение рынка ОС по данным
Операционные системы
Прогнозы распределения серверного рынка ОС по данным Gartner Group на
Операционные системы
Прогнозы распределения серверного рынка ОС по данным Gartner Group на
Операционные системы
Распределение от продажи серверов в ценовой категории менее 25 тыс.
Операционные системы
Распределение от продажи серверов в ценовой категории менее 25 тыс.
Распределение от продажи серверов в ценовой категории более 25 тыс. долл. по операционным системам (по данным Gartner Group, 2001 г.)
Операционные системы
Российский рынок серверов (1997-2000) с делением по операционным системам (по
Операционные системы
Российский рынок серверов (1997-2000) с делением по операционным системам (по
Операционные системы
7.6. Операционная система UNIX
7.6.1. История создания
1. Создание CTSS (Compatible Time
Операционные системы
7.6. Операционная система UNIX
7.6.1. История создания
1. Создание CTSS (Compatible Time
Операционные системы
7.6.2. Общая характеристика системы UNIX
Общие черты Unix независимо от версии:
Операционные системы
7.6.2. Общая характеристика системы UNIX
Общие черты Unix независимо от версии:
1. Многопользовательский режим со средствами защиты от несанкционированных пользователей.
2. Реализация мультипрограммной работы в режиме разделения времени, основанная на использовании алгоритмов вытесняющей многозадачности.
3. Использование механизмов виртуальной памяти и свопинга для повышения уровня мультипрограммирования.
4. Унификация ввода-вывода на основе расширенного использования понятия файл.
5. Иерархическая файловая система, образующая единое дерево каталогов независимо от количества физических устройств, используемых для размещения файлов.
6. Переносимость системы за счет написания ее основной части на языке С. 7. Разнообразные средства взаимодействия процессов, в том числе через сеть.
8. Кэширование дисков для уменьшения среднего времени доступа к файлам.
9.Каждая программа выполняет всего одну функцию, но зато делает это хорошо.
ОС UNIX – интерактивная система, разработанная программистами и для программистов. Основные требования: простота, элегантность, непротиворечивость, мощь и гибкость.
Операционные системы
7.6.3. Интерфейс системы UNIX
Пользователи
Стандартные обслуживающие программы ( оболочка, компиляторы, утилиты
Операционные системы
7.6.3. Интерфейс системы UNIX
Пользователи
Стандартные обслуживающие программы ( оболочка, компиляторы, утилиты
Стандартная библиотека ( open, close, read, write, fork и т. д.). Библиотечные ф-ии написаны на ассемблере и выполняют команду эмулированного прерывания TRAP.
Операционная система UNIX (управление процессами, памятью, файловая система, ввод-вывод и т. д.)
Аппаратное обеспечение (центральный процессор, память, диски, устройства ввода-вывода, терминалы и т. д.)
Интерфейс пользователя
Интерфейс библиотечных функций
Интерфейс системных вызовов
Режим ядра
Режим пользователя
Операционные системы
7.6.3. Интерфейс системы UNIX
У основания пирамиды располагается аппаратное обеспечение, состоящее
Операционные системы
7.6.3. Интерфейс системы UNIX
У основания пирамиды располагается аппаратное обеспечение, состоящее
На голом «железе» работает ОС UNIX. Ее функция заключается в управлении аппаратным обеспечением и предоставлении всем программам интерфейса системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы, а также управлять ими.
Программы обращаются к системным вызовам, помещая аргументы в регистры центрального процессора (или иногда в стек) и выполняя команду эмулированного прерывания для переключения из пользовательского режима в режим ядра и передачи управления ОС UNIX.
Операционные системы
7.6.3. Интерфейс системы UNIX
Команду эмулированного прерывания исполняют библиотечные функции, по
Операционные системы
7.6.3. Интерфейс системы UNIX
Команду эмулированного прерывания исполняют библиотечные функции, по
Эти процедуры написаны на ассемблере, но могут вызываться из программ, написанных на языке С.
Каждая такая процедура помещает аргументы в нужное место и выполняет команду эмулированного прерывания TRAP.
Стандарт POSIX определяет библиотечные процедуры, соответствующие системным вызовам, их параметры, что они должны делать и какой результат возвращать. В стандарте даже не упоминаются фактические системные вызовы.
Операционные системы
7.6.3. Интерфейс системы UNIX
Все версии UNIX содержат большое количество стандартных
Операционные системы
7.6.3. Интерфейс системы UNIX
Все версии UNIX содержат большое количество стандартных
К таким программам относятся командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами.
Можно говорить о трех интерфейсах в ОС UNIX: интерфейс системных вызовов, интерфейс библиотечных функций и интерфейс, образованный набором стандартных обслуживающих программ.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Системные вызовы
Аппаратные и эмулированные
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Системные вызовы
Аппаратные и эмулированные
Управление терминалом
Сокеты
Именование файла
Отображение адресов
Страничные прерывания
Необработанный телетайп
Обработанный телетайп
Виртуальная память
Сетевые протоколы
Маршрутизация
Файловые системы
Буферный кэш
Страничный кэш
Символьные устройства
Планирование процесса
Драйверы сетевых устройств
Драйверы дисковых устройств
Дисциплины линии связи
Диспетчеризация процессов
А П П А Р А Т У Р А
Обработка сигналов
Создание и завершение процессов
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Нижний уровень ядра состоит
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Нижний уровень ядра состоит
Основное различие между этими двумя классами устройств заключается в том, что на блочных устройствах разрешается операция поиска, а на символьных - нет.
Технически сетевые устройства представляют собой символьные устройства, но они обрабатываются по-иному, поэтому они выделены в отдельный класс.
Диспетчеризация процессов производится при возникновении прерывания. При этом низкоуровневая программа останавливает выполнение работающего процессора, сохраняет его состояние в таблице процессов ядра и запускает соответствующий драйвер.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Диспетчеризация процессов производится, когда
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Диспетчеризация процессов производится, когда
Символьные устройства могут использоваться двумя способами.
Некоторым программам, таким как текстовые редакторы (vi, emacs), требуется каждая нажатая клавиша без какой-либо обработки. Для этого служит ввод-вывод с необработанного терминала (телетайпа).
Другое программное обеспечение, например оболочка (sk), принимает на входе уже готовую текстовую строку, позволяя пользователю редактировать ее, пока не будет нажата клавиша Enter. Такое программное обеспечение пользуется вводом с терминала в обработанном виде и дисциплинами линии связи.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Сетевое программное обеспечение часто
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Сетевое программное обеспечение часто
Уровень выше сетевых драйверов выполняет своего рода функции маршрутизации, гарантируя, что правильный пакет направляется правильному устройству или блоку управления протоколами.
Большинство систем UNIX содержит в своем ядре полноценный маршрутизатор Интернета, и хотя его производительность ниже, чем у аппаратного маршрутизатора, эта программа появилась раньше современных аппаратных маршрутизаторов.
Над уровнем маршрутизации располагается стек протоколов, обязательно включая IP и TCP, но также иногда и некоторые другие протоколы.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над сетевыми протоколами располагается
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над сетевыми протоколами располагается
Над дисковыми драйверами располагаются буферный кэш и страничный кэш файловой системы.
В ранних системах UNIX буферный кэш представлял собой фиксированную область памяти, а остальная память использовалась для страниц пользователей.
Во многих современных системах UNIX этой фиксированной границы уже не существует и любая страница памяти может быть схвачена для выполнения любой задачи, в зависимости оттого, что требуется в данный момент.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над страничным кэшем располагается
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над страничным кэшем располагается
Управление процессами организовано следующим образом. Над диспетчером располагается планировщик процессов, выбирающий процесс, который будет запущен следующим.
Если потоками управляет ядро (в некоторых версиях UNIX), то управление потоками тоже помещается здесь, хотя в некоторых версиях UNIX управление потоками вынесено в пространство пользователя.
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над планировщиком расположена
Операционные системы
7.6.4. Структура ядра системы Unix (4.4 BSD)
Над планировщиком расположена
Верхний уровень представляет собой интерфейс системы. Сюда относится интерфейс системных вызовов и вход для прерывания. Все поступающие системные вызовы направляются одному из модулей низшего уровня в зависимости от природы системного вызова.
В верхний уровень поступают также сигналы аппаратных и эмулированных прерываний, включая сигналы, страничные прерывания, разнообразные исключительные ситуации процессора и прерывания ввода-вывода.
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
Считывание главной загрузочной записи (первый
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
Считывание главной загрузочной записи (первый
Загрузка программы boot в старшие адреса основной памяти
Программа boot считывает корневой каталог, затем считывает ядро ОС и передает ему управление
Начальная программа ядра (на ассемблере, машинно-зависимая) устанавливает указатель стека, определяет тип ЦП, количество ОП, запрещает прерывания, разрешает работу диспетчера памяти, вызывает процедуру main (на С) для запуска основной части ОС.
Программа main выделяет память под буфер сообщений (по мере инициализации в него записываются сообщения о том, что происходит с системой), память для структур данных ядра (буферный кэш, таблицы страниц и т. п.)
Определяется конфигурация компьютера и формируются таблицы подключенных устройств, загружаются требуемые драйверы устройств
Загружается процесс 0, устанавливается его стек, запущенный процесс 0 программирует таймер реального времени, монтирует корневую ФС, создает процесс 1 (init) и процесс 2 (страничный демон).
1
2
3
4
5
6
7
Операционные системы
Проверка флагов процессом init
Процесс многопользовательский ?
Установка программы getty
Да
Нет
Запуск сценария оболочки
Операционные системы
Проверка флагов процессом init
Процесс многопользовательский ?
Установка программы getty
Да
Нет
Запуск сценария оболочки
Считывание файла /etc/ttys с перечнем терминалов и их свойств, запуск getty для каждого терминала.
Вызов программы регистрации /bin/login
Вызов программы регистрации /bin/login для каждого терминала
Запрос пароля и сравнение его с зашифрованным паролем, хранящемся в файле /etc/passwd
Пароль верный ?
Запуск оболочки sh
Да
Нет
8
9
10
11
12
13
14
15
16
17
Операционные системы
Процесс 0
Процесс 1
Процесс 2
int
login
getty
sh
cp
Login:
Password:
Страничный демон
% cp f1 f2
Последовательность исполняемых процессов
Операционные системы
Процесс 0
Процесс 1
Процесс 2
int
login
getty
sh
cp
Login:
Password:
Страничный демон
% cp f1 f2
Последовательность исполняемых процессов
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
Программа getty устанавливает для каждой
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
Программа getty устанавливает для каждой
Затем программа getty пытается прочитать имя пользователя, введенное с клавиатуры. После этого программа getty завершает свою работу выполнением программы регистрации /bin/login.
Программа login запрашивает у пользователя его пароль, зашифровывает его и сравнивает с зашифрованным паролем, хранящимся в файле паролей /etc/passwd.
Если пароль введен верно, программа login вместо себя запускает оболочку пользователя, которая ждет первой команды. Если пароль введен неверно, программа login еще раз спрашивает имя пользователя.
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
На рис выше процесс getty,
Операционные системы
7.6.5. Загрузка системы UNIX (4.4 BSD)
На рис выше процесс getty,
На терминале 1 пользователь ввел имя регистрации, поэтому программа getty запустила поверх себя процесс login, запрашивающий пароль.
На терминале 2 уже прошла успешная регистрация, в результате чего оболочка напечатала приглашение к вводу (%).
Пользователь ввел команду ср fl f2, в результате которой оболочка создала дочерний процесс, исполняющий программу ср.
Если бы пользователь на терминале 2 ввел команду cc, то запустилась бы главная программа компилятора С, который, в свою очередь, запустил бы несколько дочерних процессов для выполнения различных проходов компилятора.
Операционные системы
7.6.6. Оболочка системы UNIX
Система поддерживает графическое окружение X Windows, но
Операционные системы
7.6.6. Оболочка системы UNIX
Система поддерживает графическое окружение X Windows, но
После этого оболочка извлекает из нее первое слово и ищет файл с таким именем. Если такой файл удается найти, оболочка запускает его. При этом работа оболочки приостанавливается на время работы запущенной программы. По завершении работы программы оболочка снова печатает приглашение и ждет ввода следующей строки.
Операционные системы
7.6.6. Оболочка системы UNIX
У команд оболочки могут быть аргументы, которые
Операционные системы
7.6.6. Оболочка системы UNIX
У команд оболочки могут быть аргументы, которые
Аргументы, управляющие работой команды или указывающие дополнительные значения, называются флагами или ключами и, по соглашению, обозначаются знаком тире. Тире требуется, чтобы избежать двусмысленности.
Большинство команд системы UNIX могут принимать несколько флагов и аргументов.
Чтобы было легче указывать группы файлов, оболочка принимает так называемые волшебные символы (джокеры).
Например, символ звездочка означает все возможные варианты текстовой строки. Команда Is *.c заставляет программу Is вывести список всех файлов, имя которых оканчивается на С.
Другим джокером является вопросительный знак, который заменяет один любой символ.
В квадратных скобках можно указывать множество символов, из которых программа должна будет выбрать один. Например, команда Is [ape].* указывает на вывод списка файлов, имя которых начинается с символов «а», «р» или «е».
Операционные системы
7.6.6. Оболочка системы UNIX
Программа оболочки не должна открывать терминал, чтобы
Операционные системы
7.6.6. Оболочка системы UNIX
Программа оболочки не должна открывать терминал, чтобы
Многие программы в системе UNIX читают данные со стандартного устройства ввода и пишут на стандартное устройство вывода (например, sort). Стандартные ввод и вывод можно перенаправлять. Для этого используются символы < и > соответственно. Разрешается их одновременное использование в одной командной строке.
Программа, считывающая данные со стандартного устройства ввода, выполняющая определенную обработку этих данных и записывающая результат в поток стандартного вывода, называется фильтром.
Операционные системы
7.6.6. Оболочка системы UNIX
В системе UNIX часто используются командные строки,
Операционные системы
7.6.6. Оболочка системы UNIX
В системе UNIX часто используются командные строки,
Набор команд, соединенных символом канала, называется конвейером и может содержать произвольное количество команд.
UNIX - универсальная многозадачная система. Один пользователь может одновременно запустить несколько программ, каждую в виде отдельного процесса. Синтаксис оболочки для запуска фонового процесса состоит в использовании символа амперсанда в конце строки. Конвейеры тоже могут работать в фоновом режиме. Можно одновременно запустить несколько фоновых конвейеров.
Операционные системы
7.6.6. Оболочка системы UNIX
Примеры командных строк: 1) cp file1 file2
Операционные системы
7.6.6. Оболочка системы UNIX
Примеры командных строк: 1) cp file1 file2
Сначала запускается программа sort, которая принимает данные из файла in и записывает результат в файл temp. Когда она завершает работу, запускается программа head, распечатывающая 30 строк из файла temp на стандартном устройстве вывода, которым по умолчанию является терминал. После этого временный файл temp удаляется.
5) sort < in | head -30 - канал
6) grep ter*.t | sort | head - 201 tail - 5 > foo
Здесь в стандартное устройство вывода записываются все строки, содержащие строку «ter» во всех файлах, имена которых оканчиваются на t, после чего они сортируются. Первые 20 строк выбираются программой head, которая передает их программе tail, записывающей последние 5 строк в файл foo.
Операционные системы
7.6.6. Оболочка системы UNIX
Примеры командных строк: 7) wc-1b&
Запустит программу подсчета
Операционные системы
7.6.6. Оболочка системы UNIX
Примеры командных строк: 7) wc-1b&
Запустит программу подсчета
8) sort < x | head & - конвейер в фоновом процессе
Операционные системы
7.6.6. Оболочка системы UNIX
Файлы, содержащие команды оболочки,называются сценариями оболочки. В
Операционные системы
7.6.6. Оболочка системы UNIX
Файлы, содержащие команды оболочки,называются сценариями оболочки. В
Список команд оболочки может быть помещен в файл, а затем этот файл с командами может быть выполнен, для чего нужно запустить оболочку с этим файлом в качестве входного аргумента. Вторая программа оболочки выполнит перечисленные в этом файле команды одну за другой, точно так же, как если бы эти команды вводились с клавиатуры.
Операционные системы
7.6.7. Утилиты системы Unix
Кроме оболочки пользовательский интерфейс содержит большое число
Операционные системы
7.6.7. Утилиты системы Unix
Кроме оболочки пользовательский интерфейс содержит большое число
Программы (команды) управления файлами и каталогами.
Фильтры.
Средства разработки программ ( текстовые редакторы, компиляторы).
Текстовые процессоры.
Системное администрирование.
Разное.
Стандарты POSIX 1003.2 определяют синтаксис и семантику не менее 100 из этих программ, в основном относящихся к трем первым категориям. Идея стандартизации заключается в том, чтобы можно было писать сценарии оболочки, которые бы работали на всех системах UNIX. Помимо этих стандартных утилит существует еще масса прикладных программ, таких как Web-браузеры, программы просмотра изображений и т. д.
Во всех версиях ОС UNIX есть утилиты, требуемые стандартом POSIX, а также множество других (в зависимости от версии).
Операционные системы
7.6.7. Утилиты системы Unix
Программа Функция (POSIX) cat Конкатенация нескольких файлов
Операционные системы
7.6.7. Утилиты системы Unix
Программа Функция (POSIX) cat Конкатенация нескольких файлов
Операционные системы
7.6.8. Процессы в системе Unix
У каждого пользователя системы может
Операционные системы
7.6.8. Процессы в системе Unix
У каждого пользователя системы может
Типичный демон – cron daemon, предназначенный для планирования и запуска процессов. Он просыпается раз в минуту, проверяя, не нужно ли чего сделать. Если у него есть работа, он ее выполняет и записывает вновь. Этот демон позволяет планировать в системе UNIX активность на минуты, часы, дни и даже месяцы вперед, в том числе запускать периодические задачи.
Другие демоны управляют входящей и исходящей электронной почтой, очередями на принтер, проверяют, осталось ли достаточное количество страниц памяти. Демоны реализуются в UNIX довольно просто, так как каждый из них представляет собой отдельный процесс, не зависимый от всех остальных процессов.
Процессы создаются в ОС UNIX чрезвычайно несложно. Системный вызов fork создает точную копию исходного процесса, называемого родительским процессом. Новый процесс называется дочерним. У процессов (родительского и дочернего) собственные образы памяти. Открытые файлы используются совместно. Это значит, что если какой-либо файл был открыт до выполнения вызова fork, он остается открытым в обоих процессах и в дальнейшем.
Операционные системы
7.6.8. Процессы в системе Unix
pid = fork ( ); /*
Операционные системы
7.6.8. Процессы в системе Unix
pid = fork ( ); /*
if (pid < 0) {
handle_error ( ); /* fork потерпел неудачу (например, память переполнена)*/
} else if (pid > 0) {
/* здесь располагается родительская программа */
} else {
/* здесь располагается дочерняя программа */
}
Изменения, произведенные с этим файлом, будут видимы каждому процессу.
Чтобы процессам узнать, кто из них должен исполнять родительскую программу, а кто дочернюю, системный вызов fork (вилка) возвращает дочернему процессу число 0, а родительскому - отличный от нуля PID (Process Identifier - идентификатор процесса) дочернего процесса. Оба процесса могут проверить возвращаемое значение и действовать соответственно, как это показано ниже:
Операционные системы
7.6.8. Процессы в системе Unix
Процессы располагаются по своим PID-идентификаторам.
Операционные системы
7.6.8. Процессы в системе Unix
Процессы располагаются по своим PID-идентификаторам.
Операционные системы
Процессы взаимодействуют с помощью каналов. Можно создать канал между двумя
Операционные системы
Процессы взаимодействуют с помощью каналов. Можно создать канал между двумя
Процессы могут взаимодействовать также при помощи программных прерываний посылкой сигналов. Один процесс может послать другому так называемый сигнал. Процессы могут сообщить системе, какие действия следует предпринимать, когда придет сигнал. У процесса есть выбор: проигнорировать сигнал, перехватить его или позволить сигналу убить процесс по умолчанию для большинства сигналов. Если процесс выбрал перехват посылаемых ему сигналов, он должен указать процедуры обработки сигналов. Когда сигнал прибывает, управление передается обработчику. Когда процедура обработки сигнала завершает свою работу, управление снова возвращается в то место процесса, в котором он находился, когда пришел сигнал.
Обработка сигналов аналогична обработке аппаратных прерываний ввода-вывода. Процесс может посылать сигналы только членам его группы процессов, состоящей из его прямого родителя, всех прародителей, братьев, а также детей (внуков и правнуков). Процесс может послать сигнал сразу всей своей группе за один системный вызов.
Операционные системы
Для управления процессами используются системные вызовы.
Системный вызов Описание
pid =
Операционные системы
Для управления процессами используются системные вызовы.
Системный вызов Описание
pid =
7.6.9. Системные вызовы управления процессами в Unix
В случае ошибки выполнения системного вызова возвращаемое значение s равно минус 1, pid означает PID процесса, a residual - оставшееся время до предыдущего сигнала будильника.
Операционные системы
Системный вызов fork представляет собой единственный способ создания новых процессов
Операционные системы
Системный вызов fork представляет собой единственный способ создания новых процессов
После выполнения системного вызова fork значение всех соответствующих переменных в обоих процессах одинаково, но затем изменения переменных в одном процессе не влияют на переменные другого процесса.
Системный вызов fork возвращает значение, равное нулю для дочернего процесса, и значение идентификатора PID дочернего процесса для родительского. Таким образом два процесса могут определить, кто из них родитель, а кто дочерний процесс.
В большинстве случаев после системного вызова fork дочернему процессу потребуется выполнить программу, отличающуюся от программы, выполняемой родительским процессом.
Работа оболочки происходит следующим образом. Она считывает команды с терминала, с помощью системного вызова fork выполняет введенную команду, затем ждет окончания работы дочернего процесса, после чего считывает следующую команду. Для ожидания завершения дочернего процесса родительский процесс обращается к системному вызову waitpid.
7.6.9. Системные вызовы управления процессами в Unix
Операционные системы
У этого системного вызова три параметра. В первом указывается PID
Операционные системы
У этого системного вызова три параметра. В первом указывается PID
Второй параметр представляет собой адрес переменной, в которую записывается статус завершения дочернего процесса (нормальное или ненормальное завершение, а также возвращаемое на выходе значение). Третий параметр показывает, будет ли обращающийся к системному вызову процесс блокирован до завершения дочернего процесса или сразу получит управление после обращения к системному вызову.
В случае оболочки дочерний процесс должен выполнить команду, введенную пользователем. Он выполняет это при помощи системного вызова exec, который заменяет весь образ памяти содержимым файла, указанным в первом параметре системного вызова.
Ниже приводиться очень упрощенный пример использования системных вызовов fork, waitptd и exec (в упрощенной оболочке):
7.6.9. Системные вызовы управления процессами в Unix
Операционные системы
while (TRUE) { /*Вечный цикл */
type_prompt ( );
Операционные системы
while (TRUE) { /*Вечный цикл */
type_prompt ( );
read_command (command, params); /*Прочитать с клавиатуры строку */
pid = fork ( ); /*Ответвить дочерний процесс*/
if (pid < 0) {
printf (“Создать процесс невозможно”); /*Ошибка */
continue; /*Следующий цикл */
}
if (pid != 0) {
waitpid ( -1, &status, 0 ); /*Род. пр-с ждет завершения доч. пр-са*/
} else {
execve (command, params, 0); /* Дочерний процесс выполняет работу*/
}
}
Операционные системы
В самом общем случае у системного вызова exec три параметра:
Операционные системы
В самом общем случае у системного вызова exec три параметра:
Все эти процедуры обращаются к одному и тому же системному вызову. Хотя сам системный вызов называется exec, библиотечной процедуры с таким именем нет.
7.6.9. Системные вызовы управления процессами в Unix
Операционные системы
7.6.10. Системные вызовы для управления потоками
Стандартом POSIX (P1003.1c) предусматривается реализация
Операционные системы
7.6.10. Системные вызовы для управления потоками
Стандартом POSIX (P1003.1c) предусматривается реализация
Системный вызов Описание
pthread_create Создать поток в адр. простр. вызывающего процесса pthread_exit Завершить поток pthread_ join Подождать пока не завершится процесс pthread_mutex_init Создать новый мьютекс pthread_ mutex_destroy Уничтожить мьютекс pthread_ mutex_lock Заблокировать мьютекс pthread_ mutex_unlock Разблокировать мьютекс pthread_ cond_init Создать условную переменную pthread_ cond_ destroy Уничтожить условную переменную pthread_ cond_ wait Ждать условную переменную pthread_ cond_ signal Разблокировать один поток, ждущий условную
переменную
err = pthread_create (&tid, attr, function, arg); - этот вызов создает новый поток, в котором работает программа function, а arg передается программе в качестве параметра.
Операционные системы
7.6.10. Системные вызовы для управления потоками
Для создания потока используется системный
Операционные системы
7.6.10. Системные вызовы для управления потоками
Для создания потока используется системный
err = pthread_create (&tid, attr, function, arg);
Этот вызов создает в текущем процессе новый поток, в котором работает программа function, a arg передается этой программе в качестве параметра. Идентификатор нового потока хранится в памяти по адресу, на которой указывает первый параметр. С помощью параметра attr можно задавать для нового потока определенные атрибуты, такие как приоритет планирования.
Поток, выполнивший свою работу и желающий прекратить свое существование, обращается к вызову pthread_exit.
Поток может подождать, пока не завершится процесс, обративший к системному вызову pthread_join.
Если ожидаемый поток завершил свою работу, системный вызов pthread__join выполняется мгновенно. В противном случае обратившийся к нему поток блокируется.
Операционные системы
7.6.10. Системные вызовы для управления потоками
Синхронизация потоков может осуществляться при
Операционные системы
7.6.10. Системные вызовы для управления потоками
Синхронизация потоков может осуществляться при
Мьютексы предназначены для кратковременной блокировки, например для защиты совместно используемой переменной. Они не предназначаются для долговременной синхронизации, например для ожидания, когда освободится накопитель на МП.
Для долговременной синхронизации предоставляются переменные состояния. Они используются следующим образом: один поток ждет, когда переменная примет определенное значение, а другой поток сигнализирует ему изменением этой переменной.
Операционные системы
7.6.11. Реализация процессов в системе Unix
У каждого процесса есть пользовательская
Операционные системы
7.6.11. Реализация процессов в системе Unix
У каждого процесса есть пользовательская
Однако когда один из потоков обращается к системному вызову, происходит эмулированное прерывание с переключением в режим ядра.
После этого поток начинает работать в контексте ядра с полным доступом к ресурсам машины (со своим стеком ядра и счетчиком команд в режиме ядра).
Операционные системы
7.6.11. Реализация процессов в системе Unix
Ядро поддерживает две ключевые структуры
Операционные системы
7.6.11. Реализация процессов в системе Unix
Ядро поддерживает две ключевые структуры
Таблица процессов содержит: 1. Параметры планирования. Приоритеты процессов, процессорное время, потребленное за последний учитываемый период, количество времени, проведенное процессом в режиме ожидания. Используется для выбора активируемого процесса. 2. Образ памяти. Указатели на сегменты программы, данных и стека или на таблицы страниц. Когда процесса нет в памяти здесь содержится информация о его месте на диске. 3. Сигналы. Маски, характеризующие сигналы (игнорируемые, перехватываемые, доставляемые).
4. Разное. Текущее состояние процесса, ожидаемые события, PID процесса, идентификатор пользователя и др.
Структура пользователя включает: 1. Машинные регистры (сохраняются здесь при переключении процесса). 2. Информацию о текущем системном вызове (параметры и результаты). 3. Таблицу дескрипторов файлов. 4. Учетную информацию. Данные о процессорном времени, использованном в пользовательском и системном режимах. 5. Стек ядра для использования процессом в режиме ядра.
Операционные системы
7.6.11. Реализация процессов в системе Unix
Когда выполняется системный вызов fork,
Операционные системы
7.6.11. Реализация процессов в системе Unix
Когда выполняется системный вызов fork,
Затем он выделяет память для сегментов данных и для стека дочернего процесса, куда копируются соответствующие сегменты родительского процесса. Структура пользователя копируется вместе со стеком. Программный сегмент может либо копироваться, либо использоваться совместно, если он доступен только для чтения. Начиная с этого момента дочерний процесс может быть запущен.
Так, когда пользователь вводит с терминала команду ls, оболочка создает новый процесс, клонируя свой собственный процесс с помощью системного вызова fork. Новый процесс оболочки затем вызывает системный вызов exec, чтобы считать в свою область памяти содержимое исполняемого файла ls.
Операционные системы
7.6.12. Планирование в системеUNIX
Низкоуровневый алгоритм выбирает процесс, готовый к работе
Операционные системы
7.6.12. Планирование в системеUNIX
Низкоуровневый алгоритм выбирает процесс, готовый к работе
2. Высокоуровневый алгоритм перемещает процессы из памяти на диск и обратно.
Priority = CPU_usage + nice + base
CPU_usage - среднее значение “тиков” (прерывания) таймера в секунду, при которых работал процесс в течении нескольких последних секунд. Эта величина со временем меняется:
CPU_usage ( i ) = CPU_usage (i – 1) / 2; i – номер интервала, на котором происходит вычисление нового приоритета. nice = от – 20 до + 20 (по умолчанию = 0); (Системный администратор может запросить от -20 до -1)
base –назначается ОС (прошиты жестко и отрицательны для свопинга, дискового ввода-вывода и др.)
В системе UNIX используется двухуровневое планирование.
Раз в секунду приоритет каждого процесса пересчитывается по формуле:
Операционные системы
7.6.12. Планирование в системеUNIX
Когда процесс эмулирует прерывание для выполнения системного
Операционные системы
7.6.12. Планирование в системеUNIX
Когда процесс эмулирует прерывание для выполнения системного
Однако когда происходит событие, которого ждал процесс, он снова помещается в очередь с отрицательным значением.
Выбор очереди определяется событием, которого ждал процесс. Если процесс был заблокирован ожиданием ввода с терминала, то, очевидно, это интерактивный процесс и ему должен быть предоставлен наивысший приоритет, как только он перейдет в состояние готовности, чтобы гарантировать хорошее качество обслуживания интерактивных процессов. Таким образом, процессы, ограниченные производительностью процесса, т. е. находящиеся в положительных очередях, обслуживаются после того, как будут обслужены все процессы, ограниченные вводом-выводом (когда эти процессы окажутся заблокированными в ожидании ввода-вывода).
Операционные системы
7.6.13. Управление памятью в системе UNIX
У каждого процесса в системе
Операционные системы
7.6.13. Управление памятью в системе UNIX
У каждого процесса в системе
Как правило, программный сегмент разрешен только для чтения, т. е. он не изменяется ни в размерах, ни по содержанию.
Сегмент данных содержит переменные, строки, массивы и другие данные. Он состоит из двух частей: инициализированных и неинициализированных данных.
С точки зрения ОС инициализированные данные не отличаются от текста программы - и тот и другой сегменты содержат сформированные компилятором последовательности битов, загружаемые в память при запуске программы.
Неинициализированные данные по традициям называются BSS (Bulk Storage System - запоминающее устройство большой емкости). Неинициализированные данные необходимы лишь с точки зрения оптимизации использования памяти. Вместо неинициализированных данных компилятор помещает в исполняемый файл слово, содержащее размер области неинициализированных данных в байтах. При запуске программы ОС считывает это слово, выделяет нужное число битов и обнуляет их.
Операционные системы
7.6.13. Управление памятью в системе UNIX
В отличие от текстового сегмента,
Операционные системы
7.6.13. Управление памятью в системе UNIX
В отличие от текстового сегмента,
Третий сегмент - это сегмент стека. На большинстве компьютеров он начинается около старших адресов виртуального адресного пространства и растет вниз к 0. Если указатель стека оказывается ниже нижней границы сегмента стека, происходит прерывание, при котором ОС понижает границу стека на одну страницу памяти. Программы явно не управляют размером стека.
Когда программа запускается, ее стек не пуст. Он содержит все переменные окружения (оболочки), а также командную строку, введенную в оболочке при вызове этой программы. Таким образом, программа может узнать параметры, с которыми она была запущена.
Операционные системы
7.6.13. Управление памятью в системе UNIX
Большинство систем UNIX поддерживает текстовые
Операционные системы
7.6.13. Управление памятью в системе UNIX
Большинство систем UNIX поддерживает текстовые
Многие версии UNIX поддерживают отображение файлов на адресное пространство памяти. Это позволяет читать из файла и писать файл, как если бы это был массив, хранящийся в памяти. Произвольный доступ к файлу становится существенно более легким, чем при использовании системных вызовов, таких как read и write. Совместный доступ к библиотекам предоставляется именно при помощи этого механизма.
Дополнительно преимущество отображения файла на память заключается в том, что два или более процессов могут одновременно отобразить на свое адресное пространство один и тот же файл. Запись в этот файл одним из процессов мгновенно становится видимой всем остальным.
Операционные системы
7.6.13. Управление памятью в системе UNIX
Стандартом POSIX системные вызовы для
Операционные системы
7.6.13. Управление памятью в системе UNIX
Стандартом POSIX системные вызовы для
На практике в большинстве UNIX-систем есть системные вызовы для управления памятью.
Системный вызов brk указывает размер сегмента данных, задавая адрес первого байта за его пределами. Если новое значение больше старого, сегмент данных увеличивается, в противном случае уменьшается. В случае ошибки возвращаемое значение S= -1.
Системные вызовы mmap и unmap управляют отображением файлов на адресное пространство памяти. Адрес, по которому будет отображаться файл (или его часть), указывается параметром addr. Второй параметр, lеn, задает количество отображаемых байтов. Он должен быть кратен размеру страницы. Параметр prot задает режим защиты отображаемого файла (чтение, запись, исполнение). Четвертый параметр, flags, определяет, является ли отображаемый файл приватным или доступным для совместного использования. Параметр fd представляет собой дескриптор отображаемого файла. Последний параметр, offset, сообщает, с какого места должен отображаться файл (номер байта).
Системный вызов unmap отменяет отображение файла или его части.
Операционные системы
7.6.13. Управление памятью в системе UNIX
До версии 3BSD большинство систем
Операционные системы
7.6.13. Управление памятью в системе UNIX
До версии 3BSD большинство систем
1. Системному вызову fork требовалась память для дочернего процесса.
2. Системный вызов brk собирался расширить сегмент данных.
3. Разросшемуся стеку требовалась дополнительная память.
Кроме того, когда наступало время запустить процесс, уже достаточно долго находящийся на диске, часто нужно было удалять из памяти другой процесс, чтобы освободить место для запускаемого процесса.
Для удаления свопер рассматривает сначала блокированные процессы. Если такие находились, то выбирался процесс с наивысшим значением суммы приоритета и времени пребывания памяти. Если блокированных процессов нет, то на основании этого же критерия выбирался готовый к выполнению процесс.
Операционные системы
7.6.13. Управление памятью в системе UNIX
Каждые несколько секунд свопер исследовал
Операционные системы
7.6.13. Управление памятью в системе UNIX
Каждые несколько секунд свопер исследовал
Легким считался тот, для которого не требовалось дополнительное высвобождение памяти. Тяжелым свопингом считался случай, когда требовалось удалить один или несколько процессов для размещения нужного процесса в памяти.
Затем весь этот алгоритм повторялся до тех пор, пока не выполнялось одно из следующих двух условий: (1) на диске не осталось процессов, готовых к работе, или (2) в памяти не осталось места для новых процессов. Чтобы не терять большую часть производительности системы на свопинг, ни один процесс не выгружается на диск, если он пробыл в памяти менее 2 с.
Свободное место в памяти и на диске учитывается при помощи связанного стека свободных пространств.
Операционные системы
7.6.13. Управление памятью в системе UNIX
Начиная с версии 3BSD университет
Операционные системы
7.6.13. Управление памятью в системе UNIX
Начиная с версии 3BSD университет
Идея, лежащая в основе страничной подкачки в системе 4BSD, проста. Чтобы работать, процессу не нужно целиком находиться в памяти. Требуется лишь структура пользователя и таблицы страниц. Страницы с сегментами текста, данных и стека загружаются в память по мере обращения к ним.
Страничная подкачка реализуется частично ядром и частично новым процессом, называемым страничным демоном.
Страничный демон - это процесс 2 (процесс 0 -свопер, а процесс 1 - init). Как и все демоны, страничный демон периодически запускается и «смотрит», есть ли доля работы.
Если он обнаруживает, что количество страниц в списке свободных страниц мало, страничный демон инициирует действия по освобождению дополнительных страниц. Память в 4BSD делится на три части. Первые две части - ядро операционной системы и карта памяти - фиксированы в физической памяти.
Операционные системы
7.6.13. Управление памятью в системе UNIX
Остальная память делится на страничные
Операционные системы
7.6.13. Управление памятью в системе UNIX
Остальная память делится на страничные
Карта памяти содержит информацию о содержимом страничных блоков. Для каждого такого блока в карте памяти есть запись фиксированной длины.
При килобайтных страничных блоках и 16-байтовых записях карты памяти на нее расходуется менее 2% общего объема памяти. Первые два поля записи используются только тогда, когда соответствующий страничный блок находится в списке свободных страниц. В этом случае они сшивают свободные страницы в двухсвязный список.
Следующие три поля используются, когда страничный блок содержит информацию. В них содержится информация о логическом устройстве, содержащем копию страницы, о расположении блока копии страницы на логическом устройстве и хеш-код блока. Еще три поля содержат ссылку на запись в таблице процессов, тип хранящегося сегмента и смещение в сегменте. Последнее поле содержит некоторые флаги, нужные для алгоритма страничной подкачки.
Операционные системы
7.6.13. Управление памятью в системе UNIX
При запуске процесс может вызвать
Операционные системы
7.6.13. Управление памятью в системе UNIX
При запуске процесс может вызвать
При страничном прерывании ОС берет первый страничный блок из списка свободных блоков, удаляет его из списка и считывает в него требуемую страницу.
Если список свободных страниц пуст, выполнение процесса приостанавливается до тех пор, пока страничный демон не освободит страничный блок.
Операционные системы
7.6.13. Алгоритм замещения страниц
Алгоритм замещения страниц выполняется страничным демоном. Раз
Операционные системы
7.6.13. Алгоритм замещения страниц
Алгоритм замещения страниц выполняется страничным демоном. Раз
Если число свободных страничных блоков меньше, чем значение этого параметра, страничный демон начинает переносить страницы из памяти на диск, пока число свободных страничных блоков не станет равно lotsfree.
Если количество свободных страничных блоков больше или равно lotsfree, страничный демон снова засыпает. Если у компьютера много памяти и мало активных процессов, страничный демон спит практически все время.
Страничный демон использует модифицированную версию часового алгоритма. Это глобальный алгоритм, т. е. при удалении страницы не учитывается, чья это страница.
Операционные системы
7.6.13. Алгоритм замещения страниц
Основной алгоритм часов работает, сканируя в цикле
Операционные системы
7.6.13. Алгоритм замещения страниц
Основной алгоритм часов работает, сканируя в цикле
На первом проходе, когда стрелка часов указывает на страничный блок, сбрасывается его бит использования.
На втором проходе у каждого страничного блока, к которому не было доступа с момента первого прохода, бит использования окажется сброшенным, и этот страничный блок будет помещен в список свободных страниц (после записи его на диск, если он «грязный»).
Страничный блок в списке свободных страниц сохраняет свое содержание, что позволяет восстановить страницу, если она потребуется, прежде, чем будет перезаписана.
Операционные системы
7.6.13. Алгоритм замещения страниц
Изначально в Berkley UNIX использовался основной алгоритм
Операционные системы
7.6.13. Алгоритм замещения страниц
Изначально в Berkley UNIX использовался основной алгоритм
В этом алгоритме страничный демон поддерживает два указателя на карту памяти. При работе он сначала очищает бит использования передней стрелкой, а затем проверяет этот бит задней стрелкой. Если две стрелки находятся близко друг от друга, то только у очень активных используемых страниц появляется шанс, что к ним будет обращение между проходами двух стрелок. Если же стрелки разнесены на 359 градусов (т. е. задняя стрелка находится слегка впереди передней), то получаем исходный алгоритм часов. При каждом запуске демона стрелки проходят не полный оборот, а столько, сколько необходимо, чтобы количество страниц в списке свободных страниц было не менее lotsftee.
Операционные системы
7.6.13. Алгоритм замещения страниц
Если операционная система обнаруживает, что частота подкачки
Операционные системы
7.6.13. Алгоритм замещения страниц
Если операционная система обнаруживает, что частота подкачки
Алгоритм свопинга в системе 4BSD следующий. Сначала свопер проверяет, есть ли процесс, который бездействовал в течение 20 и более секунд. Если такие процессы есть, из них выбирается бездействующий в течение максимального срока и выгружается на диск. Если таких процессов нет, изучаются четыре самых больших процесса, из которых выбирается тот, который находится в памяти дольше всех, и выгружается на диск. При необходимости этот алгоритм повторяется до тех пор, пока не будет высвобождено достаточное количество памяти.
Каждые несколько секунд свопер проверяет, есть ли на диске готовые процессы, которые следует загрузить в память. Каждому процессу на диске присваивается значение, зависящее от времени его пребывания в выгруженном состоянии, размера, значения, использовавшегося при обращении к системному вызову nice, и оттого, как долго этот процесс спал, прежде чем был выгружен на диск.
Операционные системы
7.6.13. Алгоритм замещения страниц
Эта функция обычно взвешивается так, чтобы загружать
Операционные системы
7.6.13. Алгоритм замещения страниц
Эта функция обычно взвешивается так, чтобы загружать
Свопер загружает в память только структуру пользователя и таблицы страниц. Страницы с текстом, данными и стеком подгружаются при помощи обычной страничной подкачки.
Страничная подкачка в System V во многом организуется так же, как и в ОС 4BSD. Но есть два различия.
Во-первых, в System V вместо алгоритма часов с двумя стрелками используется оригинальный алгоритм часов с одной стрелкой. Более того, вместо того, чтобы помещать страницу в список свободных на втором проходе, она помещается туда только в случае, если она не использовалась в течение нескольких последовательных проходов. Это значительно увеличивает вероятность того, что освобожденная страница не потребуется тут же снова.
Во-вторых, вместо одной переменной lotsfree в System V используются две переменные - min и max. Когда число свободных страниц опускается ниже min, страничный демон начинает освобождать страницы. Этот процесс идет до тех пор, пока число страниц не сравнится с max. Такой подход позволяет избежать неустойчивости, возможной в системе 4BSD.
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Подход, применяемый в UNIX, в построении
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Подход, применяемый в UNIX, в построении
Каждому устройству ввода-вывода назначается имя пути, обычно в каталоге /dev. Например, диск может иметь путь /dev/hdl, принтер - /dev/lp, у сети может быть путь /dev/net.
Доступ к этим специальным файлам осуществляется так же, как к обычным файлам. Для этого не требуется специальных команд или системных вызовов, например команда
ср file/dev/lp
скопирует file на принтер, в результате чего принтер распечатает этот файл.
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Специальные файлы подразделяются на две категории:
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Специальные файлы подразделяются на две категории:
С каждым специальным файлом связан драйвер устройства, осуществляющий управление соответствующим устройством.
Примером ввода-вывода системы UNIX является работа с сетью. Ключевым понятием в схеме работы с сетью является сокет.
Сокеты подобны почтовым ящикам и телефонным розеткам в том смысле, что они образуют пользовательский интерфейс с сетью, как почтовые ящики формируют интерфейс с почтовой системой, а телефонные розетки - с телефонной сетью.
Сокеты могут динамически создаваться и разрушаться. При создании сокета вызывающему процессу возвращается дескриптор файла, требующийся для установки соединения, чтения и записи данных, а также разрыва соединения.
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Каждый сокет поддерживает определенный тип работы
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
Каждый сокет поддерживает определенный тип работы
1. Надежный, ориентированный на соединение байтового потока.
2. Надежный, ориентированный на соединение потока пакетов.
3. Ненадежная передача пакетов.
Первый тип сокета позволяет двум процессам на различных машинах установить между собой эквивалент «трубы» (канала между процессами на одной машине). Такая система гарантирует, что все посланные байты прибудут на другой конец канала в том порядке, как были отправлены.
Второй тип сокетов отличается тем, что сохраняет границу между пакетами.
Третий тип сокетов не дает гарантий доставки. Сеть может терять пакеты или предоставлять их в неверном порядке. Преимущество этого режима заключается в более высокой производительности, которая в некоторых ситуациях ценится существенно выше, нежели сохранность данных в процессе передачи (например, при доставке мультимедиа).
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
При создании сокета одним из параметров
Операционные системы
7.6.14. Ввод-вывод в системе UNIX
При создании сокета одним из параметров
Прежде чем сокет может быть использован для работы в сети, с ним должен быть связан адрес.
Как только сокеты созданы на компьютере-источнике и компьютере-приемнике, между ними может быть установлено соединение. Одна сторона обращается к системному вызову listen, указывая в качестве параметра локальный сокет. При этом системный вызов создает буфер и блокируется до тех пор, пока не прибудут данные.
Другая сторона обращается к системному вызову connect, задавая в параметрах дескриптор файла для локального сокета и адрес удаленного сокета. Если удаленный компьютер принимает вызов, система устанавливает соединение между двумя сокетами.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Появление фирмы MICROSOFT и
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Появление фирмы MICROSOFT и
Первый ПК IBM PC, основанный на процессоре Intel8088, и MS DOS 1.0 (1981 г.). ОС состояла из резидентной программы размером 8 Кбайт, довольно близко копирующей CP/M, примитивную ОС для 8-разрядных процессоров Intel8080 и ZilogZ80.
В 1983 г. появилась DOS 2.0 – более мощная ОС, состоящая из 24 Кбайт резидентного кода.
Появление микропроцессора Intel80286 и PC AT на его основе, поставлявшегося с MS DOS 3.0 (1984 – 1986 гг.), занимавшей 36 Кбайт.
С годами в ОС MS DOS появилось много функций (современная наиболее распространенная версия 6.22), но она по-прежнему оставалась системой, ориентированной на командную строку. Сторонние разработчики поставляли различные оболочки, основанные на псевдографике и реализующие табличный интерфейс. Наиболее известной является оболочка Norton Commander.
Проект Lisa (графический интерфейс GUI Xerox, ПК Apple, С. Джобс, 1983 г.). Вдохновил Microsoft на создание графической интерфейсной оболочки.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Интерфейсная графическая оболочка над
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Интерфейсная графическая оболочка над
Версия Windows 2.0 для PC AT (1987 г.) – была не намного лучше предыдущей версии.
Версия Windows 3.0 для ПК с Intel 386 (1990 г.) – добилась большого коммерческого успеха.
Версии Windows 3.1 и 3.11 для ПК с Intel 386, 486 (1992 - 1994 гг.). Имели большой коммерческий успех.
Windows 95 с большинством особенностей монолитной ОС на основе MS DOS 7.0. Не была полностью 32-х разрядной. Содержала значительную долю 16-разрядного кода (1995 г.). Использовала файловую систему MS DOS. Поддерживала длинные имена.
Windows 98 со значительным наследием MS DOS, содержащая частично 16-разрядный код. Поддерживала большие дисковые разделы. Графический интерфейс интегрировал в себе Интернет и рабочий стол пользователя (1998 г.). Ядро не было реентерабельным, поэтому большинство процессов, зайдя в ядро, получали гигантский мьютекс и часто ждали, пока другой процесс покинет ядро.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
У каждого процесса 4-гигабайтное
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
У каждого процесса 4-гигабайтное
Последний 1 Гбайт совместно используется (с возможностью записи) процессами и ядром и содержит некоторые критические структуры данных. Любая программа, записав поверх этих структур какой-либо мусор (преднамеренно или нет), может вывести из строя всю систему. Однако совместное использование последнего 1 Гбайта необходимо для работы старых программ, написанные для MS DOS.
Windows ME, в основе повторяющая Windows 98, но с возможностью восстановления настроек ПК при неверной установке параметров (2000 г.). Исправлены некоторые ошибки, добавлены новые функции (улучшенные возможности воспроизведения изображений, музыки, фильмов, домашняя сеть , поддержка кабельных модемов и ADSL и др.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
К концу 80-х годов
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
К концу 80-х годов
В 1993 г. выпущена ОС Windows NT 3.11. Начальный номер версии был выбран так, чтобы он соответствовал номеру версии популярной тогда Windows 3.11. ОС NT требовала значительно больше памяти, чем для Windows 3.1. Не было 32-разрядных программ. Потерпела неудачу на рынке пользователей ПК. Имела некоторый спрос на рынке серверов.
В 1994 и 1995 годах было выпущено несколько новых 3.x версий с небольшими изменениями (наиболее распространенной стала версия 3.51). Эти версии стали приобретать сторонников и среди пользователей настольных машин.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Windows NT 4.0 (1996
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Windows NT 4.0 (1996
Windows 2000 (1999 г.) – она же версия NT 5.0. Использует популярный пользовательский интерфейс Windows 98. Является полностью 32-разрядной (планировался переход на 64-разрядную) многозадачной системой с индивидуально защищенными процессами.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
У каждого процесса собственное
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
У каждого процесса собственное
ОС работает в режиме ядра, тогда как процессы - в пользовательском режиме, что обеспечивает полноценную защиту. У процессов может быть один или несколько потоков, видимых для операционной системы и управляемых ею.
ОС удовлетворяет требованиям безопасности уровня С2 Министерства обороны США.
ОС обладает поддержкой симметричных многопроцессорных систем с числом процессоров от 2 до 32.
ОС Windows 2000 содержит множество других функций, которые были ранее только в Windows 98: поддержка устройств plug-and-play, шины USB, стандарта IEE1394 (Fire Wire), IrDA (Infrared Data Association - стандарт на инфракрасную передачу данных и вывод на печать), управление питанием.
Добавлен ряд новых функций, не присутствовавших ранее в других ОС MS: каталоговая служба Active Directory, система безопасности Kerberos, поддержка смарт-карт, инструменты мониторинга системы, лучшая интеграция лэптопов и настольных компьютеров, инфраструктура системного администрирования.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Новые свойства получила файловая
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Новые свойства получила файловая
ОС поддерживает интернационализацию. ОС Windows 2000 состоит из единого двоичного кода, работающего во всех странах мира. Для каждой установки системы и даже для каждого пользователя можно выбрать язык, который будет использоваться во время работы системы. Это возможно потому, что все пункты меню, строки диалоговых окон, сообщения об ошибках и другие текстовые строки помещены в специальные каталоги, по одному для каждого языка. Для поддержки языков не использующих латинский алфавит, например русского, греческого, иврита, японского Windows 2000 использует кодировку Unicode.
Есть интерфейс командной строки. Это новая 32-разрядная программа, включающая функциональность старой системы MS DOS, а также некоторые новые функции.
ОС Windows 2000 обладает меньшей переносимостью, чем NT 4.0. Она работает только на двух платформах Pentium и Intel - IA - 64.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Как и предыдущая версия
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Как и предыдущая версия
Однако различия между этими версиями незначительны, и в них используется один и тот же исполняемый двоичный код. При установке системы тип продукта записывается во внутренней базе данных (системном реестре). Во время загрузки ОС проверяет содержимое реестра, определяя версию программного продукта. Различия между ними:
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Размер кластера означает способность
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Размер кластера означает способность
В Windows 2000 Professional по-другому (по отношению к серверам) настраиваются параметры по умолчанию. В этой системе интерактивным процессам предоставляется преимущество перед пакетными заданиями, хотя это можно при необходимости изменить.
С серверными ОС поставляется дополнительное программное обеспечение, а с системой Datacenter Server поставляются дополнительные средства управления большими заданиями.
Формально различием в версиях управляют в нескольких местах программы всего две переменные, считываемые из реестра: ProductType и ProductSuite. В зависимости от этих значений выполняется слегка отличный код. Изменение значений этих переменных рассматривается как нарушение лицензии. Кроме того, система перехватывает любые попытки изменить их и регистрирует эти попытки нестираемым способом, так что впоследствии можно доказать факт нарушения лицензии.
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Кроме основных операционных систем
Операционные системы
7.7.1. История создания
7.7. Операционная система Windows 2000
Кроме основных операционных систем
Windows 2000 представляет собой чрезвычайно сложную систему, на сегодняшний день состоящую более чем из 29 млн. строк на языке С (580 томов по 1000 страниц и 50 строк на странице). Для сравнения - наибольшая по размеру версия UNIX имеет не более 4 млн. строк с учетом графического интерфейса пользователя (X Windows), который не входит собственно в ОС, поскольку считается пользовательским персоналом.
Операционные системы
Инструментальные средства MS для продвинутых пользователей (наборы утилит для отладки
Операционные системы
Инструментальные средства MS для продвинутых пользователей (наборы утилит для отладки
Инструментарий поддержки распространяется на компакт-диске Windows 2000 (каталог \support\tools).
SDK и DDK можно получить на сайте www.msdn.microsoft.com.
Resource Kit распространяется как розничный продукт MS.
Мощный набор инструментов можно получить на сайте www.sysinternals.com. Некоторые из этих программ предоставляют даже больше информации, чем соответствующие инструменты MS.
Операционные системы
7.7.2. Структура системы Windows 2000
ОС Windows можно разделить на 2
Операционные системы
7.7.2. Структура системы Windows 2000
ОС Windows можно разделить на 2
Основная часть разделена на несколько уровней, каждый из которых пользуется службами лежащего ниже уровня. Основными уровнями являются: - системные службы (сервисные процессы, являющиеся системными демонами); - исполняющая система (супервизор или диспетчер); - драйверы устройств; - ядро операционной системы; - уровень аппаратных абстракций (HAL).
Два нижних уровня написаны на языке С и ассемблере и являются частично машинно-зависимыми. Верхние уровни написаны исключительно на языке С и почти полностью машинно-независимы. Драйверы написаны на С и в некоторых случаях на С++.
Операционные системы
Аппаратное обеспечение
Уровень аппаратных абстракций (HAL)
Я д р о
Системные службы
Менеджер ввода-вывода
Менеджер
Операционные системы
Аппаратное обеспечение
Уровень аппаратных абстракций (HAL)
Я д р о
Системные службы
Менеджер ввода-вывода
Менеджер
Файловая система
Аппаратное обеспечение
Интерфейс графических устройств Win32
Менеджер объектов
Менеджер объектов
Менеджер памяти
Менеджер безопасности
Менеджер КЭШа
Менеджер plug-and-play
Менеджер энергопотребления
Менеджер конфигурации
Менеджер локального вызова процедуры
Видео-драйвер
Системный интерфейс (NT DLL.DLL)
Интерфейс графических устройств
Системные службы
Режим ядра
Режим пользователя
Программа POSIX
Программа Win32
Программа OS/2
Подсистема POSIX
Подсистема Win32
Подсистема OS/2
Cслужебный процесс
D
Операционные системы
Windows NT 3.x состояла из относительно небольшого ядра и нескольких
Операционные системы
Windows NT 3.x состояла из относительно небольшого ядра и нескольких
Однако для увеличения производительности начиная с версии NT 4.0 довольно большая часть операционной системы (например, управление системными вызовами и вся экранная графика) была возвращена в ядро.
7.7.2. Структура системы Windows 2000
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
Работа уровня HAL
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
Работа уровня HAL
В уровень HAL включены те службы, которые зависят от от набора микросхем материнской платы и меняются от машины к машине в разумных предсказуемых пределах. Он разработан так, чтобы скрыть различия между материнскими платами разных производителей, но не различия между процессорами.
Программы HAL находятся в файле hal.dll каталога %System Root%\system32. Операционная система связывается с драйвером устройства, драйвер - с механизмом HAL, который непосредственно «разговаривает» с аппаратными средствами.
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
К службам уровня
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
К службам уровня
Уровень HAL не предоставляет абстракций или служб для специфических устройств ввода-вывода - клавиатур, мышей или дисков, а также блоков управления памятью MMU (Memory Management Unit).
Уровень HAL предоставляет три процедуры для чтения регистров устройств и еще три для записи в них:
uc = READ_PORT_UCHAR(port); WRITE_PQRT_UCHAR(port, uc);
us = READ_PORT_USHORT(port); WRITE_PORT_ USHORT (port, us);
ul = READ_ PORT_ULONG(port); WRITE_PORT_ USHORT (port, ul);
Эти процедуры читают и пишут соответственно 8-, 16- и 32-разрядные целые числа без знака в указанный порт. Реализацией этих действий в виде обращения к физическим портам или регистрам, отображаемым на память, занимается уровень HAL. Так, как драйвер использует эти процедуры, то он без каких-либо изменений может быть перемещен на другую платформу.
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
После загрузки ОС
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
После загрузки ОС
Регистры устройств
Регистры устройств
Адреса устройств
Преры-вания
ОЗУ
ДМА
Таймеры
ЦПУ 1
ЦПУ 2
Спин-блокировка
BIOS CMOS
Некоторые функции уровня HAL
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
Функция спин-блокировки необходима,
Операционные системы
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
Функция спин-блокировки необходима,
Поскольку уровень HAL является в большой степени машинно-зависимым, он должен в совершенстве соответствовать системе, на которой установлен, поэтому набор различных уровней HAL поставляется на компакт-диске Windows 2000. Во время установки системы из них выбирается подходящий уровень и копируется на жесткий диск в каталог \winnt\system32 в виде файла hal.dll. При всех последующих запусках ОС используется эта версия уровня HAL.
Операционные системы
7.7.3. Уровень ядра
Назначение ядра – сделать остальную часть ОС независимой
Операционные системы
7.7.3. Уровень ядра
Назначение ядра – сделать остальную часть ОС независимой
Ядро также предоставляет низкоуровневую поддержку двум классам объектов ядра – управляющим объектам и объектам диспетчеризации. Эти объекты используются системой и приложениями для управления ресурсами компьютерной системы: процессами, потоками , файлами и т. д.
Каждый объект ядра – это блок памяти, выделенный ядром, доступный только ему и представляющий собой структуру данных, в которой содержится информация об объекте.
К управляющим объектам ядра относятся объекты, управляющие системой: объекты заданий, процессов, потоков, прерываний, DPC (Deferred Procedure Call – отложенный вызов процедуры), APC (Asynchronous Procedure Call – асинхронный вызов процедуры)
К объектам диспетчеризации ядра относятся объекты, изменение состояния которых могут ждать потоки. Это –семафоры, мьютексы, события, таймеры, очереди, файлы, порты, маркеры доступа и др.
Операционные системы
7.7.3. Уровень ядра
Объект DPC используется, чтобы отделить часть процедуры
Операционные системы
7.7.3. Уровень ядра
Объект DPC используется, чтобы отделить часть процедуры
Например, когда пользователь нажимает на клавишу, процедура обработки прерываний от клавиатуры считывает из регистра код нажатой клавиши и разрешает прерывание от клавиатуры. Но эта процедура не должна немедленно обрабатывать введенный символ, особенно если в данный момент происходит что-то более важное (т. е. с более высоким приоритетом).
Очередь DPC представляет собой напоминание о том, что есть работа, которую следует выполнить позднее.
Операционные системы
7.7.3. Уровень ядра
Объект АРС похож на отложенный вызов процедуры
Операционные системы
7.7.3. Уровень ядра
Объект АРС похож на отложенный вызов процедуры
Когда обрабатывается нажатая клавиша, не имеет значения, в каком контексте работает DPC, так как всё, что требуется сделать, - это исследовать введенный код и, возможно, поместить его в буфер в ядре.
Однако если по прерыванию потребуется скопировать буфер из пространства ядра в адресное пространство пользовательского процесса (например, по завершении операции чтения модема), тогда процедура копирования должна работать в контексте получателя, который нужен для того, чтобы в таблице страниц одновременно содержались и буфер ядра, и буфер пользователя.
Операционные системы
7.7.4. Исполняющая система
Написана на языке С, не зависит от архитектуры
Операционные системы
7.7.4. Исполняющая система
Написана на языке С, не зависит от архитектуры
Менеджер объектов управляет всеми объектами, создаваемыми или известными операционной системе (процессами, потоками, семафорами, файлами и т. д.). Он управляет пространством имен, в которое помещается созданный объект, чтобы к нему можно было обратиться по имени. Остальные компоненты ОС пользуются объектами во время своей работы. При создании объекта менеджер объектов получает в адресном пространстве ядра блок виртуальной памяти и возвращает этот блок в список свободных блоков, когда объект уничтожается.
Менеджер ввода-вывода предоставляет остальной части ОС независимый от устройств ввод-вывод, вызывая для выполнения физического ввода-вывода соответствующий драйвер. К менеджеру ввода вывода относятся и файловые системы, формально являющиеся драйверами устройств. Существует два драйвера для файловых систем FAT и NTFS.
Менеджер процессов управляет процессами и потоками, включая их создание и завершение. Он основывается на объектах потоков и процессов ядра и добавляет к ним дополнительные функции. Это ключевой элемент многозадачности.
Операционные системы
7.7.4. Исполняющая система
Менеджер памяти реализует архитектуру виртуальной памяти со страничной
Операционные системы
7.7.4. Исполняющая система
Менеджер памяти реализует архитектуру виртуальной памяти со страничной
Менеджер безопасности приводит в исполнение сложный механизм безопасности Windows 2000, удовлетворяющий требованиям класса С2 Оранжевой книги Министерства обороны США. В этой книге перечислены правила, которые должна соблюдать система, начиная с аутентификации при регистрации и заканчивая управлением доступом, а также обнулением страниц перед их повторным использованием.
Менеджер кэша хранит в памяти блоки диска, которые использовались последнее время, чтобы ускорить доступ к ним и обслуживает все файловые системы. Взаимодействует с менеджером виртуальной памяти, чтобы обеспечить требуемую непротиворечивость.
Менеджер plug-and-play управляет установкой новых устройств, контролирует их динамическое подключение и осуществляет при необходимости загрузку драйверов.
Менеджер энергопотребления управляет потреблением энергии, следит за состоянием батарей, взаимодействует с ИБП. Он выключает монитор и диски, если к ним не было обращений в течение определенного интервала времени.
Операционные системы
Менеджер конфигурации отвечает за сохранение реестра. Он добавляет новые записи
Операционные системы
Менеджер конфигурации отвечает за сохранение реестра. Он добавляет новые записи
Менеджер вызова локальной процедуры обеспечивает высокоэффективное взаимодействие между процессами и их подсистемами. Поскольку этот путь нужен для выполнения некоторых системных вызовов, эффективность оказывается критичной, поэтому здесь не используются стандартные механизмы межпроцессного взаимодействия.
Интерфейс графических устройств GDI (Graphic Device Interface) управляет графическими изображениями для монитора и принтеров, предоставляя системные вызовы для пользовательских программ. (Интерфейс Win32 и модуль GDI превосходят по объему всю остальную исполняющую систему.) Содержит оконный менеджер и драйвер дисплея. Первоначально располагался в пространстве пользователя. Начиная с NT 4.0 перенесен в пространство ядра.
7.7.4. Исполняющая система
Над исполняющей системой размещаются системные службы. Системные службы предоставляют интерфейс к исполняющей системе. Они принимают системные вызовы Windows 2000 и вызывают необходимые части исполняющей системы для их выполнения.
Операционные системы
Основная часть ОС, состоящая из ядра и исполняющей системы, хранится
Операционные системы
Основная часть ОС, состоящая из ядра и исполняющей системы, хранится
7.7.4. Исполняющая система
При загрузке операционная система Windows 2000 загружается в память, как набор файлов.
Существуют две версии файла ntoskrnl.exe: для однопроцессорных и многопроцессорных систем. Существуют версии для процессора Хеоn, способного поддерживать более 4 Гбайт физической памяти, и для процессора Pentium, который поддерживает только 4 Гбайта памяти. Наконец, этот модуль может содержать или не содержать отладочные функции, в зависимости от чего он предназначается либо для отладки системы, либо для продажи.
Операционные системы
Драйверы устройств устанавливаются в систему, добавляются в реестр и затем
Операционные системы
Драйверы устройств устанавливаются в систему, добавляются в реестр и затем
7.7.5. Драйверы устройств
Существуют четыре вида драйверов: (1) аппаратных средств, (2) файловой системы, (3) фильтров и (4) сетевых устройств переадресации и серверов. Из этих четырех типов только драйверы аппаратных средств имеют непосредственный доступ к физическому оборудованию и согласованно используют механизм HAL.
Каждый драйвер может управлять одним или несколькими устройствами ввода-вывода, но драйвер устройства может также выполнять действия, не относящиеся к какому-либо специфическому устройству, - шифровать поток данных или даже просто предоставлять доступ к структурам данных ядра.
Существуют драйверы для реально видимых и осязаемых устройств ввода-вывода, таких как диски и принтеры, но есть также драйверы для многих внутренних устройств и микросхем.
Корпорация Microsoft предоставляет специальный программный продукт, который нужно использовать для написания своих драйверов (Driver Development Kit (DDK) - средства разработки драйверов).
Операционные системы
7.7.6. Реализация объектов
ОС Windows 2000 является объектно-ориентированной системой. Объект ОС
Операционные системы
7.7.6. Реализация объектов
ОС Windows 2000 является объектно-ориентированной системой. Объект ОС
Все объекты характеризуются следующими свойствами:
• объекты именуются по одной и той же схеме;
• доступ к объекту осуществляется с помощью дескриптора объекта, через менеджер объектов;
• все проверки, связанные с защитой, производятся в одном месте, так что ни один процесс не может их обойти;
• совместное использование объектов организуется по одной и той же схеме;
• поскольку все объекты открываются и закрываются через менеджер объектов, легко отследить, какие объекты еще используются, а какие можно безопасно удалить;
• однородная модель управления объектами позволяет легко регулировать квоты ресурсов.
Операционные системы
7.7.6. Реализация объектов
Исполняемый объект представляет собой набор последовательных слов в
Операционные системы
7.7.6. Реализация объектов
Исполняемый объект представляет собой набор последовательных слов в
Когда операционная система загрузится, нет никаких объектов, кроме бездействующих системных процессов, чьи объекты жестко прошиты в файле ntoskml.exe.
Все остальные объекты создаются по ходу загрузки системы и во время работы различных программ инициализации, а позднее - пользовательских программ.
Операционные системы
7.7.6. Реализация объектов
Структура объектов
Операционные системы
7.7.6. Реализация объектов
Структура объектов
Операционные системы
7.7.6. Реализация объектов
Каждый объект содержит заголовок с определенной информацией,
Операционные системы
7.7.6. Реализация объектов
Каждый объект содержит заголовок с определенной информацией,
Поле заголовка включает в себя имя объекта, каталог, в котором объект живет в пространстве объектов, информацию защиты (при открытии объекта выполняется определенная проверка), а также список процессов, у которых есть открытые дескрипторы к данному объекту (если установлен определенный флаг отладки).
Каждый заголовок объекта также содержит поле цены квоты, представляющей собой «плату», взимаемую с процесса за открытие объекта. Например, если файловый объект стоит один пункт, а процесс принадлежит заданию, у которого есть 10 пунктов квоты, то суммарно все процессы этого задания могут открыть не более 10 файлов.
Счетчик ссылок на объект увеличивается на 1 каждый раз, когда объект открывается, и уменьшается на 1 при закрытии объекта. Когда значение счетчика становится нулевым, это означает, что объектом никто не пользуется.
Операционные системы
7.7.6. Реализация объектов
Когда объект открывается или освобождается компонентом исполняющей
Операционные системы
7.7.6. Реализация объектов
Когда объект открывается или освобождается компонентом исполняющей
Когда оба счетчика равны нулю, это означает, что объект больше не используется ни одним пользовательским, ни одним исполняющим процессом. В этом случае объект может быть удален, а его адресное пространство возвращено системе.
Доступ к объектам бывает необходим не только менеджеру объектов, но и другим частям исполняющей системы. Для этого исполняющая система содержит два пула в адресном пространстве ядра: для объектов и для других динамических структур данных. Один пул является выгруженным, а другой - невыгруженным (фиксированным в памяти).
Объекты, обращения к которым часты, хранятся в невыгруженном пуле; объекты, к которым обращения редки, хранятся в выгружаемом пуле. Когда памяти не хватает - этот пул может быть выгружен на диск и загружен обратно по страничному прерыванию в случае возникновения в нем необходимости.
Операционные системы
7.7.6. Реализация объектов
Объекты, которые могут понадобиться, когда система выполняет
Операционные системы
7.7.6. Реализация объектов
Объекты, которые могут понадобиться, когда система выполняет
Объекты подразделяются на типы. Это означает, что у каждого объекта есть свойства, общие для всех объектов этого типа.
Тип объекта определяется указателем на объект типа. Информация о типе включает такие пункты, как название типа, данные о том, может ли поток ждать изменения состояния этого объекта (да - для мьютексов, нет - для открытых файлов) и должен ли объект этого типа храниться в выгружаемом или невыгружаемом пуле.
Наконец, самая важная часть объекта - указатели на программы для определения стандартных операций, таких как open, close, delete. Когда вызывается одна из этих операций, используется указатель на типовой объект, в котором выбирается и выполняется соответствующая процедура.
Операционные системы
7.7.6. Реализация объектов
Наиболее употребительные типы объектов
Операционные системы
7.7.6. Реализация объектов
Наиболее употребительные типы объектов
Операционные системы
7.7.6. Реализация объектов
Для каждого процесса и потока существует соответствующий объект,
Операционные системы
7.7.6. Реализация объектов
Для каждого процесса и потока существует соответствующий объект,
Объекты семафор, мьютекс и события имеют отношение к синхронизации процессов.
Объекты порт, таймер и очередь также имеют отношение к связи и синхронизации. Порты представляют собой каналы между процессами, использующиеся для обмена сообщениями. Таймеры предоставляют способ блокировать процесс или поток на определенное время. Очереди применяются для уведомления потоков о том, что начатая ранее синхронная операция ввода-вывода завершена.
Объекты открытых файлов создаются при открытии файла.
Менеджеры доступа представляют собой объекты безопасности. Они идентифицируют пользователя и сообщают, какие привилегии имеет данный пользователь.
Профили представляют собой структуры, используемые для хранения периодически фиксируемых значений счетчика команд работающего потока, которые позволяют определить, на что тратит свое время данная программа.
Операционные системы
7.7.6. Реализация объектов
Секции являются объектами, используемыми системой памяти для управления
Операционные системы
7.7.6. Реализация объектов
Секции являются объектами, используемыми системой памяти для управления
Ключи представляют собой ключи реестра и применяются для установки связи между именем и значением.
Каталоги объектов позволяют объединять связанные объекты тем же способом, каким обычные каталоги объединяют файлы в файловой системе.
Символьные ссылки также подобны своим двойникам в файловой системе: они позволяют имени в одной части пространства имен объектов ссылаться на объект в другой части этого пространства имен.
У каждого известного системе устройства есть объект устройства, содержащий информацию о нем и использующийся для ссылки на устройство в системе.
У каждого загруженного драйвера есть объект в пространстве объектов.
Пользователи могут создавать или открывать уже существующие объекты при помощи вызовов Win 32, таких как CreateSemaphere или OpenSemaphere. Эти вызовы являются библиотечными, которые в конечном итоге обращаются к настоящим системным вызовам.
Операционные системы
7.7.6. Реализация объектов
Для выполнения задачи слежения за объектами менеджер объектов
Операционные системы
7.7.6. Реализация объектов
Для выполнения задачи слежения за объектами менеджер объектов
Во время загрузки различные части исполняющей системы создают каталоги и заполняют их объектами. Например, когда менеджер plug-and-play обнаруживает новые устройства, он создает по объекту для каждого устройства и помещает эти объекты в пространство имен. Когда система полностью загружена, все устройства ввода-вывода, дисковые разделы и другие устройства (модемы, сканеры и др.) оказываются представленными в пространстве имен объектов.
Некоторые компоненты исполняющей системы просматривают реестр, чтобы определить, что им делать. Пример - драйверы устройств. При загрузке система просматривает реестр, чтобы определить, какие драйверы нужны. При загрузке каждого драйвера создается объект, а его имя добавляется в пространство имен объектов. В системе обращение к драйверу осуществляется по указателю на его объект.
Без использования специальных средств просмотра пространства имен объектов невидимо для пользователей. Одним из таких средств является программа winobj, которую можно бесплатно получить на сайте www.sysinternals.com.
Операционные системы
7.7.6. Реализация объектов
Некоторые каталоги
Операционные системы
7.7.6. Реализация объектов
Некоторые каталоги
Операционные системы
7.7.7. Подсистемы окружения
В Windows 2000 существует три типа компонентов, работающих
Операционные системы
7.7.7. Подсистемы окружения
В Windows 2000 существует три типа компонентов, работающих
Программы, пользующиеся интерфейсом Win32, содержит, как правило, большое количество обращений к функциям Win32 API. Поэтому, если работает одновременно несколько программ, то в памяти будут находиться многочисленные копии одних и тех же библиотечных процедур. Чтобы избежать подобной проблемы Windows поддерживает динамически присоединяемые библиотеки DLL. При этом при запуске нескольких приложений, использующих одну и ту же DLL, в памяти будет находиться только одна копия текста DLL.
В каталоге \winnt\system32 есть более 800 отдельных файлов DLL (130 Мбайт при числе вызовов API более13000).
Операционные системы
7.7.7. Подсистемы окружения
Каждая динамическая библиотека содержит набор тесно связанных
Операционные системы
7.7.7. Подсистемы окружения
Каждая динамическая библиотека содержит набор тесно связанных
Когда приложение компонуется, компоновщик видит, что некоторые библиотечные процедуры принадлежат к динамичным библиотекам, и записывает эту информацию в заголовок исполняемого файла.
Обращения к процедурам динамических библиотек производятся не напрямую, а при помощи вектора передачи в адресном пространстве вызывающего процесса. Изначально этот вектор заполнен нулями, так как адреса вызываемых процедур еще не известны.
При запуске прикладного процесса все требуемые динамические библиотеки обнаруживаются (на диске или в памяти) и отображаются на виртуальное адресное пространство процесса.
Затем вектор передачи заполняется верными адресами, что позволяет вызвать библиотечные процедуры через этот вектор с незначительной потерей производительности. Выигрыш этой схемы заключается в том, что при запуске нескольких приложений, использующих одну и ту же библиотеку, в физической памяти требуется только одна копия текста DLL (но каждый процесс получает собственную копию приватных статических данных в DLL).
Операционные системы
7.7.7. Подсистемы окружения
Каждый пользовательский процесс, как правило, связан с
Операционные системы
7.7.7. Подсистемы окружения
Каждый пользовательский процесс, как правило, связан с
Дальнейшие действия зависят от вызова Win32 API.
Разные вызовы реализуются по-разному.
В некоторых случаях динамические библиотеки обращаются к другой динамической библиотеке (ntdll.dll), которая, в свою очередь, обращается к ядру операционной системы.
Динамическая библиотека может также выполнить всю работу самостоятельно, совсем не обращаясь к системным вызовам.
Для других вызовов Win32 API выбирает другой маршрут: сначала к процессу подсистемы Win32 (csrss.exe) посылается сообщение, выполняющее некоторую работу и обращающееся к системному вызову.
При этом в некоторых случаях подсистема также выполняет всю работу в пространстве пользователя и немедленно возвращает управление. Передача сообщения между прикладным процессом и процессом подсистемы Win32 оптимизирована по времени, для чего использован механизм вызова локальной процедуры, реализованный в исполняющей системе.
Операционные системы
2б
Вызов
Вызов
Вызов
Gdi32.dll
User32.dll
Kernel32.dll
Подсистема Win32
Процесс подсистемы окружения (csrss.exe)
Системный интерфейс (NTDLL.dll)
ОПЕРАЦИОННАЯ СИСТЕМА
3б
2a
4б
3а
Пространство пользователя
1
Операционные системы
2б
Вызов
Вызов
Вызов
Gdi32.dll
User32.dll
Kernel32.dll
Подсистема Win32
Процесс подсистемы окружения (csrss.exe)
Системный интерфейс (NTDLL.dll)
ОПЕРАЦИОННАЯ СИСТЕМА
3б
2a
4б
3а
Пространство пользователя
1
Операционные системы
7.7.8. Загрузка Windows
Считывание главной загрузочной записи MBR загружаемого диска
Анализ таблицы
Операционные системы
7.7.8. Загрузка Windows
Считывание главной загрузочной записи MBR загружаемого диска
Анализ таблицы
Передача управления загрузочному сектору 0 раздела, в котором находится ОС
Программа загрузочного сектора находит в корневом каталоге раздела файл ntldr
Самотестирование при включении (Power-Jn Self-Test. POST)
Системная BIOS ищет загрузочный диск (в порядке, заданном пользователем)
Программа ntldr считывает файл Boot.ini, в котором хранятся списки файлов hal.dll, ntoskerrnl.exe (в Boot.ini указано количество ЦПУ, ОП, F часов реального времени). Загружает и выполняет программу ntdetect.com.
Загружаются файлы hal.dll, ntoskerrnl.exe и bootvid.dll. Программа ntldr считывает реестр, чтобы найти драйверы, необходимые для завершения загрузки (для микросхем мат. платы, клавиатуры, мыши и т. д.).
Загрузчик считывает драйверы и передает управление программе ntoskernl.exe
Операционные системы
Общие процедуры инициализации и инициализация компонентов исполняющей системы. Загрузка и
Операционные системы
Общие процедуры инициализации и инициализация компонентов исполняющей системы. Загрузка и
Создание сеансового менеджера smss.exe
Запуск подсистемы окружения Win32 (csrss.exe), считывание реестра и выполнение указанных команд, создание файлов подкачки и открытие нужных DLL
Создание демона регистрации winlogon.exe
Создание менеджера аутентификации lsass.exe
Запуск родительского процесса всех служебных процессов services.exe. По информации, хранящейся в реестре определяет, какие демоны в пространстве пользователя надо запустить (сервер принтера, файловый сервер, обработчик входящей электронной почты, факсов и т. д.)..
Демон регистрации
Менеджер аутентификации
Выбор из реестра профиля пользователя и запуск требуемей оболочки.
Операционные системы
7.7.9. Файловая система Windows 2000
Основные свойства файловой системы NTFS:
1. Поддержка
Операционные системы
7.7.9. Файловая система Windows 2000
Основные свойства файловой системы NTFS:
1. Поддержка
Операционные системы
Структура тома NTFS
Основой структуры тома является главная таблица файлов (Master
Операционные системы
Структура тома NTFS
Основой структуры тома является главная таблица файлов (Master
Каждый том состоит из линейной последовательности блоков (кластеров). Размер кластера фиксирован для каждого тома и варьируется от 512 байт до 64 Кбайт в зависимости от размера тома. Обращение к блокам осуществляется по их смещению от начала тома. Порядковый номер кластера в томе – логический номер кластера (Logical Cluster Number, LCN) – 64-х разрядное число.
Все файлы в томе NTFS идентифицируются номером файла, который определяется позицией в файла в MFT (Master File Table) – главной таблице файлов. Файл состоит из последовательности кластеров, порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).
Базовая единица распределения дискового пространства – отрезок – непрерывная область кластеров.
Операционные системы
Структура тома NTFS
Адрес отрезка – пара (LCN, k), где LCN
Операционные системы
Структура тома NTFS
Адрес отрезка – пара (LCN, k), где LCN
Адрес файла (или его части) – (LCN, VCN, k).
Операционные системы
Загрузочный блок
0
1
2
15
Системный файл 1
Системный файл 2
Системный файл n
Копия MFT (первые
Операционные системы
Загрузочный блок
0
1
2
15
Системный файл 1
Системный файл 2
Системный файл n
Копия MFT (первые
Копия загрузочного блока
Файл M
MFT
MFT
Загрузочный блок тома NTFS располагается в начале тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, начальный логический номер кластера основной и зеркальной копии MFT.
Главной структурой данных в каждом томе является главная файловая таблица MFT (Master File Table), представляющая собой линейную последовательность записей 2-Кбайт размера. Каждая запись MFT описывает один файл или каталог.
Сама главная файловая таблица представляет собой файл и может располагаться в любом месте тома. Кроме того, этот файл может расти до максимального размера 248 записей.
Первые 16 записей MFT зарезервированы
для файлов метаданных NTFS. Каждая запись описывает файл, у которого есть атрибуты и блоки данных, как у любого файла. У каждого такого файла есть имя, начинающееся с символа доллара, указывающего на то, что это файл метаданных.
1-й отрезок MFT
2-й отрезок MFT
3-й отрезок MFT
Файл K
MFT
Операционные системы
0. Описание MFT, в том числе адреса всех ее отрезков.
Первая
Операционные системы
0. Описание MFT, в том числе адреса всех ее отрезков.
Первая
Структура тома NTFS
1. Зеркальная копия 3-х первых записей MFT.
Эта информация является настолько ценной, что наличие второй копии может быть необходимо на случай, если один из первых блоков главной файловой таблицы вдруг станет дефектным
2. Журнал для восстановления файловой системы.
В нем фиксируются все изменения происходящие в файловой системе.
3. Информация о томе (имя, версия и др. информация).
4. Таблица определения атрибутов (ссылка на файл $AttrDef).
Операционные системы
5. Индекс корневого каталога.
Содержит данные о корневом каталоге. Последний представляет
Операционные системы
5. Индекс корневого каталога.
Содержит данные о корневом каталоге. Последний представляет
6. Битовая карта кластеров.
Учитывает свободное место на диске.
7. Загрузочный сектор раздела.
Указывает на файл начальной загрузки.
8. Список дефектных кластеров.
Используется для того, чтобы связать вместе все дефектные блоки и гарантировать, что они никогда не встретятся в файлах.
9. Описатели защиты файлов.
10. Таблица преобразования регистра символов (для Unicode).
11. Таблица квот, точек повторного анализа и др.
12 – 15 – зарезервировано.
Структура тома NTFS
Операционные системы
Каждая запись MFT состоит из заголовка записи, за которым идет
Операционные системы
Каждая запись MFT состоит из заголовка записи, за которым идет
Заголовок записи содержит магическое число, используемое для проверки действительности записи; порядковый номер, обновляемый каждый раз, когда запись используется для нового файла; счетчик обращений к файлу; действительное количество байт, используемых в записи; идентификатор (индекс, порядковый номер) базовой записи (используемый только для записи расширения), а также другие различные поля.
Следом за заголовком записи располагаются пары атрибут, значение. Каждый атрибут начинается с заголовка, идентифицирующего этот атрибут и сообщающего длину значения. В файловой системе NTFS определено 13 атрибутов, которые могут появляться в записях MFT.
Структура тома NTFS
Операционные системы
Структура файлов NTFS
Файлы и каталоги состоят из набора атрибутов. Атрибут
Операционные системы
Структура файлов NTFS
Файлы и каталоги состоят из набора атрибутов. Атрибут
Системные атрибуты: 1. Стандартная информация (сведения о владельце, флаговые биты, время создания, время обновления и др.). 2. Имя файла в кодировке Unicode, м.б. повторено для имени MS DOS. 3. Список атрибутов (содержит ссылки на номера записей MFT, где расположены атрибуты), используется для больших файлов. 4. Версия – номер последней версии файла. 5. Дескриптор безопасности (описатель защиты) – список прав доступа ACL. 6. Версия тома –используется в системных файлах тома. 7. Имя тома. 8. Битовая карта MFT – карта использования блоков тома. 9. Корневой индекс – используется для поиска файлов в каталоге. 10. Размещение индекса – нерезидентная часть индексного списка ( для очень больших каталогов). 11. Идентификатор объекта – 64-разрядный идентификатор файла, уникальный для данного тома. 12. Данные – поточные данные файла.
13. Точка повторного анализа - используется для монтирования и симв. ссылок
Операционные системы
Структура файлов NTFS
Как правило, значения атрибутов располагаются непосредственно за заголовками,
Операционные системы
Структура файлов NTFS
Как правило, значения атрибутов располагаются непосредственно за заголовками,
Длина заголовков резидентных атрибутов 24 байт, заголовки для нерезидентных атрибутов длиннее, так как они содержат информацию о месте расположения атрибута.
Стандартное информационное поле содержит сведения о владельце файла, информацию о защите, временные штампы, необходимые для стандарта POSIX, счетчик жестких связей, бит «только чтение», «архивный» бит и т. д. Это поле имеет фиксированную длину и всегда присутствует.
Имя файла хранится в кодировке Unicode в поле переменной длины.
В ОС NT/4.0 информация о защите файла могла содержаться в атрибуте файла, но в Windows 2000/2003 эти данные хранятся в отдельном файле, что позволяет нескольким файлам совместно пользоваться общими описателями защиты.
Операционные системы
Структура файлов NTFS
Список атрибутов нужен на случай, если атрибуты не
Операционные системы
Структура файлов NTFS
Список атрибутов нужен на случай, если атрибуты не
Атрибут идентификатор объекта задает файлу уникальный номер.
Точка повторного анализа велит процедуре, анализирующей имя файла, выполнить специальные действия. Этот механизм применяется для монтирования устройств и символьных ссылок.
Атрибуты имя тома и версия тома используются только для идентификации тома.
Еще три атрибута используются для реализации каталогов.
Поток данных утилиты регистрации используется шифрующей файловой системой.
Имя потока данных, если оно присутствует, располагается в заголовке атрибута «Данные». Следом за этим заголовком располагается либо список дисковых адресов, определяющий положение файла на диске, либо - для файлов длиной всего в несколько сотен байтов (а таких файлов довольно много) - сам файл.
Метод помещения самого содержимого файла в запись MFT (если позволяет размер) называется непосредственным файлом.
В противном случае в записи MFT хранится резидентная часть файла (некоторые его атрибуты), а остальная часть файла хранится в отдельном отрезке тома или нескольких отрезках.
Операционные системы
Структура файлов NTFS
Конечно, в большинстве случаев все данные файла не
Операционные системы
Структура файлов NTFS
Конечно, в большинстве случаев все данные файла не
Для увеличения эффективности дисковые блоки файлам назначаются по возможности в виде серий последовательных блоков (сегментов файла).
Блоки в файле описываются последовательностью записей, каждая из которых описывает последовательность логически непрерывных блоков.
Непрерывный файл описывается всего одной записью. Каждая запись начинается с заголовка, определяющего смещение первого блока в файле. За заголовком располагаются пары, в которых содержатся дисковые адреса и длины серий блоков.
Операционные системы
Файлы NTFS в зависимости от способа размещения делятся на небольшие,
Операционные системы
Файлы NTFS в зависимости от способа размещения делятся на небольшие,
Заголовок записи
Стандартный информационный заголовок
Заголовок имени файла
Заголовок данных
ДАННЫЕ
Заголовок ACL
Список прав доступа
НЕ используется
Пример небольшого файла NTFS
Стандартная информация
Имя файла
ДАННЫЕ
Список прав доступа
Список прав доступа
VCN
K
K
K
K
LCN
LCN
LCN
0
9
20
4
64
2
80
3
20 – 23, 64 – 65, 80 - 82
Блоки диска
Пример большого файла NTFS
Заголовок данных
Заголовок ACL
Операционные системы
Структура файлов NTFS
Если файл очень большой, то иногда бывает необходимо
Операционные системы
Структура файлов NTFS
Если файл очень большой, то иногда бывает необходимо
В этом случае первая запись MFT называется базовой записью и указывает на другие записи MFT. Какие из элементов главной файловой таблицы свободны, учитывается в битовом массиве.
Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, т. е. находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, К) каждого отрезка данных.
Если файл настолько велик, что его атрибут данных, хранящий адреса нерезидентных отрезков данных, не помещается в одной записи, то этот атрибут помещается в базовую и дополнительные записи MFT, а ссылка на такой атрибут помещается в базовую запись файла. Эта ссылка содержится в атрибуте Attribute List.
Операционные системы
Структура файлов NTFS
Каждый каталог NTFS представляет собой один вход в
Операционные системы
Структура файлов NTFS
Каждый каталог NTFS представляет собой один вход в
Индекс содержит список файлов, входящих в каталог. Индексы позволяют сортировать файлы для ускорения поиска, основанного на значении определенного атрибута. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной форме. Имеются две формы хранения списка файлов.
Если количество файлов в каталоге невелико, то список файлов может быть резидентным в записи MFT, являющейся каталогом. Для хранения списка используется единственный атрибут - Index Roof. Список файлов содержит значения атрибутов файла. По умолчанию это имя файла и номер записи MFT, содержащий начальную запись файла.
По мере того как каталог растет, список файлов может потребовать нерезидентной формы хранения. Однако начальная часть списка всегда остается резидентной в корневой записи каталога в таблице MFT. Имена файлов резидентной части списка файлов являются узлами так называемого В-дерева (двоичного дерева).
Операционные системы
Структура файлов NTFS
Остальные части списка файлов размещаются вне MFT. Для
Операционные системы
Структура файлов NTFS
Остальные части списка файлов размещаются вне MFT. Для
Одни части списков являются листьями дерева, а другие являются промежуточными узлами, т. е. содержат наряду с именами файлов атрибут Index Location, указывающий на списки файлов более низких уровней.
Операционные системы
Файловая система NTFS поддерживает прозрачное сжатие файлов. Файл может быть
Операционные системы
Файловая система NTFS поддерживает прозрачное сжатие файлов. Файл может быть
Сжатие данных файла происходит следующим образом. Когда файловая система NTFS записывает на диск файл, помеченный для сжатия, она изучает первые 16 (логических) блоков файла, независимо оттого, сколько сегментов на диске они занимают. Затем к этим блокам применяется алгоритм сжатия. Если полученные на выходе блоки могут поместиться в 15 или менее блоков, то сжатые данные записываются на диск, предпочтительно в виде одного сегмента. Если получить выигрыш хотя бы в один блок не удается, то данные 16 блоков так и записываются в несжатом виде. Затем весь алгоритм повторяется для следующих 16 блоков и т. д.
При чтении сжатого файла NTFS должна знать, какие из сегментов файла сжаты, а какие нет. Она видит это по дисковым адресам. Дисковый адрес 0 указывает на то, что предыдущий сегмент сжат. (Заметим, что дисковый блок 0 не может использоваться для хранения данных, поскольку в этом блоке содержится загрузочный сектор.)
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Произвольный доступ к сжатому файлу также возможен. Для получения доступа
Операционные системы
Произвольный доступ к сжатому файлу также возможен. Для получения доступа
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
На персональном компьютере ОС можно загружать с гибкого диска. Это
Операционные системы
На персональном компьютере ОС можно загружать с гибкого диска. Это
Единственный надежный способ защиты информации - это шифрующая файловая система (Encrypting File System, EFS), реализованная в Windows 2000/2003 и работающая только на NTFS 5.0.
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Структура EFS ОС Windows 2000
7.7.10. Сжатие файлов и шифрующая файловая
Операционные системы
Структура EFS ОС Windows 2000
7.7.10. Сжатие файлов и шифрующая файловая
Операционные системы
Шифрующая файловая система содержит следующие компоненты:
Драйвер EFS, являющийся надстройкой над
Операционные системы
Шифрующая файловая система содержит следующие компоненты:
Драйвер EFS, являющийся надстройкой над
Библиотека реального времени файловой системы EFS - это модуль, находящийся внутри драйвера EFS, реализующий вызовы NTFS, выполняющие такие операции, как чтение, запись и открытие зашифрованных файлов и каталогов, а также операции, связанные с шифрованием, дешифрованием и восстановлением файлов при их чтении или записи на диск. Для передачи сообщений друг другу драйверы EFS и FSRTL используют механизм вызовов (callouts) NTFS, предназначенный для управления файлами, что гарантирует, что вся работа с файлами происходит при непосредственном участии NTFS.
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
С помощью механизма управления файлами операции записи значений атрибутов EFS
Операционные системы
С помощью механизма управления файлами операции записи значений атрибутов EFS
Служба EFS является частью системы безопасности ОС Windows 2000. Для обмена данными с драйвером EFS она использует порт связи LPC, существующий между локальным администратором безопасности (Local Security Authority, LSA) и монитором безопасности, работающим в привилегированном режиме. В режиме пользователя для создания ключей шифрования файлов и генерирования данных для DDF и DRF служба EFS использует Crypto API. Она также поддерживает набор API для Win 32.
Набор API для Win 32. Этот набор интерфейсов прикладного программирования позволяет выполнять шифрование файлов, дешифрование и восстановление зашифрованных файлов, а также их импорт и экспорт (без предварительного дешифрования).
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Схема шифрования
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Схема шифрования
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Когда пользователь сообщает системе, что хочет зашифровать определенный файл, формируется
Операционные системы
Когда пользователь сообщает системе, что хочет зашифровать определенный файл, формируется
Ключи FEK хранятся на диске в зашифрованном виде. Для этого используется шифрование с открытым ключом или несколькими открытыми ключами в том случае, если нужно организовать доступ к файлу со стороны нескольких пользователей.
Список зашифрованных FEK хранится вместе с зашифрованным файлом в специальном атрибуте EFS, называемом полем дешифрования данных (Data Decryption Field, DDF).
Чтобы расшифровать файл, с диска считывается зашифрованный ключ, хранящийся в атрибуте DDE. Для его расшифровки необходим закрытый ключ.
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
Когда пользователь в первый раз зашифровывает файл с помощью
Операционные системы
Когда пользователь в первый раз зашифровывает файл с помощью
Таким образом, система EFS расшифровывает закрытый ключ во время регистрации пользователя в системе и хранить его в своем виртуальном адресном пространстве во время работы, чтобы иметь возможность расшифровать ключи без дополнительного обращения к диску. Когда компьютер выключается, ключ стирается из виртуального адресного пространства EFS, так что никто, даже украв компьютер, не получит доступа к закрытому ключу.
7.7.10. Сжатие файлов и шифрующая файловая система
Операционные системы
ОС Windows NT была разработана так, чтобы соответствовать уровню
Операционные системы
ОС Windows NT была разработана так, чтобы соответствовать уровню
Этот стандарт требует наличия у операционных систем определенных свойств по обеспечению надежности для выполнения военных задач определенного рода.
Windows 2000 унаследовала от NT множество свойств безопасности, включая следующие:
Безопасная регистрация в системе с мерами предосторожности против попыток применения фальшивой программы регистрации.
Дискреционное управление доступом.
Управление привилегированным доступом.
Защита адресного пространства для каждого процесса.
Обнуление страниц перед выделением их процессу.
Аудит безопасности.
7.7.11. Безопасность в Windows 2000
Операционные системы
Безопасная регистрация означает, что системный администратор может потребовать от
Операционные системы
Безопасная регистрация означает, что системный администратор может потребовать от
Программа, имитирующая регистрацию в системе, использовалась ранее на некоторых системах злоумышленниками с целью выведать пароль пользователя.
В ОС Windows 2000 подобный обман пользователя невозможен, так как пользователь для входа в систему должен нажать комбинацию клавиш CTRL + ALT + DEL. Эта комбинация всегда перехватывается драйвером клавиатуры, который вызывает законную программу регистрации.
7.7.11. Безопасность в Windows 2000
Операционные системы
Дискреционное управление доступом позволяет владельцу файла или другого объекта
Операционные системы
Дискреционное управление доступом позволяет владельцу файла или другого объекта
Средства управления привилегированным доступом позволяют системному администратору получать доступ к объекту, несмотря на установленные его владельцем разрешения доступа.
Под защитой адресного пространства понимается то, что у каждого процесса есть свое защищенное виртуальное адресное пространство, недоступное для любого неавторизованного процесса.
Обнуление страниц перед выделением их процессу означает, что при увеличении стека выделяемые для него страницы заранее обнуляются, так что процесс не может обнаружить в них информации, помещенной предыдущим владельцем страницы.
Аудит безопасности следует понимать как регистрацию системой в журнале определенных событий, относящихся к безопасности (для действий и анализа системным администратором).
7.7.11. Безопасность в Windows 2000
Операционные системы
У каждого пользователя (и группы) ОС Windows 2000 есть
Операционные системы
У каждого пользователя (и группы) ОС Windows 2000 есть
SID представляют собой двоичные числа с коротким заголовком, за которым следует длинный случайный компонент. Каждый SID должен быть уникален в пределах всей планеты.
Когда пользователь запускает процесс, этот процесс и его потоки работают под идентификатором пользователя. Система безопасности гарантирует предоставление доступа к каждому объекту только потокам с авторизованными идентификаторами безопасности.
У каждого процесса есть маркер доступа, в котором указываются SID и другие свойства. Как правило, он назначается при регистрации в системе процедурой Winlogon.
7.7.11. Безопасность в Windows 2000
Структура маркера
Операционные системы
Чтобы получить эту информацию, процесс должен вызвать функцию GetTokenInformation, так
Операционные системы
Чтобы получить эту информацию, процесс должен вызвать функцию GetTokenInformation, так
Заголовок содержит некоторую административную информацию. По значению срока действия можно определить, когда маркер перестанет быть действительным.
Поле Группы (Groups) указывает группы, к которым принадлежит процесс. Это поле необходимо для соответствия требованиям стандарта POSIX.
Поле Default DACL (DACL по умолчанию, Discretionary Access Control List - список разграничительного контроля доступа) представляет собой список управления доступом, назначаемый объектам, созданным процессом, если не определены другие списки ACL.
Идентификатор безопасности пользователя указывает пользователя, владеющего процессом.
Ограниченные идентификаторы SID позволяют ненадежным процессам принимать участие в заданиях вместе с надежными процессами, но с меньшими полномочиями и меньшими возможностями причинения ущерба.
7.7.11. Безопасность в Windows 2000
Операционные системы
Перечисленные в маркере привилегии дают процессу особые полномочия, такие как
Операционные системы
Перечисленные в маркере привилегии дают процессу особые полномочия, такие как
Когда пользователь регистрируется в системе, процесс winlogon назначает маркер доступа начальному процессу. Последующие процессы наследуют этот маркер. Он же изначально применяется ко всем потокам процесса. Однако поток во время выполнения может получить другой маркер доступа. В этом случае маркер доступа потока перекрывает маркер доступа процесса. В частности, клиентский поток может передать свой маркер доступа серверному потоку, чтобы сервер мог получить доступ к защищенным файлам и другим объектам клиента (перевоплощение).
7.7.11. Безопасность в Windows 2000
Операционные системы
У каждого объекта есть ассоциированный с ним дескриптор защиты, содержащий
Операционные системы
У каждого объекта есть ассоциированный с ним дескриптор защиты, содержащий
Дескриптор защиты состоит из заголовка, за которым следует список DACL с одним или несколькими элементами АСЕ (Access Control Entry - элемент списка контроля доступа).
Два основных типа элементов списка - это разрешение и запрет доступа.
Разрешающий элемент содержит SID пользователя или группы и битовый массив, определяющий набор операций, который процессы с данным идентификатором SID могут выполнять с определенным объектом.
Запрещающий элемент работает аналогично, но совпадение идентификаторов означает, что обращающийся процесс не может выполнять перечисленные операции.
Кроме списка DACL у дескриптора защиты есть список SACL (System Access Control List - системный список контроля доступа), который похож на DACL, только вместо пользователей и групп, имеющих доступ к объекту, в нем перечислены операции с этим объектом, регистрируемые в специальном журнале.
7.7.11. Безопасность в Windows 2000
Операционные системы
В основе большей части механизмов управления доступом в Windows 2000
Операционные системы
В основе большей части механизмов управления доступом в Windows 2000
Как правило, когда процесс создает объект, он передает функции CreateProcess, CreateFile или другой функции в качестве одного из параметров дескриптор защиты. Этот дескриптор защиты затем становится дескриптором защиты, присоединенным к объекту. Если при создании объекта не предоставляется дескриптор защиты, используется дескриптор защиты вызывающего процесса по умолчанию.
Для управления дескрипторами защиты существует множество вызовов Win32 API. Чтобы создать дескриптор защиты, для него выделяется место хранения, после чего он инициализируется с помощью вызова InitializeSecurityDescriptor. Этот вызов заполняет заголовок.
Если SID владельца неизвестен, он может быть найден по имени при помощи вызова LookupAccountSid. Затем он может быть вставлен в дескриптор защиты. То же самое справедливо для SID группы, если группа существует. Как правило, используется SID вызывающего процесса, а также SID одной из групп вызывающего процесса, но системный администратор может записать в дескриптор защиты любой SID.
7.7.11. Безопасность в Windows 2000
Операционные системы
Список DACL или SACL дескриптора защиты может быть проинициализирован при
Операционные системы
Список DACL или SACL дескриптора защиты может быть проинициализирован при
К этим вызовам можно обращаться многократно, чтобы добавить столько записей ACL, сколько необходимо. Удаление записи происходит при помощи функции DeleteAce.
Когда список ACL готов, его можно присоединить к дескриптору защиты с помощью функции SetSekurityDescriptor Dacl. Наконец, когда объект создан, к нему можно присоединить дескриптор защиты.
Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов.
Регистрацией в системе управляет программа winlogon, а аутентификацией - lsass и msgina.dll. Результатом успешной регистрации в системе является новая оболочка с ассоциированным с ней маркером доступа. Этот процесс использует в реестре ключи SECURITY и SAM. Первый ключ определяет общую политику безопасности, а второй ключ содержит информацию о защите для индивидуальных пользователей.
7.7.11. Безопасность в Windows 2000
Операционные системы
Как только пользователь регистрируется в системе, выполняется операция защиты при
Операционные системы
Как только пользователь регистрируется в системе, выполняется операция защиты при
Для каждого вызова ОреnХХХ требуются имя открываемого объекта и набор прав доступа к нему. Во время обработки процедуры открытия объекта менеджер безопасности проверяет наличие у вызывающего процесса соответствующих прав доступа.
Для этого он просматривает все маркеры доступа вызывающего процесса, а также список DACL, ассоциированный с объектом. Он просматривает по очереди элементы списка ACL.
Как только он находит запись, соответствующую идентификатору SID вызывающего процесса или одной из его групп, поиск прав доступа считается законченным.
Если вызывающий процесс обладает необходимыми правами, объект открывается, в противном случае в открытии объекта отказывается.
Помимо разрешающих записей списки D ACL могут также содержать запрещающие записи.
7.7.11. Безопасность в Windows 2000
Операционные системы
Поскольку менеджер безопасности прекращает поиск, найдя первую запись с указанным
Операционные системы
Поскольку менеджер безопасности прекращает поиск, найдя первую запись с указанным
После того как объект открыт, дескриптор объекта возвращается вызывающему процессу. При последующих обращениях проверяется только, входит ли данная операция в число операций, разрешенных в момент открытия объекта.
7.7.11. Безопасность в Windows 2000
Операционные системы
Многозадачность в истинном смысле этого слова. Невытесняющая многозадачность неприемлема, поскольку
Операционные системы
Многозадачность в истинном смысле этого слова. Невытесняющая многозадачность неприемлема, поскольку
Организация надежных вычислений — может быть эффективно решена за счет специальных аппаратных возможностей процессора. При построении системы для работы на компьютерах IBM PC для этого необходимы процессоры типа Intel 80386 и выше, чтобы иметь возможность организовать функционирование операционной системы в защищенном (32-разрядном) режиме работы процессора.
Эффективное обслуживания прерываний. Для этого ОС должна использовать алгоритм диспетчеризации, обеспечивающий вытесняющее планирование, основанное на приоритетах.
7.8. Сетевая операционная система реального времени QNX
7.8.1. Принципы построения ОС реального времени
Операционные системы
Желательна эффективная поддержка сетевых коммуникаций и наличие развитых механизмов взаимодействия
Операционные системы
Желательна эффективная поддержка сетевых коммуникаций и наличие развитых механизмов взаимодействия
Желательна поддержка многопоточности (не только мультипрограммный, но и мультизадачный режимы) и симметричной мультипроцессорности.
Способность работать на ограниченных аппаратных ресурсах, поскольку одна из ее основных областей применения — встроенные системы. К сожалению, данное условие обычно реализуется путем простого урезания стандартных сервисных средств.
процессора.
7.8. Сетевая операционная система реального времени QNX
7.8.1. Принципы построения ОС реального времени
Операционные системы
Мощная ОС, разработанная для процессоров с архитектурой ia32.
Позволяет проектировать сложные
Операционные системы
Мощная ОС, разработанная для процессоров с архитектурой ia32.
Позволяет проектировать сложные
Встроенные средства QNX обеспечивают поддержку многозадачного режима на одном компьютере и взаимодействие параллельно выполняемых задач на разных компьютерах, работающих в среде локальной вычислительной сети (хорошо подходит для построения распределенных систем).
Основным языком программирования в системе является С. Основная операционная среда соответствует стандарту POSIX, что позволяет с небольшими доработками переносить ранее разработанное программное обеспечение в QNX для организации их работы в среде распределенной обработки.
Является многопользовательской (многотерминальной) ОС.
Масштабируемая ОС.
Пользовательский интерфейс и интерфейс прикладного программирования очень похожи на таковые в UNIX, поскольку выполняются требования стандарта POSIX.
7.8.2. Краткая характеристика QNX
Операционные системы
QNX — это не версия UNIX, хотя почему-то многие так
Операционные системы
QNX — это не версия UNIX, хотя почему-то многие так
Построена на принципах микроядра и обмена сообщениями. Реализована в виде совокупности независимых (но взаимодействующих путем обмена сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определенный вид услуг.
Предсказуемость означает применимость системы к задачам жесткого реального времени. QNX является операционной системой, которая дает полную гарантию того, что процесс с наивысшим приоритетом начнет выполняться практически немедленно, и критически важное событие (например, сигнал тревоги) никогда не будет потеряно.
7.8.2. Краткая характеристика QNX
Операционные системы
Масштабируемость и эффективность достигаются оптимальным использованием ресурсов и означают применимость
Операционные системы
Масштабируемость и эффективность достигаются оптимальным использованием ресурсов и означают применимость
Расширяемость и надежность обеспечиваются одновременно, поскольку написанный драйвер не нужно компилировать в ядро, рискуя вызвать нестабильность системы. Менеджеры ресурсов (служба логического уровня) работают в третьем кольце защиты, и можно добавлять свои менеджеры, не опасаясь за систему. Драйверы работают в первом кольце и могут вызвать проблемы, но не фатального характера. Кроме того, их достаточно просто писать и отлаживать.
Быстрый сетевой протокол FLEET прозрачен для обмена сообщениями, автоматически обеспечивает отказоустойчивость, балансирование нагрузки и маршрутизацию между альтернативными путями доступа.
7.8.2. Краткая характеристика QNX
Операционные системы
Компактная графическая подсистема Photon, построенная на тех же принципах модульности,
Операционные системы
Компактная графическая подсистема Photon, построенная на тех же принципах модульности,
7.8.2. Краткая характеристика QNX
Операционные системы
QNX — это операционная система реального времени для персональных компьютеров,
Операционные системы
QNX — это операционная система реального времени для персональных компьютеров,
В системе реализована концепция связи между задачами на основе сообщений, посылаемых от одной задачи к другой, причем задачи эти могут решаться как на одном и том же компьютере, так и на разных, но связанных между собой локальной вычислительной сетью.
Реальное время и концепция связи между процессами посредством сообщений оказывают решающее влияние и на разрабатываемое для операционной системы QNX программное обеспечение, и на программиста, стремящегося с максимальной выгодой использовать преимущества системы.
Микроядро операционной системы QNX имеет объем всего в несколько десятков килобайтов (в одной из версий — 10 Кбайт, в другой — менее 32 Кбайт, хотя есть вариант и на 46 Кбайт), то есть это одно из самых маленьких ядер среди всех существующих операционных систем.
7.8.2. Архитектура системы QNX
Операционные системы
В микроядре помещаются :
механизм передачи сообщений между процессами IPC
Операционные системы
В микроядре помещаются :
механизм передачи сообщений между процессами IPC
редиректор (redirector) прерываний;
блок планирования выполнения задач (иначе говоря, диспетчер задач);
сетевой интерфейс для перенаправления сообщений (менеджер Net).
Механизм IPC обеспечивает пересылку сообщений между процессами. Все взаимодействие между процессами, в том числе и системными, происходит через сообщения. Сообщение в операционной системе QNX — это последовательность байтов произвольной длины (0-65 535 байт) произвольного формата.
Протокол обмена сообщениями может выглядеть, например, таким образом. Задача блокируется для ожидания сообщения. Другая задача посылает первой сообщение и при этом блокируется сама, ожидая ответа. Первая задача деблокируется, обрабатывает сообщение и отвечает, деблокируя вторую задачу.
7.8.2. Архитектура системы QNX
Операционные системы
Сообщения и ответы, пересылаемые между процессами при их взаимодействии, находятся
Операционные системы
Сообщения и ответы, пересылаемые между процессами при их взаимодействии, находятся
Благодаря этому: снижается вероятность повреждения сообщения в процессе передачи; уменьшается объем оперативной памяти, необходимый для работы ядра; становится меньше пересылок из памяти в память, что разгружает процессор.
В сети, состоящей из нескольких компьютеров, работающих под управлением QNX, сообщения могут прозрачно передаваться процессам, выполняющимся на любом из узлов.
Определены в QNX еще и два дополнительных метода передачи сообщений — метод представителей (proxy) и метод сигналов (signal).
Представители используются в случаях, когда процесс должен передать сообщение, но не должен при этом блокироваться на передачу. Тогда вызывается функция qnx_proxy__attach() и создается представитель. Он накапливает в себе сообщения, которые должны быть доставлены другим процессам.
7.8.2. Архитектура системы QNX
Операционные системы
Любой процесс, знающий идентификатор представителя, может вызвать функцию Trigger(), после
Операционные системы
Любой процесс, знающий идентификатор представителя, может вызвать функцию Trigger(), после
Операционная система QNX также поддерживает множество сигналов, совместимых с POSIX, большое количество сигналов, традиционно использовавшихся в UNIX, а также несколько сигналов, специфичных для самой системы QNX.
По умолчанию любой сигнал, полученный процессом, приводит к завершению процесса (кроме нескольких сигналов, которые по умолчанию игнорируются). Но процесс с приоритетом уровня суперпользователя может защититься от нежелательных сигналов. В любом случае процесс может содержать обработчик для каждого возможного сигнала. Сигналы удобно рассматривать как разновидность программных прерываний.
7.8.2. Архитектура системы QNX
Операционные системы
Редиректор прерываний занимается перенаправлением аппаратных прерываний в связанные с ними
Операционные системы
Редиректор прерываний занимается перенаправлением аппаратных прерываний в связанные с ними
Обработчики прерываний обычно встроены в процессы, хотя каждый из них исполняется асинхронно с процессом, в который он встроен. Обработчик исполняется в контексте процесса и имеет доступ ко всем глобальным переменным процесса.
При работе обработчика прерываний прерывания разрешены, но обработчик приостанавливается только в том случае, если произошло более высокоприоритетное прерывание.
Если это позволяется аппаратной частью, к одному прерыванию может быть подключено несколько обработчиков, каждый из которых получит управление при возникновении прерывания.
7.8.2. Архитектура системы QNX
Операционные системы
Блок планирования выполнения задач обеспечивает многозадачность. ОС QNX предоставляет разработчику
Операционные системы
Блок планирования выполнения задач обеспечивает многозадачность. ОС QNX предоставляет разработчику
7.8.2. Архитектура системы QNX
Операционные системы
К выполнению своих функций как диспетчера ядро приступает в следующих
Операционные системы
К выполнению своих функций как диспетчера ядро приступает в следующих
какой-либо процесс вышел из блокированного состояния;
истек квант времени для процесса, владеющего центральным процессором;
работающий процесс прерван каким-либо событием.
Диспетчер выбирает процесс для запуска среди неблокированных процессов в порядке значений их приоритетов в диапазоне от 0 (наименьший) до 31 (наибольший).
Обслуживание каждого из процессов зависит от метода его диспетчеризации (приоритет и метод диспетчеризации могут динамически меняться во время работы).
В QNX существуют три метода диспетчеризации:
очередь (First In First Out, FIFO) — раньше пришедший процесс раньше обслуживается;
карусель (Round Robin, RR) — процессу выделяется определенный квант времени для работы, после чего процессор предоставляется следующему процессу;
адаптивный метод (используется чаще других).
7.8.2. Архитектура системы QNX
Операционные системы
Метод FIFO наиболее близок к невытесняющей многозадачности. Процесс выполняется до
Операционные системы
Метод FIFO наиболее близок к невытесняющей многозадачности. Процесс выполняется до
В методе RR все происходит так же, как и в предыдущем, с той разницей, что период, в течение которого процесс может работать без перерыва, ограничивается неким квантом времени.
Процесс, работающий в соответствии с адаптивным методом, ведет себя следующим образом:
если процесс полностью использует выделенный ему квант времени, а в системе есть готовые к исполнению процессы с тем же уровнем приоритета, его приоритет снижается на 1;
если процесс с пониженным приоритетом остается необслуженным в течение секунды, его приоритет увеличивается на 1;
если процесс блокируется, ему возвращается исходное значение приоритета.
7.8.2. Архитектура системы QNX
Операционные системы
По умолчанию процессы запускаются в режиме адаптивной многозадачности. В этом
Операционные системы
По умолчанию процессы запускаются в режиме адаптивной многозадачности. В этом
Обычно приоритет процесса устанавливается при его запуске. Но есть дополнительная возможность, называемая вызываемым клиентом приоритетом. Как правило, она реализуется для серверных процессов (исполняющих запросы на какое-либо обслуживание). При этом приоритет процесса-сервера устанавливается только на время обработки запроса и становится равным приоритету процесса-клиента.
7.8.2. Архитектура системы QNX
Операционные системы
Сетевой интерфейс в операционной системе QNX является неотъемлемой частью ядра.
Операционные системы
Сетевой интерфейс в операционной системе QNX является неотъемлемой частью ядра.
Передача сообщения процессу, находящемуся на другом компьютере, ничем не отличается с точки зрения приложения от передачи сообщения процессу, выполняющемуся на том же компьютере. Благодаря такой организации сеть превращается в однородную вычислительную среду. Для большинства приложений не имеет значения, с какого компьютера они были запущены, на каком исполняются и куда поступают результаты их работы.
Все службы операционной системы QNX, не реализованные непосредственно в ядре, работают как обычные стандартные процессы в полном соответствии с основными концепциями микроядерной архитектуры.
7.8.2. Архитектура системы QNX
Операционные системы
Драйверы устройств также работают как стандартные процессы. Чтобы новый драйвер
Операционные системы
Драйверы устройств также работают как стандартные процессы. Чтобы новый драйвер
7.8.2. Архитектура системы QNX
Операционные системы
QNX является сетевой операционной системой, которая позволяет организовать эффективные
Операционные системы
QNX является сетевой операционной системой, которая позволяет организовать эффективные
Для этого на каждой машине, называемой узлом, помимо ядра и менеджера процессов должен быть запущен уже менеджер Net.
Менеджер Net не зависит от аппаратной реализации сети, что обеспечивается за счет сетевых драйверов. В ОС QNX имеются драйверы для сетей с различными технологиями: Ethernet и FastEthernet, Arcnet, IBM Token Ring и др. Имеется возможность организации сети через последовательный канал или модем.
В QNX версии 4 полностью реализовано встроенное сетевое взаимодействие типа «точка-точка». Например, сидя за машиной А, вы можете скопировать файл с гибкого диска, подключенного к машине В, на жесткий диск, подключенный к машине С.
Сеть из машин с операционными системами QNX действует как один мощный компьютер. Любые ресурсы (модемы, диски, принтеры) могут быть добавлены к системе простым их подключением к любой машине в сети.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
QNX обеспечивает возможность одновременной работы в сетях Ethernet, Arcnet,
Операционные системы
QNX обеспечивает возможность одновременной работы в сетях Ethernet, Arcnet,
Каждому узлу в сети соответствует уникальный целочисленный идентификатор — логический номер узла. Любой поток выполнения в сети QNX имеет прозрачный доступ (при наличии достаточных привилегий) ко всем ресурсам сети; то же самое относится и к взаимодействию потоков.
Для взаимодействия потоков, находящихся на разных узлах сети, используются те же самые вызовы ядра, что и для потоков, выполняемых на одном узле.
Если потоки находятся на разных узлах сети, ядро переадресует запрос менеджеру сети. Для обмена в сети используется надежный и эффективный протокол транспортного уровня FLEET. Каждый из узлов может принадлежать одновременно нескольким QNX-сетям. Если сетевое взаимодействие может быть реализовано несколькими путями, для передачи выбирается менее загруженная и более скоростная сеть.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Разработчики операционной системы QNX создали собственную специальную сетевую технологию
Операционные системы
Разработчики операционной системы QNX создали собственную специальную сетевую технологию
Основные его качества зашифрованы в аббревиатуре FLEET, которая расшифровывается следующим образом:
Fault-Tolerant Networking — QNX может одновременно использовать несколько физических сетей, при выходе из строя любой из них данные будут «на лету» перенаправлены через другую сеть;
Load-Balancing on the Fly — при наличии нескольких физических соединений QNX автоматически распараллеливает передачу пакетов по соответствующим сетям;
Efficient Performance — специальные драйверы, разрабатываемые фирмой QSSL для широкого спектра оборудования, позволяют использовать это оборудование с максимальной эффективностью;
Extensable Architecture — любые новые типы сетей могут быть поддержаны путем добавления соответствующих драйверов;
Transparent Distributed Processing — благодаря отсутствию разницы между передачей сообщений в пределах одного узла и между узлами нет необходимости вносить какие-либо изменения в приложения, для того чтобы они могли взаимодействовать через сеть.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Благодаря технологии FLEET сеть компьютеров с операционными системами QNX
Операционные системы
Благодаря технологии FLEET сеть компьютеров с операционными системами QNX
Поддержка сети обеспечивается и микроядром (специальный код в его составе позволяет операционной системе QNX фактически объединять все микроядра в сети в одно ядро).
Когда ядро получает запрос на передачу данных процессу, находящемуся на удаленном узле, он переадресовывает этот запрос менеджеру Net, в подчинении которого находятся драйверы всех сетевых карт. Имея перед собой полную картину состояния всего сетевого оборудования, Net может отслеживать состояние каждой сети и динамически перераспределять нагрузку между ними. В случае, когда одна из сетей выходит из строя, поток данных автоматически перенаправляется в другую доступную сеть, что очень важно при построении высоконадежных систем.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Кроме поддержки собственного протокола, Net обеспечивает передачу пакетов TCP/IP,
Операционные системы
Кроме поддержки собственного протокола, Net обеспечивает передачу пакетов TCP/IP,
В QNX/Neutrino1параллельность выполнения достигается за счет использования потоковой модели POSIX, в которой процессы в системе представляются в виде совокупности потоков выполнения.
Поток является минимальной единицей выполнения и диспетчеризации для ядра Neutrino; процесс определяет адресное пространство для потоков. Каждый процесс состоит минимум из одного потока. Операционная система QNX предоставляет богатый набор функций для синхронизации потоков. В отличие от потоков, само ядро не подлежит диспетчеризации. Код ядра исполняется только в том случае, когда какой-нибудь поток вызывает функцию ядра, или при обработке аппаратного прерывания.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Передачу и диспетчеризацию сообщений в QNX осуществляет ядро системы.
Операционные системы
Передачу и диспетчеризацию сообщений в QNX осуществляет ядро системы.
Программа, желающая создать задачу, посылает сообщение администратору задач (модуль task) и блокируется для ожидания ответа. Если новая задача должна выполняться одновременно с порождающей ее задачей, администратор задач task создает ее и, отвечая, выдает порождающей задаче идентификатор созданной задачи. В противном случае никакого сообщения не посылается до тех пор, пока новая задача не закончится сама по себе. Тогда в ответе администратора задач будут содержаться конечные характеристики закончившейся задачи.
Сообщения различаются количеством данных, которые передаются от одной задачи точно к другой задаче. Данные копируются из адресного пространства первой задачи в адресное пространство второй, и выполнение первой задачи приостанавливается до тех пор, пока вторая задача не вернет ответное сообщение. В действительности обе задачи кратковременно взаимодействуют во время выполнения передачи. Максимальная длина сообщения может достигать 64 Кбайт). Существует несколько протоколов, которые могут быть использованы для передачи сообщений.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Основные операции над сообщениями: послать, получить и ответить, а
Операционные системы
Основные операции над сообщениями: послать, получить и ответить, а
Получатель всегда идентифицируется своим идентификатором задачи, хотя существуют способы ассоциировать имена с идентификатором задачи.
Варианты операций включают в себя возможность получать (копировать) только первую часть сообщения, а затем получать оставшуюся часть такими кусками, какие потребуются. Это может быть полезным, поскольку позволяет сначала узнать длину сообщения, а затем динамически распределить принимающий буфер.
Если необходимо задержать ответное сообщение до тех пор, пока не будет получено и обработано другое сообщение, то чтение первых нескольких байтов дает вам компактный «обработчик», через который позже можно получить доступ ко всему сообщению. Таким образом, задача оказывается избавленной от необходимости хранить в себе большое количество буферов.
Другие функции позволяют программе получать сообщения только тогда, когда она уже ожидает их приема, а не блокироваться до тех пор, пока не прибудет сообщение. Можно также транслировать сообщение другой задаче без изменения идентификатора передатчика.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
ОС QNX обеспечивает объединение сообщений в структуру данных, называемую
Операционные системы
ОС QNX обеспечивает объединение сообщений в структуру данных, называемую
В отличие от стандартной передачи сообщений, передатчик немедленно освобождается для того, чтобы продолжить свою работу. Задача администратора очереди — хранить в себе сообщение до тех пор, пока приемник не будет готов прочитать его; делает он это, запрашивая сообщение у администратора-очереди.
Любое количество сообщений (ограничено только возможностью памяти) может храниться в очереди. Сообщения хранятся и передаются в том порядке, в котором они были приняты. Может быть создано любое количество очередей. Каждая очередь идентифицируется своим именем.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Помимо сообщений и очередей в операционной системе QNX для
Операционные системы
Помимо сообщений и очередей в операционной системе QNX для
Порт подобен флагу, известному всем задачам на одном и том же узле (но не на разных узлах). Он имеет только два состояния, которые могут трактоваться как «присоединить» и «освободить», хотя пользователь может интерпретировать их по-своему, например «занят» и «доступен».
Порты используются для быстрой простой синхронизации между задачей и обработчиком прерываний устройства. Они нумеруются от нуля до 32 максимум (на некоторых типах узлов возможно и больше). Первые 20 номеров зарезервированы для операционной системы.
С портом может быть выполнено три операции:
присоединить порт,
отсоединить порт,
послать сигнал в порт.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Одновременно к порту может быть присоединена только одна задача.
Операционные системы
Одновременно к порту может быть присоединена только одна задача.
Любая задача может посылать сигнал в любой порт независимо от того, была она присоединена к нему или нет. Сигнал подобен неблокирующей передаче пустого сообщения. То есть передатчик не приостанавливается, а приемник не получает какие-либо данные; он только отмечает, что конкретный порт изменил свое состояние.
Задача, присоединенная к порту, может ожидать прибытия сигнала или может периодически читать порт. Система QNX хранит информацию о сигналах, передаваемых в каждый порт, и уменьшает счетчик после каждой операции «приема» сигнала («чтение» возвращает счетчик и устанавливает его в нуль).
Сигналы всегда принимают перед сообщениями, давая им тем самым больший приоритет над сообщениями. В этом смысле сигналы часто используются обработчиками прерываний для того, чтобы оповестить задачу о внешних (аппаратных) событиях. Обработчики прерываний не имеют возможности посылать сообщения и должны использовать сигналы.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Исключения обеспечивают асинхронное взаимодействие, то есть исключение может прервать нормальное
Операционные системы
Исключения обеспечивают асинхронное взаимодействие, то есть исключение может прервать нормальное
Системная функция может быть вызвана для того, чтобы позволить задаче реализовать собственный механизм обработки исключений и во время возникновения исключения выполнять свою внутреннюю функцию.
Функция исключения задачи вызывается асинхронно операционной системой, а не самой задачей. Поэтому исключения могут негативно повлиять на операции (например, передачу сообщений), которые выполняются в это же время.
Одна задача может установить одно или несколько исключений для другой задачи. Эти исключения могут быть комбинацией системных исключений и исключений, определяемых приложениями, обеспечивая другие возможности для межзадачного взаимодействия.
7.8.3. Основные механизмы организации распределенных вычислений
Операционные системы
Благодаря возможности обмена посланиями между задачами и узлами сети, программы
Операционные системы
Благодаря возможности обмена посланиями между задачами и узлами сети, программы
QNX имеет эту конфигурационную независимость благодаря концепции виртуальных задач. У виртуальных задач непосредственный код и данные, будучи на одном из удаленных узлов, возникают и ведут себя так, как если бы они были локальными задачами какого-то узла со всеми их атрибутами и привилегиями.
Программа, посылающая сообщение в сеть, никогда не направляет его точно. Сначала она открывает виртуальный канал. Виртуальный канал связывает между собой все виртуальные задачи. На обоих концах такой связи имеются буферы, которые позволяют хранить самое большое послание из тех, которые канал может нести в данном сеансе связи.
Сетевой администратор помещает в эти буферы все сообщения для соединенных задач. Виртуальная задача, таким образом, занимает всего лишь пространство, необходимое для буфера и входа в таблице задач.
7.8.3. Основные механизмы организации распределенных вычислений