CPU, RAM, Chipset/BIOS, аппаратное обеспечение (периферийные устройства) и ОС
Я просто хотел бы прояснить точный порядок взаимоотношений между оборудованием (точнее, периферией - мышью, клавиатурой и т. Д.), ОС, набором микросхем /BIOS, оперативной памятью и процессором:
Мое понимание: Действие: Нажмите кнопку на экране с помощью мыши: 1. Любой ввод с аппаратного обеспечения обрабатывается драйверами устройства (будь то системное ПЗУ BIOS, дополнительное ПЗУ BIOS или программные драйверы). 2. Из драйверов инструкции отправляются в набор микросхем (южный мост в случае устройств ввода-вывода), а затем в ЦП для обработки. 3. Из процессора команды сохраняются в оперативной памяти, а затем передаются в ОС.
Это правильная цепь событий?
Спасибо
1 ответ
Более или менее, если мы предполагаем доступ DMA, это будет порядок:
Он начинается с аппаратного устройства, вызывающего прерывание для какого-либо события. Это приводит к тому, что контроллер прерываний прерывает ЦП, что (при условии, что прерывание не маскируется, а ЦП еще не выполняет другое прерывание) заставит ЦП захватывать прерывания, а операционная система обычно обрабатывает его, обычно выполняя код в драйвер устройства.
Любой ввод с аппаратного обеспечения обрабатывается южным мостом (который он подключен к северному мосту по внутренней шине) и сохраняет значения в адрес назначенной памяти в основной памяти (RAM).
- ОС разбудит процесс, который ожидает операции ввода-вывода (тот, кому нужны входные данные), затем планировщик ОС отправит эту программу в очередь выполнения. Здесь с помощью драйверов (драйверы являются частью операционной системы, большую часть времени производимой аппаратной компанией) добавится код для ответа на данные, полученные входным оборудованием.
- CPU выполнит код из ОЗУ (где процесс и данные были сохранены на предыдущих этапах).
Помните, что драйверы не предназначены для работы с BIOS для получения данных (они могут получать информацию оттуда), и ОС организует код, позволяющий процессору выполнять его. Я не уверен, но я думаю, что процессор никогда не знает, что является вводом от оборудования, это просто еще один код / данные с адреса памяти.
Извините за мой английский или, если я допустил ошибку, исправьте меня и добавьте комментарий, я обновлю текст.