但内核供内核线程的编程接口.PPT

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

Threads 线程 为什么要引入线程 WEB服务器 同时处理多个客户请求 创建多个进程降低响应时间 进程开销较大(上下文切换) 线程(轻量级进程) 是CPU调度的一个基本单位 WEB server/Http request IE WEB Server http://…./index.htm html….img src=1.jpgimg src=2.jpg…/html http://…/1.jpg http://…/2.jpg 1.jpg data 2.jpg data FlashGet / eMule /BT 1、线程的引入 为了解决以进程为运行单位而产生的并发性不高和系统开销大的缺陷。 人们希望将进程作为调度和分派的独立单位属性与作为拥有资源的独立单位属性分开。使得运行者尽量不拥有资源,轻装上阵;而拥有资源者尽量少切换。 引入线程作为轻装运行的独立单位,而进程作为资源拥有单位。可大大提高系统的并发程度,同时又减少系统的时空开销。 单线程与多线程 2、线程的定义 定义:线程是由进程所包含的一个实体,并能被系统独立调度和分派的基本单位,亦即独立运行的实体或进程中的一条执行路径或线索。 组成:线程由线程控制块(TCB)、保存线程的程序计数器、局部变量、少数状态参数和返回地址等信息的一组寄存器和堆栈组成。 传统的进程称为重型进程(Heavy Weight Process),而将线程有时称为轻型进程( Light Weight Process)。 一个进程中至少有一个线程,并继承或共享进程资源。 3、线程属性 轻型实体:基本不拥有资源,只共享进程的资源; 独立调度和分派的基本单位:线程是独立运行的基本单位,且切换开销极小; 并发执行:线程之间(同一进程或非同一进程)可并发执行; 共享进程资源:进程的内存空间、I/O设备、文件、数据等。 4、线程与进程的比较(重点) 相似的地方: 都可以并发执行; 都有就绪、执行、阻塞这些基本状态,也都可以在这些基本状态间转换状态;从创建到撤销都有一定的生命周期; 都需要同步工具。 在引入线程的OS中,线程代替进程成为独立调度和分派的基本单位,进程则仍是拥有资源的基本单位。 并发粒度不同。同一个进程里的不同线程之间,以及不同进程的线程之间都可以并发执行,所以线程拥有更好的并发性。 拥有资源数量不同。进程是拥有资源的基本单位,线程除了些在运行过程中必不可少的资源外基本上不拥有系统资源,它可以访问自己所在的进程的资源。 管理开销不同。创建、撤销进程时系统都要为之分配和回收资源,所以进程切换用的时空开销相对要多于线程。进程间通信很麻烦,而同一进程的线程间则通过共享进程的资源很方便地通信和同步,同步开销小得多。 不同的地方: Benefits Responsiveness 可以获得快速的用户响应,如在C/S模式下,web server为每个用户连接运行一个线程;RPC服务器中,RPC服务进程会开启多个线程服务于每个RPC request Resource Sharing 进程是拥有资源的基本单位(CPU,地址空间,I/O资源),进程中的线程可以共享这些资源 Economy 创建线程比创建进程更快,进程内的线程切换(context switch)比进程更快,solaris中创建线程比进程快30倍,线程切换比进程切换快5倍 Utilization of SMP Architectures 可以充分利用多处理器体系结构,使得一个进程中的线程在不同的处理器上运行,提高进程执行的并行度 一些应用程序可以分成若干相对独立的部分[Word 的后台打印,拼写检查等,IE浏览器] 每一部分用一个线程来实现 一个线程阻塞时可调度同一进程的另一个线程运行而不是切换进程 线程间通信无需内核干预 需要解决进行线程间同步 Application benefits of threads 三种线程状态: running, ready, blocked 线程无挂起状态 Termination of a process, will terminates all threads within the process Threads States(线程状态) User Level Threads(ULT) 内核不关注线程的存在 所有的线程管理由应用程序通过调用ULT库实现 线程间的切换无需内核模式下的特权指令(无模式转换) 线程调度由特定的应用 程序完成 例子 - POSIX Pthreads - Mach C-threads 一种UNIX的操作系统,采用微内核 - Solaris threads Java线程:创建Thread类的子类或实现Runable接口 User Level Threads library 用户级线程库

文档评论(0)

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

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

1亿VIP精品文档

相关文档