软件设计师:02-操作系统基本原理

文章目录

  • 一、概述
  • 二、进程管理
    • 2.1、进程的状态
    • 2.2、前驱图
    • 2.3、进程的同步与互斥
    • 2.4、PV操作
    • 2.5、PV操作与前驱图
    • 2.6、死锁问题
    • 2.7、死锁相关问题
    • 2.8、银行家算法
  • 三、存储管理
    • 3.1、分区存储知识
    • 3.2、页式存储组织
    • 3.3、段式存储组织
    • 3.4、段页式存储组织
    • 3.5、块表
    • 3.6、页面置换算法
      • 3.6.1、先进先出(FIFO)
      • 3.6.2、最佳置换
      • 3.6.3、最近最久未使用(LRU)
      • 3.6.4、FIFO和LRU的区别
      • 3.6.5、例题
  • 四、文件管理
    • 4.1、索引文件结构
    • 4.2、文件和树形目录结构
    • 4.3、空闲存储空间的管理
    • 4.4、数据传输控制方式
    • 4.5、虚设备与SPOOLING技术
    • 4.6、微内核操作系统


一、概述

软件设计师:02-操作系统基本原理_第1张图片
软件设计师:02-操作系统基本原理_第2张图片


二、进程管理

2.1、进程的状态

为了能使程序并发执行,并且可以对并发执行的程序加以控制和描述,人们引入了“进程”的概念。

软件设计师:02-操作系统基本原理_第3张图片

进程实际上就是程序的一次执行

  • 进程是动态的,程序是静态的。
  • 进程具有生命周期,程序是永久存在的。
  • 进程是由程序段、相关数据段和进程控制块(PCB)组成,程序是指令的有序集合。

软件设计师:02-操作系统基本原理_第4张图片


2.2、前驱图

软件设计师:02-操作系统基本原理_第5张图片


2.3、进程的同步与互斥

软件设计师:02-操作系统基本原理_第6张图片
软件设计师:02-操作系统基本原理_第7张图片


2.4、PV操作

软件设计师:02-操作系统基本原理_第8张图片


软件设计师:02-操作系统基本原理_第9张图片

  • 生产者:若S1为1,S2为0,执行生产,否则阻塞,生产后将S1减1,S2加1,之后阻塞
  • 消费者:若S1为0,S2为1,执行消费,否则阻塞,消费后将S1加1,S2减1,之后阻塞

当进程阻塞的时候,它已经执行了P操作,并阻塞在该位置,如上图的消费者一开始被阻塞,先发制者应该是生产者,生产者生产完毕执行V操作唤醒消费者


例题:

软件设计师:02-操作系统基本原理_第10张图片

流程为购书者先购书,收银员后收银

  • 初始状态收银员为P状态(没钱收),购书者购书后使用V操作(给钱)唤醒收银员
  • 之后购书者为P状态(等找零),收银员收银成功后使用V操作(找零)唤醒购书者

综上所述,第一空选A,第二空选C!!!


2.5、PV操作与前驱图

软件设计师:02-操作系统基本原理_第11张图片

进程D首先被进程ABC的信号量P阻塞,进程E被进程D的信号量阻塞


直接上题目

软件设计师:02-操作系统基本原理_第12张图片


2.6、死锁问题

软件设计师:02-操作系统基本原理_第13张图片

1、什么是死锁

死锁是指多个进程在运行过程中,因争夺资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。

2、产生死锁的原因

①竞争资源。②进程间推进顺序非法。

3、产生死锁的4个条件

①互斥条件。②请求和保持条件。③不剥夺条件。④循环等待条件。

4、处理死锁的4种方法

①预防死锁。②避免死锁。③检测死锁。④解除死锁。


2.7、死锁相关问题

软件设计师:02-操作系统基本原理_第14张图片
我们来看上面这道例题,一共3个进程,每个进程都需要5个系统资源。

