2015-04-02 2 views
0

BackGround: Разработка на основе OSEK RTOS обертку для системы многожильного в Linux среде путем использования Posix API,Linux API, которые будут использоваться для создания нового процесса в процессе Мультикор

Я понимаю, что есть вилка Linux API, , Exec и System, чтобы создать дочерний процесс из существующего процесса. Моя цель состоит в том, чтобы иметь несколько процессов в системе, которые не используют одну и ту же память как родительский процесс.

Конечная цель состоит в том, чтобы иметь различную резьбу в процессе, где каждый процесс свободен от помех от других. Теперь также есть API mmap для привязки памяти процесса к определенной области.

Вопрос: Каков наилучший способ для создания нескольких процессов и обеспечения того, чтобы процесс не имел одну и ту же память?

PS: Я новичок в linux Os и до сих пор читал теорию теории, но я не уверен в реализации, о том, какие результаты я могу получить. Небольшая помощь экспертов может облегчить ситуацию.

+0

Что такое OSEK и RTOS ??? Почему бы вам не написать POSIX (все в верхнем регистре)? –

ответ

0

Хорошо, это зависит от того, хотите ли вы более или менее переносимости. Вы можете использовать потоки posix, которые имеют возможность обмениваться виртуальным пространством между ними. Когда вы используете fork (2), вы получаете совершенно разные виртуальные пространства в каждом процессе (с копированием на данные записи, поэтому это хорошее и портативное решение с точки зрения эффективности, как обычно вы делаете exec (2) впоследствии) Не во всех средах есть доступ к потокам posix.

Кстати, линукс вилка (2) системный вызов реализован в терминах клона (2) системного вызова. Этот последний является более общим механизмом для вилки новых процессов/потоков, которые позволяют больше контролировать то, что является общим, а что нет. См. Справочники для fork (2), vfork (2) и клон (2) системные вызовы/обертки.

Ваш вопрос не очень специфичен в требованиях, которые у вас есть, поэтому есть много возможностей.

+0

Основным прецедентом для создания нескольких процессов является сопоставление их с разными ядрами и контроль их доступа к памяти и выполнения потоков. OSEK (наряду с AUTOSAR) является стандартным спецификационным требованием для Os, используемого в автомобильной области. –

+0

Это уже обработано в ядре. Пользовательские процессы/потоки распределяются почти равномерно в ядре linux. Некоторыми исключениями из этого правила являются некоторые аппаратные прерывания, которые вынуждены всегда происходить в одном ядре, на этом уровне существует большая гибкость ядра. –