- •Определение и назначение ос
- •2. Виды ос
- •Функции ос
- •Архитектура операционной системы
- •Структура ос
- •Монолитная архитектура
- •Микроядерная архитектура
- •Понятия вычислительного процесса и ресурса
- •Прерывания
- •Системные вызовы
- •Процесс, поток.
- •Создание процессов и потоков
- •Состояния потока
- •Планирование и диспетчеризация потоков
- •Алгоритмы планирования
- •Управление памятью
- •Типы адресов
- •Методы распределения памяти без использования дискового пространства
- •19. Методы распределения памяти с использованием дискового пространства
- •20. Понятие виртуальной памяти
- •21. Страничное распределение виртуальной памяти
- •22. Сегментное распределение виртуальной памяти
- •23. Странично-сегментное распределение виртуальной памяти
- •Свопинг
- •Назначение и функции файловой системы
- •Логическая организация файловой системы
- •27. Файловая система fat
- •Файловая система ntfs
- •Контроль доступа к файлам
- •Основные понятия безопасности ос
- •Системный подход к обеспечению безопасности
- •Симметричные криптосистемы
- •Асимметричные криптосистемы
- •Аутентификация
- •35. Аутентификация на основе многоразовых паролей
- •Аутентификация на основе одноразовых паролей
- •Цифровые сертификаты
- •Цифровые подписи
- •Авторизация доступа
- •Уровни raid
- •Виды схд.
Планирование и диспетчеризация потоков
Планирование и диспетчеризация потоков
Планирование - это работа по определению того, в какой момент прервать выполнение одного потока и какому потоку предоставить возможность выполняться Задачи планирования:
Определение момента времени для смены текущего активного потока
Выбор для выполнения потока из очереди готовых потоков
Диспетчеризация - это реализация решения, найденного в результате планирования Задачи диспетчеризации:
Сохранение контекста текущего потока
Загрузка контекста нового потока
Запуск нового потока на выполнение
Контекст потока можно разделить на общую часть для всех потоков данного процесса и часть, относящуюся только к данному потоку Иерархия контекстов ускоряет переключение потоков
Алгоритмы планирования
Алгоритм планирования, основанный на квантовании.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:
роцесс завершился и покинул систему,
роизошла ошибка,
процесс перешел в состояние ОЖИДАНИЕ,
исчерпан квант процессорного времени, отведенный данному процессу.
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.
Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.
Алгоритмы планирования в интерактивных ОС:
интерактивные системы ориентированы на максимальное удобство пользователя. В этих системах невозможно трёхуровневое планирование, однако двухуровневое широкок используется.
Циклическое планирование
наиболее старый, простой и справедливый алгоритм. каждому процессу (предполагается, что процессы равнозначны) предоставляется промежуток времени работы процессора - квант времени. если к концу кванта процесс всё ещё работает, то этот процесс прерывается и процессор обрабатывает уже другой, следующий процесс. Если процесс прекращает работу раньше срока истечения кванат, то происходит перход управления в этот момент. Планировщик только поддерживает список процессов. Исчерпавшие лимит, обработанные процессы помещаются в коенц списка процессов. Вадный вопрос - длина кванат - при малой длине кваната высоки потери на переключение, при большой - заторможенность реакции на быстрые запросы. 20-50 мс- оптимальное значение кванта.
Приоритетное планирование
В основе - неравнозначность процессов. Каждому процессуприсваивается приоритет, передача управления - процессу с наивысшим приоритетом. Для предотвращения зацикливания и постоянной обрабокт процессов планировщик может уменьшать приоритеты процессов во время выполенния. Также имеется выделение квантов времени - определённых временныъх интервалов, по окончаниикоторого точно проихойдёт передача управления. система может динамически задавать приоритеты для достижения своих целей (поддрежка аппатарной части, требующих мгновенно квант процессорного времени и т.п.) Возможноа группировка процессов по приоритетам.
Гарантированное планирование
Если в системе одновременно работаю k пользователей, то одному будет предоставлено (1/k) процессорного времени, а в системе с одним пользователем запущено n процессов, то каждому процессу достнется (1/n) процессорного времени. система самас ледит за количестволм процессов и отследивает промежутки процессорного времени, выделяфемого каждому из процессов (или пользователей)
Лотерейное планирование
Достойная идея, но труднореализуемая. Система распределяет "лотерейные билеты" между процессами, и "выигрывший" процесс получает 20 мс процессорного времни. В этом принципе возможна приоритетность - раздача нескольких билетов "выжным" процессам. Притом каждый процессс получает ресурсов примерно равные проценту имеющихся у него лотерейных билетов. Процесссы могут передавать сови лотерейные билеты (клиент-сервер - клиент прервался, жёдт сервера, клиент отдаёт свои билеты серверному процессу). Данное планировае удобно при меняющихся неравнозначных по заруженности процессах. (Видеосервер с несколькими потоками разного битрейта, особенно переменного)
Справедливое планирование
Во внимание берётся тот, кто запускает процесс. Если один пользователь создал 9 процессов, а параллельный ему второй - 1, то при таком планировании система распределит время процессора между пользователями попаам, в то время как другие виды планирования отали большинство процессорного времние первому пользователю. Данное планирование отведёт ровно 50% процессорного времени одному из дву пользоватлей, независимо от того, как он будет использовать эти 50%.