①如果系统中有5个资源,A分配2个,B分配2个,C分配2个,此时所有进程不能得到满足,都在等待资源,无法正常运行,即发生死锁;如果将A分配5个,运行完再分配给B,B运行完再分配给C,这样并不会发生死锁。但是,这类题我们考虑的是无论怎样都不会发生死锁的情况,所以要考虑它的一般性!!!

②如果系统中有10个资源,A分配4个,B分配4个,C分配2个,显然每个进程都无法获得5个资源去运行,即发生死锁;11、12个资源也是同样的道理;而当系统中有13个资源的时候,我们可以看到A分配4个,B分配4个,C分配4个,此时还剩下1个空闲资源,无论我们将这1个空闲资源分配给哪个进程,系统都是可以正常运行的,因为一个进程再获得1个资源即得到满足,运行完释放资源,另外两个进程也可以正常运行,即不会发生死锁!!!所以系统至少需要13个资源。

公式:假设有k个进程,每个进程都需要n个资源才可以正常运行,则系统不发生死锁的资源数至少为:k ×(n-1)+1


2.8、银行家算法

分配资源的原则

软件设计师:02-操作系统基本原理_第15张图片


例题:

软件设计师:02-操作系统基本原理_第16张图片
解答

1、先求剩下的资源数

2、若某一进程的未分配进程数小于剩余资源数,则应先执行该进程,才不会造成死锁问题

软件设计师:02-操作系统基本原理_第17张图片


三、存储管理

3.1、分区存储知识

软件设计师:02-操作系统基本原理_第18张图片

  • 首次适应算法:空闲分区以地址递增的次序链接。对于上面这个题,作业4申请内存9k,按照地址递增的情况,此时作业4会被分配到25k的空闲分区,占用9k,剩余25-9=16k。

  • 循环首次适应算法:与首次适应算法的区别是:不是每次都从链首开始查找,而是从上一次找到的空闲分区的下一个空闲分区开始查找。所以作业4申请9k,而作业2和作业3所在的空闲分区的下一个空闲分区为28k,即作业4被分配到了28k这个空闲分区,占用9k,剩余28-9=19k。

  • 最佳适应算法:空闲分区按其容量从小到大的顺序链接。作业4申请9k,而当前空闲分区的容量从小到大依次为:10k、25k、28k,所以作业4被分配到10k这个空闲分区,占用9k,剩余10-9=1k。(缺点是会产生多个较小的内存碎片)

  • 最差适应算法:空闲分区按其容量从大到小的顺序链接。作业4被分配到容量最大的空闲分区28k中,占用9k,剩余28-9=19k。


3.2、页式存储组织

软件设计师:02-操作系统基本原理_第19张图片

逻辑地址 = 页号 + 页内地址

块号(页帧号) = 页号(通过查询页表得到)

物理地址 = 块号 + 页内地址


例题:

软件设计师:02-操作系统基本原理_第20张图片

第一空:先求出页面地址,再通过(逻辑地址-页面地址)得到页号查找块号(页帧号),拼接得到物理地址

页面大小为4K=2^12,表示页内地址为12位,所以在对逻辑地址变换的时候,就要保留它的低12位作为物理地址,因为逻辑地址是16进制数5A29H,它的低12位为是 A29(2转16每一个代表4个2进制位),那么只需要对前面的页号进行变换就可以了,由页表可知,页号5对应的物理块号(页帧号)为6,所以经变换后的物理地址为:6A29H

第二空:需要淘汰在内存中的页面(状态位=1)且未访问过的页面(访问位=0),由图可知1号页应该淘汰,因为未访问代表其可能就是垃圾内存


3.3、段式存储组织

软件设计师:02-操作系统基本原理_第21张图片


3.4、段页式存储组织

软件设计师:02-操作系统基本原理_第22张图片


3.5、块表

软件设计师:02-操作系统基本原理_第23张图片


3.6、页面置换算法

软件设计师:02-操作系统基本原理_第24张图片

3.6.1、先进先出(FIFO)

软件设计师:02-操作系统基本原理_第25张图片

由以下可知当页面增多时容易发生抖动现象

软件设计师:02-操作系统基本原理_第26张图片


