6、操作系统中的多任务处理与POSIX标准

操作系统中的多任务处理与POSIX标准

1. 协作式与抢占式多任务处理

1.1 栈与缓存

在一些项目中,若将栈置于相对较慢的内存中,但数据缓存处于活跃状态,相较于抢占式多任务处理方式,由于栈需求较低,缓存未命中的情况会显著减少。实际上,栈大部分时间通常会被完全缓存,这大大减少了执行时间。

无论是协作式还是抢占式多任务处理,都必须考虑栈偏移和中断的发生情况。任务内函数调用的函数同样如此。实际上,函数的栈分配随时间变化并非呈现矩形,而是类似大城市的天际线,这种锯齿状曲线源于被调用的所有子函数及其子子函数等。

1.2 确保数据一致性

数据一致性指的是组织对软件不同部分共享资源的访问,确保资源始终处于定义明确且正确的状态。在任何时刻,当前执行的代码都可能被其他也在访问同一资源的代码中断的系统中,实现这一点并非易事。

一种可能的解决方案是临时禁用中断,但这会阻塞代码的其他部分,包括那些根本不访问该资源且可能需要尽快执行的部分。此外,临时禁用中断的保护机制前提是开发者已认识到某段代码需要保护,而这种需求并非总是显而易见的,软件开发者每年都会花费数千小时来调查和理解因缺少保护机制而导致的数据一致性问题。

在基于模型的软件开发中,资源或数据的访问在建模工具中进行指定,代码生成器和驱动层会确保数据一致性。许多环境(如AUTOSAR RTE)在生成代码之前会分析代码的依赖关系,包括分析代码的哪些部分访问哪些数据、在哪些任务中运行、任务的优先级以及是否可能发生抢占式中断。若确定会发生这种情况,会创建数据副本,并在受影响任务的开始和/或结束时进行同步。这些副本需要额外的RAM,且同步需要额外的运行时间。如今的汽车电子

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值