Всегда было известно, что дисковые операции медленные, и мы знаем причины, по которым они медленные. Итак, вопрос здесь в том, почему мы должны ждать ввода-вывода или почему существует такая вещь, как IOWait и т. Д.?
Я имею в виду, что я заметил, что когда вы выполняете некоторые задачи ввода-вывода в фоновом режиме, ваш компьютер в основном работает намного медленнее, особенно я заметил, что при использовании Linux, если вы выполняете более длительные задачи ввода-вывода ОС становится практически непригодной для использования, пока они не будут завершены.
Действительно, я также нашел эту тему в статье, есть фрагмент:
Ожидание ввода / вывода составляет 12,1%. Этот сервер имеет 8 ядер (через cat / proc / cpuinfo). Это очень близко к (1/8 ядра = 0,125)
Так что в основном это означает, что это замедляет работу компьютера, почему? Я имею в виду ОК, теперь у нормального компьютера есть как минимум 2 ядра, иногда 4, а иногда их больше из-за гиперпоточности или чего-то в этом роде. Но теперь вопрос в том, почему процессор фактически должен оставаться там, практически ничего не делая, кроме как просто ждать ввода-вывода? Я имею в виду основную идею или архитектуру управления процессами, теперь я не знаю, несет ли ответственность за это ОС или она связана с аппаратной частью, но это должно быть сделано для того, чтобы процессор мог ждать или проверяйте регулярно, фактически выполняя множество других задач и возвращаясь к процессу ввода-вывода, только когда он будет готов. В самом деле, если это такая сложная задача, и процессору придется подождать, почему нет? Т то, что управляется аппаратно более эффективно, чем? Например, может существовать какой-то мини-процессор, который будет просто ждать его и доставлять небольшую часть данных в реальный процессор, как только он вернется в процесс, и поэтому процесс будет повторяться, а у нас не будет практически посвятить целое ядро ЦП процессу копирования данных ... Или я буду тем, кто должен изобрести такие вещи и получить за это Нобелевскую премию? : S
Хорошо, теперь я действительно представляю это с точки зрения наблюдателей, и я действительно не углубился в эту тему, но я действительно не понимаю, почему процессор должен работать со скоростью жесткого диска, хотя он может просто сделайте что-нибудь еще и вернитесь на HDD, как только он будет готов. Идея состоит не в том, чтобы ускорить работу приложения, которому требуется эта операция ввода-вывода, процесс копирования или что-то еще, а в том, чтобы просто минимально влиять на потребление ЦП при выполнении этой операции, чтобы ОС могла использовать его для других процессов и пользователя. не нужно было бы чувствовать общее отставание компьютера при выполнении некоторых операций копирования ...