Процесс, выполняющийся в адресном пространстве пользователя, не может обслуживать прерывания и, следовательно, не имеет векторной таблицы. Таблица векторов прерываний будет находиться в адресном пространстве ядра.
В случае клавиатуры таблица (я) векторов ядра будет обрабатывать прерывание и обрабатывать нажатие клавиши. Затем ядро отправит символ из нажатия клавиши в пользовательское приложение через системный вызов. В Linux системный вызов, скорее всего, будет абстрагирован как файл, читаемый пользовательскими процессами.
Несколько пользовательских процессов (приложения в этом примере) могут читать из одного и того же файла, поэтому поведение зависит от особенностейфайла / файла как устройство. Существует большая вероятность того, что в конечном итоге непредсказуемая гонка между процессами сначала будет считывать данные. На практике часто плохая идея иметь несколько процессов, одновременно обращающихся к одному и тому же файлу.