Я привык к тому, что слово примитивный используется для основных типов данных: логических, целых, с плавающей запятой и т. д. Однако в книге Уильяма Столлингса Операционные системы: внутреннее устройство и принципы проектирования он использует его в контексте алгоритмов операционной системы, ссылаясь на некоторый вызываемый объект (функцию или инструкцию); например, он говорит, что send
и receive
— это пара примитивов, которая «представляет собой минимальный набор операций, необходимых процессам для передачи сообщений» (7th издание, 233). Правильно ли я понимаю, что это означает «базовый строительный блок» (точно так же, как и в случае с типами данных), операцию, которая считается само собой разумеющейся при построении алгоритма? Это широко распространенное употребление или что-то особенное для Столлингса? Как лучше всего определить примитив при таком использовании?
Значение примитива в контексте операционной системы/алгоритма
Ответы (1)
Для меня это означает что-то, что нельзя разложить (люди также иногда используют слово atomic в этом смысле, но atomic часто также используется для объяснения параллелизма или параллелизма с разное значение).
Например, в Unix (или Linux) системные вызовы, видимые приложением, являются примитивными или atomic, они либо случаются, либо нет (иногда они прерывались и выдавали ошибку EINTR
или ERESTART
).
А внутри интерпретатора или даже в формальной спецификации языка примитивными являются те операции, которые вы не можете определить и с которыми интерпретатор имеет дело специально. Очень часто cons
является примитивной операцией для диалектов Лиспа.
person
Basile Starynkevitch
schedule
05.11.2011