操作系统复习要点

操作系统复习要点

第二章 操作系统的结构和硬件

2.4 中断及其处理

2.4.1 中断概念及其类型

中断:某个事件(电源掉电、定点加法溢出、I/O传输结束等)发生时,系统终止现行程序的运行,引出处理该事件的程序对事件进行处理,处理完毕后返回断点继续执行的过程
在这里插入图片描述中断类型:
按中断功能分:

  1. 输入输出中断
  2. 外中断
  3. 机器故障中断
  4. 程序性中断
  5. 访管中断

按中断方式分:

  1. 强迫性中断:输入输出中断、外中断、机器故障中断、程序性中断
  2. 自愿中断:访管中断

按中断来源分:

  1. 中断:处理机外部事件引起的中断。例:时钟、磁盘、终端
  2. 俘获:处理机内部事件引起的中断。例:非法指令、地址越界、浮点溢出、tmp指令。

2.4.2 向量中断和探询中断

向量中断:当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程

中断向量:该类型中断的中断服务例行程序的入口地址和处理器状态字

两类不同的中断机制:向量中断、探寻中断

2.4.3 中断进入

现场:在中断的那一时刻能确保程序继续运行的有关信息

保护现场:当中断发生时,必须立即把现场信息保存在主存里,这一工作过程称为保护现场

恢复现场:在程序重新运行之前,把保留的该程序现场信息从主存中送至指令计数器、通用寄存器或一些特殊寄存器中,这些工作称为恢复现场

中断响应:中央处理机发现已有中断请求时,中断现行程序执行,并引出中断处理程序的过程

  • 中断响应过程:
    ①保留程序断点及处理机有关信息
    ②自动转入相应的中断处理程序执行
  • 中断响应硬件支持:指令计数器、处理器状态寄存器、中断向量表、系统堆栈

2.4.4 软件中断处理过程

①保留被中断程序的现场
②进入相应的中断服务流程
③恢复被中断程序的现场

第四章 进程及进程管理

4.2 进程概念

4.2.1 进程定义

进程:一个程序在给定活动空间和初始环境下,在一个处理机上执行的过程(运行→暂停→运行)

进程和程序的区别:
① 程序是静态的概念,进程是动态的概念
②进程是一个能独立运行的单位,能与其他进程并行的活动
③进程是竞争系统资源的基本单位
④关联:进程一定包含一个程序,一个程序可以对应多个进程

4.2.2 进程的状态及变迁

多任务系统中进程的基本状态:
①就绪状态(ready):进程已获得除CPU之外的运行所必需的资源,一旦得到CPU的控制权,立即就可以运行
②运行状态(running):该进程已获得运行所必须的资源,它的程序正在处理机上运行
③等待状态(wait):进程正等待着某一事件的发生而暂时停止执行。若此时CPU给它控制权也无法执行

进程状态的变迁(红线可以无,实际状态变迁为黑线标注的箭头)
在这里插入图片描述

4.2.2 进程控制块

进程控制块:描述进程与其它进程、系统资源的关系以及进程在各个不同时期所处状态的数据结构,称为进程控制块PCB

进程的组成:程序与数据、PCB(进程控制块)

进程控制块的主要内容:
①进程标识符:进程符号名或内部id号
②进程当前状态:进程处于何种状态
③当前队列指针:该项登记了处于同一状态的下一个进程的PCB地址
④进程优先级:反映了进程要求CPU的紧迫程度
⑤CPU现场保护区:当进程由于某种原因释放处理机时,CPU现场信息被保存在PCB的该区域
⑥通信信息:进程间进行通信时所记录的有关信息
⑦家族联系:本进程与家族的联系
⑧占用资源清单

进程控制块的组织——进程队列结构
在这里插入图片描述

4.3 进程控制

4.3.1 进程控制的概念

进程控制的职责:对系统中的进程实施有效的管理,负责进程状态的改变

进程状态的变化:
在这里插入图片描述
常用的进程控制原语:创建原语、撤销原语、等待原语、唤醒原语

4.3.2 进程的创建与撤销

  1. 进程创建:create{name,priority}
    name:被创建进程的标识符
    priority:优先级
    在这里插入图片描述
  2. 进程撤销:kill(或exit)
    在这里插入图片描述

