Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ОС 1 семестр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
975.87 Кб
Скачать

Буферизация операций ввода-вывода

Необходимость буферизации диктуется следующими проблемами:

  1. При страничной организации данных, страница памяти, в которую считываются данные с внешнего устройства ( или наоборот) должна на все время операции ввода-вывода оставаться в ОП. Однако если в это время нужна выгрузка процесса из ОП, то страница должна блокироваться и не выгружаться. Это усложняет работу с виртуальной памятью.

  2. При выполнении операции ввода-вывода процесс приостанавливает работу и выгружается из ОП в виртуальную, где ожидает завершения операции ввода-вывода. Однако, т.к. вместе с процессом из ОП выгружена и сама страница, то некуда выводить данные и ввод-вывод блокируется, образуется взаимная блокировка: процесс ждет завершения операции ввода-вывода, а операция ввода-вывода ждет появления страницы в памяти. Поэтому, процесс должен быть заблокирован и оставаться в ОП, хотя операция ввода-вывода может быть выполнена не сразу, а поставлена в очередь.

Для эффективности работы можно выполнить чтение блока данных в специальное место памяти – буфер, а затем удалить страницу из ОП. При этом устройство будет считывать и сохранять данные не в память процесса, а в буфер. Такая схема называется буферизацией операций ввода-вывода.

  1. Одинарная буферизация. Часть ОП в системной области отводится для процесса как буфер. Данные сначала отправляются в буфер, а затем в устройство ( или наоборот, из устройства в буфер, а затем в ОП). После считывания 1 блока из буфера в ОП процесс начинает его обработку, а в это время параллельно идет считывание в буфер следующего блока из внешнего устройства ( в предположении, что именно он и потребуется т.к. считывание данных с устройства чаще всего выполняется последовательного числа блоков). За счет этого и происходит ускорение ввода-вывода.

устройство

буфер

Страница в ОП

  1. Двойная буферизация ( сменный буфер). Если использовать не 1 , а 2 буфера, то операции ввода-вывода можно еще ускорить. Во время считывания данных из первого буфера в ОП процесса можно одновременно выполнять считывание данных с устройства во 2 буфер

  1. Циклическая буферизация

При двойной буферизации скорости считывании из буфера в ОП и из устройства в буфер отличаются, что приводит к торможению работы процесса. Поэтому используется еще система циклических буферов, когда буферов не 2 , а несколько, и считывание из них в ОП выполняется последовательно по кругу. Такая буферизация сглаживает разницу в скорости считывания из ОП и из устройства и ускоряет работу процессов

устройство

буфер 1

страница

буфер 2

1

2

..........

буфер n

n

Дисковое планирование

Для эффективного управления запросов к жесткому диску нужно учитывать особенности считывания ( записи) информации с HDD . Основную задержку составляет время доступа, которое состоит из:

- времени поиска ( установка головки диска на нужную дорожку) и

- времени задержки из-за вращения ( поиск на дорожке нужного сектора и позиционирование на его начало).

Эти параметры зависят от:

    1. физического устройства диска: его размеров и скорости вращения

    2. планирования поиска секторов по поступающим запросам.

Запросы к диску можно представить как запросы на считывание секторов с разных номеров дорожек. Например, запросы могут быть в такой последовательности номеров дорожек: 120, 158, 31, 60, 2, 83, 14

Для обработки всех этих запросов используются разные способы планирования:

FIFO ( first input first output) - это обработка всех запросов последовательно т.е. в том порядке как они расположены в очереди запросов. Самый простой способ, но время перемещения от дорожки 158 к дорожке 31, а затем к дорожке 60 будет больше, чем, например, от 158 – 60 – 38. Поэтому время передачи данных с диска будет не оптимальным. Разновидностями Fifo планирования являются обработка запросов по приоритетам (PRI) и обработка не первого поступившего, а последнего (LIFO).

PRI ( priority) – планирование обработки по приоритету запросов: из всей очереди выбираются те запросы для выполнения, которые имеют максимальный приоритет. Оно позволяет ускорить обработку наиболее важных запросов, но может оказаться, что некоторые процессы будут в «вечном» ожидании т.к. их приоритет все время будет ниже, чем других.

LIFO (Last input first output )–планирование используется при системе транзакций ( запись в специальный файл последних изменений). В этом случае выбираются запросы, которые поступили самыми последними. Однако, при этом подходе тоже возможно «вечное» ожидание.

SSTF (Shortest Service Time First)– планирование означает выбор тех запросов, которые минимально требуют перемещения головки. При таком планировании наиболее минимально используется время доступа, но возможны ситуации «вечного» ожидания.

SCAN – планирование частично решает проблему «вечного» ожидания за счет того, что выбираются не наиболее близкие дорожки, а наиболее близкие в одном направлении ( т.е. головка перемещается в направлении увеличения номеров дорожек), а по достижения крайней требуемой дорожки в этом направлении, направление меняется на обратное.

SCAN-разновидности –для решения «вечного» ожидания ( голодания) последовательность запросов разбивается на сегменты ( или несколько очередей) и выполняется полностью один сегмент, а только затем следующий. При этом в пределах каждого сегмента планирование выполняется по методу SCAN.

Вопросы на закрепление

  • Назначение буферизации. Принцип действия одинарной буферизации

  • Принцип работы двойной и циклической буферизации

  • Планирование FIFO и две его разновидности (PRI ,LIFO)

  • Отличие планирования SSTF от SCAN