资源描述
第2章 处理机管理2.1 作业2.2 进程2.3 线程2.4 小结1 1.l l 提高处理机(提高处理机(CPUCPU)的使用率,使它尽可能处于工的使用率,使它尽可能处于工作状态,是操作系统管理功能的主要目标之一。作状态,是操作系统管理功能的主要目标之一。l l 在在LinuxLinux系统中,提高处理机使用率的技术措施主系统中,提高处理机使用率的技术措施主要是多道和分时,处理机在进程之间切换,按照一定要是多道和分时,处理机在进程之间切换,按照一定的规则轮流执行每个进程。对于单个处理机的系统,的规则轮流执行每个进程。对于单个处理机的系统,这些进程宏观上看似并行执行,而微观上来看仍然是这些进程宏观上看似并行执行,而微观上来看仍然是串行执行的,这种执行方式被称为串行执行的,这种执行方式被称为并发执行并发执行。操作系。操作系统通过并发控制机制,对处理机进行分配、调度,在统通过并发控制机制,对处理机进行分配、调度,在保证每个进程都得到公平合理执行的同时,使系统中保证每个进程都得到公平合理执行的同时,使系统中的各种资源得到充分的使用。的各种资源得到充分的使用。l l 本章主要围绕处理机管理展开,着重介绍进程的本章主要围绕处理机管理展开,着重介绍进程的概念,同时也包括相关的两个基本概念:概念,同时也包括相关的两个基本概念:作业和线程。作业和线程。2 2.2.1 作业l l 作业是用户向计算机系统提交一项工作的基本单位,作业是用户向计算机系统提交一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做是用户在一次事务处理或计算过程中要求计算机所做工作的总和。工作的总和。l l 作业和程序是两个相互联系而又不同的概念。如果作业和程序是两个相互联系而又不同的概念。如果一次业务处理可以由某一个程序完成,就是说这个业一次业务处理可以由某一个程序完成,就是说这个业务处理只要提交这一个程序就够了,这种情况下,这务处理只要提交这一个程序就够了,这种情况下,这个程序就是一个作业。通常,完成一次业务需要由多个程序就是一个作业。通常,完成一次业务需要由多个程序协同完成,这时,多个程序、这些程序需要的个程序协同完成,这时,多个程序、这些程序需要的数据以及必要的作业说明一起构成一个作业。系统通数据以及必要的作业说明一起构成一个作业。系统通过作业说明书或者作业控制语句过作业说明书或者作业控制语句(JCL)(JCL)控制程序和相控制程序和相应的数据执行,完成整个业务处理。应的数据执行,完成整个业务处理。3 3.l 按照对作业的处理方式,可以分为联机、批处理等作业。l Linux系统中的shell提供了操作系统和用户之间的联机命令接口。l 在多用户系统中,多个用户、不同类型的作业可能同时请求执行,控制和管理这些作业,协调它们之间的关系,就是作业调度,作业调度是处理机调度的一部分。4 4.作业调度 作业调度算法的评价因素作业作业吞吐量吞吐量:运行尽可能多的作业;:运行尽可能多的作业;充分充分利用资源利用资源:CPUCPU忙、忙、I/OI/O设备忙;设备忙;对各作业对各作业公平公平、合理合理,使用户,使用户满意满意:执行时:执行时间长短、等待时间等;间长短、等待时间等;检查系统是否满足作业的资源要求,并一定算法选取作业(从输入井的后备作业队列中选择适当的作业,为它分配内存等资源并将其调入内存投入运行)。作业调度也称为宏观调度(高级调度)。5 5.作业调度算法作业调度算法先来先服务先来先服务先来先服务先来先服务(FCFS:First Come First Serve FCFS:First Come First Serve FCFS:First Come First Serve FCFS:First Come First Serve):):):):按照作业进入系统的按照作业进入系统的按照作业进入系统的按照作业进入系统的先后次序先后次序先后次序先后次序进行调度,先进入系进行调度,先进入系进行调度,先进入系进行调度,先进入系统者先调度;即启动等待时间最长的作业。统者先调度;即启动等待时间最长的作业。统者先调度;即启动等待时间最长的作业。统者先调度;即启动等待时间最长的作业。优点:实现优点:实现简单简单、公平公平 缺点:没考虑资源利用率和作业的特殊性缺点:没考虑资源利用率和作业的特殊性短作业优先短作业优先短作业优先短作业优先(SJF:Shortest Job First SJF:Shortest Job First SJF:Shortest Job First SJF:Shortest Job First):):):):以要以要以要以要求求求求运行时间长短运行时间长短运行时间长短运行时间长短进行调度,即启动要求运行时间最进行调度,即启动要求运行时间最进行调度,即启动要求运行时间最进行调度,即启动要求运行时间最短的作业。短的作业。短的作业。短的作业。优点:易于实现,强调了资源的充分利用,保证了系统优点:易于实现,强调了资源的充分利用,保证了系统 的最大吞吐量(单位时间里处理作业的个数)。的最大吞吐量(单位时间里处理作业的个数)。缺点:不公平,会造成长作业长期等待。缺点:不公平,会造成长作业长期等待。结论:假设系统中所有作业结论:假设系统中所有作业同时到达同时到达,可以证明采用,可以证明采用SJFSJF能得到最短的作业平均周转时间。能得到最短的作业平均周转时间。6 6.高响应比优先(高响应比优先(高响应比优先(高响应比优先(HRF:HRF:Highest Response Ratio Next ):):):):响应比最高的作业优先启动。响应比最高的作业优先启动。响应比响应比=周转时间周转时间 /估计运行时间估计运行时间 =(等待时间(等待时间+估计运行时间)估计运行时间)/估计运行时间估计运行时间 =1+=1+等待时间等待时间 /估计运行时间估计运行时间优点优点:公平,吞吐率大公平,吞吐率大缺点缺点:增加了计算,增加了开销增加了计算,增加了开销高优先级优先(高优先级优先(高优先级优先(高优先级优先(HPFHPF:Highest Priority FirstHighest Priority First):由用户指定作业优先级,优先级高的作业启动。由用户指定作业优先级,优先级高的作业启动。7 7.几个调度性能指标:作业(平均)周转时间、作业(平均)带权周转时间、1、作业周转时间 如果作业i提交给系统的时刻是ts,完成时刻是tf,该作业的周转时间ti为:ti=tf-ts 实际上,它是作业在系统里的等待时间与运行时间之和。作业调度性能衡量指标8 8.2、平均作业周转时间 为为了了提提高高系系统统的的性性能能,要要让让若若干干个个用用户户的的平平均均作作业周转时间和平均带权周转时间最小。业周转时间和平均带权周转时间最小。平均作业周转时间平均作业周转时间 T=(t T=(ti i)n n3、带权周转时间 如如果果作作业业i i的的周周转转时时间间为为t ti i,所所需需运运行行时时间间为为t tk k,则称则称 w wi i=t=ti i t tk k 为该作业的带权周转时间。为该作业的带权周转时间。w wi i114、平均作业带权周转时间 t ti i是是等等待待时时间间与与运运行行时时间间之之和和,故故带带权权周周转转时时间间总大于总大于1 1。平均作业带权周转时间平均作业带权周转时间W=(wW=(wi i)n n9 9.作业调度算法应用例子 假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间,应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间。1010.1111.先来先服务调度算法计算结果1212.最短作业优先作业算法计算结果1313.2.2 进程l l 计算机内存中同时存放多个相互独立的已经开始运计算机内存中同时存放多个相互独立的已经开始运行的程序实体,大家按照某种规则轮流使用处理器,行的程序实体,大家按照某种规则轮流使用处理器,这是现代多道操作系统实现资源共享,提高系统资源这是现代多道操作系统实现资源共享,提高系统资源利用率的主要方式。描述这些程序实体的概念就是利用率的主要方式。描述这些程序实体的概念就是进进程程。l l 在多道情况下,每个进程独立地拥有各种必要的资在多道情况下,每个进程独立地拥有各种必要的资源,占有处理机,独立地运行。在多道系统中,同时源,占有处理机,独立地运行。在多道系统中,同时存在多个进程,所以当某个进程进入等待状态时,操存在多个进程,所以当某个进程进入等待状态时,操作系统将把处理机控制权拿过来并交给其他可以运行作系统将把处理机控制权拿过来并交给其他可以运行的进程。进程之间存在着相互制约、相互依赖的的进程。进程之间存在着相互制约、相互依赖的约束约束关系。关系。1414.l l 一种最糟糕的情况是所有进程都拥有部分资源,同时在等待其他进程拥有的资源,这样,大家都无法运行,进入一种永久等待的状态,这种情况称为死锁,死锁是对系统资源极大的浪费,必须设法避免。l l 本节着重讨论现代多道操作系统中的核心概念进程,这是理解操作系统工作原理的基础和关键。首先介绍单个进程的状态、状态转换的条件和控制原语、进程在系统中的静态描述等,接着介绍多个进程之间的约束关系,由此引出进程间通信的概念,通信是协调、解决进程间约束关系的惟一手段,这种约束关系处理不当造成的最严重的后果就是死锁。1515.2.2.1 进程的概念l l 进程进程(process)(process)的概念最早出现在的概念最早出现在6060年代中期,用于年代中期,用于多道系统,在多道系统,在LinuxLinux系统中,进程也称为任务(系统中,进程也称为任务(tasktask)。)。简单地讲,进程就是正在运行的程序,更为严谨的表简单地讲,进程就是正在运行的程序,更为严谨的表达是,进程是一个具有一定独立功能的程序关于某个达是,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。数据集合的一次运行活动。l l 要理解进程,必须了解它的基本性质。要理解进程,必须了解它的基本性质。l l 进程是操作系统分配资源和进行调度的独立单位,进程是操作系统分配资源和进行调度的独立单位,具有独立性;进程具有独立性;进程=PCB+PCB+程序程序+数据数据。同时,具有动。同时,具有动态性。多道系统中同时存在多个进程,这些进程拥有态性。多道系统中同时存在多个进程,这些进程拥有各自的资源,各自独立地执行,对于单处理机系统,各自的资源,各自独立地执行,对于单处理机系统,进程宏观上同时运行而微观上是依次执行,这种情况进程宏观上同时运行而微观上是依次执行,这种情况称为并发执行。称为并发执行。1616.1.进程和程序l l 进程和程序是一对相互联系的概念。程序是指令的进程和程序是一对相互联系的概念。程序是指令的有序集合,是一个静态的概念,描述完成某个功能的有序集合,是一个静态的概念,描述完成某个功能的一个具体操作过程,而进程是程序针对某一组数据的一个具体操作过程,而进程是程序针对某一组数据的一次执行过程,更强调动态特征。一个完整的进程,一次执行过程,更强调动态特征。一个完整的进程,包括程序、执行程序所需要的数据,同时还必须包括包括程序、执行程序所需要的数据,同时还必须包括记录进程状态的数据资料。记录进程状态的数据资料。l l 在多道分时操作系统中,按照时间片轮流在各个进在多道分时操作系统中,按照时间片轮流在各个进程间切换。对于单处理器系统,每一个时刻只能有一程间切换。对于单处理器系统,每一个时刻只能有一个进程在执行,当分配给该进程的时间片用完之后,个进程在执行,当分配给该进程的时间片用完之后,不管该进程运行到什么程度,都必须立即停止,然后不管该进程运行到什么程度,都必须立即停止,然后让出处理器资源,下一个进程进入执行状态。让出处理器资源,下一个进程进入执行状态。1717.l l 让出处理器的进程必须记录好正在运行的状态,包括寄存器、堆栈等各种信息,这些信息保证当处理器下次切换到这个进程的时候,进程能够正确地从上次执行到的位置继续往下执行。l l 一个程序在处理相同或不同的操作数据时可以同时对应于多个进程。一个进程也可以包含多个程序,某个程序在运行过程中,可能同时会调用到多个其他程序,这些具有调用关系的多个程序共同构成一次完整的运行活动,即一个完整的进程。1818.l l 举一个直观的例子。我们在举一个直观的例子。我们在LinuxLinux系统下使用编辑系统下使用编辑器器vi vi进行编辑,同时打开多个窗口,编辑多个不同名进行编辑,同时打开多个窗口,编辑多个不同名称的文件,称的文件,vi vi编辑器是一个可执行程序,不同的文件编辑器是一个可执行程序,不同的文件就是不同的操作数据,而对应于这些文件同时打开的就是不同的操作数据,而对应于这些文件同时打开的每一个编辑窗口就对应着一个进程,每一个进程都处每一个编辑窗口就对应着一个进程,每一个进程都处于不同的状态。于不同的状态。l l 如果说程序是提供计算机操作的一组工作流程的话,如果说程序是提供计算机操作的一组工作流程的话,进程就是具体的工作过程,按照同样的工作流程,针进程就是具体的工作过程,按照同样的工作流程,针对不同的原料,可以同时开始多个工作过程,得到多对不同的原料,可以同时开始多个工作过程,得到多种不同的成品。这种工作流程和工作过程的关系就可种不同的成品。这种工作流程和工作过程的关系就可以类比为程序和进程的关系。以类比为程序和进程的关系。1919.进程与程序的区别n n进程是动态的,程序是静态的进程是动态的,程序是静态的:程序是有序代码的集合;:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件,是静态的和可以复制的。而程序通常对应着文件,是静态的和可以复制的。n n进程与程序的组成不同:进程的组成包括程序、数据和进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。进程控制块(即进程状态信息)。n n进程能真实描述并发执行,程序不能:进程是独立调度进程能真实描述并发执行,程序不能:进程是独立调度并能和其他进程并行执行的单位。并能和其他进程并行执行的单位。n n进程可以创建其它进程,而程序不能;进程可以创建其它进程,而程序不能;n n进程是暂时的,程序的永久的:进程是一个状态变化的进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。过程,程序可长久保存。n n进程与程序的对应关系:通过多次执行,一个程序可对进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。应多个进程;通过调用关系,一个进程可包括多个程序。2020.2.进程和作业l l 作业是用户向计算机系统提交一项工作的基本单位,作业是用户向计算机系统提交一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做是用户在一次事务处理或计算过程中要求计算机所做工作的总和。工作的总和。l l 进程是一个具有一定独立功能的程序关于某个数据进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统分配资源和进行调集合的一次运行活动,是操作系统分配资源和进行调度的基本单位。度的基本单位。l l 作业是描述用户向系统提交工作任务的实体单位,作业是描述用户向系统提交工作任务的实体单位,而进程是系统完成工作任务时程序执行的实体单位。而进程是系统完成工作任务时程序执行的实体单位。从这个角度讲,他们处于不同的层次,作业描述用户从这个角度讲,他们处于不同的层次,作业描述用户和操作系统之间的任务委托关系,而进程描述操作系和操作系统之间的任务委托关系,而进程描述操作系统内部任务的具体执行过程。统内部任务的具体执行过程。2121.l 对于批处理系统,通常,作业放在外存中专门的作业队列中等待进入内存执行,要经过一次宏观调度,由外存进入内存,以进程的形式运行。而对于UNIX/Linux这样的分时系统,没有宏观调度,作业不经过调度,直接进入内存,以进程的形式开始运行。任何一个进程,都存在于内存中,并且是已经开始运行的动态实体。2222.2.2.2 进程描述进程是一个动态的概念,描述程序的一次运行活动。进程是一个动态的概念,描述程序的一次运行活动。它存在于系统的内存中,是操作系统可感知、可控制它存在于系统的内存中,是操作系统可感知、可控制的动态实体,是系统分配各种资源、进行调度的基本的动态实体,是系统分配各种资源、进行调度的基本单位。单位。1.进程控制块l l 现在我们来讨论进程在内存中的静态存在方式。在现在我们来讨论进程在内存中的静态存在方式。在多道系统中,处理机在多个进程之间来回切换,每个多道系统中,处理机在多个进程之间来回切换,每个进程都会在暂停、运行这两种状态之间来回转换。当进程都会在暂停、运行这两种状态之间来回转换。当一个进程在处理机切换过来重新进入运行状态时,它一个进程在处理机切换过来重新进入运行状态时,它必须严格精确地接着上次运行的位置继续进行,进程必须严格精确地接着上次运行的位置继续进行,进程的静态描述可以保持切换现场,确保准确衔接,保证的静态描述可以保持切换现场,确保准确衔接,保证进程调度的实现,顺利完成程序所规定任务。进程调度的实现,顺利完成程序所规定任务。2323.l l 进程切换现场称为进程切换现场称为进程上下文进程上下文(context)(context),包含了一包含了一个进程所具有的全部信息,一般包括:个进程所具有的全部信息,一般包括:进程控制块进程控制块(Process Control BlockProcess Control Block,PCBPCB)、)、有关程序段和相有关程序段和相应的数据集,具体组成见图应的数据集,具体组成见图2.12.1。程序段是某个进程。程序段是某个进程执行的相关指令集合,和静态的程序段有明确的对应执行的相关指令集合,和静态的程序段有明确的对应关系,相应数据集是这个程序段正在操作的那部分数关系,相应数据集是这个程序段正在操作的那部分数据,据,PCBPCB是记录进程各种状态的数据体,是记录进程各种状态的数据体,PCBPCB是操是操作系统管理感知、控制进程的数据实体,通过它,就作系统管理感知、控制进程的数据实体,通过它,就可以找到进程的程序段和数据集,系统正是通过可以找到进程的程序段和数据集,系统正是通过PCBPCB来控制进程的。一般来讲,来控制进程的。一般来讲,PCBPCB记录着进程的所有资记录着进程的所有资料,是全部或部分常驻内存的,料,是全部或部分常驻内存的,PCBPCB记录着程序段和记录着程序段和数据集的地址指针,通过这些指针,就可以得到具体数据集的地址指针,通过这些指针,就可以得到具体的指令和数据。的指令和数据。2424.PCBPCB记录了进程的全部控制信息,一般较庞大而复杂,记录了进程的全部控制信息,一般较庞大而复杂,它可以按照功能大概分成它可以按照功能大概分成四个组成部分四个组成部分:进程描述信:进程描述信息、进程控制信息、进程相关的资源信息和息、进程控制信息、进程相关的资源信息和CPUCPU现现场保护结构(如图场保护结构(如图2.12.1)。)。图图2.1 2.1 进程描述数据关系示意图(进程上下文)进程描述数据关系示意图(进程上下文)2525.2.Linux的PCBLinux系统的进程控制块PCB用一个称为task-struct的结构体来描述。(1)(1)进程描述信息进程描述信息通过进程描述信息,通过进程描述信息,LinuxLinux系统可以惟一地确定某一系统可以惟一地确定某一个进程的基本情况,可以了解该进程所属的用户及用个进程的基本情况,可以了解该进程所属的用户及用户组等信息,同时还能确定这个进程与所有其他进程户组等信息,同时还能确定这个进程与所有其他进程之间的关系。这些描述信息包括:进程号、用户和组之间的关系。这些描述信息包括:进程号、用户和组标识以及描述进程家族关系的连接信息。标识以及描述进程家族关系的连接信息。2626.进程号(进程号(pidpid,process identifier process identifier)LinuxLinux系统为每一个进程分配一个标识号,通过这个系统为每一个进程分配一个标识号,通过这个标识号识别、控制、调度这个进程,别的进程也通过标识号识别、控制、调度这个进程,别的进程也通过这个标识号来识别这个进程并与之通信,用户也可以这个标识号来识别这个进程并与之通信,用户也可以使用操作命令或系统调用通过标识号来控制该进程。使用操作命令或系统调用通过标识号来控制该进程。用户和组标识(用户和组标识(user and group identifieruser and group identifier)LinuxLinux系统中有四类不同的用户和组标识,主要用来系统中有四类不同的用户和组标识,主要用来控制进程对系统文件的访问权限,实现系统资源的安控制进程对系统文件的访问权限,实现系统资源的安全访问。全访问。Linux Linux使用组将文件和目录的访问特权授予一组用户,使用组将文件和目录的访问特权授予一组用户,一个进程可以同时属于多个组,这些组都被放在进程一个进程可以同时属于多个组,这些组都被放在进程的的task-structtask-struct中的中的groupgroup数组中。数组中。2727.连接信息(连接信息(LinksLinks)LinuxLinux系统中的进程之间形成树状的家族关系,连接系统中的进程之间形成树状的家族关系,连接信息记录某个进程的父进程、兄弟进程(具有相同父信息记录某个进程的父进程、兄弟进程(具有相同父进程的进程)以及子进程的信息,描述一个进程在整进程的进程)以及子进程的信息,描述一个进程在整个家族系统中的具体位置。个家族系统中的具体位置。(2)(2)进程控制信息进程控制信息进程控制信息记录了进程的当前状态、调度信息、记进程控制信息记录了进程的当前状态、调度信息、记时和时间信息以及进程间通信信息,是系统确定进程时和时间信息以及进程间通信信息,是系统确定进程的状态、了解进程之间的关系、进行进程调度的主要的状态、了解进程之间的关系、进行进程调度的主要依据。依据。进程当前状态进程当前状态进程的生命周期中,总是不停地在各种状态之间转换,进程的生命周期中,总是不停地在各种状态之间转换,有关进程的状态及转换规则,在下一小节讨论。有关进程的状态及转换规则,在下一小节讨论。2828.调度信息调度信息系统的调度程序利用这部分信息决定哪一个进程应该系统的调度程序利用这部分信息决定哪一个进程应该运行,包括优先级、实时优先级、计数器和调度策略。运行,包括优先级、实时优先级、计数器和调度策略。记时信息记时信息包括时间和定时器,给出进程占有和利用包括时间和定时器,给出进程占有和利用CPUCPU的情的情况,是调度的依据,也是进行统计、分析以及记费的况,是调度的依据,也是进行统计、分析以及记费的依据。依据。通信信息通信信息多个进程之间通信的各种信息也记录在多个进程之间通信的各种信息也记录在PCBPCB中。中。LinuxLinux支持典型的支持典型的UNIXUNIX进程间通信机制进程间通信机制信号、管信号、管道,也支持道,也支持System System 通信机制通信机制共享内存、信号共享内存、信号量和消息队列。量和消息队列。2929.(3)(3)进程资源信息进程资源信息LinuxLinux的的PCBPCB中包含大量的系统资源信息,这些信息中包含大量的系统资源信息,这些信息记录了与该进程有关的存储器的各种地址和资料、文记录了与该进程有关的存储器的各种地址和资料、文件系统以及打开文件的信息等等。通过这些资料,进件系统以及打开文件的信息等等。通过这些资料,进程就可以得到运行需要的相关程序段以及必要的数据。程就可以得到运行需要的相关程序段以及必要的数据。(4)CPU(4)CPU现场信息现场信息进程的静态描述必须保证一个进程在获得处理机并重进程的静态描述必须保证一个进程在获得处理机并重新进入运行状态时,能够精确地接着上次运行的位置新进入运行状态时,能够精确地接着上次运行的位置继续进行。相关程序段和数据集以及处理机现场(或继续进行。相关程序段和数据集以及处理机现场(或处理机状态)都必须保存。处理机(处理机状态)都必须保存。处理机(CPUCPU)现场信)现场信息一般包括处理机的内部寄存器和堆栈等基本数据。息一般包括处理机的内部寄存器和堆栈等基本数据。3030.task-struct是Linux系统的进程控制块(PCB),通过对PCB的操作,系统为进程分配资源并进行调度,最终完成进程的创建和撤销。系统利用PCB中的描述信息来标识一个进程,根据PCB中的调度信息决定该进程是否应该运行。如果这个进程要进入运行,首先根据其中的CPU现场信息来恢复运行现场,然后根据资源信息获取对应的程序段和数据集,接着上次的位置开始执行,同时通过PCB中的通信信息和其他进程协同工作。3131.处理机调度的层次处理机调度的层次处理机调度的基本概念:处理机调度的基本概念:处理机调度的基本概念:处理机调度的基本概念:在多道程环境下,进程数目往往多于处理机数在多道程环境下,进程数目往往多于处理机数在多道程环境下,进程数目往往多于处理机数在多道程环境下,进程数目往往多于处理机数目,致使它们争用处理机。这就要求系统能按某目,致使它们争用处理机。这就要求系统能按某目,致使它们争用处理机。这就要求系统能按某目,致使它们争用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一种算法,动态地把处理机分配给就绪队列中的一种算法,动态地把处理机分配给就绪队列中的一种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。个进程,使之执行。个进程,使之执行。个进程,使之执行。分配处理机的任务分配处理机的任务分配处理机的任务分配处理机的任务是由进程是由进程是由进程是由进程调度程序完成的。它是操作系统设计的中心问题调度程序完成的。它是操作系统设计的中心问题调度程序完成的。它是操作系统设计的中心问题调度程序完成的。它是操作系统设计的中心问题之一。之一。之一。之一。3232.进程调度要解决的问题进程调度要解决的问题WHAT:按什么原则分配按什么原则分配CPU 进程调度算法进程调度算法WHEN:何时分配何时分配CPU 进程调度的时机进程调度的时机HOW:如何分配如何分配CPU CPU调度过程(进程的上下文切调度过程(进程的上下文切 换)换)3333.处理机调度的层次处理机调度的层次v处理机是计算机系统中的重要资源处理机是计算机系统中的重要资源v处理机调度算法对整个计算机系统的综处理机调度算法对整个计算机系统的综合性能指标有重要影响合性能指标有重要影响v可把处理机调度分成三个层次:可把处理机调度分成三个层次:高级调度高级调度中级调度中级调度低级调度低级调度3434.高级调度:又称作业调度。高级调度:又称作业调度。高级调度:又称作业调度。高级调度:又称作业调度。其主要功能是根据一定的算法,从其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输人、输出进程),最后把它们的程序和数据调人内存,(如输人、输出进程),最后把它们的程序和数据调人内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。工作。低级调度:又称进程调度。低级调度:又称进程调度。低级调度:又称进程调度。低级调度:又称进程调度。其主要功能是根据一定的算法将其主要功能是根据一定的算法将CPUCPU分派给就绪队列中的一个进程。执行低级调度功能的程序分派给就绪队列中的一个进程。执行低级调度功能的程序称做进程调度程序,由它实现称做进程调度程序,由它实现CPUCPU在进程间的切换。进程调度在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。的运行频率很高,在分时系统中往往几十毫秒就要运行一次。进程调度是操作系统中最基本的一种调度。在一般类型的操作进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统的计能。系统的计能。中级调度:又称交换调度。中级调度:又称交换调度。中级调度:又称交换调度。中级调度:又称交换调度。为了使内存中同时存放的进程数目为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。存储技术的系统或分时系统中,往往增加中级调度这一级。3535.进程调度方式进程调度方式非剥夺方式非剥夺方式剥夺方式剥夺方式当一个进程正在运行时,系统可以基于某种原当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。先原则、时间片原则。调度程序一旦把处理机分配给某进程后便让它调度程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。阻塞时,才把处理机分配给另一个进程。3636.进程调度模型进程调度模型 1)1)只有进程调度的调度队列模型只有进程调度的调度队列模型仅具有进程调度的调度队列模型仅具有进程调度的调度队列模型3737.2)2)具有高低级调度的调度队列模型具有高低级调度的调度队列模型具有高、低两级调度的调度队列模型具有高、低两级调度的调度队列模型3838.3)3)具有三级调度的调度队列模型具有三级调度时的调度队列模型具有三级调度时的调度队列模型3939.
展开阅读全文