来源|混说Linux
知圈|进“底盘社群”请加微yanzhi-6,备注发动机
我们平常分享的µC/OS、FreeRTOS、RT-Thread、ThreadX那些都是实时操作系统(RTOS),这么有读者问:哪些是分时操作系统,Linux属于实时操作系统吗?
实时操作系统(RTOS)
RTOS,中文全称RealTimeOperatingSystem,即实时操作系统。
1.实时操作系统定义
实时操作系统(RTOS)是指当外界风波或数据形成时,才能接受并以足够快的速率给以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。
因此,提供及时响应和高可靠性是其主要特性。
实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的。
软实时则只要根据任务的优先级,尽可能快地完成操作即可。我们一般使用的操作系统在经过一定改变以后就可以弄成实时操作系统。
实时操作系统是保证在一定时间限制内完成特定功能的操作系统。比如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,假如不能在容许时间内完成使物体可达的估算,操作系统将因错误结束。
在“软”实时操作系统中,生产线一直能继续工作,但产品的输出会因产品不能在容许时间内抵达而减弱,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。
一些通用目的的操作系也称自己为实时操作系统。但某种程度上,大部份通用目的的操作系统,如谷歌的WindowsNT或IBM的OS/390有实时系统的特点。这就是说,虽然一个操作系统不是严格的实时系统,它们也能解决一部份实时应用问题。
2.实时操作系统的特点
1)多任务;
2)有线程优先级
3)多种中断级别
小的嵌入式操作系统常常须要实时操作系统,内核要满足实时操作系统的要求。
3.实时操作系统的相关概念
(1)基本概念
代码临界段:指处理时不可分割的代码。一旦这部份代码开始执行则不容许中断攻入;
资源:任何为任务所占用的实体;
共享资源:可以被一个以上任务使用的资源;
任务:也叫做一个线程,是一个简单的程序。每位任务被赋于一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每位任务都是一个无限的循环,每位任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,之后把下一个即将运行的任务的当前状态从该任务的栈中重新放入CPU的寄存器,并开始下一个任务的运行;
内核:负责管理各个任务,为每位任务分配CPU时间,并负责任务之间通信。分为不可剥夺型内核于可剥夺型内核;
调度:内核的主要职责之一,决定轮到那个任务运行。通常基于优先级调度法;
(2)关于优先级的问题
任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;
优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可引起优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级承继”算法来临时改变任务优先级,以杜绝优先级反转。
(3)互斥
尽管共享数据区简化了任务之间的信息交换,而且必须保证每位任务在处理共享共享数据时的排他性。使之满足互斥条件的通常方式有:关中断,使用测试并置位指令(TAS)linux操作系统是什么系统,严禁做任务切换,借助讯号量。
由于采用实时操作系统的意义就在于能否及时处理各类突发的风波,即处理各类中断,因此评判嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应当是中断响应时间了。中断响应时间一般被定义为:
中断响应时间=中断延后时间+保存CPU状态的时间+该内核的ISR步入函数的执行时间。
中断延后时间=MAX(关中断的最长时间,最长指令时间)+开始执行ISR的第一条指令的时间。
分时操作系统(TSOS)
TSOS,英语全称Time-sharingOperatingSystemlinux apache 虚拟主机,即分时操作系统。
使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统叫分时操作系统。把计算机与许多终端用户联接上去,分时操作系统将系统处理机时间与显存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。
因为时间间隔很短,每位用户的觉得如同他独占计算机一样。分时操作系统的特性是可有效降低资源的使用率。比如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。
形成分时系统是为了满足用户需求所产生的一种新型OS。它与多道批处理系统之间,有着迥然不同的性能差距。用户的需求具体表现在以下几个方面:人—机交互共享主机以便用户上机
1.分时系统的基本思想
时间片:是把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每位时间段称为一个时间片,每位用户依次轮流使用时间片。
分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。
分时操作系统:是一种联机的多用户交互式的操作系统。通常采用时间片轮转的方法使一台计算机为多个终端服务。对每位用户能保证足够快的响应时间,并提供交互会话能力。
设计目标:对用户的恳求及时响应,并在可能条件下尽量提升系统资源的借助率。
适宜办公手动化、教学及事务处理等要求人机会话的场合。
2.工作方法
一台主机联接了若干个终端;每位终端有一个用户在使用;交互式地向系统提出命令恳求;系统接受每位用户的命令;采用时间片轮转方法处理服务恳求;并通过交互方法在终端上向用户显示结果;用户按照上步结果发出下道命令
分时系统实现中的关键问题:及时接收。及时处理。
3.特点
交互性:用户与系统进行人机对话。
多路性:多用户同时在各自终端上使用同一CPU。
独立性:用户可彼此独立操作linux使用教程,互不干扰,互不混淆。
及时性:用户在短时间内可得到系统的及时回答。
影响响应时间的诱因:终端数量多少、时间片的大小、信息交换量、信息交换速率。
区别
RTOS和TSOS各有各的特性,RTOS通常用于相对低速的MCU,例如运动控制类、按键输入等动作要求实时处理的系统,通常要求ms级,甚至us级响应。
分时:现今流行的PC,服务器都是采用这些运行模式,即把CPU的运行分成若干时间片分别处理不同的运算恳求。
实时:通常用于单片机上,例如扶梯的上下控制中,对于键盘等动作要求进行实时处理。
最后
分通过以上剖析,可以明晰linux是分时系统,不过可以改成实时的如:ucLinux就是linux更改而至的实时系统linux操作系统是什么系统,至于她们的区别,可以引用百度中的类似回答:
分时系统是一个系统可以同时为两个或两个以上的帐户服务!
实时系统是能立刻对指令作出反应的操作系统!谷歌的常见系统不能吧!并且还关机!战斗机中的操作系统就是实时的系统,想想假如他人打仗时战斗机中的笔记本反应的是飞行员上一条指令或关机了,谁还敢开这架客机呢?
原文: