【发布时间】:2013-08-26 05:29:33
【问题描述】:
mprotect() 用于保护内存页面,例如,使页面只读。它为整个进程设置了这种保护,也就是说,如果一个页面是只读的,则没有线程可以写入该页面。有没有办法为不同的线程以不同的方式保护页面?例如,1个线程可以写入页面P,而我程序中的所有其他线程只能从P读取。
【问题讨论】:
-
操作系统内存安全处于进程级别。
-
mprotect不能这样做。线程必须锁定他们想要持有的东西。您在线程中保护整个页面的动机是什么?你不能用锁(例如,当一个线程拥有写锁,而其他人都可以读)? -
即使面对应用程序错误,我也想保护这些区域,这就是为什么锁是不够的。是的,我知道
mprotect不是正确的方法,所以我想知道是否有任何方法可以实现。
标签: linux multithreading memory memory-management