收藏 分销(赏)

操作系统内核与应用实践09级.pptx

上传人:天**** 文档编号:4289988 上传时间:2024-09-03 格式:PPTX 页数:142 大小:344.07KB 下载积分:20 金币
下载 相关 举报
操作系统内核与应用实践09级.pptx_第1页
第1页 / 共142页
操作系统内核与应用实践09级.pptx_第2页
第2页 / 共142页


点击查看更多>>
资源描述
第一章第一章 课程设置课程设置目标与要求目标与要求n独立实践课开设的意义独立实践课开设的意义n独立实践课的内容独立实践课的内容n课程安排及成绩评估课程安排及成绩评估本实践课程开设的意义本实践课程开设的意义操作系统是计算机系统中承上启下的系统软操作系统是计算机系统中承上启下的系统软件,它的工作流程和设计方法最有代表性和件,它的工作流程和设计方法最有代表性和实用价值。实用价值。要真正理解操作系统基本原理,切实可行的要真正理解操作系统基本原理,切实可行的方法是针对各类操作系统实例系统进行各种方法是针对各类操作系统实例系统进行各种类型的实践,利用操作系统内核进行应用程类型的实践,利用操作系统内核进行应用程序设计。序设计。培养实用型、创新型人才,提升学生的软件培养实用型、创新型人才,提升学生的软件研发能力。开拓学生的专业视野和实际工作研发能力。开拓学生的专业视野和实际工作能力。能力。体验系统级应用程序的设计实现体验系统级应用程序的设计实现n结合实际开发需求,掌握开发环境、开发技术、结合实际开发需求,掌握开发环境、开发技术、项目开发实施方面的基本过程项目开发实施方面的基本过程n以课题组方式进行方案论证、设计、开发环境以课题组方式进行方案论证、设计、开发环境构建、分工、单元开发、调试,集成调试运行,构建、分工、单元开发、调试,集成调试运行,以及文档的编写,组长是项目小组核心。以及文档的编写,组长是项目小组核心。n该过程能使大家明确软件开发的各个环节,结该过程能使大家明确软件开发的各个环节,结合自身条件对每个环节进行自己的设计实现。合自身条件对每个环节进行自己的设计实现。操作系统内核与应用实践实施方案操作系统内核与应用实践实施方案n嵌入式实时操作系统嵌入式实时操作系统C/OS-是实时操作系统的成功是实时操作系统的成功范例。范例。n开放源代码资源架设一个方便的开发平台,提供一个开放源代码资源架设一个方便的开发平台,提供一个很好实用的开发工具环境,使学生能够专注于实时应很好实用的开发工具环境,使学生能够专注于实时应用软件技术,不必为系统开发环境等问题耗费精力。用软件技术,不必为系统开发环境等问题耗费精力。而且有大量的移植范例下载参考。而且有大量的移植范例下载参考。nC/OS-的商业价值也很高,可以支持嵌入式商业应的商业价值也很高,可以支持嵌入式商业应用程序的开发需求。用程序的开发需求。操作系统实践课达到的目标操作系统实践课达到的目标理解把握实现操作系统的层次结构和工作流程理解把握实现操作系统的层次结构和工作流程设计应用系统的工作流程设计应用系统的工作流程学会使用需要的开发工具环境学会使用需要的开发工具环境选择合适的软件工具进行编码实现选择合适的软件工具进行编码实现进行单元调试和集成调试进行单元调试和集成调试课题组为单位展开工作课题组为单位展开工作编写开发文档及其课程设计报告编写开发文档及其课程设计报告对软件开发全过程的技术运用进行考量对软件开发全过程的技术运用进行考量独立实践课培养检验学生能力独立实践课培养检验学生能力n培养学生的研究能力、协调培养学生的研究能力、协调协作能力、软件系统的分析协作能力、软件系统的分析设计能力、编码能力,解决设计能力、编码能力,解决问题能力、表述能力等。问题能力、表述能力等。课程设计的实施课程设计的实施n自由自由2 2人组成课题组人组成课题组n选定一名组长,负责课题小组全面工作选定一名组长,负责课题小组全面工作n根据小组各成员的基础和意愿从应用题根据小组各成员的基础和意愿从应用题目中选择进行开发目中选择进行开发独立实践课的核心内容独立实践课的核心内容n选择实时操作系统选择实时操作系统cos-IIcos-II进行分析和应用程序的仿进行分析和应用程序的仿真开发。真开发。n基于基于DOSDOS和和windowswindows操作系统平台,选用嵌入式实时操操作系统平台,选用嵌入式实时操作系统作系统cos-IIcos-II的源代码(非常优秀有价值的的源代码(非常优秀有价值的C C源代码)源代码)进行分析,理解工作原理和工作流程进行分析,理解工作原理和工作流程,参考教材选择参考教材选择设计自己的应用程序的功能,并编码实现,完成系统设计自己的应用程序的功能,并编码实现,完成系统调试运行。调试运行。n可建立可建立2 2人的课题组进行分工,对每人负责的模块分别人的课题组进行分工,对每人负责的模块分别进行应用程序设计或内核分析程序运行监测。进行应用程序设计或内核分析程序运行监测。n鼓励选择有个人创新内容的应用项目完成设计与实现鼓励选择有个人创新内容的应用项目完成设计与实现。方案技术内容方案技术内容n了解实时操作系统基本概念、工作原理,明确了解实时操作系统基本概念、工作原理,明确C/OS-内核应用的结构、组成方法,理解一个实内核应用的结构、组成方法,理解一个实时操作系统及其应用的基本架构。时操作系统及其应用的基本架构。n掌握掌握C/OS-内核的运行流程及应用代码运行流程,内核的运行流程及应用代码运行流程,能够基于能够基于C/OS-内核,利用系统函数接口,构建内核,利用系统函数接口,构建用户自己的应用程序代码,实现一个嵌入实时应用用户自己的应用程序代码,实现一个嵌入实时应用程序的设计、编码等开发工作。程序的设计、编码等开发工作。n利用提供编译环境,编译、调试、运行应用程序。利用提供编译环境,编译、调试、运行应用程序。设计实现技术设计实现技术n授课讲解内核与应用程序实现技术授课讲解内核与应用程序实现技术n参考参考ucos-IIucos-II系统代码以及编译生成技术系统代码以及编译生成技术(makemake文件)文件)n课题组选定所重点使用的内核模块,理解课题组选定所重点使用的内核模块,理解源码,确立应用方案源码,确立应用方案n并用并用C C语言编码实现语言编码实现基于基于cos-IIcos-II内核的应用项目推荐内核的应用项目推荐n任务管理实验任务管理实验n信号量管理实验信号量管理实验n消息队列实验消息队列实验n时钟中断实验时钟中断实验n任务执行时间测定任务执行时间测定n生产者消费者算法实验生产者消费者算法实验n哲学家就餐实验哲学家就餐实验n鼓励自行选择感兴趣的应用程序鼓励自行选择感兴趣的应用程序课程安排及成绩评估课程安排及成绩评估一、一、授课授课8 8学时(学时(7 7、8 8周,周,4 4学时学时/周)周)达到目标:达到目标:1)1)明确独立实践课内容及要求。明确独立实践课内容及要求。2)2)理解内核编程技术及应用系统功能理解内核编程技术及应用系统功能及各个模块功能及接口,为应用系及各个模块功能及接口,为应用系统分析设计打基础。统分析设计打基础。确立课题小组,提交任务书确立课题小组,提交任务书n上机实践之前,确定以下内容:上机实践之前,确定以下内容:n按选择的项目自由组成一个课题按选择的项目自由组成一个课题组,讨论并确定开发功能、开发组,讨论并确定开发功能、开发环境及软件工具、分工交流方式环境及软件工具、分工交流方式等。等。课程设计任务书建议内容课程设计任务书建议内容n开发项目名称(选择题目)开发项目名称(选择题目)n主要系统功能以及目标(运行功能描述)主要系统功能以及目标(运行功能描述)n设计要求(内核功能及接口、应用代码结构)设计要求(内核功能及接口、应用代码结构)n成果形式(软件验收、报告文档)成果形式(软件验收、报告文档)n基本要求(阶段检查、进度安排、验收要求)基本要求(阶段检查、进度安排、验收要求)n主要参考文献(课件、源代码、实例程序、教材)主要参考文献(课件、源代码、实例程序、教材)n工作量(系统复杂度、创新等)工作量(系统复杂度、创新等)上机时间安排上机时间安排上机共上机共40学时学时安排地点:计算机学院机房(安排地点:计算机学院机房(307、308)安安排排时时间间:第第9周周第第13周周,每每周周8学学时时,分两次上机。第八周确定具体时间。分两次上机。第八周确定具体时间。安排批次:安排批次:计科计科0901-3(范艳芳)(范艳芳)计科计科0904-6(牛欣源)(牛欣源)上机实施内容与步骤上机实施内容与步骤v理解掌握内核接口及应用代码结构理解掌握内核接口及应用代码结构v以课题组为单位提出应用系统需求和设计以课题组为单位提出应用系统需求和设计建议,完成系统分析设计建议,完成系统分析设计v每人独立进行模块详细设计及编码调试每人独立进行模块详细设计及编码调试v完成课程设计报告的编写完成课程设计报告的编写v由教师对每组进行阶段检查和项目验收由教师对每组进行阶段检查和项目验收独立实践课成绩评估独立实践课成绩评估n课程设计任务书课程设计任务书n系统分析设计报告系统分析设计报告n模块详细设计报告模块详细设计报告 n单元测试系统调试报告、用户手册单元测试系统调试报告、用户手册 20%n阶段检查(内核、应用代码、测试)阶段检查(内核、应用代码、测试)30%n验收检查(运行与界面所有数据)验收检查(运行与界面所有数据)10%n开卷期末考试开卷期末考试40%阶段检查及内容阶段检查及内容l内核模块功能、应用接口内核模块功能、应用接口l应用代码的算法与数据结构应用代码的算法与数据结构l单元调试、系统测试单元调试、系统测试l工作量工作量l创新设计与实现、新编程技术、新设计方法创新设计与实现、新编程技术、新设计方法系统验收检查及内容系统验收检查及内容n系统运行平稳系统运行平稳n界面友好界面友好n系统功能设计完备系统功能设计完备n系统调试完备系统调试完备文档成绩评估文档成绩评估n课程设计任务书课程设计任务书n系统分析设计报告系统分析设计报告n模块详细设计报告模块详细设计报告 n单元测试系统调试报告、用户手册单元测试系统调试报告、用户手册 20%评价标准:评价标准:根据文档质量(可读性,可操根据文档质量(可读性,可操作性,创新性,完整性,工作量)评估作性,创新性,完整性,工作量)评估文档成绩。文档成绩。课程设计报告课程设计报告的编写的编写 n参见参见课程设计报告撰写规范课程设计报告撰写规范 n报告每组打印一份上交报告每组打印一份上交课程设计报告封面课程设计报告封面课程名称课程名称 题目题目指导教师指导教师设计起止日期设计起止日期系别系别专业专业学生姓名学生姓名班级班级/学号学号成绩成绩课程设计任务书内容课程设计任务书内容n题目:n主要系统功能以及目标:n设计要求n成果形式n基本要求n主要参考文献n工作量课程设计报告撰写规范课程设计报告撰写规范1、任务书、任务书2、摘要:功能及实现技术的简练陈述,不超过、摘要:功能及实现技术的简练陈述,不超过400字,关键词为字,关键词为4个左右个左右3、目录、目录4、正文。正文。正文应按目录编排依次撰写,要求论正文应按目录编排依次撰写,要求论述清楚,文字简练通顺,插图简明,书写整洁。述清楚,文字简练通顺,插图简明,书写整洁。5、参考文献、参考文献(资料资料)正文正文 核心文档内容与格式核心文档内容与格式一、系统分析与设计功能(小组编写)一、系统分析与设计功能(小组编写)1、从所使用内核功能和实现应用程序功能两个方面说明、从所使用内核功能和实现应用程序功能两个方面说明2、模块结构图(按照内核模块、应用模块划分)、模块结构图(按照内核模块、应用模块划分)3、系统实现方案编程工具说明、系统实现方案编程工具说明 4、系统运行界面及功能说明、系统运行界面及功能说明 三、系统模块设计与调试文档(设计实现者编写)三、系统模块设计与调试文档(设计实现者编写)1、模块功能、模块功能 2、模块接口(被调用、调用关系;调用参数和返回结果)、模块接口(被调用、调用关系;调用参数和返回结果)3、模块主要处理步骤及其编码实现方法、模块主要处理步骤及其编码实现方法(主要数据结构设计实现、主要算法设计实现)(主要数据结构设计实现、主要算法设计实现)4、模块调试:调试数据、调试结果、问题分析、模块调试:调试数据、调试结果、问题分析 四、系统集成调试(小组编写)四、系统集成调试(小组编写)五、用户使用说明五、用户使用说明n课程邮箱:课程邮箱:n邮箱密码:邮箱密码:welcomen答疑时间:答疑时间:7、8周周一下午周周一下午1:30-3:30第二章第二章 c/OS-II系统分析系统分析n通过分析通过分析C/OS-II内核源代码程序及其数据结构的内核源代码程序及其数据结构的设计,理解掌握一个成熟实时操作系统的基本架构设计,理解掌握一个成熟实时操作系统的基本架构n与本学期操作系统课程的通用操作系统原理及其模与本学期操作系统课程的通用操作系统原理及其模块设计作比较,从中可发现其异同。块设计作比较,从中可发现其异同。n可根据可根据C/OS-II内核的运行流程,掌握操作系统的内核的运行流程,掌握操作系统的动态工作流程,使得在学习操作系统原理中掌握的动态工作流程,使得在学习操作系统原理中掌握的基本概念和模块功能得到一个感性的认识,使各个基本概念和模块功能得到一个感性的认识,使各个模块的运行机制及其动态逻辑关系得到真实的展现。模块的运行机制及其动态逻辑关系得到真实的展现。嵌入式系统的应用程序嵌入式系统的应用程序n嵌入式系统的应用程序是与操作系统内嵌入式系统的应用程序是与操作系统内核集成在一起运行,实现对系统监控对核集成在一起运行,实现对系统监控对象的控制和处理,可基于和利用象的控制和处理,可基于和利用C/OS-II内核,构建用户自己的应用程序代码,内核,构建用户自己的应用程序代码,实现对特定任务的管理。实现对特定任务的管理。具体实施步骤具体实施步骤 n参考参考C/OS-II系统的内核与实例应用程序的设系统的内核与实例应用程序的设计资料和源代码,以及实例程序中实现编译链计资料和源代码,以及实例程序中实现编译链接的接的make文件的设计,课题组选定所修改的文件的设计,课题组选定所修改的模块,确立应用程序的功能设计方案,并用模块,确立应用程序的功能设计方案,并用(Borland C )编码实现。)编码实现。n在这个项目中,利用普通的在这个项目中,利用普通的PC机及其通用的操机及其通用的操作系统环境,就可以自己动手搭建嵌入式系统作系统环境,就可以自己动手搭建嵌入式系统应用程序的开发平台,具有实际开发操作系统应用程序的开发平台,具有实际开发操作系统软件的实用价值。软件的实用价值。授课基本内容授课基本内容1.1.嵌入式软件系统。嵌入式软件系统。主要介绍嵌入式软件分类、主要介绍嵌入式软件分类、特点、体系结构、运行流程、操作系统及开特点、体系结构、运行流程、操作系统及开发工具。发工具。2.2.嵌入式实时嵌入式实时C/OS-IIC/OS-II内核及模块接口。内核及模块接口。具有具有嵌入式操作系统的组成原理和构成特点,主嵌入式操作系统的组成原理和构成特点,主要包括对多任务、任务的调度及任务间的通要包括对多任务、任务的调度及任务间的通信机制,内存管理,时间管理等重要模块。信机制,内存管理,时间管理等重要模块。3.3.嵌入式系统软件的开发。嵌入式系统软件的开发。主要讨论嵌入式系主要讨论嵌入式系统开发工具的选择、嵌入式软件开发模式的统开发工具的选择、嵌入式软件开发模式的实施、实时软件分析设计方法的运用。实施、实时软件分析设计方法的运用。4.4.仿真开发环境仿真开发环境Borland C/C+V4.5 Borland C/C+V4.5 及其源代及其源代码资源。码资源。介绍介绍C/OS-IIC/OS-II的内核及应用程序的编的内核及应用程序的编译连接运行环境,讲解应用实例,为编写实例译连接运行环境,讲解应用实例,为编写实例程序提供指导。程序提供指导。5.5.应用方案设计。应用方案设计。为学生提供应用程序的设计方为学生提供应用程序的设计方案,可从中选择,运用案,可从中选择,运用C/OS-IIC/OS-II提供的环境开提供的环境开发生成自己的实时应用程序。发生成自己的实时应用程序。1、嵌入式软件系统、嵌入式软件系统 n软件与嵌入式软件软件与嵌入式软件 n嵌入式软件体系结构嵌入式软件体系结构 软件与嵌入式软件软件与嵌入式软件n嵌入式软件分为系统软件、支撑软件和应用软件。嵌入式软件分为系统软件、支撑软件和应用软件。n系统软件:控制、管理计算机系统资源。如:嵌入式系统软件:控制、管理计算机系统资源。如:嵌入式操作系统、嵌入式中间件(操作系统、嵌入式中间件(CORBACORBA、JavaJava)等)等n支撑软件:辅助软件开发的工具。如:系统分析设计支撑软件:辅助软件开发的工具。如:系统分析设计工具、仿真开发工具、交叉开发工具、测试工具、配工具、仿真开发工具、交叉开发工具、测试工具、配置管理工具、维护工具等。置管理工具、维护工具等。n应用软件:面向应用领域。如:手机软件、路由器软应用软件:面向应用领域。如:手机软件、路由器软件、交换机软件、飞控软件等。件、交换机软件、飞控软件等。n运行平台来分,嵌入式软件可以分为运行平台来分,嵌入式软件可以分为n运行在开发平台上的软件:设计、开发、测运行在开发平台上的软件:设计、开发、测试工具等。试工具等。n运行在嵌入式系统上的软件:嵌入式操作系运行在嵌入式系统上的软件:嵌入式操作系统、应用程序、驱动程序及部分开发工具。统、应用程序、驱动程序及部分开发工具。嵌入式软件体系结构嵌入式软件体系结构n驱动层驱动层n操作系统层操作系统层n中间件层中间件层n应用层应用层 驱动层驱动层n驱动层是直接与硬件的交互层,对操作系统和驱动层是直接与硬件的交互层,对操作系统和应用提供驱动支持。该层主要包括三种类型的应用提供驱动支持。该层主要包括三种类型的程序:程序:n板级初始化程序:嵌入式系统上电后初始化系统的板级初始化程序:嵌入式系统上电后初始化系统的硬件环境,包括嵌入式微处理器、存储器、中断控硬件环境,包括嵌入式微处理器、存储器、中断控制器、制器、DMA、定时器等的初始化。、定时器等的初始化。n与系统软件相关的驱动:操作系统和中间件等系统与系统软件相关的驱动:操作系统和中间件等系统软件所需的驱动程序。软件所需的驱动程序。n与应用软件相关的驱动:应用软件相关的驱动不一与应用软件相关的驱动:应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由定需要与操作系统连接,这些驱动的设计和开发由应用决定。应用决定。操作系统层操作系统层n操作系统层包括嵌入式内核、嵌入式操作系统层包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式网络系统、嵌入式文件系统、嵌入式GUI系系统和电源管理等部分。统和电源管理等部分。n嵌入式内核:内核是嵌入式操作系统的必备基础。嵌入式内核:内核是嵌入式操作系统的必备基础。提供任务管理、内存管理、通信、同步与互斥机提供任务管理、内存管理、通信、同步与互斥机制、中断管理、时间管理及任务扩展等功能制、中断管理、时间管理及任务扩展等功能 嵌入式操作系统体系结构嵌入式操作系统体系结构 硬件硬件基本进程管理基本进程管理虚存管理虚存管理I/OI/O和设备管理和设备管理进程间通信进程间通信文件系统文件系统用户用户用户模式用户模式内核模式内核模式中间件层中间件层n复杂的嵌入式系统中也开始采用中间件技术,主要包括复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式嵌入式CORBA、嵌入式、嵌入式Java、嵌入式、嵌入式DCOM和面向应和面向应用领域的中间件软件。用领域的中间件软件。n为解决分布异构问题,提出中间件为解决分布异构问题,提出中间件(middleware)的概的概念。中间件是位于平台念。中间件是位于平台(硬件和操作系统硬件和操作系统)和应用之间的和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。议规范的多种实现。应用层应用层n应用程序划分为若干应用任务应用程序划分为若干应用任务n每个应用任务完成特定的工作,如每个应用任务完成特定的工作,如I/O任任务、计算任务、通信任务等务、计算任务、通信任务等n由操作系统按照抢占优先级调度策略调由操作系统按照抢占优先级调度策略调度各个任务的运行。度各个任务的运行。基于内核的嵌入式应用程序结构基于内核的嵌入式应用程序结构n嵌入式实时内核嵌入式实时内核内核运行机制内核运行机制n应用代码应用代码调用内核接口调用内核接口n两级代码完成编译连接两级代码完成编译连接n生成可执行程序生成可执行程序n在宿主机在宿主机PC机上运行机上运行嵌入式实时内核基础核心概念嵌入式实时内核基础核心概念n多任务运行多任务运行n任务的优先级任务的优先级n抢占式优先级调度抢占式优先级调度n任务间通信机制任务间通信机制n任务中的时间管理机制任务中的时间管理机制嵌入式实时内核的多任务管理嵌入式实时内核的多任务管理n多任务并发运行多任务并发运行n优先级最高的就绪任务运行优先级最高的就绪任务运行n运行权按优先级抢占运行权按优先级抢占n每个任务的运行是死循环每个任务的运行是死循环任务的优先级任务的优先级n任务创建时确定优先级任务创建时确定优先级n优先级由优先数表示优先级由优先数表示n优先数优先数063抢占式优先级调度抢占式优先级调度n内核采用的调度算法:抢占式优先内核采用的调度算法:抢占式优先级调度级调度n每个任务有一个唯一优先数每个任务有一个唯一优先数n优先数小优先级高优先数小优先级高n一旦优先级高任务就绪,立即进行任一旦优先级高任务就绪,立即进行任务调度务调度任务间通信机制任务间通信机制n任务间通信机制任务间通信机制n并发执行的任务需要使用互斥资源并发执行的任务需要使用互斥资源n并发执行的任务需要传递信息,完成并发执行的任务需要传递信息,完成合作。合作。n解决由于任务优先级引发的问题解决由于任务优先级引发的问题时间管理机制时间管理机制n任务中的时间管理机制任务中的时间管理机制n必须令任务自主睡眠若干时间n必须控制任务的执行频率n通过时间延迟控制任务自主睡眠2 2、嵌入式实时、嵌入式实时C/OS-IIC/OS-II内核模块接口内核模块接口 n核心杂项模块核心杂项模块n任务管理模块任务管理模块n消息队列模块消息队列模块n信号量模块信号量模块n消息邮箱模块消息邮箱模块n时间管理模块时间管理模块n互斥信号量模块互斥信号量模块n内存管理模块内存管理模块n事件标志模块事件标志模块C/OS-IIC/OS-II内核源代码结构内核源代码结构nSOFTWARE/C/OS-II/SOURCE下:下:n#INCLUDE SOFTWAREUCOS-IISOURCEOS_CORE.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_FLAG.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_MBOX.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_MEM.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_MUTEX.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_Q.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_SEM.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_TASK.Cn#INCLUDE SOFTWAREUCOS-IISOURCEOS_TIME.C内核模块及核心技术内核模块及核心技术n核心杂项模块:实现临界区管理核心杂项模块:实现临界区管理n任务管理模块:实现任务管理任务管理模块:实现任务管理n时间管理模块:实现时间及中断管理时间管理模块:实现时间及中断管理n消息队列模块:任务间传递多个消息消息队列模块:任务间传递多个消息n信号量模块:任务实现信号量及其申请释放信号量模块:任务实现信号量及其申请释放n消息邮箱模块:任务间传递一个消息消息邮箱模块:任务间传递一个消息n互斥信号量模块:解决优先级反转互斥信号量模块:解决优先级反转n内存管理模块:内存块的分配回收内存管理模块:内存块的分配回收核心杂项模块:临界区的实现核心杂项模块:临界区的实现n并发运行任务需要实现临界区。并发运行任务需要实现临界区。n临界区必须通过关中断开中断实现。关中临界区必须通过关中断开中断实现。关中断时长是实时系统的重要指标,越短越好。断时长是实时系统的重要指标,越短越好。n微处理器具有开关中断的指令,微处理器具有开关中断的指令,Ucos_IIUcos_II用宏命令实现用宏命令实现n宏调用宏调用OS_ENTER_CRITICALOS_ENTER_CRITICAL()实现进入临界区()实现进入临界区n宏调用宏调用OS_EXIT_CRITICALOS_EXIT_CRITICAL()实现退出临界区()实现退出临界区应用示例应用示例OS_ENTER_CRITICAL();PC_VectSet(0 x08,OSTickISR);/*Install uC/OS-IIs clock tick ISR*/PC_SetTickRate(OS_TICKS_PER_SEC);/*Reprogram tick rate*/OS_EXIT_CRITICAL();os_core.c中的系统函数中的系统函数nINT8U OS_TCBInit(INT8U prio,OS_STK*ptos,OS_STK*pbos,INT16U id,INT32U stk_size,void*pext,INT16U opt)nvoid OS_TaskStat(void*pdata)nvoid OS_TaskIdle(void*pdata)nvoid OS_Sched(void)nstatic void OS_InitTCBList(void)nstatic void OS_InitTaskStat(void)nstatic void OS_InitTaskIdle(void)nstatic void OS_InitRdyList(void)nstatic void OS_InitMisc(void)nstatic void OS_InitEventList(void)nvoid OS_EventWaitListInit(OS_EVENT*pevent)nvoid OS_EventTO(OS_EVENT*pevent)nvoid OS_EventTaskWait(OS_EVENT*pevent)nINT8U OS_EventTaskRdy(OS_EVENT*pevent,void*msg,INT8U msk)nvoid OS_Dummy(void)nINT16U OSVersion(void)nvoid OSTimeTick(void)nvoid OSStatInit(void)nvoid OSStart(void)nvoid OSSchedUnlock(void)nvoid OSSchedLock(void)nvoid OSIntExit(void)nvoid OSIntEnter(void)nvoid OSInit(void)任务管理与调度任务管理与调度n可将应用分解为多个并发任务。可将应用分解为多个并发任务。n每个任务是一个独立的执行线程,应用代码每个任务是一个独立的执行线程,应用代码中以函数为单位实现。可以与其它的并发任中以函数为单位实现。可以与其它的并发任务竞争处理机时间。务竞争处理机时间。n每个任务都是可调度的,根据预定的抢占式每个任务都是可调度的,根据预定的抢占式优先级调度算法竞争系统的执行时间。优先级调度算法竞争系统的执行时间。任务管理任务管理 n可以通过创建、删除、睡眠、唤醒、改变优先级、可以通过创建、删除、睡眠、唤醒、改变优先级、发送或等待事件等操作对任务进行管理。发送或等待事件等操作对任务进行管理。n创建任务时,给任务提供一个名字、一个唯一的创建任务时,给任务提供一个名字、一个唯一的ID、一个优先级、一个任务控制块、一个堆栈、一个优先级、一个任务控制块、一个堆栈和一个任务函数代码,这些内容构成任务对象和一个任务函数代码,这些内容构成任务对象。任务管理任务管理task.c中的系统函数中的系统函数nOSTaskChangePrio():改变优先级:改变优先级nOSTaskCreate():任务创建:任务创建nOSTaskCreateExt():任务创建:任务创建nOSTaskDel():任务删除:任务删除nOSTaskDelReq():任务删除请求:任务删除请求nOSTaskResume():任务恢复:任务恢复nOSTaskStkChk():任务堆栈检查:任务堆栈检查nOSTaskSuspend():任务挂起:任务挂起nOSTaskQuery():任务查询:任务查询任务的调度算法任务的调度算法 n嵌入式操作系统多采用基于嵌入式操作系统多采用基于静态优先级静态优先级的可抢占式调度的可抢占式调度。n任务优先级是在运行前在任务创建时静任务优先级是在运行前在任务创建时静态分配完成,开始运行时,一旦有优先态分配完成,开始运行时,一旦有优先级更高的任务就绪,就马上进行调度级更高的任务就绪,就马上进行调度。n函数源代码如下:参见源文件函数源代码如下:参见源文件core.cvoid OSStart(void)INT8U y;INT8U x;if(OSRunning=FALSE)y=OSUnMapTblOSRdyGrp;/*Find highest prioritys task priority number*/x=OSUnMapTblOSRdyTbly;OSPrioHighRdy=(INT8U)(y OSTCBStkPtr=SP;4.清中断源;清中断源;5.重新开中断;重新开中断;6.执行用户代码做中断服务执行用户代码做中断服务;7.调用调用OSIntExit();8.恢复所有恢复所有CPU寄存器;寄存器;9.执行中断返回指令;执行中断返回指令;时间管理模块时间管理模块n时钟节拍是特定的周期性中断。中断时时钟节拍是特定的周期性中断。中断时间间隔取决于不同的应用。间间隔取决于不同的应用。nC/OS-II需要提供周期性信号源,用于需要提供周期性信号源,用于实现时间延迟和超时确认(时间为节拍实现时间延迟和超时确认(时间为节拍的整数倍)。的整数倍)。时间管理功能时间管理功能 n嵌入式系统中,系统任务和用户任务经嵌入式系统中,系统任务和用户任务经常要随着时间进行调度和执行。常要随着时间进行调度和执行。n任务的执行时间、任务的挂起时间、时任务的执行时间、任务的挂起时间、时钟节拍等等与时间相关联的数据是控制钟节拍等等与时间相关联的数据是控制实时系统的关键参数实时系统的关键参数 时钟管理时钟管理time.c中的系统函数中的系统函数nOSTimeDly()nOSTimeDlyHMSM()nOSTimeDlyResume()nOSTimeGet()nOSTimeSet()nOSTimeTick()任务间同步、互斥与通信及其实现任务间同步、互斥与通信及其实现n嵌入式系统中使用任务间原语实现任务嵌入式系统中使用任务间原语实现任务的同步和通信,称为事件机制,一般包的同步和通信,称为事件机制,一般包括:括:n信号量信号量n消息邮箱消息邮箱n消息队列消息队列n互斥信号量互斥信号量n事件标志组事件标志组事件事件 n在嵌入式实时内核中,事件是指一种表明预在嵌入式实时内核中,事件是指一种表明预先定义的系统事件已经发生的机制。一个事先定义的系统事件已经发生的机制。一个事件就是一个标志,不具备其它信息。件就是一个标志,不具备其它信息。n用于实现任务间的互斥和同步关系控制。用于实现任务间的互斥和同步关系控制。n事件机制用于任务与任务之间、任务与事件机制用于任务与任务之间、任务与ISR之间的同步。之间的同步。用于支持后续具体同步机制。用于支持后续具体同步机制。事件控制块事件控制块ECBn事件本身的定义事件本身的定义n用于信号量的计数器用于信号量的计数器n用于指向邮箱的指针用于指向邮箱的指针n指向消息队列的指针数组指向消息队列的指针数组n等待该事件的所有任务的列表等待该事件的所有任务的列表 typedef struct void *OSEventPtr;/*指向消息或者消息队列的指针指向消息或者消息队列的指针*/INT8U OSEventTblOS_EVENT_TBL_SIZE;/*等待任务表等待任务表 */INT16U OSEventCnt;/*计数器计数器(当事件是信号量时当事件是信号量时)*/INT8U OSEventType;/*时间类型时间类型 */INT8U OSEventGrp;/*等待任务所在的组等待任务所在的组 */OS_EVENT;事件的功能函数事件的功能函数n初始化一个事件控制块,初始化一个事件控制块,OSEventWaitListInit()n使一个任务进入就绪态,使一个任务进入就绪态,OSEventTaskRdy()n使一个任务进入等待某事件发生状态使一个任务进入等待某事件发生状态,OSEventTaskWait()n由于等待超时而将任务置为就绪态由于等待超时而将任务置为就绪态,OSEventTO()信号量信号量 n在实时操作系统中,根据信号量的值,在实时操作系统中,根据信号量的值,内核可以管理等待使用信号量的任务。内核可以管理等待使用信号量的任务。n一般来说,操作系统对信号量提供初始一般来说,操作系统对信号量提供初始化、等待信号、发送信号等操作。就是化、等待信号、发送信号等操作。就是创建信号量、获取(申请)信号量、释创建信号量、获取(申请)信号量、释放信号量、删除信号量、获取有关信号放信号量、删除信号量、获取有关信号量的各种信息等操作。量的各种信息等操作。nC/OS-II中的信号量由两部分组成:中的信号量由两部分组成:n一个是信号量的计数值,它是一个一个是信号量的计数值,它是一个16位的位的无符号整数(无符号整数(0 到到65,535之间);之间);n另一个是由等待该信号量的任务组成的等待另一个是由等待该信号量的任务组成的等待任务表。用户要在任务表。用户要在OS_CFG.H中将中将OS_SEM_EN开关量常数置成开关量常数置成1,信号量如何创建信号量如何创建n调用调用OSSemCreate()函数,对信号量函数,对信号量初始计数值赋值。该初始值为初始计数值赋值。该初始值为0到到65,535之间的一个数。之间的一个数。n信号量用来表示一个或者多个事件的发生,信号量用来表示一个或者多个事件的发生,初始值应设为初始值应设为0。n信号量用于对互斥资源的访问,初始值应设信号量用于对互斥资源的访问,初始值应设为为1。n信号量用来表示允许任务访问信号量用来表示允许任务访问n个相同的互个相同的互斥资源,初始值应该是斥资源,初始值应该是n。nC/OS-II提供了提供了5个对信号量操作的函数。个对信号量操作的函数。nOSSemCreate()nOSSemPend()/*等待一个信号量等待一个信号量*/nOSSemPost()/*发送一个信号量发送一个信号量*/nOSSemAccept()/*无等待请求一个信号量无等待请求一个信号量*/nOSSemQuery()/*查询信号量当前状态查询信号量当前状态*/nOSSemPost()函数可由任务或中断服务子函数可由任务或中断服务子程序代码调用,程序代码调用,nOSSemPend()和和OSSemQuery()函数只能函数只能由任务代码调用由任务代码调用。信号量管理信号量管理os_sem.c中的系统函数中的系统函数nOSSemAccept()nOSSemCreate()nOSSemPend()nOSSemPost()nOSSemQuery()消息邮箱消息邮箱 n邮箱是邮箱是C/OS-II中另一种通讯机制,它可以中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个任使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。该指针指向一个务发送一个指针型的变量。该指针指向一个包含了特定包含了特定“消息消息”的数据结构。的数据结构。nC/OS-II提供了提供了5种对邮箱的操作函数:种对邮箱的操作函数:OSMboxCreate(),OSM
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 操作系统相关

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服