摘要: 7.1 阻塞与非阻塞 IO 阻塞操作是指在执行设备操作的时候,若不能获取资源,则挂起进程直到满足可操作的条件后再进行操作。被挂起的进程进入睡眠状态,被从调度器的运行队列移走,直到等待的条件被满足。 非阻塞操作的进程在不能进行设备操作时,并不挂起,要么放弃,要么不停的查询,直到可以进行操作为止。 驱动 阅读全文
posted @ 2019-10-17 17:21 游戏进行中 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 6.4 信号量 信号量(semaphore)是操作系统中最典型的用于同步和互斥的手段,信号量的值可以是 0,1 或者 n。信号量与操作系统的经典概念 PV 操作对应。 P(S): 将信号量 S 的值减 1,即 S = S - 1 如果 S >= 0,则该进程继续执行,否则该进程置为等待状态,排入等待 阅读全文
posted @ 2019-10-17 11:12 游戏进行中 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 设备驱动中必须要解决的一个问题是多个进程对共享资源的访问,并发的访问会导致竞态。 6.1 并发与竞态 并发(Concurrency)指的是多个执行单元同时、并行的执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(Race Conditi 阅读全文
posted @ 2019-10-17 09:15 游戏进行中 阅读(296) 评论(0) 推荐(0) 编辑