linux 0.11中的等待队列

这篇博客深入探讨了Linux0.11内核中的等待队列实现。不同于常规的链表操作,Linux0.11通过任务调度来管理等待队列。当添加新等待任务时,任务会首先阻塞自身并触发调度,随后在调度过程中唤醒等待队列头部的任务,以此实现高效的任务唤醒。这种机制减少了唤醒所有任务的开销,确保了系统资源的有效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux 0.11中的等待队列比较有意思,他并不是直接创建一个链表,然后使用next指向下一个链表阶段这个样子,他是基于任务调度而进行的链表结构搭建:

就是说对于一个等待队列wait,他先指向任务A,而当需要新增一个等待任务B的时候,先将本身进行阻塞,即设置任务状态为不可中断睡眠状态,然后主动执行调度,而在调用调度函数之后再执行唤醒A,这样在执行唤醒整个链表上的任务的时候,只需要唤醒一个,也就是wait指向的任务,其他任务就会由任务调度程序一个一个的唤醒;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值