zoukankan      html  css  js  c++  java
  • 关于RTOS的一些笔记

    最近在看RTOS的一些书籍,将以前一些没有搞清楚的概念做一个笔记:

    1、前后台系统概念:后台是一个死循环,按照顺序执行程序,前台是中断。
    2、临界段:代码的临界段也被称为临界区,指处理时不可分割的代码,一旦这部分代码执行,则不允许任何中断打断,在进入临界段之前要
    关中断,在临界段代码执行完后要立即开中断,比如在执行IIC时序的温湿度读取时就需要进行临界段代码的保护。
    3、可以被一个以上任务使用的资源叫做共享资源,为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。
    4、多任务运行很像前后台系统,只是后台系统有多个。
    5、一个任务称为一个线程,该程序可以认为CPU完全只属于自己。
    6、何时高优先级任务掌握CPU的使用权,由使用的内核的类型确定,基于优先级的内核有2种类型:不可剥夺型和可剥夺型。

           不可剥夺型内核要求每个任务主动放弃CPU的使用权,不可剥夺型调度法也称作合作型多任务,各任务彼此合作共享一个CPU,异步事件
    还是由中断服务程序来处理,中断服务程序可以使一个高优先级任务由挂起态变为就绪态,但中断服务以后,使用权还是回到被中断了的
    那个任务,直到该任务主动放弃CPU的使用权,高优先级的任务才能获得CPU使用权。
      可剥夺型则是中断服务程序执行后高优先级任务立即获得CPU使用权。很少有不可剥夺型内核
    7、使用可剥夺型内核时,应用程序不应直接使用不可重入函数,调用不可重入函数时,应满足互斥条件,可使用互斥型信号量来实现。
    8、可重入函数可以被任何任务调用,而不必担心数据被破坏,可重入函数或者只使用局部变量,或者使用全局变量,但要对全局变量
    予以保护。
    9、任务切换时通过调用延时函数来释放CPU使用权。
    10、使用以下技术,可使函数具有可重入性:
        (1)把变量定义为局部变量
      (2)调用该函数之前关闭中断,调用后再开中断。
      (3)用互斥型信号量。

    11、当有两个或两个以上任务有同样的优先级时,内核允许一个任务运行事先确定的一段时间,然后切换为另外一个任务,这个过程称为时间片调度。
    内核在满足以下条件时,把CPU使用权交给下一个就绪态的任务:
    1、当前任务已空闲 2、当前任务在时间片还没结束已经完成了 3、时间片结束
    目前uc/os不支持时间片调度,所有任务优先级必须不同。
    12、作为系统设计的一条原则,所有任务的总CPU的利用率应小于60%-70%。
    13、信号量最好的比喻是打印机,任何时候只能处理一个任务的打印,其他任务需先挂起。

    先写到这里,后期根据看书进度再进行添加。

  • 相关阅读:
    java 上传图片
    getElementById 鼠标经过字体改变颜色
    getElementById 学习
    css的绝对定位与相对定位
    关于For循环
    扩展方法的应用
    关于Function 的学习笔记
    <a>标签中查找文件的方法
    关于Name ID class属性的区别
    使用float设置经典的网站前端结构
  • 原文地址:https://www.cnblogs.com/xiongzongxiong/p/10330625.html
Copyright © 2011-2022 走看看