- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式第五章操作系统研讨
嵌入式系统设计 主要内容 5.1 嵌入式系统的进程 5.2 嵌入式操作系统的中断和时钟管理 5.3 嵌入式操作系统的内存管理 5.4 常用嵌入式操作系统 5.4.1 ?C/OS-II 5.4.2 Linux操作系统 5.1 嵌入式系统的进程 5.1.1 进程的概念 进程是可并发执行的、具有独立功能的程序在一个数据集合上的运行过程,是操作系统进行资源分配和保护的基本单位。 一个进程可以简单地认为是一个程序在系统内的唯一执行。 5.1 嵌入式系统的进程 5.1.1 进程的概念 进程包括它的指令代码和数据,也包括程序计数器(PC)和CPU中所有的寄存器,还包括存放在进程堆栈中的临时数据、返回地址以及变量。 单CPU上的多进程示意 5.1 嵌入式系统的进程 5.1.2上下文切换 使CPU从一个正在执行的进程转向另一个进程的机制称为上下文切换(又称文境切换)。 文境切换必须是没有任何缺陷的,并且文境切换在CPU内能非常迅速地执行。 文境切换的形式主要有两种: 协作多任务处理 抢先多任务处理 5.1.2 上下文切换 1.协作多任务处理 采用协作多任务处理的系统中,正在执行的进程将主动地放弃CPU等资源,让给另一个进程。 协作多任务处理的系统中,每个进程中包含一个对文境切换函数的调用,该函数调用并不启动一个新的进程执行,只是在另一个进程中进行状态复制。 5.1.2 上下文切换 2. 抢先多任务处理 抢先多任务处理的文境切换模式中,采用了中断机制来实现文境切换,强制旧进程把控制权交给新进程。 抢先多任务处理的基本硬件配置需要一个定时器部件周期性地产生CPU中断信号。在定时器的中断服务程序中,保存旧的进程状态信息,并选择下一个需要执行的进程,切换进程的文境。 5.1 嵌入式系统的进程 5.1.3进程状态 进程的基本调度状态可归为3种: 就绪状态、运行状态和阻塞状态。 5.1.4 进程调度 3. 几种调度策略 实时调度方法大致可以划分为以下三类: 离线(off-line)和在线(on-line)调度 抢占(preemptive)和非抢占(non-preemptive)调度 静态(static)和动态(dynamic)调度 5.1.4 进程调度 (1)离线调度和在线调度 根据获得调度信息的时机,调度算法分为离线调度和在线调度两类。 离线调度算法的调度信息在系统运行之前就确定了,如时间驱动的调度(clock-driven scheduling)。离线调度算法具有确定性,但缺乏灵活性,适用于那些特性能够预先确定,且不容易发生变化的应用。 5.1.4 进程调度 (1)离线调度和在线调度 在线调度算法的调度信息则在系统运行过程中动态获得,如优先级驱动的调度(如EDF,RMS等)。在线调度算法在形成最佳调度决策上具有较大的灵活性。 5.1.4 进程调度 (2)抢占式调度和非抢占式调度 在抢占式调度算法中,正在运行的任务可能被其他任务所打断。在非抢占式调度算法中,一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其它资源被阻塞的情况下才会停止运行。 典型的抢占式调度算法是基于优先级的可抢占调度算法。 5.1.4 进程调度 (2)抢占式调度和非抢占式调度 在基于优先级的可抢占调度方式中,如果出现具有更高优先级的任务处于就绪状态时,当前任务将停止运行,把CPU的控制权交给具有更高优先级的任务,使更高优先级的任务得到执行。 因此,实时内核需要确保CPU总是被具有最高优先级的就绪任务所控制。 5.1.4 进程调度 (2)抢占式调度和非抢占式调度 非抢占式调度算法常用于那些任务需要按照预先确定的顺序进行执行,且只有当任务主动放弃CPU资源后,其他任务才能得到执行的情况。 常用的非抢占式调度算法是时间片轮转调度算法。 5.1.4 进程调度 (3)静态调度和动态调度 根据任务优先级的确定时机,调度算法分为静态调度和动态调度两类。 在静态调度算法中,任务的优先级需要在系统运行前进行确定,且在运行过程中不会发生变化。 最经典的静态调度算法是比率单调调度算法(rate-monotonic scheduling algorithm,RMS)。 5.1.4 进程调度 (3)静态调度和动态调度 在动态调度算法中,任务的优先级可根据需要进行改变,也可能随着时间按照一定的策略自动发生变化。 动态调度算法主要有两种: 最近执行者优先调度(earliest deadline first,EDF) 最短空闲时间优先调度算法(least-laxity-first scheduling) 单调速率调度算法 5.1.4 进程调度 最近执行者优先调度EDF EDF调度策略也很简单:它以进程期限的顺序来指定进程优先级。优先级最高的进程是距离进程期限最
您可能关注的文档
最近下载
- 零售金融消费者权益保护专题报告 2024.docx
- 传感器与检测技术第四版胡向东习题答案.pdf
- 2023全国职业院校技能大赛-西式烹饪赛项备考试题库-下(多选题部分) .docx
- 保时捷Cayenne Turbo, Turbo S_2010款_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
- 动物疫病防治员国家标准.doc VIP
- 爱戴尊敬荣光 麦克白 威尔第钢琴伴奏五线谱子.pdf VIP
- 新时代、新思维、新高考.pptx
- 2002年至2019年 西藏自治区15岁及以上文盲人口(人口抽样调查)统计.docx
- 医院应急预案及处理流程.docx
- 动物疫病防治员国家职业标准(三级).doc VIP
文档评论(0)