LINUX.ORG.RU

Rpc


2

1

Всего сообщений: 2

Simplerpc (libsrpc): Модель владения памятью

 , , ,

В предыдущей статье Simplerpc: Простой RPC на Си для Linux-приложений было краткое знакомство с framework-ом, в этой подробнее описана используемая в нём модель владения разделяемой памятью.

При использовании несколькими приложениями аллокатора из общего пула разделяемой памяти возникает несколько задач, которые можно по-разному решать. Пул отображается во все процессы по одному и тому же виртуальному адресу, поэтому указатель, полученный в одном процессе, остаётся валидным в другом, и данные между процессами можно передавать вообще без копирования. Обратная сторона такого удобства в том, что любой из процессов может в любой момент «умереть» — по exit(), SIGKILL или segfault — и оставить после себя либо недоделанную операцию с аллокатором, либо выделенные блоки, которые больше никому не нужны.

( читать дальше... )

dsn76
()

Simplerpc: Простой RPC на Си для Linux-приложений

 , ,

Есть классическая проблема: изолированные процессы — хорошо для надёжности, но хочется иногда позвать функцию из соседа, как будто она лежала в той же библиотеке. Стандартные IPC — это всегда протокол: описал интерфейс, сгенерировал стабы, поднял сервер, прописал адреса. simplerpc предлагает путь короче: ты пишешь обычную функцию на Си, линкуешь библиотеку — и она автоматически становится RPC-методом, доступным другим процессам на той же машине.

( читать дальше... )

dsn76
()