中断:
软中断 tasklet 工作队列work_queue
进程:
runqueue 运行队列
{
..........
task_struct *curr; 当前运行任务
task_struct *idle; 该处理器的空任务
...........
}
并发 竞态:
spinlock semaphore 自旋锁 信号量
阻塞:
等待队列 wait_queue_head_t
wait_event_interruptible(queue,condition)
非阻塞:
Poll select
阻塞定义:
阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,知道满足可操作的条件后再进行操作。
被挂起的进程进入睡眠状态,被从调度器的runqueue运行队列中移走,直到等待的条件被满足
非阻塞定义:
非阻塞操作的进程在不能进行设备操作时并不挂起,他或者放弃,或者不停的查询,直至可以进行进程操作。
是不是可以这样理解:当进行不停的查询时,其实相当自旋的状态,一直等待条件为真。。
本文介绍了Linux内核中的关键调度概念,包括中断处理、进程调度、并发控制及阻塞与非阻塞操作的区别。详细解释了软中断、tasklet、工作队列、运行队列等机制,并探讨了自旋锁、信号量、等待队列等同步手段。
370

被折叠的 条评论
为什么被折叠?



