二、操作系统——软考软件设计师

  • Post author:
  • Post category:其他


第二章 操作系统知识



第一节 进程管理



1,进程的状态

  • 进程是程序下一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。他是由程序块。进程控制块(PCB)和数据块三部分组成。
  • 进程与程序的区别

    • 进程是程序的一次执行过程,没有程序就没有进程
    • 进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡
    • 进程是系统进行资源分配和调度的独立单位,而程序不是
    • 程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,它就永远存在。
    • 程序是一个静态的概念。

三态模型

在这里插入图片描述

进程的同步:速度有差异,在一定情况停下等待

进程互斥:如千军万马过独木桥



2,信号量与PV操作

临界资源:诸进程间需要互斥方式对其进行共享资源,如打印机,磁带机等

临界区:每个进程中访问临界资源的那段代码称为临界区

信号量:是一种特殊的变量

在这里插入图片描述

互斥模型:例如一个理发店只有一个师傅,有很多客人,这个理发师就变成了临界资源

同步模型:单缓冲区(一次只能产生一个进程)

历年真题——答案 A C

在这里插入图片描述


PV是成对出现的

PV操作应用——前趋图

在这里插入图片描述



3,死锁及银行家算法

进程管理是操作系统的核心,如果设计不当,就会出现死锁问题,如果一个进程在等待一件不可能的事情,则进程就死锁了。而如果一个或多个进程死锁,就会造成系统死锁。

总结:最少资源 = 进程需要的资源减一,最后再留一个给系统支配

例题:系统有5个进程,ABCDE,这五个进程都需要4个系统资源,如果系统至少有多少个资源,则不可能发生死锁

解:



=

5

(

4

1

)

+

1

资源=5*(4-1)+1














=








5













(


4













1


)




+








1




银行家算法:分配资源原则

  • 当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳该进程
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源

在这里插入图片描述

答案:B



第二节 存储管理



1,段页式存储


页式存储

:将程序与内存均划分为同样大小的块,以页面为单位将程序调入内存。

  • 优点:利用率高,碎片小,分配及管理简单
  • 缺点:增加了系统开销,可能产生抖动现象


段式存储

:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样

  • 优点:多道程序共享内存,各段程序修改互不影响
  • 缺点:内存利用率低,内存碎片浪费大


段页式存储

:段式与页式的综合体,先分段,在分页,1个程序有若干段,每段中可以有若干页,每页的大小相同,但每个段的大小不同。

  • 优点:空间浪费小,存储共享容易,存储保护容易,能动态连接。
  • 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,是的执行速度大大下降



2,页面置换算法

  • 最优算法(OPT)
  • 随机算法(RAND)
  • 先进先出(FIFO)算法:有可能产生”抖动”
  • 最近最少使用(LRU)算法:不会产生”抖动”,LRU的理论依据是“局部性原理”
  • 时间局部性:刚被访问的内容,立即又被访问。
  • 空间局部性:刚被访问的内容,临近的空间很快被访问。



3,磁盘管理

存取时间=寻道时间+等待时间


寻道时间

是指磁头移动到磁道所需要的时间。


等待时间

为等待读写的扇区转到磁头下方所用的时间。

磁盘调度算法

  • 先来先服务(FCFS)
  • 最短寻道时间优先(SSTF)
  • 扫描算法(SCAN)
  • 循环扫描算法(CSCAN)

读取磁盘数据的时间应包括以下三个部分

  • 找到磁道的时间
  • 找到块(扇区)的时间,即旋转延迟时间
  • 传输时间



第三节 文件管理

1,绝对路径与相对路径

在这里插入图片描述

考察相对路径和绝对路径

  • 如果当前在D1,要查找F2,那么这个相对路径是 W2/F2
  • 绝对路径是 /D1/W2/F2
  • 绝对路径从根目录\开始,本题book2.doc的绝对路径为\MyDrivers\user2\;
  • 相对路径从当前目录下一级开始,本题book2.doc的相对路径为user2\。

2,文件索引

