中断:
软中断 tasklet 工作队列work_queue
进程:
runqueue 运行队列
{
..........
task_struct *curr; 当前运行任务
task_struct *idle; 该处理器的空任务
...........
}
并发 竞态:
spinlock semaphore 自旋锁 信号量
阻塞:
等待队列 wait_queue_head_t
wait_event_interruptible(queue,condition)
非阻塞:
Poll select
阻塞定义:
阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,知道满足可操作的条件后再进行操作。
被挂起的进程进入睡眠状态,被从调度器的runqueue运行队列中移走,直到等待的条件被满足
非阻塞定义:
非阻塞操作的进程在不能进行设备操作时并不挂起,他或者放弃,或者不停的查询,直至可以进行进程操作。
是不是可以这样理解:当进行不停的查询时,其实相当自旋的状态,一直等待条件为真。。