4.3.2 进程等待与唤醒

  1. 进程等待:susp(chan)
    chan:进程等待的原因/事件
    在这里插入图片描述
  2. 进程唤醒:wakeup(chan)
    chan:进程等待的原因/事件
    在这里插入图片描述

4.4 进程之间的约束关系

4.4.1 进程竞争与合作

进程之间的相互制约关系:
①由于竞争系统资源而引起的间接相互制约关系(竞争系统资源)——由操作系统的资源分配功能来解决
②由于进程之间存在共享数据而引起的直接相互制约关系(进程协作),包括信息共享和并行处理——由操作系统提供的同步机构来解决

4.4.2 进程互斥的概念

互斥:在操作系统中,当某一进程正在访问某一存储区域时,就不允许其它进程来读出或者修改该存储区的内容,否则,就会发生后果无法估计的错误,进程间的这种相互制约关系称为互斥。
(1)临界资源:一次仅允许一个进程使用的资源
注意:

  • 例1:进程共享打印机
  • 例2:进程共享公共变量

硬件:输入机、打印机、磁带机
软件:公用变量、数据、表格、队列
(2)临界区:进程中对公共变量(或存储区)进行审查与修改的程序段,称为相对于该公共变量的临界区

4.4.2 进程同步的概念

进程同步:并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息称为进程同步

同步的例子:
(1)病员就诊的同步关系
(2)计算进程与打印进程共享单缓冲区的同步问题

4.5 同步机构

4.5.1 锁和上锁、开锁操作

上锁原语:

算法 lock
输入:锁变量w
输出:无
{
	test:
	if(w==1)
		goto test;
		else w=1;
}

开锁原语:

算法:unlock
输入:锁变量w
{
	w=0;
}

改进后的上锁原语:

算法 lock
输入:锁变量w
输出:无
{
	while(w==1){
		保护现行进程的CPU现场;
		将现行进程的PCB插入w的等待队列;
		置该进程为"等待"状态
		转进程调度
	}
	w=1;
}

改进后的开锁原语:

算法 lock
输入:锁变量w
输出:无
{
	if(w等待队列不空){
		移出等待队列首元素;
		将该进程的PCB插入就绪队列;
		置该进程为"就绪"状态;
	}
	w=0;
}

4.5.2 信号灯和P、V操作

1.信号灯:一个确定的二元组(s,q),s:一个非负初值的整型变量,q:一个初始状态为的队列

一个信号灯的建立必须经过说明,即说明信号灯s的意义和初值(初值不能为负值),每个信号灯都有一个队列,在建立信号灯时,队列为空当信号灯的值≥0时,表示绿灯,进程可以继续当信号灯的值<0时,表示红灯,进程被阻。s的值可以改变以反映资源或并发进程状态的改变,信号灯的值只能通过P、V操作原语改变,在用户给出信号灯初值后,信号灯在进程同步过程中的值不能被用户程序直接修改。信号灯的取值范围负整数值、零、正整数值

P、V操作:
(1)P操作
动作:
①s值减1
②若相减结果≥0,则进程继续执行
③若相减结果<0,该进程被封锁,并把它插入到信号灯的等待队列中,然后转进程调度程序

算法 p
输入:变量s
输出:无
{
	s--;
	if(s<0){
		保留调用进程CPU现场;
		将该进程的PCB插入s的等待队列;
		置该进程为"等待"状态;
		转进程调度;
	}
}

(2)V操作
动作:
①s值加1
②若相加结果>0,则进程继续执行
③若相加结果≤0,从信号灯等待队列移出一个进程,解除它的等待状态然后返回本进程继续执行

算法 v
输入:变量s
输出:无
{
	s++;
	if(s<=0){
		移出等待队列首元素;
		将该进程的PCB插入就绪队列;
		置该进程为"就绪"状态
	}
}

4.6 进程互斥与同步的实现

4.6.1 上锁原语和开锁原语实现进程互斥

在用户程序中,访问临界资源的前后必须增加上锁原语和开锁原语,任何欲进入临界区的进程,必须先执行上锁原语,若上锁原语顺利进行,则进程可以进入临界区,在完成对临界资源的访问后再执行开锁原语,以释放临界资源。

