非常经典的笔试题。
2.操作系统(39道)
2.1 Linux系统的组成部分?
Linux
内核、
Linux
文件系统、
Linux shell
、
Linux
应用程序。
2.2 Linux内核的组成部分?
(
1
)第一种分类方式:内存管理子系统、进程管理子系统、文件管理子系统、
I/O
管
理子系统。
(
2
)第二种分类方式:进程调度(
SCHED
)、进程间通信(
IPC
)、内存管理
(
MM
)、虚拟文件系统(
VFS
)、网络接口(
NET
)。
2.3内存管理MMU的作用?
(
1
)地址映射。
(
2
)内存分配和回收。
(
3
)内存保护。
(
4
)内存扩充。
2.4常见的操作系统进程调度策略有哪些?
答案:
(
1
)先来先服务(
FCFS
)。
(
2
)短进程优先(
SPF
)。
(
3
)高响应比优先(
HRN
)。
(
4
)时间片轮转(
RR
)。
(
5
)多级反馈队列(
RRWMF
)。
(
6
)最高优先权优先(
FPF
)。
解读:
(
1
)先来先服务(
FCFS
):每次调度是从就绪队列中选择一个最先进入该队列的进
程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后
才放弃处理机。
(
2
)短进程优先(
SPF
):从就绪队列中选出一个估计运行时间最短的进程,将处
理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机
时再重新调度。
(
3
)高响应比优先(
HRN
):在短作业优先的基础上,使作业的优先级随着等待时
间的增加而以速率
a
提高,则长作业在等待一定的时间后,必然有机会分配到处理
机。
(
4
)时间片轮转(
RR
):将所有的就绪进程按先来先服务的原则排成一个队列,每
次调度时,把
CPU
分配给队首进程,并令其执行一个时间片,时间到了之后将它送往
就绪队列的末尾。接着调度下一个队首进程
……
如此循环。
(
5
)多级反馈队列(
RRWMF
):
①设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,
第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时
间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就
愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,第
i + 1
个队列的
时间片要比第
i
个队列的时间片长一倍。
②当一个新进程进入内存后,首先将它放入第一队列的末尾,按
FCFS
原则排队等待
调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它
在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地
按
FCFS
原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依
次将它放入第三队列,如此下去,当一个长进程从第一队列依次降到第
n
队列后,在
第
n
队列便采取按时间片轮转的方式运行。
③仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第
1
~
(i-1)
队列
均空时,才会调度第
i
队列中的进程运行。如果处理机正在第
i
队列中为某进程服务
时,又有新进程进入优先权较高的队列
(
第
1
~
(i-1)
中的任何一个队列
)
,则此时新进程
将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第
i
队列的末
尾,把处理机分配给新到的高优先权进程。
(
6
)最高优先权优先(
FPF
):把处理机分配给就绪队列中优先权最高的进程,这
时,又可进一步把该算法分成如下两种:
①非抢占式优先权算法:系统一旦把处理机分配给就绪队列中优先权最高的进程后,
该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方
可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统
中,也可用于某些对实时性要求不严的实时系统中。
②抢占式优先权调度算法:系统同样是把处理机分配给优先权最高的进程,使之执
行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立
即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权
最高的进程。