进程调度及进程管理处理机管理.ppt
《进程调度及进程管理处理机管理.ppt》由会员分享,可在线阅读,更多相关《进程调度及进程管理处理机管理.ppt(59页珍藏版)》请在三一办公上搜索。
1、第05讲 进程调度及进程管理,5.1 作业5.2 进程5.3 线程5.4 小结5.5 习题,提高处理机(CPU)的使用率,使它尽可能处于工作状态,是操作系统管理功能的主要目标之一。在Linux系统中,提高处理机使用率的技术措施主要是多道和分时,处理机在进程之间切换,按照一定的规则轮流执行每个进程。对于单个处理机的系统,这些进程宏观上看似并行执行,而微观上来看仍然是串行执行的,这种执行方式被称为并发执行。操作系统通过并发控制机制,对处理机进行分配、调度,在保证每个进程都得到公平合理执行的同时,使系统中的各种资源得到充分的使用。本讲主要围绕处理机管理展开,着重介绍进程的概念,同时也包括相关的两个基
2、本概念:作业和线程。,作业是用户向计算机系统提交一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做工作的总和。作业和程序是两个相互联系而又不同的概念。如果一次业务处理可以由某一个程序完成,就是说这个业务处理只要提交这一个程序就够了,这种情况下,这个程序就是一个作业。通常,完成一次业务需要由多个程序协同完成,这时,多个程序、这些程序需要的数据以及必要的作业说明一起构成一个作业。系统通过作业说明书(JCB)或者作业控制语句(JCL)控制程序和相应的数据执行,完成整个业务处理。,5.1 作业,按照对作业的处理方式,可以分为联机、批处理等作业。Linux系统中的shell提供了操作系统
3、和用户之间的联机命令接口。Linux的shell同时提供了程序级接口。用户通过提交一个命令或一个命令序列以批处理方式执行特定的操作。在Linux分时批处理系统中,也可以根据对作业执行时的响应特征分为前台作业和后台作业。在多用户系统中,多个用户、不同类型的作业可能同时请求执行,控制和管理这些作业,协调它们之间的关系,就是作业调度,作业调度是处理机调度的一部分。,5.1 作业,计算机内存中同时存放多个相互独立的已经开始运行的程序实体,大家按照某种规则轮流使用处理器,这是现代多道操作系统实现资源共享,提高系统资源利用率的主要方式。描述这些程序实体的概念就是进程。在多道情况下,每个进程独立地拥有各种必
4、要的资源,占有处理机,独立地运行。在多道系统中,同时存在多个进程,所以当某个进程进入等待状态时,操作系统将把处理机控制权拿过来并交给其他可以运行的进程。进程之间存在着相互制约、相互依赖的约束关系。,5.2 进程,一种最糟糕的情况是所有进程都拥有部分资源,同时在等待其他进程拥有的资源,这样,大家都无法运行,进入一种永久等待的状态,这种情况称为死锁,死锁是对系统资源极大的浪费,必须设法避免。本节着重讨论现代多道操作系统中的核心概念进程,这是理解操作系统工作原理的基础和关键。首先介绍单个进程的状态、状态转换的条件和控制原语、进程在系统中的静态描述等,接着介绍多个进程之间的约束关系,由此引出进程间通信
5、的概念,通信是协调、解决进程间约束关系的惟一手段,这种约束关系处理不当造成的最严重的后果就是死锁。,5.2 进程,5.2.1 进程的概念 进程的概念最早出现在60年代中期,用于多道系统,在Linux系统中,进程也称为任务(task)。简单讲,进程就是正在运行的程序,更为严谨的表达是,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程的概念对于理解操作系统有决定性的意义,而真正理解进程,必须了解它的基本性质。进程是操作系统分配资源和进行调度的独立单位,具有独立性、动态性。多道系统中同时存在多个进程,这些进程拥有各自的资源,各自独立地执行,对于单处理机系统,进程宏观上同时运行而微
6、观上是依次执行,这种情况称为并发执行。,5.2 进程,1.进程和程序 进程和程序是一对相互联系的概念。程序是指令的有序集合,是一个静态的概念,描述完成某个功能的一个具体操作过程,而进程是程序针对某一组数据的一次执行过程,更强调动态特征。一个完整的进程,包括程序、执行程序所需要的数据,同时还必须包括记录进程状态的数据资料。在多道分时操作系统中,按照时间片轮流在各个进程间切换。对于单处理器系统,每一个时刻只能有一个进程在执行,当分配给该进程的时间片用完之后,不管该进程运行到什么程度,都必须立即停止,然后让出处理器资源,下一个进程进入执行状态。,5.2 进程,让出处理器的进程必须记录好正在运行的状态
7、,包括寄存器、堆栈等各种信息,这些信息保证当处理器下次切换到这个进程的时候,进程能够正确地从上次执行到的位置继续往下执行。一个程序在处理相同或不同的操作数据时可以同时对应于多个进程。一个进程也可以包含多个程序,某个程序在运行过程中,可能同时会调用到多个其他程序,这些具有调用关系的多个程序共同构成一次完整的运行活动,即一个完整的进程。,5.2 进程,举一个直观的例子。我们在Linux系统下使用编辑器vi进行编辑,同时打开多个窗口,编辑多个不同名称的文件,vi编辑器是一个可执行程序,不同的文件就是不同的操作数据,而对应于这些文件同时打开的每一个编辑窗口就对应着一个进程,每一个进程都处于不同的状态。
8、如果说程序是提供计算机操作的一组工作流程的话,进程就是具体的工作过程,按照同样的工作流程,针对不同的原料,可以同时开始多个工作过程,得到多种不同的成品。这种工作流程和工作过程的关系就可以类比为程序和进程的关系。,5.2 进程,2.进程和作业 作业是用户向计算机系统提交一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做工作的总和。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统分配资源和进行调度的基本单位。作业是描述用户向系统提交工作任务的实体单位,而进程是系统完成工作任务时程序执行的实体单位。从这个角度讲,他们处于不同的层次,作业描述用户和操作系统之间
9、的任务委托关系,而进程描述操作系统内部任务的具体执行过程。一个用户的任务,即作业,由用户提交给系统,必须以进程的形式具体完成。,5.2 进程,对于批处理系统,通常,作业放在外存中专门的作业队列中等待进入内存执行,要经过一次宏观调度,由外存进入内存,以进程的形式运行。而对于Linux这样的分时系统,没有宏观调度,作业不经过调度,直接进入内存,以进程的形式开始运行。任何一个进程,都存在于内存中,并且是已经开始运行的动态实体。,5.2 进程,5.2.2 进程描述 进程是一个动态的概念,描述程序的一次运行活动。它存在于系统的内存中,是操作系统可感知、可控制的动态实体,是系统分配各种资源、进行调度的基本
10、单位。1.进程控制块 现在我们来讨论进程在内存中的静态存在方式。在多道系统中,处理机在多个进程之间来回切换,每个进程都会在暂停、运行这两种状态之间来回转换。当一个进程在处理机切换过来重新进入运行状态时,它必须严格精确地接着上次运行的位置继续进行,进程的静态描述可以保持切换现场,确保准确衔接,保证进程调度的实现,顺利完成程序所规定任务。,5.2 进程,进程切换现场称为进程上下文(context),包含了一个进程所具有的全部信息,一般包括:进程控制块(Process Control Block,PCB)、有关程序段和相应的数据集,具体组成见图2.1。程序段是某个进程执行的相关指令集合,和静态的程序
11、段有明确的对应关系,相应数据集是这个程序段正在操作的那部分数据,PCB是记录进程各种状态的数据体,PCB是操作系统管理感知、控制进程的数据实体,通过它,就可以找到进程的程序段和数据集,系统正是通过PCB来控制进程的。一般来讲,PCB记录着进程的所有资料,是全部或部分常驻内存的,PCB记录着程序段和数据集的地址指针,通过这些指针,就可以得到具体的指令和数据。,5.2 进程,PCB记录了进程的全部控制信息,一般较庞大而复杂,它可以按照功能大概分成四个组成部分:进程描述信息、进程控制信息、进程相关的资源信息和CPU现场保护结构(如图2.1)。,5.2 进程,图2.1 进程描述数据关系示意图(进程上下
12、文),2.Linux的PCB Linux系统的进程控制块PCB用一个称为task-struct的结构体来描述。(1)进程描述信息 通过进程描述信息,Linux系统可以惟一地确定某一个进程的基本情况,可以了解该进程所属的用户及用户组等信息,同时还能确定这个进程与所有其他进程之间的关系。这些描述信息包括:进程号、用户和组标识以及描述进程家族关系的连接信息。,5.2 进程,进程号(pid,process identifier)Linux系统为每一个进程分配一个标识号,通过这个标识号识别、控制、调度这个进程,别的进程也通过这个标识号来识别这个进程并与之通信,用户也可以使用操作命令或系统调用通过标识号来
13、控制该进程。用户和组标识(user and group identifier)Linux系统中有四类不同的用户和组标识,主要用来控制进程对系统文件的访问权限,实现系统资源的安全访问。Linux使用组将文件和目录的访问特权授予一组用户,一个进程可以同时属于多个组,这些组都被放在进程的task-struct中的group数组中。,5.2 进程,连接信息(Links)Linux系统中的进程之间形成树状的家族关系,连接信息记录某个进程的父进程、兄弟进程(具有相同父进程的进程)以及子进程的信息,描述一个进程在整个家族系统中的具体位置。(2)进程控制信息 进程控制信息记录了进程的当前状态、调度信息、记时和
14、时间信息以及进程间通信信息,是系统确定进程的状态、了解进程之间的关系、进行进程调度的主要依据。进程当前状态 进程的生命周期中,总是不停地在各种状态之间转换,有关进程的状态及转换规则,在下节讨论。,5.2 进程,调度信息 系统的调度程序利用这部分信息决定哪一个进程应该运行,包括优先级、实时优先级、计数器和调度策略。记时信息 包括时间和定时器,给出进程占有和利用CPU的情况,是调度的依据,也是进行统计、分析以及记费的依据。通信信息 多个进程之间通信的各种信息也记录在PCB中。Linux支持典型的UNIX进程间通信机制信号、管道,也支持System通信机制共享内存、信号量和消息队列。,5.2 进程,
15、(3)进程资源信息 Linux的PCB中包含大量的系统资源信息,这些信息记录了与该进程有关的存储器的各种地址和资料、文件系统以及打开文件的信息等等。通过这些资料,进程就可以得到运行需要的相关程序段以及必要的数据。(4)CPU现场信息 进程的静态描述必须保证一个进程在获得处理机并重新进入运行状态时,能够精确地接着上次运行的位置继续进行。相关程序段和数据集以及处理机现场(或处理机状态)都必须保存。处理机(CPU)现场信息一般包括处理机的内部寄存器和堆栈等基本数据。,5.2 进程,task-struct是Linux系统的进程控制块(PCB),通过对PCB的操作,系统为进程分配资源并进行调度,最终完成
16、进程的创建和撤销。系统利用PCB中的描述信息来标识一个进程,根据PCB中的调度信息决定该进程是否应该运行。如果这个进程要进入运行,首先根据其中的CPU现场信息来恢复运行现场,然后根据资源信息获取对应的程序段和数据集,接着上次的位置开始执行,同时通过PCB中的通信信息和其他进程协同工作。,5.2 进程,5.2.3 进程状态及转换 系统通过PCB对进程进行控制,进程不断地在不同的状态之间转换。1.进程的基本状态 在分时系统中,一个进程拥有了所需要的全部资源,就可以开始执行,当分配的时间片结束,让出CPU资源,这种只要能够占有CPU就能进入执行的状态称为就绪状态。有时,多个进程之间互相制约,某个进程
17、必须等到某个事件发生才能够竞争CPU资源,这是等待状态,当等待的事件发生之后,这个进程被唤醒,由等待状态进入就绪状态,直到获得CPU才开始执行。等待状态、就绪状态和执行状态是一个进程所具有的最基本的三种状态,见图2.2。,5.2 进程,图2.2 进程基本状态及转换示意图,5.2 进程,2.Linux系统进程状态 Linux系统的版本进程共有六种状态,包括运行状态、可中断等待状态、不可中断等待状态、僵死状态、暂停状态和交换状态,而在版本中取消了交换状态,加入独占状态。,5.2 进程,表2.1 Linux系统版本)进程状态表,(1)运行状态(running)系统中的运行状态实际包含上述基本状态中的
18、执行和就绪两种状态,进程是正在运行还是处于就绪状态准备运行,要靠当前是否占有CPU资源来区分。(2)等待状态 系统把基本的等待状态进一步细化为可中断的等待态和不可中断的等待态两种。处于这种状态的进程都在等待某个事件或某个资源,可中断等待状态的进程可以被信号唤醒而进入就绪状态等待调度,而不可中断等待状态的进程是因为硬件资源无法满足,不能被信号唤醒,必须等到所等待的资源得到之后由特定的方式唤醒。,5.2 进程,5.2 进程,(3)僵死状态(zombie)由于某些原因进程被终止,这个进程所拥有的内存、文件等资源全部释放之后,还保存着PCB信息,这种占有PCB但已经无法运行的进程就处于僵死状态。(4)
19、暂停状态 处于暂停状态的进程,一般都是由运行状态转换而来,等待某种特殊处理。比如处于调试跟踪的程序,每执行到一个断点,就转入暂停状态,等待新的输入信号。(5)交换状态 处于交换状态的进程正在执行内存、外存的交换工作。这个状态在版本的内核中基本已经不使用,在版本中没有这种状态。,5.2 进程,(6)独占状态 它应该是等待状态的一种,处于独占状态的进程位于等待队列中,当等待的事件发生时,只有处于这种状态的进程被唤醒,其他处于可中断和不可中断等待状态的进程则继续等待。Linux 2.4引入独占状态后,如果事件发生,只唤醒处于独占状态的那一个进程,这就可以大大提高Apache这类Web应用的效率,使L
20、inux更适合网络服务器的角色。Linux系统进程的状态转换情况。采取一定的简化措施:按照进程是否占有处理机为依据,把进程的运行状态分为执行和就绪两种状态;等待状态统一考虑,不再区分是否可中断,独占状态也作为一种等待状态处理;不涉及交换状态。见图2.3。,图2.3同时也记录了一个进程在整个生命周期的变化过程。从图的左下方开始看,系统在某种特定的情况下,响应某个要求,首先分配各种资源,创建一个新的进程,进程进入就绪队列。,图2.3 Linux系统进程状态及转换示意图,5.2 进程,所有的进程必须在就绪之后,才有资格竞争CPU,进入运行状态。这样,进程的整个生命周期中,大致的转换路径总是沿着三个闭
21、合回路进行。就绪状态和执行状态形成第一个回路。进程进入就绪态,放入可执行队列等待,一旦被调度函数选中,就切换现场,进入运行状态,等自己的时间片耗尽之后,马上保护现场,让出CPU,转入就绪状态,等待新的调度。执行状态、等待状态和就绪状态形成第二个回路。处于执行状态的进程,有时需要等待某个事件或某种资源的发生,这时,继续占有CPU也无法开展工作,就转入等待状态,CPU由下一个被调度的进程占有。当等待进程所等待的事件发生后,等待进程被唤醒,进入就绪状态。,5.2 进程,执行状态、暂停状态和就绪状态构成第三个回路。当接收到某种特殊的信号,比如SIGSTOP(Linux的停止信号)时,处于执行状态的进程
22、放弃CPU,保护现场之后,进入暂停状态,直到获得另外一个特殊的信号才进入就绪状态。一个处于执行状态的进程调用退出函数exit之后,进程就会进入僵死状态,这种状态下,进程释放了PCB之外的所有系统资源。也就是说,它在系统中只留下这个进程的一个PCB。僵死进程的父进程通过PCB了解到该进程所处的状态后,采取相应的处理措施,回收PCB,这个进程就完成了它的使命,从僵死走向彻底消亡,上图右上方的虚箭头表示了这种结局。,5.2 进程,5.2.4 进程控制 进程控制,是指对系统中的全部进程实施有效的管理,使得进程能够及时创建、撤销,正确地完成进程各状态之间的转换,使得多个进程高效率并发执行,达到系统资源高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 调度 管理 处理机
链接地址:https://www.31ppt.com/p-6146317.html