【问题标题】:Restricting memory regions to threads将内存区域限制为线程
【发布时间】:2017-04-13 07:24:18
【问题描述】:

在 Linux/Darwin/Windows 中是否有一种特定于操作系统的方式,将某些虚拟内存页面的访问限制为仅一个线程,以便当另一个线程尝试访问它时,操作系统会拦截并报告错误?

我试图用多个进程来模拟fork 的行为,其中每个进程都有自己的内存,除了一些共享内存,主要是为了避免一个工作人员访问属于另一个工作人员的内存的所有编程错误。

【问题讨论】:

  • 然后把你的问题转过来,使用 fork() 但先设置一些共享内存段。

标签: linux multithreading memory memory-management virtual-memory


【解决方案1】:

作为一般命题,这是不可能的。线程的整个想法是让多个执行流共享相同的地址。如果您是内核模式的 kommando,您可能可以对页表进行一些修改,线程使用该页表使页面无法从用户模式访问,然后解锁它们。

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2014-04-29
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多