导航:首页 > 科技大全 > 实时操作系统任务切换时间

实时操作系统任务切换时间

发布时间:2022-12-29 00:17:10

1. 实时操作系统的特征

1)高精度计时系统
计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。
2)多级中断机制
一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。
3)实时调度机制
实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。
实时操作系统的特点
IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:
1、异步的事件响应
2、切换时间和中断延迟时间确定
3、优先级中断和调度
4、抢占式调度

2. 操作系统的主要性能指标有哪些

微型计算机的主要性能指标和基本系统配置
(1)微型计算机主要性能指标

字长:CPU能够同时处理的比特(bit)数目。它直接关系到计算机的计算精度、功能和速度。字长越长,计算精度越高,处理能力越强。常见的微型机字长有8位、16位、32位。
主频(时钟频率):时钟脉冲发生器所产生的时钟信号频率(MHz)。它在很大程度上决定了计算机的运行速度。
内存容量:内存储器中能够存储信息的总字节数,一般以KB、MB为单位,反映了内存储器存储数据的能力。
运算速度:计算机每秒运算的次数(MIPS
-
每秒百万条指令)。
系统的可靠性:系统在正常条件下不发生故障或失效的概率。
外设配置:外设是指计算机的输入、输出设备以及外存储器等,其中,显示器有单色、彩色之分,也有高、中、低分辨率之分,,磁盘有软盘与硬盘之分,软盘有高密、低密之分。
软件配置:软件配置包括操作系统、计算机语言、数据库管理系统、网络通信软件、汉字软件及其他各种应用软件等。
存取周期:对内存进行一次访问(存取)操作所需的时间。

3. ucos原理

ucos-ii是一个可剥夺型内核的实时操作系统,以stm32来说,使用系统滴答定时器,定时产生一个时钟节拍,来推动任务的调度,管理,切换等。

关于系统大概的运行原理
2.当产生一个时钟节拍时,如果有比当前运行任务优先级更高的任务就绪,那么优先级(“优先级”为0时优先级最高)高的任务抢占CPU,CPU保存现场环境,放入该任务堆栈中。再将优先级高的任务的堆栈中的现场环境取出来,写入CPU寄存器中。(CPU中的寄存器暂时还没有仔细去研究)。当这个任务执行进入延时,或是要等待某个时间或者信号量。那么它将放弃CPU的使用权,系统会从任务就绪表中,把优先级最高的且就绪状态的任务赋予CPU的使用权。至此来推动整个系统,调度所有的任务。

不发生中断时UCOS系统时间与任务的切换
①.假设当前运行的任务是低优先级的任务,CPU程序寄存器中存在的一些寄存器都是低优先级的任务

②当程序运行到检测到高优先级的任务进入就绪状态的时候,此时CPU发送一些命令,把CPU当前的一些程序寄存器的内容复制到低优先级任务的堆栈中。也就是1过程。

③.此时通过刚刚的就绪表的机制,可以从程序中得到最高优先级的任务,也就是2过程=

④.最后的过程3就是把刚刚的高优先级任务的堆栈指针复制到CPU的程序寄存器当中,实现任务的切换。

当有中断时,UCOS系统的执行原理
当程序正在执行一个中断服务函数时,发生一个系统滴答中断,因为系统滴答定时器的优先级高,所以会中断这个中断服务函数执行任务切换。而有些时候,中断时不能延时的。例如接收数据时,会发生接收错误。造成严重的后果。

这时,就有下图中的操作,可以避免。

PendSV异常(我称它为中断)编程为最低的优先级中断。如果某个中断正在执行,而系统滴答抢占了它,那么这个中断将悬起一个PendSV中断,来缓期执行任务切换。

UCOS的任务切换时间可以在os_cfg.h中去设置OS_TICKS_PER_SEC宏UCOS任务数等配置也可以在该文件中去寻找。

UCOS-II主要提供服务
内存管理
多任务管理
外围资源管理

关于Make 与编译
书中有讲这一块,所以我也记录下我的理解
由于我平时都用keil这样的集成开发环境,之前也有学习过一段时间的linux,但是对编译,makefile这些理解的还是不是很好。
编辑makefile 来将源文件和包含的头文件编译成需要的.obj文件,然后再将这些.obj文件链接成,想要生成的程序。关于makefile好像每一种编译器都有自己的makefile规则和命令,因为以前学习GCC编译器和现在书上看到的BCC编译器写的makefile好像不太一样。我也没有去深究。
所以还是集成开发环境好,工具还是怎么方便怎么来。需要学习的原理的时候再去理解,实际的应用中用自己写的Makefile去编译文件怕是石乐志哦。

