- •Организация вычислительного процесса ос. Концепция процессов и потоков.
- •Мультипрограммирование.
- •Создание процессов и потоков, их модели.
- •Планирование заданий, процессов и потоков.
- •Физическая организация памяти.
- •Функции ос по управлению памятью.
- •Распределение памяти.
- •Распределение памяти фиксированными разделами. Применяют 2 основные модели.
- •Распределение памяти динамическими разделами.
- •Динамическое распределение памяти перемещаемыми разделами.
- •Аппаратная поддержка перемещения.
- •Методы структуризации виртуального адресного пространства.
- •Страничная организация виртуальной памяти.
- •Сегментная организация виртуальной памяти.
- •Сегментно-страничная организация виртуальной памяти.
- •Подсистема ввода-вывода
- •Типы устройств по принципам функционирования
- •Основные функции подсистемы ввода-вывода
- •Организация параллельной работы устройств ввода-вывода и процессора
- •Согласование скоростей обмена и кэширования данных:
- •Разделение устройств и данных между процессами:
Согласование скоростей обмена и кэширования данных:
При обмене данными возникает задача согласования разноскоростных устройств. Решение этой задачи достигается буферизацией данных. Возможно использовать буферизацию в ОЗУ, однако ее применение ограничивается относительно небольшим размером буфера и большой разницей скоростей работы ОЗУ и устройств ввода-вывода.
Для увеличения объема буфера и снижения его скорости работы часто используют винчестер, создавая на нем специальный дисковый файл, используемый в качестве буфера (спул файл/спулинг файл).
Другим решением может быть использование большой буферной памяти в контроллере устройства. Это позволяет избежать медленных операций чтения/записи на диск и значительно повысить скорость работы. Например, графические платы используют буферную память соизмеримую по объему с ОЗУ и превосходящую ее по скорости работы.
Простейший тип поддержки со стороны ОС представлен одинарным буфером. В тот момент, когда процесс выполняет запрос ввода-вывода, ОС назначает ему буфер в ОЗУ. Сначала осуществляется передача входных данных в системный буфер. Затем процесс перемещает блок в пользовательское пространство и запрашивает следующий блок данных. Это называется опережающим считыванием (упреждающим вводом). За счет этого увеличивается скорость, так как процесс может обрабатывать один блок данных в то время, когда идет загрузка следующего блока ввода в буфер.
Улучшение данной схемы возможно путем использования двух буферов. Это позволяет осуществлять передачу данных в один буфер, в то время как ОС освобождает другой. Двойная буферизация избавляет процесс от необходимости ожидания завершения операции ввода-вывода.
Если двойной буферизации недостаточно, применяют подход, основанный на наращивании количества буферов. Если буферов больше двух, система называется циклической буферизацией.
Разделение устройств и данных между процессами:
Устройство ввода-вывода могут предоставляться процессом как в монопольном, так и в совместном режиме.
ОС может контролировать доступ не только к устройству в целом, но и к отдельным блокам информации хранимом на этом устройстве. Задачей ОС является оптимизация последовательностей операций ввода-вывода для повышения общей производительности. При разделении устройства между несколькими процессами организуется очередь заданий на вывод, при этом каждое задание представляет собой порцию данных защищенную от других Очередь данных хранится в спул файле.