返回顶部
首页 > 资讯 > 操作系统 >Linux操作系统实时性学习示例分析
  • 108
分享到

Linux操作系统实时性学习示例分析

2023-06-16 19:06:57 108人浏览 安东尼
摘要

本篇文章为大家展示了linux操作系统实时性学习示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、实时系统基本概念什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水

本篇文章为大家展示了linux操作系统实时性学习示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、实时系统基本概念

什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被Donald Gillies提出定义为:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时系统对响应时间有严格要求。

实时操作系统(RTOS,RealTime Operation System)是指能够在给定的截止时间前对内部或者外部的异常事件做出正确响应的操作系统。在实时操作系统中,进程的执行结果的正确与否不仅与逻辑运算或数学计算结果的正确性相关,还与进程运行结束得出结果的时间有关,也就是说,如果一个进程的运算结果是正确的,但是由于它完成时间已经超出了系统给定的***期限,在实时系统中,这个结果就是毫无意义的。

根据系统对响应时间约束条件的强弱可将实时操作系统分为两大类:硬实时系统(HRT,HardReal-Time System)和软实时系统(SRT,SoftReal-Time System)。

  • 软实时操作系统:软实时操作系统对时间的限制不是十分苛刻,响应的时间可以相对延迟,即未超过***规定时间太多的范围内,其结果都是可以接受的,不会产生严重的后果。

  • 硬实时操作系统:对于硬实时操作系统而言,不仅要求各个任务能够运行得到正确的结果,同时还必须在限定的时间内完成,这个时间是由系统本身确定的,这比软实时操作系统的时间约束条件严格了许多。例如,在航天领域的嵌入式实时操作系统中,如果在规定的时间内未能得出所希望的运算结果,其产生的后果将是十分严重的。

二、Linux操作系统实时性

1、Linux系统框架
宏观上,Linux的框架如图1:

Linux操作系统实时性学习示例分析

 图1 Linux框架图

为了更加直观,更加便于理解,Linux框架图1,可以抽象成下图2。

Linux操作系统实时性学习示例分析

图2           

                 

2、标准Linux内核制约实时性的因素

  • Linux中有大量不可抢占的区域

在Linux2.6中,内核己经可以抢占,因而实时性得到了加强"但是内核中仍有大量的不可抢占区域,如由自旋(SPinlock)保护的临界区。

  • 时钟粒度粗糙

Linux2.6内核虽然把时钟频率提高到1000 赫兹,定时精度达到了1ms,但远不能满足实时系统要求的微秒级定时精度,如数控系统要求50us 的定时精度。

  • 关闭中断

系统调用和中断服务程序中,为了保护临界区资源,Linux会长时间关闭中断"有些系统调用和中断服务程序的时间还很长,这样会加大中断延迟时间。

  • 缺乏有效的实时任务调度机制和调度算法

Linux系统是按照分时系统的目标设计的,以达到系统较好的平均性能,强调平衡各进程之间的响应时间来保证公平的CPU时间占用。通常采用固定时间片的分时调度算法,内核不能抢占,而实时系统的行为更多的取决于复杂的不可预知的情况。这些原则不能满足实时系统短的响应时间和确定的执行行为的要求。

  • 优先级反转的问题

当一个低优先级的进程占用了某种资源,导致同样需要这个资源的高级进程无法运行,并且此时有一个优先级在他们之间的就绪进程获得了CPU 的控制权,这样就使得高级别的任务需要等待比他优先级别低的任务,这种现象就叫做优先级反转。在Linux中,由于资源是不可抢占的,并且不支持优先级继承等策略,所以优先级反转现象可能会发生,这影响了系统的实时性能。

3、改进Linux实时性的方案

从前文可以看出,标准Linux内核有许多制约实时性的因素,要将Linux系统用于实时环境,必须对其进行改进。目前改进Linux实时性的方案有两种:直接修改内核法、双内核法。

直接修改内核法,通过对Linux 原理与源代码的分析,通过对内核的进程调度、中断服务程序等代码进行修改与优化,提高系统的实时性能,并且为了保证系统的通用性,需要按照POSIX
的相关标准来进行改动。利用这种方法可以获得较好的性能提升,并且因为与标准的Linux 内核使用相同的应用程序接口,所以有良好的兼容性。目前,采用修改内核方法改进Linux 实时性的产品很多,如 Kurt-Linux、TimesysLinux 和 InGo's RT patch 等。

双内核法,通过在Linux 内核与硬件中断之间增加一个可抢先的实时内核,把标准的Linux 内核作为该实时内核的一个优先级***的进程来调度,它可以被实时进程抢断,正常的
Linux 进程仍可以在 Linux 内核上运行,这样既可以使用标准分时操作系统即Linux 的各种服务,又能提供低延时的实时环境。RT-Linux 是采用双内核法改造Linux 实时性的典型代表。

上述内容就是Linux操作系统实时性学习示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux操作系统实时性学习示例分析

