- •1. Операционные системы
- •2. Функциональные компоненты локальной ос
- •3. Назначение и функции сетевой ос
- •4. Функциональные компоненты сетевой ос
- •5. Коммуникационные средства
- •6. Классификация ос
- •8. Архитектура ос
- •9. Монолитные и многоярусные ядра
- •10. Функциональные компоненты Linux
- •11. Структура ядра
- •12. Функции слоёв ядра
- •13. Вспомогательные модули
- •14. Микроядерные системы
- •15. Объектная модель функционирования
- •16. Состав исполнительной системы WinNt
- •17. Совместимость
- •18. Множественные прикладные среды. Способы реализации
- •19. Интерфейсы ос
- •20. Файловая система
- •21. Логическая организация файла
- •22. Физическая организация файла
- •23. Общая модель фс
- •Непрерывное
- •2) Цепочечная
- •3) Фиксированный
- •Битовые карты (таблицы) – каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)
- •Цепочки сводных свободных порций
- •Список свободных блоков
- •Индексированный
- •24. Функции фс
- •25. Фс unix-подобных ос
- •26. Структура фс
- •27. Структура фс базовых unix-подобных ос
- •28. Архитектура виртуальной фс
- •29. Последовательность действий при монтировании
- •30. Файловые дескрипторы и трансляция имён
- •31. Физическая организация fat
- •32. Физическая организация ntfs
- •33. Управление процессами
- •34. Контекст и дескриптор
- •35. Структура контекста процесса
- •36. Планирование и диспетчеризация
- •37. Алгоритмы планирования
- •38. Планирование и диспетчеризация в unix системах
- •39. Управление процессами в unix-подобных системах
- •40. Атрибуты, инфраструктура процесса
- •41. Создание процессов
- •42. Этап exec()
- •43. Межпроцессные взаимодействия (ipc)
- •44. Каналы (pipe)
- •45. Fifo
- •46. Пространство имен
- •47. Сообщения
- •48. Семафоры
- •49. Разделяемая память
- •50. Сигналы
- •51. Последовательность событий
- •52. Функции управления процессами
- •53. Сообщения в микроядерных ос.
- •54. Процессы и потоки в WinNt
- •55. Базовая структура процесса, создание процесса в WinNt
- •56. Основные различия управления процессами в различных средах
- •57. Состав потока в WinNt и контекст потока
- •58. Передача сообщений с помощью lpc (локальный вызов процедур)
- •59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
- •60. Система ввода-вывода в Win nt
- •61. Реализация свв в Windows nt
- •62. Унифицированная модель драйвера
- •63. Формат пакета irp
- •64. Структура драйвера
- •65. Редиректор и сервер. Встроенные сетевые компоненты
59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
Является альтернативой локальному вызову процедур. Характерной чертой LPC является: ассиметричность (одна из сторон является инициатором) и асинхронность. RPC сложнее - разное АП процессов. В этом случае RPC не долж. содерж. указ. на нестековую память и необходимо (как правило) копир. с одного компьютера на другой. RPC обязат. использ. нижележ. с-му транспорта , но это не д.б. очевидным для польз. В выводе принимают участие 2 процесса и возм. неоднородн средств ОС , сред , языков программирования для разных абонентов сети.
60. Система ввода-вывода в Win nt
Часть исполнительной системы, получающая запросы от процессов пользователя либо режима пользователя, либо ядра, и передающая эти запросы устройствам ввода-вывода в преобразованном виде.
Основная функция – управление всем устройствами компьютера. Устройства – байт-ориентированные, блок-ориентированные, виртуальные.
Существуют устройства, которые не принадлежат ни одному типу (терминал, сетевой адаптер).
Специальная подсистема ввода/вывода (иерархичная архитектура).
Контроллеры устройств. Выполняют простейшие функции. Своя система команд (несколько десятков).
Используют регистры для взаимодействия с процессором – часть общего АП (внутренние обмены). Иначе – отдельное АП (внешние обмены –in/out).
ОС – В/В в контроллер (макрокоманды), контроллер, используя внутренний счётчик команд, разлагает их на команды устройства. Специальные регистры – порты. Взаимодействие происходит через них.
Организация ПО В/В
Необходимо обеспечить экранирование от особенностей аппаратуры
Необходимо обеспечить удобный интерфейс
Независимость от устройств (программа не должна зависеть от типа устройств)
Единообразие наименования
Обработка ошибок на всех уровнях (с низких к верхним)
Блокирующие/неблокирующие (синхронные (верхний)/асинхронные (низкий)) передачи
Использование буферизации
Разделяемые и выделенные устройства
Слои ПО
- обработчики прерываний (скрыты и глубоко в системе)
- драйверы устройств (зависящий от устройства слой)
- независящий от устройства слой ОС (программный)
- пользовательский слой ПО (функции для реализации обмена с устройствами)
Основная функция обработчика прерывания (!) – блокирование процесса (разблокирование по некоторому событию).
Этапы функционирования драйверов
Принять от устройства запрос.
Свободен – приступил к задаче. Занят – отложен в очередь.
Реализация В/В (переход к конкретной форме запроса).
Реализация каждого запроса на уровне контроллера.
Блокировка процесса (либо синхронная, либо асинхронная) до окончания заданной операции.
Разблокировка процесса по факту некоторого события.
Выполнение следующих действий
Уникальная часть драйвера невелика – остальное можно получить автоматически (генерация кода).
Функции независящего от устройств слоя ОС
- общий интерфейс к драйверу устройств
- наименование устройств
- защита устройств
- буферизация
- распределение памяти на внутренних устройствах
- уведомление об ошибках ..
- распределение памяти в блок-ориентированных устройствах
Пользовательский слой ПО – библиотеки, API.
Ещё одна часть верхнего слоя – спуллинг – способ работы с выделенными устройствами в мультипрограммной системе.
Функция – чтобы не было монополизации пользования устройствами. Обычно есть специальный процесс – монитор.
Сегодня ФС входит в СВВ (но не усегда). ФС в NT, получается, написана как драйвер.