个人理解,内核级线程和进程是一样的,前者与posix线程(pthread)有很大的区别。因此,内核的进程调度策略和系统调用也适用于内核级线程。
调度策略有三种:
1.sched_normal 非实时调度策略,默认情况下是100~139,由nice值决定;
2.sched_fifo实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃
3.sched_rr实时调度策略,时间片轮转。当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。同样可以被高优先级抢占。
两种实时优先级范围在0至max_rt_prio-1之间,默认为0到99。
相关的系统调用(来自于lkd,不同内核可能有所不同):
nice()设置进程的nice值sched_setscheduler()设置进程的调度策略sched_getscheduler()获取进程的调度策略sched_setparam()设置进程的实时优先级sched_getparam()获取进程的实时优先级sched_get_priority_max()获取实时优先级的最大值sched_get_priority_min()获取实时优先级的最小值sched_rr_get_interval()获取进程的时间片值sched_setaffinity()设置进程的处理器的亲和力sched_getaffinity()获取进程的处理器的亲和力sched_yield()暂时让出处理器
设置时需要用到struct sched_param这个结构。
以下为我写的内核线程中的部分代码:
代码如下:
struct sched_param param;
param.sched_priority = 99;
sched_setscheduler(current, sched_fifo, ?m)//出错时返回-1
新能源汽车的主要驱动方式和工作原理
智能制造的特点
谈谈如何区分数字信号与模拟信号及转换问题
5G所带来的安全问题越来越引人重视
消息称:AMD不太可能将5nm及3nm芯片代工订单转交三星
Linux内核线程优先级设置的方法介绍
氮化镓元件对于5G基地台需求加持,稳懋摆脱贸易战阴霾
工业人工智能与工业4.0 制造
iPhone12开启5G更费电怎么办?
如何定义和评价平安集团在医疗科技层面的未来?
Vadatech公司推出两款基于Xilinx 7系列 FPGA的μTCA开发板
你们觉得小米MIX4的拍照真能超过华为吗?
AT32讲堂008 | AT32 MCU如何用Eclipse插件调试sLib
油品计量作业中误差产生的原因
人工智能迁移学习 规范化的使用与相关运用领域的限制必不可少
松下轻触开关高级指南
低成本的2.4Ghz收发芯片,适用于遥控玩具市场
索尼与美制造商合作打造高端solo无人机
采用单通道通讯协议设计高速异步流水线控制器STFB电路的设计
RC低通滤波器和RC高通滤波器的工作原理