首页 > 试题广场 >

如果两个进程,都要去调用一个设备驱动,设备驱动里面定义的变量

[问答题]
如果两个进程,都要去调用一个设备驱动,设备驱动里面定义的变量是在内核态吗?如果进程A访问并改变了这个变量,那么进程B再访问,是不是读到改变之后的值?
- 设备驱动里定义的变量是在内核态中,操作系统只有内核态能够访问到硬件设备,驱动程序从内核态向用户态提供API接口以便调用和间接访问硬件设备 - 是否读到改变之后的值需要考虑并发和竞争的情况,如果多个进程访问,需要对共享变量加入互斥锁、自旋锁、信号量或者原子操作等同步技术保证数据的一致性
编辑于 2024-03-05 15:19:37 回复(0)
驱动程序的变量保存在内核态中,因为OS只有通过内核态才能访问到硬件设备,驱动程序从内核态向用户态输出API接口以便于调用和间接访问硬件设备。进程B访问的不是改变后的值,因为驱动程序必须考虑并发的问题,对于共享的变量,加入了锁来保证数据的一致性。
发表于 2022-11-29 09:46:23 回复(0)