Несмотря на технологичный прогресс последних лет, многие системы все еще полагаются на пневматические устройства, которые лишь на слух кажутся устаревшими. На самом же деле они используются и в производстве, и в транспорте, и особенно в медицине. Однако, как и любая другая система, пневматическая также может дать сбой. Ученые из Калифорнийского университета в Риверсайде (США) разработали пневматическую логическую схему детектирования и оповещения, которая реагирует на сбой работы пневматической системы. Из чего состоит данная логическая схема, как именно она работает, и где может применяться на практике? Ответы на эти вопросы мы найдем в докладе ученых.Читать полностью »
Рубрика «IPC»
Без электроники: пневматическая логическая схема
2024-08-23 в 7:00, admin, рубрики: IPC, бит четности, биты, воздух, логические схемы, микрофлюидика, пневматика, пневматические системыГрокаем DLR
2019-10-04 в 15:30, admin, рубрики: .net, .net core, C#, DLR, dynamic programming, IPC, visual basic, ПрограммированиеПредисловие переводчика
Это скорее вольный пересказ, а не перевод. Я включил в эту статью только те части оригинала, которые имеют непосредственное отношение к внутренним механизмам работы DLR или объясняют важные идеи. Примечания будут заключены в квадратные скобки
Многие .NET разработчики слышали про Dynamic Language Runtime (DLR), но почти ничего о нем не знают. Разработчики, пишущие на языках типа C# или Visual Basic, избегают языков с динамической типизацией из-за боязни исторически связанных с ними проблем с масштабируемостью. Также их беспокоит тот факт, что языки типа Python или Ruby не выполняют проверку типов во время компиляции, что может привести к сложным для поиска и исправления ошибкам в рантайме. Это обоснованные опасения, которые могут объяснить, почему DLR не пользуется популярностью среди основной массы .NET разработчиков даже спустя два года после официального релиза [статья довольно старая, но с тех пор ничего не изменилось]. В конце концов, любой .NET Runtime, содержащий в себе слова Dynamic и Language в своем названии, должен предназначаться строго для поддержки таких языков, как Python, правильно?
Притормозите. В то время как DLR действительно была задумана для поддержки «Iron» реализации Python и Ruby в .NET Framework, её архитектура предоставляет гораздо более глубокие абстракции.
Обзор возможностей библиотеки Apache Curator для Apache Zookeeper
2017-08-02 в 6:30, admin, рубрики: curator, distributed computing, distributed lock manager, IPC, java, open source, scala, zookeeper, высокая производительность, параллельное программирование, распределённые вычисления, распределенные системыПо долгу работы мне приходится сталкиваться с проектированием и разработкой распределенных приложений. Такие приложения часто используют различные средства межпроцессного взаимодействия для организации взаимодействия компонентов. Особые сложности возникают в процессе реализации алгоритмов, обрабатывающих связанные данные распределенно. Для поддержки таких задач используются специализированные системы распределенной координации. Самым популярным и широко используемым продуктом является Apache Zookeeper.Читать полностью »
Вы неверно измеряете загрузку процессора
2017-05-22 в 13:29, admin, рубрики: IPC, Анализ и проектирование систем, Блог компании Инфопульс Украина, высокая производительность, Разработка под Linux, системное программированиеТа метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.
Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:
А на самом деле это выглядит вот так:
«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Читать полностью »
Ускоряем передачу данных в localhost
2017-01-26 в 11:43, admin, рубрики: c++, IPC, open source, qnx toolchain, semaphore, shared memory, велосипед на ракетном топливе, менеджер памяти, Промышленное программирование, разделяемая память, Разработка систем передачи данных
Один из самых быстрых способ межпроцессного взаимодействия реализуется при помощи разделяемой памяти (Shared Memory). Но мне казалось не логичным, что в найденных мною алгоритмах, память всё равно нужно копировать, а после перезапуска клиента (причём он допускался только один) нужно перезапускать и сервер. Взяв волю в кулак, я решил разработать полноценный клиент-сервер с использованием разделимой памяти.
Читать полностью »
Производительность межпроцессного обмена сообщениями в node.js
2016-11-14 в 8:13, admin, рубрики: IPC, javascript, node.jsРазрабатывая приложение на node.js столкнулся с необходимости обмена сообщениями между процессами одной машины. В такой ситуации обычно я применял redis Pub/Sub, бонусом получая возможность масштабирования на несколько серверов. Но сейчас встал вопрос именно о локальном обмене и его производительности.
Я решил исследовать существующие варианты обмена сообщениями. Задача эта достаточно стандартна и известна как IPC (Inter Process Communications). Но что можно сделать на js и на какую производительность при этом рассчитывать?
Проведя серию тестов и получив результаты решил поделиться ими с читателим. Заинтересованных прошу под кат.
Читать полностью »
Межпроцессная репликация объектов с помощью QtRemoteObjects
2015-02-18 в 22:18, admin, рубрики: c++, IPC, qt, RPC, Программирование, метки: ipc, qt, rpc7 октября 2014 года в публичном доступе появились исходники Qt-модуля QtRemoteObjects. Модуль создан в недрах Ford Motor Company (автор Brett Stottlemyer). Вещь, на мой взгляд, очень перспективная. Модуль позволяет, например, передавать сигналы между объектами по сети. Но этим возможности модуля не ограничиваются. Более точно суть модуля описывает его предыдущее наименование — Replica, так как объекты «реплицируются» между процессами.
Ключевой идеей QtRemoteObjects, которая качественно отличает его от других способов межпроцессного взаимодействия/удаленного вызова процедур, является идея полностью продублировать Qt-объект в другие процессы. Это значит, что все изменения свойств (properties) в объекте — источнике отражаются (с уведомлением посредством сигналов) в объекте-реплике. Любые сигналы, которые эмитируются объектом-источником будут также эмитированы в каждом объекте-реплике. Также можно устанавливать свойства, вызывать слоты и в объекте-реплике, при этом запросы отправляются объекту-источнику, который их обрабатывает и затем изменения отражаются в других объектах-репликах посредством сигналов или с помощью изменения свойств. В результате все объекты (включая объект-источник) синхронизируются. При этом вся сложность межпроцессного взаимодействия скрыта внутри QtRemoteObjects.
Читать полностью »
PHP IPC — Межпроцессное взаимодействие в PHP
2013-09-10 в 23:26, admin, рубрики: IPC, php, pthreads, виртуальная память, межпроцессное взаимодействие, многопоточность, потоки, семафоры, метки: ipc, PHP, pthreads, Виртуальная память, межпроцессное взаимодействие, многопоточность, потоки, семафорыЦелью данной заметки является ознакомление PHP-разработчиков с возможностями межпроцессного взаимодействия в данном языке. Заметка не предполагает во всех деталях рассказать о каждой из возможностей, деталях реализации или показать рабочие примеры кода.
Поскольку задача распараллеливания рано или поздно появляется у любого программиста, то данная заметка была задумана отправной точкой, с которой можно начать своё путешествие в мир увлекательного геморроя процесса построения таких систем.
Простой Inter-Process Communication на C#
2013-07-19 в 14:39, admin, рубрики: .net, IPC, Песочница, метки: .net, c++, IPC
В начале работы junior разработчиком мне пришлось столкнуться с таким малопонятным для меня на то время понятием, как Inter-Process Communication. Это была полная дикость для начинающего программиста, который и в рамках логики одного приложения ориентировался то с большим трудом. Стоит упомянуть, что проект написан на Delphi, а сам механизм IPC реализован с помощью File Mapping и Windows Messages.
Что удивительно, узнал я том, как вся эта система работает изнутри, спустя едва ли не год, когда пришлось маленько с ней повозиться. И только тогда я окончательно осознал, насколько высококлассной была её реализация, а API – удобен. Кому интересна реализация чего-то похожего на вышеупомянутую систему под С# – прошу под кат.
Читать полностью »
Пишем кроссплатформенную библиотеку на C++ для работы с именованными каналами
2013-01-17 в 13:47, admin, рубрики: c++, IPC, Программирование, метки: c++, IPCПредыстория
В процессе разработки одного B2B проекта возникла необходимость обращения к нашему приложению из различных систем вроде 1C, Oracle, MS Sql Server. Первый «универсальный» вариант, который пришел в голову – использовать веб-сервисы. Но, к сожалению, у вышеупомянутых систем несколько разное понимание этого стандарта (например, не факт, что тот же oracle и 1C будут понимать друг друга), кроме того нам не хотелось раздувать проект использованием тяжелых сторонних библиотек (на тот момент мы уже использовали boost и Intel TBB, притягивать же еще Qt или gSoap нам не хотелось).
Поэтому было решено писать свой велосипед.
Читать полностью »