Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_4.ppt
Скачиваний:
252
Добавлен:
11.04.2015
Размер:
5.04 Mб
Скачать

4.2.3. Согласование скоростей обмена и кэширование данных

Когда она завершится, процесс перемещает

T C

блок в пользовательское пространство и немедленно производит запрос следующего блока.

Такая процедура называется опережающим считыванием или упреждающим вводом.

Улучшить схему одинарной буферизации можно путем использования двух системных. Теперь процесс выполняет передачу данных в один буфер (или считывает из него), в то время как ОС освобождает (или заполняет) другой. Эта технология известна как

двойная буферизация, или сменный буфер.

Операционные системы

41

4.2.3. Согласование скоростей обмена и кэширование данных

Двойной буферизации может оказаться

T

C

недостаточно, если процесс часто выполняет ввод или

вывод.

 

Решить проблему помогает

наращивание

количества буферов. Если буферов больше двух, схема именуется циклической буферизацией.

Операционные системы

42

Время обработки блока данных

Без буферизации

T + C

Одинарная буферизация

max {T, C} + M

в большинстве случаев

T + C > max {T, C}

Двойная буферизация

max {T, C}

если C <= T, то блочно-ориентированное устройство может работать с максимальной скоростью;

если C > T, то процесс избавляется от необходимости ожидания завершения ввода-вывода.

Буферизация данных позволяет сократить количество реальных операций ввода за счет кэширования данных.

Операционные системы

43

4.2.3. Согласование скоростей обмена и кэширование данных

Буферы (буфер) являются критическим ресурсом в

T C

отношении внутренних (программных) и внешних процессов (аппаратуры ввода-вывода), которые при параллельном своем выполнении информационно взаимодействуют.

Через буферы данные либо посылаются от некоторого процесса к адресуемому внешнему (операция вывода данных на внешнее устройство), либо от внешнего процесса передаются некоторому программному процессу (операция считывания данных).

Операционные системы

44

4.2.3. Согласование скоростей обмена и кэширование данных

Управления системными буферами как средствами

T C

информационного взаимодействия решается супервизорной частью операционной системы.

Супервизор решает следующие задачи: выделение и освобождению буферов в системной области памяти; синхронизация процессов в соответствии с состоянием операций заполнения или освобождения буферов; организация ожиданию процессов, если свободных буферов в наличии нет, а запрос на ввод- вывод требует буферизации.

Операционные системы

45

4.2.3. Согласование скоростей обмена и кэширование данных

Супервизор ввода-вывода для перечисленных задач T использует средства синхронизации, принятые операционной системе.

решения

C

стандартные

вданной

Операционные системы

46

4.2.3. Согласование скоростей обмена и кэширование данных

Необходимость кэширования. C

T

Накопители на магнитных дисках обладают крайне низким быстродействием по сравнению с процессорами и оперативной памятью.

Средняя скорость работы процессора с оперативной памятью на 2-3 порядка выше, чем средняя скорость передачи данных из внешней памяти на магнитных дисках в оперативную память.

Для того чтобы сгладить такое сильное несоответствие в производительности основных подсистем, используется буферизация и/или кэширование данных в дисковом кэше (disk cache).

Операционные системы

47

4.2.3. Согласование скоростей обмена и кэширование данных

Простейший вариантом

ускорения дисковых

T

C

операций чтения и записи -

двойной буферизации.

Помимо буферизации применяется кэширование.

Кэширование полезно в том случае, когда приложение неоднократно читает с диска одни и те же данные. После того как они один раз будут помещены в кэш, обращений к диску больше не потребуется, и скорость работы программы значительно возрастет.

Операционные системы

48

4.2.3. Согласование скоростей обмена и кэширование данных

Устройство и принцип действия дисковогоCкэша

T

Дисковый кэш (упрощенно) есть некий пул буферов, которые управляются с помощью соответствующего системного процесса.

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

Если впоследствии потребуется повторное чтение, то данные могут быть извлечены непосредственно из оперативной памяти без фактического обращения к диску.

Операционные системы

49

4.2.3. Согласование скоростей обмена и кэширование данных

Устройство и принцип действия дискового кэша

T C

При записи: данные помещаются в кэш, и для запросившего эту операцию приложения получается, что фактически они уже записаны.

Приложение может продолжить свое выполнение, а системные внешние процессы через некоторое время запишут данные на диск. Это называется отложенной записью.

Если режим отложенной записи отключен, только одна задача может записывать на диск свои данные. Остальные приложения должны ждать своей очереди.

Операционные системы

50

Соседние файлы в папке ОС