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

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

Info

Publication number
RU2014149043A
RU2014149043A RU2014149043A RU2014149043A RU2014149043A RU 2014149043 A RU2014149043 A RU 2014149043A RU 2014149043 A RU2014149043 A RU 2014149043A RU 2014149043 A RU2014149043 A RU 2014149043A RU 2014149043 A RU2014149043 A RU 2014149043A
Authority
RU
Russia
Prior art keywords
message
buffer
free
queue
mentioned
Prior art date
Application number
RU2014149043A
Other languages
English (en)
Other versions
RU2592461C2 (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

Abstract

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

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 true RU2014149043A (ru) 2016-06-27
RU2592461C2 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)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04251338A (ja) * 1990-10-10 1992-09-07 Fuji Xerox Co Ltd プロセス間通信の制御方式
GB2295473B (en) * 1992-09-25 1996-10-30 Hitachi Ltd Method for interprocessor communication
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
JP4782694B2 (ja) * 2003-11-12 2011-09-28 クゥアルコム・インコーポレイテッド 改善されたリンク制御を有する高速データレートインタフェース
ATE502334T1 (de) * 2005-04-20 2011-04-15 Axxana Israel Ltd Ferndaten-spiegelungssystem
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers

Also Published As

Publication number Publication date
RU2592461C2 (ru) 2016-07-20

Similar Documents

Publication Publication Date Title
SG11201907619VA (en) Blockchain data storage system and method
GB2569060A (en) Workload optimized data deduplication using ghost fingerprints
SG10201806803TA (en) Hybrid bot framework for enterprises
EP3786789A4 (en) PROCESS AND DEVICE FOR READING / WRITING DATA, AND CIRCULAR WAITING QUEUE
SG11201911475TA (en) Method for processing semi persistent scheduling, communication device, and storage medium
CY1111535T1 (el) Διπλης κατευθυνσης μεταφορα δεδομενων σε μια απλη λειτουργια i/o
MX2015016349A (es) Acceso programatico eficiente de memoria a traves de protocolos de acceso de archivo de red.
RU2016105513A (ru) Масштабируемый прямой обмен данными между узлами через шину межсоединения периферийных компонентов типа экспресс (pcie)
RU2013117127A (ru) Многопортовый контроллер запоминающего устройства с портами, ассоциированными с классами трафика
NZ740994A (en) Sorting biological and non-biological moieties using magnetic levitation
TW200705200A (en) Data transfer control device, image processing device, and data transfer control method
UY36011A (es) Sistemas y métodos para rastrear artículos
MX2016003672A (es) Tubo con etiqueta y metodo para mantenimiento del tubo.
ZA202105522B (en) Handling an input/output store instruction
MX2015006441A (es) Metodo y dispositivo para difundir datos de medios de flujo continuo.
GB201211447D0 (en) Persistant messaging
WO2017003696A3 (en) Direct memory access with filtering
TW201643715A (en) Byte level granularity buffer overflow detection for memory corruption detection architectures
WO2018000765A1 (zh) 一种协处理器、数据读取方法、处理器系统及存储介质
WO2018205105A1 (zh) 虚拟机的传感器实现装置及其方法
RU2014149043A (ru) Способ передачи данных между процессами
TW200801955A (en) System and method for performing scatter/gather direct memory access transfers
US10146735B2 (en) Expanded distribution unit
CN102591825B (zh) 基于 sync 机制的sata 控制器与闪存控制器间的传输装置及方法
CN105320466A (zh) 固态硬盘安排操作的方法