- •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. Редиректор и сервер. Встроенные сетевые компоненты
8. Архитектура ос
Архитектура ОС – структурная организация совокупности программных модулей, взаимодействующих в соответствии с выбранной моделью функционирования.
Типы модулей:
Модули, работающие в привилегированном режиме – ядро ОС (их работа не может быть прервана);
Вспомогательные модули – непривилегированные модули программ
Вспомогательные модули взаимодействуют с ядром.
Все ОС структурно делят на ОС на основе ядра и микроядра.
Работа в привилегированном режиме позволяет:
Защитить модули ядра и вообще код и данные ОС от приложений прикладного режима. Ни одно из приложений пользователя не может разрушить систему.
Ведется арбитраж ресурсов между приложениями, работающими в прикладном режиме.
Работа ОС в двух режимах:
Режим ядра (Kernel mode);
Пользовательский режим (User mode).
Основные функции ядра (те, которые связаны с критичными командами по переключению процессора с прикладных задач на задачи управления УВВ, периферией; управление памятью, кэширование) выполняются в привилегированном режиме и имеют доступ ко всем адресным пространствам приложений. Любое приложение имеет доступ только к своему адресному пространству.
Если аппаратура позволяет использовать 2 уровня привилегий, то ОС программными средствами может обеспечить любое количество привилегий (в процессорах Intel 4 уровня привилегий).
9. Монолитные и многоярусные ядра
Монолитное ядро – разбиение на модули внутри ядра и каждый модуль соединяется (по связям) с каждым. Одно адресное пространство, полносвязные модули.
«+» - быстродействие
«-» - не масштабируемая система, т.к. изъятие одного модуля изменяет и другие; ограниченность ресурсов. Пример: MS-DOS.
Многоярусное ядро – каждый модуль работает только с модулями своего слоя или с модулями ниже него.
Функции каждого из слоев являются примитивами для более высоких слоев.
«+» - масштабируемость;
«-» - требуется больше ресурсов (всех).
Появляются слои, которые функционально ничего не делают (речь идет о статических ресурсах), запрос не может миновать ни один из уровней, но бывают исключения. Примеры: большинство ОС общего назначения – UNIX подобные, OS/2, NetWare, исполнительная система Windows.
10. Функциональные компоненты Linux
11. Структура ядра
Аппаратный слой ядра
12. Функции слоёв ядра
Аппаратный слой + программно-аппаратные средства: машинно-зависимые компоненты ОС.
Задача - ликвидация зависимости верхних слоев от программно-аппаратных средств.
Состав программно-аппаратных средств.
переход в привилегированный режим
аппаратное управление привилегиями
переключение с задачи на задачу, смена контекста
защита областей памяти, смена страниц памяти, кэширование
аппаратные схемы организации прерываний (внутренние – генерируемые процессом, внешние / аппаратные – генерируемые периферией и даже шиной) (с контроллером и без него)
Базовый механизм ядра: слой программных модулей, которые выполнят основные примитивы, необходимые для реализации более сложных функций (программное переключение контекстов, перемещение страниц памяти (диск<->ОЗУ), управление виртуальной памятью, межпроцессных взаимодействий, диспетчеризация прерываний, регистровое управление ПУ).
Менеджеры, диспетчеры (многослойные): уровень решения стратегических задач управления основными ресурсами системы (и процессами). Задачи планирования ресурсов:
учет свободных/занятых ресурсов
задача предоставления ресурсов
Межпроцессные взаимодействия (IPC) – обмен данными, синхронизация.
Каждый процесс работает в строго изолированном адресном пространстве, за рамками работать не может. Посредниками и механизмами передачи являются IPC.
ФС Windows входит в систему ВВ (реализована как драйвер). В Unix – отдельно.
Интерфейс системных вызовов: взаимодействие с утилитами и приложениями. Это верхний слой ядра. Открытый стандарт – интерфейс прикладного программирования API. Функции API предоставляют доступ к системным ресурсам из приложений в компактной форме, как правило, без учета детальной реализации и размещения этих ресурсов.
Для реализации системных вызовов используются программные прерывания. Эти инструкции позволяют вызвать модуль первичной обработки.
Увеличение количества уровней приведет к увеличению затрат, уменьшение количества уровней – примитивные программы.
Внутрисистемные задачи – переключение контекстов, загрузка/выгрузка/переключение страниц памяти, обработка прерываний, работа с памятью и др. функции, которые недоступны из приложений.
Создание прикладной программной среды и поддержка приложений (запросы, системные вызовы).
Функции ядра, которые могут вызываться приложениями, образуют интерфейс системных вызовов. Эти функции должны быть оптимизированы по доступу и по ресурсам. Решение: модули ОС – резидентны (всегда большая их часть в ОЗУ).