- •1. Состав и назначение и классификация операционной системы Введение
- •Понятие процесса и ресурса
- •Состав операционной системы
- •Классификация ос
- •Ос пакетной обработки
- •Ос оперативной обработки
- •Моделирование режима мультипрограммирования
- •2. Планирование процессов Понятия о планировании и диспетчеризации процессов
- •Создание процессов
- •Завершение процесса
- •Состояние процесса
- •Алгоритмы планирования
- •Методы планирования
- •Детерминированное планирование
- •Планирование по критерию минимума суммарного времени выполнения работ
- •Стохастическое планирование
- •Последовательный выбор
- •Алгоритм одноуровневого циклического выбора
- •Алгоритм многоуровневого циклического выбора
- •Планирование процессов на основе приоритетов
- •Обслуживание с абсолютными приоритетами
- •3. Синхронизация процессов Цели и средства синхронизации процессов
- •Понятие системные вызовы. Критические секции
- •Синхронизация методом взаимных исключений
- •Метод блокирующей переменной (спин-блокировка)
- •Блокирующей переменной с использованием системного вызова
- •Метод семафоров
- •Условная (барьерная) синхронизация
- •Тупиковые ситуации во взаимодействии процессов и методы их устранения
- •3. Управление памятью Проблемы организации памяти мультипроцессорных вычислительных систем. Функции ос по управлению памятью.
- •Методы защиты памяти
- •Метод граничных ресурсов
- •Метод ключей защиты
- •Защита отдельных ячеек
- •Организация виртуальной памяти
- •Статическое и динамическое распределение памяти. Распределение памяти фиксированными разделами
- •Страничная организация виртуальной памяти
- •Сегментная и сегментно-страничная организация виртуальной памяти
- •Структура страничной таблицы
- •Методы уменьшения времени доступа к памяти Обеспечение быстрого доступа к данным кэш-память
- •Ускорение формирования адреса. Буферы быстрого преобразования адреса
- •Алгоритмы замещения страниц в виртуальной памяти
- •4. Архитектура операционной системы
- •Многослойная структура ос
Моделирование режима мультипрограммирования
Использование многозадачности повышает эффективность загрузки центрального процессора. Так, если средний процесс выполняет вычисления только 20 % от общего времени реализации процесса, а остальное время находится в состоянии ожидания завершения операции ввода-вывода, то при присутствии в памяти одновременно пяти процессов центральный процессор должен быть занят все время [Таненбаум]. Такая модель является достаточно грубой и не учитывает ряд факторов.
Рассмотрим более точную модель загрузки центрального процессора с использованием теории вероятности. Предположим, что процесс проводит часть своего времени в ожидании завершения операции ввода-вывода. Обозначим вероятность этого состояния (бездействия процессора) через р. Если в памяти находится одновременно М процессов, вероятность того, что все М процессов ждут ввод-вывод, равна рМ. Тогда степень загрузки центрального процессора будет выражаться через коэффициент:
ЦП= 1 – рМ.
На рисунке показана зависимость степени загрузки центрального процессора от числа М, называемого коэффициентом мультипрограммирования.
ЦП,%
М
Рисунок 5 - Зависимость коэффициента загрузки ЦП центрального процессора от коэффициента мультипрограммирования М
Из рисунка видно, что если процессы проводят 80 % своего времени в ожидании завершения операции ввода-вывода, то для того, чтобы получить потерю времени процессора ниже 20 %, в памяти должны одновременно находиться более 10 процессов.
Необходимо отметить, что описанная выше вероятностная модель является также не точной. Она неявно предполагает, что все М процессов независимы, то есть допустима следующая ситуация: в памяти находятся пять процессов, из них три работают, а два ждут. Но когда в системе присутствует один центральный процессор, он не может одновременно обрабатывать три процесса, поэтому уже готовый к работе процесс обязан ждать освобождения процессора. Таким образом, в реальности процессы не являются независимыми. Более адекватную модель можно построить с использованием теории массового обслуживания.
Хотя модель на рисунке__ очень проста, тем не менее, она позволяет сделать приблизительную оценку производительности центрального процессора. Например, предположим, что компьютер имеет 32 Мбайт памяти, 16 Мбайт отдано операционной системе, а каждая программа пользователя занимает по 4 Мбайт. При таких заданных размерах одновременно можно загрузить в память четыре пользовательские программы. При 80 % времени на ожидание ввода-вывода в среднем получается загруженность процессора ЦП = 1 - 0,84 или около 60 %. Добавление еще 16 Мбайт памяти позволит системе повысить коэффициент мультипрограммирования до восьми и таким образом повысить степень загрузки процессора до 83 %. Другими словами, дополнительные 16 Мбайт увеличат производительность на 38 %.
Если добавить ещё 16 Мбайт, то загрузку процессора можно повысить с 83 до 93 %, но при этом производительность процессора увеличится всего лишь на 12 %. [Таненбаум].
2.
