Почему процессы ввода-вывода быстрее? - PullRequest
2 голосов
/ 20 сентября 2010

Обычно процессор работает некоторое время без остановки, затем выполняется системный вызов для чтения из файла или записи в файл.Когда системный вызов завершается, ЦП снова вычисляет, пока ему не понадобится больше данных или не потребуется записывать больше данных и т. Д.

Некоторые процессы тратят большую часть своего времени на вычисления, а другие тратят большую часть своего времени на ожиданиеI / O.Первые называются compute-bound ;последние называются I / O-bound .Процессы с привязкой к вычислениям обычно имеют длинные пакеты ЦП и, следовательно, нечастые ожидания ввода / вывода, тогда как процессы с привязкой к вводу / выводу имеют короткие пакеты ЦП и, следовательно, частые ожидания ввода / вывода.

По мере ускорения ЦП процессы, как правило, все больше привязываются к вводу / выводу.

Почему и как?


Отредактировано :

Это не домашнее задание.Я изучал книгу («Современные операционные системы» Таненбаума) и нашел там этот вопрос.Я не понял, поэтому я спрашиваю здесь.Не отмечайте этот вопрос как домашнее задание, пожалуйста.

Ответы [ 2 ]

12 голосов
/ 20 сентября 2010

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

Это не означает, что «процессы, связанные с вводом / выводом, выполняются быстрее».

5 голосов
/ 20 сентября 2010

По мере ускорения ЦП процессы имеют тенденцию к увеличению привязки к вводу / выводу.

То, что он пытается сказать, это:

Поскольку ЦП становится быстрее, процессы, как правило, не увеличивают скорость пропорционально скорости ЦП, поскольку они получают больше ограничений ввода / вывода.

Это означает, что процессы, связанные с вводом / выводом, работают медленнее, чем процессы, не связанные с вводом / выводом, а не быстрее.

Почему это так? Что ж, когда увеличивается только скорость процессора, все остальные системы не увеличиваются в скорости. Ваш жесткий диск все еще на той же скорости, ваша сетевая карта - на той же скорости, даже ваша оперативная память - на той же скорости *. Таким образом, по мере увеличения скорости процессора, ограничивающим фактором для вашей программы становится все меньше и меньше скорость процессора, но больше зависит от того, насколько медлен ваш ввод / вывод. Другими словами, программы естественным образом переходят на все более и более ограниченные возможности ввода / вывода. Другими словами: ..as CPU gets faster, processes tend to get more I/O-bound.

* примечание: Исторически все остальное также улучшалось по скорости вместе с процессором, но не так сильно. Например, ЦП перешли с 4 МГц до 2 ГГц, что означает увеличение скорости в 500 раз, тогда как скорость жесткого диска увеличилась с 1 МБ / с до 70 МБ / с, что означает незначительное увеличение в 70 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...