2015-06-22 8 views
1

Мне не нравится кодирование, но мне очень понравилась Ада, и я очень к ней знаком. Не могли бы вы прояснить мне эти моменты?Ada Tasking and Safety

Если у вас есть компьютер с одним безпоточным процессором, то задание будет по-прежнему однопроцессорным. То же самое относится, конечно, к , носящим в C или C++.

Вопрос: Считаете ли вы, что задача Ады дает какие-либо преимущества перед разветвлением в этом сценарии?

Я также хочу знать, почему СПАРК запрещает постановку задач (я знаю, что это для безопасности, но как exactely, как может запрещающую многозадачность повышает безопасность.)

Моего третий и последний вопрос, если я хочу, чтобы обеспечить «безопасная многозадачность «(в Аде), какие ограничения по задачам я мог бы предусмотреть, чтобы использовать их (задачи)« Безопасно ».

Спасибо,

ответ

1

1) Да. Самый простой аргумент заключается в том, что задачи Ada выполняются в одном и том же контексте процессов, делая задачи/потоки несколько быстрее, чем отдельные процессы. Еще одна причина - возможность взаимодействия между задачами на уровне языка и синхронизации.

2) Только некоторые версии SPARK запрещают задачу. RavenSPARK (2005) позволяет задавать задачи и позволяет формально рассуждать о задачах. Проблема с заданием состоит в том, что формально трудно рассуждать, особенно с амбициями команды SPARK (доказывая правильность).

3) Вы можете подумать о том, чтобы ограничить себя профилем Ravenscar. Но простая задача Ada уже относительно безопасна (даже если она не может помешать вам писать хорошие мертвые блокировки).

 Смежные вопросы

  • Нет связанных вопросов^_^