- •Системное программное обеспечение Учебное пособие
- •Введение
- •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.7.8.Восстановление после ошибок
Одним из самых важных достоинств мультипроцессорных операционных систем является их способность противостоять аппаратным ошибкам, возникающим в отдельных процессорах, и обеспечивать сохранение работоспособности комплекса. Эти возможности создаются преимущественно благодаря тщательно продуманным программным средствам. Для восстановления работоспособности системы при ошибках применяются различные приемы, в частности:
- Критические данные для системы и для различных процессов должны иметь несколько копий (резервное копирование). Эти копия должны размещаться в отдельных модулях памяти, с тем чтобы отказы индивидуальных компонент не приводили к полному разрушению этих данных.
- Операционная система должна проектироваться таким образом, чтобы она могла эффективно управлять максимальной конфигурацией аппаратных средств, а также и сокращенными конфигурациями в случае отказов.
- В систему следует включать средства обнаружения и исправления аппаратных ошибок, с тем чтобы можно было осуществлять достаточно жесткий контроль, но не мешая эффективной работе системы.
- Незагруженные процессорные ресурсы следует пытаться использовать для обнаружения потенциальных ошибок еще до того, как они возникнут.
- Операционная система должна обеспечивать передачу процесса, выполнявшегося на вышедшем из строя процессоре, на работоспособный процессор.
3.7.9.Перспективы мультипроцессорных систем
Практически все говорит за то, что в будущем применение мультипроцессорных систем и комплексов значительно расширится. Существует много причин для столь оптимистического прогноза.
- Надежность вычислительных машин и комплексов становится все более важным фактором.
- Благодаря достижениям микроэлектроники стоимость процессоров быстро снижается.
- Предполагается значительно более широкое использование языков, которые позволят программистам явно указывать параллелизм.
- Интенсивно развиваются методы автоматического обнаружения параллелизма.
- Однопроцессорные вычислительные машины сейчас приближаются к пределам своих возможностей.
Различные исследования тенденций развития архитектур вычислительных машин указывают на необходимость создания систем, в которых при построении иерархии процессоров сочетаются как симметричные, так и несимметричные связи. Такие системы стали называть полипроцессорами. Независимо от того, какая архитектура будет доминировать в будущих мультипроцессорных вычислительных комплексах очевидно, что она будет существенным образом влиять на операционные системы будущего.
4.Управление внешней памятью и файловые системы
Обеспечение эффективного использования дисковой памяти является важной задачей современной ОС. Доступ к диску для выполнения операций ввода-вывода включает три существенных элемента: поиск цилиндра, поиск записи и передачу записи. Таким образом, время ожидания складывается из:
Tожидания = Tпоиска_цилиндра + Tпоиска_записи + Tпередачи .
Время поиска цилиндра имеет обычно наибольшую длительность, поскольку это связано с механическим перемещением устройства позиционирования головок считывания-записи. Время поиска записи существенно меньше, т.к. зависит от скорости вращения дискового пакета. Высокую скорость вращения обеспечить легче, нежели быстрый прецизионный линейный подвод механизма. По сравнению с первыми двумя слагаемыми время передачи записи можно не учитывать. Большинство методов оптимизации доступа к дисковым накопителям направлены на то, чтобы свести к минимуму как количество, так и длительность поисков цилиндров.
Упорядочение очереди ожидающих запросов с целью минимизации поисков цилиндра называется планированием работы с дисковой памятью. Принцип FIFO не рассматривается как стратегия планирования, т.к. не ведет к минимуму.
Стратегии планирования
- SSTF (с наименьшим временем поиска - первым): следующим выбирается запрос, для которого необходимо минимальное перемещение каретки.
- SCAN (сканирование): каретка движется туда и обратно, обслуживая все запросы, встречающиеся по пути. Направление меняется, если в текущем направлении больше нет запросов.
- C-SCAN (циклическое сканирование): каретка движется снаружи внутрь. Если впереди нет запросов, она скачком возвращается к внешней дорожке.
- N-Step SCAN (N-шаговое сканирование): то же, что и в SCAN, но на каждом проходе обслуживаются только те запросы, которые существуют в момент начала прохода. Запросы, поступающие во время прохода, группируются и упорядочиваются для оптимального обслуживания на обратном ходу - схема Эшенбаха: каретка движется как в C-SCAN. При обслуживании каждого цилиндра осуществляется доступ точно к одной полной дорожке. Предусматривается переупорядочивание запросов для обслуживания в рамках одного цилиндра с учетом углового положения запроса, однако, если два запроса относятся к перекрывающимся секторам одного цилиндра, то обслуживается только один при текущем ходе каретки, т.е. учитывается время поиска записи на дорожке.
Все стратегии преследуют достижение следующих целей:
- максимизация пропускной способности;
- минимизация времени ответа;
- минимизация дисперсии времени ответа.
В условиях больших нагрузок вероятность нескольких одновременных обращений к конкретному цилиндру возрастает, так что становится целесообразным осуществлять оптимизацию не только по поиску цилиндра, но и по времени ожидания записи.
Существует стратегия SLTF (с наименьшим временем ожидания - первым). Также стратегия SCAN c оптимизацией времени ожидания записи является очень эффективной.
Планирование работы с дисковой памятью осуществляется тогда, когда дисковая память является критическим ресурсом, при повышении уровня мультипрограммирования.