1
操作系统内容概要
操作系统概述和基本原理
操作系统的几大基本的管理功能
处理机管理
存储器管理
设备管理
文件管理
作业管理
2
处理机管理的核心问题多道程序系统程序 A
程序 B
OS调度
I/O A
I/O B
t1 t2
合理利用及减少开销分配 回收
如何把 CPU合理地分配给某个需要的程序,
并在其用完后予以回收
CPU
3
处理机管理的核心问题:
如何把 CPU合理地分配给某个需要的程序,并在其用完后予以回收。
解决问题,可能需要先了解:
什么是程序?
什么叫“合理”?
程序有什么特点?
处理机管理的核心问题
4
第二章 进程的描述与控制第二篇 操作系统进程的引入与定义进程的特征进程控制块进程的状态及转换进程的控制进程与程序线程与进程
5
进程的引入与定义
2.1 程序与前驱图
程序:
由若干条具有一定功能的机器指令所组成的解题顺序和步骤
main( ){
int a1;
int b1;
a1 = 5;
b1 = a1 + 5;
printf(― result = %d‖,b1);
}
程序是指令的集合指令之间是顺序关系
6
前驱图
前驱图
有向无循环图
节点:表示一条语句,或一段程序
有向线段:表示 语句之间的顺序关系
无循环:当程序中出现循环时,一般将整个循环作为一个节点
a1 = 5;
b1 = a1 + 5 ;
print( b1 );
I1 C1 P1
Input Calculate Print
前驱图
7
a1 = 5;
b1 = a1 + 5 ;
print( b1 );
a3 = 5;
b3 = a3 – 10 ;
print( b3 );
a2 = 5;
b2 = a2 + 6 ;
print( b2 );
I1 C1 P1
程序 1 程序 2 程序 3
I2 C2 P2
I3 C3 P3
程序 1
程序 2
程序 3
前驱图 前驱图
8
I1输入设备处理机打印机
I2
C1
I3
C2
P1
C3
P2
t1 t2 t3 t4 t7
程序间必须按照顺序执行
t5 t6 t8
P3
t9
2.1.1程序间的顺序执行
9
程序间的顺序执行
程序间顺序执行的特征
顺序性
前一程序执行完后才执行后一程序
封闭性
程序运行时独占资源
可再现性
环境和初始条件不变下,程序多次重复执行,
结果一样
10
2.1.2程序间并发执行
I1
P3
输入设备处理机打印机
t1 t2 t3 t4 t5
I2
C1
I3
C2
P1
C3
P2
由于多道程序中 IK,CJ与 PL之间不存在前趋关系,
程序之间可以并发执行并发执行后,系统效率提高并发执行后,系统效率提高
11
程序间并发执行
程序间并发执行的特征
并发执行是否还保持顺序执行的特征?
执行的顺序性?
资源占用的封闭性?
结果的可再现性?
12
程序(间)并发执行的特征:
执行的顺序性 执行的间断性多道程序系统程序 A
程序 B
OS调度
I/O A
I/O B
t1 t2
13
程序(间)并发执行的特征:
程序运行时独占资源程序 a
N = 3;
print(N)
N = N + 1
print(N)
K = 5;
print(K)
K = K + 1
print(K)
程序 b
顺序执行 a b
打印结果,3 4 5 6
并发执行 a b
1
2
3
4
5
6
7
8
1
2
3 45
6 7
8 打印结果,3 5 4 6
资源非封闭
14
程序(间)并发执行的特征:
结果可再现
N = 5;
N = N +1;
print( N );
N = 0;Ia Ca Pb Ib
Ia
Pb Ib
打印输出
5
N的值
1
Ia
Ca
程序 a 程序 b
Ca
IbPb
6 0
多次执行结果不同,不可再现
15
进程的引入
程序间顺序执行和程序间并发执行的特征
顺序执行
顺序性:
封闭性:
可再现性:
并发执行
执行的间断性
资源占用的非封闭性
结果的不可再现性前一程序执行完后才执行后一程序程序运行时独占资源环境和初始条件不变下,程序多次重复执行,结果一样造成原因程序有问题?
程序的执行过程有问题?
16
2.2 进程的定义与描述
引入进程来描述:程序的一次执行。
包括:
程序的执行位置
执行现场的保留
寄存器的内容
资源的分配情况
资源清单进程的定义
17
进程的定义
2.2.1进程的定义
可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位
定义要点:
运行过程
可并发执行的程序
数据集合
独立单位:分配与调度思考:不可并发执行的程序?
18
进程的特征
2.2.2 进程的特征
动态性:生命期
并发性:进程执行时间的重叠(宏观)
独立性:资源分配与调度时相对独立
异步性:“走走停停”,不可预知
结构性:进程的结构 ——进程的“映像”
PCB
数据程序
PCB
数据 程序进程的控制指挥中心
19
进程的状态
2.2.3 进程的状态与转换
( 1)三种基本的进程状态就绪态:进程已获得除 CPU以外的其他资源。
执行态:进程获得 CPU正在运行的状态阻塞态:进程因等待某事件而暂时不能运行的状态
20
进程的状态转换
( 2)进程状态的转换
进程状态转换的动因
进程状态转换的动作
21
进程的状态转换新进程就绪 执行结束阻塞接纳进程调度中断或时间片用完完成
I/O请求或等待某事件
I/O完成或事件发生状态转换原因图万事具备,
只欠“东风”
CPU
获得 CPU
正在运行欠缺某些条件
22
进程的状态转换新进程就绪 执行结束阻塞进入就绪队列分配 CPU使用权强制放弃 CPU
回到就绪队列释放所有资源进程主动放弃 CPU
进入阻塞等待队列进程被释放回到就绪队列状态转换执行图
23
进程状态转换
进程状态转换
进程在状态转换的过程中推进完毕新状态 就绪事件 动作接纳 进入就绪队列就绪 执行 进程调度 分配 CPU
执行 结束 完成 释放资源执行阻塞时间片到时高优先中断 系统剥夺 CPU
执行就绪
I/O请求等待某事件进程放弃 CPU
进入阻塞等待队列阻塞 就绪 阻塞事件释放 进程进入就绪队列
24
进程的挂起状态
( 3)挂起状态
什么是挂起状态:
将进程置于静止状态
正在执行的进程暂停执行
就绪的进程暂不接受调度
阻塞的进程即使阻塞事件释放也不能继续执行
引入挂起状态的原因
人为:观察的需要
系统:检测的需要,调节系统负荷
25
进程的挂起状态
两种挂起状态
静止就绪与静止阻塞
一般情况下,挂起状态的进程将从内存移到外存
引入挂起状态后的系统状态转换就绪 执行阻塞静止阻塞静止就绪
26
【 思考题 】
1.如果系统中有 N个进程,运行的进程最多几个,
最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?
2,有没有这样的状态转换,为什么?
阻塞 —执行 ; 就绪 —阻塞
3,一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能
4,举 3个日常生活中类似进程的例子
27
进程的控制块
2.3 进程的控制
2.3.1进程控制块 ( Process Control Block)
系统为了管理进程设置的 一个专门的数据结构进程控制块,用它来 记录进程的外部特征,描述进程的运动变化过程。
28
P C B,进程标识号进程状态进程特征进程优先数程序地址现场保护区同步、互斥机构系统栈
,家族”联系资源清单其它信息
PCB的作用
PCB可唯一标识一个进程
PCB中的信息为进程的控制提供依据
PCB将程序变成了进程
PCB是进程在系统中存在的唯一标志。
进程的控制块进程外部名称,
一目了然用 Windows
优化大师观察进程
31
进程的控制块
PCB表的组织方式
系统如何管理多个进程的
将各进程的 PCB以一定的方式组织起来链接方式索引方式
1
2
4
10
15
32
PCB表组织方式索引表就绪队列等待队列 1
等待队列 2
PCB 1
PCB 2
PCB 3
PCB 4
PCB 5
PCB 6
PCB 7
…
PCB n
PCB表进程的控制块
PCB表:
系统把所有 PCB组织并放在内存的固定区域,
就构成了
PCB表
33
进程体系结构
2.3.2 进程体系结构(进程图)
非树形结构。
树型结构(族谱)
父与子 ——创建与被创建资源的继承
root
34
进程的控制
2.3.3 进程的控制
进程的创建
进程的状态转换
进程的撤消新进程就绪 执行结束阻塞进程的控制动作由操作系统完成
35
进程与程序的区别联系
2.3.4 进程与程序
1、静与动
程序是指令的集合,是静态概念
进程是程序的执行过程,是动态概念
2、记录与过程
程序可作为软件资源长期保存
进程只是一次短暂活动或过程
3、对应关系
一个程序可对应多个进程
一个进程可包含多段程序所以,不能以进程执行的程序来识别进程。识别进程,控制进程的关键是掌握 PCB
36
线程
2.4、线程的基本概念
2.4.1、引入线程的原因
系统在调度一个进程的同时还涉及资源的分配与状态转换等一系列动作
如果在调度一个线程时不涉及资源的管理,调度过程会大大加快。
37
线程
2.4.2 线程
线程是进程内的一个可调度实体、是一个执行单元、轻量进程。
一个进程可建立多个线程,这些线程共享进程拥有的全部资源
多个线程之间并发执行,切换时快速简便。
线程具有进程的四个特征:动态性、并发性、
(运行)独立性、异步性一个进程可以创建多个线程,
线程是进程的调度属性
39
线程如:在 Windows系统中,各进程独立使用各自的 4GB容量的内存空间,而同一进程的多个线程则共享一个 4GB空间。
例,进程 1需要访问 1000号单元的内容,进程 2
也需要访问 1000号单元的内容,他们访问的并不是同一个单元。
而 进程 1的两个线程访问 1000号单元,则是同一个单元。
40
线程
2.4.3线程与进程的比较
( 1)调度
同一进程的多线程间调度时,不引起进程的切换
不同进程的线程间调度,需要进程切换
( 2)并发性
一个进程的多个线程之间可并发执行
( 3)资源的拥有
线程不拥有系统资源,不拥有代码段、数据段。。。
41
线程
( 4)系统开销
线程:系统仅为其保存少量寄存器内容
进程:整个当前 CPU环境,资源清单等
42
作业
什么是进程,为什么要引入进程这个概念?
请解释,PCB是进程在系统存在的唯一标识”,为什么这个唯一标识不是程序体或数据?
进程有哪些基本状态?有哪些状态转换过程?
进程和程序的区别?
43
【 思考题 】
1.如果系统中有 N个进程,运行的进程最多几个,
最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?
2,有没有这样的状态转换,为什么?
等待 —运行; 就绪 —等待
3,一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能
4,举 3个日常生活中类似进程的例子
操作系统内容概要
操作系统概述和基本原理
操作系统的几大基本的管理功能
处理机管理
存储器管理
设备管理
文件管理
作业管理
2
处理机管理的核心问题多道程序系统程序 A
程序 B
OS调度
I/O A
I/O B
t1 t2
合理利用及减少开销分配 回收
如何把 CPU合理地分配给某个需要的程序,
并在其用完后予以回收
CPU
3
处理机管理的核心问题:
如何把 CPU合理地分配给某个需要的程序,并在其用完后予以回收。
解决问题,可能需要先了解:
什么是程序?
什么叫“合理”?
程序有什么特点?
处理机管理的核心问题
4
第二章 进程的描述与控制第二篇 操作系统进程的引入与定义进程的特征进程控制块进程的状态及转换进程的控制进程与程序线程与进程
5
进程的引入与定义
2.1 程序与前驱图
程序:
由若干条具有一定功能的机器指令所组成的解题顺序和步骤
main( ){
int a1;
int b1;
a1 = 5;
b1 = a1 + 5;
printf(― result = %d‖,b1);
}
程序是指令的集合指令之间是顺序关系
6
前驱图
前驱图
有向无循环图
节点:表示一条语句,或一段程序
有向线段:表示 语句之间的顺序关系
无循环:当程序中出现循环时,一般将整个循环作为一个节点
a1 = 5;
b1 = a1 + 5 ;
print( b1 );
I1 C1 P1
Input Calculate Print
前驱图
7
a1 = 5;
b1 = a1 + 5 ;
print( b1 );
a3 = 5;
b3 = a3 – 10 ;
print( b3 );
a2 = 5;
b2 = a2 + 6 ;
print( b2 );
I1 C1 P1
程序 1 程序 2 程序 3
I2 C2 P2
I3 C3 P3
程序 1
程序 2
程序 3
前驱图 前驱图
8
I1输入设备处理机打印机
I2
C1
I3
C2
P1
C3
P2
t1 t2 t3 t4 t7
程序间必须按照顺序执行
t5 t6 t8
P3
t9
2.1.1程序间的顺序执行
9
程序间的顺序执行
程序间顺序执行的特征
顺序性
前一程序执行完后才执行后一程序
封闭性
程序运行时独占资源
可再现性
环境和初始条件不变下,程序多次重复执行,
结果一样
10
2.1.2程序间并发执行
I1
P3
输入设备处理机打印机
t1 t2 t3 t4 t5
I2
C1
I3
C2
P1
C3
P2
由于多道程序中 IK,CJ与 PL之间不存在前趋关系,
程序之间可以并发执行并发执行后,系统效率提高并发执行后,系统效率提高
11
程序间并发执行
程序间并发执行的特征
并发执行是否还保持顺序执行的特征?
执行的顺序性?
资源占用的封闭性?
结果的可再现性?
12
程序(间)并发执行的特征:
执行的顺序性 执行的间断性多道程序系统程序 A
程序 B
OS调度
I/O A
I/O B
t1 t2
13
程序(间)并发执行的特征:
程序运行时独占资源程序 a
N = 3;
print(N)
N = N + 1
print(N)
K = 5;
print(K)
K = K + 1
print(K)
程序 b
顺序执行 a b
打印结果,3 4 5 6
并发执行 a b
1
2
3
4
5
6
7
8
1
2
3 45
6 7
8 打印结果,3 5 4 6
资源非封闭
14
程序(间)并发执行的特征:
结果可再现
N = 5;
N = N +1;
print( N );
N = 0;Ia Ca Pb Ib
Ia
Pb Ib
打印输出
5
N的值
1
Ia
Ca
程序 a 程序 b
Ca
IbPb
6 0
多次执行结果不同,不可再现
15
进程的引入
程序间顺序执行和程序间并发执行的特征
顺序执行
顺序性:
封闭性:
可再现性:
并发执行
执行的间断性
资源占用的非封闭性
结果的不可再现性前一程序执行完后才执行后一程序程序运行时独占资源环境和初始条件不变下,程序多次重复执行,结果一样造成原因程序有问题?
程序的执行过程有问题?
16
2.2 进程的定义与描述
引入进程来描述:程序的一次执行。
包括:
程序的执行位置
执行现场的保留
寄存器的内容
资源的分配情况
资源清单进程的定义
17
进程的定义
2.2.1进程的定义
可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位
定义要点:
运行过程
可并发执行的程序
数据集合
独立单位:分配与调度思考:不可并发执行的程序?
18
进程的特征
2.2.2 进程的特征
动态性:生命期
并发性:进程执行时间的重叠(宏观)
独立性:资源分配与调度时相对独立
异步性:“走走停停”,不可预知
结构性:进程的结构 ——进程的“映像”
PCB
数据程序
PCB
数据 程序进程的控制指挥中心
19
进程的状态
2.2.3 进程的状态与转换
( 1)三种基本的进程状态就绪态:进程已获得除 CPU以外的其他资源。
执行态:进程获得 CPU正在运行的状态阻塞态:进程因等待某事件而暂时不能运行的状态
20
进程的状态转换
( 2)进程状态的转换
进程状态转换的动因
进程状态转换的动作
21
进程的状态转换新进程就绪 执行结束阻塞接纳进程调度中断或时间片用完完成
I/O请求或等待某事件
I/O完成或事件发生状态转换原因图万事具备,
只欠“东风”
CPU
获得 CPU
正在运行欠缺某些条件
22
进程的状态转换新进程就绪 执行结束阻塞进入就绪队列分配 CPU使用权强制放弃 CPU
回到就绪队列释放所有资源进程主动放弃 CPU
进入阻塞等待队列进程被释放回到就绪队列状态转换执行图
23
进程状态转换
进程状态转换
进程在状态转换的过程中推进完毕新状态 就绪事件 动作接纳 进入就绪队列就绪 执行 进程调度 分配 CPU
执行 结束 完成 释放资源执行阻塞时间片到时高优先中断 系统剥夺 CPU
执行就绪
I/O请求等待某事件进程放弃 CPU
进入阻塞等待队列阻塞 就绪 阻塞事件释放 进程进入就绪队列
24
进程的挂起状态
( 3)挂起状态
什么是挂起状态:
将进程置于静止状态
正在执行的进程暂停执行
就绪的进程暂不接受调度
阻塞的进程即使阻塞事件释放也不能继续执行
引入挂起状态的原因
人为:观察的需要
系统:检测的需要,调节系统负荷
25
进程的挂起状态
两种挂起状态
静止就绪与静止阻塞
一般情况下,挂起状态的进程将从内存移到外存
引入挂起状态后的系统状态转换就绪 执行阻塞静止阻塞静止就绪
26
【 思考题 】
1.如果系统中有 N个进程,运行的进程最多几个,
最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?
2,有没有这样的状态转换,为什么?
阻塞 —执行 ; 就绪 —阻塞
3,一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能
4,举 3个日常生活中类似进程的例子
27
进程的控制块
2.3 进程的控制
2.3.1进程控制块 ( Process Control Block)
系统为了管理进程设置的 一个专门的数据结构进程控制块,用它来 记录进程的外部特征,描述进程的运动变化过程。
28
P C B,进程标识号进程状态进程特征进程优先数程序地址现场保护区同步、互斥机构系统栈
,家族”联系资源清单其它信息
PCB的作用
PCB可唯一标识一个进程
PCB中的信息为进程的控制提供依据
PCB将程序变成了进程
PCB是进程在系统中存在的唯一标志。
进程的控制块进程外部名称,
一目了然用 Windows
优化大师观察进程
31
进程的控制块
PCB表的组织方式
系统如何管理多个进程的
将各进程的 PCB以一定的方式组织起来链接方式索引方式
1
2
4
10
15
32
PCB表组织方式索引表就绪队列等待队列 1
等待队列 2
PCB 1
PCB 2
PCB 3
PCB 4
PCB 5
PCB 6
PCB 7
…
PCB n
PCB表进程的控制块
PCB表:
系统把所有 PCB组织并放在内存的固定区域,
就构成了
PCB表
33
进程体系结构
2.3.2 进程体系结构(进程图)
非树形结构。
树型结构(族谱)
父与子 ——创建与被创建资源的继承
root
34
进程的控制
2.3.3 进程的控制
进程的创建
进程的状态转换
进程的撤消新进程就绪 执行结束阻塞进程的控制动作由操作系统完成
35
进程与程序的区别联系
2.3.4 进程与程序
1、静与动
程序是指令的集合,是静态概念
进程是程序的执行过程,是动态概念
2、记录与过程
程序可作为软件资源长期保存
进程只是一次短暂活动或过程
3、对应关系
一个程序可对应多个进程
一个进程可包含多段程序所以,不能以进程执行的程序来识别进程。识别进程,控制进程的关键是掌握 PCB
36
线程
2.4、线程的基本概念
2.4.1、引入线程的原因
系统在调度一个进程的同时还涉及资源的分配与状态转换等一系列动作
如果在调度一个线程时不涉及资源的管理,调度过程会大大加快。
37
线程
2.4.2 线程
线程是进程内的一个可调度实体、是一个执行单元、轻量进程。
一个进程可建立多个线程,这些线程共享进程拥有的全部资源
多个线程之间并发执行,切换时快速简便。
线程具有进程的四个特征:动态性、并发性、
(运行)独立性、异步性一个进程可以创建多个线程,
线程是进程的调度属性
39
线程如:在 Windows系统中,各进程独立使用各自的 4GB容量的内存空间,而同一进程的多个线程则共享一个 4GB空间。
例,进程 1需要访问 1000号单元的内容,进程 2
也需要访问 1000号单元的内容,他们访问的并不是同一个单元。
而 进程 1的两个线程访问 1000号单元,则是同一个单元。
40
线程
2.4.3线程与进程的比较
( 1)调度
同一进程的多线程间调度时,不引起进程的切换
不同进程的线程间调度,需要进程切换
( 2)并发性
一个进程的多个线程之间可并发执行
( 3)资源的拥有
线程不拥有系统资源,不拥有代码段、数据段。。。
41
线程
( 4)系统开销
线程:系统仅为其保存少量寄存器内容
进程:整个当前 CPU环境,资源清单等
42
作业
什么是进程,为什么要引入进程这个概念?
请解释,PCB是进程在系统存在的唯一标识”,为什么这个唯一标识不是程序体或数据?
进程有哪些基本状态?有哪些状态转换过程?
进程和程序的区别?
43
【 思考题 】
1.如果系统中有 N个进程,运行的进程最多几个,
最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?
2,有没有这样的状态转换,为什么?
等待 —运行; 就绪 —等待
3,一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能
4,举 3个日常生活中类似进程的例子