软件设计师备考笔记操作系统原理

Posted cizney

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件设计师备考笔记操作系统原理相关的知识,希望对你有一定的参考价值。

目录

  • 概述

  • 进程管理

  • 存储管理

  • 文件管理

  • 作业管理

  • 设备管理

  • 微内核操作系统

概述

操作系统作用

  • 管理系统的硬件、软件、数据资源

  • 控制程序运行

  • 人机之间的接口

  • 应用软件与硬件之间的接口

操作系统模块划分

  • 进程管理

  • 存储管理

  • 文件管理

  • 作业管理

  • 设备管理

进程管理

进程状态

基础版进程状态

  • 就绪:所有资源都有了,只差cpu

  • 运行:啥都有,不缺

  • 等待:缺少资源,等待

增强版进程状态

  • 活跃就绪:对应基础版的就绪状态;所有资源都有了,只差cpu

  • 活跃阻塞:对应基础版的等待状态;缺少资源,等待

  • 运行:对应基础版的运行状态;啥资源都不缺,cpu运行该进程中;

  • 静止就绪:将活跃就绪状态(就绪)的进程挂起,可重新激活

    • 挂起:即使资源足够,也不继续执行该进程或对该进程分配资源的状态;

    • 即使是正在运行的进程状态也能被挂起

  • 进制阻塞:将正在活跃阻塞(等待)状态的进程挂起,可以重新激活,或转换为禁止就绪状态(时间发生并分配资源后);

cpu与进程

  • 即使进程被cpu调度,该进程也不一定能被完整执行完毕;因为cpu采用时间片轮转方式运行;

  • 时间片结束后,还没运行完毕的进程会转为就绪状态继续排队;;

运行时不一定能完整运行完:cpu使用了时间片轮转方式,时间片结束后,任务没结束时也会排队

前趋图

  • 通过箭头表达各进程之间的先后约束关系

    • 即表示哪个进程必须在另一个进程的前运行

进程的同步与互斥

  • 互斥:在同一时刻,该资源已经全部被占用,不再运行新的进程占用该资源

  • 同步:有AB两个进程;当A进程到达某个阶段后,必须等待B进程处理完毕;A才能进行下一步操作;

  • 两者不是反义词

    • 互斥反义词是共享;

    • 同步反义词是异步;

例子

单缓冲区情况

  • 互斥:市场中同一时间只能允许一个人操作

  • 同步:生产者放东西到市场中,不允许再放东西;只有消费者消费了该商品才允许继续放东西;

多缓冲区情况

  • 互斥:市场满后不允许生产者再放入

  • 同步:市场满后,消费者者消费一个东西后,生产者可以再往里面放东西;

PV操作(难点)

  • 就是来解决互斥与同步的问题的

涉及知识

  • 临界资源:进行间互斥访问的资源;打印机、磁带机等;

  • 临界区:用于访问临界资源的 代码段

  • 信号量:特殊变量,应用与PV操作的专属变量;

  • PV两个字母是荷兰文 P asseren–>通过(理解为运行更合适), V rijgeven–>释放 的简称。

    • P(S)时会申请资源,S-1;

    • V(S)时,释放资源,S+1;

PV操作例子

  • 假设下图S为10;

  • 执行P操作后,如果S<0;表示临界资源已消耗完毕,此时将该进程阻塞起来放入进程队列中

    • 阻塞后进程转为活跃阻塞(等待)状态

    • 进程队列特指活跃阻塞进程的队列;因为所有进程都是放入队列中的,不同进程放入不同队列;

  • 执行V操作后,如果S<=0时,在进程队列中拿出一个进程,唤醒该进程,被唤醒的进程将继续执行;

    • S<=0,表示有进程在阻塞队列中;如果进程S>0表示资源充足,没有在排队的队列;

      • 比如有30个进程进行了P(S)操作,那么信号量此时为-20,表示有20个进程在阻塞队列中;

      • 为什么可以=0;当有11个P(S)时,S=-1; V(S)后S=0,表示虽然释放了一个资源,但是资源还是没有空余;

    • 唤醒后的进程转换为活跃就绪(就绪)状态,该进程将进入就绪队列;

