linux 0.11中的等待队列比较有意思,他并不是直接创建一个链表,然后使用next指向下一个链表阶段这个样子,他是基于任务调度而进行的链表结构搭建:
就是说对于一个等待队列wait,他先指向任务A,而当需要新增一个等待任务B的时候,先将本身进行阻塞,即设置任务状态为不可中断睡眠状态,然后主动执行调度,而在调用调度函数之后再执行唤醒A,这样在执行唤醒整个链表上的任务的时候,只需要唤醒一个,也就是wait指向的任务,其他任务就会由任务调度程序一个一个的唤醒;
linux 0.11中的等待队列比较有意思,他并不是直接创建一个链表,然后使用next指向下一个链表阶段这个样子,他是基于任务调度而进行的链表结构搭建:
就是说对于一个等待队列wait,他先指向任务A,而当需要新增一个等待任务B的时候,先将本身进行阻塞,即设置任务状态为不可中断睡眠状态,然后主动执行调度,而在调用调度函数之后再执行唤醒A,这样在执行唤醒整个链表上的任务的时候,只需要唤醒一个,也就是wait指向的任务,其他任务就会由任务调度程序一个一个的唤醒;