这里专门摘录操作系统相关笔试题和面试题!也当作自己的一个复习!
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倍