操作系统原理—学习笔记二主主主主题题题题::::《操作系统原理》学习笔记内内内内容容容容::::《《《《操作系统原理操作系统原理操作系统原理操作系统原理》》》》学习笔记学习笔记学习笔记学习笔记二二二二————————进程管理进程管理进程管理进程管理处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。计算机系统的效率主要是由处理机决定的。处理机管理是整个操作系统的核心。现代计算机系统多数是多道系统,且为单处理机系统。处理机要同时运行多个作业的程序。合理有效地管理和分配处理机资源,是操作系统的一个十分重要的任务。处理机管理就是按照一定策略对处理机进行合理调配、以满足用户作业运行的需要。为了准确地描述系统内多个作业的运行情况,以及对系统资源的管理和分配的情况,在现代计算机系统中都采用进程的概念。现代计算机系统都是以进程作为分配资源和独立运行的基本单位。所以处理机管理实质上是进程管理。一一一一、、、、进程的基本概念进程的基本概念进程的基本概念进程的基本概念进程是操作系统中最重要的、最基本的概念。对操作系统的设计和研究都是以进程作为出发点。进程的概念是从程序中产生的,但它与程序有着本质的不同。1、程序的顺序执行程序是“一组有序的操作序列”。“操作”:机器指令、高级语言中的语句。“有序”:操作必须按照严格的先后次序进行,必须在前一个操作完成后,才能执行下一个操作。一个复杂的程序也可以分为若干个程序段,各个程序段也是依照一定的次序逐个执行。程序本身具有的顺序执行的特点。在单道系统中程序执行时,具有顺序执行的特点,所以又把单道系统中的程序称为顺序程序。顺序程序具有如下特性:顺序性、程序运行时处理机必须严格按照程序所规定的顺序执行有关操作。可再现性、如果程序在不同的时间重复执行,只要执行时的初始条件相同,程序运行结果必然相同。操作系统原理—学习笔记二封闭性、程序在运行时独占全部系统资源,这些资源的状态只由程序本身确定,只有该程序的操作才能改变资源的状态。所以,程序在执行过程中不会受到外界因素的影响。与时间无关性。程序的运行结果与它执行的速度无关。2、程序的并发执行由于通道技术和中断技术的不断完善,计算机系统出现了处理机与外部设备的并行工作方式,使得处理机可以同时运行多个用户的程序。这就是多道程序设计系统。在多道系统中,由于程序的运行环境发生了根本的变化,程序的执行方式有了本质的变化,它们从顺序执行成为并发执行。程序的并发执行是指一个程序的若干个程序段可以同时在系统中执行,它们在执行时间是重叠的。执行时间上有重叠的几个程序称为并发程序。“同时”和“执行时间重叠”是一个宏观概念。从微观上看,处理机在任一时刻只能执行一个程序,并发程序是在处理机上交替运行的。由于程序的并发执行使得系统资源不再由一道程序独占,而是由多道程序共享。程序的并发执行和资源共享之间是相辅相成的。只有允许程序的并发执行,才存在资源共享的问题;只有有效地实现资源共享,才使得程序可以并发执行。多道系统中程序的并发执行和资源的共享,使得程序的运行环境有了根本的变化,并发执行的程序产生了与单道环境下顺序程序完全不同的特性。并发程序具有以下特性:并发性并发程序的若干程序段同时在系统中运行。这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始。开放性由于系统中的并发程序共享系统资源,资源的状态不再由一个程序确定,而是由多个程序的执行过程共同决定的。而程序在执行中与资源状态等外部因素有关,所以程序不再具有封闭性。程序在两次运行中,即使初始条件相同,它的运行结果可能完全不同,并发程序失去了可再现性。beginintegerN;N:=0;cobeginprogramA:beginL1:······;N:=N+1;操作系统原理—学习笔记二gotoL1;end;programB:beginL2:······;print(N);N:=0;gotoL2;end;coend;end;程序A和B是并发执行的,它们根据运行环境的情况按照各自独立的速度运行。由于它们共享一个变量N,而N的值是由这两个程序共同确定的。所以一个程序的执行结果,与它和另一个程序的相对执行速度有密切的关系。①A执行5次循环后,N的值是5。它第6次循环时,在执行N:=N+1语句前,系统把处理机分配给程序B使用。程序B在执行print(N)时,打印N的值5。②A执行第6次循环时,在执行N:=N+1语句之后,处理机分配给程序B使用。程序B在执行print(N)时,打印N的值6。两次运行结果截然不同。相互制约性有些并发程序同属于一个作业,它们需要共同协作完成某一任务,这些程序之间必定存在制约关系。并发程序由于在逻辑上或功能上存在的联系而产生的制约,称为直接制约。几个具有相对独立功能的并发程序,虽然它们在完成各自的功能方面不存在任何联系,但当它们竞争使用某一种共享资源时,将互相产生制约,获得资源的程序可以继续运行,其它需要使用这种资源的程序将处于等待状态,直到获得该资源后才继续运行。并发程序由于共享系统资源而产生的制约称为间接制约。动态性程序与其执行过程不再一一对应。在顺序程序执行时,每一个程序只对应一个执行过程。但是并发程序执行时,一个程序可以对应多个执行过程。在单道系统中,资源的分配和管理是面向程序的,因为一个程序总是对应一个执行过程。在多道系统中,仍以程序做为资源分配和管理的对象,就很难描述。当并发执行的是同一个程序的情况下,就说不请在某个时刻处理机分配给了哪个程序使用。在多道系统中,资源的分配不能再以程序为对象,而必须把程序与其执行过程连系操作系统原理—学习笔记二在一起做为对象,这就是引进了进程概念。3、进程的定义和特性进程是程序在处理机上的执行活动。进程是一个在处理机上可调度的实体。进程是一个可以并发执行的计算过程。进程是由伪处理机执行的一个程序。进程是程序的一次执行。进程是多道程序系统中控制程序管理下的基本程序单位。进程的定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的一个独立单位。进程的两个基本特性:动态性:进程的实质是程序的一次运行活动,是一个动态的概念。进程是一个有生命的过程,它有从动态地产生、动态地执行到动态地消亡的生命周期。并发性:系统中可以同时存在多个进程,各进程按照各自独立的、不可预知的速度向前推进。系统中的进程共享系统资源,系统以进程作为资源分配和调度的单位。程序与进程的区别:程序是一组指令的有序集合,用以指示处理机的操作,其本身并无运行的含义,是一个静止的概念。程序作为一种信息资源可以永久地存放在某种介质上。进程是程序执行的动态活动,它随程序的执行而诞生,随着程序执行结束而消亡。静止状态的程序和数据是相互独立的信息集合,而进程中的程序和数据是一个不可分离的实体,数据是程序的处理对象。一个程序可以对应多个进程。在多道系统中一个程序可以同时处理多个不同的数据集合,每个处理活动形成一个进程。使用进程的概念可以很好地描述并发程序的各种特性。进程的概念还能描述和揭示操作系统在实现各种功能时的动态活动情况。操作系统的设计人员基本上都把进程作为构造现代操作系统的基本部件,把进程作为实现操作系统各种功能的基本单位。引进进程的概念后,在多道系统中就不再使用“并发程序”的概念了,而是使用“进程”来描述系统的各种活动。系统在对用户作业的管理和控制中也采用进程的观点,把用户作业看成由若干进程组成。二二二二、、、、进程状态和进程实体进程状态和进程实体进程状态和进程实体进程状态和进程实体1、进程的状态及转换在多道系统中,由于多个进程同时动态地活动于系统之中,进程的状态必然处于动态的变化中。进程的状态分为以下三种基本状态:就绪状态(Ready)。当一个进程获得了除处理机以外的一切所需资源,具备了可在处理机上运行的条件,一旦得到处理机即可运行,则称此进程处于就绪状态。处于就绪状态的进程在逻辑上是处于可运行的状态。运行状态(Run)。当一个进程获得了处理机及其它所需的一切资源,正在处理机上运行,则称此进程处于运行状态。对于单处理机系统,最多只能有一个进程处于运行状态。阻塞状态(Blocked)。又称等待状态(Wait)。当一个在处理机上运行的进程,因操作系统原理—学习笔记二等待某一事件发生而不能继续运行时,则称此进程处于阻塞状态。处于阻塞状态的进程在逻辑上是处于不可运行的状态,即使处理机空闲它也不能运行。系统中的每个进程在任何时刻都处于三种基本状态之一。就绪态-运行态。系统中可能有多个处于就绪状态的进程。当处理机可用时,由系统按照一定的调度算法从就绪态的进程中选择其中一个使其占用处理机运行,则该进程就成为运行态。运行态-就绪态。处于运行态的进程,当分配给它的时间片用完时,系统剥夺其处理机的使用权,该进程则转换成就绪态。运行态-阻塞态。进程在运行过程中,有时需等待某一事件发生后,才能继续往下运行。这时,即使时间片未用完也不得不放弃处理机,从运行态变为阻塞态。例如,进程在使用设备输入输出数据时,要等待的事件就是输出输入操作的完成。这时其状态就由运行态转换成阻塞态。阻塞态-就绪态。处于阻塞态的进程,若其等待的事件已经发生,则该进程从阻塞态变为就绪态。例如,设备为进程完成了输入输出操作后,表明进程等待的事件已经发生,这时该进程需要使用处理机继续执行,则进入就绪态,等待系统把处理机分配给它使用。特别需要注意以下及点:处于阻塞态的进程,当阻塞原因解除后,虽然再次具备了运行的条件,但不能直接转换成运行态。它必须首先转换成就绪态,经系统调度后才能成为运行态。进程从运行态转换为就绪态是由系统决定的。当运行态的进程占用处理机的时间片规定的时间已到,则系统停止该进程的运行,使其进入就绪态。进程从运行态转换成阻塞态是由进程本身提出的。一个进程由阻塞态转换成就绪态总是由外部事件引起的。2、进程的实体进程虽然是程序的一次运行活动,但它并不是一个抽象的概念,进程是一个实际存在的实体。进程实体是由程序、数据和进程控制块三部分组成的。从进程的定义可知,进程包括一个具有独立功能的程序和一个数据集合。进程的程序决定了进程所要完成的功能。数据集合是程序在执行时的操作对象,它还包括程序执行时使用的工作区。程序和数据集合是进程存在的物质基础。此外,进程实体还包括一个进程控制块。在计算机系统内部,各个进程的状态和占用资源情况以及进程之间的关系是不断变化的,为了便于对进程进行管理和控制,系统必须记录下进程的这些信息。进程控制块PCB(ProcessControlBlock)就是记录进程有关信息的一个数据结构。操作系统在创建一个进程的同时就在内存中为该进程建立一个进程控制块,在进程被撤消时,系统回收进程控制块所占用的内存空间,进程控制块也随之消失。所以说进程控制块是系统内进程存在的唯一标志,系统根据进程控制块才感知到进操作系统原理—学习笔记二程的存在。PCB中所包括信息:进程的标识信息:包括进程的名字、进程标识符等。每个进程只能有唯一的标识符,它是系统识别一个进程的依据。进程的位置信息:指出构成进程的程序和数据所在内存中的位置、PCB在有关队列中的位置等有关信息。进程的状态信息:记录进程当前所处的状态,它是系统为进程分配处理机的主要依据。进程的现场信息:当一个进程在运行的中途把处理机让给其它进程使用时,为了在再次占有处理机时能继续运行,必须保存当时的现场信息,如有关寄存器的值、指令计数器、程序状态字等。进程的管理信息:记录着进程占用资源的情况、进程的优先级、使用处理机的时间等信息。进程的族亲信息:指向该进程的父进程和它的子进程等有关的指针。进程的通信信息:给出该进程与其它进程进行通信时的有关信息。为了便于对进程进行管理,系统把各个进程的PCB集中存放在内存的指定区域,并组织在一起形成PCB表。不同的操作系统采用不同的PCB表组织结构,PCB表的物理组织结构直接关系到系统的效率。常用的有三种:线性表结构、索引