• 操作系统知识点汇总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) 环保护机构

  • 相关阅读:
    find ./ -type d ! -name "."
    Linux入门-进程、计划任务
    Linux入门-用户管理
    Linux入门-shell使用技巧
    Linux入门-压缩、解压
    Linux入门-常用命令
    MySQL杂项(索引注意事项 快速导入导出数据 锁 字符集 慢查询)
    MySQL分区实验
    Lvs网络负载均衡 直接路由(dr)
    Lvs网络负载均衡 隧道(ip tunl)
  • 原文地址:https://www.cnblogs.com/dwx8845/p/14920064.html
Copyright © 2020-2023  润新知