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