Демон управления процессами
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Process Control Daemon ( PCD ) — это открытым исходным кодом системного уровня с легкий менеджер/контроллер процессов для проектов на базе встроенного Linux (таких как бытовая электроника и сетевые устройства).
Этот инструмент предоставляет дополнительные услуги для любого продукта, работающего под управлением встроенного Linux , и специализируется на нуждах встроенных продуктов . PCD был создан потому, что дистрибутивы Embedded Linux не предоставляли такого инструмента. Другие доступные аналогичные инструменты не подходят для встраиваемых продуктов с точки зрения совместимости, производительности и ограниченности аппаратных ресурсов.
Фон
[ редактировать ]Проект PCD был разработан и реализован Хайем Шаломом, в то время старшим инженером-программистом в Texas Instruments Israel, в рамках его магистратуры. степень в области компьютерных наук. Проект был инициирован в связи с реальной потребностью в одном из широкополосных решений Texas Instruments ( ARM1176 Running MV-Linux Pro-5.00). Изначально система запускалась с помощью сценариев оболочки , где процесс инициализации запускал сценарий rcS , а также запускал некоторые другие сценарии. Из-за быстрого процесса разработки программного обеспечения системы больше процессов и задач добавлялось , а скрипты становились слишком длинными, нечитаемыми и сложными в обслуживании. Не существовало эффективного способа контролировать процесс запуска системы. Синхронизировать межпроцессные зависимости было сложно, а определение порядка инициализации требовало больших усилий.
Например, демон , который прослушивает сокет, должен предшествовать всем клиентам, отправляющим данные в этот сокет. При использовании сценариев оболочки нет эффективного способа проверить это условие. Служба со сложным конечным автоматом, которая должна находиться в определенном состоянии, прежде чем будет готова, не имеет стандартных средств синхронизации со своими клиентами.
Еще одной проблемой был мониторинг работоспособности системы. Не было никакой организации, которая бы отслеживала и контролировала процессы в системе. Таким образом, в случае сбоя система становилась нестабильной или непригодной для использования до тех пор, пока сбойный процесс не был обнаружен вручную.
В то время возможности отладки во время выполнения были очень ограничены. В случае сбоя процесса отладочная информация отсутствовала, если только не была скомпилирована специальная версия, поддерживающая низкую оптимизацию, символы отладки и сервер GDB .
После интеграции PCD в продукт окончательные результаты показали сокращение времени запуска и значительное улучшение надежности, надежности и доступности системы. Возможности отладки и удаленной отладки также были улучшены благодаря расширенной отладочной информации, которая была доступна в случае сбоя ( ошибка сегментации , ошибка шины или подобное).
Проект больше не активен, но был расширен для поддержки большего количества встроенных архитектур и новых функций.
Возможности на высоком уровне
[ редактировать ]- Запустите систему синхронно и детерминировано в соответствии с текстовым файлом конфигурации.
- Контролируйте и контролируйте все процессы и сервисы в системе.
- Восстановите систему в случае ошибок или сбоев, сделайте ее более надежной.
- Предоставляйте полезную и подробную информацию об отладке в случае сбоя: сведения о процессе, дамп регистров и карту памяти.
- Создайте графическое представление процессов системы.
Конфигурация
[ редактировать ]PCD необходимо настроить со всеми процессами, демонами и задачами, которыми он управляет. Конфигурация выполняется во время выполнения с использованием простого, удобного для чтения файла конфигурации (также известного как PCD Script). Каждый процесс имеет свой собственный блок правил, который описывает его, определяет его зависимость от других правил, определяет его детали и действия, которые необходимо выполнить в случае сбоя. Блоки правил определяют межпроцессные зависимости наиболее детерминированным образом, и в результате PCD строит дерево зависимостей на основе этой информации. После того, как все правила написаны и установлено дерево зависимостей, PCD сможет запускать систему наиболее надежным способом, а время загрузки будет быстрее по сравнению с запуском сценария. Сценарии PCD также можно использовать на хост-компьютере для создания графического представления зависимостей запуска системы для лучшего понимания и для целей документирования, как показано в следующем примере:
Восстановление после сбоя
[ редактировать ]Одним из больших преимуществ PCD являются его возможности отладки и восстановления после сбоев. PCD также реализует демон сбоев, который постоянно контролирует состояние системы и выполняет действия по восстановлению в случае сбоя. Эта функция повышает стабильность, надежность и доступность системы.
PCD также предоставляет много полезной отладочной информации, которая может помочь разработчикам и инженерам по тестированию понять, что произошло. Отладочная информация отображается на консоли системы и может храниться в энергонезависимом хранилище для последующего анализа. Подробная информация об отладке включает все сведения о процессе, все сведения о сигналах, полный дамп регистра (на поддерживаемых архитектурах) и карту адресов процесса.
Эта отладочная информация доступна в любое время и везде (даже в полевых условиях) и не требует специальной отладочной сборки.
Лицензирование
[ редактировать ]Проект PCD является проектом с открытым исходным кодом и распространяется под лицензией GNU Lesser General Public License версии 2.1, опубликованной Фондом свободного программного обеспечения:
- Никаких затрат на покупку или роялти не требуется.
- Исходный код полностью доступен.
- Высококачественный код благодаря широкому распространению.
- LGPL . позволяет безопасно связывать и смешивать собственный код с PCD Разрешается распространять PCD вместе с любым другим пакетом программного обеспечения при условии соблюдения условий лицензии. Любые изменения или улучшения, внесенные в код PCD, должны быть возвращены сообществу.
- Постоянное развитие: теперь поддерживаются новые функции и другие платформы.
- Поддержка сообщества и исправления ошибок.
- Если вам нужна новая функция, либо запросите ее в системе отслеживания проектов, либо присоединитесь к сообществу PCD и разработайте ее, чтобы другие также могли насладиться вашей продуктивностью.
Отзывы
[ редактировать ]Проект PCD получил хорошие отзывы от инженеров-программистов и менеджеров проектов, которые использовали его в своем проекте; « PCD — это огромный успех в проекте, за который я отвечаю. Он обеспечивает 4 основных преимущества: он упрощает код инициализации, сокращает время загрузки, уменьшает усилия по отладке (обеспечивает отличные журналы сбоев) и улучшает традиционную реализацию WD (мониторинг все процессы и действовать соответствующим образом). Все это приводит к улучшению продукта и эффективному процессу разработки ». [ 1 ]
Проект PCD был представлен на конференции ARM Technology Conference 2010 и получил хорошие отзывы. « Для разработчиков программного обеспечения, которые хотят использовать Linux с открытым исходным кодом в своих встроенных проектах реального времени, ситуация становится намного проще, особенно в архитектуре ARM ». [ 2 ]
Ссылки
[ редактировать ]- ^ Менеджер проекта , Texas Instruments
- ^ Бернард Коул - Разработка встроенного Linux становится проще на Arm TechCon
Внешние ссылки
[ редактировать ]- Страница проекта PCD на SourceForge.net — загрузите последнюю версию, просмотрите код, присоединитесь к сообществу или получите помощь и поддержку.
- Форум поддержки PCD
- Презентация PCD на конференции ARM Technology Conference 2010 [ постоянная мертвая ссылка ]
- Меньшая стандартная общественная лицензия GNU версии 2.1