【发布时间】:2012-07-17 20:05:26
【问题描述】:
如何同时保护共享资源不受用户进程和内核进程的影响?这是罕见且非常极端的情况。我在一次采访中被问到这个问题。 TIA
【问题讨论】:
-
你不能保护任何东西不受内核的影响。它可以控制一切。
-
您可以尝试将资源(假设它是内存资源)的页面标记为不可访问。我想这必须在内核中完成,因为用户空间权限可能不会影响内核。
-
@Linuxios,这是一般性声明。但总的来说,我们使用了几种锁定机制(当然,仅在合作环境下),如自旋锁、信号量、互斥锁,可能正在使用一些条件信号等。我的查询仅与此上下文相关(受限) .谢谢
-
我认为这种面试题适合“我不明白,你能确切地解释一下你想达到什么目标吗?”。正如 Linuxios 所说,你不能真正从内核“保护”(或隐藏)任何东西。除非内核在 VM 中运行并且您可以控制主机,否则这种努力有点愚蠢(在这种情况下,“内核”更像是用户进程而不是内核)。另一方面,“保护”的含义可能是关于正确(原子地)同时访问诸如端口或块设备之类的资源。你只需要知道他们真正想要什么。
-
@kannah:我提到如果内核不与你合作,它仍然可以访问它想要的任何东西。这就是我所说的。
标签: linux operating-system locking