960 likes | 1.08k Views
第 三 章 进 程 管 理. 处理机是计算机系统的核心资源。操作系统的功能之一就是 处理机管理 。计算机系统的效率主要是由处理机决定的。处理机管理是整个操作系统的核心。 现代计算机系统都是以进程作为分配资源和独立运行的基本单位。所以处理机管理实质上是 进程管理 。. 现代计算机系统多数是多道系统,且为单处理机系统。处理机要同时运行多个任务的程序。合理有效地管理和分配处理机资源,是操作系统的一个十分重要的任务。 处理机管理就是按照一定策略对处理机进行合理调配、以满足用户任务运行的需要。.
E N D
第 三 章 进 程 管 理
处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。计算机系统的效率主要是由处理机决定的。处理机管理是整个操作系统的核心。处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。计算机系统的效率主要是由处理机决定的。处理机管理是整个操作系统的核心。 • 现代计算机系统都是以进程作为分配资源和独立运行的基本单位。所以处理机管理实质上是进程管理。
现代计算机系统多数是多道系统,且为单处理机系统。处理机要同时运行多个任务的程序。合理有效地管理和分配处理机资源,是操作系统的一个十分重要的任务。现代计算机系统多数是多道系统,且为单处理机系统。处理机要同时运行多个任务的程序。合理有效地管理和分配处理机资源,是操作系统的一个十分重要的任务。 • 处理机管理就是按照一定策略对处理机进行合理调配、以满足用户任务运行的需要。
为了准确地描述系统内多个任务的运行情况,以及对系统资源的管理和分配的情况,在现代计算机系统中都采用进程的概念。为了准确地描述系统内多个任务的运行情况,以及对系统资源的管理和分配的情况,在现代计算机系统中都采用进程的概念。
§3.1 进程的基本概念 • 进程是操作系统中最重要的、最基本的概念。 • 对操作系统的设计和研究都是以进程作为出发点。 • 进程的概念是从程序中产生的,但它与程序有着本质的不同。
一、程序的顺序执行 • 程序是 “ 一组有序的操作序列 ”。“操作”:机器指令、高级语言中的语句。“有序”:操作必须按照严格的先后次序进行,必须在前一个操作完成后, 才能执行下一个操作。一个复杂的程序也可以分为若干个程序段,各个程序段也是依照一定的次序逐个执行。
程序本身具有的顺序执行的特点 • 在单道系统中程序执行时,具有顺序执行的特点,所以又把单道系统中的程序称为顺序程序。
作业1 作业2 作业3 I1 C1 P1 I2 C2 P2 I3 C3 P3 时间 t1 t2 t3 t4
顺序程序具有如下特性: 1、顺序性 程序运行时处理机必须严格按照程序所规定的顺序执行有关操作。 2、可再现性 如果程序在不同的时间重复执行,只要执行时的初始条件相同,程序运行结果必然相同。
3、封闭性 程序在运行时独占全部系统资源,这些资源的状态只由程序本身确定,只有该程序的操作才能改变资源的状态。所以,程序在执行过程中不会受到外界因素的影响。 4、与时间无关性 程序的运行结果与它执行的速度无关。
二、程序的并发执行 • 在多道系统中,由于程序的运行环境发生了根本的变化,程序的执行方式有了本质的变化,它们从顺序执行成为 并发执行。 • 程序的并发执行是指一个程序的 若干个程序段可以同时在系统中执行,它们在执行时间是重叠的。
执行时间上有重叠的几个程序称为并发程序。 • “同时”和“执行时间重叠”是一个宏观概念。 • 从微观上看,处理机在任一时刻只能执行一个程序,并发程序是在处理机上交替运行的。
I1 P1 C1 作业1 I2 C2 P2 作业2 I3 C3 P3 作业3 时间 t1 t2 t3 t4 t5
由于程序的并发执行使得系统资源不再由一道程序独占,而是由多道程序共享。由于程序的并发执行使得系统资源不再由一道程序独占,而是由多道程序共享。 • 程序的并发执行和资源共享之间是相辅相成的。只有允许程序的并发执行,才存在资源共享的问题;只有有效地实现资源共享,才使得程序可以并发执行。
多道系统中程序的并发执行和资源的共享,使得程序的运行环境有了根本的变化,并发执行的程序产生了与单道环境下顺序程序完全不同的特性。多道系统中程序的并发执行和资源的共享,使得程序的运行环境有了根本的变化,并发执行的程序产生了与单道环境下顺序程序完全不同的特性。
并发程序具有以下特性: • 1、并发性 • 并发程序的若干程序段同时在系统中运行。这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始。
2、异步性 • 系统中每个程序的运行是不确定的,什么时候开始、结束不确定;运行时走走停停,与其他程序之间相互制约又相互依赖。
3、开放性 • 由于系统中的并发程序共享系统资源,资源的状态不再由一个程序确定,而是由多个程序的执行过程共同决定的。而程序在执行中与资源状态等外部因素有关,所以程序不再具有封闭性。
begin integer N; N:=0; cobegin program A: begin L1: ······; N:=N+1; goto L1; end;
program B: begin L2: ······; print(N); N:=0; goto L2; end; coend; end;
4、不可再现性 一个程序的执行结果,与它和另一个程序的相对执行速度有密切的关系。程序在两次运行中,即使初始条件相同,它的运行结果可能完全不同,并发程序失去了可再现性。
① 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。 两次运行结果截然不同。
由此可见: • 程序与其执行过程不再一一对应。 • 在顺序程序执行时,系统中每一个程序只对应一个执行过程。 • 但是并发程序执行时,系统中一个程序可以对应多个执行过程。
在单道系统中,资源的分配和管理是面向程序的,因为一个程序总是对应一个执行过程。在单道系统中,资源的分配和管理是面向程序的,因为一个程序总是对应一个执行过程。 • 在多道系统中,一个程序可以对应多个执行过程,仍以程序做为资源分配和管理的对象,就很难描述。 • 特别是,当并发执行的是同一个程序的情况下,就说不清在某个时刻处理机分配给了哪个程序使用。
C编译程序编译作业甲的源程序 C编译程序编译作业乙的源程序 t
在多道系统中,资源的分配不能再以程序为对象,而必须把程序与其执行过程连系在一起做为对象,这就是引进了进程概念。在多道系统中,资源的分配不能再以程序为对象,而必须把程序与其执行过程连系在一起做为对象,这就是引进了进程概念。
三、进程的定义和特性 • 进程是程序在处理机上的执行活动。 • 进程是一个在处理机上可调度的实体。 • 进程是可以并发执行的计算过程。 • 进程是程序的一次执行。 • 进程执行某个任务时,将要分配和释放各种资源。
进程的定义: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的一个独立单位。
进程的两个基本特性: • (1) 动态性: • 进程的实质是程序的一次运行活动,是一个动态的概念。 • 进程是一个有生命的过程,它有从动态地产生、动态地执行到动态地消亡的生命周期。
(2) 并发性: • 系统中可以同时存在多个进程,各进程按照各自独立的、不可预知的速度向前推进。 • 系统中的进程共享系统资源,系统以进程作为资源分配和调度的单位。
程序与进程的区别: (1) 程序是一组指令的有序集合,用以指示处理机的操作,其本身并无运行的含义,是一个静止的概念。程序作为一种信息资源可以永久地存放在某种介质上。 进程是程序执行的动态活动,它随程序的执行而诞生,随着程序执行结束而消亡。
(2)进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。(2)进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 • (3)静止状态的程序和数据是相互独立的信息集合,而进程中的程序和数据是一个不可分离的实体,数据是程序的处理对象。
(4)一个程序可以对应多个进程,通过多次执行,在多道系统中一个程序可以同时处理多个不同的数据集合,每个处理活动形成一个进程;(4)一个程序可以对应多个进程,通过多次执行,在多道系统中一个程序可以同时处理多个不同的数据集合,每个处理活动形成一个进程; • 通过调用关系,一个进程可包括多个程序。
使用进程的概念可以很好地描述并发程序的各种特性。进程的概念还能描述和揭示操作系统在实现各种功能时的动态活动情况。使用进程的概念可以很好地描述并发程序的各种特性。进程的概念还能描述和揭示操作系统在实现各种功能时的动态活动情况。 • 操作系统的设计人员基本上都把进程作为构造现代操作系统的基本部件,把进程作为实现操作系统各种功能的基本单位。
引进进程的概念后,在多道系统中就不再使用“并发程序”的概念了,而是使用“进程”来描述系统的各种活动。引进进程的概念后,在多道系统中就不再使用“并发程序”的概念了,而是使用“进程”来描述系统的各种活动。 • 系统在对用户作业的管理和控制中采用进程的观点,把用户作业看成由若干进程组成。
进程与作业的关系 • 作业是用户向计算机提交任务的任务实体; 进程是完成用户任务的执行实体。 • 作业与进程的对应关系:一个作业可由多个进程组成,反过来不成立。 • 作业的概念主要用在批处理系统中; 进程的概念主要用在几乎所有的多道系统中。
§3.2 进程状态和进程实体 • 一、进程的状态及转换 • 在多道系统中,由于多个进程同时动态地活动于系统之中,进程的状态必然处于动态的变化中。 • 进程的状态分为以下三种基本状态:
1、就绪状态(Ready) • 当一个进程获得了除处理机以外的一切所需资源,具备了可在处理机上运行的条件,一旦得到处理机即可运行,则称此进程处于就绪状态。 • 处于就绪状态的进程在逻辑上是处于可运行的状态。
2、运行状态(Run) • 当一个进程获得了处理机及其它所需的一切资源,正在处理机上运行,则称此进程处于运行状态。 • 对于单处理机系统,最多只能有一个进程处于运行状态。
3、阻塞状态(Blocked) • 又称等待状态(Wait)。 • 当一个在处理机上运行的进程,因等待某一事件发生而不能继续运行时,则称此进程处于阻塞状态。 • 例如一个运行中的进程申请使用某种外部设备,而该设备正在被其它进程使用,则该进程只能暂时停止运行等待设备可用。这时该进程就成为阻塞态。
处于阻塞状态的进程在逻辑上是处于不可运行的状态,即使处理机空闲它也不能运行。处于阻塞状态的进程在逻辑上是处于不可运行的状态,即使处理机空闲它也不能运行。
运行态 事 件 Run 被 等 调 待 时 度 间 片 到 阻塞态 就绪态 Blocked Ready 事 生 件 发
(1) 就绪态->运行态 系统中可能有多个处于就绪状态的进程。当处理机可用时,由系统按照一定的调度算法从就绪态的进程中选择其中一个使其占用处理机运行,则该进程就成为运行态。
(2) 运行态->就绪态 处于运行态的进程,当分配给它的时间片用完时,系统剥夺其处理机的使用权,该进程则转换成就绪态。
处理机调度器(dispatcher) • 把处理机从一个进程切换到另一个进程。 • 防止某进程独占处理机。 处理机调度器是操作系统中的一段代码,它完成如下功能:
(3) 运行态->阻塞态 • 进程在运行过程中,有时需等待某一事件发生后,才能继续往下运行。这时,即使时间片未用完也不得不放弃处理机,从运行态变为阻塞态。 • 例如,进程在使用设备输入输出数据时,要等待的事件就是输出输入操作的完成。这时其状态就由运行态转换成阻塞态。
(4) 阻塞态->就绪态 处于阻塞态的进程,若其等待的事件已经发生,则该进程从阻塞态变为就绪态。 • 例如,设备为进程完成了输入输出操作后,表明进程等待的事件已经发生,这时该进程需要使用处理机继续执行,则进入就绪态,等待系统把处理机分配给它使用。
特别需要注意以下几点: (1)处于阻塞态的进程,当阻塞原因解除后,虽然再次具备了运行的条件,但不能直接转换成运行态。它必须首先转换成就绪态,经系统调度后才能成为运行态。
(2)进程从运行态转换为就绪态是由系统决定的。当运行态的进程占用处理机的时间片规定的时间已到,则系统停止该进程的运行,使其进入就绪态。(2)进程从运行态转换为就绪态是由系统决定的。当运行态的进程占用处理机的时间片规定的时间已到,则系统停止该进程的运行,使其进入就绪态。