UCOS的任务
任务三要素(我理解的)
任务控制块
OSTaskCreate((void()(void))start_task,
//任务函数
(void*)0,
//传递给任务函数的参数
(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],
//任务堆栈的栈顶
(INT8U)START_TASK_PRIO,
//任务的优先级

主要包含了任务的栈顶地址,
如果处理器的堆栈是高地址向下生长的那么栈顶地址

4. 为什么实时操作系统必须支持抢占式任务调度

做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks。实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂。毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform Team封装好的API。所以,在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统?
1. 首先说一下实时的定义及要求:
参见Donal Gillies在Realtime Computing FAQ中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。
一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应。但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。
根据实际应用,可以选择采用硬实时操作系统或软实时操作系统。硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子;而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在Cost Rection,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)
硬实时 -代表产品 VxWorks
举一个经常使用的实例,中高档汽车中使用的气囊。当报告车辆碰撞的传感器中断CPU后,操作系统应快速地分配展开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的必须使用硬实时的系统。
硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止期限是无论如何都必须得到满足。
软实时 -代表产品软实时Linux
再举一个实例,IPTV数字电视机顶盒,需要实时的处理(解码)视频流,如果丢失了一个或几个视频帧,显然会造成视频的品质更差,但是只要做过简单的抖动处理的系统,丢失几个视频帧就不会对整个系统造成不可挽救的影响。
软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。
===========================================================
请注意:讲到这里,想花点墨水区分一下实时和嵌入式的概念,因为笔者也长时间把这两者混为一谈。实时操作系统的概念上文已经讲的很清楚了,主要就是要能确定性的满足时间要求。嵌入式系统很难下一个定义,有兴趣的可以网络一下“嵌入式系统”,一般可以认为是板子或芯片上软硬件的总和,嵌入式系统一定要对实时任务有很强的支持能力,所以一般嵌入式系统都会采用实时操作系统,根据不同应用,选择采用硬实时或软实时。
===========================================================
2. 如何衡量一个实时操作系统的实时性能?
主要有以下两个重要指标:
指标1、中断响应时间(可屏蔽中断)
计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。对于抢先式内核,要先调用一个特定的函数,该函数通知内核即将进行中断服务,使得内核可以跟踪中断的嵌套。抢先式内核的中断响应时间由下式给出:
中断响应时间=关中断的最长时间+保护CPU内部寄存器的时间+进入中断服务函数的执行时间+开始执行中断服务例程(ISR)的第一条指令时间
请注意:中断响应时间是系统在最坏情况下响应中断的时间,某系统100次中有99次在50ms之内响应中断,只有一次响应中断的时间是250ms,只能认为中断响应时间是250ms。
指标2、任务切换时间
除为中断处理提供确定性外,实时处理也需要支持周期性间隔的任务调度。大量控制系统要求周期性采样与处理。某个特定任务必须按照固定的周期(p)执行,从而确保系统的稳定性。考虑一下汽车的防抱死系统(ABS)。控制系统对车辆的每个车轮的转速进行采样(每秒最多20次)并控制每个制动器的压力(防止它锁死)。为了保持控制系统的正常工作,传感器的采样与控制必须按照一定的周期间隔。这意味着必须抢占其他处理,以便ABS任务能按照期望的周期执行。
当多任务内核决定运行另外的任务时,它把正在运行任务的当前状态(即CPU寄存器中的全部内容)保存到任务自己的栈区之中。然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU 的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。做任务切换所需要的时间取决于CPU有多少寄存器要入栈。CPU 的寄存器越多,额外负荷就越重。

5. 什么是实时操作系统

