zoukankan      html  css  js  c++  java
  • 操作系统学习笔记:实时系统

    一、概述
    实时系统不仅要求计算结果正确,而且要求结果必须在一个特定的截止期限内产生,否则即使正确也没有意义。比如一些嵌入式系统,安全关键系统。
    实时计算有两种类型:硬实时系统和软实时系统。硬实时系统有最严格的要求,保证关键实时任务在最后期限内完成。软实时系统限制较少,仅仅指关键实时任务将获得优先于其他任务的权利,并且会保留优先级直到完成。

    二、系统特性
    实时系统的典型特性:
    1、目标单一
    2、体积小
    CPU、内存常常都很小,所以空间占用很小,通常用于家电设备和消费设备中。
    3、批量生产成本低
    常常是CPU、内存(或缓存)、存储器管理单元、USB都包含在单集成电路中

    4、特定的时间要求

    三、实时内核特性
    实时内核的特性就是越简单越好,摒弃许多通用操作系统才有的功能。
    就连虚拟内存,也要采用与实时系统不同的途径来实现:
    1)CPU直接生成物理地址,优点是快,但需要程序员为程序指定物理位置
    2)动态重定位寄存器,优点是可以轻松实现逻辑地址与物理地址的转换,缺点是缺少进程间的内存保护
    3)采用通用操作操作系统的方法

    四、实现实时操作系统
    实现实时操作系统必须的特性:
    1、基于优先级的抢占式调度算法
    2、抢占式内核
    非抢占式内核不允许在内核模式下运行的进程被抢占;内核模式的进程将一直运行,直到它退出内核模式,阻塞或自愿放弃对CPU的控制。相反,抢占式内核允许在内核模式下的任务被抢占。

    有很多方法可以使内核成为可抢占。一种是在长期的系统调用中插入抢占点,到了这个点就检查有无高优先级进程需要运行,有的话就上下文切换。等高优先级进程终止,原先被中断的进程继续运行。

    另一种就是内核被抢占后,内核数据有保护机制,免于被修改,则内核即使被抢占也没事。

    3、延迟最小化
    有两个延迟影响实时系统的性能:
    1)中断延迟
    2)调度延迟
    必须将它们最小化。

    影响中断延迟的一个关键因素是,当内核的数据结构正在更新时,屏蔽中断的时间。实时操作系统要求中断只能被屏蔽很短的时间。

    而应对调度延迟的最佳方法是抢占式内核。

    4、网络支持(可选)

    五、实时CPU调度
    软实时系统调度不能保证一个关键进程被调度,只能保证相对非关键的进程可以获得优先权。硬实时系统有更严格的要求:一项任务必须在期限内处理,否则如同根本没有服务一样。

    硬实时系统中,进程具有周期性,即以固定的间隔(周期)请求CPU。每个周期性进程有一个固定的处理时间让CPU处理、一个截止期限和一个周期。调度程序要么接纳该进程,保证按时完成,否则拒绝。

    其中,0 <= 处理时间 <= 截止期限 <= 请求周期。含义为,在下一个请求周期发起前,一定要处理完(截止期限),而这个过程中,可以有多次CPU处理。

    1、单调速率调度
    使用静态抢占式优先策略调度周期性任务。
    系统中运行的进程被分配一个与周期长短相反的优先级。周期短,优先级高,否则就低。并且该进程每次获得CPU的运行持续时间都相同。高优先级发起周期请求时,可以抢占低优先级。不过,不管高低,它们都保证能在截止期限前被处理完成。

    单调速率调度理论山是最理想的算法,但要综合考虑截止期限和请求周期,但有时会出现进程无法被调度。

    2、最早截止期限优先调度算法(EDF)
    根据截止期限动态分配优先级。截止期限越早,优先级越高;否则越低。在这个算法里面,进程的优先级可能会经常被调整。比如说,本来进程A的优先级比进程B高,当它发起周期请求时,进程B正在处理,但由于这时B的截止期限比A的短,于是B的优先级反而更高,B继续处理剩余部分。

    理论上,EDF算法能让CPU使用率100%,但由于进程间上下文切换和中断处理的占用,不可能达到这个值。

    3、按比例分享调度
    将所有应用程序分为若干份执行,调度程序只接纳请求份额低于当前可用份额的申请。

    4、Pthread调度
    POSIX(Portable Operating System Interface,可移植操作系统接口) Pthread API。

  • 相关阅读:
    块级元素和内联元素
    cookie和session 区别
    hihernate一对多关联映射
    --查询50到80行数据
    单表查询
    表空间 用户
    进程遍历模块遍历
    字符转换函数
    控件综合2
    清理文件2
  • 原文地址:https://www.cnblogs.com/leftfist/p/6808740.html
Copyright © 2011-2022 走看看