ps:上图中有红字标注的两个箭头都是属于V(S)后,S <=0时要执行的操作;

解题方法

  • 假设法

    • 原则:无论时互斥还是同步操作,由一个P必有一个V,反之亦然;

    • 如果没有b1,收营员将反复收款,如果没有顾客那么就无意义运行,

      • 所以收银员处需要保证存在资源(待接待顾客)时才运行,使用P(S1)

      • 对应的需要一个V操作增加资源(待接待顾客),那么就是在顾客付款阶段的第一步骤上;

    • 顾客此时需要等待收银员完成收费等过程后才能离开

      • 相当于则顾客需要一个放行条才能运行,收银员操作处理完毕后使用V(S2)相当于给顾客发送放行条

      • 顾客收到放行条后才能离开,则是P(S2)

技巧总结

  • 判断PV操作时,要先分清楚需要互斥条件还是同步条件

    • 互斥:当多个进程需要占用有限个数资源时使用;

      • 如人(进程)进入(占用)容量有限的店铺(资源);

      • S初始值不为0

    • 同步:需要保证多个进程按固定顺序执行时使用;

      • 此时信号量一般为0;

      • P用在需要被唤醒的进程上;

        • 即后执行的进程上;
      • V用在唤醒其他进程的进程上;

        • 即先执行的进程;
  • 搞懂PV操作实际上就是

    • 1.能区分互斥问题和同步同步问题

    • 2.能区分哪个进程需要先运行;

PV操作与前趋图

  • 每个箭头对应一对pv操作

    • 箭头起始段表示V

    • 箭头末尾表示P

  • 要注意题目意思,如下题 第一问中问a是什么时,给了箭头,但是这个箭头表示的时p1执行过程,而不是p1和p3之间的PV操作;

死锁

产生死锁的原因

  • 所有进程都占用了资源

  • 没有剩余资源

  • 每个进程资源都不足以完成该进程的任务

  • 每个进程都不主动释放资源

求最少资源数

  • 所有进程的最坏情况所用资源+1

    • 如上图中,给ABC都分配了四个资源,每个进程都只差一个资源时,即为最坏情况;这时只要再有一个资源,那么就足够他们运行;

如何避免死锁

  • 有序分配:所有进程依次执行,资源一次只分配个一个进程;

    • 缺点:慢,资源利用率低;
  • 银行家算法 :计算分配资源给该进程后是否能顺利收回,如不能则先不分配;

    • 当一个进程对资源的最大需求量不操作系统资源数时可以接纳该进程

    • 进程可以分期请求资源,单请求的总数不能操作最大需求量;

    • 系统资源不能满足进程需资源数时,对进程的请求可以推迟分配;

      • 当总能时进程在有限时间里得到资源;

存储管理

分区存储组织

  • 首次适应算法:从起始地址开始寻找,将作业放入第一个能放入的地址空间

  • 最佳适应法:使用链表对空间排序,从小到大排序,然后找最适合的放进去

    • 缺点:运行一段时间后,有一堆极小的碎块无法使用
  • 最差适应算法:弥补最佳适应法用的,从小到大排序,将作业放入最大的空间中;

  • 循环首次适应法:从上一个作业存放地址开始,将作业放入第一个找到的地址空间;

页式存储组织

考点:逻辑地址和物理地址转换

和分区存储的区别:

  • 优点

    • 分区存储需要一次性把整个程序放入连续的整块内存中,而页式存储可以把程序拆成同样大小的碎块分批次的放入不连续的内存地址中;

    • 分区存储最多只能运行内存大小的程序,分页存储能运行比内存更大的程序

      • 即分页存储的方式可以用到哪个程序块就放哪个程序块进去;
    • 缺点

      • 增加系统开销(执行时需要查表)

      • 会产生抖动现象

        • 抖动:分配更多资源,系统反而运行更慢了(即跟配更多的内存后,系统运行变慢)

