操作系统习题课(一) - pku · 2019-01-21 · 进程控制块pcb...

20
操作系统习题课(一) 主讲教师:赵俊峰

Upload: others

Post on 15-Mar-2020

29 views

Category:

Documents


0 download

TRANSCRIPT

操作系统习题课(一)

主讲教师:赵俊峰

中断的调用过程

中断装置

PSW PC

CPU

PSWa PCa

PSWb PCb

……

系统堆栈

向量代号

中断处理程序地址

……

中断向量表

0 D0

1 D1

255 D255

中断处理程序

程序

中断断点

1

2 3

4

5

处理器接收中断信号

保护现场 分析中断向量

调用中断处理程序

将处理器置为中断处理程序的入口地址

流程

中断与异常的区别? 中断是由与现行指令无关的中断信号触发的,是异步

的,中断的发生与CPU处于用户模式或内核模式无关,通常在两条机器指令之间才可响应中断,一般而言,中断处理程序提供的服务不是为当前进程所需要的,如时钟中断等,中断允许嵌套

异常则是处理器正在执行的现行指令引起,因而一条指令允许陷入,通常异常处理程序提供的服务是为当前进程所用的,异常多数为一重处理异常包括出错和陷入:区别是它们发生时保存的返回指令地

址不同出错保存指向触发异常的那条指令

陷入保存触发异常的那条指令的下一条指令;

当从异常返回时,出错会重新执行那条指令,而陷入不会重新执行那条指令

如缺页异常是一种出错,而陷入主要应用在程序调试中

异常处理过程可能发生中断,反之则不会发生

强迫性中断事件 自愿性中断事件

保存现场信息 保存现场信息

取出中断码 取出访管号

分析中断原因 分析何种系统调用

转相应处理程序

是否中断嵌套

由系统恢复现场由系统恢复现场 转低级调度程序

返回上层中断返回目态程序

需要切换进程

T F

F T

进程—概念

进程创立步骤:

1. 分配进程控制块

2. 初始化机器寄存器

3. 初始化页表

4. 将程序代码从磁盘读进内存

5. 将处理器状态设置为“用户态”

6. 跳转到程序的起始地址(设置程序计数器)

硬件将第五、第六步作为一个步骤完成

UNIX:fork

Windows: CreateProcess

进 程 概 念(一)

问题:如果系统中有N个进程,运行进程最多几个,最少几个?

就绪进程最多几个,最少几个?

等待进程最多几个,最少几个?

进程的状态及其转换

运行

就绪 等待

解答:处于运行态进程个数不能大于处理器个数,处于就绪态和等待态的进程可以有多个

如:对于单CPU计算机:运行进程最多1个,最少0个;就绪进程最多N-1个,最少0个;等待进程最多N个,最少0个;

概念:进程、进程的基本状态;

进 程 概 念(一)

进 程 概 念(二)

问题:进程有无如下状态转换,为什么?

(1)等待—运行

(2)就绪—等待

解答:(1)不能:等待-就绪-运行

(2)不能:就绪-运行-等待

问题:一个转换发生,是否另一个转换一定发

生?找出所有的可能。

进 程 概 念(三)

解答: 就绪—运行: 不一定(系统中仅一个进程)

转换条件:被调度程序选中

运行—就绪:不一定(讨论就绪队列的长度及进程

优先权)

转换条件:时间片到时,或有更高优先级的进程出现

运行

就绪 等待

解答:

运行—等待: 不一定(考虑死锁)

转换条件:等待某事件发生

等待—就绪: 不一定(有可能还有进程运行在

CPU上)

转换条件:等待的事件发生

进 程 概 念(三)

运行

就绪 等待

进 程 概 念(四)

问题:日常生活中的“进程”举例

解答:

两个角度:“程序-数据-运行”

或“资源-调度-运行”

经典例子:“按照菜谱作菜”“乐队按照乐谱演奏”或“按照武功秘籍练武”等

进程概念回顾

进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位

特征

并发性、动态性、独立性、交往性、异步性、结构性、制约性、共享性

进程的状态

三状态模型

运行态(Running):进程占有CPU,并在CPU上运行

就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)

等待态(Blocked):指进程因等待某种事件的发生而暂时不能运行的状态

即使CPU空闲,该进程也不可运行

运行

就绪 等待

进程状态转换

Ready

Blocked

Running Exit

Blocked

Suspend

New

Ready

Suspend

Admit Admit

Suspend

Release

Event

Wait

Event

Occurs

Event

Occurs

Activate

Suspend

Activate

Suspend

Dispatch

Timeout

进程状态转换 挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:阻塞→阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,发生这种转换,以提交新进程或运行就绪进程

就绪→就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程

运行→就绪挂起:对抢占式系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态

收容(Admit):收容一个新进程,进入就绪状态或就绪挂起状态。进入就绪挂起:考虑系统当前资源状况和性能要求,将新建进程对换出去成为就绪挂起状态;

进程控制块PCB

系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程

系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志

进程与PCB是一一对应的

记录调度信息、现场信息等

进程—进程控制块PCB内容

进程—进程的组成

进程=程序+数据+进程控制块

程序:描述进程要实现的功能

数据:程序操作的对象

进程控制块:进程的“灵魂”,保存所有进

程的地址信息,可以找到所有进程

躯体