在文件系统中,文件的存储设备通常划分为若干个大小相等的物理块,每块长为512或1024字节。文件的物理结构是指文件在存储设备上的存储方法,常用的文件物理结构有:连续文件、串联文件和索引文件三种。

存储空间会被划分成n个物理块,在索引文件中,一个文件会被放入不同的物理块,这时需要索引表指出一个文件分别被拆分存在哪个块,所以索引表里存的是文件碎片的地址。


索引文件

:是一种对文件存储不连续分配的方法,为每个文件建立一张索引表 (索引表不一定存在文件存放位置,为了减少访问磁盘的次数,一般先读入索引表),索引表中的每一表项指出文件信息所在的逻辑块号和与之对应的物理块号对一些大的文件,当索引表的大小超过一个物理块时,会发生索引表的分配问题 ,一般采用多级(间接索引)技术


多级(间接索引)技术

:这时在由索引表指出的物理块中存放的不是文件存储位置而是存放文件信息的物理块地址(即索引表里存索引表…)


Unix系统三级索引

:为了使一张索引表(一个数组)能完整存下一个文件

在Unix系统中,文件的物理结构采用索引方式。定义有一个索引节点字符数组(一张索引表),该字符数组最多可以放下13个地址项(理解成13个盘块或13个物理块),并且规定

  • 地址项0-9采用直接寻址方法,
  • 地址项10采用一级间接寻址,
  • 地址项11采用二级间接寻址,
  • 地址项12采用三级间接寻址。

数据传输控制方式


  • 程序控制(查询)方式

    :分为无条件传输和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高。严重影响CPU的利用率。

  • 程序中断方式

    :与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度

  • DMA方式

    :DMA方式是为了在主存与外设之间实现高速,批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。
  • 通道方式
  • I/O处理机

作业管理——了解就可以

作业的调度算法

  • 先来先服务
  • 时间片轮
  • 短作业优先法
  • 最高优先权优先法
  • 高响应比优先法



第四节 知识点



——其他知识点——

常用的I/O接口编址方法有两种:一是与内存单元统一编址,二是单独编址。


  • 内存单元统一编址

    方式下,将I/O接口中有关的寄存器或存储部件看作存储器单元,与主存中的存储单元统一编址。内存地址和接口地址统一在一个公共的地址空间里,对I/O接口的访问就如同对主存单元的访问一样,可以用访问内存单元的

    指令访问

    I/O接口。
  • I/O接口

    单独编址

    是指通过设置单独的I/O地址空间,为接口中的有关寄存器或存储部件分配地址码,需要设置专门的I/o指令进行访问。这种编址方式的优点是

    不占用主存的地址空间

    ,访问主存的指令和访问接口的指令不同,在程序中容易使用和辨认。

在这里插入图片描述

  • 计算机系统由硬件和软件两部分组成。通常把未配置软件的计算机称为裸机。直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率。
  • 操作系统(Operating System)目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口,而为裸机配置的一种系统软件。 操作系统在计算机系统中的地位如下图所示。
  • 从图中可见,操作系统是裸机上的第一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件都是建立在操作系统基础上的,并得到它的支持和取得它的服务。
  • 从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统己成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。

程序查询和中断方式都需要CPU来执行程序指令进行数据的输入和输出,


DMA方式

是一种不经过CPU而直接从内存存取数据的数据交换模式。


程序查询方式

是由CPU主动查询外设的状态,在外设准备好时传输数据。


中断方式

是在外设准备好时给CPU发中断信号,之后再进行数据传输。在外设未发中断信号之前,CPU可以执行其他任务。

在DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU即可。

在Linux操作系统中,只有一个根目录,

根目录使用“/”来表示

。根目录是一个非常重要的目录,其他的文件目录均由根目录衍生而来。

在 Linux 中,要更改一个文件的权限设置可使用

chmod

命令。

因为Windows XP操作系统支持FAT、FAT32或NTFS文件系统,所以利用“磁盘管理”程序可以对磁盘进行初始化、创建卷,并可以选择使用

FAT、FAT32或NTFS文件

系统格式化卷。

当用户双击一个文件名时,Windows系统通过建立的

文件关联

来决定使用什么程序打开该文件

