RTOS(6)任务管理
任务状态理论
我们是怎么实现,两个同优先级的任务之间交替执行的呢?
任务切换的基础:tick中断!




tick为1ms一个周期,可以通过修改时钟配置修改;
running:正在进行的任务3为running;
ready:任务1和任务2处于ready;
blocked(阻塞状态):等待某事,比如小孩口中的饭还没吃完,就得等吃完才喂;
suspend(暂停状态):主动休息或者被命令休息;

如何管理这些任务呢?
链表readylist:A->B->C
任务状态实验
创建三个任务
任务一:进入suspend再resume回来

任务二:进入blocked,delay一会,再进入ready状态



vTaskDelay和vTaskDelayuntil

dosomething()的时间不定,如何才能保证它的执行周期是不变的呢?
vTaskDelay只能保证延时的时间,不考虑dosomething的时间;
vTaskDelay:等待指定个数的Tick count才能ready,继续执行;

vTaskDelayuntil:等待到指定的绝对时刻,才能reday,继续执行;

区别:


空闲任务及其钩子函数

idel task:0
task1:1
task2:2

FreeRtos是封装好的,不会让你随随便便修改它的源代码,所以他开放了钩子函数让用户使用;

任务调度
阻塞状态(blocked)的任务,它在等待“事件”,这个事件有两种类型:时间相关的事件,同步事件;
有三个配置在Freertosconfig中,可以决定我们的调度策略
configUSE_PREEMPTION 可以决定是否可以抢占;
configUSE_TIME_SLICING 可以决定同优先级是否轮流进行,无法进行时间片轮转;
如果置于0,除非任务主动放弃cpu,进入blicked或suspend状态,否则直接霸占,其他任务无法执行;
configIDLE_SHOULD_YIELD 可以决定空闲任务是否礼让别的任务;
相关文章:
RTOS(6)任务管理
任务状态理论 我们是怎么实现,两个同优先级的任务之间交替执行的呢? 任务切换的基础:tick中断! tick为1ms一个周期,可以通过修改时钟配置修改; running:正在进行的任务3为runningÿ…...
【UE5】 ListView使用DataTable数据的蓝图方法
【UE5】 ListView使用DataTable数据的蓝图方法 ListView 是虚幻引擎中的一种用户界面控件,用于显示可滚动的列表。它可以用于显示大量的数据,并提供了各种功能和自定义选项来满足不同的需求。 DataTable是虚幻引擎中的一种数据表格结构,用于存…...
Anthropic全球上线AI语言模型Claude 2;多模态系统:融合文本和图像的新前沿
🦉 AI新闻 🚀 Anthropic全球上线AI语言模型Claude 2,编程、数学、推理能力大幅提升 摘要:Anthropic在全球正式上线了AI语言模型Claude 2。相比前代版本,Claude 2在编程、数学、推理等方面都有大幅提升,支…...
pdf压缩文件怎么压缩最小?
pdf压缩文件怎么压缩最小?我们很多项目介绍或是学术的报告都是采用的这个pdf格式,那么我们在存储或是需要进行分享的时候,可能就会因为文件过大而导致无法打开或是发送了。那么就需要将其进行压缩。PDF文件压缩方法很多,pdf压缩文…...
开源智能体来啦!港大团队发布OpenAgents,可以搞数据分析、聊天、支持200+插件
夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 港大的研究团队最近发布了一个新的开源 Agent 框架,名为 OpenAgents. 它可以用于实际用户场景,特别是在使用自然语言执行复杂任务的情况下。先前的语言智能体框架主要关注概念验证或者供开发人员使用&…...
Prometheus metrics数据抓取解析
Prometheus node的监控数据如链接展示,我们希望能更加方便的看到监控数据,shodan对Prometheus metrics 的数据做了格式化处理。172.96.3.215:9100/metricshttp://172.96.3.215:9100/metrics 本文我自己实现了一个命令行工具,可以输出类shodan…...
【算法训练-排序算法 三】【排序应用】合并区间
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【合并区间】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…...
【iOS】计算器仿写
文章目录 前言一、构建View界面二、Model中进行数据处理三、Controller层实现View与Model交互总结 前言 在前两周组内进行了计算器的仿写,计算器仿写主要用到了MVC框架的思想以及数据结构中用栈进行四则运算的思想,还有就是对OC中的字符串进行各种判错操…...
华为认证 | 华为HCIE认证该怎样备考?
华为HCIE认证是华为认证的最高级别,拥有了华为HCIE认证就代表拥有了华为官方认可的专家级技术水平。 因此HCIE认证的考试难度是非常高的,备考华为认证HCIE需要一定的准备和规划。 整理了一些简单易懂的指南,希望对各位备考的小伙伴一些帮助…...
10月份stable diffusion animatediff等插件使用指南,又来更新了
插件一直会更新,包含了基本市面上流行的90%插件,好用的插件更是不会错过,往期插件请看往期文章,如果你没有时间一直关注sd更新的进展,请关注我,一个月用几个小时看一下我的文章,最短时间跟进sd。…...
抓包工具charles修改请求和返回数据
数据篡改的主要使用场景: (1)mock场景,mock入参和返回值参数,实现mock测试 (2)安全测试,对于支付金额等比较重要的字段,可以修改请求参数来进行安全测试 1.首先选择要…...
matlab中绘制 维诺图(Voronoi Diagram)
1.专业术语(相关概念): 基点Site:具有一些几何意义的点 细胞Cell:这个Cell中的任何一个点到Cell中基点中的距离都是最近的,离其他Site比离内部Site的距离都要远。 Cell的划分:基点Site与其它的…...
Mybatis TypeHandler 介绍及使用
Mybatis TypeHandler类型转换器是负责Java类和jdbc类型之间的转换 主要涉及到下面这几个类: TypeHandler 类型转换器的顶层接口BaseTypeHandler 抽象类继承自TypeHandler,Mybatis中所有的类型转换器实现均继承他。TypeHandlerRegistry 类型转换器注册器…...
Linux SVN 命令详解
1、将文件 checkout 到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.…...
Maven依赖引入的优先机制
xxxx待持续更新...
全开源无加密跨境电商购物网站系统源码(无货源模式+多语言+多货币)
在全球化的时代背景下,跨境电商成为了越来越受欢迎的消费方式,而建立一个源码无加密多语言跨境购物网站系统是一个具有挑战性的任务,但完全可行。以下是这个过程的一些主要步骤: 1. 确定需求和功能规划:先确定网站需要…...
Python常用视频编辑操作——读取与保存视频、更改帧数、拼接视频、视频语音合并、视频与图像互转等
1.更改视频帧数 降低视频帧数,简单的操作只能降低视频帧数,如果要增加视频帧数,那就要使用深度学习进行插帧处理: import cv2 from moviepy.editor import * def change_fps(inpt_path,output_path,fps):# 加载视频video Video…...
从javascript到vue再到react的演变
当提到前端开发中的框架时,JavaScript、Vue.js和React.js是三个最常见的名词。它们代表了Web开发中不同的技术选择和演变过程。本文将探讨JavaScript从原生到Vue.js再到React.js的演变,以及每个阶段的特点和优势。 JavaScript: 动态语言的基础 JavaScr…...
50个渗透(黑客)常用名词及解释
目录 前言一、渗透测试1. 渗透测试:2. 黑盒测试:3. 白盒测试:4. 社会工程学:5. 缓冲区溢出:6. 拒绝服务攻击:7. DDoS攻击:8. XSS攻击:9. CSRF攻击:10. SQL注入࿱…...
开源游戏引擎和模拟器的项目合集 | 开源专题 No.38
yuzu-emu/yuzu Stars: 26.2k License: GPL-3.0 yuzu是一款全球最受欢迎的开源Nintendo Switch模拟器,由Citra创建者编写。它采用C语言编写,并具有可移植性,在Windows和Linux上进行积极维护。该模拟器能够全速运行大多数商业游戏,…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
