- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2-5线程及总结-调度
线程-引入背景 以前涉及的进程 资源所有权 调度/执行的单位 进程负载很重 在实施进程的创建、删除和切换过程中要付出较大的时空开销。 限制了系统中进程的数目和并发活动的数目。 线程 随着计算机和计算机网络的发展,及实际应用的需要,需要一个程序中的多个程序段并发运行。 这时就需要共享程序代码或者其他变量信息,而且进程的创建和切换开销比较大,所以为了减少进程切换和创建开销,提高执行效率和节省资源,以及为了方便进程间共享数据和交换数据, 引入“线程”。 3.9.2线程的基本概念 在一个进程中可以包含多个可以并发(并行)执行的线程。 3.9.3线程与线程的区别 进程是作为除CPU以外系统资源(如内存,外设,文件等)的分配单位。线程是进程的一部分,共享分配给进程的资源。 线程是执行的单位。系统按线程分配CPU资源。 线程-优点 并发程度高。可在系统中建立多线程提高并发度。 易于调度,开销小(经济) 线程的创建时间、终止时间比进程短; 同进程内的线程切换时间比进程短(上下文有许多是相同的); 由于同进程内线程间共享进程的代码,数据,内存和文件资源,可直接进行不通过内核的通信;响应度高。 资源共享。线程共享它们所属进程的内存和资源。 多处理器体系结构的利用。 一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。 地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享--某进程内的线程在其他进程不可见 通信:进程间通信采用IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信 调度:线程上下文切换比进程上下文切换要快得多 3.9.4 线程的使用范围 多线程编程,强调并发性。 典型的应用: 前台和后台操作:如电子表格程序,一个显示菜单并读取用户输入,另一个线程执行用户命令并更新电子表格 异步处理:异步成分可以用线程实现,如网页浏览器中一个线程显示图象,另一个线程从网络中接收数据; 加速执行:通过线程可方便有效地实现并行性 当一个应用是由若干各相对独立的任务构成时有用。 进程可创建多个线程来执行统一程序的不同部分; 多个线程可以同时执行 3.10线程分类与执行 有很多OS已经实现线程,如Windows2000,Linux等,但是它们的实现方式并不完全相同,主要有以下两种: 用户级线程 内核级线程 线程实现-用户级线程 用户级线程(ULT,User Level Thread) 用户线程的维护由应用进程通过线程库来完成; 线程库:应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程,无需内核支持。 特点: 内核不了解用户线程的存在; 用户线程切换不需要内核特权; 调度由应用软件内部进行,通常采用非抢先式和更简单的规则,也无需用户态/核心态切换,所以速度特别快。 (2)核心级线程(KLT) 内核线程(KLT,kernel-level thread) 有关线程的所有管理工作都在内核完成,应用程序部分没有线程管理的代码,只有一个到内核线程的API 线程切换由内核完成; 内核维护进程和线程的上下文信息; ?? 例子:Windows 2000/XP 第三章 总结 进程是操作系统中最重要、最基本的概念之一。它是分配资源的基本单位。 进程的概念、进程与程序的区别。 进程的表示与描述:PCB 和 进程映像 进程的状态,以及状态之间的转换。 进程的制约关系:互斥、同步 概念:临界资源、临界段/区、相关临界段/区 怎样实现同步互斥:信号量及P V操作。 进程通信:消息缓冲机制、邮箱、管道。 死锁:什么是死锁、必要条件、排除: 死锁预防、死锁避免、死锁检测和恢复 线程:概念,与进程的关系、区别,实现分类 第四章:处理机调度 CPU调度指的是在一组就绪的进程/线程中进行CPU分配。 多道程序并发实现 CPU调度 需要进程的切换调度,想知道: 什么是切换、什么是调度? 谁来切换调度? 什么时候切换调度 怎样调度?怎样切换? 1、什么是切换、调度? 进程切换:指进程进入CPU执行中因为自身等事件或有更迫切需要运行的进程就绪而让出CPU, CPU转去运行其它进程.* 2、 谁来切换调度? 内核调度程序来完成 进程的切换调度。 内核调度程序是运行在核心态下,所以需要:进程被中断或者异常时进入内核,来执行内核调度程序。 3、When:什么时候切换调度 什么会引起进程调度那?(引发进程调度的原因) 进程主动放弃CPU (进程结束、等待事件进入阻塞) 比它优先级高的进程进入就绪队列时(原有、重新计算) 所用的时间片时间到了。 操作系统并不一定在引发进程调度的原因产生时,就马上运行进程调度程序。 3、什么时候切换调度 请求调度的事件发生 运行进程调
文档评论(0)