财务软件、汽车防盗程序、办公管理软件和气象预报软件都属于应用软件

汇编程序、编译程序和数据库管理系统软件都属于系统软件。

单个文件的

逻辑块号

可以从0〜66052,而磁盘数据块大小为1KB字节,所以单个文件最大长度是66053KB。



同一

进程中的各个线程都可以

共享

该进程所拥有的资源,如访问进程地址空间中的每一个虚地址;访问进程拥有已打开文件、定时器、信号量机构等,但是不能共享进程中某线程的

栈指针

因为Send原语是发送原语,如果系统采用信箱通信方式,那么当进程调用Send原语被设置成“等信箱”状态时,意味着指定的信箱存满了信件,无可用空间。

在分时系统中是将把CPU的时间分成很短的时间片轮流地分配给各个终端用户,当系统中的用户数为n、时间片为q时,那么系统对每个用户的响应时间等于n*q。

当 P5 运行完后释放空间时,发现其释放的空间上下方都有空闲区,故将两个空闲区与自身要释放的空闲区合并,从而形成一个新的空闲区,导致系统的空闲区数量上

减1

。而造成这种现象的主要原因就是要

释放空闲区相邻的上下方空闲区

具体层次从上往下分别为

用户级I/O层、设备无关I/O层、设备驱动程序、中断处理程序、硬件

  • 硬件:完成具体的I/O操作。
  • 中断处理程序:I/O完成后唤醒设备驱动程序。
  • 设备驱动程序:设置寄存器,检查设备状态。
  • 设备无关I/O层:设备名解析、阻塞进程、分配缓冲区。
  • 用户级I/O层:发出I/O调用。

嵌入式操作系统

嵌入式系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。


  • 片级初始化

    完成

    嵌入式微处理器的初始化

    ,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。

  • 板级初始化

    完成

    嵌入式微处理器以外的其他硬件设备的初始化

    。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。

  • 系统初始化

    过程以软件初始化为主,主要进行

    操作系统的初始化

    。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。

嵌入式操作系统的特点:


  • 微型化

    ,从性能和成本角度考虑,希望占用的资源和系统代码量少;

  • 可定制

    ,从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求;

  • 实时性

    ,嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高;

  • 可靠性

    ,系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施;

  • 易移植性

    ,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。


实时

是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应。


实时操作系统



分时操作系统

的第一点区别

  • 是交互性强弱不同,分时系统交互型强,实时系统交互性弱但可靠性要求高;
  • 是对响应时间的敏感牲强,对随机发生的外部事件必须在被控制对象规定的时间做出及时响应并对其进行处理;
  • 是系统的设计目标不同,分时系统是设计成一个多用方的通用系统,交互能力强;而实时系统大都是专用系统。



——文件管理——

某文件系统采用多级索引结构,若磁盘块的大小为512B,每个块号需占3B,那么根索引采用一级索引时的文件最大长度为( )KB∶采用二级索引时的文件最大长度为( \ )KB。

A: 85 B: 170 C: 512 D: 1024

根据题意,磁盘块的大小为512B,每个块号需占3B,因此一个磁盘物理块可存放512/3=170个块号。

根索引采用一级索引时的文件最大长度为∶170×512/1024=87040/1024=85KB

根索引采用二级索引时的文件最大长度为︰170X170×512/1024=28900×512/1024=14450KB


文件级安全管理

,是通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。通常可设置以下几种属性:

  • 只执行:只允许用户执行该文件,主要针对.exe和.com文件。

  • 隐含:指示该文件为隐含属性文件。

  • 索引:指示该文件是索引文件。

  • 修改:指示该文件自上次备份后是否还被修改。

  • 只读:只允许用户读该文件。

  • 读/写:允许用户对文件进行读和写。

  • 共享:指示该文件是可读共享的文件。

  • 系统:指示该文件是系统文件。

用户对文件的访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定。 或者说是有效权限和文件属性的交集。例如对于只读文件,尽管用户的有效权限是读/ 写,但都不能对只读文件进行修改、更名和删除。对于一个非共享文件,将禁止在同一时间内由多个用户对它们进行访问。通过上述四级文件保护措施,可有效地保护文件。


