操作系统笔试题

来源:互联网 发布:北京南站离北京站源码 编辑:程序博客网 时间:2024/05/21 16:57

同志们好,这篇博客主要是分享与操作系统相关的笔试题,主要是概念性的内容。
之后我也会经常在这篇博客里增加与操作系统知识有关的内容的。

1、在可变分区管理方案中,若采用“最佳适应”分配算法,通常将空闲区按( 容量递增 )排列。

*可变分区管理都有什么?
最佳适应:每次分配最小的内存,这种方法能使碎片尽量小;
最坏适应:每次分配最大的内存;
首次适应:地址由低到高,找出一个能满足要求的空闲分区给所需要的请求;
循环首次适应:首次适应的变种,分配内存时,从上次找到的空闲区的下一个空闲处开始查找,该算法可以使得内存中空闲区域分布的较均匀。

2、 进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此进程A、C必须互斥执行。(X) 错
A、C之间没有共享资源,不需要互斥执行。

互斥:某一资源同时只允许一个访问者对其进行访问,具有唯一性和排他性。互斥无法限制访问者对其访问的顺序,访问时是无序的。
同步:在互斥的基础上(多数情况),通过其他机制实现访问者对其资源的有序访问。大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指允许多个访问者同时访问资源。

3、临界资源,一次只能被一个进程访问的资源。

4、临界区:每个进程中访问临界资源的那段程序叫做临界区。进程对临界区的访问必须互斥,每次只允许一个进程进去临界区,其他进程等待。

5、作业在执行中发生了缺页中断,经系统将该缺页调入内存后,应继续执行( 被中断的指令 )。

缺页中断是什么?与其他中断的异同?
缺页中断机构:
在请求分页系统中,每当要访问的页面不存在时,便产生一缺页中断,请求OS将所缺之页调入内存。 缺页中断作为中断同样经历:保护CPU环境、分析中断原因、转入缺页中断,恢复CPU环境等步骤。
缺页中断与其他中断的区别:
(1)在执行期间产生和处理中断信号。通常CPU是在一条指令执行完后,才检查是否有中断请求到达。若有,便去响应,否则继续执行下条指令。但缺页中断是在指令执行期间或数据不在内存时所产生和处理的。
(2)一条指令在执行期间,可能产生多次缺页中断。 有可能执行一个指令时,指令本身跨越两个页面,访问的数据块也不在同一个页面,所以,系统中硬件机构应该能保存多次中断时的状态,并保证最后能返回到中断前产生缺页中断指令处继续执行。

6、静态页式管理可以实现虚存。 (X) 错

页式管理就是把各进程的虚拟空间划分为若干长度相等的页面,把指令按页面大小划分后存放在内存中执行。或者只在内存中存放那些经常被执行和即将被执行的页面,而那些不被经常执行以及在近期内不可能被执行的页面则存放于外存中,按一定规则调入的一种内存管理方式。
静态页式管理不能实现虚存,这是因为静态页式管理要求进程或作业在执行前全部被装入内存,作业或进程的大小仍受内存可用页面数的限制。

7、在调试程序时,可以把所有输出送到屏幕显示,而不必正式输出到打印设备,其运用了(I/O重定向 ). 选 B
A、Spooling技术
B、I/O重定向
C、共享技术
D、缓冲技术

SPOOLing技术:将一台物理I/O设备虚拟为多台I/O设备,同样允许多个用户共享一台物理I/O设备,是操作系统中釆 用的一项将独占设备改造成共享设备的技术。
为了缓和CPU的高速性与I/O设备的低速性间的矛盾而引入了脱机输入、脱机输出技术。利用专门外围控制机,将低速I/O设备上的数据传到高速磁盘上或者相反。
把在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。

I/O重定向,是指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。比如调试程序,可将所有输出送屏幕显示,而程序调试完后,如需正式打印出来,需将I/O重定向中的数据结构—逻辑设备表中的显示终端改为打印机。

8、假脱机技术中,对打印机的操作实际上是用借助磁盘存储实现的,这样实现的打印机构是(共享设备)。

