操做系统题目总结

一、某系统采用分页存储管理(Paging),页长(Page Size)为 1K(1024),该进程分页后 0、一、2三页分别装入到主存的 一、二、4 帧(Frame)。现有一逻辑地址(Logical Address)为 2048,页 内地址(Page Offset)为(  )。
答案 : 0
页号 = 逻辑地址 / 页长
页内地址 = 逻辑地址 % 页长算法

二、假设5 个进程 P0、 P一、 P二、 P三、 P4 共享三类资源 R一、 R二、 R3,这些资源总数分别为1八、 六、 22。 T0 时刻的资源分配状况以下表所示,此时存在的一个安全序列是( )。安全

clipboard.png
clipboard.png

答案:D
资源总数为18.6.22,以及分配资源之和为16.3.19,故可用资源为2.3.3;
线程的所需资源 = 资源最大需求 – 已分配资源
故五个线程所需资源为:2,2,7;1,3,3;0,0,6;2,2,1;1,1,0
因为安全序列进程所需资源需在可用资源里面获取,故第一个进程应为P1,P3或
P4,故AC错,当第一个进程为P1时,当P1运行完毕释放它所占有的所有资源,
可用资源变为6.3.6,因为P0所需资源为2.2.7,故不能知足,B错。编辑器

三、用于解决CPU指令乱序、编译器重排、多CPU内存同步等带来的问题的机制是?
答案:内存屏障
内存屏障:也称内存栅栏,屏障指令等,是一类同步屏障指令,使得cpu或编译器在
对内存随机访问中的一个同步点,使得此点以前的全部读写操做都执行完才能够开始
执行此点后的操做。
大多数现代计算机为了提升性能而采起乱序执行,这使得内存屏障称为必须。
语义上:内存屏障以前的全部读写操做都要写入内存,内存屏障以后的全部操做均可以得到同步屏障以前的写操做的结果。
顺便讲讲其余选项
volatile关键字:
例子:性能

volatile int i = 10;
int j = i;
…
Int k = i;

volatile关键字至关于告诉编译器这个变量是随时可能发生变化的,故每次使用它
都必须从内存地址中获取,于是编译器生成的可执行代码会从新从i的地址读取放入
k中。
Volatile影响编译器编译的结果,故与volatile变量有关的运算,不要进行编译优
化。
编辑器优化:
因为编译器发现两次从i中获取的数据之间的操做并无对i进行过操做,故它会自
动把上次读取的放入k中,而不是从新从i中读取。
自旋锁:
跟互斥锁相似,在任什么时候刻最多只能有一个保持着,跟互斥锁在调度机制上有不一样,
互斥锁在资源已经被占用时,进入睡眠状态,而自旋锁是由调用者一直循环知道锁释
放。
信号量(semaphore):
它是一个计算器,用于控制同时访问某个特定资源的操做数量,或者执行某个特定操做的数量。
在进入一个线程以前,线程必须得到一个信号量(许可),并在使用以后释放许可。当没有信号量(许可),那 么请求将阻塞直到有许可。
例子:
以一个停车场的运做为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时若是同时来了五辆车,看门人容许其中三辆直接进入,而后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,若是又离开两辆,则又能够放入两辆,如此往复。优化

四、设计实时操做系统必须首先考虑系统的( )。
答案:可靠性、实时性。
实时操做系统的效率通常比分要低,是适当牺牲了效率来保障实时。编码

