网站大量收购独家精品文档,联系QQ:2885784924

多核多线程支持.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多核多线程支持

多核多线程支持 2007年11月19日 进程与线程 Single Threaded and Multithreaded Process Models 线程 可以获得快速的用户响应 如在C/S模式下,web server为每个用户连接运行一个线程; RPC服务器中,RPC服务进程会开启多个线程服务于每个RPC request 进程是拥有资源的基本单位(CPU,地址空间,I/O资源),进程中的线程可以共享这些资源 一些应用程序可以分成若干相对独立的部分,每一部分又一个线程来实现 线程间通信无需内核干预,需要进行线程间同步 多线程的优点 传统优点: 创建一个线程比创建一个进程的代价要小 终止一个线程比终止一个进程的代价要小 线程的切换比进程间的切换代价小 Eg: solaris中创建线程比进程快30倍,线程切换比进程切换快5倍 多核 充分利用多处理器 数据共享 数据共享使得线程之间的通信比进程间的通信更高效 快速响应特性 在系统繁忙的情况下,进程通过独立的线程及时响应用户的输入 用户级线程 用户级线程 有关线程的所有管理工作都由在用户级实现的线程库来支持 用户级线程特征 户级线程的创建和管理等操作无须内核参与,操作更快 并行性不高,一个线程被系统阻塞后,整个进程被阻塞 内核级线程 内核级线程 内核级线程的所有管理操作都是由操作系统内核完成的 特点 并行性高, 多个线程可被同时调度 充分利用多处理器 创建和管理代价高 一对一模型 一对一模型把每个用户级线程影射到一个内核级线程。 当一个线程阻塞时,其他线程仍然可以运行。 Each user-level thread maps to kernel thread. (纯核心级线程) Examples Windows 95/98/NT/2000 OS/2 多对多模型 多对多模型将m个用户级线程影射到n个内核级线程,m≥n。 用户可以创建所需要的用户级线程,通过分配适当数目的内核级线程获得并发执行的优势并节省系统资源。 Examples Solaris 2 Windows NT/2000 with the ThreadFiber package 线程的状态 线程的状态 就绪(ready):线程等待可用的处理器。 运行(running):线程正在被执行。 阻塞(blocked):线程正在等待某个事件的发生(比如I/O的完成,试图加锁一个被上锁的互斥量)。 终止(terminated):线程从起始函数中返回或者调用pthread_exit。 线程状态的转换 常用的同步机制 临界区(critical section) 信号量(simphore) 互斥量(mutex) 管程(monitor) 临界区 所有n 个进程竞争使用一些共享的数据。 每个进程有一个代码段, 称为临界区, 在哪儿共享数据被访问。 问题 保证当一个进程正在临界区执行时,没有另外的进程进入临界区执行 解决临界区问题需满足 互斥:假定进程Pi在其临界区内执行,其他任何进程将被排斥在自己的临界区之外. 有空让进:临界区虽没有进程执行,但有些进程需要进入临界区,不能无限期地延长下一个要进入临界区进程的等待时间. 有限等待。在一个进程提出进入临界区的请求和该请求得到答复的时间内,其他进程进入临界区前的等待时间必须是有限的. 假定每个进程都以非零的的速率执行. 没有任何关于这n个进程相对执行速率的假定 解释: 使用临界区的原则 每次只允许一个进程处于它的临界区(CS)中 若有多个进程同时想进入CS,应在有限时间内让其中一个进程进入CS,以免阻塞 进程在CS内只能逗留有限时间 不应使要进入CS的进程无限期地等待在CS之外 在CS之外的进程不可以阻止其他进程进入CS 不要预期和假定进程进展的相对速度以及可用的处理器数目. 因为这是不可预期的. General structure of a typical process Pi General structure of process Pi (other process Pj) do { entry section 进入区 critical section 临界区 exit section 退出区 reminder section 剩余区 } while (1); Processes may share some common variables to synchronize their actions. 互斥量(mutex) 在同一时刻只能有一个线程能够对互斥量加锁 线程用互斥量对共享变量counter的互斥访问:

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档