这里专门摘录操作系统相关笔试题和面试题!也当作自己的一个复习!

​一个很全的操作系统常考知识集合:​


1.分段式存储和分页式存储,以及段页式存储的区别:

★分页是一维存储,分段是二维的

因为分页给出虚拟地址后,操作系统会自动划分页号和偏移量

而分段给出地址后,需要知道段号和偏移量,段的长度是可变的!故是二维的


★分页和分段管理要访问2次内存,而段页式要3次


★分段不会产生内部碎片,分页不会产生外部碎片


2.死锁:

★死锁产生的条件:

①进程互斥,即1个进程只用1个资源

②进程可以占有资源,并进行等待

③进程之间不能强行抢占资源

④会出现循环等待,即出现等待封闭链

★处理方法:

①死锁预防,即将上面4个条件之一进行去除,但是去除一个条件就会影响系统性能

②死锁避免:通过一定算法,在“预估”进程启动可能会死锁后,选择不执行相关进程或者不分配资源

③死锁检测:通过算法检测当前是否处于死锁,若处于则进行死锁去除,例如强制释放等。


3.UNIX系统中,目录结构采用() 

A.单级目录结构 B.二级目录结构 C.单纯树形目录结构 D.带链接树形目录结构


4.避免死锁的一个著名的算法是(B) 
A.先入现出法     
B.银行家算法   
C.优先级算法    
D.资源按需分配法 


5.怎么理解分配延迟(dispatch lantency)
A.分配器停止一个进程到开启另一个进程的时间  

B. 处理器将一个文件写入磁盘的时间  
C. 所有处理器占用的时间                        

D.以上都不对


解析:

分派程式停止某一个处理元使用中央处理器,并分派中央处理器给另一个处理元所需的时间,称为分派时间(Dispatch Latency)。


16.假定我们有3个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU。每个程序启动时间和其需要使用进行计算的分钟数如下,不考虑进程切换时间。  
程序编号      启动时间                 需要CPU时间(分钟)
1                      00:00                       3.5 
2                      00:10                       2 
3                      00:15                      1.5 
请问在多线程/进程环境下,系统的总响应时间是()
 A.22.5           B.23.5         C.24.5         D.25.5 

解答: 多道编程时CPU利用率的求法: 
只有一个进程的时候,CPU利用率肯定是20%。  
两个进程的时候:CPu利用率是:20% + (1-20%)*20% = 36%  (在80%的IO时间执行20%的CPU) 
三个进程是:36% + (1-36%)*20% = 48.8%  
其它的依次类推。 
0-10分钟的时候,只有一个进程1在运行。  
单进程CPU占有率是20%,所以这10分钟内,进程1消耗了2分钟的CPU。
进程2是0,进程3也是0  
然后在10-15分钟内,有两个进程在运行(1和2),双进程的CPU利用率是36%,  
所以,这五分钟内,CPU一共利用了1.8分钟,平均分给每个进程,是0.9分钟。  
此时,进程1已经占用了CPU 2.9分钟,还需要0.6分钟,这时候有三个进程在运行,所有总的CPU时间需要1.8分钟。 
三进程的CPU利用率是48.8%,所以总共需要1.8/0.488=3.69分钟。这时,进程1已经3.5分钟的CPu利用时间利用完了。
此时还剩下2和3号进程在运行。
2号进程还需要0.5分钟,所以0.5×2/0.36=2.78,此时2号进程的2分钟CPU时间也利用完了。  
3号进程还需要0.4分钟的CPU利用时间。0.4/0.2 = 2  



17.在所有非抢占CPU调度算法中,系统平均响应时间最优的是(C) 
A.实时调度算法     B.短任务优先算法       C.时间片轮转算法       D.先来先服务算法  
书上P286页指出,轮转法RR对所有进程产生的标准周转时间平均最短,公平地对待了所有进程

内存换页算法: 

先进先出页面置换算法(FIFO):选择最早进入内存的页面置换 

最近最久未使用页面置换算法(LRU):选择最近一段时间内最长时间

没有被访问的页面置换 

最优淘汰算法(OPT):选择最长一段时间内不会被访问的页面进行置

换,需要先将程序执行一遍,获得页面的使用情况。性能最好,但不容

易事先,一般用来评价其他页面置换算法的好坏




18.什么是内存抖动(Thrashing)?


A.非常频繁的换页活动     B.非常高的CPU执行活动   C.一个极长的执行进程     D.一个极大的虚拟内存交换活动   


解析: 页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。  抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调。


 


19. Belay's Anomaly 出现在哪里(B)  


A.内存管理算法    

B.内存换页算法     C.预防死锁算法     D.磁盘调度算法  


解析: Belady异常(Belady Anomaly):有些情况下,页故障率(缺页率)可能会随着所分配的帧数的增加而增加。 

原因:因为使用了不恰当的演算法(如FIFO),虽然空间够多(frame够多),但因为总是选到不应该被swap的page,所以反而让page fault次数变多了。





?????????????????
某操作系统采用分页存储管理方式,下图给出了进程A的页表机构。如果物理页的大小为512字节,那么进程A逻辑地址为0x0457(十六进制)的变量存放在( )号物理内存页中。

操作系统学习笔记_分页


A:9    

B:2   

C:4   

D:6    

E:8    

F:5

答案:C

解答:16位逻辑地址,假设前n位为逻辑页号,后16-n位为偏移地址。每一页大小为512,512=2^9,说明0x0457的后9位是页内偏移地址,前7为为页号。前7位为0000 010,也就是页号为2,因此对应物理页是4。



12、在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生(C)次缺页
A、13            B、12           C、11          D、8
分析:首先填满五个,发生五次缺页0 1 7 8 6

2缺页,替换最远的0 ->2 1 7 8 6

3缺页,替换最远的1->2 3 7 8 6

7不缺页……

每次选择替换的页,看它的前五个就行了!选择最远的那个替换


文件分配表FAT是管理磁盘空间的一种数据结构,用在以链接方式存储文件的系统中记录磁盘分配和追踪空白磁盘块,整个磁盘仅设一张FAT表,其结构如下所示,如果文件块号为2,查找FAT序号为2的内容得知物理块2的后继物理块是5,再查FAT序号为5的内容得知物理块5的后继物理块是7,接着继续查FAT序号为7的内容为“Λ”,即该文件结束标志,
假设磁盘物理块大小为1KB,并且FAT序号以4bits为单位向上扩充空间。请计算下列两块磁盘的FAT最少需要占用多大的存储空间?
(1)一块540MB的硬盘                  (2)一块1.2GB的硬盘
分析:(1)磁盘块大小为1KB,540MB的硬盘可以分成540MB/1KB=5.4*105个磁盘块,因此至少需要5.4*105<220个编号,需要20bit存储空间
      (2)同理,1.2G至少需要1.2*106<221个编号,为21bit,由于FAT序号以4bits为单位向上扩充,因此需要24bit存储空间



软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此 硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这 两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。




交换分区大小一般是内存的1.5-2倍