嵌入式软件开发技术与工具chp3任务划分(免费阅读).ppt

嵌入式软件开发技术与工具chp3任务划分(免费阅读).ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 任务划分 mabo124@ 2009-2-2 引言 多道程序技术 进程、线程和任务 什么是进程? 什么是线程? Why线程? 单进程的实现方法 多进程的实现方法 怎么办? 什么是线程? 线程所需的资源 什么是任务? 第三章 任务划分 3.1 任务的特性 3.2 任务划分的目标 3.3 任务划分的方法 3.4 任务的可调度性分析 任务的特性 任务的基本特性 动态性 独立性 并发性 任务的独立性 任务划分的目标 满足“实时性” 任务数目合理 简化软件系统 降低资源需求 任务划分的方法 设备依赖性任务的划分 关键任务的划分 紧迫任务的划分 数据处理任务的划分 功能聚合任务的划分 触发条件相同的划分 运行周期相同任务的划分 顺序操作任务的划分 任务的可调度性分析 * * 为了提高计算机系统中各种资源的利用率, 现代操作系统广泛采用多道程序技术 (multi-programming),使多个程序同时 在系统中存在并运行。 CPU I/O 单道程序: 多道程序: CPU I/O 作业甲(红黄) 作业乙(蓝绿) 在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。 为此,操作系统设计者提出了进程的概念。 A process = a program in execution 一个进程应该包括: 程序的代码; 程序的数据; PC中的值,用来指示下一条将运行的指令; 一组通用的寄存器的当前值,堆、栈; 一组系统资源(如打开的文件) 总之,进程包含了正在运行的一个程序的所有 状态信息。 Process ≠ Program A program is C statements or commands 静态的; A process is program + running context 动态的. main( ) { ….. } A( ) { ….. } PROGRAM main( ) { ….. } A( ) { ….. } PROCESS heap Stack A Main Registers,PC 四个进程在并发地运行 (本图摘自Andrew S. Tanenbaum: “Modern Operating Systems”) 自从60年代提出进程概念以来,在操作系统中 一直都是以进程作为独立运行的基本单位,直 到80年代中期,人们又提出了更小的能独立运 行的基本单位 ?? 线程。 【案例】编写一个MP3播放软件。核心功能模块有三个: (1)从MP3音频文件当中读取数据;(2)对数据进行解压缩; (3)把解压缩后的音频数据播放出来。 main( ) { while(TRUE) { Read( ); Decompress( ); Play( ); } } Read( ) { … } Decompress( ) { … } Play( ) { … } 问题: 播放出来的声音能 否连贯? 各个函数之间不是 并发执行,影响资 源的使用效率; I/O CPU 程序1 main( ) { while(TRUE) { Read( ); } } Read( ) { … } 问题:进程之间如何通信,共享数据? 程序3 main( ) { while(TRUE) { Play( ); } } Play( ) { … } 程序2 main( ) { while(TRUE) { Decompress( ); } } Decompress( ) { … } 需要提出一种新的实体,满足以下特性: (1)实体之间可以并发地执行; (2)实体之间共享相同的地址空间; 这种实体就是: 线程(Thread) Thread: A sequential execution stream within a process; A thread of execution; 进程当中的一条执行流程。 从两个方面来理解进程: 从资源组合的角度:进程把一组相关的 资源组合起来,构成了一个资源平台(环境),包括地址空间(代码段、数据段)、打开的文件等各种资源; 从运行的角度:代码在这个资源平台上的一条执行流程(线程)。 资源平台 线程 进程 = 线程 + 资源平台 优点:

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档