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

Оглавление:

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

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

Видео: Разница между системным вызовом и вызовом библиотеки
Видео: Linux Kernel. 1 - Исследуем системный вызов fork 2024, Апрель
Anonim

Ключевое отличие - системный вызов против вызова библиотеки

Системный вызов и вызов библиотеки связаны с операционной системой компьютера. Компьютер может работать в двух режимах; а именно пользовательский режим и режим ядра. Ключевое различие между системным вызовом и вызовом библиотеки заключается в том, что системный вызов - это функция, предоставляемая ядром для входа в режим ядра для доступа к аппаратным ресурсам, тогда как вызов библиотеки - это функция, предоставляемая библиотеками программирования. Например, open () - это системный вызов, а fopen () - это вызов библиотеки. Когда fopen () в программе C, использует библиотеку заголовков stdio.h. Затем системный вызов open () используется из ядра для выполнения задачи открытия файла.

СОДЕРЖАНИЕ

1. Обзор и основные различия

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

3. Что такое вызов библиотеки

4. Сходства между системным вызовом и вызовом библиотеки

5. Параллельное сравнение - системный вызов и вызов библиотеки в табличной форме

6. Резюме

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

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

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

Рисунок 01: Системные вызовы

Существуют различные типы системных вызовов. Создание, завершение процесса, выполнение процесса, выделение и освобождение памяти могут быть выполнены с помощью «системных вызовов управления процессом». «Вызовы системы управления файлами» могут использоваться для создания, удаления, чтения, записи, открытия и закрытия файлов. Для завершения процесса требуются ресурсы. Запросы и освобождение устройств выполняются через «Системные вызовы управления устройствами». «Системные вызовы управления информацией» могут использоваться для получения системных данных, процессов и атрибутов устройств. Процессы взаимодействуют друг с другом. Эта связь осуществляется с помощью «системных вызовов связи». Отправка информации о статусе, создание и удаление коммуникационных соединений, а также отправка и получение сообщений могут выполняться с помощью системных вызовов связи.

Что такое вызов библиотеки?

Вызов библиотеки - это функция, предоставляемая библиотеками программирования. Перед вызовом библиотеки ее необходимо импортировать. Вызов библиотеки может зависеть от системного вызова.

В языке C эти функции можно использовать в программе, включая файлы заголовков. Заголовочные файлы включаются с помощью директивы предварительной обработки #include. Препроцессор сканирует указанный файл, прежде чем продолжить работу с остальной частью исходного файла. Вот некоторые общие библиотечные функции: библиотека «math.h» включает функции, связанные с математическими операциями. Библиотека «stdio.h» предоставляет функции для выполнения ввода и вывода. «Fopen ()» открывает файл с указанным именем. «Fclose ()» закрывает файл. «Printf () используется для отправки форматированного вывода на стандартный вывод. «Fprintf ()» используется для отправки форматированного вывода в поток. «Scanf ()» используется для чтения форматированного ввода из стандартного ввода. «Stdlib.h» предоставляет функции для управления памятью, а «time.h» предоставляет функции для управления временем и датой.

В чем сходство между системным вызовом и вызовом библиотеки?

Оба связаны с операционной системой

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

Различать статью в середине перед таблицей

Системный вызов против библиотечного вызова

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

Резюме - системный вызов против библиотечного вызова

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

Загрузите PDF-версию System Call vs Library Call

Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь. Разница между системным вызовом и вызовом библиотеки.

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