
- •Функции и механизмы программ-диспетчеров, предшественников операционных систем.
- •Функции и механизмы мультипрограммных операционных систем.
- •Функции и механизмы сетевых и мобильных операционных систем.
- •Задачи и механизмы организации интерфейса между пользовательскими приложениями и аппаратным обеспечением вычислительной системы.
- •Методы организации эффективного использования ресурсов компьютера. Критерии эффективности. Управление ресурсами.
- •Принципы разработки архитектуры современной операционной системы.
- •Виды архитектур ядер операционных систем.
- •Монолитная архитектура ядра операционной системы.
- •Многослойная архитектура ядра операционной системы.
- •Микроядерная архитектура операционной системы.
- •Понятие процесса, потока, нити, задания.
- •Функции подсистемы управления процессами.
- •Методы создания процессов.
- •Модель жизненного цикла процесса.
- •Виды планирования и их место в жизненном цикле процесса.
- •Критерии эффективности и свойства методов планирования процессов, параметры планирования процессов.
- •Дисциплины обслуживания без внешнего управления приоритетами (fcfs, rr, sjf), гарантированное планирование.
- •Приоритетное планирование с внешним управлением приоритетами, многоуровневые очереди.
- •- Многоуровневые очереди(преподы и студенты)
- •- Многоуровневые очереди с обратной связью
- •Проблемы взаимодействующих процессов.
- •Алгоритмы реализации взаимоисключений.
- •Семафоры Дейкстра. Решение проблемы «производитель-потребитель» с помощью семафоров.
- •Тупики. Условия возникновения и направления борьбы с тупиками.
- •Принципы управления памятью вычислительной системы. Виртуальная память и преобразование адресов.
- •Методы распределения оперативной памяти без использования внешней памяти.
- •Страничная организация виртуальной памяти.
- •Сегментно-страничная организация виртуальной памяти.
- •Методы выделения дискового пространства и записи последовательности блоков данных: непрерывная последовательность блоков, связный список, таблица размещения файлов.
- •Методы выделения дискового пространства и записи последовательности блоков данных: индексные дескрипторы.
- •Области применения технологий виртуализации.
- •Типы виртуализации по принципу действия.
- •Типы виртуализации по видам виртуализируемой среды.
- •Технология Red Hat Enterprise Virtualization.
- •Организация распределенных вычислительных систем.
- •Синхронизация в распределенных системах.
- •Принципы обеспечения безопасности в современных операционных системах. Основные функции подсистемы защиты ос
- •Аутентификация, авторизация, идентификация пользователей.
Микроядерная архитектура операционной системы.
2. Микроядерная
Servers of processes, memory, print) and apps
^
|| //типа двусторонняя стрелочка
V
Базовые механизмы
HAL
|| Hard Что значит перезагрузить ОС? Выгрузить из памяти и загрузить назад ядро
Soft app____ __app_ __app_
OS \______/ \_______/
Ядро ядро
Микроядерная менее надежна и менее безопасна, чем монолитная
FreeBDSM – пример микроядерной архитектуры
Понятие процесса, потока, нити, задания.
Процесс – совокупность набора исполняющихся команд, ассоциированных с ним ресурсов и текущего момента выполнения.
Процессы начинают делить на потоки. Поток – обособленный набор команд и свое собственно состояние. Поток (тред) – единица планирования процессорного времени. Каждый поток делится на фибы (нить/волокна). ОС ничего не знает о волокнах, они управлются самостоятельно внутри тредов внутренним планировщиком.
Процессы могут быть объединены в задание (task - win)/ Control group (linux). Задания могут быть ограниченны ресурсами и временем исполнения, etc.
Мы считаем, что один процесс реализован в рамках одного потока.
Особенности реализации Windows
Используется четыре понятия:
Задание - набор процессов с общими квотами и лимитами
Процесс - контейнер ресурсов (память ...), содержит как минимум один поток.
Поток - именно исполняемая часть, планируемая ядром.
Волокно - облегченный поток, управляемый полностью в пространстве пользователя. Один поток может содержать несколько волокон.
Потоки работают в режиме пользователя, но при системных вызовах переключаются в режим ядра. Из-за переключения в режим ядра и обратно, очень замедляется работа системы. Поэтому было введено понятие волокна. У каждого потока может быть несколько волокон.)
Функции подсистемы управления процессами.
Система управления задачами; функции: (Подсистема управления процессами и ее функции)
Создание процессов.
Обеспечение процесса необходимыми ресурсами – изначальное и динамическое.
Изоляция процессов.
Планирование выполнения процессов.
Диспетчеризация процессов.
Организация межпроцесного взаимодействия.
Синхронизация процессов.
Завершение и уничтожение процессов.
Методы создания процессов.
(Linux) Процесс порождается с помощью системного вызова fork(). При этом вызове происходит проверка на наличие свободной памяти, доступной для размещения нового процесса. Если требуемая память доступна, то создается процесс-потомок текущего процесса, представляющий собой точную копию вызывающего процесса. Этому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом (PCB).
Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser (для Win NT/2000) и CreateProcessWithLogonW (начиная с Win2000) и происходит в несколько этапов:
- Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки (support image) для запуска этой программы. Например, если исполняется файл с расширением .bat, запускается cmd.exe и т.п.
- Создается объект Win32 "процесс".
- Создается первичный поток (стек, контекст и объект "поток").
- Подсистема Win32 уведомляется о создании нового процесса и потока.
- Начинается выполнение первичного потока.
В контексте нового процесса и потока инициализируется адресное пространство (например, загружаются требуемые DLL) и начинается выполнение программы.