如何同时保护共享资源免受用户进程和内核进程的影响?

时间:2012-07-18 17:44:45

标签: linux operating-system locking

如何同时保护共享资源免受用户进程和内核进程的影响?这是罕见的,非常极端的情况。我在接受采访时被问到这个问题。 TIA

1 个答案:

答案 0 :(得分:0)

嗯,可以通过多种方式完成。 一种方法是

系统调用
创建两个系统调用,一个用于获取锁,另一个用于释放锁。如果用户进程想要访问共享资源,它将调用acquire-lock系统调用。如果系统调用成功返回,则用户进程可以访问共享资源。当用户进程完成时,它将通过调用释放系统调用来释放锁。系统调用自身获取释放spinlock_tmutex_t(或任何其他锁定机制)。想要访问共享资源的内核进程必须使用spin_lock/spin_unlockmutex_lock/mutex_unlock获取相同的锁。

正如@Damon指出的那样,这是非常通用的问题,你应该向面试提出具体问题,以便给出具体答案。