操作系统第二章2
操作系统第二章
2.3 进程的控制
2.3.1 进程控制及原语 2.3.2 创建原语
2.3.3 2.3.5 撤销原语 唤醒原语
2.3.4 阻塞原语
28
2.3.1 进程控制及原语
进程控制 系统使用一些具有特定功能的程序段来 创建、撤消进程以及完成进程各状态间 转换等一系列有效管理 一般由操作系统内核完成 原语 某些程序段的执行过程是不允许被中断 的,或者说其执行过程不可分割。这样 的程序段叫原语
进程的特性 动态性:进程是程序的一次执行,具有生 命期 独立性:进程是系统进行资源分配和调度 的一个独立单位 并发性:进程可以并发执行 异步性:进程间的相互制约,使进程执行 具有间隙 结构性:进程具有结构 程序 数据(地址空间、堆栈等) 进程控制块(PCB)
11
2.2 进程的描述
2.2.1 进程控制块 2.2.2 进程的状态
9
2.1.3 进程的基本概念(1)
进程的定义 进程是程序的一次执行 进程是可以并行执行的计算 进程是一个程序与其使用的数据在处理 机上顺序执行时发生的活动 进程是程序在一个数据集合上的运行过 程,它是系统进行资源分配和调度的一 个独立单位 进程是可以和其他程序并行执行的程序 的一次执行
10
2.1.3 进程的基本概念(2)
29
2.3.2 创建原语(1)
创建进程的时机 系统 批处理系统中为每个作业创建一个进程 内核 分时系统中为每个用户创建一个进程
应用程序创建
应用请求:已存在的进程创建子进程 创建原语的功能 申请空白PCB 创建 为新进程分配资源 进程控制块 初始化进程控制块 将新进程插入就绪队列
30
2.3.2 创建原语(2)
操作系统第二章课后答案
第二章进程管理2. 试画出下面4条语句的前趋图:S2: b:=z+1;S3: c:=a-b;S4: w:=c+1;3.程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。
4. 程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。
而程序一旦失去了封闭性也会导致其再失去可再现性。
5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。
影响: 使程序的并发执行得以实行。
6. 试从动态性,并发性和独立性上比较进程和程序?a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。
c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志?a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。
因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。
b. 在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。
操作系统第二章课件第二章
§2.1 什么是操作系统一、操作系统的定义我们从系统的层次结构和资源管理这两个角度来看,操作系统的定义为:操作系统(Operating System,简称OS)是直接控制和管理计算机系统内各种硬件和软件资源的最基本的系统软件,合理地组织计算机工作流程以及方便用户的程序集合,是用户与计算机之间的接口。
解释:资源的概念被计算机系统工作时所引用的一切客体都称为资源。
这里所说的客体可能是处理机、设备、内存、外存等硬件,也可能是程序、数据、信息等软件。
为了资源可以被引用,资源都有名字。
控制资源的使用,有两条资源管理命令:申请资源和释放资源。
我们约定:申请命令在程序使用资源前发出,如果所申请的资源可以使用,则程序可立即得到该资源的使用权,称为程序占有该资源或把这个资源分配给申请它的程序。
释放命令在程序使用资源后发出,表示程序放弃对于资源的使用权,称为程序释放该资源或把这个资源由占有它的程序处收回。
操作系统需要管理的资源一般多是下面三种类型:单一资源--由一个资源实体组成的资源。
如一台打字机、一台处理机等。
根据单一资源被占用的情况,分为“空闲”和“工作”两个状态。
有限资源--由若干个相同的单一资源组成的资源集合。
它的使用限制与集合中元素的个数有关,它可以被多次占用,也可以被不同的程序同时占用。
如内存是由多个单一资源即单元构成的,是有限资源。
无穷资源--由无限多个相同单一资源组成的资源集合。
如果有限资源中的元素个数多到充分够用,可以看作由无穷多个单一资源所组成。
如当内存的容量无限大时,可以看成是无穷资源。
二、操作系统的主要功能操作系统主要有五大功能:★存储器管理:内存分配、地址映射、内存保护和内存扩充。
★处理机管理:作业和进程调度、进程控制和进程通信。
★设备管理:缓冲区管理、设备分配、设备驱动和设备无关性。
★文件管理:文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理和存取控制。
★用户界面管理:命令界面、程序界面和图形界面。
王道操作系统第2章2024
引言概述:正文内容:一、进程概念1.进程定义:解释了进程的概念,即操作系统中正在运行的程序的抽象表示。
2.进程特点:介绍了进程的特点,包括并发性、独立性、动态性等。
3.进程的组成:详细说明了进程的组成部分,如程序代码、数据、程序计数器等。
二、进程状态转换1.进程状态定义:解释了进程状态的概念,包括就绪状态、执行状态和阻塞状态。
2.进程状态转换图:介绍了进程状态之间的转换关系,包括就绪态到执行态、执行态到阻塞态等转换过程。
3.进程状态转换的原因:详细说明了进程状态转换的原因,如系统调用、I/O请求等。
三、进程控制块1.进程控制块定义:解释了进程控制块的概念,即操作系统中用于管理进程的数据结构。
2.进程控制块内容:介绍了进程控制块中包含的信息,如进程标识符、程序计数器、寄存器值等。
3.进程控制块的作用:详细阐述了进程控制块在进程管理中的作用,如记录进程的状态、管理进程资源等。
四、进程调度1.进程调度策略:解释了进程调度的概念和目标,介绍了常见的调度策略,如先来先服务调度、短作业优先调度等。
2.进程调度算法:详细介绍了进程调度的几种常见算法,包括FCFS算法、SJF算法以及时间片轮转算法等。
3.进程优先级调度:阐述了进程优先级调度的概念和实现方式,包括静态优先级和动态优先级调度。
五、进程同步与通信1.进程同步问题:解释了进程同步的概念和需要,介绍了产生进程同步问题的原因,如资源竞争、进程间依赖等。
2.进程同步方法:详细阐述了几种常见的进程同步方法,包括互斥锁、信号量等。
3.进程通信机制:介绍了进程通信的概念和实现方式,包括管道、消息队列、共享内存等。
总结:通过本文的阐述,我们对王道操作系统第2章(二)的内容有了全面的了解。
我们详细介绍了进程概念、进程状态转换、进程控制块、进程调度以及进程同步与通信等方面的内容,并在每个大点中详细阐述了相关的小点。
操作系统进程管理是操作系统的重要组成部分,对于理解操作系统的运行机制具有重要意义。
操作系统第二章2
一、进程同步的基本概念
2、临界资源、临界区
实现各进程互斥进入临界区 进程须在临界区前面增加一段用于进行上述检 查的代码,称为进入区(entry section)。在临界区后 面加上一段称为退出区(exit section)的代码。 while (1) { 进入区 进入区代码; 临界区 临界区代码; 退出区 退出区代码; 剩余区 其余代码 ; }
一、进程同步的基本概念 请大家自己写出消费者流程!
生产者流程
1. 生产新产品 2. 放入缓冲区 ① 判断是否已满 ② 放入新产品 ③ 输入指针+1 ④ 计数器+1 3. 回到第1步
producer: repeat produce an item in nextp; while counter=n do no-op; Buffer[in]:=nextp; in:=(in+1) mod n; counter:=counter+1; until false;
一.进程同步的基本概念 1.两种形式的制约关系 2.临界资源、临界区 3.同步机制应遵循的规则 二.信号量机制 1.整型信号量 2.记录型信号量 3.AND型信号量集、一般信号量集 三.信号量的应用 1.信号量实现进程互斥 2.信号量描述进程间的前趋关系
一、进程同步的基本概念
1、两种进程关系
系统中诸进程之间在逻辑上存在着两种制约关系:
2、记录型信号量
•信号量的一般结构及PCB队列
信号量的声明:semaphore S;
2、记录型信号量
P、V操作定义 若申请资源不成功,则 该进程阻塞,将该进程 的PCB插入等待队列S.L 的末尾;若申请成功, 则进程继续。
P(S) //= wait(S) { S.value=S.value-1; if (S.value < 0) block(S.L); }
操作系统(徐宗元主编)ppt第二章
教学要求
• 熟悉进程引入的必要性;熟练掌握进程的定义和 特征,熟练掌握进程的三个基本状态、状态的转 换和状态转换的关系,熟练掌握进程存在的唯一 实体--进程控制块,熟悉进程上下文。 • 熟悉内核的功能,掌握增加“挂起”、 “激活” 操作的五个状态图和状态的转换,熟悉创建、撤 消、阻塞、唤醒、挂起和激活进程控制原语的功 能,了解线程的概念、引入线程的好处和线程的 应用 。
进程的引入-4
例:观察者/报告者 观察者: begin repeat wait a car go through N=N+1; 报告者: begin repeat delay a time Print N ; N=0 ; until end Print N ; N=N+1 ; N=0 ; 打印100,N=0;
P29 图2-3 进程的三个基本状态转换图
运行态
时间片已用完
进程调度 等待事件已发生
等待某一事件发生
就绪态
阻 塞 态
2.进程状态的转换
三个基本状态之间可能转换和转换原因如下: 就绪态――>运行态:当处理机空闲时,进程调度程序必将 处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转 换为运行态。 运行态――>阻塞态:处于运行态的进程在运行过程中需要 等待某一事件发生后(例如因I/O请求等待I/O完成后), 才能继续运行,则该进程放弃处理机,从运行态转换为阻塞 态。 阻塞态――>就绪态:处于阻塞态的进程,若其等待的事件 已经发生,于是进程由阻塞态转换为就绪态。 运行态――>就绪态:处于运行状态的进程在其运行过程中, 因分给它的处理机时间片已用完,而不得不让出(被抢占) 处理机,于是进程由运行态转换为就绪态。 • 而阻塞态――>运行态和就绪态――>阻塞态这二种状态转 换不可能发生。
操作系统第2章
第二章进程及作业管理§1 进程概念§2 系统内核§3 进程控制 §4 进程同步 §5 进程通讯 §6 作业概念 §7作业控制§1 进程概念1.1 程序的顺序执行与并发执行在单道程序系统中,程序的执行必然具有下述特性:(1) 顺序性(2) 封闭性(3) 无关性(4) 可再现性对于多道程序系统,程序的执行就有一些新的特性:(1) 异步性(2) 竞争性(3) 相互制约(4) 与速度有关设有两个循环结构的程序A和B,它们共享一个公共变量n。
程序A每执行一次循环都要作n:=n+1操作;程序B 在每一次循环中打印出n的值,然后将n置0。
对此的PASCAL描述如下:cobegin/coend表示并发结构,其中的程序可以并发执行。
由于程序A和B都是异步执行,它们的语句在时间上可能是穿插或交叉执行的,故程序A的n:=n+1操作既可能在程序B的print(n)和n:=0操作之前或之后执行,也可能在它们之间执行(即n:=n+1出现在print(n)之后,而在n:=0之前)。
于是,程序的运行可能产生三组不同的执行轨迹和结果(设在开始某个循环之前n=v):1.2 进程定义(1) 进程是一种动态概念。
(2) 进程的实体是程序和数据集合。
(3) 进程是可并发的运行单位。
1.3 进程的状态(1) 执行状态(2) 就绪状态(3) 等待状态(4) 停止状态(5) 死锁状态图2-1 进程的生命历程图2-2 具有挂起状态的进程生命历程1.4 进程控制块图2-3 进程的物理表示PCB包含了进程的描述信息和控制信息,通常有如下项目:(1) 标识符(2) 存贮信息(3) 现行状态(4) 优先数(5) 现场信息(6) 链接字(或称队列指针)(7) 族系关系(8) 资源清单(9) 其他PCB的内容和大小随系统不同而异,它不仅和具体系统的管理及控制方法有关,也和系统规模的大小有关。
操作系统第二章练习2 答案
1.P、V操作是 A 。
A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语2.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是 A 。
A.没有运行进程,有2个就绪进程,n个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
3.若P、V操作的信号量S初值为2,当前值为-1,则表示有 B 等待进程。
A. 0个 B. 1个 C. 2个 D. 3个4.用V操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。
A.等待B.就绪C.运行D.完成5.用P、V操作可以解决 A互斥问题。
A.一切B.某些C.正确D.错误6.多道程序环境下,操作系统分配资源以C 为基本单位。
A.程序B.指令C.进程D.作业7.从下面对临界区的论述中,选出一条正确的论述。
(1)临界区是指进程中用于实现进程互斥的那段代码。
(2)临界区是指进程中用于实现进程同步的那段代码。
(3)临界区是指进程中用于实现进程通信的那段代码。
(4)临界区是指进程中用于访问共享资源的那段代码。
(5)临界区是指进程中访问临界资源的那段代码。
8.(A)是一种只能由wait和signal操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。
A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。
B:(1)同步;(2)通信;(3)调度;(4)互斥。
C:(1)同步;(2)通信;(3)调度;(4)互斥。
9.对于记录型信号量,在执行一次wait操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。
在执行signal操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。
操作系统(徐宗元主编)ppt第二章-第二部分解析
Windows2000的基元成分――对象-1
• Windows 2000中的实体,当数据或资源对用户态开放时, 或者当数据访问是共享的或受限制时,才使用对象。采 用对象方法表示的实体有文件、进程、线程、信号量、 互斥量、事件、计时器等。Windows 2000通过对象管理 器以一致的方法创建和管理所有的对象类型,对象管理 器代表应用程序负责创建和删除对象,并负责授权访问 对象的数据和服务。 • 每一个对象都有一个对象头和一个对象体。对象管理 器控制对象头,各执行体组件控制它们自己创建的对象 类型的对象体。 • 当进程通过名称来创建或打开一个对象时,它会收到一 个代表进程访问对象的句柄。所有用户态进程只有获得 了对象句柄之后才可以使用这个对象。句柄作为系统资 源的间接指针来使用,这种不直接的方式阻止了应用程 序对系统数据结构直接地随便操作。
4.Windows 2000的基元成分― ― 对象(object)、进程(process)、线程(Thread) 对象、进程、线程是Windows2000三个基元成 份,它们之间有互相交叉的关系。
• 对象是一个抽象的数据结构,在Windows2000中用以 表示广义的资源。它是构成OS的三个基元成份中非 活动的成份,对象是数据和有关操作的封装体,它 包装数据、数据的属性以及可以施加于数据的操作 等三个成份。具有相同特性的对象也可归为一个对 象类,在软件设计中定义了对象类(称为类Class), 而对象则是对象类一个具体实现的示例。对象作为 抽象数据而封装在其内部的操作函数所提供的操作 也给人活动成份的感觉,但是从操作系统这一角度 来认识,对象是构成操作系统的非活动成份。而进 程和线程则是构成OS的两个活动成份。
当一个线程调用CreateProcess时,系统就会创建 一个进程内核对象,为新进程创建一个虚拟地 址空间,并将可执行文件加载到该进程的地址 空间中。然后系统再为新进程的主线程创建一 个线程内核对象。通过执行启动代码,该主线 程便开始运行,它最终调用WinMain、 wWinMain、main或wmain函数。如果系统成功 地创建了新进程和主线程,该函数便返回 TRUE。
操作系统第二章
程序一旦开始执行,其执行结果不受外界的影响,当程序 的初始条件给定之后,其后的状态只能由程序本身确定 ,即只有本程序才能改变它。
结果的可再现性
程序执行的结果与初始条件有关,而与执行时间无关。即 只要程序的初始条件相同,它的执行结果是相同的,不 论它在什么时间执行,也不管计算机的运行速度。
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征
2
1、程序的顺序的概念
一个程序由若干个程序段组成,而这些程序段的执行必 须是顺序的,这种程序执行的方式就称为程序的顺序 执行。
例如:
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征
3
2、程序顺序执行的特征 顺序性
处理机严格按照程序所规定的顺序执行,即每个操作必须
进程是执行中的程序。(Ken Thompson and Dennis Ritchie )
有的教材上给出的进程的定义: 进程,即是一个具有一定独立功能的程序关于某个数据集 合的一次活动。
2.1 进程的基本概念
2.1.4 进程(process)的特征与状态
21
C . 进程与程序的区别:
1)程序是指令的集合,是静态的概念。 进程是程序在处 理机上的一次执行的过程,是动态的概念。程序可以 作为软件资料长期保存。进程是有生命周期的。
16
假设有两个缓冲区,每个缓 冲区只存放一个字符,get 程序负责从输入序列f中读 一个字符,然后,送到缓 冲 区 s 中 , copy 程 序 负 责 将s中的字符复制到t中, put负责从t中提取字符打 印。 这个算法是正确与否?
YES
算法: 输入:f 输出:g {
if (f不为结束符) {
计算机操作系统第二章
计算机操作系统第二章计算机操作系统是计算机系统的核心组成部分,它管理着计算机的硬件和软件资源,为用户和应用程序提供服务。
在这第二章中,我们将深入探讨计算机操作系统的一些关键概念和功能。
首先,让我们来了解一下进程管理。
进程可以简单地理解为正在运行的程序的实例。
操作系统需要有效地管理进程,包括进程的创建、调度、切换和终止。
进程调度是其中的关键环节,它决定了哪个进程在什么时候能够获得 CPU 的使用权。
常见的调度算法有先来先服务、短作业优先、时间片轮转等等。
这些算法各有优缺点,操作系统会根据不同的场景和需求选择合适的调度算法,以实现系统的高效运行和资源的合理分配。
内存管理也是操作系统的重要职责之一。
计算机的内存是有限的资源,操作系统需要确保内存被合理地分配和使用,避免出现内存泄漏和内存碎片等问题。
虚拟内存技术是解决内存不足问题的常用方法,它通过将一部分硬盘空间模拟成内存来扩展计算机的可用内存。
这样,即使物理内存有限,计算机也能够运行较大的程序。
文件系统是计算机操作系统中用于存储和管理文件的部分。
文件可以被看作是一组相关数据的集合,文件系统负责对文件进行组织、存储、检索和保护。
不同的操作系统可能采用不同的文件系统格式,如Windows 常用的 NTFS,Linux 常用的 Ext4 等。
文件系统还需要处理文件的权限管理,以确保只有授权的用户能够访问和修改特定的文件。
设备管理在操作系统中也占有重要地位。
计算机系统中的设备包括输入设备(如键盘、鼠标)、输出设备(如显示器、打印机)以及存储设备(如硬盘、U盘)等。
操作系统需要为设备提供驱动程序,以便设备能够正常工作,并对设备的使用进行协调和管理,避免多个程序同时访问设备时产生冲突。
操作系统还需要提供良好的用户接口,以便用户能够方便地与计算机进行交互。
常见的用户接口包括命令行界面和图形用户界面。
命令行界面适合专业人员进行高效的操作和管理,而图形用户界面则更加直观和易于上手,适合普通用户使用。
操作系统第2章
进程的PCB的首地址。
第二章 进 程 管 理
3. 进程控制块的组织方式 1) 链接方式
执 行指 针 P CB1 P CB2 就 绪队 列 指 针 P CB3 P CB4 P CB5 阻 塞队 列 指 针 P CB6 P CB7 P CB8 空 闲队 列 指 针 P CB9
…
4 3 0 8 7 9 0 1
第二章 进 程 管 理
I1
C1
P1
I2
C2
P2
S1
S2
S3
(a 顺 序 执 行
图 2-1 程序的顺序执行
第二章 进 程 管 理
2. 程序顺序执行时的特征
(1) 顺序性:
(2) 封闭性: (3) 可再现性:
第二章 进 程 管 理
2.1.2 前趋图
如图2-8所示,引进创建和终止状态后,在进程状态转换 时,相比较图2-7所示的进程五状态转换而言,需要增加考虑
下面的几种情况。
(1) NULL→创建
(2) 创建→活动就绪 (3) 创建→静止就绪 (4) 执行→终止
第二章 进 程 管 理
2.1.5 进程控制块
1. 进程控制块的作用 进程控制块的作用是使一个在多道程序环境下不能 独立运行的程序(含数据),成为一个能独立运行的基本单 位,一个能与其它进程并发执行的进程。或者说,OS是
根据PCB来对并发执行的进程进行控制和管理的。
第二章 进 程 管 理
2. 进程控制块中的信息 1) 进程标识符
进程标识符用于惟一地标识一个进程。一个进程通常
有两种标识符: (1) 内部标识符。在所有的操作系统中,都为每一个进 程赋予一个惟一的数字标识符,它通常是一个进程的序号。 设置内部标识符主要是为了方便系统使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
(1)进程是程序的一次运行活动。 进程是程序的一次运行活动 一次运行活动。 (2)进程的运行活动是建立在某个数据集合之上的。 进程的运行活动是建立在某个数据集合之上的。 某个数据集合之上的 获得资源的基础上从事自己的运行活动 (3)进程要在获得资源的基础上从事自己的运行活动。 进程要在获得资源的基础上从事自己的运行活动。
4
在单道程序设计环境下,系统具有如下特点: 特点: 在单道程序设计环境下,系统具有如下特点 (1)资源的独占性:任何时候,位于内存中的程序可 资源的独占性:任何时候, 以使用系统中的一切资源, 以使用系统中的一切资源,不可能有其他程序与之竞 争。 (2)执行的顺序性:由于内存中每次只有一个程序, 执行的顺序性:由于内存中每次只有一个程序, 因此各个程序是按次序执行 按次序执行的 即做完一个以后, 因此各个程序是按次序执行的,即做完一个以后,再 做下一个。绝对不可能出现在一个程序运行过程中, 做下一个。绝对不可能出现在一个程序运行过程中, 又夹杂进另一个程序执行的现象存在。 又夹杂进另一个程序执行的现象存在。 (3)结果的再现性:只要执行环境和初始条件相同, 结果的再现性:只要执行环境和初始条件相同, 重复执行一个程序,获得的结果总是一样的 总是一样的。 重复执行一个程序,获得的结果总是一样的。
1
第2章 处理机管理
计算机系统中,最宝贵的资源是CPU。 计算机系统中,最宝贵的资源是CPU。为了提 高它的利用率,需要引入多道程序设计的概念。 高它的利用率,需要引入多道程序设计的概念。 当内存储器中同时有多个程序存在时, 当内存储器中同时有多个程序存在时,如果不 多个程序存在时 对人们熟悉的“程序”概念加以扩充, 对人们熟悉的“程序”概念加以扩充,就无法刻画 多个程序共同运行时系统呈现出的特征 多个程序共同运行时系统呈现出的特征。 特征。 因此,在本章将给出操作系统中的重要概念 因此,在本章将给出操作系统中的重要概念: 重要概念: “进程”。它将是在多道程序运行环境下,系统资 进程” 它将是在多道程序运行环境下 在多道程序运行环境下, 基本单位。 源分配和独立运行的基本单位 源分配和独立运行的基本单位。
9
在多道程序设计环境下,系统具有如下特点。 在多道程序设计环境下,系统具有如下特点。 (1)执行的并发性:从宏观上看,同时在内存的多个程序都在执 都在执 执行的并发性:从宏观上看,同时在内存的多个程序都在 行着, 按照自己程序规定的步骤向前推进 从微观上看, 程序规定的步骤向前推进; 行着,在按照自己程序规定的步骤向前推进;从微观上看,由于 CPU在任何时刻只能执行一个程序 因此这些程序轮流占用CPU 在任何时刻只能执行一个程序, CPU, CPU在任何时刻只能执行一个程序,因此这些程序轮流占用CPU, 交替地执行着。 交替地执行着。 我们把“逻辑上相互独立的程序,在执行时间上相互重叠 独立的程序 重叠, 我们把“逻辑上相互独立的程序,在执行时间上相互重叠, 一个程序的执行还没有结束,另一个程序的执行已经开始” 一个程序的执行还没有结束,另一个程序的执行已经开始”的这 特性,称为程序执行的并发性 并发性。 种特性,称为程序执行的并发性。 (2)相互的制约性:内存既然运行着多个程序,它们又共享系统 相互的制约性:内存既然运行着多个程序, 内的资源,相互之间必然会呈现出各种各样的制约。一种是间接 内的资源,相互之间必然会呈现出各种各样的制约。一种是间接 ),一种是直接制约关系( 制约关系(数量有限),一种是直接制约关系 等待结果) 制约关系(数量有限),一种是直接制约关系(等待结果) 。 (3)状态的多变性:由于诸多程序在系统中并发执行,它们之间 状态的多变性:由于诸多程序在系统中并发执行, 在运行过程中存在着各种各样的制约关系,造成内存中每一个程 在运行过程中存在着各种各样的制约关系, 序的状态总处于不断变化之中。 不断变化之中 序的状态总处于不断变化之中。
10
在多道程序设计环境下,“程序”具有了与单 在多道程序设计环境下, 程序” 道程序设计环境下截然不同的特性。 道程序设计环境下截然不同的特性。 一方面为了保持程序 是一个在时间上 一方面为了保持程序“是一个在时间上严格有 为了保持程序“ 时间上严格有 序的指令集合”这个概念的原有含义,另一方面为 序的指令集合”这个概念的原有含义,另一方面为 了刻画多个程序共同运行时呈现出的这些特征 共同运行时呈现出的这些特征, 了刻画多个程序共同运行时呈现出的这些特征,因 此在操作系统中, 程序”为基础, 此在操作系统中,以“程序”为基础,又引入了 进程”这一新的概念。 “进程”这一新的概念。
6
“程序执行的顺序性”被打破了 程序执行的顺序性” 程序执行的顺序性
7
“结果的再现性”被打破了。 结果的再现性”被打破了。 举例来说,为了了解某单行道的交通流量,在路 举例来说,为了了解某单行道的交通流量, 口安放一个监视器 功能是有车通过该路段时, 口安放一个监视器,功能是有车通过该路段时,就向 监视器, 计算机发送一个信号。 计算机发送一个信号。 为计算机系统设计两个程序:程序A的功能是接 为计算机系统设计两个程序:程序A 收到监视器的信号时,就在计数单元COUNT上加1; 收到监视器的信号时,就在计数单元COUNT上加 上加1 程序B的功能是每隔半小时,将计数单元COUNT的值 程序B的功能是每隔半小时,将计数单元COUNT的值 初始时为0 打印输出,然后清零。COUNT初始时为0,两个程序 打印输出,然后清零。COUNT初始时为 的描述如图2 所示。 的描述如图2-2所示。
2
本章着重讲述五个方面的内容: 本章着重讲述五个方面的内容:
(1)进程概念的引入; (2)进程的组成与管理; (3)处理机的调度算法; (4)线程概念的引入; 线程概念的引入; (5)处理机的二级调度与作业管理。
3
2.1 进
程
2.1.1 多道程序设计
所谓“程序”,是一个在时间上严格有序的指令集合。 有序的指令集合。 所谓“程序” 是一个在时间上严格有序的指令集合 各种操作, 程序规定了完成某一任务时,计算机所需做的各种操作 程序规定了完成某一任务时,计算机所需做的各种操作, 以及这些操作的执行顺序 执行顺序。 以及这些操作的执行顺序。 在没有引入多道程序设计的概念之前,只要一提到程 在没有引入多道程序设计的概念之前, 独占使用系统中的一切资源 就表明它独占使用系统中的一切资源,如处理机( 序,就表明它独占使用系统中的一切资源,如处理机(指 它里面的指令计数器、累加器、各种寄存器等)、 )、内存储 它里面的指令计数器、累加器、各种寄存器等)、内存储 外部设备以及软件等,没有其他竞争者与它争夺与共 器、外部设备以及软件等,没有其他竞争者与它争夺与共 享。
11
2.1.2 进程的定义
“进程(Process)”是现代操作系统设计中 进程(Process) 的一个基本概念 也是一个管理实体 基本概念, 管理实体。 的一个 基本概念 , 也是一个 管理实体 。 它最早被 用于美国麻省理工学院的MULTICS系统和 系统和IBM的 用于美国麻省理工学院的MULTICS系统和IBM的 CTSS/360 CTSS/360 系 统 , 不 过 那 里 称 其 为 “ 任 务 Task) 其实是两个等同的概念。 等同的概念 (Task)”,其实是两个等同的概念。
(1)系统进程之间的相互关系由操作系统负责协调,以便有利于增加系统 系统进程之间的相互关系由操作系统负责协调 操作系统负责协调, 并行性,提高资源的整体利用率 用户进程之间的相互关系要由用户 利用率; 的并行性,提高资源的整体利用率;用户进程之间的相互关系要由用户 自己(在程序中)安排。 自己(在程序中)安排。 不过,操作系统会向用户提供一定的协调手段 以命令的形式)。 协调手段( 不过,操作系统会向用户提供一定的协调手段(以命令的形式)。 (2)系统进程直接管理有关的软、硬件资源的活动;用户进程不得插手资 系统进程直接管理有关的软、硬件资源的活动;用户进程不得插手 直接管理有关的软 不得插手资 申请, 源管理。在需要使用某种资源时,必须向系统提出申请 由系统统一调 源管理。在需要使用某种资源时,必须向系统提出申请,由系统统一调 分配。 度与分配。 (3)系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分 系统进程与用户进程都需要使用系统中的各种资源, 都需要使用系统中的各种资源 高于用户进程。 配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程 配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。
8
因为现在是多道程序设计环境 程序A和程序B 因为现在是多道程序设计环境,程序A和程序B同时在 多道程序设计环境, 内存。当然,内存中可能还会有其他的程序存在。 内存 。当然 ,内存中可能还会有其他的程序存在。 由于执 行的顺序性被打破了,这些程序的执行过程被交织在一起 交织在一起, 行的顺序性被打破了,这些程序的执行过程被交织在一起, 没有任何规律可循。为了突出,单单挑出程序A和程序B 没有任何规律可循。为了突出,单单挑出程序A和程序B来 研究。 研究。 在它们之间,不排除会有这样的执行顺序发生: A1→A2 → B1 → B2 → A1 → A2 → B3,即在程序B 即在程序B 做了B 没有直接执行B 而是中间插入了程序A 做了B1和B2后,没有直接执行B3,而是中间插入了程序A 的两个操作,这就出现了问题 出现了问题。 的两个操作,这就出现了问题。
5
在多道程序设计环境下,内存中允许有多个程序 在多道程序设计环境下,内存中允许有多个程序 存在,它们轮流地使用着CPU。这时, 轮流地使用着 存在,它们轮流地使用着CPU。这时,上述的三个特 点就都荡然无存了。 点就都荡然无存了。 “资源的独占性”被打破了。 资源的独占性”被打破了。
比如,内存不再只由一个程序占用, 比如,内存不再只由一个程序占用,而是被分配给若干 个程序使用;又比如,原来内存中的程序进行输入 输出时, 内存中的程序进行输入/ 个程序使用;又比如,原来内存中的程序进行输入/输出时, CPU就只能空转 以等待输入/输出操作的完成。现在, CPU就只能空转,以等待输入/输出操作的完成。现在,当程 就只能空转, 等待输入/输出操作完成时, 可以把CPU分配给 分配给内存中 序A等待输入/输出操作完成时,就可以把CPU分配给内存中 另一个可运行的程序 去使用。 可运行的程序B 的另一个可运行的程序B去使用。 这样,CPU在运行程序 在运行程序B 外部设备在为程序A服务。 这样,CPU在运行程序B,外部设备在为程序A服务。图 2-1(b)中的时间区间(4~6)正好是这种情况。 1(b)中的时间区间 4~6)正好是这种情况。 中的时间区间(