- •Системное программное обеспечение Учебное пособие
- •Введение
- •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.4.1.Переключение задач
Переключение возможно по командам JMP, CALL и по прерыванию.
В первом и втором случаях операндом является адрес TSS вызываемой задачи. Если переключение производится по команде JMP, то для возврата к выполнению первой задачи необходимо вновь использовать JMP с адресом ее TSS в качестве операнда. Команда CALL позволяет организовать вызов вложенных задач. Обратное переключение задач происходит по команде IRET. Адрес TSS для возврата команда IRET берет из поля LINK текущего сегмента TSS. При переключении командой CALL в поле EFLAGS сегмента TSS вызванной задачи устанавливается в 1 бит вложенной задачи NT. Команда JMP, если она использована для переключения задачи, сбрасывает бит NT. Вентили задач, вызываемых по команде CALL, располагаются в GDT или LDT.
Переключение по прерыванию обеспечивается размещением вентиля задачи в IDT.
3.5.Обработка прерываний
Прерывание — это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Выполняемый процесс приостанавливается и управление передается программе обработки прерывания. Точнее так:
- процесс переводится в состояние блокировки;
- управление передается операционной системе;
- ОС запоминает состояние процесса в PCB;
- ОС анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания.
Типы прерываний
1. SVC—прерывания (супервизорные прерывания), обращение к операционной системе. Инициатор - работающий процесс, выполняющий команду SVC, т.е. осуществляющий запрос на предоставление конкретной системной услуги - выполнения операции ввода-вывода, изменения размера памяти и т.п.
2. Прерывания ввода-вывода — инициируются аппаратурой ввода-вывода. Сигнализируют об изменении состояния устройств ввода-вывода.
3. Внешние прерывания — истечение кванта времени, сигнал прерывания от другого процессора.
4. Прерывания по рестарту — перезагрузка ОС.
5. Прерывания по контролю (ошибке) программы — вызываются ошибками, обнаруженными при выполнении процесса: деление на нуль, попытка выполнения привилегированной команды и т.д.
6. Прерывания по контролю (ошибке) машины — аппаратные ошибки. Для каждого типа прерываний предусмотрены обработчики прерываний. (IН — Interrupt Нandler). При обработке прерываний используются слова состояния программы (Process Status Word - PSW), которые управляют порядком выполнения команд и содержат информацию о состоянии процесса.
Существуют:
- текущее PSW;
- новое PSW;
- старое PSW.
В текущем PSW содержится адрес следующей команды, подлежащей выполнению. Кроме того, в нем указаны типы разрешенных и запрещенных прерываний (на данный момент). Центральный процессор реагирует только на разрешенные прерывания, однако ему нельзя запретить реагировать на прерывания типов 1, 4, 5. Для каждого типа прерываний создается новое PSW с адресом IН. При прерывании аппаратно происходит переключение PSW:
- текущее PSW становится старым PSW для прерываний этого типа;
- новое PSW для прерываний этого типа становится текущим PSW.
После завершения работы IН старое PSW для прерываний этого типа становится текущим PSW и прерванный процесс продолжается.