关注+星标公众号,不错过精彩内容
编排 | strongerHuang
微信公众号 | 嵌入式专栏
我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作系统(RTOS),那么有读者问:什么是分时操作系统,Linux属于实时操作系统吗?
实时操作系统(RTOS)
RTOS,英文全称Real Time Operating System,即实时操作系统。
1.实时操作系统定义
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。
因而,提供及时响应和高可靠性是其主要特点。
实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的。
软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。
在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。
一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
2.实时操作系统的特征
1)多任务;
2)有线程优先级
3)多种中断级别
小的嵌入式操作系统经常需要实时操作系统,内核要满足实时操作系统的要求。
3.实时操作系统的相关概念
(1)基本概念
代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;
资源:任何为任务所占用的实体;
共享资源:可以被一个以上任务使用的资源;
任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;
内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核于可剥夺型内核;
调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;
(2)关于优先级的问题
任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;
优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。
(3)互斥
虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。
因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。中断响应时间通常被定义为:
中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间。
中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间。
分时操作系统(TSOS)
TSOS,英文全称Time-sharing Operating System,即分时操作系统。
使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统叫分时操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。
由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。例如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。
产生分时系统是为了满足用户需求所形成的一种新型 OS 。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表现在以下几个方面: 人—机交互 共享主机 便于用户上机
1.分时系统的基本思想
时间片:是把计算机的系统资源(尤其是 CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。
分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。
分时操作系统:是一种联机的多用户交互式的操作系统。一般采用时间片轮转的方式使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。
设计目标:对用户的请求及时响应,并在可能条件下尽量提高系统资源的利用率。
适合办公自动化、教学及事务处理等要求人机会话的场合。
2.工作方式
一台主机连接了若干个终端;每个终端有一个用户在使用;交互式地向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令
分时系统实现中的关键问题:及时接收。及时处理。
3.特征
交互性:用户与系统进行人机对话。
多路性:多用户同时在各自终端上使用同一CPU。
独立性:用户可彼此独立操作,互不干扰,互不混淆。
及时性:用户在短时间内可得到系统的及时回答。
影响响应时间的因素:终端数目多少、时间片的大小、信息交换量、信息交换速度。
区别
RTOS和TSOS各有各的特点,RTOS一般用于相对低速的MCU,比如运动控制类、按键输入等动作要求实时处理的系统,一般要求ms级,甚至us级响应。
分时:现在流行的PC,服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求。
实时:一般用于单片机上,比如电梯的上下控制中,对于按键等动作要求进行实时处理。
最后
分通过以上分析,可以明确linux是分时系统,不过可以改成实时的如:UCOS就是linux修改而来的实时系统,至于他们的区别,可以引用百度中的类似回答:
分时系统是一个系统可以同时为两个或两个以上的账户服务!
实时系统是能立即对指令做出反应的操作系统!微软的常见系统不能吧!而且还死机!战斗机中的操作系统就是实时的系统,想想如果别人打仗时战斗机中的电脑反应的是飞行员上一条指令或死机了,谁还敢开这架飞机呢?
参考来源:
https://www.cnblogs.com/xiawen/p/3317302.html
免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。
------------ END ------------
后台回复『Linux』『RTOS』阅读更多相关文章。
欢迎关注我的公众号,回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
欢迎关注我的视频号:
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
基本概念:希尔伯特曲线是一种能填充满一个平面正方形的分形曲线(空间填充曲线),由大卫·希尔伯特在1891年提出。由于它能填满平面,它的豪斯多夫维是2。取它填充的正方形的边长为1,第n步的希尔伯特曲线的长度是2n- 2-n。L系统记法:变量: L, R常数: F, +, - (F:向前,-:右转90°,+:左转90°)公理: L规则:L → +RF-LFL-FR+ R → LF+RFR+FL用m...
SpringBoot里面添加Filter过滤器有两种方案,一种是servlet3.0引入的注解方式的@WebFilter 过滤器,一种是通过spring的FilterRegistrationBean来设置过滤器。其中,@WebFilter是之前web.xml配置Filter的一个改进,FilterRegistrationBean是一个bean管理器,将实现实现好Filter接口的过滤器...
目标文件里有什么? 编译器编译源代码后生成的文件叫做目标文件,目标文件从结构上来讲,它是已经编译后的可执行文件格式,只是还没有经历过链接的过程,其中可能有些符号和地址还没有被调整。其实它本身就是按照可执行文件格式存储的,只是跟真正的可执行文件在结构上稍有不同。现在PC平台流行的可执行文件格式(Executable)主要是PE(portable executable)和linux下的elf(
只和你认为可以永远共事的人一起工作19年翻了182倍,巴菲特午餐拍卖的价格,就像他亲自选的股票一样,蹭蹭往上涨。和巴菲特“约饭”到底值不值? 这个问题,估计只有参加过巴菲特午餐会的人才有资格回答。不过,正如一些投资人对此的反应,靠一顿饭就想学到巴菲特的精髓,显然是有点着急了。对于吃瓜群众来说,如何有效管理时间、“杀死繁忙”,比一顿饭来得更为实际有效。当下社会,人们最爱说的一句话就是“忙得...
scrapy爬虫利用selenium实现用户登录和cookie传递1. 背景上篇讲解了如何在scrapy中集成selenium爬取一些特别复杂的页面(传送门:https://blog.csdn.net/zwq912318834/article/details/79773870),而事实上,在平时的爬取任务中,往往登录过程是最复杂的,其他页面相对来说比较简单。如果把过多的时间花费在破解登录上,得不偿...
题目: Write a method to decide if two strings are anagrams or not. 翻译: 写一个方法来判断两个字符串是否互为变位词。 注:如果构成两个字符串的字符完全相同,而对应字符所处的位置不同,则称这两个字符串互为变位词。如:"abbfcad"和"facbdab"互为变位词。
我们首先要了解图像输出的size:(图源见图片右下角)(尽管上图已将valid、same、full说得很清楚了,但我还是画蛇添足再描述一下)full,full嘛,全部的意思,将边界填充,使得,kernel四个角的像素点能与原图像的像素点刚好对应重合,output会变大same,same嘛,相同的意思,原图像的四个角像素点与kernel中心像素点重合,output与原图一样大valid...
/*** 解决文字和drawableleft和文字一起时不居中。要设置 android:background="@null"android:button="@null"* @author zhousheng**/public class MDMRadioButton extends RadioButton {public MDMRadioButton(Context context, Attri...
2.6 架构2.6.1 架构架构(Schema)是一个命名的数据库对象容器,每个数据库对象(视图、表、函数等)都属于一个架构。架构将数据库对象分组为单独的命名空间,不同的架构中可以出现重名的对象。因此,访问一个数据库对象时,通常应该是两段式名称:<架构名>.<对象名>。可以对架构应用安全规则,安全规则将由架构中的所有对象继承。如果设置了对架构的访问权限...
Android商城全部评价 使用RecyclerView+Glid+Flowlayout+BaseRecyclerViewAdapterHelper+SuperSwipeRefreshLayout 图片数量可多可少,下拉刷新,上滑加载更多
使用php,thinkphp,html实现中文、英文或者中英文混合的名字按照首字母进行排序,并且通过html显示出来。使用mb_substr()截取中文,不出现乱码
RMAN duplicate from active 时遭遇 RMAN-04017和ORA-00439:ORA-00439: feature not enabled: Rea...