操作原理

  • 把用户程序分成等分大小的页。

  • 把内存中的存储区也分为相同大小的块。

  • 需要运行哪些程序快时,就寻找对应页码,找到并执行该部分;

  • 高级程序直接使用逻辑地址调用程序,通过操作系统将转换为内存使用物理地址,如果该页面不存在内存则操作系统将其调入内存;

地址转换题型

解题方法

  • 确定逻辑地址大的页号和页内地址

    • 逻辑地址使用二进制方式表达;

    • 根据题目给出的页面大小能够区分

      • 表达页内地址所需的二进制位数

      • 进而求出页码通过几位二进制位表示;

  • 找到逻辑地址的页号对应的物理地址(页帧号、内存块);

  • 将该物理块的起始地址+逻辑地址的页内偏移量即可得知物理地址;

例题解答:

第一问

  • 如上面题中给出了页面大小位4k,可知需要12位二进制表示;(2^12=4K)

  • 给出的逻辑地址位十六进制的5A29,那么就能知道A29是页内偏移量;

    • (一位16进制对应4位二进制,三位16进制刚好表示12位二进制,即页内偏移量)
  • 则可知,前四位用来表示页码,即5;

  • 则页号为5,页内偏移量为A29;

  • 对应物理地址(页帧号)为6,则物理地址为6A29H;

第二问:

  • 题目意思: 内存只能存储四个块且已放满4块,现打算将页面4(新页面)放进来进来,此时应该把内存中的哪个页面淘汰出去?

  • 淘汰规则: 访问位为1时不淘汰,为0时淘汰;

    • 为1时表示正在访问,0时表示访问完了

段式存储

段式存储和页式存储的区别

  • 段式按逻辑结构划分;(即,会将程序划分为多个有功能的小模块)

    • 例:一个程序中会把main函数划分一个段,function1一个段,function2一个段
  • 段长度不限制

  • 好处:

    • 因为时一个完整功能块所以可以被多次调用

    • 修改时只和这个块有关,不用修改其他块;

  • 缺点:利用率低,碎片大

段页式存储

  • 优点:空间浪费小、存储共享容易、存储保护容易、能动态连接;

  • 缺点:管理软件增加,复杂性和开销增加,需要的硬件及占用的内容页有所增加,执行速度大幅下降;

快表

  • 快表是一块Cache

  • 存放访问最频繁的少数活动页面的页号;

页面置换法

  • 最优算法(最佳适应算法:):理论层面上的东西,实际上做不到;因为是事后分析出来的最好做法;

  • 未来中最长时间不使用的页面优先被淘汰;

  • 抖动:分配更多资源,反而效率更低了

抖动实例

两种算法的对比

习题与解答

补充知识点

  • 缺页中断:当要访问的页面不在内存中时,需要找到该页面对应的物理块再调入内存,则视为一次缺页中断

  • 没使用快表:每次访问页面之前需要先进内存查表,然后才能访问内存找到地址。(访问一个块需要两次访问内存)

  • 指令无论指令占据了多少个页面都会一次调用,数据块则存在多少个块里面就要调用多少次; (约定俗成)

题目错误

  • 按字节编址的8位计算机系统,则该系统内存只有256B,题中却说页面大小位1KB,实际上该操作系统无法处理该页表;

  • 根据答案可知,题中默认了所有指令都不在内存中,但是反而说了每个块存放在内存的哪个位置,十分冲突;真实想表达的其实是在页表的该地址中,而不是内存的该地址中

题目解析

  • 确定指令和数据块所属页

    • 指令和A、B两个数据块都需要16位(2个字节)的存储空间;

    • 操作系统是按字节编址的,所以1023、3071、5119单元都是一个字节,且都是所在页的最后一个字节;

    • 所以还需要下一页的一个字节才能存储完毕

    • 指令、和AB块都跨了两个页;

  • 问题1

    • 访问一个页所对应的物理块时,需要先进内存读页码,再去内存读物理块;

    • 总共有6页,所以共12次访问内存

  • 问题2

    • 指令和操作数都不在内存中;

    • 指令读取时只发生一次缺页中断;剩下四个页面每个页面都发生一次缺页中断;

    • 共5次;

文件管理

