精华内容
下载资源
问答
  • Linux实时系统还是分时操作系统?

    千次阅读 2021-06-18 00:12:05
    关注+星标公众号,不错过精彩内容编排 |strongerHuang微信公众号 |嵌入式专栏我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作...

    关注+星标公众,不错过精彩内容

    编排 | 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”查看更多内容。

    欢迎关注我的视频号:

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • linux变为实时操作系统

    万次阅读 2018-08-23 23:54:15
    我们知道,相对比vxworks,linux内核属于非实时操作系统,原因主要是: (1)实时任务抢占时间是不可预期的。 (2)为什么抢占是不可预期的呢?这涉及到内核中的抢占点知识,其中spin_lock锁,在unlock时是一个...

    我们知道,相对比vxworks,linux内核属于非实时操作系统,原因主要是:

    (1)实时任务抢占时间是不可预期的。

    (2)为什么抢占是不可预期的呢?这涉及到内核中的抢占点知识,其中spin_lock锁,在unlock时是一个抢占点,但是spinlock本身内部是不可以抢占的,这种api在内核中大量使用,事实上是spin_lock与spin_unlock之间临界区代码片段不可预期的。

    具体用一个例子来说明,为什么linux不是实时的。

    某场景:

    一个普通任务运行过程中,通过系统调用进入内核态拿了一把spin_lock这样的锁,在拿锁过程中,发生了硬件中断,于是cpu立即去处理硬件中断,在这个硬件中断处理函数(ISR)中唤醒了一个RT任务,硬件中断处理完后,还有可能处理软中断,也有可能没有,根据设备驱动实际场景决定(中断底半步)。当中断顶半步&底半步全部执行完后,事实上RT任务还是得不到运行的,因为前面有一个普通任务拿了spinlock锁,spinlock是会关抢占的,所以还要等到普通任务调用到spin_unlock的那一刻,RT任务才能进行抢占。

    由上面例子可以看出,从唤醒RT任务到RT任务被执行,这段时间是不可预期的,所以通常linux不是一个硬实时的系统。

     

    如何让linux变成一个硬实时操作系统呢?首先要知道什么是实时操作系统,实时操作系统的重要特性就是系统中的实时任务,要在一个可预期的时间范围内必须得到执行。当一个高优先级任务被唤醒执行,或主动执行时,他必须可以立即抢占其他任务,得到cpu的执行权,这段时间必须是可预期的。像我们所熟知的vxworks实时系统,可以做到10ns以内可预期。

    我们的linux内核属于宏内核,和vxworks微内核设计思想不一样,linux大量用在服务器、嵌入式领域。服务器更追求的是高密度计算,系统吞吐能力。很多产品、工程场景,并不要求有多么精准的实时性。

    回到正题。我们怎么提高linux实时性呢?其实kernel.org官方已经提供了相关补丁,我们只需要将开源linux内核打上rt补丁,就可以让linux变成实时操作系统。

    值得一提的是,不是每个linux版本都有实时补丁的,可以根据需要进行下载使用。比如我在用qemu做实验的时候使用了linux-4.4.97内核。对应的补丁为 patches-4.4.97-rt111.tar.gz。

    [34#yuchen@ubuntu kernel]# ls -l
    total 130484
    drwxr-xr-x 22 root root      4096 Apr 15 21:29 build
    drwxrwxr-x 25 root root      4096 Jul 12 20:49 linux-4.4.97
    -rwx------  1 root root 133077621 Feb 18  2018 linux-4.4.97.tar.gz
    drwxr-xr-x  2 5657 5657     40960 Aug 23 22:58 patches
    -rwx------  1 root root    485551 Apr 15 19:52 patches-4.4.97-rt111.tar.gz
    [35#yuchen@ubuntu kernel]#

    打补丁脚本:

    [35#yuchen@ubuntu kernel]# cat linux-4.4.97/patch.sh 
    #!/bin/sh
    
    for i in `ls ../patches/*.patch`
    do
            patch -p1 < $i
    done
    [36#yuchen@ubuntu kernel]#

    补丁原理:

    前面已经分析过,spin_lock锁会关掉cpu抢占调度,影响实时性。所以RT补丁将spin_lock锁变成可以抢占了,这样就不用等到unlock时才能调度到rt任务。

    RT补丁打入内核后,内核额外提供了几种抢占模型:

    ( ) No Forced Preemption (Server)                  ----不强制抢占

     (X) Voluntary Kernel Preemption (Desktop)         ----自愿抢占
     ( ) Preemptible Kernel (Low-Latency Desktop)    ----抢占式内核
     ( ) Preemptible Kernel (Basic RT)                        ----基本实时
     ( ) Fully Preemptible Kernel (RT)                          ----完全实时

    实时性依次增强,当我们配上Fully Preemptible Kernel时,内核代码中所有的mutex锁,sem信号量,spin_lock全部变成了实时锁,实时锁意味着任何地方都可以抢占,所以RT补丁后实时性就非常强了。但我们要知道实时性越强,吞吐能力就越弱。cpu频繁任务调度的开销也是不小哦!

    展开全文
  • 1、根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),

    需求说明:IPC项目需要Linux系统,知识储备

    来自:http://blog.csdn.net/zhourui1982/article/details/5282361

    阅读精华整理:


    1、根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在Cost Reduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)


    2、硬实时 - 代表产品 VxWorks

    举一个经常使用的实例,中高档汽车中使用的气囊。当报告车辆碰撞的传感器中断CPU后,操作系统应快速地分配展开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的必须使用硬实时的系统。

    硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止期限是无论如何都必须得到满足。

    3、软实时 - 代表产品 软实时Linux

    再举一个实例,IPTV数字电视机顶盒,需要实时的处理(解码)视频流,如果丢失了一个或几个视频帧,显然会造成视频的品质更差,但是只要做过简单的抖动处理的系统,丢失几个视频帧就不会对整个系统造成不可挽救的影响。

    软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。


    4、请注意:讲到这里,想花点墨水区分一下实时和嵌入式的概念,因为笔者也长时间把这两者混为一谈。实时操作系统的概念上文已经讲的很清楚了,主要就是要能确定性的满足时间要求。嵌入式系统很难下一个定义,有兴趣的可以百科一下“嵌入式系统”,一般可以认为是板子或芯片上软硬件的总和,嵌入式系统一定要对实时任务有很强的支持能力,所以一般嵌入式系统都会采用实时操作系统,根据不同应用,选择采用硬实时或软实时


    5、如何衡量一个实时操作系统的实时性能?

    指标1、中断响应时间(可屏蔽中断)

    指标2、任务切换时间


    6、实时操作系统的核心 - 任务调度(VxWorks)

    既然实时性对于实时操作系统如此重要,同学们,我们下面就来学习一下实现实时性的核心模块 - 任务调度。笔者所在的公司花了大把银子购买风河的VxWorks,但是为了实现自己的可控性,除了任务调度模块以外全部重写,包括内存管理、文件管理等其他核心模块,但唯独任务调度模块除外,这可是人家的压箱底法宝:-)

    构成应用软件系统的程序集合中,独立的、相互作用的程序单元,在其执行时称之为任务,从系统的角度来看,任务是竞争系统资源的最小运行单元。单个CPU 中,多任务机制制造了一个多个任务同时执行的假象。其实系统只是根据一个多任务调度算法,将内核插入到这些任务中执行。实时系统VxWorks的一个任务可有多种状态,但最基本的状态有以下四种:

    1) 就绪态(Ready):任务只等待系统分配CUP资源。

    2) 挂起态(Pend):任务需等待某些不可利用的资源而被阻塞。
    3) 休眠态(Sleep):如果系统不需要某一个任务工作,则这个任务处于休眠状态。
    4) 延迟态(Delay):任务被延迟时所处的状态。


    7、任务由系统内核调度运行一段固定长度的时间,称为时间片。调度是指为任务分配资源和时间,使系统满足特定的性能要求。调度算法的目的是在正常情况下,尽可能满足所有任务的时限:在峰值负载条件下,保证强实时任务满足时限。因为时限是区分实时系统和非实时系统的关键因素,因此调度算法是实时系统的基本问题。实时操作系统所具有的运行性能,如吞吐量的大小、周转时间的长短、相应的及时性和可预测性等在很大程度上都取决于实时调度。

    进程调度可采用下述两种方式:

    1. 非抢占方式。采用这种调度方式,一旦把处理机分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞,才再把处理机分配给其他进程,决不允许某进程抢占已经分配出去的处理机。显然它难于满足紧急任务的要求,实时系统中不宜采用这种调度方式。

    2. 抢占方式。允许调度程序根据某种原则,去停止某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程。抢占的原则有:

    - 时间片原则。各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。

    - 优先权原则。当一个进程到来时,如果其优先级比正在执行的进程的优先级高,便停止正在执行的进程,将处理机分配给优先级高的进程,使之执行。实时系统中一般采用基于优先级的抢占式调度和轮转调度的进程调度和中程调度相结合的调度策略。因此既可具有较大的灵活性,又能获得极小的调度延迟。


    文章原文

    做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform team封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统?

    1. 首先说一下实时的定义及要求:

    参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。
    http://www.faqs.org/faqs/realtime-computing/faq/

    一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性所以,Windows不是一个实时操作系统

    根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在Cost Reduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)

    硬实时 - 代表产品 VxWorks

    举一个经常使用的实例,中高档汽车中使用的气囊。当报告车辆碰撞的传感器中断CPU后,操作系统应快速地分配展开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的必须使用硬实时的系统。

    硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止期限是无论如何都必须得到满足。

    软实时 - 代表产品 软实时Linux

    再举一个实例,IPTV数字电视机顶盒,需要实时的处理(解码)视频流,如果丢失了一个或几个视频帧,显然会造成视频的品质更差,但是只要做过简单的抖动处理的系统,丢失几个视频帧就不会对整个系统造成不可挽救的影响。

    软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。

    ---------------------------------------------

    请注意:讲到这里,想花点墨水区分一下实时和嵌入式的概念,因为笔者也长时间把这两者混为一谈。实时操作系统的概念上文已经讲的很清楚了,主要就是要能确定性的满足时间要求。嵌入式系统很难下一个定义,有兴趣的可以百科一下“嵌入式系统”,一般可以认为是板子或芯片上软硬件的总和,嵌入式系统一定要对实时任务有很强的支持能力,所以一般嵌入式系统都会采用实时操作系统,根据不同应用,选择采用硬实时或软实时。

    ---------------------------------------------

    2. 如何衡量一个实时操作系统的实时性能?

    主要有以下两个重要指标:

    指标1、中断响应时间(可屏蔽中断)

    计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。对于抢先式内核,要先调用一个特定的函数,该函数通知内核即将进行中断服务,使得内核可以跟踪中断的嵌套。抢先式内核的中断响应时间由下式给出:
    中断响应时间=关中断的最长时间+保护CPU 内部寄存器的时间+进入中断服务函数的执行时间+开始执行中断服务例程(ISR)的第一条指令时间

     

    请注意:中断响应时间是系统在最坏情况下响应中断的时间,某系统100次中有99次在50ms之内响应中断,只有一次响应中断的时间是250ms,只能认为中断响应时间是250ms。

    指标2、任务切换时间

    除为中断处理提供确定性外,实时处理也需要支持周期性间隔的任务调度。大量控制系统要求周期性采样与处理。某个特定任务必须按照固定的周期(p)执行,从而确保系统的稳定性。考虑一下汽车的防抱死系统(ABS)。控制系统对车辆的每个车轮的转速进行采样(每秒最多 20 次)并控制每个制动器的压力(防止它锁死)。为了保持控制系统的正常工作,传感器的采样与控制必须按照一定的周期间隔。这意味着必须抢占其他处理,以便 ABS 任务能按照期望的周期执行。

    当多任务内核决定运行另外的任务时,它把正在运行任务的当前状态(即CPU 寄存器中的全部内容)保存到任务自己的栈区之中。然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU 的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。做任务切换所需要的时间取决于CPU 有多少寄存器要入栈。CPU 的寄存器越多,额外负荷就越重。

    系统实时性能重要指标的典型值
    -----------------------------------------------------
                      VxWorks    uC/OS-II        RT-Linux2.0  QNX6  
    硬件平台  MC68000  33MHz-486  60MHz-486   33MHz-486  
    任务切换  3.8us          < 9us            不详                12.57us  
    中断响应  < 3us          < 7.5us         25us                7.54us  
    -----------------------------------------------------

    参考文献:《4种实时操作系统实时性的分析对比》 - 百度一下可以搜到

    3. 实时操作系统的核心 - 任务调度(VxWorks)

    既然实时性对于实时操作系统如此重要,同学们,我们下面就来学习一下实现实时性的核心模块 - 任务调度。笔者所在的公司花了大把银子购买风河的VxWorks,但是为了实现自己的可控性,除了任务调度模块以外全部重写,包括内存管理、文件管理等其他核心模块,但唯独任务调度模块除外,这可是人家的压箱底法宝:-)

    构成应用软件系统的程序集合中,独立的、相互作用的程序单元,在其执行时称之为任务,从系统的角度来看,任务是竞争系统资源的最小运行单元。单个CPU 中,多任务机制制造了一个多个任务同时执行的假象。其实系统只是根据一个多任务调度算法,将内核插入到这些任务中执行。实时系统VxWorks的一个任务可有多种状态,但最基本的状态有以下四种:

    1) 就绪态(Ready):任务只等待系统分配CUP资源。
    2) 挂起态(Pend):任务需等待某些不可利用的资源而被阻塞。
    3) 休眠态(Sleep):如果系统不需要某一个任务工作,则这个任务处于休眠状态。
    4) 延迟态(Delay):任务被延迟时所处的状态。

    大家可以在网上搜一下VxWorks任务调度的相关文章,一般都会配状态机图。

    ----------------------------

    请注意:任务(task)、进程(process)、线程(thread)等概念相互联系又相互区别,因为不是本文的重点,这里不多解释,如果想详细了解推荐看一看“Windows Kernel Programming”。在VxWorks中,因为每个任务没有自己独立的虚拟内存空间,可以把任务理解为线程。 

    ----------------------------

    任务由系统内核调度运行一段固定长度的时间,称为时间片。调度是指为任务分配资源和时间,使系统满足特定的性能要求。调度算法的目的是在正常情况下,尽可能满足所有任务的时限:在峰值负载条件下,保证强实时任务满足时限。因为时限是区分实时系统和非实时系统的关键因素,因此调度算法是实时系统的基本问题。实时操作系统所具有的运行性能,如吞吐量的大小、周转时间的长短、相应的及时性和可预测性等在很大程度上都取决于实时调度。

    进程调度可采用下述两种方式:

    1. 非抢占方式。采用这种调度方式,一旦把处理机分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞,才再把处理机分配给其他进程,决不允许某进程抢占已经分配出去的处理机。显然它难于满足紧急任务的要求,实时系统中不宜采用这种调度方式。

    2. 抢占方式。允许调度程序根据某种原则,去停止某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程。抢占的原则有:

    - 时间片原则。各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。

    - 优先权原则。当一个进程到来时,如果其优先级比正在执行的进程的优先级高,便停止正在执行的进程,将处理机分配给优先级高的进程,使之执行。实时系统中一般采用基于优先级的抢占式调度和轮转调度的进程调度和中程调度相结合的调度策略。因此既可具有较大的灵活性,又能获得极小的调度延迟。

    VxWorks的wind内核缺省调度机制为基于优先级的抢占式调度。采用这种机制时,系统把处理机分配给优先级最高的进程,使之执行。一旦出现了另一个优先级更高的进程时,进程调度程序剥夺当前任务的执行,将处理机分配给高优先级任务。而在相同优先级的多个任务之间,采用时间片轮转调度机制。采用这种机制时,当一个任务到达时,它被排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有结束,则再等待属于自己的时间片的到来,直到任务完成。

    - 优先级抢占式
        采用基于优先级的抢占式调度,系统中每个任务都有一个介于最高0到最低255之间的优先级。任一时刻,系统内核一旦发现一个优先级更
    高的任务转变为就绪态,内核就保存当前任务的上下文并把当前任务状态转换为阻塞态,同时切换到这个高优先级任务的上下文执行。
    - 轮转调度算法
        采用轮转调度算法,系统让处于就绪态的优先级相同的一组任务依次轮流执行预先确定长度的时间片。这是一种处理机平均分配的方法。如果不使用轮转调度算法,优先级相同的一组任务中第一个获得处理机的任务将不会被阻塞而独占处理机,如果没有阻塞或其他情况发生,它
    不会放弃处理机的使用权。
    - 抢占调度与轮转调度混合方式
        有时,基于优先级的抢占式调度可与轮转调度相结合。当优先级相同的一组任务依次轮流平均分配处理机时,若有高优先级的任务转变为
    就绪态则可抢占该组任务。直到再一次符合执行条件时,该组任务才可再次共享处理机。
        为了任务控制的灵活性,VxWorks内核还提供了动态优先级机制,任务的优先级在运行期间可动态地变化。同时,为了防止优先级反转,还具有优先级继承机制,通过使用互斥信号量可以防止高优先级的任务被迫等待一段不确定时间,直到一个低优先级任务完成。

    参考文献:《实时操作系统VxWorks的内核任务调度研究》 - 百度一下可以搜到

    4. Linux的任务调度

    通用Linux系统支持实时和非实时两种进程,实时进程相对于普通进程具有绝对的优先级。对应地,实时进程采用SCHED_FIFO或者SCHED_RR调度策略,普通的进程采用SCHED_OTHER调度策略。

    在调度算法的实现上,Linux中的每个任务有四个与调度相关的参数,它们是rt_priority、policy、priority(nice)、counter。调度程序根据这四个参数进行进程调度。

    在 SCHED_OTHER调度策略中,调度器总是选择那个priority+counter值最大的进程来调度执行。从逻辑上分析SCHED_OTHER 调度策略存在着调度周期(epoch),在每一个调度周期中,一个进程的priority和counter值的大小影响了当前时刻应该调度哪一个进程来执行,其中priority是一个固定不变的值,在进程创建时就已经确定,它代表了该进程的优先级,也代表这该进程在每一个调度周期中能够得到的时间片的多少;counter是一个动态变化的值,它反映了一个进程在当前的调度周期中还剩下的时间片。在每一个调度周期的开始,priority的值被赋给 counter,然后每次该进程被调度执行时,counter值都减少。当counter值为零时,该进程用完自己在本调度周期中的时间片,不再参与本调度周期的进程调度。当所有进程的时间片都用完时,一个调度周期结束,然后周而复始。另外可以看出Linux系统中的调度周期不是静态的,它是一个动态变化的量,比如处于可运行状态的进程的多少和它们priority值都可以影响一个epoch的长短。值得注意的一点是,在2.4以上的内核中,priority被nice所取代,但二者作用类似。

    可见SCHED_OTHER调度策略本质上是一种比例共享的调度策略,它的这种设计方法能够保证进程调度时的公平性--一个低优先级的进程在每一个epoch中也会得到自己应得的那些CPU执行时间,另外它也提供了不同进程的优先级区分,具有高priority值的进程能够获得更多的执行时间。对于实时进程来说,它们使用的是基于实时优先级rt_priority的优先级调度策略,但根据不同的调度策略,同一实时优先级的进程之间的调度方法有所不同:

    - SCHED_FIFO:不同的进程根据静态优先级进行排队,然后在同一优先级的队列中,谁先准备好运行就先调度谁,并且正在运行的进程不会被终止直到以下情况发生:1.被有更高优先级的进程所强占CPU;2.自己因为资源请求而阻塞;3.自己主动放弃CPU(调用sched_yield);

    - SCHED_RR:这种调度策略跟上面的SCHED_FIFO一模一样,除了它给每个进程分配一个时间片,时间片到了正在执行的进程就放弃执行;时间片的长度可以通过sched_rr_get_interval调用得到;

    由于Linux系统本身是一个面向桌面的系统,所以将它应用于实时应用中时存在如下的一些问题:

    - Linux系统中的调度单位为10ms,所以它不能够提供精确的定时; 
    - 当一个进程调用系统调用进入内核态运行时,它是不可被抢占的; 
    - Linux内核实现中使用了大量的封中断操作会造成中断的丢失; 
    - 由于使用虚拟内存技术,当发生页出错时,需要从硬盘中读取交换数据,但硬盘读写由于存储位置的随机性会导致随机的读写时间,这在某
    些情况下会影响一些实时任务的截止期限; 
    - 虽然Linux进程调度也支持实时优先级,但缺乏有效的实时任务的调度机制和调度算法;它的网络子系统的协议处理和其它设备的中断处理都没有与它对应的进程的调度关联起来,并且它们自身也没有明确的调度机制;

    参考文献:《基于Linux的实时系统》 - 百度一下可以搜到

    5. 实时Linux研究

    呼哧呼哧写了半天,终于到了重头戏,实时Linux研究。前文说过,风河的VxWorks虽然性能大大的好,但是要花很多银子,对于一般的软实时应用系统来说,还是用开源免费的实时Linux比较好。笔者所在的公司也正在研究将平台转为Linux。有许多种方法可以赋予普通Linux实时的能力:

    5.1 瘦内核(微内核)- Thin-Kernel

    瘦内核(或微内核)方法使用了第二个内核作为硬件与 Linux 内核间的抽象接口。非实时 Linux 内核在后台运行,作为瘦内核的一项低优先级任务托管全部非实时任务。实时任务直接在瘦内核上运行。瘦内核主要用于(除了托管实时任务外)中断管理。瘦内核截取中断以确保非实时内核无法抢占瘦内核的运行。这允许瘦内核提供硬实时支持。

    thin-kernel

    虽然瘦内核方法有自己的优势(硬实时支持与标准 Linux 内核共存),但这种方法也有缺点。实时任务和非实时任务是独立的,这造成了调试困难。而且,非实时任务并未得到 Linux 平台的完全支持(瘦内核执行称为瘦 的一个原因)。

    使用这种方法的例子有 RTLinux (现在由 Wind River Systems 专有),实时应用程序接口(RTAI)和 Xenomai。

    5.2 超微内核

    这里瘦内核方法依赖于包含任务管理的最小内核,而超微内核法对内核进行更进一步的缩减。通过这种方式,它不像是一个内核而更像是一个硬件抽象层(HAL)。超微内核为运行于更高级别的多个操作系统提供了硬件资源共享。因为超微内核对硬件进行了抽象,因此它可为更高级别的操作系统提供优先权,从而支持实时性。

    对硬件进行抽象的超微内核法

    注意,这种方法和运行多个操作系统的虚拟化方法有一些相似之处。使用这种方法的情况下,超微内核在实时和非实时内核中对硬件进行抽象。这与 hypervisor 从客户(guest)操作系统对裸机进行抽象的方式很相似。

    关于超微内核的示例是操作系统的 Adaptive Domain Environment for Operating Systems (ADEOS)。ADEOS 支持多个并发操作系统同步运行。当发生硬件事件后,ADEOS 对链中的每个操作系统进行查询以确定使用哪一个系统处理事件。

    5.3 资源内核(Resource-kernel)

    另一个实时架构是资源内核法。这种方法为内核增加一个模块,为各种资源提供预留(reservation)。这种机制保证了对时分复用(time- multiplexed)系统资源的访问(CPU、网络或磁盘带宽)。这些资源拥有多个预留参数,如循环周期、需要的处理时间(也就是完成处理所需的时间),以及截止时间。

    实现资源预留的资源内核法

    资源内核提供了一组应用程序编程接口(API),允许任务请求这些预留资源。然后资源内核可以合并这些请求,使用任务定义的约束定义一个调度,从而提供确定的访问(如果无法提供确定性则返回错误)。通过调度算法,如 Earliest-Deadline-First (EDF),内核可以处理动态的调度负载。

    资源内核法实现的一个示例是 CMU 公司的 Linux/RK,它把可移植的资源内核集成到 Linux 中作为一个可加载模块。这种实现演化成商用的 TimeSys Linux/RT 产品。

    5.4 标准的Linux内核最新版本2.6中加入了实时功能

    目前探讨的这些方法在架构上都很有趣,但是它们都在内核的外围运行。然而,如果对标准 Linux 内核进行必要的修改使其支持实时性,结果会怎么样呢?

    今天,在 2.6 内核中,通过对内核进行简单配置使其完全可抢占,您就可以得到软实时功能。在标准 2.6 Linux 内核中,当用户空间的进程执行内核调用时(通过系统调用),它便不能被抢占。这意味着如果低优先级进程进行了系统调用后,高优先级进程必须等到调用结束后才能访问 CPU。

    新的配置选项 CONFIG_PREEMPT 改变了这一内核行为,在高优先级任务可用的情况下(即使此进程正在进行系统调用),它允许进程被抢占。

    允许抢占的标准 2.6 Linux 内核

    但这种配置选项也是一种折衷。虽然此选项实现了软实时性能并且即使在负载条件下也可使操作系统顺利地运行,但这样做也付出了代价。代价就是略微减低了吞吐量以及内核性能,原因是 CONFIG_PREEMPT 选项增加了开销。这种选项对桌面和嵌入式系统而言是有用的,但并不是在任何场景下都有用(例如,服务器)。

    在 2.6 内核中另一项有用的配置选项是高精度定时器。这个新选项允许定时器以 1μs 的精度运行(如果底层硬件支持的话),并通过红黑树实现对定时器的高效管理。通过红黑树,可以使用大量的定时器而不会对定时器子系统(O(log n))的性能造成影响。

    只需要一点额外的工作,就可以通过 PREEMPT_RT 补丁实现硬实时。PREEMPT_RT 补丁提供了多项修改,可实现硬实时支持。其中一些修改包括重新实现一些内核锁定原语,从而实现完全可抢占,实现内核互斥的优先级继承,并把中断处理程序转换为内核线程以实现线程可抢占。

    参考文献:实时Linux架构剖析 - M. Tim Jones, 顾问工程师, Emulex Corp.
    http://www.ibm.com/developerworks/cn/linux/l-real-time-linux/#resources

     

    -------------------------------------------------------------------------

     

    本文就到此告一段落,结合自己的实际项目经验,总结了实时操作系统的概念,性能指标,任务调度方法,VxWorks和Linux的实时性对比,以及相应的介绍。供笔者自己学习,也供CSDN各位同学参考,大部分内容来自网络,不是一篇严谨的论文,如有纰漏还请指出,共同进步。

    整理来自:时间的诗
    展开全文
  • linux实时系统还是分时操作系统

    万次阅读 2017-07-11 16:25:15
    实时操作系统 实时操作系统  英文称Real Time Operating System,简称RTOS。  1.实时操作系统定义  实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在...
    实时操作系统  实时操作系统
      英文称Real Time Operating System,简称RTOS。
      1.实时操作系统定义
      实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
      实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
      2.实时操作系统的特征
      1)多任务;
      2)有线程优先级
      3)多种中断级别
      小的嵌入式操作系统经常需要实时操作系统,内核要满足实时操作系统的要求。
      3.实时操作系统的相关概念
      (1)基本概念
      代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;
      资源:任何为任务所占用的实体;
      共享资源:可以被一个以上任务使用的资源;
      任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
      任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;
      内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核于可剥夺型内核;
      调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;
      (2)关于优先级的问题
      任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;
      优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。
      (3)互斥
      虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。
      因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。中断响应时间通常被定义为:
      中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间[2]。
      中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间[2]。
    
    --------------------------------------------------------------------------------------------------------------------------
    
    分时操作系统  【词语】:分时操作系统
      【注音】:fēn shí cāo zuò xì tǒng
      【英文】:Time-sharing Operating System
      【释义】:使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。例如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。
      产生分时系统是为了满足用户需求所形成的一种新型 OS 。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表现在以下几个方面: 人—机交互 共享主机 便于用户上机 
      分时系统的基本思想 
      时间片 :是把计算机的系统资源(尤其是 CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。 
      分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。 
      分时操作系统:是一种联机的多用户交互式的操作系统。一般采用时间片轮转的方式使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。 
      设计目标: 对用户的请求及时响应,并在可能条件下尽量提高系统资源的利用率。 
      适合办公自动化、教学及事务处理等要求人机会话的场合。 
      工作方式: 
      一台主机连接了若干个终端;每个终端有一个用户在使用;交互式地向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令 
      分时系统实现中的关键问题:及时接收。及时处理。 
      特征: 
      交互性:用户与系统进行人机对话。 
      多路性:多用户同时在各自终端上使用同一CPU。 
      独立性:用户可彼此独立操作,互不干扰,互不混淆。 
      及时性:用户在短时间内可得到系统的及时回答。 
      影响响应时间的因素:终端数目多少、时间片的大小、信息交换量、信息交换速度。
    
    ------------------------------------------------------------------------------------------------------------
    
    例子:
    
    分时——现在流行的PC,服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求
    实时——一般用于单片机上,比如电梯的上下控制中,对于按键等动作要求进行实时处理
    
    
    
    **linux是分时系统,不过可以改成实时的如:UCOS就是linux修改而来的实时系统,至于他们的区别,下以引用百度中的类似回答,个人感觉简单明了:“分时系统是 一个系统可以同时为两个或两个以上的账户服务!
    实时系统 是能立即对指令做出反应的操作系统!微软的常见系统不能吧!而且还死机!战斗机中的操作系统就是实时的系统,想想如果别人打仗时战斗机中的电脑反应的是飞行员上一条指令或死机了,谁还敢开这架飞机呢?”**
    展开全文
  • Linux操作系统基础

    万次阅读 多人点赞 2018-05-27 12:16:53
    Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 Linux介绍 Linux出现于1991年,是...
  • linux属于什么操作系统

    千次阅读 2021-05-15 19:08:36
    linux属于什么操作系统?我们一起来了解一下吧。Linux是一种自由和开放源码的...linux系统与windows系统的区别区别1:开放性所谓的开放性就是linux操作系统是开放源码系统,可以对其程序进行编辑修改。而微软的windo...
  • Linux操作系统实时性分析

    万次阅读 多人点赞 2016-12-11 13:02:46
    1. 概述 选择一个合适的嵌入式操作系统,可以考虑以下几个因素:  第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者uCLinux,而不是uC/OS-...
  • Linux操作系统实时性学习总结

    千次阅读 2016-07-14 14:56:35
    一、实时系统基本概念 什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被Donald Gillies提出定义为:一个实时系统是...实时操作系统(RTOS,RealTime Operation Syste
  • 五款常用的Linux操作系统

    千次阅读 2021-05-15 16:44:39
    导语:Linux操作系统诞生于1991年的10月5日。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和...
  • 在介绍这两个概念之前要先介绍一下操作系统内核中的“线程调度器” 这里就拿Linux内核来做举列 在Linux内核中有一个scheduler线程调度器,有特殊的算法来挑选线程,专门用来给运行在虚拟内存管理模式下的线程分配CPU...
  • 操作系统作为磁盘文件系统和用户之间的中介,必须在内核中建立自己的文件系统,为与磁盘文件系统相区别,我们把它叫做操作系统的文件管理系统,简称文件管理系统。   文件管理系统与磁盘文件系统的关系 与处理器...
  • 常用Linux发行版操作系统大盘点

    千次阅读 多人点赞 2020-05-12 10:16:47
    中详细演示了如何在Windows系统和macOS系统上基于虚拟机来打造学习和实验用的Linux环境,这两篇文章中安装的Linux系统都是CentOS这个发行版,于是一些小伙伴发出了致命三连击: 为啥不选用其他类型的Linux..
  • 实时操作系统-RTLinux

    千次阅读 2013-05-15 20:23:20
    实时操作系统-RTlinux 摘要: 介绍了RTLinux的两个重点特点:硬实时性和完备性,及其在嵌入式系统...在各种不同的操作系统中,由于Linux操作系统的廉价、源代码的开放性以及系统的稳定性,使其在基于PC的嵌入式系统中
  • linux查看操作系统版本信息

    千次阅读 2020-09-24 15:48:40
    linux查看操作系统版本信息 一、linux下如何查看已安装的centos版本信息: 1.Linux查看当前操作系统版本信息 cat /proc/version Linux version 2.6.32-696.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc ...
  • 盘点多款国产Linux桌面操作系统

    千次阅读 2019-11-14 21:10:24
    国产操作系统多为以Linux 为基础二次开发的操作系统。2014年4月8日起,美国微软公司停止了对Windows XP SP3操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。 工信部对此表示...
  • 如何查看Linux操作系统版本

    万次阅读 2018-11-30 10:28:31
    ...如何查看Linux操作系统版本 1. 查看内核版本命令:   [root@tg ]# cat /proc/version  Linux version 3.10.0-693.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4....
  • RTLinux(Real-TimeLinux):是由新墨西哥大学(NMT)开发,是可嵌入系统并支持硬实时特性,部分支持POSIX.1b标准。其内核结构和系统特点是实现了一个小的实时核心,并“架空”了Linux内核,而实时任务作为可加载模块...
  • Linux操作系统分类详解

    千次阅读 2017-08-11 10:38:57
    Linux 操作系统的发行版本可以大体分为两类 Redhat 和 Debian ; Redhat , 应该说是在国内使用人群最多的 Linux 版本 , 甚至有人将 Redhat 等同于 Linux 操作系统 , 而有些老鸟更是只用这一个版本的 Linux 操作系统 ;...
  • Linux 操作系统的体系结构

    万次阅读 2020-07-19 23:00:22
    如图,显示了 Linux 操作系统的体系结构。 # Linux 操作系统的组成 内核的接口被称为系统调用(system call),公用函数库建立在系统调用接口上,应用程序既可使用公用函数库,也可使用系统调用。shell 是一个特殊的...
  • Linux操作系统

    千次阅读 2020-06-30 22:47:36
    Linux操作系统认知1.1 操作系统(Operation System简称OS)1.2 Linux系统介绍1.3 文件系统1.4 Ubuntu使用2. Linux常用命令2.1 终端与命令行2.2 Linux常用命令2.2.1 帮助命令2.2.2 基础操作命令2.2.3 文件操作2.2.4 ...
  • Linux操作系统的诞生与其对现代信息世界的影响

    千次阅读 多人点赞 2020-05-19 11:12:11
    Linux操作系统在各领域迅速扩张的同时,开源社区也得到了快速发展。先后诞生了Git版本控制系统和GitHub开源项目托管平台,开源社区到达了前所未有新阶段。本文通过介绍Linux内核的诞生历程,分析Linux系统的各种...
  • 常见的Linux操作系统有哪些

    千次阅读 2021-05-10 00:48:11
    常见的Linux操作系统有哪些导语:Linux操作系统诞生于1991 年的10 月5 日(。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏...
  • linux操作系统是什么,操作系统概述

    千次阅读 2019-06-19 20:29:50
    Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。 计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。...
  • 如何安装windows和linux操作系统

    万次阅读 多人点赞 2020-11-29 15:03:59
    如何安装windows和linux操作系统?一、win压缩卷:1.右键此电脑,选择管理,选择磁盘管理。2.挑选一个磁盘然后右击选择压缩卷,空间大小自己确定。二、下载复刻工具和iso光盘映像文件:1.把它们都下载好,然后点击...
  • Linux操作系统期末复习题(含答案).doc

    千次阅读 2021-05-16 17:19:58
    在Ubuntu Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。A. root B. guest C. administrator D.supervistor.3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(?B )A. NID ...
  • linux系统是什么操作系统

    千次阅读 2021-02-01 22:07:49
    我刚开始学这个东西的时候也不太清楚,只是听别人说linux操作系统什么的。那linux到底是什么?我们来认识一下: Linux是最知名和最常用的开源操作系统。作为一个操作系统,Linux是一个软件,位于计算机上的所有其他...
  • 什么是真正的实时操作系统

    万次阅读 多人点赞 2018-07-19 14:40:34
    做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念...
  • Linux操作系统应用领域详解

    千次阅读 2018-07-12 18:13:14
    常用的IT服务器有Linux、Unix和Windows...Linux操作系统主要有以下三大应用领域: 1. Linux作为企业级服务器的应用Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理...
  • 大数据基础:必备Linux操作系统知识

    千次阅读 多人点赞 2018-09-02 15:59:20
    Hadoop通常都是搭建在Linux操作系统之上,故在搭建Hadoop实验环境之前,首先需要创建Linux系统环境。由于我们只是搭建Hadoop实验环境,而不是生产环境,因此,为简单起见,就采用虚拟机VMware+Linux操作系统RedHat...
  • 2014年4月8日起,美国微软公司停止了对Windows XP SP3操作系统提供服务...国产操作系统多以Linux为基础二次开发,今天我们为大家盘点一下二零一八年值得用户使用的国产Linux桌面操作系统。 1.深度操作系统 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,814,718
精华内容 725,887
关键字:

linux实时操作系统

linux 订阅
友情链接: divider.rar