实时操作系统,简称RTOS(Real Time Operat-
ing System). UNIX是分时系统,定时器的优先级
最高.以UNIX为基础,允许对中断处理的优先级
做些调整,使系统对外部事件的响应速度保证不大于
某一特定的时间间隔,就构成了实时系统,如Lynx,
OS-9等操作系统.如果操作系统能做到不死机,且
响应速度有保证就可以用于各种控制目的了.
用于控制目的时,多任务是必要的,而多用户往
往并不需要,尤其是在嵌人式应用中.因此可以将
UNIX多用户那部分功能去掉,并根据嵌人式应用的
特点,舍弃一部分不必要的功能,以适应嵌人式应用
万方数据
学习园地 327
中要求占用内存少的特点,这就是嵌人式多任务实时
操作系统.在这里,"操作"二字已经失去了本来的含
义.
RTOS的开发工具允许用户针对不同的应用对
象对RTOS的内核进行裁剪,压缩,以适应各类应
用,并提供应用程序的调试环境.
从理论上讲,无论UNIX还是基于UNIX思想
的RTOS,都包含了计算机软件理论最精华的那一部
分.从实践上说,它们亦是被无数应用系统证明是完
全成功的.
实时系统是指能在确定的时间内执行其功能并
对外部的异步事件做出响应的计算机系统.其操作
的正确性不仅依赖于逻辑设计的正确程度,而且跟这
些操作进行的时间有关."在确定的时间内"是这个
定义的核心.也就是说,实时系统是对响应时间有严
格要求的.例如,一个视频播放系统要从CD-ROM
中读取高压缩率的数据,并将其解压缩,送到显示设
备.解压缩的工作必须在很短的时间(毫秒级)内完
成,否则会出现画面的不连续.假设图像每帧的停留
时间为30ms,那么该系统必须在这段时间内将下一
帧从CD-ROM中读出并完成解压缩.30ms就成为
一个时间限制,每次处理均在30ms内就是实时的,
一万次处理有一次处理时间大于30ms也不是好的
实时系统.
一个系统具有实时性并不说明该系统的响应和
处理速度非常快;而一个高速系统也未必是实时系
统.特定的实时系统有其具体的时限(或速度)要求,
该时限要求对不同系统千差万别.高能粒子甄别系
统的甄别处理要求在微秒或纳秒级时间内完成;而实
时数据库查询系统仅要求在用户键人请求后几秒内
得到查询结果.所以设计实时系统之初,应该明确目
标系统的实时要求是秒级的,还是毫秒,微秒级的,避
免盲目追求高速度,造成浪费.
实时系统通常分为硬实时和软实时系统.前者
意味着存在必须满足的时间限制,而后者意味着偶尔
超过时间限制是可以容忍的.
实时操作系统是基于计算机的,是管理计算机硬
件资源并提供人机命令或编程接口的系统,它能在固
定的时间内对一个或多个由外设发出的信号做出适
当的反应.与普通(分时)操作系统不同,实时操作系
统强调了系统对外部异步事件响应时间的确定性,这
已经逐渐接近嵌人式系统的设计思想了.
实时操作系统和分时操作系统的另一个重要区
别在于二者的任务调度方式不同.
常见的分时调度算法有时间片轮转调度,优先级
调度,多重队列,最短作业优先,保证调度算法以及彩
票调度算法.这里不详细描述这些算法.
实时调度算法主要有三种,比较经典的是事件发
生率单调算法(Liu和Layland, 1993).该算法事先
为每个任务分配一个与事件发生频率成正比的优先
级,调度程序总是调度优先级最高的就绪任务,必要
时将剥夺当前任务的CPU使用权,让高优先级的任
务先运行.这种算法被证明是最优的,也是为大部分
实时内核所采用的调度方式.
另一种流行的实时调度算法是最早截止优先算
法.当一个事件发生时,对应的任务被加到就绪队列
中,该队列按照截止期限排序,截止期限最短的优先
级最高.对周期性事件,截止时间即为事件下次发生
的时间.
第三种算法首先计算各任务的富裕时间,称作裕
度(laxity).如果一个任务需要运行200ms,而它必
须在250ms内完成,则其裕度为50ms.该算法称为
最少裕度法,即选择裕度最少的任务.
尽管通过这三种算法中的任何一个都可以将分
时操作系统转化为实时操作系统,但实际上,由于前
者的任务切换时间太长,实时性能都比较低,所以实
时系统一般都采用专用的实时操作系统.这些实时
操作系统的主要特征有:
.规模小,
中断被屏蔽的时间很短;
中断处理时间短;
.任务切换很快.
常见的实时操作系统有VxWorks, VRTX/OS,
pSOS+,RTMX,OS/9和Lynx OS等等.

6. linux是实时还是分时操作系统,什么是实时操作系统,什么是分时操作系统他们的区别是什么

Linux是分时操作系统。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。

分时操作系统是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统。

区别:

1、交互性不同。

实时信息处理系统具有交互性,但仅限于访问系统中某些特定的专用服务程序。

分时系统能向终端用户提供数据处理服务、资源共享等服务。

2、可靠性要求不同。

分时系统要求系统可靠。

实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。

3、多路性表现不同。

实时控制系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。

分时系统具有多路性,系统按分时原则为多个终端用户服务;

(6)实时操作系统任务切换时间扩展阅读:

基本思想

Linux的基本思想有两点:

1、一切都是文件;

2、每个软件都有确定的用途。

其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

阅读全文

与实时操作系统任务切换时间相关的资料

热点内容
苹果5s16g升级ios103 浏览:850
word红头文件中怎么加双线 浏览:825
切割机用什么编程 浏览:787
文件修订题目 浏览:572
魅族pro5自带浏览器怎么升级 浏览:342
为什么用数据还是加载慢 浏览:171
监控下面有网络如何隔离 浏览:748
前台中jrequestjson 浏览:435
怎么在word里粘贴xls文件 浏览:710
买火车票什么网站 浏览:757
jsp的六大 浏览:216
图文数据要如何导入数据库 浏览:207
软件数据删了恢复怎么弄 浏览:517
小米笔记本电脑共享文件 浏览:812
cad字体文件夹添加国标字体 浏览:938
电脑输出pdf文件有什么用 浏览:695
微信满人 浏览:585
js点击按钮下载图片 浏览:922
数据有效性哪里设置的 浏览:171
orl删除表的数据库 浏览:353

友情链接