欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年嵌入式操作系统读书笔记 .pdf

    • 资源ID:34269552       资源大小:40.08KB        全文页数:3页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年嵌入式操作系统读书笔记 .pdf

    嵌入式操作系统读书笔记上网查了一些关于嵌入式操作系统的一些资料,现整理如下:由于嵌入式实时操作系统可以支持多任务,使得程序开发更加容易,在便于维护的同时还能提高系统的稳定性和可靠性,所以逐步成为嵌入式系统的重要组成部分,对嵌入式操作系统的研究变得尤为重要。1. 任务管理概述:任务管理是嵌入式实时操作系统的核心和灵魂,决定了操作系统的实时性能。它通常包含优先级设置、多任务调度机制和时间确定性等部分。1 优先级设置嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要, 赋予的优先级应越高。优先级的设置分为静态优先级和动态优先级两种。静态优先级指的是每个任务在运行前都被赋予一个优先级,而且这个优先级在系统运行期间是不能改变的;动态优先级则是指每个任务的优先级(特别是应用程序的优先级)在系统运行时可以动态地改变。2 多任务调度机制任务调度主要是协调任务对计算机系统资源的争夺使用。对系统资源非常匮乏的嵌入式系统来说, 任务调度尤为重要,它直接影响到系统的实时性能。通常, 多任务调度机制分为基于优先级抢占式调度和时间片轮转调度。基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将CPU 分配给处于就绪态的优先级最高的任务运行。如果系统发现就绪队列中有比当前运行任务更高的优先级任务, 就把当前运行任务置于就绪队列中,调入高优先级任务运行。系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。在一般情况下, 嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。3 时间的可确定性嵌入式实时操作系统甬数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。2 任务调度概述:任务调度 (schedulers)是内核的主要职责,实际上它就是一个法官,决定当前由哪个任务占用CPU,多数实时内核都是基于优先级调度算法的,每个任务根据其重要程度的不同被赋予一定的优先级。基于此算法,CPU 总是让处于就绪而且优先级最高的任务优先运行,然而何时高优先级任务能够得到CPU 使用权,由内核的类型而定。基于优先级的内核有两种:不可抢占型和抢占型。1) 不可抢占型内核:不可抢占型内核要求每个任务主动放弃CPU 的使用权, 其间不能被高优先级任务抢占。它的有点是:A. 由于不需要在中断返回是进行任务切换,所以中断响应快。B. 在任务级中可以调用不可重入函数而不必担心造成数据破坏。C. 几乎不需要信号量来保护共享数据,也就是说,在任务运行过程中,数据是独享的。但它的最大缺点是:响应时间不确定,当有更高优先级任务就绪后,不知道什么时候才能得到执行,这在实时系统中是致命的缺陷。所以不可抢占型内核最要用于前后台系统中。2) 抢占型内核:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 在嵌入式系统中,进程(任务)都是抢占型的,通过给每个进程(任务)设置一个优先级,当系统中有优先级比当前运行的进程(任务)的优先级更高的进程(任务)时,当前的进程(任务)执行被中断,并调用调度程序选择优先级高的进程(任务)运行。利用抢占式内核,可以保证高优先级的进程(任务)被优先执行,从而保证系统的实时响应。在多任务系统中,进程(任务)的调度主要包括以下一些方面:3 任务调度:在多任务系统中,都会提供一个系统函数来进行进程(任务)间切换,综合来说,他们有两种进程(任务)切换方式:1) 由进程(任务)本身直接调用任务切换函数进行进程(任务)切换:在当前进程(任务)因为不能获得必须的资源而立即被堵塞时,就由进程(任务)本生直接调用进程(任务)切换函数进行进程(任务)间调度。在 Linux中可以直接调用schedule()函数来实现。在 UCos 中,通过调用OSSched ()来完成。2) 延迟调用任务切换函数进行进程(任务)切换:此方式是把当前进程(任务)设置一调度标志而以延迟方式调用任务切换函数进行进程(任务)切换。在 Linux系统中,总是在恢复用户态进程执行之前,检查这一调度标志,在这里标志是:TIF_NEED_RESCHED,如果有这一标志,就调用调度函数进行进程切换。此种情况主要包括以下几种:A. 当前进程用完了它的CPU 时间片,有 scheduler_tick()函数完成schedule()的延迟调用。B. 当一个被唤醒进程的优先级比当前进程优先级高时,由try_to_wake_up()函数完成 schedule()的延迟调用。C. 当发出系统调用sched_setscheduler()时。在这些情况中, 主要由于系统调用或中断而进入内核态,或者当前进程本来在内核态时,返回用户态时发生的。在 UCOS中,所有的任务有不同的优先级,不会出现同一优先级上有多个任务的情况,而且也没有系统调用的概念,所以任务调度的延迟调用只能出现在中断处理完成返回时,在OSIntExt()函数中,检查是否有高优先级的任务就绪,如果有高优先级的任务就绪,进行任务切换。4 调度算法:在 Linux系统中,选用了比较复杂的调度算法,按照调度类型可以分为以下几种:SCHED_FIFO:此算法主要应用于实时进程,当调度程序把CPU 分配给当前进程后,如果没有更高优先级的进程可以运行时,此进程会一直占用CPU 直到此进程退出或者自愿放弃 CPU,即使此时有其他相同优先级的进程存在。SCHED_RR: 时间片轮询的实时进程,对于不同优先级的进程会调度优先级高的进程运行,对具有相同优先级的进程,会根据时间片来调度,当当前进程的时间片用完后,会调度相同优先级的其他进程运行,从而保证相同优先级进程的CPU 调度公平性。SCHED_NORMAL:此算法主要用于普通进程,利用分时进行调度。在 UCOS系统中,所有的任务都是实时任务,所以没有普通任务调度机制,而且为了简化调度算法, 不同的任务有不同的优先级,不可能出现同一优先级有多个任务的情况,实际上它的调度算法就只有Linux中 SCHED_FIFO这一种,即优先级高的任务抢占优先级低任务。5 上下文切换:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 上下文切换是多任务调度的核心内容,也是我们感觉在一个CPU 上并行运行多个程序的基础。任务上下文 (Task Context): 任务上下文是指任务运行的环境。例如, 针对 x86 的 CPU,任务上下文可包括程序计数器、堆栈指针、通用寄存器的内容。上下文切换( Context Switching) :在多任务系统中,上下文切换是指CPU 的控制权由运行任务转移到另外一个就绪任务时所发生的事件,当前运行任务转为就绪(或者挂起、 删除)状态, 另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。上下文的内容依赖于具体的CPU。对于不同的硬件体系结构,上下文切换的内容不一样,本质上有下面两步:A. 如果有虚拟内存,则切换页全局目录以安装一个新的地址空间。B. 切换内核堆栈和硬件上下文,因为硬件上下文提供了内核执行新进程所需要的所有信息,包括CPU 信息。在抢占式内核中,利用中断来实现上下文切换是一个非常理想的机制。中断发生时, 中断会强制 CPU 把控制权交给操作系统,也就相当于一次上下文切换。这样不仅可以减少程序出错的后果,而且提高切换的效率。UCOS 就是利用中断机制进行上下文切换的典型例子。在 UCOS 中, 如果调度程序决定任务需要切换,就会调用上下文切换OS_TASK_SW()进行实际的上下文切换。OS_TASK_SW()是宏调用, 含有微处理器的软中断指令,利用此中断来实现任务之间的上下文切换。所以OS_TASK_SW()是一个体系结构相关的宏,对于不同的硬件体系机构,有不同的实现方式,这也是UCOS在不同硬件体系结构中移植的一个要点。由于 UCOS不支持虚拟内存,所以不需要进行页目录切换,其他许多实时多任务嵌入式系统的一个特征,也是区别Linux系统的一个重要方面。在 2.6 Linux kernel中,引入了一个全新的调度机制O(1) 调度器,它能在固定的时间内 完 成 进 程 切 换 。 如 果 调 度 程 序 决 定 任 务 需 要 切 换 , 就 会 调 用 上 下 文 切 换 函 数context_switch()函数进行上下文切换,此函数会调用switch_mm()切换页全局目录以安装一个新的地址空间,然后调用switch_to()切换具体硬件上下文。总结 :这里主要介绍了多任务系统中的任务管理和任务调度及其算法,比较了Linux系统和UCOS系统中的上下文切换。通过查资料对嵌入式实时系统关于任务管理和任务调度的内容有了更深刻的认识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -

    注意事项

    本文(2022年嵌入式操作系统读书笔记 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开