深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程

上传人:E**** 文档编号:91053625 上传时间:2019-06-21 格式:PPT 页数:25 大小:167KB
返回 下载 相关 举报
深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程_第1页
第1页 / 共25页
深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程_第2页
第2页 / 共25页
深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程_第3页
第3页 / 共25页
深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程_第4页
第4页 / 共25页
深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程》由会员分享,可在线阅读,更多相关《深圳职业技术学院windowsce嵌入式系统开发课程课件进程与线程(25页珍藏版)》请在金锄头文库上搜索。

1、项目5:多线程-PDA下多任务实现 (1),本节课程主要知识点 Windows CE5.0的进程 Windows CE5.0的线程 Windows CE5.0线程的调度,重点和难点,重点 线程调度的基本概念 难点 线程的定义和使用,Windows CE5.0的进程,进程 Process,进程是程序的一次运行活动,是操作系统中分配资源的基本单位。 进程具有动态性、并行性和异步独立性。 动态性:任务状态是不断变化的。 并行性:系统中同时存在多个任务,它们宏观上是同时运行的 异步独立性:每个任务各自按相互独立的不可预知的速度运行。,进程和程序的区别,程序是静态的,进程是动态的。 进程有生命周期,有诞

2、生有消亡,短暂的;而程序是相对长久的。 一个程序可对应多个进程,反之亦然。 进程具有创建其他进程的功能,而程序没有。,生活中的实例,电影胶片相当于程序,放电影的过程相当于进程。 电影胶片是静态的,放电影的过程是动态的。 电影胶片可以长期保存,放电影的过程是有时间的,短暂的。 一个电影胶片可以对应多个放映活动。 一次放映过程可以放映多部电影。,进程的组成,进程是由程序、数据及进程控制块三部分组成。 进程的程序部分描述了进程所要完成的功能。 如果一个程序能为多个进程同时共享执行,那么,这部分就应以再入码(reentry code)编制,它是进程执行时不可修改的部分。,进程的数据,进程的数据集合部分

3、包含两方面内容,即程序运行时所需要的数据和工作区。 数据集合部分通常由一个进程独占,为进程的可修改部分。 程序和数据集合部分是进程存在的物质基础,是进程的实体。,进程控制块PCB,进程控制块PCB (Process Control Block),它包含了进程的描述信息、控制信息、资源管理信息和进程的现场保护信息,是进程动态特性的集中反映。 一般包含以下内容: 进程标识名和标识数 位置信息 进程的状态信息 进程的优先权 进程间进行通讯的有关信息 进程现场保护区,Windows CE的进程,Windows CE5.0是多进程多线程操作系统,最多支持32个进程同时运行,理论上每一个进程可拥有无数个线

4、程。 系统启动时,默认启动最少4个进程: NK.exe 提供有关内核的服务 FILESYS.exe 提供有关文件系统服务 GWES.exe 提供对GUI系统的支持 Device.exe 载入管理设备驱动程序,Windows CE的进程结构,在Windows CE中,进程本身不参加系统的调度,也没有优先级和上下文。 进程创建时,会创建一个主线程作为该进程默认的执行体。 每个进程占据32MB的虚拟内存空间。 4G的虚拟内存分成若干个Slot,Slot0-32分配给系统的32个进程使用。 其中Slot 0用于映射当前正在执行的进程。,进程在内存中,Windows CE5.0的线程,线程Thread,

5、线程是系统调度的基本单位。 进程中所有的线程共享进程的所有资源。 线程占有进程的内存资源、处理器中的寄存器和独立的堆栈,这些资源构成线程的上下文。 线程可以运行在核心态或用户态。在核心态,线程可以访问系统的所有资源。 线程有五种状态,分别为运行、挂起、睡眠、阻塞、终止。,线程的优先级,Windows CE5.0将线程分为256个优先级。 0优先级最高,255最低。 0到247优先级属于实时性优先级,一般分配给实时性应用程序、驱动程序、系统程序。 248到255:一般分配给普通应用程序线程使用。,Windows CE5.0线程的调度,Windows CE5.0线程的调度,Windows CE采用

6、基于优先级可抢占的时间片轮转调度方法。 在调度过程中,内核的调度系统包含一个当前所有进程中线程的优先级列表,并对所有的线程按优先级排列顺序。线程的调度按照各线程的优先级来安排。,优先级调度算法,优先级调度就是让高优先级的任务优先得到处理的调度策略。 分可抢占和不可抢占调度。,基于优先级不可抢占调度,一旦某个线程占有了处理器就一直运行下去,直到该线程由于自身的原因自愿放弃处理器,线程调度程序才按优先级进行重调度,让其它线程运行。,基于优先级可抢占调度,任何时刻都严格按照高优先级线程在处理器上运行的原则进行线程调度,或者说,在处理器上运行的线程永远是就绪线程中优先级最高的线程。 嵌入式操作系统要保

7、证实时性,必须要求可抢占调度。,轮转调度,是指当有两个或多个就绪线程具有相同的优先级且它们是就绪线程中优先级最高的线程时,线程调度程序按照这组线程就绪的先后次序调度第一个线程,让它运行一段时间。 运行的这段时间称为时间片。 当任务运行完一个时间片后,该线程即使还没有运行完成,也必须释放处理器让下一个与它相同优先级的线程运行。,时间片,Windows CE默认的时间片大小是100ms。 时间片大小的选择会影响系统的性能和效率: 时间片太大,时间片轮转调度就没有意义。 时间片太小,线程切换过于频繁,处理器开销大,真正用于运行应用程序的时间将会减小。 时间片的大小可由用户自己设定。,进程调度的时机,

8、运行线程因为资源条件不满足被阻塞。 当有一个优先级更高的线程就绪时:(可抢占式调度) 新创建一个任务时 一个等待任务变成就绪时 时间片轮转调度情况下,运行线程耗尽时间片。 中断服务结束,退出服务程序时。,优先级反转问题,当两个不同优先级的线程,为争夺互斥体(mutex),临界区( critical section)或信号量(semaphore)等资源时,低优先级的线程B因为已经占用资源,进而阻塞高优先级线程A的调度执行。从而使另一个线程C得到执行的现象叫优先级反转。 优先级反转会影响系统的实时性,所以必须重视。,优先级继承,解决方法:Windows CE采取优先级继承的办法来解决。 当发生优先级反转时,内核将低优先级线程B的优先级提高到高优先级线程A的水平。这样线程B就可以被调度执行完相关的代码,线程A也就能够访问资源了。 内核将线程B的优先级恢复到原来水平。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号