- •Системное программное обеспечение Учебное пособие
- •Введение
- •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
2.6.7.1Определение оптимального размера страниц
От выбора размера страниц зависит эффективность вычислительного процесса. Вот некоторые соображения, которые позволят принять решение разработчику системы управления виртуальной памятью:
1. Малый размер страниц приводит к увеличению таблиц отображения и к табличной фрагментации.
2. Большой размер страницы приводит к записи в основную память команд и данных, которые могут не понадобиться.
3. Обмен данными с дисковой памятью более эффективен при большом размере страниц.
4. Свойство локальности распространяется на небольшие участки.
5. При малых размерах страниц потери памяти на внутреннюю фрагментацию (то есть наличие не полностью занятых страниц) уменьшаются. В целом страницы должны быть небольшими (не более 1К слов).
2.6.7.2Поведение программ при подкачке страниц
Результаты экспериментов:
1. В начале выполнения процесса происходит быстрое обращение к большому числу страниц. Это означает, что процесс формирует для себя среду пользования данными из разных точек виртуального адресного пространства, создавая рабочее множество. Постепенно включается свойство локальности и интенсивность обращения к новым страницам снижается. Процесс асимптотически приближается к 100%-ному использованию своих страниц. Однако этот предел достигается далеко не всегда: некоторые страницы (например, содержащие код процедур обработчиков ошибок) при некоторых обстоятельствах никогда не будут загружены в память.
2. Количество прерываний по отсутствию нужной страницы увеличивается с увеличением размера страницы при постоянном объеме реальной памяти.
3. Частота прерываний по отсутствию нужной страницы уменьшается с увеличением количества кадров, выделенных процессом.
4.Число команд, выполняемых на странице, обычно не велико (<=200 команд на странице в 1К слов).
3.Процессы и задачи. Мультипроцессорные системы
3.1.Управление процессами
Процессом называется программа (приложение) в стадии выполнения. Каждый процесс имеет свое адресное пространство. В период своего существования процесс проходит через ряд дискретных состояний: - процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор; - процесс находится в состоянии готовности, если он мог бы сразу использовать центральный процессор, предоставленный в его распоряжение; - процесс находится в состоянии блокировки, если он ожидает некоторого события, например, завершения операции ввода/вывода, чтобы получить возможность продолжить выполнение.
В однопроцессорной системе в каждый момент времени может выполняться один процесс, несколько процессов могут находиться в состоянии готовности и состоянии блокировки. Система создает списки готовых к выполнению и заблокированных процессов. Список готовых процессов упорядочен по приоритету, а значит, существует очередь готовых процессов. Список заблокированных процессов не упорядочен.
Заблокированные процессы переводятся в список готовых процессов по мере наступления событий, которых они ожидают.
Для повышения гибкости управления процессами в некоторых системах вводят два дополнительных состояния:
- приостановлен-заблокирован
- приостановлен-готов.
С помощью этих состояний процессы временно исключаются из списков готовых и заблокированных процессов.
Смену состояний процесса могут вызывать различные события. Когда в систему поступает задание, она создает процесс и устанавливает его в соответствии с выделенным приоритетом в список (очередь) готовых процессов. По мере выборки процессов на выполнение происходит продвижение в очереди. Перевод процесса из состояния готовности в состояние выполнения называется запуском.
Рис. 14. Переход процесса из одного состояния в другое.
Чтобы предотвратить случайный либо умышленный монопольный захват ресурсов одним процессом, операционная система устанавливает в таймере прерываний некоторое значение, определяющее временной интервал (квант времени). Если процесс добровольно не освободит центральный процессор до истечения кванта, то таймер вырабатывает сигнал прерывания, по которому управление передается ОС. Выполнявшийся процесс переводится в список готовых процессов, а первый в списке получает центральный процессор. Если процессу требуется выполнение операции ввода/вывода, он добровольно освобождает центральный процессор и блокируется. Наступление события, которое ожидает заблокированный процесс, переводит этот процесс в состояние готовности.
Единственная смена состояния, инициируемая самим процессом - это блокирование, остальные три смены состояния инициируются объектами, внешними по отношению к данному процессу.
Перевод в дополнительные состояния "приостановлен - заблокирован" и "приостановлен - готов" называется приостановкой, а возврат в исходное состояние - возобновлением. Перевод процесса в состояние приостановки используют в тех случаях, когда нахождение процесса в очереди не обеспечивает требуемого уровня производительности либо полностью блокирует работу системы.