3.6.2、最佳置换

软件设计师:02-操作系统基本原理_第27张图片


3.6.3、最近最久未使用(LRU)

软件设计师:02-操作系统基本原理_第28张图片


3.6.4、FIFO和LRU的区别

软件设计师:02-操作系统基本原理_第29张图片


3.6.5、例题

软件设计师:02-操作系统基本原理_第30张图片


四、文件管理

4.1、索引文件结构

软件设计师:02-操作系统基本原理_第31张图片

假设每个物理盘块大小为4K,未引入索引时,该文件只能存放 4K x 13 = 52K 内容

当引入索引节点

0-9号位直接存放物理盘块内容

10号位存放每个物理盘块的地址,假设每个地址占4个字节,那么可以存放 4K / 4 = 1024个地址,也就是可以存放1024个物理盘块,此为一级间接索引,即10号位可以存放1024个物理盘块,依次类推二级三级间接索引


例题


物理块号50对应逻辑块号0,物理块号67对应逻辑块号1,物理块号68对应逻辑块号2,物理块号78对应逻辑块号3,物理块号89对应逻辑块号4,这五个采取的是直接地址索引;而物理块号90和91采取的是一级间接地址索引,90→58对应的是逻辑块号5,所以逻辑块号5对应的物理块号为58。

因为题目中说每个地址项的大小为4字节,每个索引块为1KB,所以一级间接索引可以存放256个物理块,因为逻辑块号90(5-260),所以逻辑块号91(261-516),所以第261个逻辑块号存放在91->187处

观察上图可知,101号物理块显然采取的是二级间接地址索引的方式,所以其中存放的是二级地址索引表

软件设计师:02-操作系统基本原理_第32张图片


4.2、文件和树形目录结构

软件设计师:02-操作系统基本原理_第33张图片


4.3、空闲存储空间的管理

软件设计师:02-操作系统基本原理_第34张图片


例题

软件设计师:02-操作系统基本原理_第35张图片

一个字占32位,4195/32=131.12,131号字已经溢出,所以存放在第132个字中 (选D)

因为 131 x 32 = 4192,且索引是从0开始,所以第131号字的最后一个物理块地址为4191,所以4192对应132号字的第0个位置,依次类推,4193(1)、4194(2)、4195对应第3位置,置为1代表占用 (选B)


4.4、数据传输控制方式

软件设计师:02-操作系统基本原理_第36张图片

1、直接程序控制

直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方法分为:无条件传送和程序查询方式两种情况。

  • 无条件传送:在此情况下,外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。

  • 程序查询方式:在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。


2、中断方式

对于程序控制I/O的方法,其主要的缺点在于CPU必须等待I/O系统完成数据的传输任务,整个系统的性能严重下降。

利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好了以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被中断的程序继续执行。

与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。


3、直接存储器存取方式(DMA)

在计算机与外设交换数据的过程中,无论是程序控制方式,还是中断方式,都需要CPU通过执行程序来实现,这就限制了数据的传送速度。为进一步提高相应的速度,我们引入了DMA。

DMA是指数据在内存与I/O设备间(通俗的说,就是主存与外设)的直接成块传送,即在内存与I/O设备间传送一个数据块的过程,不需要CPU的任何干涉,只需要CPU在过程开始时启动、在过程结束时处理,实际操作全部由DMA硬件自动执行完成,CPU在此传送过程中可以去做别的事情。


4、输入/输出处理机(IOP)

DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高。而通道方式的出现则进一步提高了CPU的效率。通道是一个具有特殊功能的处理器,又称为输入输出处理器(IOP),它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。

通道方式大大提高了CPU的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。


4.5、虚设备与SPOOLING技术

软件设计师:02-操作系统基本原理_第37张图片

开辟缓冲区将需要输出的数据存放并按进入的顺序输出,这样可以防止打印机一直被占用的情况


4.6、微内核操作系统

软件设计师:02-操作系统基本原理_第38张图片

你可能感兴趣的:(软件设计师,操作系统)