Системные вызовы и их взаимодействие с программистом - Morozov-5F/operational-system-docs GitHub Wiki

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

Источники:

⚠️ **GitHub.com Fallback** ⚠️