- •Понятие операционной системы. Функции операционной системы. Классификация операционных систем.
- •Компоненты операционной системы. Виды ядер.
- •Монолитная структура операционной системы
- •4. Структура операционной системы unix
- •Ядро операционной системы unix
- •Основные понятия ос: системные вызовы, прерывания, исключительные ситуации, файлы, процессы и нити.
- •Процессы. Состояния процесса.
- •Process Control Block и контекст процесса.
- •9. Одноразовые и многоразовые операции. Переключение контекста.
- •10. Планирование процессов. Критерии планирования и требования к алгоритмам.
- •11. Вытесняющее и невытесняющее планирование
- •12.Алгоритм планирования fcfs.
- •13. Алгоритм планирования rr.
- •14. Поток в пространстве ядра, поток в пространстве пользователя.
- •15. Таблица потоков. Информация в таблице потоков
- •16. Алгоритмы планирования: fifo.
- •17. Алгоритмы планирования: «кратчайшая задача – первая»
- •18. Алгоритмы планирования: приоритетное планирование.
- •19. Алгоритмы планирования: планирование в системах реального времени.
- •20. Функция создания процесса CreateProcess()
- •21. Взаимоблокировка процессов. Тупики.
- •22. Методы борьбы с взаимоблокировками. Безопасное и небезопасное состояние.
- •25. Кооперация процессов. Логическая организация механизма передачи информации.
- •26.Адресации: прямая и непрямая.
- •27. Линии связи. Буферизация.
- •28. Поток ввода/вывода и сообщения.
- •29.Алгоритмы синхронизации. Критическая секция.
- •30. Механизмы синхронизации. Семафоры, мониторы и сообщения.
- •31. Управление памятью. Физическая организация памяти компьютера.
- •32. Анализ производительности многозадачных систем.
- •33. Распределение памяти с фиксированными разделами.
- •34. Управление памятью. Физическая организация памяти компьютера.
- •35. Методы без использования внешней памяти.
- •36. Распределение памяти с динамическими разделами.
- •37.Основные методы распределения памяти: с фиксированными разделами и динамическими разделами. Перемещение и рост разделов.
- •38. Сегментная архитектура памяти. Абсолютный и относительный адреса.
-
Компоненты операционной системы. Виды ядер.
Компоненты операционной системы
Загрузчик
Ядро
Командный процессор (интерпретатор)
Драйверы устройств
Интерфейс
Монолитное ядро - предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Все процедуры работают в привилегированном режиме.
Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем.
В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Микроядро - предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
Недостатки: Передача данных между процессами требует накладных расходов.
Экзоядро — ядро операционной системы, предоставляющее лишь функции для взаимодействия между процессами, безопасного выделения и освобождения ресурсов. Предполагается, что API для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры).
Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.
Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году.
Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Пример: ядра ОС Microsoft Windows семейства NT: Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7.