2024 Автор: Mildred Bawerman | [email protected]. Последнее изменение: 2023-12-16 08:42
Системный вызов против прерывания
Типичный процессор выполняет инструкции одну за другой. Но могут быть случаи, когда процессору приходится временно останавливаться и удерживать текущую инструкцию и выполнять какую-либо другую программу или сегмент кода (находящийся в другом месте). После этого процессор возвращается к нормальному выполнению и продолжает с того места, где он остановился. Такими случаями являются системный вызов и прерывание. Системный вызов - это вызов подпрограммы, встроенной в систему. Прерывание - это прерывание программного управления, вызванное внешними аппаратными событиями.
Что такое системный вызов?
Системные вызовы предоставляют программам, работающим на компьютере, интерфейс для взаимодействия с операционной системой. Когда программе необходимо запросить службу (для которой она сама не имеет разрешения) у ядра операционной системы, она использует системный вызов. Процессы пользовательского уровня не имеют тех же разрешений, что и процессы, напрямую взаимодействующие с операционной системой. Например, для связи с внешним устройством ввода-вывода или для взаимодействия с любыми другими процессами программа должна использовать системные вызовы.
Что такое прерывание?
Во время нормального выполнения компьютерной программы могут произойти события, которые могут вызвать временную остановку процессора. Подобные события называются прерываниями. Прерывания могут быть вызваны программными или аппаратными сбоями. Аппаратные прерывания называются (просто) прерываниями, а программные прерывания называются исключениями или ловушками. Как только прерывание (программное или аппаратное) инициировано, управление передается специальной подпрограмме, называемой ISR (Interrupt Service Routine), которая может обрабатывать условия, вызванные прерыванием.
Как упоминалось выше, термин «прерывание» обычно зарезервирован для аппаратных прерываний. Это прерывания управления программой, вызванные внешними аппаратными событиями. Здесь внешние средства, внешние по отношению к ЦП. Аппаратные прерывания обычно поступают из множества различных источников, таких как микросхема таймера, периферийные устройства (клавиатура, мышь и т. Д.), Порты ввода-вывода (последовательный, параллельный и т. Д.), Дисководы, часы CMOS, карты расширения (звуковая карта, видео карта и т. д.). Это означает, что аппаратные прерывания почти никогда не возникают из-за какого-либо события, связанного с выполняющейся программой. Например, такое событие, как нажатие клавиши на клавиатуре пользователем или тайм-аут внутреннего аппаратного таймера, может вызвать прерывание такого рода и может сообщить ЦП, что определенному устройству требуется некоторое внимание. В такой ситуации ЦП остановит все, что он делал (т.е. приостановит текущую программу),обеспечивает обслуживание, необходимое устройству, и вернется к нормальной программе.
В чем разница между системным вызовом и прерыванием?
Системный вызов - это вызов подпрограммы, встроенной в систему, а прерывание - это событие, которое заставляет процессор временно удерживать текущее выполнение. Однако одним из основных отличий является то, что системные вызовы синхронны, а прерывания - нет. Это означает, что системные вызовы происходят в фиксированное время (обычно определяемое программистом), но прерывания могут возникать в любое время из-за неожиданного события, такого как нажатие клавиши на клавиатуре пользователем. Следовательно, когда когда-либо происходит системный вызов, процессор должен только помнить, куда возвращаться, но в случае прерывания процессор должен помнить как место возврата, так и состояние системы. В отличие от системного вызова, прерывание обычно не имеет ничего общего с текущей программой.
Рекомендуем:
Разница между прерыванием и ловушкой
Прерывание или ловушка В любом компьютере во время нормального выполнения программы могут возникать события, которые могут вызвать временную остановку процессора. События вроде
Разница между системным вызовом и вызовом функции
Системный вызов против вызова функции Типичный процессор выполняет инструкции одну за другой. Но могут быть случаи, когда процессор должен остановить текущий instr
Разница между прерыванием и исключением
Прерывание или исключение На любом компьютере во время нормального выполнения программы могут возникнуть события, которые могут вызвать временную остановку процессора. События
Разница между системным вызовом и вызовом библиотеки
Ключевое различие - системный вызов и вызов библиотеки. Системный вызов и вызов библиотеки связаны с операционной системой компьютера. Компьютер может работать в
Разница между вызовом и проблемой
Ключевое отличие - вызов против проблемы В повседневной жизни мы часто сталкиваемся с проблемами и проблемами на пути к успеху. Они часто могут мешать