Схема одинарного буфера может быть применена и при поточно-ориентированном вводе-выводе - построчно или побайтно.
Грубое, но очень показательное сравнение процессов при использовании одинарной буферизации и при ее отсутствии.
Предположим, что
Т- это время, необходимое для ввода одного блока,
С - время, необходимое для вычислений, выполняющихся между запросами на ввод данных.
Без буферизации общее время выполнения, приходящееся на один блок, будет равно Т + С.
При использовании одинарной буферизации время выполнения равно
мах[С, Т] + М,
где М - время, необходимое для перемещения данных из системного буфера в пользовательскую память. В большинстве случаев это время значительно меньше времени работы без буферизации.
Построчная буферизация применима, например, в неинтеллектуальных терминалах, где пользователь вводит данные построчно, завершая строки символом возврата каретки, сигнализируя об окончании строки; вывод на терминал происходит таким же образом - построчно. Другим примером может служить строчный принтер.
Побайтовые операции применяются при использовании терминалов с формами, а также многих других периферийных устройств, когда каждое нажатие клавиши является значимым.
В случае построчного ввода-вывода буфер может быть использован для хранения одной строки.
Пользовательский процесс приостанавливается на время ввода, ожидая поступления целой строки.
При операции вывода пользовательский процесс может разместить строку в буфере и продолжить работу. Необходимость приостановления этого процесса возникает только в том случае, если требуется вывод второй строки, в то время как первая еще не покинула буфер.
При побайтовом вводе-выводе, взаимодействие операционной системы и пользовательского процесса следует модели производителя/потребителя.
Двойной буфер
Улучшить схему одинарной буферизации можно путем использования двух системных буферов.
В этом случае процесс выполняет передачу данных в один буфер (или считывание из него), в то время как операционная система освобождает (или заполняет) другой. Эта технология известна как двойная буферизация или сменный буфер.
Время выполнения при блочно-ориентированной передаче данных можно грубо оценить как mах[С, T].
Таким образом, если С < Т, то блочно-ориентированное устройство может работать с максимальной скоростью. Если же С > Т, то двойная буферизация избавляет процесс от необходимости ожидания завершения ввода-вывода. В любом случае достигается преимущество перед одинарной буферизацией. Это улучшение буферизации осуществляется за счет увеличения ее сложности.
При поточно-ориентированном вводе мы снова обращаемся к двум альтернативным режимам работы. Необходимость приостановления процесса при построчном выводе возникает только в том случае, если при выводе очередной строки оба буфера не пусты. При побайтовых операциях двойной буфер не имеет никакого преимущества перед одинарным буфером двойной длины. В обоих случаях используется модель производителя/потребителя.
Циклический буфер
Схема двойного буфера призвана выровнять поток данных между устройством ввода-вывода и процессом. Если нас интересует производительность некоторого процесса, то в первую очередь требуется, чтобы операции ввода-вывода не тормозили его работу. Двойная буферизация может оказаться недостаточной, если процесс часто выполняет ввод или вывод. Зачастую в таком случае решить проблему помогает наращивание количества буферов.
При использовании множества буферов, состоящего более чем из двух элементов, схема именуется циклической буферизацией. В ней каждый индивидуальный буфер представляет собой модуль циклического буфера. Такая буферизация описывается моделью производителя/потребителя с ограниченным буфером.
(осенний семестр 2000-2001 уч.гг.)
по дисциплине:
“ОПТИМИЗАЦИЯ В САПР ”
Содержание:
Основные понятия
- понятие САПР
- процесс оптимизации
Методы одномерной оптимизации
- аналитический способ
- численный способ
Методы одномерного поиска
- метод “золотого сечения”
Одномерная оптимизация с использованием производных
- метод деление интервала пополам
- метод Ньютона (метод касательной)
Безусловная опртимизация
Квадратичная аппроксимация (или квадратичное приращение)
Методы прямого поиска
- приемущества
- недостатки
Метод координатного спуска
Градиентные методы
- метод наискорейшего спуска
- анализ метода
- метод Ньютона
- недостатки метода Ньютона
Задачи оптимизации с ограничениями – разностями (ЗОР)
- метод исключения
- метод множителей Лагранжа
Нелинейное программирование (НЛП)
- методы решения НЛП
Задачи линейного программирования (ЛП)
САПР – система автоматизированного проектирования. Проектирование сложный процесс, направленный на разработку отдельного объекта.
Способ уменьшения время проектирования – уменьшение числа разработчиков.
Система – совокупность людей, задач и программ, которые взаимосвязаны друг с другом.
Оптимизация – от латинского слова «оптимус» - наилучший – поиск наилучшего, поиск наилучшего проектного изделия.