【问题标题】:How can I share RAM module via network in C++?如何在 C++ 中通过网络共享 RAM 模块?
【发布时间】:2019-01-14 02:12:51
【问题描述】:

只是我想知道有没有办法共享多个 RAM 模块来托管客户端系统?

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

【问题讨论】:

  • 您所描述的“通过网络共享 ram”听起来非常接近 memcached 的全部内容。但是您描述的问题听起来并不像您需要直接访问其他节点上的内存存储,而只是有一种方法可以在节点之间进行消息传递。我不确定

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


【解决方案1】:

你很困惑。

首先,processes 不(直接)使用RAM。它是operating system kernel,它管理 RAM 并通过虚拟内存为进程提供virtual address spaces(因此,在进程中运行的程序具有其虚拟地址空间)。阅读像 Operating Systems: Three Easy Pieces 这样的好教科书来理解这些概念。

没有办法通过网络共享 RAM,这没有任何意义(因为 RAM 的带宽和延迟比网络的要好很多)。相对于 RAM 的速度,网络要慢数千倍(所以总是瓶颈)!

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

你有很多东西要学;查看MapReduceMPIsockets0mq 等...

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多