- •Функции и механизмы программ-диспетчеров, предшественников операционных систем.
- •Функции и механизмы мультипрограммных операционных систем.
- •Функции и механизмы сетевых и мобильных операционных систем.
- •Задачи и механизмы организации интерфейса между пользовательскими приложениями и аппаратным обеспечением вычислительной системы.
- •Методы организации эффективного использования ресурсов компьютера. Критерии эффективности. Управление ресурсами.
- •Принципы управления процессами, памятью, файлами.
- •Принципы разработки архитектуры современной операционной системы.
- •Виды архитектур ядер операционных систем.
- •Монолитная архитектура ядра операционной системы.
- •Многослойная архитектура ядра операционной системы.
- •Микроядерная архитектура операционной системы.
- •Понятие процесса, потока, нити, задания.
- •Функции подсистемы управления процессами.
- •1. К созданию процесса приводят пять основных событий:
- •Методы создания процессов.
- •Модель жизненного цикла процесса.
- •Виды планирования и их место в жизненном цикле процесса.
- •Алгоритмы планирования процессов
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Критерии эффективности и свойства методов планирования процессов, параметры планирования процессов. Критерии планирования и требования к алгоритмам
- •Параметры планирования
- •Дисциплины обслуживания без внешнего управления приоритетами (fcfs, rr, sjf), гарантированное планирование. First-Come, First-Served (fcfs)
- •Round Robin (rr)
- •Shortest-Job-First (sjf)
- •Гарантированное планирование
- •Приоритетное планирование с внешним управлением приоритетами, многоуровневые очереди. Приоритетное планирование
- •Многоуровневые очереди (Multilevel Queue)
- •3.5.7. Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •Организация планирования процессов в Microsoft Windows Vista и gnu/Linux.
- •Проблемы взаимодействующих процессов.
- •Алгоритмы реализации взаимоисключений. Требования, предъявляемые к алгоритмам
- •5.3.4. Строгое чередование
- •5.3.5. Флаги готовности
- •5.3.6. Алгоритм Петерсона
- •Семафоры Дейкстра. Решение проблемы «производитель-потребитель» с помощью семафоров. Семафоры
- •Концепция семафоров
- •Решение проблемы producer-consumer с помощью семафоров
- •Тупики. Условия возникновения и направления борьбы с тупиками.
- •Условия возникновения тупиков
- •Основные направления борьбы с тупиками
- •Игнорирование проблемы тупиков
- •Обнаружение тупиков
- •Восстановление после тупиков
- •Принципы управления памятью вычислительной системы. Виртуальная память и преобразование адресов.
- •Концепция виртуальной памяти
- •Методы распределения оперативной памяти без использования внешней памяти.
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •Страничная организация виртуальной памяти.
- •Методы выделения дискового пространства и записи последовательности блоков данных: непрерывная последовательность блоков, связный список, таблица размещения файлов.
- •Связный список
- •Методы выделения дискового пространства и записи последовательности блоков данных: индексные дескрипторы.
Критерии эффективности и свойства методов планирования процессов, параметры планирования процессов. Критерии планирования и требования к алгоритмам
Для каждого уровня планирования процессовможно предложить много различных алгоритмов. Выбор конкретного алгоритма определяется классом задач, решаемых вычислительной системой, и целями, которых мы хотим достичь, используяпланирование. К числу таких целей можно отнести следующие:
Справедливость – гарантировать каждому заданию или процессу определенную часть времени использования процессора в компьютерной системе, стараясь не допустить возникновения ситуации, когда процесс одного пользователя постоянно занимает процессор, в то время как процесс другого пользователя фактически не начинал выполняться.
Эффективность – постараться занять процессор на все 100% рабочего времени, не позволяя ему простаивать в ожидании процессов, готовых к исполнению. В реальных вычислительных системах загрузка процессора колеблется от 40 до 90%.
Сокращение полного времени выполнения ( turnaround time ) – обеспечить минимальное время между стартом процесса или постановкой задания в очередь для загрузки и его завершением.
Сокращение времени ожидания ( waiting time ) – сократить время, которое проводят процессы в состоянии готовность и задания в очереди для загрузки.
Сокращение времени отклика ( response time ) – минимизировать время, которое требуется процессу в интерактивных системах для ответа на запрос пользователя.
Независимо от поставленных целей планированияжелательно также, чтобы алгоритмы обладали следующими свойствами.
Были предсказуемыми. Одно и то же задание должно выполняться приблизительно за одно и то же время. Применение алгоритма планирования не должно приводить, к примеру, к извлечению квадратного корня из 4 за сотые доли секунды при одном запуске и за несколько суток – при втором запуске.
Были связаны с минимальными накладными расходами. Если на каждые 100 миллисекунд, выделенные процессу для использования процессора, будет приходиться 200 миллисекунд на определение того, какой именно процесс получит процессор в свое распоряжение, и на переключение контекста, то такой алгоритм, очевидно, применять не стоит.
Равномерно загружали ресурсы вычислительной системы, отдавая предпочтение тем процессам, которые будут занимать малоиспользуемые ресурсы.
Обладали масштабируемостью, т. е. не сразу теряли работоспособность при увеличении нагрузки. Например, рост количества процессов в системе в два раза не должен приводить к увеличению полного времени выполнения процессов на порядок.
Многие из приведенных выше целей и свойств являются противоречивыми. Улучшая работу алгоритма с точки зрения одного критерия, мы ухудшаем ее с точки зрения другого. Приспосабливаяалгоритмпод одинклассзадач, мы тем самым дискриминируем задачи другого класса.
Параметры планирования
Для осуществления поставленных целей разумные алгоритмы планированиядолжны опираться на какие-либо характеристики процессов в системе, заданий в очереди на загрузку, состояния самой вычислительной системы, иными словами, напараметры планирования. В этом разделе мы опишем ряд такихпараметров, не претендуя на полноту изложения.
Все параметрыпланированияможно разбить на две большие группы: статическиепараметрыи динамическиепараметры. Статическиепараметрыне изменяются в ходе функционирования вычислительной системы, динамические же, напротив, подвержены постоянным изменениям.
К статическим параметрамвычислительной системы можно отнести предельные значения ее ресурсов (размер оперативной памяти, максимальное количество памяти на диске для осуществления свопинга, количество подключенных устройств ввода-вывода и т. п.). Динамическиепараметрысистемы описывают количество свободных ресурсов на данный момент.
К статическим параметрампроцессов относятся характеристики, как правило присущие заданиям уже на этапе загрузки.
Каким пользователем запущен процесс или сформировано задание.
Насколько важной является поставленная задача, т. е. каков приоритет ее выполнения.
Сколько процессорного времени запрошено пользователем для решения задачи.
Каково соотношение процессорного времени и времени, необходимого для осуществления операций ввода-вывода.
Какие ресурсы вычислительной системы (оперативная память, устройства ввода-вывода, специальные библиотеки и системные программы и т. д.) и в каком количестве необходимы заданию.
Алгоритмы долгосрочного планированияиспользуют в своей работе статические и динамическиепараметрывычислительной системы и статическиепараметрыпроцессов (динамическиепараметрыпроцессов на этапе загрузки заданий еще не известны). Алгоритмыкраткосрочногоисреднесрочного планированиядополнительно учитывают и динамические характеристики процессов. Длясреднесрочного планированияв качестве таких характеристик может использоваться следующаяинформация:
сколько времени прошло с момента выгрузки процесса на диск или его загрузки в оперативную память;
сколько оперативной памяти занимает процесс;
сколько процессорного времени уже предоставлено процессу.
Для краткосрочного планированиянам понадобится ввести еще два динамическихпараметра.Деятельностьлюбого процесса можно представить как последовательность циклов использования процессора и ожидания завершения операций ввода-вывода. Промежуток времени непрерывного использования процессора носит названиеCPU burst, а промежуток времени непрерывного ожидания ввода-вывода –I/O burst. Нарисунке 3.1.показан фрагмент деятельности некоторого процесса на псевдоязыке программирования с выделением указанных промежутков. Для краткости мы будем использовать терминыCPU burstиI/O burstбез перевода. Значения продолжительности последних и очередныхCPU burstиI/O burstявляются важными динамическимипараметрамипроцесса.
ИЗ ЛЕКЦИЙ:
Критерии планирования (5 основных):
Справедливость – гарантия каждому заданию или процессу определенной части времени использования процессора, недопускание ситуации, когда один процесс исполняется постоянно, а другой (уже запущенный) не имеет доступа к процессору;
Эффективность использования ресурсов – алгоритм должен по максимуму занять процессор (реально процессор занимается на 40-60%);
Сокращение полного времени выполнения – обеспечение минимального времени между стартом процесса и его завершением;
Время ожидания – минимизация времени, которое проводят процессы в состоянии готовности;
Время отклика – минимизация времени на взаимодействие с внешними факторами (как с устройствами, так и с пользователем).
Свойства алгоритмов планирования:
Предсказуемость – одно и то же задание должно выполняться приблизительно за одно и то же время;
Масштабируемость – алгоритмы не должны терять работоспособность при увеличении нагрузки;
Минимальные расходы – соотношения времени выборки процесса на исполнение и времени исполнения должны быть существенны.
Параметры планирования
Статические параметры – это предельные значения ресурсов системы (объем оперативной памяти, частота процессора).
Динамические параметры – это количество ресурсов в текущий момент времени.
На этапе загрузки процесса появляются статические параметры:
каким пользователем запущен процесс;
приоритет задачи;
сколько процессорного времени запрошено для решения задачи;
каково соотношение процессорного времени и времени, необходимого на операции ввода/вывода;
какие ресурсы, и в каком количестве необходимы (оперативная память, устройства ввода/вывода, специальные библиотеки).
Динамические параметры появляются после первого исполнения:
сколько времени прошло со времени выгрузки процесса на диск или загрузки его в оперативную память;
сколько оперативной памяти занимает процесс;
сколько процессорного времени было предоставлено процессу.
У процесса разделяют два состояния (временных). Эти параметры тоже являются динамическими и они измеряются после каждого очередного исполнения:
CPU burst – промежуток непрерывного исполнения на процессоре;
I/O burst – промежуток ожидания ввода/вывода.