В те времена, когда моей задачей было создавать, управлять и руководить (в основном путем создания таких уровней ;-), мне было легко принять решение: некоторые операционные системы (VMS, тогда совершенно новая Win-NT) имели очень порождение процессов с большим весом (так что действительно требовалось много провокаций, чтобы породить новый процесс! -), в то время как на других крайних (например, BSD 4.3 с его тогда совершенно новым vfork
! -) положительно поощрил вас породить столько процессов, сколько вы пожелали, и у вас было очень мало накладных расходов при этом. Поэтому я решил, что предоставление разработчикам приложений решения о том, порождать их или нет, было безответственным - мы (группа «Базовые библиотеки») действительно должны были обеспечить уровень абстракции, который будет порождаться или не зависеть от базовой операционной системы. Это работало довольно хорошо ... но также это было 15/20 лет назад, на определенном классе машин (рабочих станций) с широким спектром ОС, но достаточно равномерным запасом памяти, ядер (одно: тогда многоядерных не было! -) и тому подобное.
Если бы я сегодня устроился на ту же работу, я бы сначала подтолкнул заинтересованные стороны (высшее руководство, маркетинг продукта или кто-либо еще) к четкому определению диапазона платформ, которые мы должны поддерживать - какие ОС, какой диапазон ( s) пожертвований HW. Если - как я подозреваю - это так же широко, как и тогда, моя архитектура была бы схожа с точки зрения сокрытия концепции порождения процессов от разработчиков приложений. Но, возможно, целевой диапазон отличается, например, «смартфоны и недорогие нетбуки», которые сделают выбор более легким… хотя абстрагирование процесса создания от программистов приложений является БЕЗОПАСНЫМ выбором, и вы должны раскрывать этот уровень только в том случае, если вы готовы рискнуть на этих разработчиков приложений » общие навыки и единообразие, на которое вы можете рассчитывать сейчас в вашем диапазоне платформ, оставаясь достаточно стабильными в будущем! -)