- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多任务编程_理论篇
进程的定义和性质 1960年在MIT的MULTICS和IBM公司的TSS/360系统中提出 进程的属性 结构性 可再入程序 和 不可再入程序 具有多进程(线程)的操作系统必须考虑可再入问题 进程的内存映像 进程时机 进程内存映像(Process Image) 进程程序块 进程控制块 (PCB) 每一个进程都有一个也只有一个进程控制块 进程的状态和转换 -三态模型 三态模型 进程的状态和转换 -五态模型 五态模型 五态模型状态转化 ·NULL-→新建态 执行一个程序,创建一个进程。 ·新建态-→就绪态 当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许。 ·运行态-→终止态 当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作 系统所终结,或是被其他有终止权的进程所终结。 ·就绪态-→终止态 未在状态转换图中显示,但某些操作系统允许父进程终结子进程。 ·终止态-→NULL 完成善后操作。 ·等待态-→终止态 未在状态转换图中显示,但某些操作系统允许父进程终结子进程。 Windows 2000/XP中的线程状态 引入多线程技术的动机 进程切换的开销大,频繁的进程调度将耗费大量处理器时间 线程特点 线程被进程拥有,是系统进行处理器调度的基本单位 线程内存映象和内容 线程存在于进程之中,除了堆栈和CPU状态外,全部数据是共享的 Windows2000的线程内存映像 线程的实现方法 Windows 2000/XP中的进程与线程概念 Windows 2000/XP进程设计的目标是提供对不同操作系统环境的支持,具有:多任务(多进程)、多线程、支持SMP、能在任何可用CPU上运行的特点。由内核提供的进程结构和服务相对来说简单、适用,其重要的特性如下: 1)进程和线程是用对象来实现的(内核对象) 2)一个可执行的进程可以包含一个或多个线程 3)进程或线程两者均有内在的同步设施 4)线程是基本的调度单位,能够被系统中断,系统得以调度其他线程 5)进程是不活泼的,只是线程的容器 6)一个进程内的线程共享同一块内存地址,文件句柄等资源 中断 -进程切换调度的根源 中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程 进程的控制 -- 进程切换与模式切换 中断是激活操作系统的唯一方法 模式切换 - 内核态和用户态 1 特权指令(Privileged Instructions)和非特权指令 模式切换 -内核态和用户态 2 Pentium的处理器状态有四种 Ring0-Ring3 系统调用的实施 系统调用使操作系统转入内核态 系统调用 例-WIN32 WriteFile GDI 任务的优先级 优先级:根据任务的重要性不同,可以设定优先级 Windows2000线程的优先级 每个线程都会被赋予一个从0-31的优先级号码 只要是高优先级的线程是可以调度的,系统绝对不会调度低优先级的(渴求调度Starvation) 系统引导的时候创建特殊的线程——0页线程,其优先级为0,当系统中没有任何其他线程运行时,0页线程负责将系统中所有的空闲RAM页面置0 进程内使用线程相对的优先级:空闲、低于正常、高于正常、最高、关键时间。 进程也根据具体情况被分为7个进程优先级类:空闲、低于正常、高于正常、最高、关键时间 线程的实际优先级是进程优先级类和进程内线程相对优先级的组合 正常优先级类的进程的基本优先级是5, 进程内正常优先级线程的优先级是8, 所以一个正常进程中的正常优先级线程的真正优先级是13 任务调度 按照某种原则把处理器分配给就绪进程或内核级线程 调度算法要考虑因素 响应时间 合作型多任务调度算法(Non-preemptive Multitasking ) 各个任务共享CPU,由任务控制CPU的使用权。 基于优先级抢占式调度算法(Preemptive Multitasking) 由操作系统控制CPU的使用权 同一优先级时间片轮转 单调速率 同一优先级时间片轮转 先来先服务 彩票调度 先来先服务 常见操作系统的任务调度算法 Linux提供符合了POSIX标准的调度策略,包括FIFO调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。 使用多进程/多线程 多进程和多线程统称为多任务 并发任务的同步 - 问题 并发的几个任务同时访问了一个不可重入代码段,结果不可预期 机票问题 (结果不唯一) 任务的交互(Interaction Among Processes)——协作和竞争 竞争关系:多个任务共用了一套计算机系统资源,因而,必然要出现多个任务竞争资源的问题。当多个任务竞争共享硬设备、变量、表格、链表、文件等资源
文档评论(0)