操 作 系 统 - .:六安电大:.

Download Report

Transcript 操 作 系 统 - .:六安电大:.

操作系统
张荣富
第一章
操作系统引论
介绍操作系统的基础知识及其
形成和发展,以及操作系统的分类
和几种比较熟悉的操作系统.
一、计算机系统组成
计
算
机
系
统
硬件
中央处理器(处理机,CPU)
存储器(内存、辅存)
I/O设备(输入/输出设备)
软件
系统软件(如操作系统)
支撑软件(工具软件)
应用软件(如图形处理系统)
1、用户命令执行流程
内存 执行结果在CPU
用户的键盘操
作在CPU的控
的控制下又反馈
制下调入内存
到显示器
然后CPU从内
键盘
显示器
存中取出用户
的命令,执行
后返回结果
CPU
2、操作系统的概念
操作系统是控制和管理计算机系统内
各种硬件和软件资源、有效地组织多道程
序运行的系统软件(或程序集合),是用
户与计算机之间的接口。
三要点:
①是软件,且是系统软件
②基本职能是控制和管理系统资源
③提供服务,方便用户使用
3、操作系统的功能
处理机管理
存储器管理
设备管理
文件管理
用户接口
(1)处理机管理
在一段时间内,只能有一个进程在CPU
中执行。
①作业和进程调度
②进程控制
③进程通信
同步方式和互斥方式;通信机制
(2)存储器管理
计算机存储器的设计目标可以归纳成三
个问题:多少?多快?多贵?
①内存分配
②地址映射(逻辑地址、物理地址)
③内存保护(上界地址值、下界地址值)
④内存扩充(虚拟存储技术)
(3)设备管理
计算机外设种类众多,而且各种设备的
传输速度差异很大,很难开发一种通用的、
一致的解决方案。
①缓冲区管理
②设备分配
③设备驱动
④设备无关性
前进
各种设备速度比较表(b/s)
设备
传输速度 设备
传输速度
键盘
90
光盘
9000000
鼠标
200
以太网
10000000
Modem
80000
硬盘
90000000
软盘
900000
图形显示设备
700000000
激光打印机 2000000 千兆位以太网
扫描仪
1000000000
5000000
返回
(4)文件管理
在大多数应用中,文件是一个核心成分,
除了实时应用和一些特殊应用外,应用程序
的输入都是通过文件来实现的。
①文件存储空间的管理
②文件操作的一般管理
③目录管理
④文件的读写管理和存取控制
(5)用户接口
操作系统为用户操作提供良好的硬件接
口。
①命令界面(DOS, Unix, windows命令行)
②程序界面(系统调用界面)
③图形界面(windows窗口, Linux的Xwindow)
4、操作系统的地位
终端用户
程序员
应用程序
实用程序
操作系统
计算机硬件
操作系统
设计者
二、操作系统的发展历程
1、手工操作阶段(串行处理)
2、早期批处理阶段
3、多道批处理系统
4、操作系统的发展
早期批处理阶段
简单批处理方案的中心思想是使用一个称
作监控程序的软件。通过使用监控程序,用户
不再直接访问机器,相反,用户把卡片或磁带
中的作业提交给计算机操作员,由他把这些作
业按顺序组织一批,并将整个批作业放在输入
设备上,供监控程序使用。每个程序完成处理
后返回到监控程序,同时,监控程序自动加载
下一个程序。
早期联机批处理、早期脱机批处理
多道程序设计
基本思想:在内存中同时存放多道程
序,在管理程序的控制下交替地执行。
程序A
运行
等待
运行
等待
运行
等待
单道程序设计
程序A
程序B
组合
运行
等待
等待
运行
运行 运行
等待
等待
多道程序设计
运行
等待
运行 运行
等待
三、操作系统的特征和体系结构
1、特征
①并发
指两个或多个活动在同一给定的时间间隔中进行
②共享
指计算机系统中的资源被多个任务所共用
③异步性
2、体系结构
①单块式结构
难于修改,可靠性低
②层次结构
按照操作系统各模块的功能和相互储存关系,把系
统中的模块分为若干层,其中任一层模块(除底层
外)都建立在它下面一层的基础上
③微内核结构
四、操作系统的类型
1、多道批处理系统
2、分时系统
3、实时系统
4、个人机系统
5、网络操作系统
6、分布式操作系统
多道批处理系统
特点:多道、成批
优点:资源利用率高、系统吞吐量大
缺点:等待时间长、没有交互能力
分时系统
分时主要指若干并发程序对CPU时间的共享
特点:同时性、交互性、独立性、及时性
优点:响应快界面友好、多用户便于普及、
便于资源共享
多道批处理和分时比较
多道批处理
主要目标
系统指令源
最有效地使用处理器
作业控制语言
作业提供的命令
分时
减小响应时间
终端键入的
命令
实时系统
特点:响应时间很快、可以在毫秒甚至微秒
应用:过程控制系统、信息查询系统、事务
处理系统
与分时系统区别:
交互能力较弱,系统专用
响应时间更严格、及时
可靠性要求更高
个人机系统
单用户操作系统:
MS-DOS,OS/2,Windows95\98\NT
多用户操作系统:
Solaris,SVR4,AIX,SCO OpenServer,
SCO UnixWare 7,XENIX,Linux,
Windows 2000\XP
网络操作系统
计算机网络=计算机技术+通信技术
特征:
分布性、自治性、互连性、可见性
网络操作系统一般建立在各个主机的本地
操作系统基础之上,其功能是:
网络通信、资源共享和保护、网络服务、
网络接口
分布式操作系统
特征:
分布式处理、模块化结构、利用信息通信、
实施整体控制
特点:
透明性、灵活性、可靠性、高性能、可扩
充性
五、主要产品
1、DOS
2、Windows
3、OS/2
4、UNIX/Linux
5、Macintosh(苹果机)
6、NetWare(Novell)
六、用户界面
1、命令界面
2、图形界面
3、系统调用
复习
1、操作系统的概念
操作系统是管理和控制计算机硬件和软件资源的系统软件,
是用户与计算机之间的接口。
2、操作系统的功能
操作系统的五项功能:
处理机管理、存储管理、文件管理、设备管理、用户接口
3、多道程序设计
多道程序设计是指多道程序在内存中并发执行。
第二章
进程管理
重点关注典型的操作系统中用
于进程管理的数据结构和技术。
一、进程的基本概念
问题:
1、什么是进程?
2、为什么要引入“进程”这一概念?
3、我们知道计算机运行的是程序,
跟进程这一概念有联系或区别吗?
1、为什么要引入进程这一概念
通过上节课的学习,我们知道,早先的单道程序设计中计算机程
序的执行是严格按照程序编写顺序执行(顺序性)。也就是说,程序
是怎么编的,计算机就按什么顺序执行。那么只有等待此程序运行完
毕后,才能运行其他程序(封闭性)。显然,程序不管何时运行都能
得出一样的结果(可再现性)。
然而,为了提高整个系统的效率,现代的操作系统都采用了多道
程序设计。也就是多道程序同时放在内存中让CPU选取加以执行。那
么,程序的运行会发生如何的变化呢?
指令轨迹:
1
2
3
4
5
6
5000
5001
5002
5003
5004
5005
-----------超时
7
100
8
101
9
102
10 103
11 104
12 105
13 8000
14 8001
-----------I/O请求
15 100
16 101
17
18
19
20
21
22
23
24
25
26
102
103
104
105
12000
12001
12002
12003
12004
12005
------------超时
27 100
28 101
29 102
30 103
31 104
32 105
33 5006
34
35
36
8000
8001
8002
------------I/O请求
37 100
38 101
39 102
40 103
41 104
42 105
43 ……
1、为什么要引入进程这一概念
现有甲、乙两个人,甲运行程序A,乙运行程序C:
在早先的单道程序设计中,如果甲、乙两个商量好甲先运行,然
后乙再运行。那么输出的结果就是:甲得到的是1,乙得到的是2。如
果乙先运行甲后运行,那么甲得到的是1,乙得到的也是1。这个运行
结果完全可以由人为因素和程序的编写过程控制。
然而,在多道程序设计中。多道程序同时放在内存中让CPU选取加
以执行。也就是说,这三道程序A、B、C同时放在内存中让操作系统
决定CPU先执行哪一个。那么这三个程序的地位是平等的,到底是哪
个程序先运行?显然整个程序的运行结果不再完全由自身决定,它跟
程序的运行环境和程序间的相对速度有关。
这样一来,程序本身的封闭性也就不再具有。
1、为什么要引入进程这一概念
在早期的单道程序设计中,程序是一个一个依次执行的。一个程
序就对应唯一的一个执行过程。
在多道程序设计中,程序A调用B,程序C也调用B。这样在程序执
行过程中,程序B是程序A和C的共享资源。在程序A调用B时,B属于程
序A执行过程的一部分;当程序C调用B时,B属于程序C执行过程的一
部分。
这样一来,一个程序就不再对应一个执行(计算)过程。一个程
序可以对应多个执行过程,一个执行过程也可以对应多个程序。
1、为什么要引入进程这一概念
在早期的单道程序设计中,程序是一个一个依次执行的。一个程
序的执行跟别的程序的执行是没有什么关系的。
在多道程序设计中,程序A调用打印机,程序C也调用打印机,我
们知道它们可以同时运行,那么打印机应该给谁使用呢?一种方案是
都给,既给A用又给B用,那结果可能是打印A一部分,再打印C一部分,
再打印A一部分。这种结果显然不是我们想要的。另一种方案是每次
只让一个程序调用。程序A打印完才程序C调用。
也就是说,一个程序的执行不再仅仅由自身代码决定,要受到其
它并发程序的制约。
1、为什么要引入进程这一概念
综上所述,由于多道程序并发执行时共享资源,共同决定这些资
源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关
系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态
执行过程中发生的。
而程序(Program)本身只是机器能够翻译或执行的一组动作或指
令,它或者写在纸上,或者存放在磁盘等介质上,是静止的。
显然,直接从“程序”的字面上无法看出它什么时候运行、什么
时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。
也就是说,用程序这个静态的概念已不能如实反映程序在并发执
行过程的这些动态特征。于是,人们引入“进程(Process)“这一概
念来描述程序动态执行过程的性质。
2、什么叫进程
进程的几种定义:
(1)进程(或任务)是可以和别的计算并发执行的计算
(2)进程是程序的一次执行,是在给定内存区域中的一组指令序
列的执行过程
(3)所谓进程,简单来说就是一个程序在给定活动空间和初始条
件下,在一个处理机上的执行过程
(4)进程可定义为一个数据结构和能在其上进行操作的一个程序
(5)进程是程序在一个数据集合上运行的过程,它是系统进行资
源分配和调度的一个独立单位
综上所述,进程最根本的属性是动态性和并发性。我们把进程定
义为:进程是程序在并发环境中的执行过程。
4、进程的特征
(1)动态性
(2)并发性
(3)调度性
(4)异步性
(5)结构性
3、进程的组成
进程的活动是通过在CPU上执行的一系列程序和对相应数据进行
操作来实现的,因此,程序和它操作的数据是进程存在的实体。
但这二者仅是静态的文本,没有反映出其动态性。还需要有一个
数据结构用来描述进程当前的状态、本身的特性等。这种数据结构被
称为进程控制块(Process Control Block,PCB)。
进程实体通常由程序、数据集合和PCB这三部分组成。
PCB
程序
数据集合
4、进程控制块PCB的组成
进程控制块是进程组成中最关键的部分,其中含有进程的描述信
息和控制信息,是进程动态特性的集中反映,它是系统对进程识别和
控制的依据,在不同的系统中,PCB的具体组成是不同的。
进程名
特征信息
PCB
进程状态信息
程序
数据集合
调度优先权
通信信息
现场保护区
资源需求分配信息
进程实体信息
族系关系
其它信息
5、进程控制块PCB的作用
进程控制块与进程关系:
①每个进程有唯一的PCB
②操作系统(OS)根据PCB管理进程
③利用PCB实现进程的动态、并发
④PCB是进程存在的唯一标志
6、进程队列
系统中有许多进程,处于就绪状态和处于阻塞状态的进程可分别
有多个,而阻塞的原因可以各不相同。这么的进程如何管理操作系统
才能找到呢?操作系统采用队列来对它们进行管理,也就是说,把他
们进行排队。
排队的方式有三种:
①线性方式:
操作系统预先确定整个系统中同时存在的进程的最大数目,静态
分配空间,把所有进程的PCB都放在这个表中。
②链接方式:
③索引方式:
进程排队方式
PCB
·
0
运行队列指针
·
PCB
PCB
0
就绪队列指针
·
PCB
PCB
阻塞队列1指针
·
阻塞队列2指针
PCB
PCB
0
PCB
PCB
0
复习
1、一个重要概念——进程
进程是程序在并发计算中的执行过程。
2、程序与进程的区别
(1)程序是静态概念,进程是动态概念
(2)进程是一个能独立运行的单位,而程序是以进程为单位执行的
(3)程序和进程无一一对应关系
(4)进程之间会产生相互制约关系,而程序没有
3、进程的状态
三种基本状态:运行态、就绪态、阻塞态
复习
4、三种状态之间的转换
运行态
就绪态
阻塞态
5、进程的组成
PCB
程序部分
数据集合
三、进程的管理和有关命令
(I)进程管理
1、进程的族系关系
系统中众多的进程存在族系关系;由父进程创建子进程,子
进程再创建子进程,……,从而构成一棵树型的进程族系图。
0
1
P1
P2
P11
P12
P21
(I)进程管理
2、原语操作
操作系统中在完成某些基本操作时,往往利用原语操作来实
现。所谓原语(primitive)是机器指令的延伸,是为完成某些特
定功能而编制的一段系统程序。为保证操作的正确性,在许多机
器中规定,执行原语操作时,要屏蔽中断,以保证其操作的不可
分割性。
内核中往往有很多原语,如创建进程、终止进程、阻塞进程
等。
3、进程创建原语
主要操作过程:
(1)申请一个空闲的PCB
(2)为新进程分配资源
(3)将新进程的PCB初始化
(4)将新进程加到就绪队列中
4、进程终止原语
主要操作过程:
(1)从系统的PCB表中找到指定进程的PCB。若它正处于运行态,
则立即终止该进程的运行
(2)回收该进程所占用的全部资源
(3)终止所有子孙进程,并回收所战用资源
(4)释放被终止进程的PCB
5、进程阻塞原语
主要操作过程:
(1)立即停止当前进程的执行
(2)保存进程CPU现场
(3)把进程PCB中的现行状态由“运行”改为阻塞,插入队列
(4)转到进程调度程序,重新从就绪队列中挑选一个运行
6、进程唤醒原语
主要操作过程:
(1)首先把被阻塞进程从相应的阻塞队列中摘下
(2)将现行状态改为就绪态,插入到就绪队列中
(3)检查进程优先级
7、进程映象更换原语
(1)释放子进程原来的程序和数据所占用的内存空间
(2)从磁盘中找出子进程所要执行的程序和数据
(3)分配内存空间,装入新的程序和数据
(4)为子进程建立初始的运行环境
(II)进程管理命令
1、UNIX系统中的进程状态
在UNIX S_5系统中,进程状态可分为10种:
(1)用户态运行
(2)核心态运行
(3)在内存就绪
(4)在内存睡眠
(5)在外存就绪
(6)在外存睡眠
(7)在内存暂停
(8)在外存暂停
(9)创建态
(10)终止态
(II)进程管理命令
(1)指向本进程的指针
(2)实际的和有效的用户标志号
(3)与时间有关的项
Proc结构
(4)对各种信号的处理方式表
PCB
(5)控制终端信息项
User结构
(6)错误信息项
程序部分
(7)系统调用结束的返回值
数据集合 (8)I/O参数
(9)当前目录和当前根
(10)用户打开文件表
(11)进程大小和可写文件大小的
限制信息
(12)对本进程所创建文件设置的
存取权限的屏蔽项
2、UNIX系统中的进程映象
(1)进程状态
(2)进程和USER结
构的位置
(3)用户标志号
UID
(4)进程PID
(5)进程睡眠原因
(6)进程调度参数
(7)信号区未处理
信号
(8)执行时间和资
源利用情况
(II)进程管理命令
2、UNIX系统中的管理进程的指令
(1)ps 命令——显示进程状态
功能:检查系统中当前存在的进程状态。
(2)sleep 命令——使进程睡眠
功能:使进程暂停执行一段时间,其参数单位是秒 。
(3)&——后台命令符
功能:命令行末尾加上&字符,此命令进程将在后台执行 。
(4)wait命令——等待后台进程结束
功能:等待后台进程结束。
(5)kill命令——终止进程
功能:终止一个进程的执行。
(6)nice命令——设置优先级
功能:以不同的优先级执行一条命令。
四、进程的相互作用和通信
1、进程的同步与互斥
进程的同步是指进程间完成一项任务时直接发生相互作用的关系。
进程的互斥是指排它性访问即竞争同一个物理资源而相互制约
2、临界资源和临界区
临界资源:一次仅允许一个进程使用的资源
临界区:在每个进程中访问临界资源的那段程序
互斥进入临界区的准则:
进程同步的典型特征是使用一个类似缓冲区的东西。而互斥的特征
是使用临界资源。
3、信号量的概念
①信号量的定义:
信号量(信号灯)=<信号量的值,指向PCB的指针>
②信号量的物理意义
信号的值:大于0,表示当前资源可用数量;小于0,其绝对值表示等
待使用该资源的进程个数
信号量初值为非负的整数变量,代表资源数
信号量值可变,但仅能由P、V操作来改变
4、P、V操作原语
P操作原语P(S):
1)P操作一次,S值减1,即S=S-1(请求分配一资源)
2)如果S≥0,则该进程继续执行;
如果S<0表示无资源,则该进程的状态置为阻塞态,把相应的
PCB连入信号量队列的末尾,并放弃处理机,进行等待(直至另一个进
程执行V(S)操作)。
V操作原语V(S):
1)V操作一次,S值加1,即S=S+1(释放一单位量资源)
2)如果S>0,表示有资源,则该进程继续执行;
如果S≤0,则释放信号量队列上的第一个PCB所对应的进程(阻
塞态改为就绪态),执行V操作的进程继续执行。
5、用P、V操作原语实现互斥的一般模型
设互斥信号量mutex初值为1
进程P1
……
P (mutex);
临界区;
V (mutex);
……
进程P2 ……
……
P (mutex);
临界区;
V (mutex);
……
进程Pn
……
P (mutex);
临界区;
V (mutex);
……
6、用P、V操作原语实现同步的简单例子
供者和用者对缓冲区的使用关系
用者(buf满)
供者(buf空)
缓冲区
S1缓冲区是否空(0表示不空,1表示空),初值S1=1;
S2缓冲区是否满(0表示不满,1表示满),初值S2=0;
用者进程
供者进程
L2:……
L1:启动读卡机
P (S2);
……
从缓冲区取出信息
收到输入结束中断
V(S1);
V(S2);
加式并存盘
P (S1);
Goto L2;
Goto L1;
7、生产者——消费者问题(OS典型例子)
mutex互斥信号量,初值为1:full满缓冲区数,初值为0;empty空
缓冲区数,初值为N:
生产者进程
While(TRUE){
P(empty);
P(mutex);
产品送往buffer(in);
In=(in+1) mod N;
V(mutex);
V(full);
}
消费者进程
While(TURE){
P(full);
P(mutex);
消费产品(out);
Out=(out+1) mod N;
V(mutex);
V(empty);
}
应用举例
[例1] 设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用
打印机输出结果。设每个用户程序对应一个进程。问:这三个进程间有
什么样的制约关系?使用P、V操作写出这些进程使用打印机的算法。
[解] 由于打印机是一种临界资源,故三个进程只能互斥使用这台打印机。
设三个进程分别为A、B、C,互斥信号量mutex初值为1,执行如下:
进程A
……
P (mutex);
使用打印机;
V (mutex);
……
进程B
……
P (mutex);
使用打印机;
V (mutex);
……
进程C
……
P (mutex);
使用打印机;
V (mutex);
……
[例2] 判断下面的同步总是的算法是否正确?若有错,请指出错误原因
并予以改正。
1)设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,
算法框图如图所示。信号量S的初值为0。
进程A
进程B
进程A
进程B
向Q写入信息
V(S)
P(S)
从Q读出信息
P(empty)
向Q写入信息
V(full)
P(full)
从Q读出信息
V (empty)
[解] 该算法不正确,因为A、B两个进程共用一个缓冲区Q,如果A先运行,
且信息数量足够多,则缓冲区Q中的信息就会发生后面的冲掉前面的,造
成信息丢失,B就不能从Q中读出完整的信息。改正如下:
A、B两进程同步使用缓冲区Q,应设定两个信号量:
empty表示缓冲区Q为空,初值为1;full表示缓冲区Q已满,初值为0
[例2] 判断下面的同步总是的算法是否正确?若有错,请指出错误原因
并予以改正。
2)设A、B两为两并发进程,它们共享一临界资源。其运行临界区的算法
框图如图所示。
进程A
进程B
进程A
进程B
P(mutex)
P(mutex)
临界区代码CSa P(S1)
V(S1)
J临界区代码CSa 临界区代码CSa 临界区代码CSa
V(mutex)
V (mutex)
P(S2)
V(S2)
[解] 该算法不正确,因为A、B两个进程并发执行,且共享一临界资源,故
A、B应互斥地使用该临界资源,即在某一时刻只允许一个进程进入该
临界资源,无时序关系。改正如下:
A、B二进程应互斥进入临界区,设定一信号量mutex,初值为1.
[例3] 设有一台计算机,有两个I/O通道,分别接一台卡片输入机和一台
打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到
缓冲区B2中,并在打印机印出。问:
1)系统要设几个进程来完成这个任务?各自的工作是什么?
2)这些进程间有什么样的相互制约关系?
3)用P、V操作写出这些进程的同步算法。
[解]
1)系统可设三个进程来完成该任务:Read进程负责从卡片输入机上读
入卡片信息,输入到缓冲区B1中;Get进程负责从缓冲区B1中取出信息,
进行加工处理,之后将结果送到缓冲区B2中;Print进程负责从缓冲区
B2中取出信息,并在打印机上打印输出。
2)①Read进程受Get进程的影响,B1缓冲区放满信息后Read进程要等
待Get进程将其中信息全部取走后才能输入信息;
②Get进程受Read进程和Print进程的约束;B1缓冲区中信息放满后,
Get进程才可从中取走信息,且B2缓冲区信息被取空后Get进程才能将加
工结果送入其中;
③Print进程受Get进程的约束,B2缓冲区信息放满后Print进程方可
取出信息进行打印输出。
[例3] 设有一台计算机,有两个I/O通道,分别接一台卡片输入机和一台
打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到
缓冲区B2中,并在打印机印出。问:
1)系统要设几个进程来完成这个任务?各自的工作是什么?
2)这些进程间有什么样的相互制约关系?
3)用P、V操作写出这些进程的同步算法。
[解]
B1full——缓冲区B1满,初值为0;B1empty——缓冲区B1空,初值为0
B2full——缓冲区B2满,初值为0;B2empty——缓冲区B2空,初值为0
4)操作框图如下:
进程Get
进程Read
进程Print
输入信息写入缓冲区B1
V(B1full)
P(B1empty)
P(B1full)
从B1中取出信息加工信
P(B2full)
息结果送入B2
从B2中取出信息打印输出
V(B1empty)
V(B2empty)
V(B2full)
P(B2empty)
8、进程间的通信
分类
低级通信机构
特点
传递信息量非常有限
通信的效率低
方便高效地交换大量信息
互斥和同步机构
共享存储器
消息传递
管道文件
应用
高级通信机构
第三章
处理机管理
重点在于掌握系统中对作业和
进程如何实施调度,怎样简单评价
常用调度算法的优劣。
处理机管理功能
• 处理机调度级别
1. 调度:选出待分派的作业或进程
2. 处理机调度:分配处理机
3. 三级调度:高级调度(作业调度)、中级调度(内存对换)、
低级调度(进程调度)
一、作业调度
1、作业的概念
所谓作业,是用户定义的、由计算机完成的工作单位,它通
常包括一组计算机程序、文件和对操作系统的控制语句。由作业
控制语句JCL(Job Control Language)描述。
2、作业的状态
作业的状态分四种:提交、后备、执行、完成。
3、作业的状态变迁:提交->后备->执行->完成
4、作业控制块JCB(Job Control Block)
作业控制块是作业在系统中存在的标志。
作业名
资源要求
资源使用情况
类型级别
状态
作业控制块JCB
5、作业调度的主要任务
从后备状态执行状态
从执行状态完成状态
6、作业调度的功能
1)
2)
3)
4)
5)
记录系统中各个作业的情况
按照某种调度算法从后备作业队列中挑选作业
为选中的作业分配内存和外设等资源
为选中的作业建立相应的进程
作业结束后进行善后处理工作
记录情况
挑选作业
分配资源
建立进程
善后处理
二、进程调度
1、进程调度
由进程调度程序实现。完成进程状态从就绪态运行态的转化
2、进程调度的时机
任务完成后、等待资源时、运行到时了、发现重调标志 。
3、进程调度的功能
保存现场、挑选进程、恢复现场 。
小结
两级调度模型
作业调度和进程调度是CPU主要的两级调度。
作业调度和进程调度的区别
作业调度(宏观调度)
进程调度(微观调度)
为进程活动做准备,即有获得 使进程活动起来,即分配得到
处理机的资格
了处理机
调度次数少
调度频率高
有的系统不设作业调度
进程调度必不可少
三、评价调度算法的指标
调度性能评价准则:CPU利用率、吞吐量、周转时间、
就绪等待时间和响应时间
1.吞吐量:单位时间内CPU完成作业的数量
2.周转时间:
1)周转时间=完成时刻-提交时刻
Ti = tci – tsi
2)平均周转时间=周转时间/n
T = (∑Ti)/n
3)带权周转时间=周转时间/实际运行时间
W = T/R
4)平均带权周转时间=带权周转时间/n
四、几种简单的调度算法
1.先来先服务法(FCFS,First Come First Service)
实现思想:按作业(进程)到来的先后次序进行调度,即先来的
先得到运行。
用于作业调度:从作业对列(按时间先后为序)中选择队头的一
个或几个作业运行。用于进程调度:从就绪队列中选择一个最先进入
该队列的进程投入运行。
例如 设有三个作业,编号为1,2,3。各作业分别对应一个进程。
各作业依次到达,相差一个时间单位。
① 图示出采用FCFS方式调度时这三个作业的执行顺序
② 算出各作业的周转时间和带权周转时间
FCFS算法容易实现,但效率较低
2. 时间片轮转(RR)调度算法
实现思想:系统把所有就绪进程按先进先出的原则排成一个队列。新
来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选
出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。当时间片
到,产生时钟中断,调度程序便停止该进程的运行,并把它放入就绪队列
末尾,然后,把CPU分给就绪队列的队首进程。
时间片:是一个小的时间单位,通常10~100ms数量级。
例如 设四个进程A、B、C和D依次进入就绪队列(同时到达),四个进
程分别需要运行12、5、3和6个时间单位。
①图示RR法时间片q=1和q=4示进程运行情况
② 算出各进程的周转时间和带权周转时间
时间片的大小对轮转法的性能有很大的影响。时间片的长短通常由以
下几个因素确定:系统的响应时间、就绪队列进程的数目、进程的转换
时间、CPU运行指令速度
RR法:轮流坐庄
3. 优先级调度算法调度算法
实现思想:从就绪队列中选出优先级最高的进程到CPU上运行。
1)两种不同的处理方式:非抢占式优先级法、抢占式优先级法
2) 两种确定优先级的方式:静态优先级、动态优先级 。
例如 假定在单CPU条件下有下列要执行的作业:
①用执行时间图描述非强占优先级调度算法执行这些作业的情况
② 算出各进程的周转时间和带权周转时间
优先级法:急事先办
五、UNIX常用调度命令及执行过程
1、调度算法:UNIX进程调度采用多级反馈队列轮转法.
2、UNIX进程调度时机
四种情况:
①进程调用sleep程序
②进程终止
③进程”重新调度”标志被置上
④核心处理完中断后,进程回到用户态,但存在比它更适宜运行的进程
3. Shell命令执行过程
1)读命令:shell命令解释程序将命令行读到自己的工作区中。
2)判对错:判断命令是否正确,若有错则发出相应的错误信息。
3)建子进程:终端进程调用系统调用fork,创建一个子进程。
4)等待完成:终端进程将等待自己创建的子进程完成工作,变成睡眠态。
如果用户键入的命令行末尾有“&”符号,表明是后台命令,则立即转
(8),发提示符。
5)子进程运行:子进程被创建后处于就绪态,进入就绪队列排队。当进程
调度程序选中它之后,就把CPU分给它使用。
6)子进程终止:子进程完成工作后,一方面释放它所占用的资源;另一方
面唤醒父进程。子进程从系统中消失。
7)父进程运行:子进程唤醒父进程。
8)发提示符:终端进程发提示符,让用户键入新的命令。
第四章
存储器管理
重点在于掌握逻辑地址、物理地址、
可重定位地址、重定位、静态重定位、
动态重定位、碎片、虚拟存储器等。
一、存储管理引言
1、存储器的层次
2.计算机执行指令的过程
0
内存
程序计数器PC
100
100 LOAD,1,2K
200
CPU
LOAD,1,2K
指令寄存器IR
2K
形
如
一
个
一
维
数
组
3.用户程序的主要处理阶段
1)
2)
3)
4)
5)
编辑阶段:创建源文件
编译阶段:生成目标文件
连接阶段:生成可执行文件
装入阶段:重定位,装入内存
运行阶段:得到结果
4.存储器管理的功能
存储器管理的功能:内存分配、地址映射、内存保护、内存扩充。
5.存储器有关概念
1) 逻辑地址:用户程序经编译之后的每个目标模块都以0为基地址
顺序编址。
2) 物理地址:内存中各物理单元的地址是从统一的基地址顺序编址。
3) 重定位:把逻辑地址转变为内存的物理地址的过程。
4) 碎片:内存中容量太小、无法被利用的小分区。
5) 静态重定位:是在目标程序装入内存时,由装入程序对目标程序
中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的
内存地址。重定位在程序装入时一次完成。
5.存储器有关概念
6)动态重定位:在程序执行期间,每次访问内存之间进行重定位,
这种变换是靠硬件地址变换机构实现的。
二、存储管理基本技术
1、分区法
1) 固定分区:分区的个数、分区的大小固定不变; 每个分区
只能放一道作业。
优点:管理方式简单。
缺点:内存空间利用率低。
2) 动态分区法:分区大小和个数依作业情况而定;作业进入内
存时才建分区。
优点:按需分配内存
缺点:产生大量碎片。
2. 可重定位分区分配
通过紧缩可解决碎片问题;作业在内存中可以移动。
优点:解决了碎片的问题,提高了主存利用率;
缺点:增加了开销。,但须消耗大量的CPU时间。
3.对换技术:
作业(或进程)在内存和磁盘之间交换,换出暂时不能运行的
作业(或进程);换入具备运行条件的作业(或进程)。
三、虚拟存储的概念
1.虚拟存储器:是由操作系统提供的一个假想的特大存储器
2.虚拟存储器的基本特征:
1)虚拟扩充:不是物理上,而是逻辑上扩充了内存容量
2)部分装入:每个作业不是全部一次性地装入内存,而是只装
入一部分
3)离散分配:不必占用连续的空间,而是“见缝插针”。
4)多次对换:所需的全部程序和数据要分成多次调入内存
3.虚拟存储器受到的限制:
1)指令中表示地址的字长
2)外存的容量
四、分页存储管理技术
1.分页的概念
1)逻辑空间等分为页;
2)物理空间等分为块,与页面大小相同;
3)逻辑地址表示:(如,页面大小为1K)
4)内存分配原则:以块为单位,逻辑上相邻的页可以分配在不
相邻的内存块中。
5)页表:实现从页号到物理块号的地址映射
6)地址映射:由硬件完成。
2.请求分页的基本思想
1)地址空间分页,内存分块,页与块大小相同;
2)作业部分装入内存。
3)作业所占的各块不连续。
4)硬件通过页表生成访内地址。
5)若缺页,进行缺页中断处理,换入内存。
6)利用快表可加速地址转换。
五、分段存储管理技术
1.分段的概念
1)逻辑空间分段:段是信息的逻辑单位,每段对应一个相应的
程序模块,有完整的逻辑意义。
2)程序地址结构
逻辑地址表示:(二维地址空间)
3)内存分配:内存以段为单位进行分配,每个段单独占用一
块连续的内存分区。
4)段表:实现每个逻辑段到物理内存中分区位置的映射
5)地址转换:见图 P126 4-23
2. 分页与分段的区别
虚存中的置换算法
1. 先进先出法(FIFO):
将最先进入内存的页换出内存。
例如 内存块数量为3时,采用FIFO页面置换算法,下面页面走向情
况下,缺页次数是多少?
∴ 缺页次数=15次
2. 最佳置换法(OPT):
将将来不再被使用或是最远的将来才被访问的页
例如 内存块数量为3时,采用OPT页面置换算法,下面页面走向情况
下,缺页次数是多少?
∴ 缺页次数=9次
3. 最近最少使用置换法(LRU) :
将最近一段时间里最久没有使用过的页面换出内存。
例如 内存块数量为3时,采用LRU页面置换算法,下面页面走向情
况下,缺页次数是多少?
∴ 缺页次数=12次
4. 最近未使用置换法(NUR):
是LRU近似方法,比较容易实现,开销也比较小。
实现方法:在存储分块表的每一表项中增加一个引用位,操作
系统定期地将它们置为0。当某一页被访问时,由硬件将该位置1。
需要淘汰一页时,把该位为0的页淘汰出去,因为最近一段时间里它
未被访问过。
第五章
文件系统管理
重点在于文件的分类、文件的
逻辑组织和物理组织的含义、目录
结构、文件和目录的主要操作。
一、文件、文件系统的概念:
1.文件:是被命名的数据的集合体。
2.文件系统:就是操作系统中负责操纵和管理文件的一整套设施,
它实现文件的共享和保护,方便用户“按名存取”。
3. 文件的各种分类
4. 文件的命名:文件名=文件名(正名)+扩展名.
扩展名
含义
扩展名
含义
.exe
可执行文件
.jpg
图片
.com
可执行文件
.gif
动画
.bat
批处理文件
.htm\.html 超文本文件
.zip
压缩文件
.bmp
图片
.rar
压缩文件
.swf
动画文件
二、UNIX系统中文件类型 :
1. 普通文件:由程序、数据或正文的字符串构成。包括一般用户建
立的源程序文件、数据文件、目标代码文件、各种系统文件和库文
件。
2. 目录文件:由下属文件的目录项构成的文件。
3. 特别文件:特指各种外部设备,为了便于统一管理,把所有I/O
设备都按文件格式供用户使用。特别文件分为字符特别文件和块特
别文件,前者是有关输入/输出的设备,后者是存储信息的设备。
三、文件系统的功能 :
文件系统应具备以下功能:
文件管理、
目录管理、
文件空间管理、
文件共享和保护、
提供方便的接口。
四、文件的逻辑组织和文件的物理组织 :
1.文件的逻辑组织:用户对文件的观察和使用是从自身处理文件中
数据是采用的组织方式来看待文件组织形式。这种从用户观点出发
所见到的文件组织形式称为文件的逻辑组织。
1) 有结构文件(记录式文件):逻辑上可被看成一组连续顺序的
记录的集合。
2) 无结构文件:指文件内部不再划分记录,它是由一组相关信息
组成的有序字符流,即流式文件。
四、文件的逻辑组织和文件的物理组织 :
2.文件的物理组织:文件在存储设备上的存储组织形式称为文件的
物理组织。
1) 文件的物理组织形式主要有:
Ø 连续文件:所占盘块是连续的。
Ø 串联文件:所占盘块不连续,前后链接。链接文件存储结构
Ø 索引文件:所占盘块不连续,用表列出。
Ø 多重索引文件:多级索引结构。UNIX的文件系统就采用了此
种结构。
四、文件的逻辑组织和文件的物理组织 :
2.文件的物理组织:文件在存储设备上的存储组织形式称为文件的
物理组织。
2)文件的物理组织各种形式的优缺点:
五、目录和目录结构 :
1. 文件控制块和文件目录
1) 文件控制块:在文件系统内部给每个文件惟一地设置一个文件
控制块,它用于描述和控制文件的数据结构,与文件一一对应。
2) 文件目录:文件控制块的有序集合。
3) 目录项:文件目录中的一个文件控制块。
4) 目录文件:完全由目录项构成的文件。
五、目录和目录结构 :
2.目录结构
1)单级目录:DOS2.0版本以下采用,全部文件都登记在同一目录
中。优点是简单,缺点是无法防止重名或被刪,安全保密性差,目
前已淘汰。
2)二级目录:为每个用户单独建立一个目录,各管辖自己下属的
文件。产生于多用户分时系统,DOS2.0版本以上采用,文件主目录
(MFD)的表目按用户分,每个用户有一个用户文件目录(UFD)。
优点是允许重名,提高搜索速度,缺点是不太适合大量用户和大量
文件的大系统。
3)树形目录:多级目录结构的一种形式,形同一棵倒置的树。产
生于UNIX操作系统,巳被现代操作系统广泛采用。目录与文件在一
起,目录也做成文件。操作系统中每一名字由“全路径”能确定唯
一文件,有根/茎/叶(端头)层次关系概念。
4)非循环图目录:以称带链接的树形目录,访问同一文件(或目
录)可以有多条路径。UNIX的文件系统是树型结构,而且是带链接
的树型结构。
五、目录和目录结构 :
3.路径名
在树型目录中,同一目录中的各个文件不能同名,但不同目录中
的文件可以同名。例如树型图中目录/usr中都有名字为fp的项,但
是它们代表了不同的文件。
文件路径名有两种表示形式:绝对路径名和相对路径名。
1) 绝对路径名(全路径名):是从根目录开始到达所要查找文件
的路径。例如,在UNIX系统中,以“/”表示根目录。图中两个fp文
件的绝对路径名是:
(root)/usr/fp;
(root)/usr/m1/prog/fp;
2)相对路径名:系统为每个用户设置一个当前目录(又称工作目
录),访问某个文件时,就从当前目录开始向下顺次检索。例如,
如图当前目录是usr,则有:
(root)/usr/fp;
(绝对路径名)
fp;(当前路径省略路径名)
(root)/usr/m1/prog/fp; (绝对路径名)
m1/prog/fp;(相对路径名)
五、目录和目录结构 :
4. 带链接的树型目录中实现文件共享
1) 一种是允许目录项链接到任一表示文件目录的节点上,如前面
非循环图目录结构图中蓝线标注,表示可共享被链接的目录及其子
目录所包含的全部文件;
2)另一种是只允许目录项链接到表示普通文件的叶节点上,如前
面非循环图目录结构图中红线标注,只允许目录项链接到表示普通
文件的叶节点上,即只允许对单个普通文件链接,从而可通过几条
路径来访问同一文件,即一个文件可以有几个别名。
3)UNIX基本上采取第二种链接方式。
六、 文件存储空间的管理 :
1. 空闲空间表法:为每个文件分配一个连续的存储空间。适合于连
续文件,会产生碎片。
序号第一空闲块号空闲块个数物理块号
1242,3,4,5218918,19,20,21,22,23,24,25,26359559,60,61,62,63
┇┇┇…
2. 空闲块连接法:所有的空闲块连接在一个队列中,用一个指针
(空闲区头)指向第一个空闲块。效率较低,链较长。
3.位示图法(位向量法):利用一串二进制的值来反映磁盘空间的
分配情况。每个盘块对应一位,0表示已配块,1表示未分配块。
例如:空闲块2,3,4,5,8,9,10,11,12,13,17,18,25,
26,27,…,则位示图向量是:100001100000011100111111000…
4.空闲块成组链接法:UNIX系统中常用算法。见P162图5-17。
七、 文件的存取控制 :
这种方式是根据不同的用户身份,对每个文件为他们规定不同
的存取控制权限。可以对每个文件或目录设一个存取表,说明拥护
名称和允许他进行存取的类型。 在UNIX系统中,把他们分为三类
对象:文件主、同组用户和其他用户。文件存取权限规定比较简单,
用9个二进制位表示,分为三个域,他们是:rwx,当相应位为1时,
表示相应用户拥有该种存取权限。表示如下:
如某文件的保护信息是:
111
110 100
就表示它的创建者(文件主)可读、写和执行,同组用户可读、写,
而其他用户仅能读。
八、 对文件和目录的主要操作 :
1. 对文件的主要操作有:文件显示命令,文件的复制、删除和移动等。
1) cat命令
功能:显示或连接。
2) more命令
功能:是逐屏显示文件。每显示一屏后暂停。
3) cp命令
功能:拷贝文件,把源文件复制到另外一个副本中。
4) mv命令
功能:移动或者重新命令文件或目录。
5) rm命令
功能:删除文件或目录
八、 对文件和目录的主要操作 :
6) mkdir命令
功能:创建目录。
7) rmdir命令
功能:删除空子目录。
8) ls命令
功能:列出目录内容。
9) copy命令
功能:拷贝多组文件。
10) cd命令
功能:改变当前工作目录。
11) chmod命令
功能:改变文件或目录的存取权限。
第六章
设备管理
重点在于掌握设备分配技术,
设备管理功能,UNIX常用设备的安
装和管理。
一、设备分类及设备标识 :
1. 设备分类
1)存储设备(外存、辅助存储器):用于存储信息的设备
在UNIX中称为块设备(以字符块形式存放)
2) 输入/输出设备:用于输入/输出信息的设备
在UNIX中称为字符设备(以字符流形式处理)
2. 设备标识.
1)设备绝对号:系统为设备指定的唯一代号
2)设备相对号:用户自己规定的设备序号
二、引入缓冲的目的和缓冲区的设置方式 :
1. 引入缓冲区的目的
1) 缓和CPU与外设间速度不匹配的矛盾
2) 提高CPU与外设之间的并行性
3) 减少对CPU的中断次数
2. 缓冲区的设置方式
1) 单缓冲:当数据到达率与离去率相差很大时,可采用单缓冲方式。
2) 双缓冲:当信息输入和输出率相同(或相差不大)时,可利用双
缓冲区,实现两者的并行。
3) 多缓冲:对于阵发性的输入、输出,为了解决速度不匹配问题,
可以设立多个缓冲区。
三、设备管理的目标 :
设备管理的目标:使用方便、与设备无关、效率高、管理统一。
四、设备管理功能 :
1.监视设备状态:记住所有设备、控制器和通道的状态,以便有
效的调度和使用它们。
2.进行设备分配:按照设备的类型和系统中采用的分配算法,实
施设备分配。这一功能由设备分配程序完成。
3.完成I/O操作:通常完成这一部分功能的程序叫做设备驱动程
序。系统按照用户的要求调用具体的设备驱动程序,启动相应的设
备,进行I/O操作;并且处理来自设备的中断。操作系统中每类设备
都有自己的设备驱动程序。
4.缓冲管理与地址转换:由于外设与主机间的速度差异,大多数
I/O操作都涉及到缓冲区。因此系统应对缓冲区进行管理。此外,用
户程序应与实际使用的物理设备无关,这就需要将用户在程序中使
用的逻辑设备转换成物理设备的地址。
五、常用设备分配技术 :
1. 根据设备的使用性质,可将设备分成:独占设备、共享设备
和虚拟设备
1) 独占设备:不能共享的设备,即:在一段时间内,该设备只允许
一个进程独占。如打印机。
2) 共享设备:可由若干个进程同时共享的设备。如磁盘机。
3) 虚拟设备:是利用某种技术把独占设备改造成可由多个进程共享
的设备。
2.针对三种设备采用三种分配技术:独占分配、共享分配和虚拟
分配。
1) 独占分配技术:是把独占设备固定地分配给一个进程,直至该进
程完成I/O操作并释放它为止。
2) 共享分配技术:通常适用于高速、大容量的直接存取存储设备。
由多个进程共享一台设备,每个进程只用其中的一部分。
3) 虚拟分配技术:利用共享设备去模拟独占设备,从而使独占设备
成为可共享的、快速I/O的设备。实现虚拟分配的最有名的技术是
SPOOLing技术,也称作假脱机操作。
3、设备分配算法
(1)先来先服务
(2)优先级高的优先服务
六、SPOOLing系统的功能和实现思想 :
SPOOLing系统的功能:将独占设备改造为共享设备,实现了虚拟设
备功能。
七、处理I/O请求的步骤 :
1.用户进程发出I∕O请求;
2.系统接受这个I∕O请求;
3.转去执行操作系统的核心程序;
4.设备驱动程序具体完成I∕O操作;
5.I∕O完成后,系统进行I∕O中断处理;然后用户进程重新开始执
行。
八、UNIX系统中打印机的主要安装步骤 :
打印机的主要安装步骤:配置端口(串口或并口),连接打印机与
主机,将打印机添加到系统中,进行必要的打印机配置等。
第七章
中断和信号机构
重点在于理解中断的一般处理
过程。
一、中断的概念 :
1.中断:是指CPU对系统发生的某各个事件作出的一种反映,即CPU
暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,
处理完该事件后再返回断点继续执行被“打断”的程序。
2.中断源:引起中断的事件。
3.中断请求:中断源向CPU提出进行处理的请求。
二、中断的一般处理过程 :
1.中断响应(由硬件完成):由硬件对中断请求作出反应的过程。
中断响应的主要工作是:
1)终止当前程序的执行;
2)保存原程序的断点信息(主要是程序计数器PC和程序状态寄存器
PS的内容);
3)转到相应的处理程序。
2.中断处理(主要由软件完成)
中断处理过程:
1)保存现场:保存被中断程序的现场,目的是在中断处理完后,可
以返回到原来被中断的地方。
2)分析原因:根据中断源确定中断原因,然后转入相应处理程序去
执行。
3)处理中断:核心调用中断处理程序,对中断进行处理。
4)返回断点:执行完中断处理程序,核心便执行与机器相关的特定
指令序列,恢复中断是寄存器内容和执行核心退栈,进程回到用户
态。
三、系统调用的实施过程 :
1.系统调用对应到汇编指令trap
2.执行到trap指令,处理机由用户态变为核心态
3.查系统调用入口,转去执行响应的处理程序
4.如涉及到I/O操作,则经由文件系统处理后,在转设备驱动
5.I/O完成后,发中断信号,进行中断处理
6.系统调用执行完,可调度原进程运行
例如:用户程序执行过程中,CPU接到盘I/O中断。对此,系统(硬件和
软件)进行处理,试列出其主要处理过程:
[解]
1)硬件主要执行过程:
① CPU中止当前程序的正常执行;
② 保存原程序的程序计数器PC和程序状态寄存器PS的内容;
③ 取出盘I/O中断向量,转到相应的处理程序。
2)软件主要处理过程:
① 保存被中断程序的现场(如通用寄存器的内容);
② 分析中断原因,由中断向量得到盘I/O中断的处理程序地址;
③ 运行盘I/O中断处理程序,判断I/O工作是否完成,如正常完成,
则作I/O结束处理;
④ 执行完中断处理程序,核心恢复前面保存的现场,进程回到用户
态。