2

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

4

1 回答 1

0

好吧,它可以通过几种方式来完成。一种这样的方法是

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

正如@Damon 所指出的,这是非常笼统的问题,您应该在面试中提出具体问题才能给出具体答案。

于 2012-11-14T01:16:08.117 回答