欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (2)--第2章 进程管理操作系统原理.ppt

    • 资源ID:96378785       资源大小:1.55MB        全文页数:47页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (2)--第2章 进程管理操作系统原理.ppt

    本章目录 2.1 进程及其状态 2.2 进程控制块 2.3 进程控制 2.4 线程2.1 进程及其状态 2.1.1 进程的引入 2.1.2 进程的概念 2.1.3 进程的状态模型 2.1.1 进程的引入 1.程序的顺序执行 为了描述计算机的行为,传统上是使用程序的概念。程序是适合于计算机处理的一系列的指令,按照一定的逻辑要求被划分成多个相关模块,这些模块必须顺序地执行。这种顺序执行具有以下三个特点:(1)顺序性。程序严格按照给定的指令序列的顺序执行,也就是说指令N必须在指令(N-1)执行完毕以后才能执行。(2)运行环境的封闭性。程序一旦开始运行,就必然独占系统内所有资源,系统状态完全取决于程序本身。因此,程序运行结果不受外界因素影响。(3)程序运行结果可再现性。只要给定相同的初始条件和输入数据,在任何计算机上,在任何时间,以任何速度来运行,程序的运行结果都是唯一的,也就是说可以随时再现程序的运行结果。2.1.1 进程的引入 2.程序的并发执行所谓并发执行,是指一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的执行方式。程序并发执行的特征:(1)间断性。并发程序在执行期间可以互相制约,使各个程序的执行过程不再像单道程序系统中那样顺序连贯执行,而具有执行暂停执行的活动规律,各程序活动的工作状态与所处的环境有密切关系。(2)失去封闭性。程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来共同改变,致使程序的运行环境失去了封闭性。(3)不可再现性。程序在并发执行时,由于失去了封闭性,也将导致其运行过程和运行结果不可以重现。即使程序的初始条件相同,也会因运行时间和环境的不同而得到不同的运行结果。2.1.2 进程的概念 进程作为操作系统的一个重要概念,是20世纪60年代由美国麻省理工学院的研究人员在研究MULTICS操作系统时提出来的。(1)一个正在执行中的程序。(2)一个正在计算机上执行的程序实例。(3)能分配给处理机并由处理机执行的实体。(4)一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集合。(5)程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。2.1.2 进程的概念 进程是操作系统最基本、最重要的概念之一,具有以下五个特点:(1)结构特征。通常的程序不能并发执行,为使程序能独立运行,须为之配置一进程控制块,即Process Control Block,PCB;而由程序代码、数据集和进程控制块构成了进程实体,也称进程映像。其中,PCB是进程存在的标志。只要一个进程的PCB存在,无论该进程的程序代码和数据集是否在内存,都可以被系统控制和调度。(2)动态性。进程有“生命周期”。它由“创建”而产生,由“撤销”而消亡。进程是在程序投入运行之前通过创建而产生的,一个进程被生成以后,就有被调度运行的机会;当它运行结束后,通过撤销而使之消亡。2.1.2 进程的概念(3)并发性。一个进程可以与其它进程并发执行。从系统的角度看,在一个时段内可以有多个进程同时存在并以不同的速度向前推进着。而程序作为一种静态文本是不具备这种特征的。(4)独立性。进程是系统中的一种独立实体,是独立请求并占有资源、独立被调度运行的基本单位(支持线程的系统除外)。凡未建立PCB的程序都不能作为一个独立的单位参与运行。(5)异步性。进程是以异步方式运行的,即它的推进速度是不可预知的。由于系统中允许多个进程并发执行,每一次调度都带有一定的随机性,并且进程的运行规律是“走走停停走走”,因此,系统无法预知某一瞬间运行的是哪一个进程,以及它的推进速度怎样。2.1.3 进程的状态模型非运行非运行运行运行退出退出分派分派暂停暂停 图图2-3 两状态模型两状态模型进入进入 1.两状态模型 通常情况下,我们讨论的系统大都是单处理机系统,那么在这样的系统中,由于处理机只有一个,所以每个时刻,多个并发程序对应的进程中只能有一个进程获得处理机并运行,我们称此时该进程的状态为运行态,而其他进程就只能处于非运行状态,如图2-3所示。2.1.3 进程的状态模型 2.三状态模型 三状态模型中进程的三种基本状态如下:(1)就绪状态(Ready)。一个进程获得了除处理机之外所需的一切资源,一旦得到处理机即可运行。在系统中,将处于就绪状态的多个进程的PCB组织成一个队列,或按照某种规则排在不同的队列中,这些队列称为就绪队列。(2)运行状态(Running)。进程已经获得必要的资源及CPU,正在处理机上运行,这时的状态称为运行状态。在多处理机系统中,可以有多个进程处于运行状态。而在单处理机系统中,最多只能有一个进程处于运行状态。(3)阻塞状态又称等待状态(Blocked)。进程因某等待某种事件发生(例如I/O请求、某些原语操作等)而处于暂停执行的状态,此时即使将CPU分配给它,它也无法执行。在系统中,将处于阻塞状态的进程的PCB组织成一个队列,或根据阻塞原因不同而将进程的PCB排在不同的队列中,这些队列称为阻塞队列。2.1.3 进程的状态模型(1)就绪运行:处于就绪状态的进程被进程调度程序选中后,就分配到处理机上来运行。(2)运行就绪:处于运行状态的进程在其运行过程中,分给它的处理机时间片用完而让出处理机;在可剥夺的操作系统中,当有更高优先级的进程就绪时,操作系统调度程序可以将正运行进程从运行状态改变为就绪状态,让更高优先级进程运行。2.1.3 进程的状态模型(3)运行阻塞:当进程请求某个资源且必须等待时,例如,当进程请求操作系统服务,而操作系统得不到所需的资源,或进程请求一个输入/输出操作,操作系统已启动外设,但输入/输出尚未完成,或进程要与其它进程通讯,要接收对方还未发出的信息时,进程都会被阻塞。(4)阻塞就绪:当进程要等待的事件到来时,它从阻塞态变到就绪态。2.1.3 进程的状态模型为便于进程管理,有必要增加一种有用的状态,我们称为新建态,对应于刚刚创建的进程,操作系统还没有把它加入到就绪队列中,通常是进程控制块已经创建但还没有加载到内存中的新进程。同样,进程从系统中退出时,也增加一种有用的状态,进程被终止直到释放PCB所处的状态,我们称为退出态。3.五状态模型2.1.3 进程的状态模型 五状态模型中的状态转换:(1)空新建:创建一个程序的新进程。(2)新建就绪:当进程被创建完成,初始化后,一切就绪准备运行时转换到就绪态。(为了限制系统资源不过分分散,也可以限制从新建转入就绪状态的进程数,这样做可以使系统内存等系统资源集中给有限的进程使用。因此可能进程处于新建状态但很长时间不能转入就绪队列,等操作系统把它调入时才可以分配好所有资源,转变为就绪状态。(3)就绪运行:处于就绪状态的进程被进程调度程序选中后,就被分配到处理机上来运行。(4)运行就绪:处于运行状态的进程在其运行过程中,当分给它的处理机时间片用完时便让出处理机;在可剥夺的操作系统中,当有更高优先级的进程就绪时,操作系统调度程序可以将正在运行的进程从运行状态转变为就绪状态,让更高优先级进程运行。2.1.3 进程的状态模型(5)运行阻塞:当进程请求它必须等待的某些事件,则进入阻塞态。例如,当进程请求操作系统服务,而操作系统得不到提供服务所需的资源;或进程请求一个输入/输出操作,操作系统已启动外设,但输入/输出尚未完成,或进程要与其它进程通讯,要接收对方还未发出的信息时,进程都会被阻塞。(6)阻塞就绪:当进程要等待的事件到来时,它从阻塞变到就绪。(7)运行退出:如果当前正在运行的进程表示自己已经完成或取消,则它将被操作系统终止。(8)就绪退出:为了清楚起见,上述模型图中没有表示这种转换。在某些系统中,父进程可以在任何时刻终止一个子进程。如果一个父进程终止,与该父进程相关的所有子孙进程都将被终止。(9)阻塞退出:原因同上。2.1.3 进程的状态模型 4.七状态模型 当内存中没有进程处于就绪状态时,操作系统将其中一个阻塞进程转移到磁盘上的挂起队列中,然后调入另一进程。这时,操作系统有两种选择,它既可以接受一个新进程,又可以调入一个原先挂起的进程。显然后者可以减轻整个系统的负担。因为每个进程有两个独立的概念:是否在等待一个事件(阻塞与否)和进程是否已经被换出内存(挂起与否)。这样两两组合,得到以下四种状态:(1)活动就绪态:进程在内存中并可以被调度执行。(2)活动阻塞态:进程在内存中并等待某事件的发生。(3)静止阻塞态:进程在外存并等待某事件的发生。(4)静止就绪态:进程在外存,但是只要被调入内存就可以被调度执行。2.1.3 进程的状态模型图2-8 有挂起态的七状态模型 事件发生静止就绪活动 就绪运 行分派超时释放退出活动 阻塞等待事件静止阻塞激活挂起激活事件发生新建挂起准许准许挂起 在新的状态模型中,比较重要的新转换如下:(1)活动阻塞静止阻塞:当内存紧张而系统中又没有就绪进程时,一个阻塞态进程就会被挂起。2.1.3 进程的状态模型(2)静止阻塞静止就绪:当一个处于静止阻塞状态的进程所等待的事件发生后,它就进入静止就绪态。(3)静止就绪活动就绪:当内存中没有就绪进程时,操作系统将调入一个静止就绪态的进程继续执行。(4)活动就绪静止就绪:通常,操作系统会优先选择挂起阻塞进程而不是就绪进程。如果没有阻塞进程,那它就只能挂起就绪进程来缓解内存紧张的情况。除此之外,如果操作系统确定高优先级的阻塞进程将很快变为就绪时,它也可能会选择挂起低优先级的就绪进程。(5)新建活动就绪以及新建静止就绪:当一个进程产生后,通常会加入到活动就绪队列,但这时如果内存没有足够空间,也可能会发生新建静止就绪的转换。2.1.3 进程的状态模型(6)静止阻塞活动阻塞:如果一个进程终止并释放了一些内存空间,静止阻塞队列中有一个进程比静止就绪队列中的任何进程的优先级都要高,并且操作系统认为引起阻塞的事件会很快发生,这时会把静止阻塞态进程调入内存而不是静止就绪态进程。(7)运行静止就绪:通常,进程在运行时间片到了之后会转入活动就绪态。这时,如果位于静止阻塞队列的具有较高优先级的进程变得不再被阻塞,操作系统会抢先调度这个进程,而直接把运行进程转换到静止就绪队列中,以腾出一些内存空间。(8)各种状态退出:在典型情况下,一个进程在运行时终止,或者是因为已经完成,或者是因为出现了一些错误条件。但是,某些操作系统中,一个进程可以被创建它的进程终止,或当父进程终止时被终止。如果这样,则进程在任何状态时都可以转换到退出态。2.2 进程控制块 2.2.1 PCB的作用 2.2.2 PCB的内容 2.2.3 PCB的组织结构 2.2.1 PCB的作用 操作系统要管理进程和资源,就必须拥有每个进程和资源的描述信息及当前状态信息。所以操作系统必须建立一个结构来描述该进程的存在及状态。这个结构被称为进程控制块,它描述了进程标识、空间、运行状态、资源使用等信息。可以这样说,进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,操作系统是根据进程控制块来对并发执行的进程进行控制和管理的。PCB是进程存在的唯一标志。2.2.2 PCB的内容进程标识信息处理器状态信息进程调度信息图2-9 进程控制块进程控制信息(1)进程标识信息。包括:本进程的标识符,可分为外部标识符和内部标识符两种。其中,外部标识符也称作进程的外部名,是进程的创建者提供的进程名字,通常由字符串组成。内部标识符也称作进程的内部名,是系统为进程命名的一个代码,通常是一个整型数。父进程(也就是创建本进程的进程)的标识符。用户标识符,进程所属用户的标识符。2.2.2 PCB的内容(2)处理机状态信息。包含的内容有:通用寄存器的内容,包括数据寄存器、段寄存器等。程序计数器的值,其中存放了要访问的下一条指令的地址。程序状态字PSW,其中含状态信息,如条件码、执行方式、中断屏蔽标志等。进程的堆栈指针。(3)进程调度信息。系统为了对进程实施调度,必须参考进程控制块中记录的调度信息,包括:进程优先级。进程状态信息,描述进程当前处于何种状态。其它调度信息。2.2.2 PCB的内容(4)进程控制信息。这部分信息包括:程序代码和数据集所在的内存地址。资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配给该进程的资源清单。同步与通信信息。外存地址。由于内存紧张,将进程挂起时所在的外存地址。家族信息。链接指针。2.2.3 进程控制块的组织结构 进程控制块可以被操作系统中的多个模块读取或修改,如被调度程序、资源分配程序、中断处理程序以及监督和分析程序等读或修改。因为PCB经常被系统访问,尤其是被运行频率很高的进程及分派程序访问,故PCB应常驻内存。在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。为了能对它们加以有效的管理,应该用适当的方式将这些PCB组织起来,以减少PCB的查询时间,典型的形式有队列和表。1.PCB队列 为了方便查找,通常将处于不同状态下的各进程PCB分别组成队列,队列的队首指针放入一个系统表中。2.PCB表 系统先将所有的PCB组织在一张PCB表中,然后再根据各进程的状态建立相应的索引表,比如,就绪索引表,阻塞索引表等等。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。而把各索引表在内存的首地址记录在内存的一些专用单元中。2.3 进程控制 2.3.1 进程的创建 2.3.2 进程的终止 2.3.3 进程的阻塞与唤醒 2.3.4 进程的挂起与激活 2.3.1 进程的创建 在多道程序环境中,只有进程才能在系统中运行。因此,为使程序能运行,就必须为它创建进程。通常有4种事件会导致新进程产生:(1)在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统将为该用户建立一个进程。(2)在一个批处理环境中,为了响应一个任务的要求而产生进程。(3)当运行中获取用户程序提出的某种请求后,操作系统可以代用户程序产生进程以实现某种功能,使用户不必等待。(4)基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。2.3.1 进程的创建一旦操作系统决定创建一个进程时,便调用进程创建原语Creat(),进行如下操作:(1)给新进程一个编号并申请空白PCB。(2)为新进程分配空间。(3)初始化PCB。(4)设置合适的链接。将新进程插入就绪队列。2.3.2 进程的终止导致进程终止的事件有以下几种:(1)该进程已完成所要求的功能而正常终止。(2)由于某种错误导致非正常终止。这些错误很多,比如超时限制、内存不足、超界、保护错误、算术错误、等待超时、I/O失败、非法指令等。(3)外界干预。外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。比如,操作员或操作系统干预,祖先进程要求终止某个子孙进程,父进程终止等。2.3.2 进程的终止 无论哪一种情况导致进程被终止。进程都必须释放它所占用的各种资源和PCB结构本身,以便于资源的有效利用。具体的终止过程如下:(1)根据被终止进程的标识符,查找被终止进程的进程控制块PCB,从中读出该进程的状态。(2)若该进程的状态是“执行”,应立即终止该进程的执行,并置调度标志为TRUE。(3)若该进程还有子孙进程,还应将所有子孙进程一同终止,以防它们成为不可控的进程。(4)回收PCB(资源清单)中登记的全部资源。(5)将进程的PCB从所在队列摘下来,等待其它程序来搜集信息。(6)如果调度标志=TRUE,启动进程调度程序。2.3.3 进程的阻塞与唤醒 引起进程阻塞和唤醒的事件有:(1)请求系统服务:进程请求某服务,若不能立即获得服务,通常要使该进程阻塞;(2)启动某种操作:如果进程必须在某种操作完成后才能继续执行,那么在这之前就必须使该进程阻塞;(3)新数据尚未到达:一进程需要先获得另一进程提供的数据才能运行,那么在新数据尚未到达前应该将其阻塞;(4)无新工作可做:某些系统进程工作时占用CPU,无事可做时,则调用阻塞原语将自己阻塞。2.3.3 进程的阻塞与唤醒 阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断CPU和保存该进程CPU现场。然后将被阻塞进程置“阻塞”状态后插入等待队列中,再转进程调度程序选择新的就绪进程投人运行。这里,转进程调度程序是很重要的,否则,CPU将会出现空转而浪费资源。当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。唤醒原语wakeup()首先将被唤醒进程从相应的等待队列中摘下,将被唤醒进程置为就绪状态之后,送入就绪队列。在把被唤醒进程送入就绪队列之后,唤醒原语既可以返回原调用程序,也可以转向进程调度,以便让调度程序有机会选择一个合适的进程执行。2.3.4 进程的挂起与激活 当出现了引起进程挂起的事件时,例如,用户进程请求将自己挂起,或父进程请求将自己的某个子进程挂起,系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程是:首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。为了方便用户或父进程考查该进程的运行情况而把该进程的PCB复制到某指定的内存区域。最后,若被挂起的进程正在执行,则转向调度程序重新调度。2.3.4 进程的挂起与激活 当发生激活进程的事件时,例如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于挂起状态的进程换入内存。这时,系统将利用激活原语active()将指定进程激活。激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。2.4 线程 2.4.1 线程的引入及基本概念 2.4.2 线程的管理 2.4.3 多线程的实现2.4.1 线程的引入及基本概念 1线程的引入 进程引入的目的是为了程序并发执行,以提高资源的利用率及增加系统的吞吐量。进程有两个基本属性:(1)资源分配的基本单位。(2)处理机调度的基本单位。上述两个属性是程序得以并发执行的基础。为了使进程并发执行,操作系统还需进行进程控制:创建进程、终止进程、进程切换等。所有这些,操作系统必须为之付出较多的时间开销。所以,系统不宜设置过多进程,进程切换的频率也不能太高。但这限制了并发程度的进一步提高。那么如何既能提高程序的并发程度,又能减少操作系统的开销呢?考虑能否将进程的两个基本属性分离开来?为此,操作系统设计者引入了线程,让线程去完成第二个属性的任务,而进程只完成第一属性的任务。2.4.1 线程的引入及基本概念 2线程的基本概念 线程是进程内的一个相对独立的、可独立调度和指派的执行单元。有些操作系统中,将线程叫轻型进程(Light-weight Process);而把传统的进程叫重型进程(Heavy-weight Process)。根据线程概念可知,线程具有以下性质:(1)线程是进程内的一个相对独立的可执行单元。(2)线程是操作系统中的基本调度单元。(3)一个进程中至少应有一个线程。(4)线程并不拥有资源,而是共享和使用包含它的进程所拥有的全部资源。(5)线程在需要时也可创建其他线程。2.4.2 线程的管理 1线程控制块 任一线程有一个独立的栈和一个线程控制块(Thread Control Block,TCB),线程使用线程控制块来描述其数据结构。TCB的内容包括线程标识、优先数,及线程状态、寄存器值、堆栈指针等信息,如下所示:(1)线程状态。用于保存线程的当前状态,例如执行、阻塞、就绪。(2)寄存器值。用于保存线程寄存器的上下文。(3)堆栈指针。用于保存线程的栈指针。2.4.2 线程的管理 2线程的创建和终止 线程的状态转换是通过相关的控制原语来实现的。常用的原语有:创建线程、终止线程、阻塞线程等。在多线程操作系统环境下,应用程序在启动时,通常仅有一个线程在执行,该线程被人们称为“初始化线程”。它可根据需要再去创建若干个线程。在创建新线程时,需要利用一个线程创建函数(或系统调用),并提供相应的参数,如指向线程主程序的入口指针、堆栈的大小,以及用于调度的优先级等。在线程创建函数执行完后,将返回一个线程标识符供以后使用。终止线程的方式有两种:一种是在线程完成了自己的工作后自愿退出;另一种是线程在运行中出现错误或由于某种原因而被其它线程强行终止。2.4.3 多线程的实现 多线程机制是指操作系统支持在一个进程内执行多个线程的能力。线程虽在许多系统中实现,但实现的方式并不完全相同。有的系统实现的是用户级线程,有一些系统实现的是内核级线程,还有的系统实现了这两种线程,即混合级线程。1用户级线程 用户级线程(User-Level Threads,ULT)由用户应用程序建立,仅存在于用户空间中。对于这种线程的创建、撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现。对于用户级线程的切换,通常是发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。由于切换的规则远比进程调度和切换的规则简单,因而使线程的切换速度特别快。可见,操作系统内核并不知道有用户级线程的存在,这种线程是与内核无关的。MS-DOS和UNIX属于此类。2.4.3 多线程的实现 用户级线程有很多优点,具体如下:(1)所有线程管理的数据结构都在一个进程的用户地址空间,所以线程的切换无需陷入内核,故切换开销小,切换速度快。(2)线程库可提供多种调度算法供应用程序选择,调度灵活。不会扰乱底层的操作系统调度器。(3)可以在任何操作系统中运行。不需要对内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用级软件包。同时,它也有两个明显的缺点:(1)用户级线程因执行一个系统调用而阻塞时会导致整个进程中所有线程都阻塞。(2)在多处理机系统中,同一进程中的多个线程无法调度到多个CPU上执行。2.4.3 多线程的实现2内核级线程 内核级线程(Kernel-Level Threads,KLT),又称内核支持线程或轻量级进程,是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消和切换等,是依靠内核实现的。内核不仅负责进程间线程的调度,还负责同一进程的不同线程间的调度。此外,在内核空间还为每一个内核级线程设置了一个线程控制块,保存在核心空间,内核是根据该控制块而感知某线程的存在的,并对其加以控制。Windows NT就属于此类。2.4.3 多线程的实现 内核级线程优点:(1)可以把同一进程的多个线程调度到不同CPU中。(2)进程中的一个线程阻塞,不会阻塞同一进程的其他线程。同时,它也有其无法克服的缺点:即使CPU在同一进程的多个线程之间切换,也要陷入内核,所以切换的速度和效率不如用户级线程。2.4.3 多线程的实现3混合级线程 由于纯KLT和纯ULT各有自己的优点和缺点,因此,如果将两种方法结合起来,则可得到两者的全部优点。在组合方法中,线程创建完全在用户空间中完成,线程的调度和同步也在应用程序中进行。一个应用程序中的多个用户级线程被映射到一些(小于或等于用户级线程的数目)内核级线程上。在该方法中,同一个应用程序中的多个线程可以在多个CPU上并行地运行,某个会引起阻塞的系统调用不需要阻塞整个进程。小结本章引入了描述系统动态行为的进程概念,进程的动态性由运行态、就绪态、阻塞态三种基本状态来说明,状态之间可以相互转化。一个就绪态进程是指当前没有执行但已做好了执行准备的进程,只要操作系统调度到它就立即可以执行;运行态进程是指当前正在被处理机执行的进程,在多处理机系统中,会有多个进程处于这种状态;阻塞态进程正在等待某一事件的完成,如一次I/O操作。操作系统的基本功能是创建、管理和终止进程。当进程处于活跃状态时,操作系统必须设法使每个进程都分配到处理机执行时间,并协调它们的活动、管理有冲突的请求、给进程分配系统资源。小结进程存在的实体表现为进程控制块以及对应的程序和数据。进程控制块含有操作系统管理进程所需要的所有信息,包括它的当前状态、分配给它的资源、优先级和其他相关数据。一个系统中所有的进程控制块可以用表或者队列的形式来组织。某些操作系统区分进程和线程的概念,前者涉及到资源的所有权,后者涉及到程序的执行,这种方法可以使性能提高、编码方便。在多线程系统中,可以在一个进程内定义多个并发线程。这可以通过使用用户级线程或内核级线程完成。用户级线程对操作系统是未知的,它们由一个在进程的用户空间中运行的线程库创建并管理。内核级线程是指一个进程中由内核维护的线程。由于内核认识它们,因而同一个进程中的多个线程可以在多个处理机上并行执行,一个线程的阻塞不会阻塞整个进程。

    注意事项

    本文((2)--第2章 进程管理操作系统原理.ppt)为本站会员(奉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开