posix 线程调度

thread 调度
POSIX 定义一种优先级调度模型,此模型确定任何两个线程相对于对方的重要程度。 每当有一个以上的线程可以运行—执行就绪—时,系统都将选择具有最高优先级的线程。

POSIX 线程调度语义是按照一种概念模型定义的,在此概念模型中有一个有效优先级范围,并且有一组线程列表,每个优先级分配有一个列表。根据线程的调度优先级,将 任何可运行的线程放置在其中一个线程列表上。线程列表内的排序取决于调度策略。因此,每个线程都受其调度优先级及其调度策略控制。

调度策略的作用是定义这些线程列表上的操作,如在列表内和列表之间移动线程。 不管策略如何,POSIX 都指定具有最高优先级的线程列表中的第一个线程应为当前运行的线程。

调度线程优先级的能力是 POSIX 标准中的一个选项,由符号 POSIX_THREAD_PRIORITY_SCHEDULING 指定。支持此选项的 POSIX 实现还必须提供给线程指定实时调度策略和优先级的机制。 强制性策略为 SCHED_FIFO、SCHED_RR 和 SCHED_OTHER。

SCHED_FIFO(先进先出)策略按线程在执行前在列表上存在的时间对列表上的线程进行排序。处于列表首位的线程通常为在列表上存在时间最长的线程, 而处于末尾的线程在列表上存在的时间最短。此策略允许一个线程一直运行,直到具有较高优先级的另一个线程已准备好运行,或者直到当前线程自动阻止。如果此 线程被占据,它就继续处于其线程优先级列表的首位;如果此线程阻止,当它再次成为一个可运行的线程时,将被添加到此线程所在的优先级列表的末尾。

SCHED_RR (循环法)策略与 SCHED_FIFO 策略相同,不同的只是运行的线程在被占据之前只能运行有限的时间长度。当超过此固定时限时,运行的线程就被放到线程优先级列表的末尾,而现在处于列表首位 的线程将成为运行的线程。 此策略的作用是确保具有相同优先级的多个 SCHED_RR 线程能共享处理器。

SCHED_OTHER 策略是针对具体实现的,相容的 POSIX 实现必须记录此策略的行为。 一个实施可将此策略定义为与 SCHED_FIFO 或 SCHED_RR 相同,也可以定义为与这两种策略完全不同的策略。 POSIX 定义此类策略的目的是为相容的程序提供一种方法来表明这些程序不需要可移植的实时调度策略。

每种调度策略都有一个优先级的有效范围;对于 SCHED_FIFO 和 SCHED_RR,此范围必须至少是 32,而对于 SCHED_OTHER,此范围是针对具体实现的。 可以从 sched_get_priority_min() 函数和 sched_get_priority_max() 函数确定优先级的范围。

PThread 调度争用范围和分配域
除线程调度策略和线程优先级外,还有其他两种调度控制: 线程调度争用范围和线程调度分配域。

争用范围定义竞争使用处理资源的线程集。 POSIX 定义两个争用范围:系统中的所有线程(或 PTHREAD_SCOPE_SYSTEM)以及一个进程中的所有线程(或 PTHREAD_SCOPE_PROCESS)。

系统争用范围中的一个线程与系统中所有其他线程(包含其他进程中的那些线程)争用资源。 一个进程中的高优先级线程可阻止其他进程中的系统争用范围线程运行。

进程争用范围内的线程在进程内进行调度,这表示只在一个进程内的所有线程间进行调度。 进程争用范围通常表示由操作系统选择要运行的进程,而进程本身包含一个内部调度程序来试图针对进程内的线程实现 POSIX 调度规则。
【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开,重点研究其动力学建模与控制系统设计。通过Matlab代码与Simulink仿真实现,详细阐述了该类无人机的运动学与动力学模型构建过程,分析了螺旋桨倾斜机构如何提升无人机的全向机动能力与姿态控制性能,并设计相应的控制策略以实现稳定飞行与精确轨迹跟踪。文中涵盖了从系统建模、控制器设计到仿真验证的完整流程,突出了全驱动结构相较于传统四旋翼在欠驱动问题上的优势。; 适合人群:具备一定控制理论基础和Matlab/Simulink使用经验的自动化、航空航天及相关专业的研究生、科研人员或无人机开发工程师。; 使用场景及目标:①学习全驱动四旋翼无人机的动力学建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计与仿真技术;③深入理解螺旋桨倾斜机构对飞行性能的影响及其控制实现;④为相关课题研究或工程开发提供可复现的技术参考与代码支持。; 阅读建议:建议读者结合提供的Matlab代码与Simulink模型,逐步跟进文档中的建模与控制设计步骤,动手实践仿真过程,以加深对全驱动无人机控制原理的理解,并可根据实际需求对模型与控制器进行修改与优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值