- •Основные функции ос:
- •Дополнительные функции:
- •Состав операционной системы
- •4. Классификация ос
- •Особенности алгоритмов управления ресурсами
- •Особенности аппаратных платформ
- •Особенности областей использования
- •Особенности методов построения
- •Примеры архитектуры реальных операционных систем Архитектура операционной системы unix
- •Архитектура операционной системы Windows
- •2.1.1 Понятие процесса
- •2.1.2 Модель процесса
- •2.1.3 Создание процесса
- •2.1.4 Завершение процесса
- •2.1.5 Иерархия процессов
- •2.1.6 Состояние процессов
- •2.2 Потоки (нити, облегченный процесс)
- •2.2.1 Понятие потока
- •2.2.2 Модель потока
- •2.2.3 Преимущества использования потоков
- •2.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное
- •2.2.5 Особенности реализации Windows
- •16. Состояния потоков
- •19. Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы.
- •25. Устройство ввода-вывода
- •[Править]Устройства ввода/вывода
- •Задачи файловой системы
- •29. 5. Организация файлов и доступ к ним
- •Последовательный файл
- •Файл прямого доступа
- •Другие формы организации файлов
- •Операции над файлами
- •32. Терминология компьютерной сети
- •[Править]Уровни модели osi
- •[Править]Прикладной уровень
- •[Править]Представительский уровень
- •[Править]Сеансовый уровень
- •[Править]Транспортный уровень
- •[Править]Сетевой уровень
- •[Править]Канальный уровень
- •[Править]Физический уровень
- •[Править]Соответствие модели osi и других моделей сетевого взаимодействия
- •[Править]Семейство tcp/ip
- •[Править]Семейство ipx/spx
- •[Править]Основное назначение
- •38. Тема 3.3 Сетевые службы и сетевые сервисы.
- •Понятие сетевой службы и сетевого сервиса
- •Клиент-серверная организация сетевых служб. Согласование протоколов
- •39. Одноранговые и серверные сетевые операционные системы
- •Ос в одноранговых сетях
- •Ос в сетях с выделенными серверами
- •40. Служба каталогов
- •[Править]Историческая справка
- •[Править]Реализация
- •42. 5.6. Сетевые файловые системы
- •5.6.2. Сетевая файловая система (nfs)
- •43. Информационная безопасность
- •[Править]Сущность понятия «информационная безопасность» [править]Содержание понятия
- •[Править]Стандартизированные определения
- •[Править]Существенные признаки понятия
- •[Править]Рекомендации по использованию терминов
- •[Править]Объём (реализация) понятия «информационная безопасность»
- •[Править]Нормативные документы в области информационной безопасности
- •[Править]Органы (подразделения), обеспечивающие информационную безопасность
- •[Править]Организационно-технические и режимные меры и методы
- •[Править]Программно-технические способы и средства обеспечения информационной безопасности
- •[Править]Организационная защита объектов информатизации
- •[Править]Исторические аспекты возникновения и развития информационной безопасности
- •47. Шифрование
- •49. Технология защищенного канала
- •50. Элементы системы аутентификации
- •[Править]Факторы аутентификации
- •[Править]Способы аутентификации [править]Аутентификация по многоразовым паролям
- •[Править]Защищенность
- •[Править]Базы учетных записей
- •[Править]Аутентификация по одноразовым паролям
- •[Править]Многофакторная аутентификация
- •[Править]Протоколы аутентификации
- •Cубъект расшифровывает полученое число на основе своего уникального ключа и сравнивает результат с n1. Идентичность означает, что система обладает тем же уникальным ключом, что и субъект
- •[Править]Причина появления
- •[Править]Развитие протокола [править]Ранние версии
- •[Править]Kerberos 4
- •[Править]Kerberos 5
- •[Править]Использование и распространение
- •[Править]Принцип работы [править]Kerberos 4
- •[Править]Kerberos 5
- •[Править]Формальное описание
- •[Править]Подробное описание
- •[Править]pkinit
- •52. Человеко-машинный интерфейс
Примеры архитектуры реальных операционных систем Архитектура операционной системы unix
Операционная система UNIX использует традиционную архитектуру, несмотря на выделение нескольких уровней, тяготеющую скорее к монолитной, чем к многоуровне-вой. Упрощенная архитектура операционной системы UNIX показана на рисунке.
На верхнем уровне иерархии операционной системы находятся процессы пользовательского режима, которые взаимодействуют с ядром операционной системы через интерфейс системных вызовов. Интерфейс системных вызовов перенаправляет запросы процессов подсистемам ядра. Подсистемы ядра обеспечивают выполнение процессов пользовательского режима и через уровень управления аппаратурой взаимодействуют с аппаратурой ЭВМ. Ядро UNIX включает традиционные подсистемы, такие как файловая подсистема, подсистема ввода-вывода, подсистема управления процессами и памятью, назначение которых мы уже рассматривали на предыдущих лекциях.
Архитектура операционной системы Windows
Операционная система Windows использует многоуровневую архитектуру, с работой большей части компонентов в режиме ядра, но, тем не менее, в состав ядра не входящих. Упрощенная архитектура Windows показана на рисунке.
Еще при разработке операционной системы Windows NT, во главу угла были поставлены задачи переносимости и совместимости, что в основном и определило ее архитектуру. Сравнивая архитектуру UNIX и Windows, легко заметить, что архитектура Windows гораздо более структурирована. Как и в системе UNIX, на верхнем уровне иерархии находятся процессы пользовательского режима. Это могут быть как пользователь-ские процессы, так и серверы самой системы. Процессы пользовательского режима взаимодействуют с операционной системой через документированные интерфейсы, предоставляемые динамическими библиотеками подсистем окружения. Windows поддерживает три подсистемы окружения – POSIX, OS/2 и Win32, причем подсистема Win32 является необходимым компонентом для работы всей операционной системы, т.к. обслуживает клавиатуру, мышь и экран. Заметим, что подсистема Win32 имеет компоненты, работающие как в режиме задачи, так и в режиме ядра. В отличие от подсистемы Win32, которая запускается на этапе загрузки операционной системы, подсистемы POSIX и OS/2 не являются обязательными, и запускаются по требованию, при необходимости запуска соответствующих приложений, а после запуска работают вплоть до перегрузки системы. Хотя динамические библиотеки подсистем окружения способны самостоятельно обслужить некоторые запросы процессов, в большинстве случаев они переадресуют запрос исполнительной подсистеме Windows через недокументированный интерфейс системных вызовов. Можно сказать, что именно недокументированный интерфейс, реализуемый библиотекой Ntdll.dll является истинным интерфейсом системных вызовов, собственно и реализующим переход из режима задачи в режим ядра. Исключение составляет интерфейс GDI, полностью реализуемый подсистемой Win32 самостоятельно. Исполнительная система операционной системы Windows обеспечивает работу подсистем окружения, реализуя большинство стратегий управления операционной системы, и включает в себя такие подсистемы, как: • диспетчер конфигурации – обеспечивает управление системным реестром; • диспетчер процессов и потоков – обеспечивает управление процессами и потоками, запущенными в системе, например, создает и уничтожает процессы и потоки; • монитор безопасности – реализует политики безопасности на локальном компьютере; • диспетчер ввода-вывода – реализует аппаратно независимый ввод-вывод и отвечает за пересылку информации ввода-вывода соответствующим драйверам; • диспетчер Plug and Play – определяет, какие драйверы нужны для поддержки каждого устройства и загружает эти драйверы; • диспетчер электропитания – координирует работу драйверов устройств, обеспечивая, например, переключение периферийных устройств в экономичный режим при их длительном простое; • диспетчер кэша файловой системы – реализует буферизацию ввода-вывода, отложенную запись и упреждающее чтение данных файла; • диспетчер виртуальной памяти – реализует собственное виртуальное адресное пространство для каждого процесса и обеспечивает поддержку работы диспетчера кэша; Ниже исполнительной системы Windows располагается ядро системы, реализующее различные для каждой процессорной архитектуры фундаментальные механизмы, такие как планирование и диспетчеризация потоков, диспетчеризация прерываний и исключений. Ядро изолирует драйверы и исполнительную систему от особенностей архитектуры процессора, что обеспечивает переносимость операционной системы. Уровень абстрагирования от оборудования является самым нижним уровнем сис-темы. Он скрывает от операционной системы, включая ее ядро, специфику конкретной аппаратуры, т.к. даже при одинаковой архитектуре системы, например x86, могут быть аппаратные особенности реализации, например различные типы материнской платы. Объектно-ориентированная технология Изучая архитектуру операционных систем, необходимо особо прокомментировать использование технологии объектно-ориентированного программирования для написания кода операционных систем. Объектно-ориентированное программирование может с успехом применяться для разработки кода операционных систем в соответствии с любым типом архитектуры. На первый взгляд может показаться, что использование или не использование технологии объектно-ориентированного программирования скорее относится к стилю программирования, и не имеет отношения к архитектуре операционных систем. Но на практике, использование объектно-ориентированного программирования оказывает столь значительное влияние на структуру всей операционной системы, что вполне можно рассматривать использование объектно-ориентированного программирования как особенность архитектуры операционной системы. Основная идея объектно-ориентированного программирования состоит в том, чтобы сопоставить реальным объектам и ключевым абстракциям предметной области программные объекты. Применительно к операционным системам, такими программными объектами могут быть, например, объект-процесс, объект-сегмент виртуальной памяти, объект-проекция файла и т.п. При этом, технология объектно-ориентированного программирования позволяет выполнять аккумуляцию удачных решений в форме стандартных объектов, пригодных для повторного использования, и предоставляет возможность создания новых объектов на базе имеющихся с помощью механизма наследования. Использование программных объектов для представления ключевых абстракций изменяет концепцию разработки архитектуры программ, позволяет более естественно переложить на исходный код программы привычное для человека описание сложной системы на уровне взаимодействия объектов. Архитектура операционной системы получается более строго структурированной, и представляется скорее как система взаимодействующих объектов, а не как набор глобальных данных и процедур. Программные объекты объединяют в себе данные, описывающие состояние объекта, и методы, определяющие правила перехода между состояниями под влиянием внешних, по отношению к этому объекту, событий. При этом данные объекта недоступны для прямого доступа извне, и их модификация возможна только через методы самого объекта. В отличие от процедурного подхода, когда любые функции могут произвольно модифицировать глобальные данные, методы объектов контролируют корректность изменения данных, и не позволяют перевести объект в недопустимое состояние. В результате возрастает стабильность работы операционной системы. Кроме того, существенно упрощается отладка операционной системы, т.к. методы объектов позволяют зафиксировать некорректные обращение к объектам, что помогает легко локализовать неправильно работающие компоненты. Еще одно важное преимущество объектно-ориентированной технологии также основано на сокрытии данных внутри объекта. Действительно, так как данные непосредственно не доступны за пределами объекта, для работы операционной системы не имеет никакого значения их организация, важен только интерфейс, предоставляемый методами. Это значит, что можно изменить внутреннюю сущность любого объекта безо всякого влияния на другие объекты, например при смене аппаратной платформы. По-этому объектно-ориентированная операционная система в большей степени переносима, чем система с процедурной организацией.
---------
-------
-------
10,11,12,13. 2.1 Процессы