如何在C ++中通过网络共享RAM模块?

时间:2018-08-07 05:02:43

标签: c++ network-programming resource-management

我只需要知道有什么方法可以共享多个用于托管客户端系统的RAM模块?

我曾经写过一个不定式计算应用程序,它通过建立简单的服务器客户端连接并分散并行任务,然后将结果收集到目标系统来使用网络中另一台PC上的1 mb。但是现在我需要一些东西来直接操作ram存储。有什么可用的工具包或sdk之类的东西吗?可以使用所有c语言。

1 个答案:

答案 0 :(得分:2)

你很困惑。

首先,RAM未(直接)使用processesoperating system kernel负责管理RAM,并通过虚拟内存提供virtual address space到进程(因此,在进程中运行的程序具有其虚拟地址空间)。阅读诸如Operating Systems: Three Easy Pieces之类的优秀教科书,以了解这些概念。

无法在整个网络上共享RAM ,这毫无意义(因为RAM的带宽和延迟比网络要好得多)。相对于RAM的速度,网络要慢数千倍(因此始终是瓶颈)!

您可以在多个主机上运行的进程之间使用distributed computing将软件设计为message passing

您有很多东西要学习;查看MapReduceMPIsockets0mq等,等等。

您可能要使用Linux或POSIX(因为它在分布式或云计算中占主导地位)。阅读一些ALP之类的Linux编程书籍或更新的书籍,然后查看syscalls(2)及其所引用的许多man页。请注意,socket(2)poll(2)socket(7)tcp(7)(以及其他system calls)与您的需求高度相关。

您可能要使用一些database。也许RDBMSPostGreSQLMongoDBREDIS甚至memcached可能有用。

在编码之前,您需要学习和阅读很多东西。