影响文件系统

可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。例如读取某磁盘块,修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态。如果这些未被写回的磁盘块是

索引节点块、目录块或空闲块,特别是系统目录文件

,那么对系统的影响相对较大,且后果也是不堪设想的。通常解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。

在这里插入图片描述

从图中可见,页内地址的长度是13位,



2

13

=

8192

2^{13}=8192







2











1


3












=








8


1


9


2





,即8K;页号部分的地址长度是11位,每个段最大允许有



2

11

=

2048

2^{11}=2048







2











1


1












=








2


0


4


8





个页;段号部分的地址长度是8位,



2

8

=

256

2^8=256







2










8











=








2


5


6





,最多可有256个段。



——PV操作——

真题

进程P1、P2、P3、P4和P5的前趋图如下∶

若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号量S1、S2、S3.S4.S5和S6,且信号量S1~S6的初值都等于零。下图中a和b处应分别填写()∶c和d处应分别填写() ,e和f处应分别填写()。

在这里插入图片描述

答案:a:V(S1) V(S2)

b: V(S3) V(S4)

c: P(S1) P(S3)

d: V(S5) V(S6)

e: P(S2) P(S5)

f:P(S4) P(S6)

因为P1是P3和P4的前驱,当P1执行完成后,应通知P3和P4,故应采用V(S1) V(S2)操作分别通知P3和P4;同理,P2是P3和P5的前驱,当P2执行完后,应通知P3和P5,故应采用V(S3)V(S4)操作分别通知P3和P5。

  • 系统采用PV操作

    实现进程的同步与互斥

    ,当执行一次P操作表示申请一个资源,信号量S减1,如果S<0,其绝对值表示等待该资源的进程数。本题信号量S的值为-3,表示系统中有3个等扫描仪的进程。
  • 信号量初值等于资源数量,即为2,由于同时最多有2个进程访问打印机,其余进程必须处理等待状态,故S的最小值为-(n-2)。
  • 信号量S的物理意义是:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。假设信号量S的当前值为-2,则意味着系统中资源R的可用个数M=0,等待资源R的进程数N=2。



——硬盘容量——

硬盘容量分为非格式化容量和格式化容量两种,计算公式如下:

  • 非格式化容量 = 面数 × 每面磁道数 × 内圆周长 × 最大位密度
  • 格式化容量 = 面数 × 每面磁道数 × 每道扇区数 × 每扇区的字节数
  • 磁道数 = 磁道密度 [ 道/mm ] × 有效记录区长度 [ mm ]