4.6.2 信号灯实现进程互斥

对于两个并发进程,互斥信号灯的值仅取1、0、-1三个值
若mutex=1,表示没有进程进入临界区
若mutex=0,则表示有一个进程进入临界区
若mutex=-1,表示一个进程进入临界区,另一个进程等待进入

4.6.3 进程同步的实现

进程流图:图的连接描述了进程间开始和结束的次序的次序约束

顺序:
顺序
并行:
在这里插入图片描述
共享缓冲区的合作进程同步:
在这里插入图片描述
(1)分析同步关系:
①当buf内有新数据时,IOP进程才能打印;当buf内有空位置时,CP进程才能把下一个计算结果数据送入buf
②当CP进程把计算结果送入buf时,要给IOP发消息,当IOP进程将buf中的数据取出后,要给CP发消息

(2)设置两个信号灯Sa和Sb,Sa表示缓冲区是否有可打印的结果,赋予初值为0(原因:打印进程在执行前先执行P(Sa)操作,若P操作后Sa结果小于0,则无可打印的结果,进程被阻;反之,若Sa为0,则证明有可打印的结果,则继续执行打印操作);Sb表示缓冲区有无空位置存放新的信息,赋予初值为1(原因:当计算出来的结果要放入缓冲区之前,需要做一步P(Sb)操作判断缓冲区是否有空位置,若P操作后的Sb为0,则可以继续,反之,若Sb为负数,则进程被阻,等待打印进程从缓冲区取走信息后将它唤醒),打印进程将缓冲区数据取走后,便对Sb进行V(Sb)操作,告知缓冲区信息已被取走,可以存放新的信息。
在这里插入图片描述

4.6.4 生产者——消费者问题

生产者:当有界缓冲区无空位置,要等待;向有界缓冲区放入物品后,要发消息
消费者:当有界缓冲区无物品,要等待;从有界缓冲区取出物品,要发消息

生产者——消费者问题解法:
(1)信号灯设置:

  • Sb:表示空缓冲区的数目,初值=n
    Sa:表示满缓冲区(即信息)的数目,初值=0(两个同步信号灯)
  • mutex:表示有界缓冲区是否被占用,初值=1(一个互斥信号灯)
    (2)同步描述:
    在这里插入图片描述

4.8 线程概念及特点

4.8.1 线程的概念

线程可以用一个现场(context)来表示,现场由程序计数器、寄存器组和所要求的状态字符组成

线程可以这样描述:
①线程是进程中的一条执行路径
②它有自己私用的堆栈和处理机执行环境
③它共享父进程的主存
④它是单个进程所创建的许多个同时存在的线程中的一个

进程与线程区别:进程是任务调度单位,也是系统资源的分配单位;而线程是进程中的一条执行路径,当系统支持多线程处理时,线程是任务调度的单位,但不是系统资源的分配单位

4.8.1 线程的特点与状态

线程的状态变迁:
在这里插入图片描述

第五章 资源分配与调度

5.1 资源管理概述

5.1.1&&5.1.2

操作系统对资源区分两种不同的概念
①物理资源——系统中那些物理、可实际使用的资源
②虚拟资源——逻辑资源。是经过操作系统改造的、用户看到的,使用方便的虚资源

目的:①方便用户使用 ②资源可动态分配,提高资源利用率

5.2 资源管理的机制和策略

5.2.1&&5.2.2

资源分配策略:在众多个请求者中选一个满足条件的请求者原则

资源分配策略具体如何体现?
体现在资源请求队列的排序原则上
(1)先请求先服务策略
①排序原则——按请求的先后次序排序:每一个新产生的请求均排在资源请求队列的队尾。
②资源可用时的处理:资源可用时,取资源请求队列队首元素,将该资源分配给请求者。
(2)优先调度策略
①排序原则——按请求的优先级高低排序

  • 对每一个进程制定一个优先级
  • 按优先级的高低排序——每一个新产生的请求按对应进程的优先级高低插入到队列的相应位置。

(3)针对设备特性的调度策略
调度目标:当有大量的I/O请求时,降低完成这些I/O服务的总时间

如何确定移动臂磁盘组中磁盘块的物理位置

5.3 死锁

5.3.1 死锁的定义与例子

死锁:两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进。此时称这一组进程为死锁。

5.3.2 引起死锁的原因和必要条件

引起死锁的原因:
①系统资源不足
②进程推进顺序非法

产生死锁的必要条件
①互斥条件——涉及的资源是非共享的,即为临界资源
②不剥夺条件——进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走
③部分分配——进程每次申请它所需要的一部分资源。在等待新资源的同时,进程继续占用已分配到的资源
④环路条件——存在一种进程的循环链,链中的每一个进程已获得的资源同时被链中下一个进程所请求

5.3.3 系统模型和死锁的处理

(1)资源请求矩阵:
在时刻t资源请求矩阵
d(t)=
d11 d12 … d1m
d21 d22 … d2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
dn1 dn2 … dnm

dij表示进程pi还需要j类资源的数目

(2)资源分配矩阵:
在时刻t资源分配矩阵
a(t)=
a11 a12 … a1m
a21 a22 … a2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
an1 an2 … anm

aij表示进程pi已占用j类资源的数目

(3)什么情况下系统是安全的
当进程请求某类资源时,进程对该类资源的最大需求量小于当前时刻系统所拥有的该类资源的数目,那么满足进程的这次请求,系统是安全的

系统的安全状态描述:按某种顺序,并发进程都能达到获得全部资源而顺序完成的序列称为安全序列,能找到安全序列的状态为安全状态。

5.3.4 解决死锁问题的策略

为了使系统不发生死锁,必须要破坏产生死锁的四个必要条件之一

①采用资源静态分配方法预防死锁
②采用资源动态分配、有控分配方法来避免死锁
③当死锁发生时检测出死锁,并设法修复
④忽略死锁,一旦发生死锁便重启系统(这种方法被绝大多数操作系统所采用)

5.3.5 死锁的预防

死锁的预防分为静态预防动态避免

死锁的静态预防就是采用资源预先分配方式。系统在应用程序进入系统前分配它所需要的所有资源,当资源一旦分配给该应用程序后,在其整个运行期间这些资源为它独占。

5.3.6 死锁的避免

死锁的动态避免就是采用资源动态分配的方式
有序资源分配方法:系统中所有资源都给一个唯一的编号,所有分配请求必须以上升的次序进行,当遵守上升次序的规则时,若资源可用,则予以分配;否则,请求者等待。
银行家算法:申请者事先说明对各类资源的最大需求量。在进程活动期间动态申请某类资源时,由系统审查现有该类资源的数目是否能满足当前进程的最大需求量,如能满足就予以分配,否则拒绝。

例:
拥有某类资源10个,现有P、Q、R共享该类资源,申请该类资源的需求量如下。

进程最大需求量已占有资源现申请资源个数
P841
Q421
R921

已占有的资源总数:4+2+2=8个
还剩下的资源数:10-8=2个
计算进程还需要的资源数:
P:8-4=4个
Q:4-2=2个
R:9-2=7个
∵现拥有2个剩余资源数
又∵Q还需要的资源数为2×1=2个(乘的1为现申请的资源个数)
∴只有Q符合条件,分配给Q

5.3.7 死锁的检测与忽略

第六章 处理机调度

6.1 处理机的多级调度

(1)批处理系统中的处理机调度
分两级:作业调度和进程调度

作业调度:又称为宏观调度,任务——对存放在辅存设备上的大量作业,以一定的策略进行挑选,分配主存等必要的资源,建立作业对应的进程,使其投入运行。

进程调度:微观调度,任务——对进入主存的所有进程,确定哪个进程在什么时候获得处理机,使用多长时间

(2)多任务系统中的处理机调度
多任务系统包括:分时操作系统、个人计算机操作系统

多任务系统中最小活动单位:进程

多任务系统中的进程调度:系统提供进程调度程序,其功能是当处理机空闲时,以某种策略选择一个就绪进程去运行,并分配处理机时间
(3)多线程系统中的处理机调度
处理机的分配单位:线程

多线程系统中的线程调度:系统提供线程调度程序,其功能是当处理机空闲时,以某种策略选择一个就绪线程去运行,并分配处理机时间

6.2 作业调度

6.2.1 作业的状态

作业的状态:
后备状态:作业所需的程序、数据、操作说明书已存放在磁盘上,等待调度
执行状态:作业所需的信息已进入主存,开始运行
完成状态:作业计算完成,退出系统

作业状态的变迁:
在这里插入图片描述

6.2.2 作业调度的功能

6.2.3 作业控制块

作业名——作业的名字
资源要求——容量、外部设备等
资源使用情况——已经占用的主存的地址、大小、 哪台设备等
作业类型——控制方式、作业类型
作业优先级——占用CPU、占用系统运行的优先级
作业状态——后备、执行、完成状态

6.2.4 调度算法性能的衡量

周转时间 ti:一个作业提交给计算机系统到该作业的结果返回给用户所需要的时间,说明作业 i 在系统中停留时间的长短
ti公式ti = tci - tsi
ti:作业 i 的周转时间
tci:作业 i 的完成时间
tsi:作业 i 的提交时间

平均周转时间 t :(周转时间 t 时间越短越好)
t = 1 n ∑ i = 1 n t i t=\frac{1}{n} \quad\sum_{i=1}^n t_i\quad t=n1i=1nti

带权周转时间 wi :一个作业的周转时间与其运行时间的比值。(说明作业 i 在系统中相对等待时间)
w i = t i t r i w_i=\frac{t_i}{tri} \quad wi=triti
wi :作业 i 的带权周转时间
tri :作业 i 的实际执行时间

平均带权周转时间 w :
w = 1 n ∑ i = 1 n w i w=\frac{1}{n} \quad\sum_{i=1}^n w_i\quad w=n1i=1nwi

6.2.5 作业调度算法

例:

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.00----
28.500.50----
39.000.10----
49.500.20----

(1)先来先服务调度算法(FCFS)
①策略:按作业来到的先后次序进行调度
②特点:简单、易实现

解:

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.008.0010.002.001
28.500.5010.0010.502.004
39.000.1010.5010.601.6016
49.500.2010.6010.801.306.5

平均周转时间 t = 1.725
平均带权周转时间 w = 6.875

(2)短作业优先调度算法
①策略:按作业运行时间的长短进行调度
②特点:易实现,效率较高

解:
①8.00时刻作业1来到,正常执行

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.008.0010.002.001
28.500.50----
39.000.10----
49.500.20----

②按执行时间选择作业3(优先选择执行时间短的执行)

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.008.0010.002.001
28.500.50----
39.000.1010.0010.101.1011
49.500.20----

③重复②的过程,因为0.20<0.50,选择作业4

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.008.0010.002.001
28.500.50----
39.000.1010.0010.101.1011
49.500.2010.1010.300.804

④最后运行作业2

作业提交时间执行时间开始时间完成时间周转时间带权周转时间
18.002.008.0010.002.001
28.500.5010.3010.802.304.6
39.000.1010.0010.101.1011
49.500.2010.1010.300.804

最后得出,
平均周转时间 t = 1.55
平均带权周转时间 w= 5.15

比较(1)(2)的 t 和 w ,明显短作业优先调度算法先来先服务调度算法好,但短作业优先调度算法存在缺陷,即若有一个长作业有可能永远得不到调度。

第七章 主存管理

7.1 主存管理概述

7.1.1 && 7.1.2

物理地址:计算机主存单元的真实地址
主存空间:物理地址的集合所对应的空间
逻辑地址:用户的程序地址(指令地址或操作数地址)
程序地址空间:用户程序所有的逻辑地址集合对应的空间

存储空间就是系统拥有的主存空间,若主存由m个存储单元,则存储单元编号是0~(m-1)。

程序的地址空间由程序的地址结构决定
①程序的一维地址结构:确定线性地址空间中的指令地址或操作数地址只需要一个信息
②程序的二维地址结构(一个程序由若干个分段组成,每个分段是一个连续的地址区。则程序的地址空间由若干个分段组成):确定地址空间中的指令地址或操作数地址需要两个信息,一个是该信息所在的分段,另一个是该信息在段内的偏移量

7.2 主存管理的功能

7.2.1 虚拟存储器

虚拟存储器:由操作系统和硬件相配合实现的主存和辅存之间信息的动态调度,这样的计算机系统为用户提供了一个其存储容量比实际主存大得多的存储器

实现虚拟存储器的物质基础:
①有相当容量的辅存——足以存放应用程序的虚地址空间
②有一定容量的主存——存放进入主存的多进程的信息
③地址变换机构

7.2.2 地址映射

地址映射:将程序地址空间中使用的逻辑地址变成主存中的物理地址的过程

动态地址映射:在程序执行期间,随着每条指令和数据的访问自动连续地进行地址映射
动态地址映射硬件支持:重定位寄存器

7.2.3 主存分配

主存分配功能包括:
①制定分配策略、构造分配用的数据结构,
②响应主存分配请求、
③决定用户程序的主存位置并将程序装入内存

主存管理存储器的策略:
①放置策略
②调入策略
③淘汰策略

7.2.4 存储保护

存储保护:有硬件(软件配合)保证每个程序只能在给定的存储区域内活动

7.3 分区存储管理及存在的问题

7.3.1 动态分区存储管理技术

7.3.2 分区分配机构

在这里插入图片描述
在这里插入图片描述
flag:分配标志。空闲区为0,分配区为非0数值
size:分区大小。
next:勾链字。空闲区中,指向下一个空闲分区分配区中,为0

7.3.3 分区分配与放置策略

常用的放置策略:首次适应算法、最佳适应算法、最坏适应算法
(1)首次适应算法:将输入的程序放置到主存里第一个足够入它的地址最低的空闲区中
空闲区队列结构:空闲区地址由高到低排序
特点:尽可能利用存储器中低地址的空闲区,而尽量保存高地址的空闲区

在这里插入图片描述
(2)最佳适应的算法:将输入的程序放置到主存中与它所需大小最接近的空闲区中
空闲区的队列结构:空闲区大小由小到大排序
特点:尽可能利用存储器中小的空闲区,而尽量保存大的空闲区
在这里插入图片描述
(3)最坏适应算法:将输入的程序放置到主存中与它所需大小差距最大的空闲区中
空闲区队列结构:空闲区大小由大到小排序
特点:尽可能利用存储器中大的空闲区
在这里插入图片描述

7.3.4 碎片问题及拼接技术

拼接技术:移动存储器中某些已分配区中的信息,使本来分散的空闲区连成一个很大的空闲区
在这里插入图片描述
拼接技术缺点:
①消耗系统资源
②当系统进行拼接时,它必须停止所有其他的工作
③拼接需要消耗大量的系统资源

7.4 页式存储管理

7.4.1 页式系统应解决的问题

页面:程序的地址空间被等分成大小相等的片,成为面
主存块:主存被分成大小相等的片

7.4.2 页式地址的变换

页表:为了实现从地址空间到物理主存的映像,系统建立了页与主存块之间对应关系的数据结构,该页面称为页面映像表,简称页表

页表组成:高速缓冲存储器、主存区

当CPU给出的地址长度为16位,页面大小为1KB时,在分页系统中地址结构的格式为:
在这里插入图片描述
页号6位,页内位移10位
虚存大小:210 × 26 = 216

当CPU给出的地址长度为32位,页面大小为4KB时,在分页系统中地址结构的格式为:
在这里插入图片描述
页号20位,页内位移12位
虚存大小:220 × 212 = 232

页式地址变换步骤:(详细见课本)
①CPU给出操作数地址(为2500)
②由分页机构自动把逻辑地址分为两部分,得到页号p和页内相对位移w(p=2,w=452,转换成二进制)
③根据页表始址寄存器指示的页表始地址,以页号为索引,找到第2页对应的块号(为7)
④将块号b和页内位移量w拼接在一起,就形成了访问主存的物理地址(7×1024+452=7620)

7.4.3 请调页面的机制

扩充页表功能:
在这里插入图片描述
中断位 i ——标识该页是否在主存,若i=1,表示该页不在主存;若i=0,表示该页在主存
辅存地址——该页面在辅存的位置

7.4.4 淘汰机制与策略

淘汰策略:用来选择淘汰哪一页的规则叫置换策略,也叫淘汰算法
在这里插入图片描述

引用位——表示该页最近是否被访问,若为0,该页没有被访问;若为1,该页已被访问
改变位——表示该页是否被修改,若为0,该页未被修改;若为1,该页已被修改

在这里插入图片描述

7.4.5 几种置换算法

(1)先进先出算法(FIFO算法):总是选择在主存中居留时间最长(即最早进入主存)的一页淘汰。
思路:
建立一个页面进入主存的先后次序表
建立一个替换指针,指向最早进入主存的页面
当需要置换一页时,选择替换指针指向的那一页,然后调整替换指针的内容

① 页号表实现:
页号表记录页面进入主存先后次序:2→4→5→1
在这里插入图片描述
当要调入第6页时,将第2页改为6,替换指针指向第4页
在这里插入图片描述

②存储分块表实现:
存储分块表记录页面进入主存先后次序:4→5→1→2
在这里插入图片描述
替换指针内的数为所要替换的块号
指针指向先后次序的下一个页号,值为该页号所对应的块号

当要调入第8页时,置换第4页,先后次序:5→1→2→8
得到:
在这里插入图片描述

(2)最久未使用淘汰算法(LRU算法):选择最长时间未被使用的淘汰
①用页号栈实现最久未使用算法:
页面访问轨迹:4→5→1→2→5→6
页号栈中,栈顶是刚被访问过的页号
在这里插入图片描述
②LRU近似算法
在这里插入图片描述

7.5 段氏和段页式存储管理

7.5.1 段氏地址结构

7.5.2 段氏地址的变换

7.5.3 扩充段表功能

7.5.4 段页式存储管理

第八章 设备管理

8.1 设备管理概述

8.1.1 设备管理的功能

设备分类:
①存储设备:存储信息的设备,又叫块设备,如磁盘、磁鼓
②输入输出设备:将信息从计算机外部输入到机内或反之,又叫字符设备。如键盘、显示器、打印机
③通信设备:负责计算机之间的信息传输,如调制解调器、网卡等

设备功能:
①状态跟踪
②设备分配
③设备控制

8.1.2 设备独立性

设备独立性:用户在程序中使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名

逻辑设备名:用户自己指定的设备名(或设备号),它是暂时的、可更改的

物理设备名:系统提供的设备的标准名称,它是永久的,不可更改的

逻辑设备描述器:记录了逻辑设备与物理设备的对应关系。内容包括——设备逻辑名、设备物理名、设备控制块dcb指针、设备描述器队列指针

在用户程序中定义逻辑设备:
使用高级语言提供的指派语句,通过指派一个逻辑设备名(通道号)来定义一个设备或文件
如:fd1=open("/dev/ip" , mode)
n=write(fd1,buf1,count)
第一个语句是将fd1(文件描述符)与打印机ip以一定的模式(读或写)链接
第二个语句在打印机上输出n个字节的信息

设备独立性优点:
①方便用户
②提高设备利用率
③提高系统可适应性和可扩展性

8.1.3 设备控制块

设备控制块:系统为每一台设备配置了一个用来记录设备的硬件特性、连接和使用情况的数据结构

设备控制块的内容
设备名
设备属性
指向命令转换表的指针
在I/O总线上的设备地址
设备状态
当前用户进程指针
I/O请求队列指针

8.2 缓冲技术

8.2.1 缓冲概述

缓冲:缓冲技术是两种不同速度的设备之间传输信息时平滑传输过程的常用手段

缓冲类别:
①缓冲器
②软件缓冲

缓冲技术解决的问题:
①解决速度差异的问题
②协调传输数据大小不一致的问题
③应用程序的拷贝语义问题

8.2.2 常用的缓冲技术

常用的缓冲技术:
①双缓冲
②缓冲池:由主存中的一组缓冲区组成,每个缓冲区的大小一般等于物理记录的大小

8.3 设备分配

8.3.1 设备分配概述

外部设备分两类:
独占设备——一般采用静态分配
共享设备——一般采用动态分配

I/O设备分配算法:
①先请求先服务:设备请求队列按进程发出此I/O请求的先后次序排序
②优先级最高者优先:设备请求队列按进程发出此I/O请求的优先级高低排序

常用的设备分配技术:独享分配、共享分配、虚拟分配

8.3.2 独享分配

8.3.3 共享分配

8.3.4 虚拟分配

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值