本文链接: https://lsjlt.com/news/284808.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux操作系统实时性学习示例分析
    本篇文章为大家展示了Linux操作系统实时性学习示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、实时系统基本概念什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水...
    99+
    2023-06-16
  • Linux操作系统的示例分析
    这篇文章给大家分享的是有关Linux操作系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Linux简介Linux可以有狭义和广义两种定义。狭义来说,Linux实际上指Linux kernel (内...
    99+
    2023-06-13
  • NodeOS操作系统的示例分析
    这篇文章将为大家详细讲解有关NodeOS操作系统的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。NodeOS 是一个对开发者友好的操作系统,使用 Node.js 编写,NodeOS 是一个完全用 ...
    99+
    2023-06-28
  • Linux/Unix操作系统目录结构的示例分析
    这篇文章给大家分享的是有关Linux/Unix操作系统目录结构的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。  举例来说,根目...
    99+
    2023-06-13
  • Linux操作系统的NTFS和内核的示例分析
    今天就跟大家聊聊有关Linux操作系统的NTFS和内核的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。传统编译内核模块的方法繁琐而费时,这里介绍一种快速编译所需要内核模块的新...
    99+
    2023-06-17
  • FreeRTOS实时操作系统结构示例
    目录1.查找相关文档页2.获取RTOS源代码3.FreeRTOS源码目录结构移植层目录举例:演示例程目录举例:4.编译工程5.运行演示例程 FreeRTOS可以被移植到很多...
    99+
    2024-04-02
  • node.js文件操作系统的示例分析
    这篇文章给大家分享的是有关node.js文件操作系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:文件读取普通读取同步读取var fs =...
    99+
    2024-04-02
  • Flex网络操作系统的示例分析
    这篇文章给大家分享的是有关Flex网络操作系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。关键词:基于B/S结构的WindowsXP系统、Flex网络操作系统、浏览器...
    99+
    2024-04-02
  • FreeRTOS实时操作系统移植操作示例指南
    目录1.添加FreeRTOS源码2.向工程分组中添加文件附上delay.c和delay.h的代码1.添加FreeRTOS源码 在基础工程中新建一个名为 FreeRTOS 的文件夹,将...
    99+
    2024-04-02
  • FreeRTOS实时操作系统的内核控制示例解析
    目录前言1.强制上下文切换宏2.进入临界区宏3.退出临界区宏4.禁止可屏蔽中断宏5.使能可屏蔽中断宏6.启动调度器6.1函数描述7.停止调度器7.1函数描述8.挂起调度器8.1函数描...
    99+
    2024-04-02
  • Node.js之操作文件系统的示例分析
    这篇文章给大家分享的是有关Node.js之操作文件系统的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 同步方法与异步方法在Node.js中,使用fs模块来实现所有有...
    99+
    2024-04-02
  • ubuntu操作系统常用FAQ的示例分析
    这篇文章主要介绍ubuntu操作系统常用FAQ的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、记录一下如何ubuntu server如何查看crontab日志 crontab记录日志修改rsyslogsu...
    99+
    2023-06-13
  • JavaScript属性操作的示例分析
    这篇文章将为大家详细讲解有关JavaScript属性操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、属性的设置和获取1、属性的设置和获取主要有两种方式:<!DOCTYPE ...
    99+
    2023-06-29
  • freertos实时操作系统空闲任务阻塞延时示例解析
    目录前言空闲任务阻塞延时SysTick实验现象前言 阻塞态:如果一个任务当前正在等待某个外部事件,则称它处于阻塞态。 rtos中的延时叫阻塞延时,即任务需要延时的时候,会放弃CPU的...
    99+
    2024-04-02
  • Linux操作系统学习,Linux基础命令大全
    目录 第一章、Linux简介和安装1.1)Linux简介和分类1.2)安装VMware虚拟机,在虚拟机中安装CentOS 7 第二章、虚拟机中Linux的IP地址配置详解2.1)什么是IP地址,如何查看2.2)虚拟机NAT模式中...
    99+
    2023-08-17
    linux 学习 运维
  • linux是不是分时操作系统
    这篇“linux是不是分时操作系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux是不是分时操作系统”文章吧。lin...
    99+
    2023-07-05
  • Linux操作系统实现多点触摸技术的实例分析
    Linux操作系统实现多点触摸技术的实例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为了和Windows 7竞争,操作界面解决方案提供商Synaptics Inc.今...
    99+
    2023-06-16
  • FreeRTOS实时操作系统的列表与列表项操作示例
    目录前言列表项数据结构列表项初始化列表数据结构将列表项按照升序排列插入到列表将列表项从列表删除    前言 FreeRTOS列表与列表项其实就是链表和节点,在li...
    99+
    2024-04-02
  • 想学习分布式系统?从学习Go语言和Unix操作系统开始!
    随着互联网的快速发展,分布式系统的应用越来越广泛。分布式系统是指将计算机资源集中起来,形成一个整体,通过网络互相通信和协作,完成一个或多个任务的系统。而Go语言和Unix操作系统则是分布式系统中不可或缺的两个重要组成部分。 Go语言是一种...
    99+
    2023-09-11
    unix 学习笔记 分布式
  • 操作系统与实时操作系统:性能与稳定性的权衡
    传统操作系统 高性能:传统操作系统通常具有更高的性能,因为它们采用抢占式调度算法,允许优先级较高的任务抢占较低优先级任务的 CPU 时间。这使得它们非常适合于要求速度和响应能力的应用程序,如游戏、视频编辑和 Web 浏览。 较低稳定性:...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作