Создается ли новый процесс при вызове syscall в Minix?
Например, когда мы вызываем write(...) в программе в minix. Создается ли новый процесс (например, с помощью fork()) или это делается в рамках текущего процесса? Эффективно ли делать много системных вызовов?
1 ответ
Процесс создания строго fork
s / exec
работа Какой процесс может вызвать системный вызов типа write?
Теперь Minix - это микроядро, что означает, что такие вещи, как файловые системы, выполняются в пользовательских процессах. Поэтому запись в файл может вызвать новый процесс где-то еще, но это зависит от драйвера вашей файловой системы. До сих пор я не обращал внимания на драйвер MinixFS, поэтому я не могу сказать вам, происходит ли это, но маловероятно, что создание процесса все еще стоит относительно дорого.
Почти никогда не бывает эффективно делать много системных вызовов (включаются переключатели контекста). Тем не менее, "исполнитель", "эффективный" и "много" - все это очень относительные вещи, поэтому я не могу сказать вам то, чего вы, вероятно, еще не знаете.