- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程的优点 创建速度快(在已有进程内) 终止所用时间少 切换时间少(保存和恢复工作量小) 通信效率高(在同一进程内,无需调用内核,可利用共享的存储空间) ULT 内核不知道线程的存在,内核以进程为单位进行调度。线程的所有管理工作完全由应用程序来完成。如java线程库 优点: 线程切换不需要模式切换,无需转到内核特权模式; 可按应用特定需要选择不同线程调度算法 可以运行在任何操作系统上 缺点 系统调用将阻塞进程,其所有线程均被阻塞 不能利用多处理器的优点。 KLT 线程管理的所有工作由操作系统内核做。内核专门提供KLT API,应用程序区不需要有线程管理代码。 优点 多处理器上,内核能同时调度同一进程中多个线程并行执行。 进程中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器运行。 内核线程数据结构和堆栈很小,KLT切换快,内核自身也可用多线程技术实现,能提高系统的执行速度和效率。 缺点 应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要 用户态-内核态-用户态 的模式切换,系统开销较大。 5、SMP SMP: Symmetrical Multi-Processing SMP: Shared-memory MultiProcessor 共享内存多处理器系统。内核可运行在任一处理器上 公用信号量:联系一组并发进程,相关的进程均可在此信号量上执行P和V操作。初值常常为1,主要用于实现进程互斥。 私有信号量:联系一组并发进程,仅允许此信号量拥有的进程执行P操作,而其他相关进程可在其上施行V操作。初值常常为0或正整数,多用于并发进程同步。 解决死锁的方法: 死锁预防(prevention):破坏4个条件之一 死锁避免(avoidance): 进程启动拒绝 资源分配拒绝(银行家算法) 死锁检测(detection)和恢复 第二部分(3-6章) 进程 总结 1、进程概念 进程(Process)是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程。 进程控制块(PCB):用于记录和刻画进程状态及有关信息的数据结构。包括进程标识、处理器状态信息和进程控制信息。 进程映像(Process Image):程序、数据、PCB、工作栈 2、进程状态及其转换 新建态 就绪态 运行态 阻塞态(等待态) 结束态 进程挂起? 由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的;或者系统出现了某些故障,需要排除故障;或者用户请求挂起。 3、进程控制 进程创建 进程切换 进程阻塞 进程挂起 进程终止 进程挂起 进程激活 原语 进程切换和模式切换 进程切换,处理机从一个进程的运行转换到另一个进程上运行。进程切换首先要进行模式切换,并且要进行新旧进程的上下文切换,开销大。进程切换首先要产生中断,因为进程切换必须在核心态发生。需要操作系统占有CPU。 模式切换,模式切换是CPU工作模式的变化。即用户态和系统态之间的切换,处理机逻辑上还在同一个进程中运行。在用户态只能执行非特权指令,在系统态则可以执行所有指令。模式切换只进行CPU上下文切换,开销小。 进程切换首先会进行模式切换。模式切换不一定导致进程切换。 核心态 运行 系统调用或中断(隐含模式切换) 模式切换 用户态 运行 等待 状态 就绪 状态 发生 事件 唤醒 调度 进程 中断、 中断返回 允许进程上下文切换 运行态 4、线程 线程是进程中某个单一顺序的控制流。也被称为轻量进程。 在有线程的系统中,进程是系统进行保护和资源分配的单位,线程是调度的单位。 引入进程是为了使多个程序并发执行,以改善资源使用率和提高系统效率, 引入线程是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。 单线程进程(模型) 用户地 址空间 进程 控制块 用户 堆栈 内核 堆栈 进 程 进程控制块 用户地址空间 用户栈 内核栈 管理者 执行序列 TCB: 一个唯一的线程标识符 一组寄存器:程序计数器、状态寄存器、通用寄存器 两个栈指针:一个指向核心栈(核心态下运行时),一个指向用户栈(用户态下运行时)。 一个私有存储区:存放私有数据和其它与该线程相关的统计信息。 线程状态 运行 就绪 阻塞 线程的两种实现方式:ULT、KLT 进程同步( Synchronization ),直接制约关系。 指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。 进程互斥( Mutual Exclusion ),间接制
文档评论(0)