- •Вопрос 1. История развития ос. Существующие операционные системы и их характеристики. Классификация ос.
- •Вопрос 2. Основные компоненты ос. Назначение, структура и функции ос.
- •Вопрос 3. Требования к операционным системам.
- •Вопрос 4. Понятие ресурса, виды ресурсов, управление ресурсами.
- •Вопрос 5. Виртуальная память. Методы распределения памяти.
- •Вопрос 6. Принцип кэширования данных.
- •Вопрос 7. Понятие процесса. Состояние процесса и переходы между ними.
- •Вопрос 8. Управление процессами. Синхронизация процессов. Семафоры. Использование семафоров для решения задач взаимоисключения и синхронизации. Алгоритмы планирования процессов
- •Вопрос 9. Управление процессами. Сообщения. Тупики. Способы борьбы с тупиками.
- •Вопрос 10. Файловые системы. Fat, hpfs, ntfs. Основные отличия. Общая модель файловой системы.
- •Вопрос 11. Файловая система fat. Структура диска. Файлы. Размещение файлов.
- •Вопрос 12. Файловые системы hpfs и ntfs. Структура диска. Файлы. Размещение файлов.
- •Вопрос 13. Операционная система ms-dos. Порядок загрузки.
- •Вопрос 14. Операционная система ms-dos. Загрузочный сектор жесткого диска. Структура элементов раздела в таблице разделов диска.
- •Вопрос 15. Операционная система ms-dos. Структура загрузочного сектора диска.
- •Вопрос 16. Операционная система ms-dos. Форматы исполняемых файлов.
- •Вопрос 17. Операционная система ms-dos. Структура psp.
- •Вопрос 18. Понятие прерывания. Аппаратные и программные прерывания. Обработка прерываний.
- •Вопрос 19. Структура таблицы векторов прерывания.
- •Вопрос 20. Способы несанкционированного доступа к информации в ms-dos. Возможные механизмы защиты.
- •Вопрос 21. Структура сетевой ос.
- •Вопрос 22. Классификация угроз безопасности ос.
- •Вопрос 23. Понятие защищенной ос. Подходы к построению защищенной ос.
- •Вопрос 24. Архитектура Windows nt. Основные модули Windows nt.
- •Вопрос 25. Архитектура Windows nt. Уровень аппаратных абстракций.
- •Вопрос 27. Windows nt. Интерфейс прикладных программ.
- •Вопрос 28. Ос Windows nт. Понятие объекта. Структура объекта.
- •Вопрос 29. Ос Windows nt. Понятие процесса. Взаимодействие между процессами. Потоки. Нити.
- •Вопрос 30. Ос Windows nt. Модель безопасности и ее компоненты.
- •Вопрос 31. Ос Windows nt. Реестр. Управление конфигурацией. Значимые элементы Реестра.
- •Вопрос 32. Архитектуры сетевой подсистемы ос Windows nt. Встраивание средств защиты в сетевую подсистему.
- •Вопрос 33. Аудит в Windows nt.
- •Вопрос 34. Угрозы безопасности Windows nt и методы защиты.
- •Вопрос 35. Ос Windows nt. Основные функции Win32 api.
- •Пример api функции:
- •Вопрос 37. История развития и общая характеристика семейства ос unix. Основные сведения о системе.
- •Вопрос 38. Архитектура ос unix. Ядро ос. Основные функции. Принципы взаимодействия с ядром.
- •Вопрос 39. Файловые системы unix.
- •Вопрос 40. Ос unix. Понятие процесса. Взаимодействие между процессами. Сигналы.
- •Вопрос 41. Ос unix. Основные функции. Системные операции.
- •Вопрос 42. Ос unix. Управление памятью. Виртуальная память. Принцип Деннинга. Структура виртуального адресного пространства.
- •Вопрос 43. Ос unix. Системные вызовы управления вводом-выводом.
- •Вопрос 44 ос unix. Средства взаимодействия с пользователем.
- •Вопрос 45. Методы защиты информации в ос мсвс.
- •Вопрос 46. Ос unix. Существующие типы файлов.
- •Вопрос 47. Стандарты защищенности ос и адекватная политика безопасности.
- •Вопрос 48. Определение и основные особенности операционных систем реального времени.
Вопрос 38. Архитектура ос unix. Ядро ос. Основные функции. Принципы взаимодействия с ядром.
Основные функции ядра:
-
выполнение и управление процессов посредством их создания, завершения, остановки, и организация взаимодействия между ними.
-
планирование очередности предоставления выполнения процессами и процессорным временем.
-
выделение процессам оперативной памяти (ОП) и других ресурсов.
Ядро:
-
управление процессами
-
выделение памяти
-
программный интерфейс и т.д. (найти ещё функции)
Система обладает высокой мобильностью, все части системы, кроме ядра, написаны на Си. Для перен6оса требуется лишь компиляция. Все машины, зависящие от ядра, написаны на ASSEMBLER.
В их задачу входит:
-
Инициализация систем на низком уровне.
-
Первичная обработка внутренних и внешних прерываний.
-
Управление памятью, той частью, которая относится к особенностям аппаратной поддержки виртуальной памяти.
-
Переключение контекстов процессов, связанных с особенностью целевой платформы частью драйверов устройств.
Для обращения к функциям ядра используется специальная команда процессора, которая генерирует внутренние прерывания процессора, переводящие его в режим ядра. Существует механизм – библиотека системных вызовов. Для пользователя она – обычная библиотека. Но внутри будет код, описывающий перевод в режим ядра и т.д.
Приложения в двух режимах:
-
Режим задачи (процессы имеют доступ только к своим собственным инструкциям и данным)
-
Режим ядра (процессам доступны адресные пространства ядра и пользователя)
Существуют привилегированные команды, использование которых в режиме пользователя ведет к ошибке.
Ядро располагается в ОЗУ и не выгружаемо. Большинство информационных структур данных ядра в таблицах фиксированного раздела (например, таблица процессора – размер ограничен).
Система управления файлами:
Внутреннее представление файлов описываются на индексах, которые содержат описание размещенной информации файлов на диске, владельца, доступ и т.д. Файл имеет один индекс, но может быть связан с несколькими именами. Если у файла несколько имен, то при удалении удаляется только ссылка на имя в индексе, сам файл не удаляется. Для того, чтобы удалить весь файл, необходимо удалить все его имена.
Ядро поддерживает две информационные структуры:
Таблицу файлов (глобальная структура ядра)
Пользовательская таблица дескрипторов файлов (для пользовательского процесса)
Файловая система:
блок загрузки
суперблок (состояние файловой системы: размер файлов, сколько файлов может находиться и т.д.)
список индексов (расположение файлов на диске)
информационные блоки
Для создания нового процесса используется команда fork. Процесс, использующий эту команду, – родительский. Все остальные – дочерние процессы. Ядро системы идентифицирует процесс по его номеру, названный идентификатором процесса.
Существует нулевой процесс, который создается вручную при запуске системы. Он порождает процесс Init, который осуществляет запуск всех остальных процессов. Нулевой процесс после этого становится файлом подкачки.
Исполняемый файл после выполнения системой операции exec («_»). Отличительная черта состоит в том, что процесс создается в два этапа: при вызове fork создается копия родительского процесса, а после exec заменяется код.
Существует два стека: стек в режиме ядра и стек в режиме задачи. Стек в режиме ядра, если процесс в режиме задачи, и наоборот.
Каждому процессу соответствует точка входа в таблицу процессов ядра. Каждому процессу выделяется часть ОП. Таблица процессов включает указатель на промежуточную таблицу области процесса, точки входа в которую являются указателями на таблицу области памяти, принадлежащей процессу. Точки входа в таблицу области описывают атрибуты: карту, где размещаются в памяти, предназначена для частного или общего использования.
Запись в таблицу процессов и часть адресного задачи содержит управляющую информацию и данные ос состоянии задачи (поле состояния, идентификатор владельца, когда процесс остановлен и т.д.). Адресное пространство задачи, выделяемое процессу:
указатель на позицию в таблице процессов
параметры текущей системной операции
дескрипторы файлов для всех открытых данным процессов файла
текущий каталог
граница области, принадлежащая процессу
Контекст процесса – его состояние, определенное текстом, значением глобальных переменных, значением используемых машинных регистров, значением хранимых в таблице адресов процессов, содержимое в стеках и задачах.
Контексты могут быть переключены ядра вполне при определенных условиях: ядро разрешает переключение только тогда, когда процесс переходит из состояния запуска режима ядра в состояние сна памяти.
Основные состояния процесса:
процесс может выполняться в режиме задачи.
процесс может выполняться в режиме ядра.
процесс не выполняется, но готов к выполнению.
процесс приостановлен или спит.
В режиме ядра может выполняться только один процесс, в режиме пользователя много. Пока процесс в режиме ядра, переключать контекст нельзя.
Реализация этого требования:
на момент нахождения процесса в режиме ядра запретить прерывания.
Для того, чтобы не запрещать прерывания, ядро повышает приоритет прерывания ядра.
В состоянии «сна» может находиться много процессов.
Ситуация: три процесса ждут, пока 1 процесс занимает принтер. После освобождения принтера все три процесса пробуждаются ото сна, планировщик выбирает нужный процесс, остальные опять впадают в сон.