- •Системное программное обеспечение Учебное пособие
- •Введение
- •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.4.Многоуровневые очереди с обратными связями
Механизм планирования должен:
- оказывать предпочтение коротким заданиям;
- оказывать предпочтение заданиям, лимитируемым вводом-выводом, чтобы обеспечить хороший коэффициент использования внешних устройств;
- как можно быстрее определить характер задания и начать планирование выполнения этого задания.
Этих целей достигают многоуровневые очереди с обратными связями (рис. 18). Это схема, которая наиболее эффективна для систем, где выполняются смеси разнообразных заданий. Новые процессы поступают в сеть очередей с очень высоким начальным приоритетом и быстро обслуживаются, если они являются либо интерактивными, либо лимитируемыми вводом-выводом. Процессы, лимитируемые ЦП, полностью используют квант времени, а затем переходят в конец очереди следующего, более низкого приоритета уровня. Чем дольше процесс занимает ЦП, тем ниже становится его приоритет, пока процесс не опускается в очередь самого низкого приоритета, которая реализует принцип RR, где он и завершается. Размер кванта обычно увеличивается по мере перехода процесса в каждую следующую очередь.
Рис. 18. Схема многоуровневых очередей с обратными связями
Таким образом, чем дольше процесс находится в системе, тем больше времени ЦП ему выделяется. Однако частота получения ЦП снижается, поскольку процессы, обслуживаемые на верхних уровнях, имеют более высокие приоритеты.
Сеть многоуровневых очередей - это пример адаптивного механизма планирования. Он позволяет разделять процессы на категории в соответствии с их потребностями во времени ЦП. В системе с разделением времени каждый раз, когда процесс выходит из системы, он может быть помечен признаком очереди самого низкого уровня, в которой он побывал. Когда этот процесс впоследствии вновь войдет в сеть очередей, он будет направлен прямо в ту очередь, в которой он последний раз завершал свою работу. То есть планировщик оценивает перспективу поведения процесса по его поведению в недавнем прошлом. Поэтому процесс, лимитируемый ЦП, при возвращении в сеть очередей не будет помещаться в очереди более высоких уровней, где он только мешал бы обслуживать короткие процессы высокого приоритета или процессы, лимитируемые вводом-выводом.
Однако, если процессы всегда помещать на самый низкий уровень, который они занимали прошлый раз, то система не сможет реагировать на изменения характера процесса, например на то, что процесс, бывший по преимуществу вычислительным, становится "обменным" (это вполне соответствует реальной картине: большинство задач решается по схеме "ввод данных - вычисление - вывод результатов"). Эту проблему можно решить, если в блоке управления процессом указывать долю использования кванта времени ЦП. Неполное использование кванта времени дает основания для перемещения процесса на один уровень вверх по сети очередей.
3.7.Мультипроцессорные архитектуры. Планирование загрузки ресурсов
Одна из важных тенденций развития современной вычислительной техники состоит в расширенном внедрении мультипроцессорных систем (архитектур), т. е. построении вычислительных комплексов, содержащих несколько процессоров. Мультипроцессорные архитектуры реализуются в вычислительных системах уже в течение нескольких десятилетий, однако сейчас интерес к ним обостряется в связи с появлением недорогих микропроцессоров.
Микропроцессоры позволили получать процессорное время по номинальной цене, а их малые габариты делают вполне обоснованной постановку вопроса о комплексировании многих подобных устройств в единой системе. В настоящее время вполне можно представить себе систему, построенную с использованием нескольких сотен микропроцессоров. А дальнейшее развитие техники обеспечит, по-видимому, возможность создания систем, содержащих тысячи и даже миллионы процессоров.
Представление о процессоре как о наиболее важном ресурсе вычислительной системы, обычное для первых десятилетий развития современной вычислительной техники, сейчас практически устарело.
В настоящее время с появлением мультипроцессорных архитектур гораздо большее значение приобретают проблемы надежности, параллелизма в вычислениях, оптимальных систем коммутации и состязаний между процессорами, пытающимися получить доступ к одним и тем же ресурсам.
Одно из основных достоинств мультипроцессорных систем состоит в том, что в случае выхода из строя одного процессора оставшиеся процессоры могут продолжать работать. Однако само собой это не происходит. Для этого требуется тщательная проработка конструкции системы. Вышедший из строя процессор должен каким-то образом проинформировать другие процессоры о том, что они должны принять на себя его нагрузку. Работоспособные процессоры должны быть в состоянии обнаружить процессор, который вышел из строя. Операционная система должна заметить, что какой-то конкретный процессор отказал и его необходимо исключить из списка распределяемых ресурсов. Кроме того, поскольку общий объем ресурсов теперь уменьшился, операционная система должна несколько перестроить свои стратегии распределения ресурсов, чтобы предотвратить возможность перегрузки системы.