- •Системное программное обеспечение Учебное пособие
- •Введение
- •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
1.5.Состав ос
Чаще всего ОС состоит из относительно компактного ядра (монитора) и набора системных программ и данных (рис. 4).
Рис. 4. Состав ОС (ВНИ - внешние носители информации)
Ядро включает те функции ОС, которые нужны постоянно. Возможности ядра изменяются от выполнения небольшого числа простых команд, вводимых пользователем с дисплея, до управления в реальном времени различными устройствами.
Типичными функциями ядра являются:
- организация взаимодействия пользователя с компьютером;
- управление распределением ресурсов;
- обеспечение требуемого режима функционирования ЭВМ;
- запуск и контроль выполнения системных и прочих программ;
- слежение за выполнением операций обмена данными;
- управление файлами.
Все ядро или некоторая его часть, называемая резидентным монитором, постоянно находится в ПЗУ от момента загрузки ОС до завершения ее работы. Алгоритм работы простейшего монитора приведен на рис. 5. Другие, нерезидентные части загружаются в оперативную память из внешней памяти по мере необходимости. После выполнения оперативная память освобождается.
Рис. 5. Схема работы простейшего монитора
Программы обслуживания внешних носителей информации позволяют копировать и сравнивать содержимое носителей, а также выполнять другие операции с носителями и отдельными файлами.
Сервисные программы (утилиты) облегчают подготовку исходной информации, организацию хранения и использования программ.
Библиотеки программ содержат наиболее часто используемые программы. Программы компонуются в библиотеки по назначению.
2.Управление памятью
2.1. Основная память
Память - важнейший ресурс вычислительной системы. В памяти располагается как сама операционная система, так и те задачи, которые должны быть выполнены. Различают:
1. Реальную память.
2. Виртуальную память. При этом основная память моделируется на НМД. Виртуальная память может во много раз превышать реальную.
Существует следующая иерархия видов памяти (рис. 6):
Рис. 6. Виды памяти
2.2.Регистровая память
Регистры используются для хранения исходных данных или операндов и результатов машинных команд. Регистры являются основным элементом процессора вычислительной системы, за счет этого достигается высокая производительность работы с регистрами.
Регистры процессора Intel
В состав процессора Intel входят:
- регистры общего назначения;
- регистры-указатели;
- сегментные регистры;
- регистр флагов;
- отладочные регистры;
- управляющие регистры;
- рабочие регистры.
Регистры общего назначения в современных процессорах Intel 32-хразрядные и имеют имена EAX, EBX, ECX и EDX. Их младшие 16 разрядов именуются соответственно AX, BX, CX и DX.
Регистры-указатели:
- программный счетчик EIP служит для хранения адреса следующей машинной команды. Полный логический адрес задается в сочетании с сегментным регистром CS;
- индексные регистры ESI, EDI используются в цепочечных примитивах, т.е. в командах, которые позволяют выполнить обработку последовательности или цепочки байт (например, команда копирования блока памяти). Особенность: их значение меняется автоматически, без участия программы. Адрес источника цепочки команд задается в виде: DS:ESI, а адрес результата: ES:EDI;
- указатель вершины стека ESP. Полный адрес вершины стека формируется с участием сегментного регистра SS (SS:ESP);
- указатель дна стека EBP.
Сегментные регистры служат для формирования логических адресов. Разрядность 2 байта (16 разрядов):
- сегмент кода CS;
- сегмент данных DS:
- дополнительные сегменты данных ES, FS, GS:
- сегмент стека SS.
Регистр флагов EFLAGS (рис. 7) показывает состояния процессора после выполнения очередного машинного цикла. Через регистр флагов можно оказать воздействие на выполнение машинного цикла, т.е. установить флаги управлений. Имеет 32 разряда, биты этого регистра закреплены за отдельными флагами.
Рис. 7. Структура регистра флагов
Флаги управления:
- флаг трассировки TF. TF=1 - позволяет переключить процессор в пошаговый режим;
- флаг разрешения прерываний IF: 1 - разрешение прерывания, 0- запрет;
- флаг направления DF управляет направлением изменения индексных регистров в цепочке команд: 1- декремент (уменьшение адреса), 0 - инкремент (увеличение адреса).
- уровень привилегий ввода/вывода IOPL позволяет отследить уровень защиты, установленный для операций ввода-вывода;
- флаг вложенной задачи NT применяется в мультизадачных режимах;
- флаг возобновления RF позволяет инициировать процедуру рестарта;
- флаг режима виртуального процессора 8086 VM. С помощью этого флага выполняется перевод процессора в данный виртуальный режим;
- флаг проверки выравнивания AC добавлен в процессорах начиная с 80486.
Флаги условий:
- флаг переноса (Carry Flag) CF устанавливается в 1, если при выполнении команды возникает перенос из старшего разряда результата;
- флаг четности (паритета) PF устанавливается в 1, когда младшие 8 бит результата содержат четное число единиц;
- флаг дополнительного переноса AF используется в операциях двоично-десятичной арифметики и устанавливается в 1 при переносе из третьего разряда;
- флаг нуля ZF устанавливается в 1 при получении нулевого результата;
- флаг знака SF: 1 - результат отрицательный, 0 - результат положительный;
- флаг переполнения OF устанавливается в 1 при возникновении переполнения;
Остальные разряды регистра флагов зарезервированы.
Отладочные регистры DRi. Их число изменяется от 4 до 8 в зависимости от модификации процессора. Отладочные регистры используются утилитами тестирования аппаратуры и средствами отладки систем программирования.
Управляющие регистры CRi (i=1..3) используются системой управления памятью процессора, хранят структуры, которые позволяют переключать режим процессора, устанавливать вид грануляции памяти (оперирование отдельными байтами или страницами памяти), переключать механизм трансляции страниц. С помощью одного из управляющих регистров задается адрес каталога таблиц страниц процессора.
Рабочие регистры программно недоступны, используются процессором для организации выполнения потока команд. Например, в процессоре Pentium Pro - 40 рабочих регистров.