操作系统原理与实例分析Word格式文档下载.docx
《操作系统原理与实例分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统原理与实例分析Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
![操作系统原理与实例分析Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/29/9b63ca08-f0d8-4d37-bc1f-1d712ce430c8/9b63ca08-f0d8-4d37-bc1f-1d712ce430c81.gif)
6
程序并发执行引发的问题
协调各程序的执行顺序
例如,当输入的数据还未全部输入内存时,计算必须等待
多个执行程序共享系统资源,程序之间可能会相互影响,甚至影响输出结果
选择哪些、多少个程序进入内存执行?
内存中的执行程序谁先执行,谁后执行?
内存如何有效分配?
7
进程的概念
定义:
可并发执行的程序,在一个数据集合上的运行过程。
申请/拥有资源∽调度(线程)
静态概念,是指令和数据的集合,可长期存储
进程与程序对应关系:
-一个程序可以对应一个进程或多个进程
-一个进程可以对应一个程序,或者一段程序
8
进程的特征
动态性
并发性
独立性
异步性
9
引入进程带来的问题
增加了空间开销:
为进程建立数据结构
额外的时间开销:
管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场
更难控制:
-协调多个进程竞争和共享资源如何预防
-解决多个进程因为竞争资源而出现故障
处理机的竞争尤为突出
10
进程的结构
组成(进程映像):
程序、数据集合、进程控制块PCB(ProcessControlBlock)
PCB是进程存在的唯一标志。
创建进程时,创建PCB;
进程结束时,系统将撤消其PCB。
11
PCB
进程标识信息:
进程的内部和外部标识符
处理机状态信息:
通用寄存器值、指令计数器值、程序状态字PSW值、用户栈指针值
进程调度信息:
进程状态、进程优先权、进程调度的其它信息
其它信息:
程序及数据地址、进程同步和通讯机制、资源清单、链接指针
12
PCB的组织方式之一
--单一队列
所有进程的PCB通过链表组织成为一个单一队列。
适用于进程数目不多的系统。
如,Windows操作系统。
13
PCB的组织方式之二
--表格结构
PCB按进程状态不同,组织成不同的表格:
就绪进程表、执行进程表(多机系统中)及阻塞进程表
系统分别记载各PCB表的起始地址
14
PCB的表格结构
15
PCB的组织方式之三
--多级队列
PCB按进程状态不同用链接指针组成不同队列:
就绪进程队列、阻塞进程队列(可按阻塞原因不同,分别组织)
系统分别记载各PCB链表的起始地址
16
PCB多级队列
17
2.2进程的状态
18
进程执行轨迹
进程的轨迹:
进程执行的指令序列,用以观察处理机的执行过程。
例,假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存。
若A、B两进程需要执行12条指令,C进程需要执行4条指令,且C进程执行到第4条指令处必须等待I/O
19
20
假设分派程序分派处理机需要依次执行指令序列:
s+0,s+1,…,s+5
进程A的执行轨迹为a+0,a+1,a+2,a+3,…
进程B的执行轨迹为b+0,b+1,b+2,b+3,…
进程C的执行轨迹为c+0,c+1,c+2,c+3,当它执行到c+3指令时遇到了I/O指令,需要释放处理机,进行输入/输出操作
21
29s+0
30s+1
31s+2
32s+3
33s+4
34s+5
1a+0
2a+1
a+2
a+3
a+4
a+5
35a+6
36a+7
37a+8
38a+9
39a+10
40a+11
7s+0
8s+1
9s+2
10s+3
11s+4
12s+5
13b+0
14b+1
15b+2
16b+3
17b+4
18b+5
25c+0
26c+1
27c+2
28c+3
41s+0
s+1
s+2
s+3
s+4
s+5
19s+0
20s+1
21s+2
22s+3
23s+4
24s+5
7b+6
48b+7
49b+8
50b+9
51b+10
52b+11
22
两状态进程模型
两状态:
执行、未执行
-进程获得处理机,进入执行状态;
当时间片结束或其它某种原因,进程释放处理机,暂停执行,处于未执行状态。
23
两状态进程模型:
队列形式
24
注:
并非所有进程只要“未执行”就处于就绪(ready),有的需要阻塞(blocked)等待I/O完成
“未执行”又可分为就绪和阻塞
25
进程的五状态
执行状态(Running)
就绪状态(Ready)
阻塞状态(Blocked)
新状态(New)
终止状态(Terminated)
26
1.新状态:
进程已经创建,但未被OS接纳为可执行进程
2.就绪状态:
准备执行
3.执行状态:
占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)
4.阻塞状态:
等待某事件发生才能执行,如等待I/O完成等
5.终止状态:
因停止或取消,被OS从执行状态释放
27
28
①空新状态新创建的进程首先处于新状态。
②新状态就绪状态当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。
③就绪状态执行状态当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行。
④执行状态终止状态执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。
29
⑤执行状态就绪状态分时系统中,时间片用完,或优先级高的进程到来,将中断较低优先级进程的执行。
进程从执行状态转变为就绪状态,等待下一次调度。
⑥执行状态阻塞状态执行进程需要等待某事件发生。
通常,会因为进程需要的系统调用不能立即完成,如读文件、共享虚拟内存、等待I/O操作、等待另一进程与之通信等事件而阻塞。
⑦阻塞状态就绪状态当阻塞进程等待的事件发生,就转换为就绪状态。
进入就绪队列排队,等待被调度执行。
30
注:
某些系统允许父进程在任何情况下终止其子进程。
如果一个父进程被终止,其子孙进程都必须终止。
-新状态终止
-就绪状态终止
-阻塞状态终止
31
32
问题:
多个进程竞争内存资源
内存资源紧张
无就绪进程,处理机空闲:
I/O的速度比处理机的速度慢得多,可能出现全部进程阻塞等待I/O
33
解决方法
采用交换技术:
换出一部分进程到外存,以腾出内存空间
采用虚拟存储技术:
每个进程只能装入一部分程序和数据(存储管理部分)
34
对换技术,交换技术
(Swapping)
将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。
35
进程的挂起状态
进程被交换到外存,状态变为挂起状态
36
进程挂起的原因
进程全部阻塞,处理机空闲。
系统负荷过重,内存空间紧张。
操作系统的需要。
操作系统可能需要挂起后台进程或一些服务进程,或者某些可能导致系统故障的进程。
终端用户的请求。
父进程的需求。
37
被挂起进程的特征
不能立即执行
可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行
使之挂起的进程为:
自身、其父进程、OS
只有挂起它的进程才能使之由挂起状态转换为其他状态
38
挂起与阻塞
问题
是否只能挂起阻塞进程?
如何激活一个挂起进程?
39
区分两个概念:
?
进程是否等待事件,阻塞与否
进程是否被换出内存,挂起与否
4种状态组合:
就绪:
进程在内存,准备执行
阻塞:
进程在内存,等待事件
就绪/挂起:
进程在外存,只要调入内存即可执行
阻塞/挂起:
进程在外存,等待事件
40
注:
处理机可调度执行的进程有两种:
新创建的进程
或换入一个以前挂起的进程
通常为避免增加系统负载,系统会换入一个以前挂起的进程执行。
41
挂起
接纳
激活
就绪/挂起
图2.12具有挂起状态的进程模型
时间片完
新建
就绪
执行
阻塞
终止
分派/调度
事件发生
事件等待
完成
阻塞/挂起
42
具有挂起状态的进程状态转换
阻塞 阻塞/挂起:
OS通常将阻塞进程换出,以腾出内存空间
阻塞/挂起就绪/挂起:
当阻塞/挂起进程等待的事件发生时,可以将其转换为就绪/挂起
就绪/挂起 就绪:
OS需要调入一个进程执行
就绪就绪/挂起:
一般,OS挂起阻塞进程。
但有时也会挂起就绪进程,释放足够的内存空间
新 就绪/挂起(新 就绪):
新进程创建后,可以插入到就绪队列或就绪,挂起队列。
若无足够的内存分配给新进程,则需要新就绪/挂起
43
具有挂起状态的进程状态转换(续)
阻塞/挂起阻塞:
当阻塞/挂起队列中有一个进程的阻塞事件可能会很快发生,则可将一个阻塞/挂起进程换入内存,变为阻塞
执行就绪/挂起:
当执行进程的时间片用完时,会转换为就绪。
或,一个高优先级的阻塞/挂起进程正好变为非阻塞状态,OS可以将执行进程转换为就绪/挂起状态
所有状态终止:
通常,执行终止。
但某些OS中,父进程可以终止其子进程,使任何状态的进程都可转换为退出状态
44
2.3进程的控制
45
两种执行模式
系统模式(又称为系统态)、控制模式或内核模式:
-具有较高的特权
-运行系统特定的指令,包括读/写控制寄存器的指令、基本I/O指令以及与存储器管理有关的指令,及一些特定的内存区
-内核模式下的处理机及其指令、寄存器和内存都受到完全控制和保护
用户模式(或用户态)
-具有较低的特权
-用户程序一般运行在用户模式
46
模式切换
用户模式系统模式:
用户程序执行到一条系统调用,进入操作系统内核执行
系统模式用户模式:
执行完系统调用的功能,返回到用户程序
特殊情况:
程序执行到结束语句时,切换到系统模式,不再返回到用户程序
47
操作系统内核(Kernel)
操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础。
现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对它们进行特殊保护。
通常把这一部分称为操作系统的内核。
48
用户通过系统调用访问操作系统的功能,这些功能最终都通过操作系统内核实现。
不同的操作系统对内核的定义和功能范围的设定是不同的。
一般地,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能。
-资源管理:
进程管理、存储管理和I/O设备管理
-支撑功能:
中断处理、统计、监测、时钟管理、原语操作等。
49
资源管理功能
进程管理:
进程创建和终止、调度、状态转换、同步和通信、管理PCB
存储管理:
为进程分配