- •Системное программное обеспечение Учебное пособие
- •Введение
- •1.Основные понятия
- •1.1.Функции и ресурсы ос
- •1.2.Структура программного обеспечения
- •1.3.Режимы функционирования компьютера
- •1.4.Классификация ос
- •1.5.Состав ос
- •2.Управление памятью
- •2.1. Основная память
- •2.2.Регистровая память
- •2.3.Кэш память
- •2.4.Организация основной памяти
- •2.4.1.Режимы работы процессоров Intel
- •2.4.2.Преобразование логического адреса в физический в реальном режиме
- •2.4.3.Адресация памяти в защищенном режиме
- •2.5.Управление памятью
- •2.5.1.Модели памяти
- •2.5.2.Динамическое распределение памяти
- •2.5.3.Динамическое распределение памяти в windows nt
- •2.5.4.Функции ос по управлению основной памятью
- •2.6.Виртуальная память
- •2.6.1.Преобразование виртуального адреса в реальный
- •2.6.2.Страничная организация
- •2.6.3.Сегментная организация
- •2.6.4.Странично-сегментная организация
- •2.6.5.Сплошная модель памяти flat
- •2.6.6.Функции для доступа к виртуальной памяти
- •2.6.6.1Освобождение виртуальной памяти
- •2.6.6.2Фиксирование страниц основной памяти
- •2.6.7.Стратегии управления виртуальной памятью
- •2.6.7.1Определение оптимального размера страниц
- •2.6.7.2Поведение программ при подкачке страниц
- •3.Процессы и задачи. Мультипроцессорные системы
- •3.1.Управление процессами
- •3.1.1.Блок управления процессом (pcb)
- •3.1.2.Управление асинхронными параллельными процессами
- •3.2.Мультизадачность
- •3.2.1.Виды мультизадачности:
- •3.2.2.Процессы и задачи
- •3.2.3.Распределение времени между задачами
- •3.2.4.Процессовая мультизадачность
- •3.2.5.Потоковая мультизадачность
- •3.2.6. Синхронизация задач
- •3.2.6.1Ожидание завершения задачи или процесса
- •3.2.6.2Синхронизация с помощью событий
- •3.2.7.Взаимоисключение
- •3.2.7.1Критические секции в программном интерфейсе windows
- •3.2.7.2Блокирующие функции
- •3.2.8.Семафоры
- •3.3.Тупики
- •3.3.1.Условия возникновения тупика
- •3.3.2.Предотвращение тупиков
- •3.3.3. Обход тупиков
- •3.3.4.Обнаружение тупиков
- •3.3.5.Восстановление после тупика
- •3.4.Средства обеспечения мультизадачности в защищенном режиме работы процессора Intel
- •3.4.1.Переключение задач
- •3.5.Обработка прерываний
- •3.5.1.Обработка прерываний в защищенном режиме
- •3.5.2.Обработка аппаратных прерываний
- •3.6.Управление потоками заданий. Планирование заданий и загрузка процессоров
- •3.6.1.Цели планирования
- •3.6.2.Критерии планирования
- •3.6.3.Дисциплины планирования
- •3.6.4.Многоуровневые очереди с обратными связями
- •3.7.Мультипроцессорные архитектуры. Планирование загрузки ресурсов
- •3.7.1.Параллелизм
- •3.7.2.Цели мультипроцессорных систем
- •3.7.3.Автоматическое распараллеливание
- •3.7.3.1Расщепление цикла
- •3.7.3.2Редукция высоты дерева
- •3.7.4.Мультипроцессорные операционные системы
- •3.7.5.Организация мультипроцессорных операционных систем
- •3.7.6.Производительность мультипроцессорных систем
- •3.7.7.Экономическая эффективность мультипроцессорных систем
- •3.7.8.Восстановление после ошибок
- •3.7.9.Перспективы мультипроцессорных систем
- •4.Управление внешней памятью и файловые системы
- •4.1.Структура дискового тома. Таблица разделов
- •4.2.Управление данными
- •4.2.1.Организация данных
- •4.2.2.Методы доступа
- •4.3. Файловые системы
- •4.3.1.Файловая система fat
- •4.3.2.Файловая система fat32
- •4.3.3.Функции windows api для работы с директориями
- •4.3.4.Файловая система windows 95
- •4.3.5.Файловая система нpfs (os/2)
- •4.3.5.1 Структура тома
- •4.3.5.2Файлы и Fnodes
- •4.3.5.3Каталоги
- •4.3.5.4Расширенные атрибуты
- •4.3.5.5Инсталлируемые файловые системы
- •4.3.5.6Проблемы эффективности
- •4.3.5.7Отказоустойчивость
- •4.3.6.Файловая система ntfs (Windows nt)
- •4.3.6.1Главная файловая таблица
- •4.3.6.2Атрибуты файла ntfs
- •4.3.6.3Длинные и короткие имена файлов
- •4.3.6.4Потоки данных
- •4.3.6.5Согласованность с posix
- •4.4.Асинхронные операции с файлами
- •4.5.Файлы, отображаемые на память
- •4.5.1.Создание отображения файла
- •4.5.2.Выполнение отображения на память
- •5.Средства ввода информации
- •5.1.Аппаратные и программные средства ввода информации с клавиатуры
- •5.1.1.Анализ и преобразование скэн-кода
- •5.1.2.Буфер клавиатуры
- •5.1.3.Схема работы буфера
- •5.1.4.Ввод информации с клавиатуры в Windows
- •5.1.4.1Поддержка горячих клавиш (нot-key)
- •5.1.4.2Языки и локализация
- •5.2.Управление манипулятором "мышь"
- •5.2.1.Аппаратные средства манипулятора
- •5.2.2.Программная поддержка "мыши" (на примере ms dos)
- •5.2.3.Основные функции интерфейса программы с манипулятором "мышь" (int 33н)
- •5.2.4.Чтение позиции курсора и состояния кнопок "мыши"
- •5.2.5.Управление мышью в приложениях Windows
- •5.2.5.1Обработка двойного щелчка (Double-Click Messages)
- •5.2.5.2Сообщения неклиентской области
- •5.2.5.3Активизация окна
- •6.Сетевые операционные системы
- •Литература
- •Оглавление
- •Учебное издание
- •394026 Воронеж, Московский просп., 14
3.6.Управление потоками заданий. Планирование заданий и загрузка процессоров
Управление потоками заданий главной своей задачей имеет увеличение пропускной способности центрального процессора, т.е. максимальную загрузку центрального процессора системы. Планирование потоков заданий возможно на трех уровнях:
1) верхний уровень определяется совокупностью заданий, которым будет разрешено активно конкурировать за захват ресурсов. Этот вид планирования называют планированием допуска, поскольку тут определяется, какие задания будут допущены в систему. Вошедшие в это множество задания становятся процессами;
2) промежуточный уровень определяется множеством процессов, которым будет разрешено состязаться за захват ЦП. Формирование этого списка осуществляется за счет механизмов приостановки/возобновления. Планировщик промежуточного уровня отслеживает текущие колебания системной нагрузки, приостанавливая и вновь активизируя процессы, что обеспечивает равномерную работу всей системы и способствует достижению желаемых скоростных характеристик. Алгоритмы планировщика этого уровня должны своевременно оценивать складывающуюся ситуацию;
3) нижний уровень обеспечивает выбор одного процесса (задачи), которому будет представлен ЦП. Планирование на нижнем уровне называется диспетчеризацией. Планировщик нижнего уровня (диспетчер задач) наиболее критичен к времени выполнения, поскольку он включается по завершении каждого кванта времени, предоставляемого пользовательскому процессу.
3.6.1.Цели планирования
Планирование заданий обычно осуществляется в соответствии с некоторой дисциплиной. Выбранная дисциплина планирования должна обеспечивать выполнение следующей совокупности целей:
1) быть справедливой. Дисциплина считается справедливой, если ко всем процессам она относится одинаково и ни один процесс не будет отложен на бесконечное время;
2) обеспечивать максимальную пропускную способность системы. Количество заданий, обслуженных за единицу времени должно быть возможно максимальным;
3) обеспечивать минимальное время ответа (для интерактивных систем);
4) быть предсказуемой, т.е. одно и то же задание должно выполняться в разных сеансах приблизительно за одно и то же время;
5) минимизировать накладные расходы (расходы ресурсов на организацию вычислительного процесса). Данное требование оспаривается рядом специалистов, поскольку даже достаточно высокий уровень накладных расходов вполне может обеспечивать стабильную эффективность использования системы;
6) сбалансировать использование ресурсов. Механизмы планирования ресурсов должны стремиться к повышению коэффициента использования системных ресурсов. Предпочтение должно оказываться тем процессами, которые будут занимать недогруженные ресурсы;
7) обеспечивать баланс между временем ответа и коэффициентом использования ресурсов (для интерактивных систем). Баланс обеспечивается за счет некоторой недогрузки ресурсов, что позволит их сразу же использовать для выравнивания времени реакции на запрос пользователя;
8) исключать бесконечное откладывание. При наличии большого потока заданий необходимо обеспечить выталкивание этих процессов. Это возможно при учете старения процесса - чем дольше процесс ожидает некоторый ресурс, тем выше приоритет ему назначается;
9) учитывать приоритеты;
10) оказывать предпочтение процессам, занимающим ключевые ресурсы. Оценка ключевого ресурса, т.е. такого, который может оказать принципиальное влияние на общую производительность системы, должна осуществляться планировщиком нижнего уровня;
11) создавать лучшие условия для процессов с примерным поведением (предсказуемо и стабильно). Например, лучшие условия работы должны создаваться для процессов, требующих менее частой подкачки страниц;
12) характеризоваться постепенностью снижения работоспособности при увеличении нагрузок. Механизм планирования не должен сразу же терять работоспособность под тяжестью большой системной нагрузки. Планирование всех уровней ориентировано на защиту действующей части системы от превышения нагрузки. Уровень обслуживания процессов может постепенно снижаться, но ни в коем случае не должен завершаться катастрофой.
Противоречия сформулированных целей говорят, прежде всего, о сложности задачи планирования и необходимости компромиссов при ее решении.