假设某硬盘由5个盘片构成(共有八个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量为()MB

题目中给出硬盘的面数为8,每面的磁道数为(30-10)×10÷2×16,每磁道扇区数为16,每扇区512字节,






8

(

30

10

)

10

16

16

512

2

1024

1024

\frac{8*(30-10)*10*16*16*512}{2*1024*1024}


















2





1


0


2


4





1


0


2


4
















8





(


3


0





1


0


)





1


0





1


6





1


6





5


1


2


























——磁盘调度——

  • 扫描(SCAN)算法:每次选择在当前磁道之内,且距离最近的进程来调度。
  • 循环扫描(CSCAN)算法:将最小磁道号紧接着最大磁道号构成循环,进行循环扫描

因为

先来先服务

是谁先请求先满足谁的请求,而

最短寻找时间

优先是根据当前磁臂到要请求访问磁道的距离,谁短满足谁的请求,故先来先服务和最短寻找时间优先算法可能会随时改变移动臂的运动方向。


磁盘调度管理

中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区。

  • 磁盘分区:不删除磁盘上的数据,磁盘分区后要经过格式化才能正式使用
  • 磁盘格式化:清除磁盘原有数据
  • 磁盘清理:删除计算机上不需要的文件
  • 碎片整理:清理磁盘,释放有用存储空间,不会清除有用数据



——阻塞节点——

真题:



P

1

,

P

2

P1,P2






P


1


,




P


2





结点是否为阻塞节点?

在这里插入图片描述

  • R1一共有2个资源,给P1、P2各分配一个,已经无可分配资源。此时P2还向R1申请1个资源,因为没有资源可以申请了,所以P2会阻塞;同理,R2一共有3个资源,给P1分配1个、P2分配2个,已经无可分配资源。此时P1还向R2申请1个资源,因为没有资源可以申请了,所以P1也会阻塞;因为P1、P2节点都阻塞了,所以此图无法化简,是死锁的
  • R1一共有2个资源,给P1、P3各分配一个,已经无可分配资源。此时P2还向R1申请1个资源,因为没有资源可以申请了,所以P2会阻塞;R2一共有3个资源,给P2、P3各分配一个,还剩1个可分配资源。此时P1向R2申请1个资源,因为还有可分配资源,所以P1不会阻塞;(此时P3也向R2申请1个资源,同理P3也不会阻塞)

如何看进程资源图呢?

P:进程

R:一类资源

R中的圆圈数:该类资源有几个

R→P(R指向P):分配一份R类资源给进程P

P→R(P指向R):进程P申请一份R类资源

判断一个进程节点是否阻塞?

读图时,先看资源分配R→P,再看资源申请P→R

【注意】

读图时,

不要

将同时存在R→P、P→R双向箭头的情况理解成:

P先申请一个资源,R再分配一个资源给P!

可能存在的情况:

  • R中

    所有资源都分配

    出去了(R→P)

    而此时还有进程P向R申请资源(P→R)

    此时,申请资源R的进程P:

    成为阻塞节点
  • R中

    还剩下一些资源

    (R→P)

    而此时还有进程P向R申请资源(P→R)

    此时,申请资源R的进程P:

    成为非阻塞节点

判断一个进程资源图是否是死锁的?

  • 如果所有节点都是阻塞的——此进程资源图不可以化简,是死锁的
  • 如果有节点不是阻塞的——将非阻塞节点周围的箭头删去,只保留阻塞节点的箭头

    此时,观察现在得到的图中,原来的阻塞节点是否阻塞?→如果在新图中,它是非阻塞的,则原图是可以化简的,非死锁的

如何简化进程资源图?

R1已经全部分配给P1和P3,所以P2再请求一个R1的时候,将进入阻塞状态。

同理,R2已经全部分配给P1、P2和P3,当P1再请求一个R2时,将陷入阻塞。

R3还有一个未用资源,当P3申请时,可以顺利获得,故不会阻塞。

因为P3非阻塞且非孤立,所以可以化简。将其所用资源归还资源图后,P1获得R2,即可运行,然后也可以化简,最后P2可以运行

方法步骤

第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的

第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来

第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。

第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。



——缓冲区——

单缓冲技术是当上一个缓冲区数据读入用户区完成时下一个缓冲区开始工作,缓冲读数据和CPU处理数据互不影响。

双缓冲是第一个缓冲区读入数据完成时第二个缓冲区开始工作,读入用户区结束后判断第一个缓冲区是否停止工作,如果停止工作那继续向第一个缓冲读入数据。

【2011年计算机统考真题】某文件占用10个磁盘块,现在要把该文件磁盘块逐个读入主缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是()。

单缓冲: 150*10=1500

双缓冲:100*10=1000加最后一个缓冲区的数据传输到用户区并CPU处理时间50+50=100,总时间为1100



——存储管理——

某计算机系统页面大小为4K,若进程的页面变换表如下所示,逻辑地址为十六进制1D16H。该地址经过变换后,其物理地址应为十六进制( ) 。

在这里插入图片描述

答案:3D16H

题目中逻辑地址为十六进制1D16H,一位十六进制数对应4位二进制数,3位十六进制数则对应12位二进制数,因此D16H为页内地址,页号为1。查页面变换表,页号1对应的物理块号为3,将物理块号与页内地址D16H拼接起来即可得到物理地址3D16H

在分页存储管理时,将内存划分为大小相等的页面,每一页物理内存叫页帧,以页为单位对内存进行编号,该编号可作为页数组的索引,又称为页帧号。在

淘汰页面

时,应选择

最近没被访问

的页面进行淘汰。



版权声明:本文为i_see_the_world原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。