02进程管理-严军勇.ppt

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

2. 发送原语 发送进程在利用发送原语发送消息之前,应先在自己的内存空间,设置一发送区,把待发送的消息正文、发送进程标识符、消息长度等信息填入其中,然后调用发送原语,把消息发送给目标(接收)进程。 3. 接收原语 消息缓冲机制 线程 线程的引入 1. 线程的概念 引入线程主要的原因来自以下四个方面: (1)计算机网络的快速发展 (2)CPU速度的快速提升 (3)编程模式的变化 (4)业务应用的需求 网络模式 线程与进程的区别 线程和进程的区别及联系 从上面的分析中,可以看出,线程是比进程更小的能独立运行的基本单位。在操作系统中引入进程的目的是为了使多个程序并发执行,以提高资源的利用率和系统的吞吐量,而在操作系统中引入线程的目的则是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。 操作系统引入进程后,虽然能使程序并发执行,但由于进程既是一个可以独立调度的基本单位,同时也是一个可拥有资源的单位。因此程序并发执行时,系统必须为进程的创建、撤销和切换付出较大的时空开销。既然这样,系统中所设置的进程数目就不宜太多,进程切换的频率也不宜过高,因此它也限制了程序的并发执行程度。 线程与进程的关系 在引入线程的操作系统中线程和进程具有以下关系: (1)线程是进程的一部分,它是进程内的一个执行单元。通常,一个进程含有若干个线程,至少也要有一个线程。一个进程的多个线程都在进程的地址空间里活动。 (2)引入线程的操作系统中,资源分配的对象是进程,而不是线程。进程仍是拥有资源的一个独立单位,它拥有自己的资源,一般地说,线程除有一点必不可少的资源外不拥有系统资源。线程使用的资源是进程分到的资源。 (3)引入线程的操作系统中,调度的基本单位是线程而不是进程。即CPU是分给线程的,真正在CPU上执行的是线程。 线程与进程的关系 (4)进程之间可以并发执行,而一个进程中的这些线程之间亦可并发执行。而且在并发执行过程中,也需要协作同步。 (5)进程调度,系统要进行进程上下文的切换,需要系统大量的开销。 (6)线程调度,由于同一进程内的线程共享进程的资源,其切换是把线程仅有的一小部分资源变换即可,从而提高了系统的效率。线程切换比进程切换快得多。因此有些人把线程又称为轻型进程。 (7)从一个进程的线程向另一个进程的线程切换,将引起进程的上下文切换。 (8)同一进程的多线程共享进程的所有资源,一个线程可以改变另一个线程的数据,而多进程机制则不会产生这个问题。 线程控制块 线程控制块 1. 线程控制块TCB 在管理进程的时候,使用了一种数据结构叫PCB,那么在管理线程的时候,同样也使用一种数据结构,称之为线程控制块TCB(Thread Control Block)。由于线程不包含系统的资源,所以线程的TCB中包含的内容就少了很多,主要有以下内容组成: 线程标识信息:系统内唯一的标识符; 线程状态和调度信息; 现场信息:主要是CPU内各个寄存器的内容; 线程私有存储区:系统栈和用户栈的指针; 指向PCB的指针:该线程归属于哪个进程,使用哪个进程的资源。 线程映像 2. 线程的映像 线程的状态与级别 线程的状态 和进程类似,线程也有生命周期,因而,也存在各种状态。从调度需要来说,线程的关键状态有:运行态、就绪态和阻塞态。 线程的级别 从实现的角度看,线程可以分成用户级线程ULT(如POSIX 的P-threads、Java的线程库)和内核级线程KLT(如Windows2000/XP、OS/2 和Mach 的C-thread),分别在用户空间和核心空间实现。也有一些系统(如Solaris)提供了混合式线程,同时支持两种线程实现。 线程的类别 1. 内核级线程2. 用户级线程3. 混合式线程 内核级和用户级线程 用户级线程不依赖于内核,内核级依赖内核,其创建、撤消和切换都由内核实现,在内核中为其保留一张线程控制块。 比较: 1.线程的调度和切换速度: 内核级线程切换类似于进程切换,但速度快于进程切换。 用户级线程切换通常发生在同一用户进程的诸线程间,无需进入内核,更快。 内核级和用户级线程 2.系统调用(用户级线程对内核是以进程为单位;这时进入系统态,并阻塞调用者) 当一个进程含多个用户线程,其中某一个线程进行系统调用,由于内核不知道这些线程的存在,因此将进程阻塞。 当一个进程含多个系统线程,其中某一线程进行系统调用,则阻塞该线程,进程仍可运行。 3.线程执行时间(用户级以用户进程为单位;由内核分配) 用户级线程以进程为单位平均分配时间,对线程间并发执行并不有利。 系统级线程以线程为单位平均分配时间。 线程的同步和通信 多线程OS常提供多种同步机制:互斥锁、条件变量、记数信号量以及多读/单写锁等。 1.互斥锁 阻塞方式 lock(mu

文档评论(0)

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

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

1亿VIP精品文档

相关文档