操作系统中釆 用的一项将独占设备改造成共享设备的技术。

9、线程调用函数的作用

run()方法用来执行线程体中具体的内容
start()方法用来启动线程对象,使其进入就绪状态
sleep()方法用来使线程进入睡眠状态
suspend()方法用来使线程挂起,要通过resume()方法使其重新启动

10、
这里写图片描述
7*512=3584
物理页可以在进程间共享,两个进程共使用了1,2,3,4,6,7,9,共7个物理页。
分页存储管理:
将一个进程的逻辑空间分成若干个大小相等的片,称为页面或页,页加编号;
相应地也把内存空间分成与页面相同大小的若干存储块(称为物理块或页框)。
页面大小适中,选取一般在512B~8K之间

11、在操作系统中,最常被用作存储文件关系的数据结构是:树

12、利用银行家算法可以避免死锁 摒弃‘请求和保持’,‘环路等待’,‘不可剥夺’中任一条为预防死锁的方法。

产生死锁现象:每个进程等待着某一个不能得到且不可释放的资源。
死锁避免是操作系统根据进程资源请求,合理分配资源,从而避免死锁发生,如银行家算法。
死锁预防是破坏死锁发生的条件,从而达到避免死锁的发生:1.破坏互斥条件2.破坏占有和等待条件3.破坏不可抢占条件4.破坏环路等待条件
当系统处于安全状态时,系统中一定无死锁进程

死锁预防策略:资源有序分配法

13、Which Synchronization mechanism(s) is/are used to avoid race conditions among process/pthreads in operating systems(AC)
A、Mutex互斥锁
B、Mailbox
C、Semaphore 信号量
D、Local procedure call
在操作系统中,使用哪种同步机制来避免进程和线程之间的竞争?

14、进程间的通知通信方式有哪些?
{
1、匿名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2、高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。
3、命名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
4、信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
5、信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
6、共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
7、套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。
8、消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
}

15、cat -n file1 file2命令意思是 把file1和file2 的内容连在一起,然后输出到屏幕上。

16、Linux操作系统中的硬链接和软链接:
不允许给目录创建硬链接。
不可以在不同文件系统的文件间建立链接。因为 inode 是这个文件在当前分区中的索引值,是相对于这个分区的,当然不能跨越文件系统了。
{
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,软链接显示的大小与原文件就不同了
5.软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接
建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
软链接缺点:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
}

17、在给定文件中查找与设定条件相符字符串的命令为:grep

18、关于请求分页管理:在页表中一定要有中断位、访问位等信息

19、int main(){fork()||fork();}共创建几个进程?
3个

20、进程阻塞的原因不包括时间片切换 __
A、时间片切换
B、等待I/O
C、进程sleep
D、等待解锁
时间片用完后就进入到就绪态
进程有3个状态:就绪态。执行态、阻塞态。三种状态的转换包含有:
就绪->执行,执行->就绪,执行->阻塞,阻塞->就绪
等待I/O、进程sleep、等待解锁等原因都会导致进程暂停。关于”时间片切换”,当进程已经获得了除cpu外所有的资源,这时的状态就是就绪态,当分配到了时间片就成了执行态,当时间片用完之前一直未进入阻塞态的话,此后便继续进入就绪态。所以进程的就绪与阻塞是完全不同的。
这里写图片描述

21、虚拟存储器:
在下面关于虚拟存储器的叙述中,正确的是:B要求程序运行前不必全部装入内存而且在运行过程中不必一直驻留在内存
A、要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存
B、 要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存
C、要求程序运行前不必全部装入内存但是在运行过程中必须一直驻留在内存
D、要求程序运行前必须全部装入内存但在运行过程中不必一直驻留在内存

22、虚拟管理和实存管理的主要区别:
实存要求程序必须全部装入内存才开始运行,虚存允许程序在执行过程中逐步装入。

23.能够装入内存任何位置的代码必须是:可动态链接的

24.设置实时操作系统必须首先考虑系统的:实时性和可靠性