2023|3

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

操作系统的分时处理的理解 [复制链接]

 

想使用操作系统,比如 uCOS,FreeOS,VC的多线程之类,有些概念不是很了解

 

每个线程的时间片是不是固定的,如果固定,有些时线程时间上很多是等待,比如利用While语句查询某个状态,没有到激活条件就马上出来退出来去执行其它线程,而不是在固定时间片内不停查询状态,有没有这样的处理机制呢?

 

因为没有说具体操作系统,那位仁兄能举例说怎么处理吗?

最新回复

系统中包含多个同等优先级的任务,且这几个任务体中都没有放弃 CPU 的行为,则会出现的情况是,这几个任务始终只有第一个被得到调度的那个在运行,因为第一个得到调度的任务体中不会主动放弃 CPU,而其他任务优先级上与其相等无法抢占   详情 回复 发表于 2019-10-5 14:57
点赞 关注
 

回复
举报

100

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

"While语句查询某个状态,没有到激活条件就马上出来退出来去执行其它线程"

让当前任务挂起,或者是让当前任务进入延时,都可以让任务进行切换

如UCOSII中的OSTimeDly()函数等等等

可以让当前任务停止运行一段时间,延时过后一段时间再运行当前任务

 
 
 

回复

100

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

相关实时系统的开发指南和教程,网上都有

也是最近半年才开始接触实时操作系统

最近腾讯也开源了个物联网操作系统,原理大同小异,楼主有兴趣可以看看

 

下面这段话引用于腾讯官方的开发指南,个人觉得学习这类系统,先弄清楚任务是如何创建、运行、调度和切换,再学别的会比较好入门。

 

时间片轮转机制
概述
TencentOS tiny 操作系统内核是一个抢占式内核,抢占式内核的特点是,如果最高优先级的任务不放弃 CPU(调用
tos_task_delay、tos_task_yeild 等主动放权,或者任务间同步通信机制的 pend 接口等),那么 CPU 将会一直被
此任务独占。
假设这样一种场景:系统中包含多个同等优先级的任务,且这几个任务体中都没有放弃 CPU 的行为,则会出现的情
况是,这几个任务始终只有第一个被得到调度的那个在运行,因为第一个得到调度的任务体中不会主动放弃 CPU,
而其他任务优先级上与其相等无法抢占。此种场景下,其他任务会因得不到 CPU 而陷入饥饿状态。
时间片轮转机制提供了按时间片占用调度的策略,可以解决上述场景下的任务饥饿问题。
 

TencentOS-tiny.pdf (956.04 KB, 下载次数: 8)

 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

4
 

系统中包含多个同等优先级的任务,且这几个任务体中都没有放弃 CPU 的行为,则会出现的情况是,这几个任务始终只有第一个被得到调度的那个在运行,因为第一个得到调度的任务体中不会主动放弃 CPU,而其他任务优先级上与其相等无法抢占

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表