Значение примитива в контексте операционной системы/алгоритма

Я привык к тому, что слово примитивный используется для основных типов данных: логических, целых, с плавающей запятой и т. д. Однако в книге Уильяма Столлингса Операционные системы: внутреннее устройство и принципы проектирования он использует его в контексте алгоритмов операционной системы, ссылаясь на некоторый вызываемый объект (функцию или инструкцию); например, он говорит, что send и receive — это пара примитивов, которая «представляет собой минимальный набор операций, необходимых процессам для передачи сообщений» (7th издание, 233). Правильно ли я понимаю, что это означает «базовый строительный блок» (точно так же, как и в случае с типами данных), операцию, которая считается само собой разумеющейся при построении алгоритма? Это широко распространенное употребление или что-то особенное для Столлингса? Как лучше всего определить примитив при таком использовании?


person Keith Pinson    schedule 05.11.2011    source источник


Ответы (1)


Для меня это означает что-то, что нельзя разложить (люди также иногда используют слово atomic в этом смысле, но atomic часто также используется для объяснения параллелизма или параллелизма с разное значение).

Например, в Unix (или Linux) системные вызовы, видимые приложением, являются примитивными или atomic, они либо случаются, либо нет (иногда они прерывались и выдавали ошибку EINTR или ERESTART).

А внутри интерпретатора или даже в формальной спецификации языка примитивными являются те операции, которые вы не можете определить и с которыми интерпретатор имеет дело специально. Очень часто cons является примитивной операцией для диалектов Лиспа.

person Basile Starynkevitch    schedule 05.11.2011