Nothing Special   »   [go: up one dir, main page]

RU2592461C2 - Способ передачи данных между процессами - Google Patents

Способ передачи данных между процессами Download PDF

Info

Publication number
RU2592461C2
RU2592461C2 RU2014149043/08A RU2014149043A RU2592461C2 RU 2592461 C2 RU2592461 C2 RU 2592461C2 RU 2014149043/08 A RU2014149043/08 A RU 2014149043/08A RU 2014149043 A RU2014149043 A RU 2014149043A RU 2592461 C2 RU2592461 C2 RU 2592461C2
Authority
RU
Russia
Prior art keywords
buffer
message
free
queue
channel
Prior art date
Application number
RU2014149043/08A
Other languages
English (en)
Other versions
RU2014149043A (ru
Inventor
Владимир Борисович Бетелин
Александр Николаевич Годунов
Андрей Игоревич Грюнталь
Валерий Александрович Солдатов
Игорь Иванович Хоменков
Original Assignee
Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук"(ФГУ ФНЦ НИИСИ РАН)
Владимир Борисович Бетелин
Александр Николаевич Годунов
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук"(ФГУ ФНЦ НИИСИ РАН), Владимир Борисович Бетелин, Александр Николаевич Годунов filed Critical Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук"(ФГУ ФНЦ НИИСИ РАН)
Priority to RU2014149043/08A priority Critical patent/RU2592461C2/ru
Publication of RU2014149043A publication Critical patent/RU2014149043A/ru
Application granted granted Critical
Publication of RU2592461C2 publication Critical patent/RU2592461C2/ru

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в расширении арсенала технических средств, обеспечивающих повышение надежности функционирования операционной системы механизма. Способ передачи данных между процессами в вычислительном средстве, снабженном запоминающим средством, содержит этапы, на которых: заранее выделяют в памяти запоминающего средства непрерывную область ввода-вывода; разделяют эту область ввода-вывода на сегменты, каждый из которых относится к единственному из процессов и к каждому из которых имеет доступ на запись только тот процесс, к которому относится данный сегмент, а доступ на чтение имеют все процессы; формируют в области ввода-вывода каналы для передачи данных между парами соответствующих процессов, именуемых далее в каждом канале процессом-отправителем и процессом-получателем, причем каждый из каналов включает в себя совокупность размещенных в сегменте процесса-отправителя данного канала буферов записи для размещения в них сообщений, а также очередь сообщений и очередь свободных буферов. 1 н. и 2 з.п. ф-лы, 2 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится к вычислительной технике, а конкретнее - к способу передачи данных между процессами.
Уровень техники
Для ускорения обработки данных используется распараллеливание этой обработки, когда несколько ее частей выполняется одновременно в нескольких процессах. При этом возникает задача такого обмена данными между отдельными процессами, чтобы процесс, принимающий данные, не оказывал влияния на процесс, передающий эти данные.
Эта задача в настоящее время решается различными путями. Так, в патенте США №5437031 (опубл. 25.07.1995) раскрыт способ управления межпроцессным обменом, в котором клиентские и управляющий процессы могут обращаться к общей памяти для обмена через секцию исключительного управления, отсылая при этом извещения через секцию извещения о событиях. Недостатком этого способа является необходимость в отдельных секциях исключительного управления и извещения о событиях, обращение к которым разных процессов может тормозить обмен данными между исполняемыми процессами.
В патенте США №5787300 (опубл. 28.07.1998) описан межпроцессный обмен, в котором в качестве универсального кэша используется конвейер в общей памяти, одновременно доступный для многих сеансов, т.к. он содержит несколько конвейеров, каждый из которых содержит связанный список записей и связанный список сеансов, однако наличие нескольких конвейеров усложняет данный способ.
Патент США №7124255 (опубл. 17.10.2006) и патент США №7152231 (опубл. 19.12.2006) описывают способы обмена данными, в которых процессы, передающие данные, присоединяются к специальному запоминающему средству, наличие которого усложняет эти способы. Сходный способ описан в заявке Китая №102122256 (опубл. 13.07.2011), где данные кэшируются в запоминающем пространстве большой емкости во внешней памяти, наличие которой также усложняет выполнение этого способа.
В заявке Великобритании №2295473 (опубл. 29.05.1996) представлен механизм обмена данными, где в основной памяти передающего и принимающего процессов готовят буфера, между которыми и осуществляется обмен данными после сообщения принимающим процессом физического адреса своего буфера передающему процессу. Сложность этого механизма вполне очевидна.
Очень сложный порядок передачи данных описан в заявке Китая №101127685 (опубл. 20.02.2005), когда между передающим и получающим процессами производится множественный обмен извещениями и адресами.
Способ по патенту США №7219198 (опубл. 15.05.2007) позволяет облегчить обмен данными за счет того, что для каждого процесса формируются очереди, доступные для записи одновременно всеми процессами на одном конце и доступные для неодновременного считывания на другом конце. Однако такой способ не обеспечивает достаточной защиты данных одного процесса от влияния другого процесса.
Во всех указанных аналогах для пересылки данных от одного процесса к другому используется общая память, вследствие чего возможно влияние процессов друг на друга. Например, при сбое в работе одного процесса он может исказить данные другого процесса, что приведет к искажению работы и остальных процессов.
Раскрытие изобретения
Задача настоящего изобретения состоит в разработке такого механизма межпроцессного обмена, который, расширяя арсенал технических средств, обеспечивал бы предотвращение влияния других процессов на данные и управляющую информацию, пересылаемые конкретному процессу.
Для решения этой задачи и достижения указанного технического результата в настоящем изобретении предложен способ передачи данных между процессами в вычислительном средстве, снабженном запоминающим средством, содержащий этапы, на которых: заранее выделяют в памяти запоминающего средства непрерывную область ввода-вывода; разделяют эту область ввода-вывода на сегменты, каждый из которых относится к единственному из процессов и к каждому из которых имеет доступ на запись только тот процесс, к которому относится данный сегмент, а доступ на чтение имеют все процессы; формируют в области ввода-вывода каналы для передачи данных между парами соответствующих процессов, именуемых далее в каждой паре процессом-отправителем и процессом-получателем, причем каждый из каналов включает в себя совокупность размещенных в сегменте процесса-отправителя данного канала буферов записи для размещения в них сообщений, а также очередь сообщений и очередь свободных буферов; при необходимости отправки сообщения конкретным процессом-отправителем конкретному процессу-получателю по каналу между ними процесс-отправитель записывает это сообщение в свободный буфер записи и помещает этот буфер записи в очередь сообщений; при необходимости получения сообщения конкретным процессом-получателем от конкретного процесса-отправителя по каналу между ними процесс-получатель считывает это сообщение из буфера записи, помещенного в очередь сообщений, и помещает этот буфер записи в очередь свободных буферов.
Особенность способа по настоящему изобретению состоит в том, что при приостановке потока управления ввиду отсутствия сообщений для конкретного процесса-получателя или свободных буферов для конкретного процесса-отправителя могут выставлять в описателе соответствующего канала, соответственно, запрос на уведомление о появлении сообщения или запрос на уведомление о появлении свободного буфера; тогда при помещении буфера записи с записанным сообщением в очередь сообщений конкретного канала и при наличии запроса на уведомление о появлении сообщения отправляют процессу-получателю уведомление о появлении сообщения в канале; при помещении свободного буфера в очередь свободных буферов конкретного канала и при наличии запроса на уведомление о появлении свободного буфера отправляют процессу-отправителю уведомление о появлении свободного буфера в канале; при поступлении уведомления о появлении сообщения объявляют поток управления процесса-получателя, ждущий сообщения, работоспособным и считывают очередное сообщение из соответствующего буфера записи из очереди сообщений; при поступлении уведомления о появлении свободного буфера объявляют поток управления процесса-отправителя, ждущий свободного буфера, работоспособным, записывают сообщение в свободный буфер и помещают буфер с записанным сообщением в очередь сообщений данного канала.
Еще одна особенность способа по настоящему изобретению состоит в том, что очередь сообщений могут формировать в виде кольцевого буфера, предназначенного для записи идентификаторов тех из буферов записи, в которые последовательно записывают сообщения соответственного процесса-отправителя, а очередь свободных буферов могут формировать в виде кольцевого буфера, предназначенного для записи идентификаторов тех из буферов записи, которые освобождаются после считывания соответственным процессом-получателем; при этом размещают кольцевой буфер очереди сообщений в сегменте процесса-отправителя вместе с указателем на начало свободного места в этом кольцевом буфере очереди сообщений и указателем на начало занятого места в кольцевом буфере очереди свободных буферов; и размещают кольцевой буфер очереди свободных буферов в сегменте процесса-получателя вместе с указателем на начало свободного места в этом кольцевом буфере очереди свободных буферов и указателем на начало занятого места в кольцевом буфере очереди сообщений.
Краткое описание чертежей
Изобретение поясняется приложенными чертежами, которые являются чисто иллюстративными и не ограничивают объем данного изобретения.
Фиг. 1 схематично показывает связи между отдельными элементами в устройстве, реализующем способ по настоящему изобретению.
Фиг. 2 представляет собой блок-схему алгоритма способа по настоящему изобретению.
Подробное описание вариантов осуществления
Прежде всего, приведем некоторые общие соображения.
Прикладные программы, исполняемые в среде операционной системы, выполняются, как правило, в виде нескольких процессов, в рамках каждого из которых выполняется конкретная часть этой прикладной программы. Разбиение прикладной программы (распределение ее по процессам и последовательность исполнения процессов) известно специалистам и не входит в объем притязаний по данному изобретению. Корректное исполнение процессов, корректное переключение с одного процесса на другой и прочие аспекты их работы обеспечиваются и контролируются операционной системой, что также известно специалистам и не входит в объем притязаний по данному изобретению.
Каждому процессу операционная система выделяет память процесса, хранящая относящиеся к данному процессу часть прикладной программы и данные. Эти данные - при безошибочной работе операционной системы - недоступны для программ других процессов (т.е. для чтения данных этого процесса или для записи своих данных).
Внутри каждого исполняемого процесса каждая прикладная программа может разбиваться на несколько потоков, в рамках каждого из которых выполняется отдельная часть этой прикладной программы. Такое разбиение процесса на потоки также известно специалистам и не входит в объем притязаний по данному изобретению. Важно, что память конкретного процесса, недоступная для остальных исполняемых процессов, доступна на чтение и запись для всех потоков, составляющих данный процесс.
Способ по настоящему изобретению может осуществляться в устройстве, проиллюстрированном на Фиг. 1. В этом устройстве, представляющем собой вычислительное средство, содержатся связанные между собой процессор и запоминающее средство, или память. В дальнейшем описании термины «запоминающее средство» и «память» используются взаимозаменяемо.
В качестве упомянутого выше вычислительного средства может использоваться любое известное специалистам либо вновь разработанное средство, способное осуществлять обработку («processing») данных. Например, в качестве такого вычислительного средства может выступать персональный компьютер, сервер, специализированный компьютер и т.п.
Следует отметить, что процессор («processor») вычислительного средства может одновременно выполнять несколько процессов, как правило, в режиме разделения времени. При этом эти процессы могут быть как несвязанными, так и взаимосвязанными, к примеру, в случае распараллеливания конкретной задачи. В последнем случае разные процессы могут потребовать обмена данными. Такой обмен данными должен происходить так, чтобы процесс, которому передаются данные, не мог влиять на данные того процесса, который осуществляет передачу. Или если, скажем, данные одного процесса будут по какой-либо причине испорчены, остальные процессы должны остаться работоспособными.
Для реализации способа по настоящему изобретению (см. блок-схему алгоритма по Фиг. 2) в памяти вычислительного средства заранее выделяют непрерывную область ввода-вывода и разделяют эту область ввода-вывода на сегменты. Каждый из этих сегментов относится к единственному из исполняемых процессов и к каждому сегменту имеет доступ на запись только тот процесс, к которому данный сегмент относится. Доступ же на чтение к любому сегменту имеют все исполняемые процессы. Затем в области ввода-вывода формируют каналы для передачи данных между парами соответствующих процессов, именуемых далее в каждом канале процессом-отправителем и процессом-получателем. На Фиг. 1 для простоты показан один такой канал. Однако специалист поймет, что аналогичные каналы будут сформированы для любой пары взаимодействующих процессов, в том числе для той же пары процессов, показанных на Фиг. 1, в том случае, когда эти процессы поменяются ролями, т.е. показанный справа процесс станет процессом-отправителем, а показанный слева - процессом-получателем.
Специалистам понятно, что под формированием каналов в данном случае понимается выделение некоторых зон памяти, которые служат целям обмена данными. Действительно, каждый из сформированных каналов включает в себя совокупность буферов записи, размещенных в сегменте процесса-отправителя данного канала и предназначенных для помещения в них сообщений (на Фиг. 1 эти буфера записи показаны слева в виде столбца прямоугольников). Специалистам понятно, что каждый буфер записи имеет свой уникальный идентификатор. Кроме того, в канал входят также очередь сообщений и очередь свободных буферов, каждая из которых показана в виде связной строчки прямоугольников, символизирующих отдельные буфера. Заштрихованные прямоугольники в каждой из этих очередей означают занятые буфера, а незаштрихованные - свободные. Стрелками в каждой из очередей условно обозначены указатели первых из свободных или занятых буферов.
В принципе, обе указанных очереди могут быть сформированы любым известным специалистам образом. Например, это могут быть регистры типа FIFO (First-In-First-Out), как это описано в патенте США №8745291 (опубл. 03.06.2014). Однако предпочтительно, чтобы каждая из этих очередей была сформирована в виде кольцевого буфера. Использование именно кольцевых буферов в межпроцессном обмене известно, например, из выложенной заявки Япония №2009-223788 (опубл. 01.10.2009). В данном случае эти кольцевые буфера формируются следующим образом.
Очередь сообщений, как видно на Фиг. 1, формируют в сегменте процесса-отправителя и предназначают для записи идентификаторов тех буферов записи этого же сегмента, в которые последовательно записывают сообщения процесса-отправителя, к которому данный сегмент (левый на Фиг. 1) относится. Очередь же свободных буферов, как видно из Фиг. 1, формируют в сегменте процесса-получателя и предназначают для записи идентификаторов тех буферов записи этого сегмента, которые освобождаются после считывания процессом-получателем, к которому относится данный сегмент (правый на Фиг. 1).
Когда в ходе работы вычислительного средства возникает необходимость передать данные (отправить сообщение) из одного процесса (процесса-отправителя) в другой процесс (процесс-получатель) по каналу между ними, этот процесс-отправитель записывает указанное сообщение в свободный буфер записи и помещает этот буфер записи в очередь сообщений. Специалистам понятно, что выражение «помещает буфер записи в очередь» означает, что в очередь помещается идентификатор этого буфера записи. При необходимости же приема переданных данных (получения сообщения) конкретным процессом-получателем от конкретного процесса-отправителя по каналу между ними этот процесс-получатель считывает указанное сообщение из буфера записи, помещенного в очередь сообщений, и помещает этот буфер записи в очередь свободных буферов. Считывание содержимого любого буфера записи в любом сегменте может осуществлять, как уже отмечено, любой процесс, но канал для передачи данных между конкретным процессом-отправителем и его адресатом (т.е. процессом получателем), как уже отмечено, может быть образован для каждой пары взаимодействующих процессов.
Если в ходе работы какой-либо процесс (назовем его условно «процесс В») должен использовать данные, получаемые в другом процессе (назовем его условно «процесс А»), но эти данные еще не сформированы, т.е. не записаны в буфер записи процесса А, поток управления процесса В могут приостанавливать ввиду отсутствия сообщений для процесса В, а в описателе соответствующего канала, сформированного между процессами А и В, могут выставлять запрос на уведомление о появлении сообщения. Когда процесс А, являющийся в данном случае процессом-отправителем, помещает буфер записи с записанным сообщением для процесса В, который является в данном случае процессом-получателем, в очередь сообщений канала между процессами А и В, процессу В отправляют уведомление о появлении сообщения в данном канале. При поступлении такого уведомления о появлении сообщения поток управления процесса В (процесса-получателя), ждущий этого сообщения, объявляют работоспособным и считывают очередное сообщение из соответствующего буфера записи из очереди сообщений в сегменте процесса А (процесса-отправителя).
Если в ходе работы процесс А должен отправить очередное сообщение процессу В, но очередь свободных буферов пуста (т.е. свободных буферов нет), поток управления процесса А могут приостанавливать ввиду отсутствия свободных буферов для этого процесса-отправителя, а в описателе соответствующего канала, сформированного между процессами А и В, могут выставлять запрос на уведомление о появлении свободного буфера. При помещении свободного буфера в очередь свободных буферов данного канала процессу А (процессу-отправителю) отправляют уведомление о появлении свободного буфера в указанном канале. При поступлении этого уведомления о появлении свободного буфера поток управления процесса А (процесса-отправителя), ждущий свободного буфера, могут объявлять работоспособным, записывать сообщение в указанный свободный буфер и помещать этот буфер с записанным сообщением в очередь сообщений данного канала.
Примером применения рассмотренного способа может служить следующее.
При решении задачи обработки сигналов - например, от фазированных антенных решеток - вычисления для повышения быстродействия производятся параллельно: вычислительная процедура представляется в виде конвейера, состоящего из отдельных вычислительных стадий, соединенных между собой потоками данных. Так на первой стадии производится прием данных, на второй - распаковка, полученных данных, на третьей - преобразование из временной в частотную область, на четвертой стадии - формирование вертикальных и горизонтальных диаграмм направленностей и т.д. Каждая стадия выполняется в контексте отдельного процесса на одном из ядер многоядерного процессора. Потоки данных, необходимые для решения задачи, передаются между стадиями по каналам, интерфейс которых выполнен по стандарту ARINC 653.
Каждый канал определяется двумя портами, один из которых служит для передачи, а другой - для приема данных. Буфера, предназначенные для данных, а также циклические буфера очереди сообщений и очереди свободных буферов находятся в заранее выделенной области ввода-вывода. Изменять содержимое буферов данных и очередей сообщений может только процесс, передающий сообщение. Изменять содержимое очереди свободных буферов может только процесс, принимающий сообщения. При передаче сообщения из очереди свободных буферов запрашивается буфер для записи данных, в полученный буфер помещается сообщение, идентификатор буфера с записанными данными помещается в очередь отправленных сообщений.
Если свободных буферов нет, тогда поток, отправляющий сообщение, может становиться неработоспособным до тех пор, пока не появится свободный буфер. Для получения сообщения проверяется очередь отправленных сообщений. Если эта очередь пуста, тогда принимающий поток может становиться неработоспособным до тех пор, пока не будет получено сообщение. Если в очереди есть сообщения, тогда читается первое из них, после этого идентификатор буфера с полученными данными помещается в очередь свободных буферов.
Таким образом, способ по настоящему изобретению обеспечивает механизм межпроцессного обмена, который, расширяя арсенал технических средств, позволяет предотвратить влияние других процессов на данные и управляющую информацию, пересылаемые конкретному процессу, т.е. повышает надежность функционирования операционной системы.

Claims (3)

1. Способ передачи данных между процессами в вычислительном средстве, снабженном запоминающим средством, содержащий этапы, на которых:
- заранее выделяют в памяти упомянутого запоминающего средства непрерывную область ввода-вывода;
- разделяют упомянутую область ввода-вывода на сегменты, каждый из которых относится к единственному из упомянутых процессов и к каждому из которых имеет доступ на запись только тот процесс, к которому относится данный сегмент, а доступ на чтение имеют все упомянутые процессы;
- формируют в упомянутой области ввода-вывода каналы для передачи данных между парами соответствующих процессов, именуемых далее в каждом упомянутом канале процессом-отправителем и процессом-получателем, причем каждый из упомянутых каналов включает в себя совокупность размещенных в сегменте процесса-отправителя данного канала буферов записи для размещения в них сообщений, а также очередь сообщений и очередь свободных буферов;
- при необходимости отправки сообщения конкретным процессом-отправителем конкретному процессу-получателю по каналу между ними упомянутый процесс-отправитель записывает это сообщение в свободный буфер записи и помещает этот буфер записи в очередь сообщений;
- при необходимости получения сообщения конкретным процессом-получателем от конкретного процесса-отправителя по каналу между ними упомянутый процесс-получатель считывает это сообщение из буфера записи, помещенного в очередь сообщений, и помещает этот буфер записи в очередь свободных буферов.
2. Способ по п. 1, в котором:
- при приостановке потока управления ввиду отсутствия сообщений для конкретного процесса-получателя или свободных буферов для конкретного процесса-отправителя выставляют в описателе соответствующего канала, соответственно, запрос на уведомление о появлении сообщения или запрос на уведомление о появлении свободного буфера;
- при помещении буфера записи с записанным сообщением в очередь сообщений конкретного канала и при наличии упомянутого запроса на уведомление о появлении сообщения отправляют упомянутому процессу-получателю уведомление о появлении сообщения в упомянутом канале;
- при помещении свободного буфера в очередь свободных буферов конкретного канала и при наличии упомянутого запроса на уведомление о появлении свободного буфера отправляют упомянутому процессу-отправителю уведомление о появлении свободного буфера в упомянутом канале;
- при поступлении упомянутого уведомления о появлении сообщения объявляют поток управления упомянутого процесса-получателя, ждущий сообщения, работоспособным и считывают очередное сообщение из соответствующего буфера записи из очереди сообщений;
- при поступлении упомянутого уведомления о появлении свободного буфера объявляют поток управления упомянутого процесса-отправителя, ждущий свободного буфера, работоспособным, записывают сообщение в упомянутый свободный буфер и помещают упомянутый буфер с записанным сообщением в очередь сообщений данного канала.
3. Способ по п. 1 или 2, в котором:
- упомянутую очередь сообщений формируют в виде кольцевого буфера, предназначенного для записи идентификаторов тех из упомянутых буферов записи, в которые последовательно записывают сообщения соответственного процесса-отправителя, а упомянутую очередь свободных буферов формируют в виде кольцевого буфера, предназначенного для записи идентификаторов тех из упомянутых буферов записи, которые освобождаются после считывания соответственным процессом-получателем;
- размещают упомянутый кольцевой буфер очереди сообщений в сегменте процесса-отправителя вместе с указателем на начало свободного места в этом кольцевом буфере очереди сообщений и указателем на начало занятого места в кольцевом буфере очереди свободных буферов;
- размещают упомянутый кольцевой буфер очереди свободных буферов в сегменте процесса-получателя вместе с указателем на начало свободного места в этом кольцевом буфере очереди свободных буферов и указателем на начало занятого места в кольцевом буфере очереди сообщений.
RU2014149043/08A 2014-12-05 2014-12-05 Способ передачи данных между процессами RU2592461C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014149043/08A RU2592461C2 (ru) 2014-12-05 2014-12-05 Способ передачи данных между процессами

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014149043/08A RU2592461C2 (ru) 2014-12-05 2014-12-05 Способ передачи данных между процессами

Publications (2)

Publication Number Publication Date
RU2014149043A RU2014149043A (ru) 2016-06-27
RU2592461C2 true RU2592461C2 (ru) 2016-07-20

Family

ID=56195401

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014149043/08A RU2592461C2 (ru) 2014-12-05 2014-12-05 Способ передачи данных между процессами

Country Status (1)

Country Link
RU (1) RU2592461C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2790094C1 (ru) * 2022-05-19 2023-02-14 Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В ГЕТЕРОГЕННОЙ МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ НА КРИСТАЛЛЕ (СнК)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437031A (en) * 1990-10-10 1995-07-25 Fuji Xerox Co., Ltd. Interprocess communications control system
GB2295473A (en) * 1992-09-25 1996-05-29 Hitachi Ltd Interprocess communication
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
RU2341906C2 (ru) * 2003-11-12 2008-12-20 Квэлкомм Инкорпорейтед Интерфейс высокоскоростной передачи данных с улучшенным управлением соединением
RU2443012C2 (ru) * 2005-10-26 2012-02-20 Майкрософт Корпорейшн Конфигурация изолированных расширений и драйверов устройств
RU2488876C2 (ru) * 2005-04-20 2013-07-27 Акссана (Израэль) Лтд. Способ и устройство защиты данных

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437031A (en) * 1990-10-10 1995-07-25 Fuji Xerox Co., Ltd. Interprocess communications control system
GB2295473A (en) * 1992-09-25 1996-05-29 Hitachi Ltd Interprocess communication
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
RU2341906C2 (ru) * 2003-11-12 2008-12-20 Квэлкомм Инкорпорейтед Интерфейс высокоскоростной передачи данных с улучшенным управлением соединением
RU2488876C2 (ru) * 2005-04-20 2013-07-27 Акссана (Израэль) Лтд. Способ и устройство защиты данных
RU2443012C2 (ru) * 2005-10-26 2012-02-20 Майкрософт Корпорейшн Конфигурация изолированных расширений и драйверов устройств

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2790094C1 (ru) * 2022-05-19 2023-02-14 Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В ГЕТЕРОГЕННОЙ МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ НА КРИСТАЛЛЕ (СнК)

Also Published As

Publication number Publication date
RU2014149043A (ru) 2016-06-27

Similar Documents

Publication Publication Date Title
CN110741356A (zh) 多处理器系统中的中继一致存储器管理
EP2908252A1 (en) Inter-core communication apparatus and method
WO2020000485A1 (zh) 一种基于NVMe的数据写入方法、装置及系统
US10896001B1 (en) Notifications in integrated circuits
US10614004B2 (en) Memory transaction prioritization
US10303627B2 (en) Hardware queue manager with water marking
KR20210051325A (ko) 비대칭 멀티프로세싱 시스템의 데이터 공유 장치 및 방법
US8806168B2 (en) Producer-consumer data transfer using piecewise circular queue
CN108470008B (zh) 串口数据读写方法、装置、计算机设备和存储介质
US20070162637A1 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
US10339064B2 (en) Hot cache line arbitration
WO2018176397A1 (zh) 一种锁分配的方法、装置和计算设备
US7334056B2 (en) Scalable architecture for context execution
US9311225B2 (en) DMA channels
US11989599B2 (en) Isolating communication streams to achieve high performance multi-threaded communication for global address space programs
RU2592461C2 (ru) Способ передачи данных между процессами
CN114356839B (zh) 处理写操作的方法、设备、处理器及设备可读存储介质
US10185587B2 (en) Wait-free process request execution utilizing a dedicated helper thread
US10210106B2 (en) Configurable hardware queue management
KR20130021637A (ko) 멀티 코어 시스템의 인터럽트 할당 방법 및 장치
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
US10042554B2 (en) Increased bandwidth of ordered stores in a non-uniform memory subsystem
CN110647493B (zh) 一种数据传输方法、处理器和pcie系统
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system
KR100978083B1 (ko) 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체