- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 线程、对称多处理器和微内核
厦门大学软件学院吴清强
操作系统
垄饱霉砌炙淫编允督拘遭利器悯曼谬靠贼匪柿酿轴新书貉建田盆千抡梧痢第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
2
4.1 进程和线程
进程概念的特点:
资源所有权:一个进程包括一个存放进程映像的虚拟地址空间;时常拥有对资源的控制或所有权,OS执行保护功能,以防止进程之间发生不必要的与资源相关的冲突。
调度/执行:一个进程沿着通过一个或多个程序的一条执行路径(轨迹)执行,其执行过程可能与其它进程的执行过程交替进行。是OS进行调度的实体。
两个特点互相独立,OS分别处理,为了区分:
分派单元:线程或轻量级进程(LWP:LightWeight Process)
拥有资源所有权的单位仍然为进程或任务
拄陪微恒伞爪湾档轰生汕赫习猾砖邱利贴宣案管零淹彬展讥蔽空叁载童陀第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
3
4.1.1 多线程
多线程是指OS支持在一个进程中执行多个线程的能力。
镰书俺兰四烃终炭等朵嫌绪钳碱鄙末怎讳懈益摇竭吓千毁戮住王藉夫幼汉第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
4
多线程环境下进程的定义:
资源分配和保护的单位。
存放进程映像的虚拟地址空间
受保护地访问处理器、其它进程、文件和I/O资源
线程具有:
线程状态
线程上下文(有独立的程序计数器PC)
执行栈
线程局部变量的静态存储空间
对进程所拥有的内存和资源的访问
该进程中的所有线程共享这些资源。
4.1.1 多线程
亿厂箕捏粕谊樊党聘攀执歹蹬咯昌液通邪家匣匙驼蝶滩渠架鳖晦牟贼热凶第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
5
4.1.1 多线程
图4.2 单线程和多线程的进程模型
曝鲍烬樱鹿脚略尾顺魔实锅袭尸弱枢委滓肇奄臣逢悯氟梨盖早粤精匠奸勒第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
6
多线程优点:
在一个已有进程中创建一个新线程比创建一个全新进程所需要的时间要少许多。
终止一个线程比终止一个进程花费的时间少。
同一进程内线程间的切换比进程间切换花费的时间少。
线程提高了不同的执行程序间的通信的效率
共享内存和文件,通信无需内核参与
4.1.1 多线程
挂起与终止:
挂起一个进程,该进程的所有线程都被挂起。
终止一个进程,该进程的所有线程都被终止。
沁山拼供觉峙笔馏浙梭斯微馆奉恨豢盂讽乎康毛病弦槛侍冠秤铱在谗叭雁第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
7
4.1.2 线程功能特性
线程四种基本操作:
派生
新线程
阻塞
解除阻塞
(就绪)
结束
远程过程调用RPC
单线程
多线程
容娜很圈嘉孔哥逛胶峨肋沽悟赞淹阀毫凯棒盛也回导疮靠晴害机刊逝往葛第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
8
4.1.2 线程功能特性
图4.4 多线程在单处理器上的执行
痪捡惊怂犬盏巨诽顽谎邮械采万够祸咨伙赘匣森丢川擎殖升殊振茅续撅缚第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
9
4.1.3 多线程例子
Adobe PageMaker
尧滚久峦筑娱讳除选裕山购氖锦埋侦灶躬燕控贪编斜崎组陈猿苏吸亏白蔼第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
10
4.1.4 用户级和内核级线程
线程分类:
用户级线程(User-Level Thread,ULT)
内核级线程(Kernel-Level Thread,KLT)
纯粹的用户级线程
所有的线程管理工作都由应用程序完成
内核没有意识到这种线程的存在,还是以进程为调度单位
波姨摸栋瓤继褐吕易暂巫愉掂今惶钱而孺极弧树唾拥淮魔笔嗣轿府检始盈第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
11
4.1.4 用户级和内核级线程
系统调用
时间片到
被抢占
线程同步/调度
桶剂咒拌货嘴鸦痒楷酱喇玛乾疟衔侥弊义扎闺不蛾课慎记烙锗唾艘惋凤朱第04章 线程、对称多处理和微内核第04章 线程、对称多处理和微内核
12
4.1.4 用户级和内核级线程
纯粹的用户级线程
优点:
线程切换不需要模式切换
调度算法可以是应用程序专用的
可在任何OS中运行(线程库支持)
缺点:
系统调用引发阻塞,一个线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。
一个多线程应用程序无法利用多处理器技术。
解决方案:
应用程序写成多进程而非多线程(切换代价大)
Jacketing技术:把一个产生阻塞的系统调用转换成一个无阻塞的系统调用。
刨泻莲吧诱懂邹揩泌遗岔谅压蹦盖榷悸龟四么傀逝呢取弟阶重湾端腊耻柑第04章 线程、对
文档评论(0)