已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 14 北京理工大学珠海学院计算机教研室 1 第二章WindowsCE体系结构与功能 北京理工大学珠海学院计算机教研室 2 2020 3 14 教学目的 熟悉进程和线程的定义方法 掌握WindowsCE5 0线程调度的原则及方法 北京理工大学珠海学院计算机教研室 3 2020 3 14 项目4 多线程 PDA下多任务实现 本节课程主要知识点WindowsCE的结构功能概览进程与线程的定义 重点 WindowsCE5 0的线程调度 难点 北京理工大学珠海学院计算机教研室 4 2020 3 14 教学重点进程与线程的定义及调用方法教学难点线程的调度方法 北京理工大学珠海学院计算机教研室 5 2020 3 14 2 1WindowsCE的结构功能概览 2 1 1WindowsCE的层次体系结构WindowsCE属于典型的微内核操作系统WindowsCE采用层次化的设计方法硬件层OEM层操作系统层应用程序层硬件层和OEM层由OEM厂商提供 操作系统层由微软公司提供 应用程序层由独立的软件开发商提供 北京理工大学珠海学院计算机教研室 6 2020 3 14 Internet客户端服务 第三方应用程序 WindowsCE应用程序 用户界面 国际化 应用和服务 CoreDll 对象存储 多媒体技术 GWES 设备管理器 网络 内核 OEM抽象层 BootLoader 配置文件 驱动程序 硬件层 OEM层 操作系统层 应用程序层 图2 1WindowsCE的层次化体系结构 北京理工大学珠海学院计算机教研室 7 2020 3 14 2 1 2硬件层嵌入式系统的硬件有如下特点 处理器体系结构不统一硬件资源通常受限外部设备种类繁多有实时性和可靠性要求2 1 3OEM层逻辑上位于硬件和WindowsCE操作系统之间的一层硬件相关代码作用是对具体的硬件进行抽象 得到统一的接口包括OEM抽象层 引导程序Bootloader 配置文件 ConfigurationFile 和驱动程序 DeviceDriver 北京理工大学珠海学院计算机教研室 8 2020 3 14 OEM抽象层是整个OEM层的主体 负责WindowsCE内核与硬件的通信 并进行硬件平台的初始化 物理上是内核的一部分引导程序Bootloader是在硬件开发板上执行的一段代码 主要功能是初始化硬件 加载操作系统映像到内存 然后跳转到操作系统代码去执行 配置文件是一些包含配置信息的文件驱动程序直接与硬件外设打交道 是应用程序或操作系统与硬件外设交互的桥梁与WindowsCE的OEM层相对应的概念 BSPBSP是介于主板硬件和操作系统之间的一层 目的是为了支持操作系统 使之能够正常地运行于硬件主板上 北京理工大学珠海学院计算机教研室 9 2020 3 14 2 1 4操作系统层WindowsCE的进程管理 线程管理 处理机管理 调度 物理内存和虚拟内存管理 文件系统及设备管理功能的实现都位于这一层操作系统的基本功能放在多个独立的进程里实现内核NK EXE对象存储FILESYS EXE设备管理系统DEVICE EXE图形系统GWES EXE服务SERVICES EXE由于WindowsCE是一个可裁剪的嵌入式操作系统 所以未必所有的WindowsCE系统中都有上述的几个进程 北京理工大学珠海学院计算机教研室 10 2020 3 14 图2 2WindowsCE的模块图 北京理工大学珠海学院计算机教研室 11 2020 3 14 2 1 4 1系统调用与CoreDll dll主要功能负责应用程序与WindowsCE通信以及完成WindowsCE的系统调用 SystemCall 系统调用的过程应用程序首先直接调用CoreDll dll中的一个包装 Wrapper 函数 此包装函数为真正的系统调用准备所需的参数 进程内部的调用CoreDll dll发起一个异常 其作用是把执行权重新由应用程序交给操作系统 北京理工大学珠海学院计算机教研室 12 2020 3 14 操作系统内核会捕捉所有的异常 当操作系统捕获到此异常时 也就获得了CPU 在WindowsCE上 NK EXE会处理这个软件终端 此时进行系统调用的应用程序进程就挂起 执行就转入NK EXENK EXE根据系统调用的不同 找到具体实现该系统调用的进程 此进程可能是NK EXE 也可能不是 若不是则执行再次跳转 把执行转到具体实现系统调用的进程去执行实现此系统调用的进程得到执行机会 会根据具体系统调用的不同而完成系统调用希望实现的功能 然后返回 北京理工大学珠海学院计算机教研室 13 2020 3 14 当实现系统调用的进程执行结束返回的时候 整个系统调用也就结束 应用程序从CoreDll dll的调用处返回 然后继续执行 CreateWindow CreateProcess CharLowerBuff Usermodethread Win32APIThunks FunctionCall Coredll dll App exe KernelTrap Win32APIDispatch Nk exe Jump FunctionCode GWES EXE KernelCall ReturnCall 北京理工大学珠海学院计算机教研室 14 2020 3 14 2 1 4 2内核NK EXE所有基于WindowsCE的系统中都存在的核心进程 实现了Win32API核心中进程创建加载 线程调用 中断处理和内存管理等核心功能 NK LIB OAL LIB NK EXE微软提供了预先编译的NK LIB库文件 其代码与CPU指令体系结构相关而与具体的外设无关 OAL lib是OEM层中的OAL代码编译后的输出2 1 4 3图形系统GWES EXE图形窗口事件系统 GraphicalWindowingandEventSystem GWES 北京理工大学珠海学院计算机教研室 15 2020 3 14 负责操作系统中与图形界面相关的部分及用户的输入 WindowsCE5 0中将电源管理从GWES EXE中移走2 1 4 4对象存储FILESYS EXE文件系统和数据存储统称为对象存储 对象存储包括文件系统 WindowsCE数据库和系统注册表文件系统包括RAM文件系统和ROM文件系统WindowsCE数据库提供结构化的数据存储系统注册表负责存储系统和应用程序的配置信息 北京理工大学珠海学院计算机教研室 16 2020 3 14 2 1 4 5设备管理DEVICE EXE负责加载 卸载和管理所有不被GWES EXE管理的驱动程序 如总线驱动程序 电源管理DLL等 2 1 4 6服务SERVICES EXE负责加载系统服务的进程 如FTP TELNET HTTPD Web UPnP SMB 其它 2 1 5应用程序层位于WindowsCE层次结构的最顶层 每个应用程序都是WindowsCE中的一个单独进程 其运行在权限较低的处理机状态下 使用操作系统提供的API系统调用与操作系统交互 北京理工大学珠海学院计算机教研室 17 2020 3 14 进程是程序的一次运行活动 是操作系统中分配资源的基本单位 进程具有动态性 并行性和异步独立性 动态性 任务状态是不断变化的 并行性 系统中同时存在多个任务 它们宏观上是同时运行的异步独立性 每个任务各自按相互独立的不可预知的速度运行 2 2进程 线程与调度 北京理工大学珠海学院计算机教研室 18 2020 3 14 进程和程序的区别 程序是静态的 进程是动态的 进程有生命周期 有诞生有消亡 短暂的 而程序是相对长久的 一个程序可对应多个进程 反之亦然 进程具有创建其他进程的功能 而程序没有 北京理工大学珠海学院计算机教研室 19 2020 3 14 生活中的实例 电影胶片相当于程序 放电影的过程相当于进程 电影胶片是静态的 放电影的过程是动态的 电影胶片可以长期保存 放电影的过程是有时间的 短暂的 一个电影胶片可以对应多个放映活动 一次放映过程可以放映多部电影 北京理工大学珠海学院计算机教研室 20 2020 3 14 进程的组成 进程是由程序 数据及进程控制块三部分组成 进程的程序部分描述了进程所要完成的功能 如果一个程序能为多个进程同时共享执行 那么 这部分就应以再入码 reentrycode 编制 它是进程执行时不可修改的部分 北京理工大学珠海学院计算机教研室 21 2020 3 14 进程的数据 进程的数据集合部分包含两方面内容 即程序运行时所需要的数据和工作区 数据集合部分通常由一个进程独占 为进程的可修改部分 程序和数据集合部分是进程存在的物质基础 是进程的实体 北京理工大学珠海学院计算机教研室 22 2020 3 14 进程控制块PCB 进程控制块PCB ProcessControlBlock 它包含了进程的描述信息 控制信息 资源管理信息和进程的现场保护信息 是进程动态特性的集中反映 一般包含以下内容 进程标识名和标识数位置信息进程的状态信息进程的优先权进程间进行通讯的有关信息进程现场保护区 北京理工大学珠海学院计算机教研室 23 2020 3 14 2 2 1WindowsCE的进程 WindowsCE5 0是多进程多线程操作系统 最多支持32个进程同时运行 理论上每一个进程可拥有无数个线程 系统启动时 默认启动最少4个进程 NK exe提供有关内核的服务FILESYS exe提供有关文件系统服务GWES exe提供对GUI系统的支持Device exe载入管理设备驱动程序 北京理工大学珠海学院计算机教研室 24 2020 3 14 WindowsCE的进程结构 在WindowsCE中 进程本身不参加系统的调度 也没有优先级和上下文 进程创建时 会创建一个主线程作为该进程默认的执行体 每个进程占据32MB的虚拟内存空间 4G的虚拟内存分成若干个Slot Slot0 32分配给系统的32个进程使用 其中Slot0用于映射当前正在执行的进程 北京理工大学珠海学院计算机教研室 25 2020 3 14 进程在内存中 北京理工大学珠海学院计算机教研室 26 2020 3 14 WindowsCE的进程不支持环境变量和当前目录P35应用程序使用CreateProcess 函数创建进程 若创建成功 则函数返回非0 若失败函数返回FALSE 函数原型为BOOLCreateProcess LPCTSTRlpszImageName 可执行文件的路径和名字LPTSTRlpszCmdLine Null Null False 命令行参数DWORDfdwCreate Null Null Null 执行进程加载后的状态LPPROCESS INFORMATIONlppiProcInfo 返回的进程相关信息 北京理工大学珠海学院计算机教研室 27 2020 3 14 第1个参数是可执行文件的路径和名称 如果没有明确指明可执行文件的路径 那么WindowsCE会按照如下顺序搜索 Windows目录 Windows 对象存储的根目录 OEM所指定的搜索目录 在系统注册表的 HEKY LOCAL MACHINE Loader SystemPath 下添加 第2个参数lpszCmdLine指定要传递给新进程的命令行参数 命令行参数必须以Unicode字符串的形式传递fdwCreate指定进程加载后的初始状态 北京理工大学珠海学院计算机教研室 28 2020 3 14 最后一个参数lppiProcInfo指向一个PROCESS INFORMATION结构体 此结构体返回进程和主线程的句柄以及ID 进程终止的最佳方法是从WinMain 函数返回 还有另外几种方法ExitThread 使进程的主线程退出从而终止进程ExitProcess TerminateProcess 表2 1CreateProcess的fdwCreate参数 北京理工大学珠海学院计算机教研室 29 2020 3 14 2 2 2线程WindowsCE中最小的可执行单元 WindowsCE的调度系统只识别和调度线程进程中所有的线程共享进程的所有资源一个进程拥有的线程数理论上没有限制 只与当前可用的内存有关线程占用内存 处理器的寄存器和栈 每个线程有自己独立的栈 这些资源构成了线程的上下文 北京理工大学珠海学院计算机教研室 30 2020 3 14 线程可运行在核心态或用户态核心态 线程可访问操作系统所有的资源 一般操作系统线程和中断服务例程运行在核心态应用程序和设备驱动程序的中断服务线程运行在用户态线程有五种状态 分别为运行 挂起 睡眠 阻塞 终止 应用程序使用CreateThread 函数创建一个新线程 原型如下 北京理工大学珠海学院计算机教研室 31 2020 3 14 HANDLECreateThread LPSECURITY ATTRIBUTESlpsa DWORDcbStack LPTHREAD START ROUTINElpStartAddr LPVOIDlpvThreadParam DWORDfdwCreate LPDWORDlpIDThread 北京理工大学珠海学院计算机教研室 32 2020 3 14 如果线程创建成功 函数返回新创建线程的句柄 否则返回NULL若将fdwCreate参数设置为CREATE SUSPENDED来创建一个起始状态为挂起的线程 否则线程创建结束后就会立即执行 线程结束最好的方法是从线程的执行函数返回 另WindowsCE提供了ExitThread 和TerminateThread 函数来结束线程 北京理工大学珠海学院计算机教研室 33 2020 3 14 2 2 3调度WindowsCE是一个抢占式多任务操作系统 调度程序使用基于优先级的时间片算法对线程进行调度 WindowsCE每个线程都有一个优先级 调度系统根据线程的优先级进行调度线程可拥有256个优先级 0为优先级最高 255表示优先级最低 北京理工大学珠海学院计算机教研室 34 2020 3 14 0 96 供优先级高于驱动程序的实时程序使用97 152 基于WindowsCE的驱动程序153 247 供优先级低于驱动程序的实时程序使用248 255 非实时的普通应用程序驱动程序和应用程序可使用CeGetThreadPriority 和CeSetThreadPriority 函数来获取和设置线程的优先级每个线程都有一个时间片大小 默认为100ms 此时间片大小可用CeGetThreadQuantum 函数获得 线程获得处理器后 会执行特定的一段时间 然后重新调度 北京理工大学珠海学院计算机教研室 35 2020 3 14 线程的运行状态 运行 Running 线程正在处理器上执行就绪 Ready 线程可执行 但此刻并没有占用处理器 若被调度程序选中 则占有处理器就进入运行状态挂起 Suspended 创建线程时指定CREATE SUSPENDED参数或调用SuspendThread函数都可导致线程挂起 此状态不占用处理器 每个线程都有一个挂起计数 SuspendThread函数用来增加挂起计数 ResumeThread函数使线程挂起计数减1 当挂起计数为0时 线程转入就绪态 睡眠 Sleeping 调用Sleep函数可使线程进入睡眠状态 此状态不能占有处理器 睡眠结束后 线程转入就绪态 北京理工大学珠海学院计算机教研室 36 2020 3 14 阻塞 Blocked 如果线程申请的共享资源暂时无法获得 此时线程进入阻塞状态 此状态不占有处理器 当共享资源可以获得后 线程转入就绪态 终止 Terminated 线程运行结束 运行 就绪 阻塞 睡眠 挂起 终止 上下文切换 得到处理器 睡眠结束 Resume 运行结束 Sleep n 得到资源 Suspend 申请被其他线程占有的共享资源 图线程状态转换图 北京理工大学珠海学院计算机教研室 37 2020 3 14 基于优先级不可抢占调度 一旦某个线程占有了处理器就一直运行下去 直到该线程由于自身的原因自愿放弃处理器 线程调度程序才按优先级进行重调度 让其它线程运行 北京理工大学珠海学院计算机教研室 38 2020 3 14 基于优先级可抢占调度 任何时刻都严格按照高优先级线程在处理器上运行的原则进行线程调度 或者说 在处理器上运行的线程永远是就绪线程中优先级最高的线程 嵌入式操作系统要保证实时性 必须要求可抢占调度 北京理工大学珠海学院计算机教研室 39 2020 3 14 轮转调度 是指当有两个或多个就绪线程具有相同的优先级且它们是就绪线程中优先级最高的线程时 线程调度程序按照这组线程就绪的先后次序调度第一个线程 让它运行一段时间 运行的这段时间称为时间片 当任务运行完一个时间片后 该线程即使还没有运行完成 也必须释放处理器让下一个与它相同优先级的线程运行 北京理工大学珠海学院计算机教研室 40 2020 3 14 举例 线程A拥有最高的优先级 他会一直执行直到结束或阻塞线程B和C使用Round Robin算法运行在round robin每个线程都运行一个固定的时间 叫做时间片优先级数字越小 优先级越高 北京理工大学珠海学院计算机教研室 41 2020 3 14 WindowsCE调度系统的特点 具有最高优先级的进程如果处于就绪状态 则总是会被调度系统选中执行 若系统中存在多个优先级相同的就绪进程 这些进程以时间片轮转算法调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿监控作业题目及答案
- 医疗器械类考试试题及答案
- 2025年建筑特殊工种建筑电工模拟考试题库试卷及答案
- 2025年项目管理流程概念知识考察试题及答案解析
- 2026年建筑医院古彭大合同
- 2025年电子商务常识普及试题及答案解析
- 2025年国家工作人员学法用法考试题库及答案
- 2025年职业道德与职业指导考试题库附答案
- 2025年氯化工艺作业人员理论考试练习题及答案
- 妇产科火灾应急预案演练脚本
- 2025年大学《智慧建筑与建造-智慧建造机器人技术》考试备考试题及答案解析
- 2025年及未来5年中国客户端游戏未来趋势预测分析及投资规划研究建议报告
- 报批报建流程及注意事项
- 2025河北省金融租赁有限公司校园招聘笔试历年难易错考点试卷带答案解析试卷2套
- 短视频创意策划方案
- 2025 年大学动物医学(动物寄生虫)下学期期末测试卷
- 2025年教师招聘考试(行政职业能力测验)历年参考题库含答案详解
- 2026年山东化工职业学院单招职业技能考试题库附答案
- 蓄力扬帆 增长可期-中国企业在拉美投资调研
- 员工离职流程及薪资结算标准
- 中国儿童食物过敏循证指南解读 4
评论
0/150
提交评论