索引文件结构

  • 用于当作目录使用,根据文件的使用频率,放入不容的索引中;

  • 分为索引结点、一级/二级间接索引;

  • 存储文件时为该文件建立索引,查询文件时就能通过索引直接找到对应wu’li’k

当索引结点大小为4K,每个地址占位4B的情况下;

  • 索引结点:

    • 4K*10=40K(0-9)
  • 一级间接索引

    • (4K/4)4K=10244K

      • 索引结点能指向1024个地址
  • 二级间接索引

    • (4K/4)(4K/4)4K=102410244K

      • 索引结点指向的1024个地址都是4K的空间,每个空间又能指向1024个地址;

例题

要素

  • 一个索引块大小为1KB;一个地址项大小4B;

    • 一个索引能存储256个地址
  • 索引块5、6采用一级简介索引

  • 索引块7采用而二级间接索引

  • 题目干扰: 索引指向的物理块实际上是是基本不连续的,题中故意连续让人容易误会选中错误答案

解答

  • 问题1:

    • 索引块1~4表示四个物理块;

      • 第五个物理块为索引块5的第一个指向物理块–>58;
    • 一个一级间接索引能存储1KB/4=256个地址;

      • 则索引块5能指向第5~260个物理块

      • 则第261个物理块是索引块6指向的第一个物理块–>187

  • 问题2

    • 几级间接索引的索引块就存储几级地址索引表

文件和树型目录结构

  • 相对路径是以当前文件夹所在位置为起始坐标,写出的路径;进入/退出文件夹都要基于当前文件夹来寻找;

  • 绝对路径是以盘符为起始坐标的;

文件空闲存储空间的管理

  • 磁盘上有大量空闲空间,需要管理起来,某个文件申请相应存储空间是,能按某种规则分配给它。

  • 位示图法(重点);

    • 频度高,不难但要注意细节
  • 空闲区表发:用一个表记录哪个地方时空闲的;

  • 空闲链表发:将空闲区都链起来

  • 成组链接法:分组页分链;

位示图

  • 画一个位示图;

    • 用1表示被占用,0表示空闲;

    • 其中左边列表示字号;上方行表示一个字有多少位bit位组成

      • 每个格子表示一个物理块;

      • 物理块号为:字号*一个字的位数+所在列+1;

        • 如(2,1)表示2行1列的物理块号是18;
  • 实际上位示图就是一个字符串,需要在二进制状态下,把链状换为表才能形成下图;

  • 应用非常广泛

    • 电影院卖票,选位置;空白可选,红色不能选;

    • 飞机座位;

例题

设备管理

数据传输控制方式

  • 是内存和外设之间数据传输控制方式

类型

  • 程序控制方式:很多信息都需要cpu处理,没有反馈,都是cpu一直查询任务是否完成

  • 程序中断方式:外设完成后,会发一个中断出来

  • DMA(直接存储控制方式):有专门的DMA控制器,cpu只用在开头分配下任务。

  • 通道和输入输出一般是专用计算机,不在讨论范围

需设备和SPOOLING技术

spooling技术核心:开辟了缓冲井,把要输入输出的数据缓冲起来,顺序执行;

微内核操作系统

  • 把内核做的更小的系统

  • 好处:可靠性,稳定性,安全性

    • 操作系统故障将影响整个机器运行,如果操作系统内核小一些,那么就不容易坏。

      • 原因:只有一小块关键东西放在内核里面,只有这些东西坏了,才会出根本性的故障。

      • 而外接系统出问题,重启该外接系统即可。

    • 单内核的系统,如果一个地方有问题,直接不运转

  • 缺点:核心态和用户态切换频繁(即通信频繁);

  • 用户态:核心外接的东西,故障后可解决。

  • 核心态:系统核心,不能出问题。

  • XP系统就是单体内核

以上是关于软件设计师备考笔记操作系统原理的主要内容,如果未能解决你的问题,请参考以下文章

软件设计师备考分析

软件设计师的备考历程

2021年软考网络工程师备考

备考第3天——测试策略

大白鱼备考云笔记第二冲刺阶段第二天

大白鱼备考云笔记冲刺周期第三天