五、选择排队做业中等待时间最长的做业优先调度,该调度算法是()。
答案:先来先服务调度方法(FCFS first come first service)
下面讲讲进程的调度算法:
不一样环境的调度算法目标不一样,所以须要针对不一样环境来讨论调度算法。spa

  • 批处理系统没有太多的用户操做,在该系统中,调度算法目标是保证吞吐量和周转时间。(从提交到终止的时间)操作系统

    • 先来先服务调度方法(FCFS first come first service)根据做业的等待时间的长度来衡量。
    • 短做业有限调度算法(SJF shortest job first)根据做业运行时间的长度来衡量。
    • 响应比高优先调度算法(HRN highest response_ratio next)是对FCFS和SJF的一种综合平衡,FCFS只考虑做业的等待时间,而SJF只考虑做业的运行时间,这两种方式在某些极端状况下都会带来不便,HRN调度策略同时考虑每一个策略的等待时间跟运行时间,从中选出响应比最高的做业。响应比R = (W + T) / T = 1 + W / T其中T为该做业估计须要的执行时间,W为做业在后备状态队列的等待时间。每当要进行做业调度时,系统计算每一个做业的响应比,选择其中R最大者投入执行。这样,即便是长做业,随着等待时间的增长,W / T也会随着增长,也就有机会得到调度执行。
  • 交互式系统交互式系统有大量的用户交互操做,在该系统中调度算法的目标是快速地进行相应。线程

    • 优先权调度算法(priority scheduling)分为静态优先权跟动态优先权为每一个进程分配一个优先级,按照优先级进行调度。为了防止优先级的进程永远等不到调度,能够随着时间的推移增长等待进程的优先级。
    • 轮转法(round robin)也叫时间片轮转,将全部就绪进程按FCFS的原则排成一个队列,每次调度时,把cpu时间分配给队首进程,让该进程执行一个时间片。当时间片用完时,有定时器发出时钟中断,调度程序便中止该进程的运行,并将它运送至就绪队列的末尾,同时将cpu时间分配给队首的进程。时间片轮转算法的效率和时间片的大小有很大关系,由于进程切换都要保存进程的信息而且载入新进程的信息,若是时间片过小,会致使进程切换得太频繁,在进程切换上就会花过多的时间。
    • 多级反馈队列(round robin with multiple feedback)是轮转法跟优先级算法的综合和发展。若是一个进程须要执行100个时间片,若是采用轮转法,那么须要交换进程100次。多级队列是为了这种须要连续执行多个时间片的进程考虑,它设置了多个队列,分别赋予不一样的优先级,如逐级下降,每一个队列时间片大小都不相同,规定优先级越低时间片越长,如逐级加倍(例如1,2,4,8….)。若是第一个队列没有执行完,则下降到第二个队列的末尾,一样按照FCFS算法调度,如此下去,下降到最后的队列,则按”时间片轮转法”算法调度直到完成。这种方式下,以前的进程只需切换7次。

一、进程与程序的一个本质区别是()。
答案:前者的动态的,后者是静态的。
进程跟程序的区别:设计

  • 进程的动态的,程序时静态的。
  • 进程有必定的生命周期,而程序是指令的集合,自己无‘运动’的含义,没有创建进程的程序不能做为一个独立单位获得操做系统的承认。
  • 一个程序能够对应多个多个进程,一个进程只能对应一个程序。

二、计算机经过MIC(话筒接口)收到的信号是()。
答案:音频模拟信号。

  • 话筒是将语音信号转化为电信号的装置,语音信号是连续的,转化为电信号也是连续的,所以是模拟信号。
  • 模拟的电信号在计算机内通过采样,量化,编码,最终造成音频数字信号。

三、处理外部中断时,应该由操做系统保存的是()。
答案:通用寄存器的内容。

  • 外部中断处理过程,PC(程序计数器)值由中断隐指令自动保存,而通用寄存器内容由操做系统保存。
  • 寄存器:中央处理器内的组成部分,寄存器是有限存储容量的高速存储部件,他们能够用来暂存指令,数据和地址。在cpu的控制部件中,包含的寄存器有指令寄存器(IR:临时放置从内存里面取得的程序指令的寄存器,用户存放当前从主存储器读出的正在执行的一条指令)和程序计数器(PC:用于存放下一条指令所在单元的地址的地方)。
相关文章
相关标签/搜索