软件工程复试问题 | 第三篇操作系统

复试问题 | 第三篇操作系统

    • - 进程和程序的区别
    • - 进程和线程的区别
    • -什么是 DMA?什么是中断?两者的区别。
    • - 硬中断和软中断是什么?区别是什么?
    • - 页面置换算法有哪些?什么是 LRU?
    • - 操作系统中的磁盘调度算法
    • - 什么是操作系统?
    • - 操作系统的组成,操作系统中用到了哪些数据结构中的数据结构?请举例说明
    • -虚拟存储器,以及相关算法。
    • - 什么是 TLB?
    • - 内部碎片和外部碎片
    • - 处理死锁的基本方法:
    • - RAID 磁盘阵列

- 进程和程序的区别

① 进程是动态的,程序是静止的。进程是程序的执行,程序是有序代码的集合。
②进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。
③ 进程和程序的组成不同:进程包括程序,数据和进程控制块
④ 进程和程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调度关系,一个进程可 以包括多个程序。
⑤进程可以创建其他进程,但是程序不能形成新的程序。

- 进程和线程的区别

① 调度:线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引 起进程切换。在不同进程中进行线程切换,将会引起进程切换。
② 拥有资源:进程是拥有资源的基本单位,而线程不拥有系统资源(除了少量资源,比如栈,程序计数器,寄存器),不过线程可以访问其隶属进程的系统资源。
③ 并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一个进程内的多个线程之间也可以并发执行,能提高系统的吞吐量,系统的并发性也更好。
④ 系统开销:在创建进程和撤销进程时,系统都要为之分配或回收资源,所以操作系统为进程付出的系 统开销远大于创建线程或撤销线程的开销。
⑤ 同步和通信:多线程之间的同步和通信容易实现。

-什么是 DMA?什么是中断?两者的区别。

- 硬中断和软中断是什么?区别是什么?

软中断:
1、编程异常通常叫做软中断
2、软中断是通讯进程之间用来模拟硬中断的一种信号通讯方式。
3、中断源发中断请求或软中断信号后,CPU 或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能
4、软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。
硬中断:
1、硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。
2、硬中断的中断响应周期,CPU 需要发中断回合信号(NMI 不需要),软中断的中断响应周期,CPU 不需发中断回合信号。
3、硬中断的中断号是由中断控制器提供的(NMI 硬中断中断号系统指定为 02H);软中断的中断号由指令直接给出,无需使用中断控制器。
4、硬中断是可屏蔽的(NMI 硬中断不可屏蔽),软中断不可屏蔽。
区别:
1、软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的
2、软中断是由程序调用发生的,而硬中断是由外设引发的
3、硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间。

- 页面置换算法有哪些?什么是 LRU?

① 最佳置换算法(OPT):在预知一个进程的页面号引用串的情况下,每次都淘汰以后不再使用的货以后最迟再被使用的页面。该算法不能实现,只能作为一个标准来衡量其他置换算法的优劣。
② 先进先出算法(FIFO):每次总是淘汰最先进入内存的页面,也就是将在内存中驻留时间最长的页面淘汰。(可能会产生 Belady 异常,缺页次数随着分配的物理块的增加而加)。
③ 最近最少使用算法(LRU):选择最近最少未被使用的页面淘汰,其思想是用以前的页面引用情况来预测将来会出现的页面引用情况。利用了局部性原理。
④ 时钟置换算法(CLOCK):是 LRU 和 FIFO 的折中,具体方法略。
以下几个不常用
⑤ 工作集算法
⑥ 工作集时钟算法
⑦ 第二次机会算法
⑧ 最近未使用(NRU)

- 操作系统中的磁盘调度算法

http://c.biancheng.net/view/1289.html
我是在这里了解的。

- 什么是操作系统?

操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必
要的服务和相应的接口。

- 操作系统的组成,操作系统中用到了哪些数据结构中的数据结构?请举例说明

-虚拟存储器,以及相关算法。

基于局部性原理,应用程序在运行之前,仅将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂时留在盘上。程序运行时,如果它要访问的页已调入内存,便可继续执行下去;但如果程序要访问的页或段尚未调入内存(即缺页),此时程序应利用请求调入功能将它们调入内存,以使程序能继续执行下去。如果此时内存已满,无法装入新的页或段,则需要利用页面置换功能,将内存中暂不使用的页面或段
调至盘上,(页面置换算法见上面)腾出空间用于页面调入内存,是程序继续执行下去。这样,就实现了大的用户程序能在较小的内存空间里运行,也可以在内存中同时装入更多的进程使它们并发运行。从用户角度出发,该系统的内存容量比实际内存容量大很多,故成这样的存储器为虚拟存储器。

- 什么是 TLB?

TLB 的作用是在处理器访问内存数据的时候做地址转换。是一个具有并行查询能力的特殊高速缓冲寄存器。TLB 中存放了一些页表文件,文件中记录了虚拟地址和物理地址的映射关系。当应用程序访问一个虚拟地址的时候,会从 TLB 中查询出对
应的物理地址,然后访问物理地址。TLB 通常是一个分层结构,使用与 Cache 类似的原理。处理器使用一定的算法把最常用的页表放在最先访问的层次。

- 内部碎片和外部碎片

内部碎片:分配给作业的存储空间中未被利用的部分。
外部碎片:系统中无法利用的小存储块,比如通过动态内存分配技术从空闲内存区上分配内存后剩下的那部分内存块。

- 处理死锁的基本方法:

① 预防死锁:这是一种较简单和直观的事先预防的方法。方法是通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或者几个,来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛使用。但是由于所施加的限制条件往往太严格,可能会导致系统资源利用率和系统吞吐量降低。
② 避免死锁:该方法同样是属于事先预防的策略,但它并不须事先采取各种限制措施去破坏产生死锁的的四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。
③ 检测死锁:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方法允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源,然后采取适当措施,从系统中将已发生的死锁清除掉。
④ 解除死锁:这是与检测死锁相配套的一种措施。当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来。常用的实施方法是撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行

- RAID 磁盘阵列

独立磁盘冗余阵列(RAID,redundant array of independent disks,redundant array of inexpensive disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间,储存冗余数据也增加了容错。

你可能感兴趣的:(考研复试面试问题,操作系统)