Разница между системным вызовом и вызовом функции

Разница между системным вызовом и вызовом функции
Разница между системным вызовом и вызовом функции

Видео: Разница между системным вызовом и вызовом функции

Видео: Разница между системным вызовом и вызовом функции
Видео: Егор Вершинин "Бизнес аналитик vs Системный аналитик. В чем разница?" 2024, Ноябрь
Anonim

Системный вызов против вызова функции

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

Что такое системный вызов?

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

Что такое вызов функции?

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

В чем разница между системным вызовом и вызовом функции?

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

Рекомендуем: