操作系统知识点汇总3-4章

第三章 处理机调度与死锁

一、处理机调度的层次

       1.  高级调度

              1)作业和作业步

              2)作业控制块JCB

              3)作业调度:决定①接纳多少个作业。②接纳哪些作业

2.  低级调度:进程调度或短程调度

       1)功能 :决定就绪对立中的哪个进程应获得处理机。

(1)保存处理机的现场信息。(2)按某种算法选取进程。(3)把处理机分配给进程。

2)三个基本机制

(1)排队器、(2)、分派器(3)上下文切换机制。

3)进程调度方式

(1)非抢占方式:适用于大多数的多道批处理系统环境

(2)抢占方式:能满足对响应时间有着较严格要求的实时任务的需求。

       原则:优先权原则、短作业优先原则、时间片原则。

  1. 中级调度:中程调度

引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。

二、调度队列模型和调度准则

       1.调度队列模型

              1)仅有进程调度的调度队列模型

2)具有高级和低级调度的调度队列模型。具有进程和作业调度

3)同时具有三级调度的调度队列模型

       2. 选择调度方式和调度算法的若干准则

              1)面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则

2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。

.调度算法※

1)先来先服务和短作业(进程)优先调度算法(FCFS)

     ①先来先服务调度算法 :FCFS调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。

     ②短作业(进程)优先调度算法:这说明SJF调度算法能有效地降低作业的平均等待时间,提高系统吞吐量。

       (1) 该算法对长作业不利。

  (2) 该算法完全未考虑作业的紧迫程度

       (3) 不一定能真正做到短作业优先调度

2)高优先权优先调度算法

1.优先权调度算法的类型,分为两种:  

(1) 非抢占式优先权算法

(2) 抢占式优先权调度算法

2.优先权的类型

(1) 静态优先权:静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。   

(2) 动态优先权:动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的。

3. 高响应比优先调度算法

3)基于时间片的轮转调度算法 

       1.时间片轮转法

    2.多级反馈队列调度算法

              (1)应设置多个就绪队列,并为各个队列赋予不同的优先级。

              (2)算法赋予各个队列中进程执行时间片的大小也各不相同

              (3)当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。

              (4)仅当第一队列空闲时,调度程序才调度第二队列中的进程运行

              5)如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列,则此时新进程将抢占正在运行进程的处理机。

适合用户:终端型作业用户;短批、长批处理作业用户。

四、实时调度※

 1)实现实时调度的基本条件

(1)提供必要的信息

①就绪时间(到达时间)

②    开始截止时间和完成截止时间

③    处理时间

④    资源要求

⑤    优先级:绝对、相对优先级

(2)系统处理能力强

(3)采用抢占式调度机制

(4)具有快速切换机制

      2)实时调度算法的分类

              (1)非抢占式调度算法

①非抢占式优先调度算法

②非抢占式优先调度算法

(2)抢占式优先调度算法

              ①基于时钟中断的抢占式优先权调度算法

              ②立即抢占的优先权调度算法

3)常用的几种实时调度算法

      (1) 最早截止时间优先即EDF(Earliest Deadline First)算法

(2) 最低松弛度优先即LLF(Least Laxity First)算法

五、产生死锁的原因和必要条件※

1. 产生死锁的原因

 (1)竞争资源

              ①可剥夺和非剥夺性资源

②竞争非剥夺性资源

③竞争临时性资源

 (2)进程间推进顺序非法

              ①进程推进顺序合法

              ②进程推进顺序非法

 2.产生死锁的必要条件

       1)互斥条件:指进程对所分配到的资源进行排它性使用

··      2)请求和保持条件(部分分配):

       3)不可剥夺条件(不可强占)

       4)环路等待条件

3.处理死锁的基本方法

       1) 预防死锁

       2) 避免死锁

3)  检测死锁

4) 解除死锁

六、预防死锁的方法

       1.预防死锁

1)摒弃“请求和保持(部分分配)”条件:规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源。

2)摒弃“不可剥夺”条件:提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,即它的资源是可以被剥夺的

3)摒弃“环路等待”条件:规定系统将所有资源按类型进行线性排队,并赋予不同的序号

       2.系统安全状态

              1)安全状态

2)由安全状态向不安全状态的转换

  如果不按照安全序列分配资源,则系统可能会由安全状态进入不安全状态。

  1. 3.      利用银行家算法避免死锁

(1).银行家算法中的数据结构

              1)可利用资源向量Available

              2)最大需求矩阵Max

3)分配矩阵Allocation

4)需求矩阵Need

Need[i, j]=Max[i, j]-Allocation[i, j]

5)工作向量Work:在执行安全性检查开始时,Work:=Available。

6)状态标志Finish:初始值为false,达到上述要求时其值为true

7)进程申请资源向量Request

       七、.死锁的检测与解除

             1.死锁的检测

                     1)资源分配图

                     2)死锁定理

                     3)死锁检测中的数据结构

              2.死锁的解除

                     1) 剥夺资源

                     2) 撤消进程

第四章 存储器管理

4.1    存储器的层次结构

       4.1.1.多级存储器结构

最高层:CPU寄存器

              中间:主存

              最底层:辅存

4.1.2.主存储器与寄存器

       1.主存储器:用于保存进程运行时的程序和数据,也称可执行存储器

       2.寄存器:寄存器用于加速存储器的访问速度

4.1.3  高速缓存和磁盘缓存

       1.高速缓存

       2.磁盘缓存

4.2 程序的装入和链接 

       用户源程序变为一个可在内存中执行的程序步骤:(1)编译、 (2)链接、 (3)装入

       4.2.1 程序的装入

              1.绝对装入方式

              2.可重定位装入方式:    根据内存的当前情况,将装入模块装入到内存的适当位置。地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。

··             3.动态运行时装入方式

       4.2.2 程序的链接

              根据链接时间的不同,可把链接分成如下三种:静态,装入时动态、运行时动态。

              1.静态链接方式: (1) 对相对地址进行修改。 (2) 变换外部调用符号。

              2.装入时动态链接   (1) 便于修改和更新    (2) 便于实现对目标模块的共享

             3.运行时动态链接

4.3 连续分配方式

       4.3.1 单一连续分配:只能用于单用户、单任务的操作系统中。

       4.3.2 固定分区分配

              1.划分分区的方法:(1) 分区大小相等 (2) 分区大小不等

              2.内存分配

       4.3.3 动态分区分配

              1.分区分配中的数据结构:(1) 空闲分区表(2) 空闲分区链

              2. 分区分配算法

                     1) 首次适应算法(first fit):增加查找可用空闲分区时的开销。

                     2) 循环首次适应算法(next fit)

                     3) 最佳适应算法(best fit):避免“大材小用”。

                     4) 最坏适应算法(worst fit)

                     5) 快速适应算法(quick fit)

              3.分区分配操作

                     1) 分配内存

                     2) 回收内存

       4.3.6 可重定位分区分配

              1.动态重定位的引入

              2.动态重定位的实现

              3.动态重定位分区分配算法

       4.3.7 对换

              1.对换(Swapping)的引入

                     整体对换(进程对换)、页面对换(分段对换、部分对换)

              2.对换空间的管理

                     文件区:用于存放文件

                   对换区(外存):用于存放从内存换出的进程。

              3.进程的换出与换入

                     (1)进程的换出

                     (2)进程的换入

4.4 基本分页存储管理方式※

       4.4.1 页面与页表

              1.页面

                     (1) 页面和物理块

                            将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页

                            把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框

                     (2) 页面大小:大小应适中。

              2.地址结构

                    

              3.页表

                     在分页系统中,为每个进程建立了一张页面映像表,简称页表。

       4.4.2 地址变换机构

              1.基本的地址变换机构:在系统中只设置一个页表寄存器PTR

              2.具有快表的地址变换机构

       4.4.3 两级页表

              为离散分配的页表再建立一张页表,称为外层页表。

1.5      基本分段存储管理方式※

4.5.1 分段存储管理方式的引入

(1) 方便编程:用户把自己的作业按照逻辑关系划分为若干个段,每个段都是从0开始编址,并有自己的名字和长度。

(2) 信息共享:在实现对程序和数据的共享时,是以信息的逻辑单位为基础的。

(3) 信息保护:信息保护同样是对信息的逻辑单位进行保护

(4) 动态增长

(5) 动态链接:当运行过程中又需要调用某段时,才将该段(目标程序)调入内存并进行链接

4.5.2 分段系统的基本原理

1. 分段:在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。

      

2.段表:为每个分段分配一个连续的分区,进程中的各个段可以离散地移入内存中不同的分区中。

3.地址变换机构:段表寄存器,用于存放段表始址和段表长度TL。

4.分页和分段的主要区别

       (1) 页是信息的物理单位,段则是信息的逻辑单位

       (2) 页的大小固定且由系统决定,段的长度却不固定决定于用户所编写的程序

       (3) 分页的作业地址空间是一维的,分段的作业地址空间则是二维的

       4.5.3 信息共享

              可重入代码:绝对不允许可重入代码在执行中有任何改变

       4.5.4 段页式存储管理方式

1.基本原理:先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名

2.地址变换过程:在段页式系统中,为了获得一条指令或数据,须三次访问内存。

4.6 虚拟存储器的基本概念※

       4.6.1 虚拟存储器的引入

              1.常规存储器管理方式的特征(1) 一次性  、 (2) 驻留性

              2.局部性原理(1) 时间局限性(2) 空间局限性。

              3.虚拟存储器的定义

       4.6.2 虚拟存储器的实现方法

              1.分页请求系统:这是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。

           (1) 硬件支持:① 请求分页的页表机制② 缺页中断机构③ 地址变换机构

           (2)实现请求分页的软件:

              2.请求分段系统:在分段系统的基础上,增加了请求调段及分段置换功能后所形成的段式虚拟存储系统。

                        (1) 请求分段的段表机制

                        (2) 缺段中断机构

                        (3) 地址变换机构

       4.6.3 虚拟存储器的特征

              1.多次性

              2.对换性

              3.虚拟性

      

4.7 请求分页存储管理方式※

       4.7.1 请求分页中的硬件支持

              1.页表机制

              2.缺页中断机构

                        (1) 在指令执行期间产生和处理中断信号

                        (2) 一条指令在执行期间,可能产生多次缺页中断

              3.地址变换机构

       4.7.2 内存分配策略和分配算法

              1.最小物理块数:指能保证进程正常运行所需的最小物理块数

              2.物理块的分配策略

                     (1) 固定分配局部置换

                     (2) 可变分配全局置换

                     (3) 可变分配局部置换

       4.7.3 调页策略

1.调入页面的时机

    (1)预调页策略

              (2) 请求调页策略

       2.确定从何处调入页面

       3.页面调入过程

4.8 页面置换算法※

       4.8.1 最佳置换算法和先进先出置换算法

              1.最佳(Optimal)置换算法

                     以后永不使用的,或许是在最长(未来)时间内不再被访问的页面

              2.先进先出(FIFO)页面置换算法

       4.8.2 最近最久未使用(LRU)置换算法

              (1) 寄存器

              (2) 栈

       4.8.3 Clock置换算法

              1.简单的Clock置换算法

              2.改进型Clock置换算法

       4.8.4 其它置换算法

              1.最少使用(LFU:Least Frequently Used)置换算法

              2.页面缓冲算法

4.9 请求分段存储管理方式

       4.9.1 请求分段中的硬件支持

              1.段表机制

      

              2.缺段中断机构

              3.地址变换机构

       4.9.2 分段的共享与保护

              1.共享段表:(1) 共享进程计数count、(2) 存取控制字段、(3) 段号

              2.共享段的分配与回收

                     1) 共享段的分配

                     2) 共享段的回收

              3.分段保护

                     1)   越界检查

                     2)存取控制检查:只读、只执行、读写。

                     3) 环保护机构

原文地址:https://www.cnblogs.com/dwx8845/p/14920064.html