Подтвердить что ты не робот

Почему CPU не нужен для обслуживания запросов ввода-вывода?

Я изучаю операционные системы, но есть небольшая концепция, которую я не могу понять. Скажем, что процесс 1 запущен на CPU, а затем он выдает запрос ввода-вывода для чтения с диска. Для эффективности CPU начинает выполнение процесса 2 по мере обработки этого запроса. Что все имеет смысл, но не требует ли I/O процессор?

enter image description here

Мой вопрос: Почему CPU не нужен для запроса процесса 1?

4b9b3361

Ответ 1

Это поможет понять роль 3 важных аспектов ввода-вывода в компьютерной архитектуре: прерывания, DMA и аппаратные контроллеры.

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

Когда жесткий диск выполняется с запросом, и соответствующие данные загружаются в ОЗУ через DMA, он выдает запрос прерывания, который информирует CPU о том, что данные были загружены в ОЗУ. На этом этапе ЦПУ может передать управление обратно в процесс 1. Таким образом, ЦП не нуждается в микроменеджере всех задач, связанных с I/O. В свое время это имело место, но эти трюки (прерывания, DMA, специальные контроллеры) были изобретены с целью повышения производительности процессора и повышения эффективности работы.

Ответ 2

Cpu используется для запуска каждого запроса io, а затем принимает его при готовности... это не тот случай, когда процессор не участвует в операциях io.

Например, скопируйте файл 2gb с диска c на диск d и откройте диспетчер задач. На вкладке производительности u вы увидите как использование диска, так и использование процессора.

Доказательство my.point.

Ahsan