操作系统常见面试题总结-2
上一篇 / 下一篇 2012-08-22 09:25:52 / 个人分类:杂谈
;G S6i.Iy!N-|)l D0 10、Linux文件属性有哪些?(共十位)51Testing软件测试网P6@.R2r:Y p#]
51Testing软件测试网N(O4k'Ya8j-rw-r--r--那个是权限符号,总共是- --- --- ---这几个位。51Testing软件测试网A\g v3z%b'ma
51Testing软件测试网+q2It[9Zw第一个短横处是文件类型识别符:-表示普通文件;c表示字符设备(character);b表示块设备(block);d表示目录 (directory);l表示链接文件(link);后面第一个三个连续的短横是用户权限位(User),第二个三个连续短横是组权限位 (Group),第三个三个连续短横是其他权限位(Other)。每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。如果每个权限位都 有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是- --- --- ---。
2Zl#t `)\+t hp%i7c5f051Testing软件测试网 ?(U_k%t_权限的设定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:
ZV3m-c@6G8gUZ0e.]C%QM)rx0 一个文件aaa具有完全空的权限- --- --- ---。51Testing软件测试网Pn%w }/K|\h
aW0W/T.Q#Pp0 chmod u+rw aaa(给用户权限位设置读写权限,其权限表示为:- rw- --- ---)
Ud7dh{JE'XK051Testing软件测试网*G9R@p0{s2hTm-L ?-Ochmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)51Testing软件测试网Dm.j2R8|U
51Testing软件测试网Ua-e#lW5v mchmod ugo+rw aaa(给用户,组,其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)
Tha1B"R1W e051Testing软件测试网 ZLNm`RS0L2{w如果aaa具有满权限- rwx rwx rwx。
.mb la6_T051Testing软件测试网7M"wQ7US"xchmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)
[zH8v JM~0XE*eh o7H0 如果要给aaa赋予制定权限- rwx r-x r-x,命令为:51Testing软件测试网G%g&A"M*p}7Sm
51Testing软件测试网-Y H lD&O-re kdchmod u=rwx,go=rx aaa51Testing软件测试网K |}ICG Q
l!iD3Vkm1X0 11、makefile文件的作用是什么?51Testing软件测试网A&`Ju+dUmS f1W
51Testing软件测试网?2Uj E'K*ZZ一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中。makefile定义了一系列的规则来指定哪些文件需要先编译,哪些 文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”。一旦写好,只需要一个make命令,整个工程完全自动编译,极大地提高了软件开发的效率。make是 一个命令工具,是一个解释makefile中指令的命令工具。一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。51Testing软件测试网(P{+r&@(s2p.y)O,L$h
51Testing软件测试网7?"p B&vG|12、简术OSI的物理层Layer1,链路层Layer2,网络层Layer3的任务。51Testing软件测试网K%^!lmE(n&z
x#zlN(n(p0 网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
%YwL(^7l5F]%[#Q0'Y1ttns1cOo[0 链路层:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
oiHo#gX.W*w06`D|$q'M{2R FA0 物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。51Testing软件测试网e9@+X(H&w+b8O~+NI(hX9u
51Testing软件测试网)IT_ Bi$L13、什么是中断?中断时CPU做什么工作?51Testing软件测试网Al9M*Cain
9zL*g? ej7Tb4PZ0 中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
j6\:W\ ?| |0"S0dJ ZNjH%L0 14、你知道操作系统的内容分为几块吗?什么叫做虚拟内存?他和主存的关系如何?内存管理属于操作系统的内容吗?51Testing软件测试网&Y)H5q)Il9id
\1Y4krk#\K0 操作系统的主要组成部分:进程和线程的管理,存储管理,设备管理,文件管理。虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为 4K,物理内存也被分页,每个页大小也为4K,这样虚拟页文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。页文件就是 内存页,物理内存中每页叫物理页,磁盘上的页文件叫虚拟页,物理页+虚拟页就是系统所有使用的页文件的总和。
k!aCP/@d#D0^c2c(`9l}0
ytJeBQ"l!m0 15、线程是否具有相同的堆栈?dll是否有独立的堆栈?
]2N7I$ylIAP6|0o051Testing软件测试网R$FX#w2w7Ps.B每个线程有自己的堆栈。51Testing软件测试网8yI-@E#s
51Testing软件测试网-JvYS\mo bD_"H_dll是否有独立的堆栈?这个问题不好回答,或者说这个问题本身是否有问题。因为dll中的代码是被某些线程所执行,只有线程拥有堆栈。如果 dll中的代码是exe中的线程所调用,那么这个时候是不是说这个dll没有独立的堆栈?如果dll中的代码是由dll自己创建的线程所执行,那么是不是 说dll有独立的堆栈?51Testing软件测试网1Ht!N4V_0q
51Testing软件测试网0A*enTT以上讲的是堆栈,如果对于堆来说,每个dll有自己的堆,所以如果是从dll中动态分配的内存,最好是从dll中删除;如果你从dll中分配内存,然后在exe中,或者另外一个dll中删除,很有可能导致程序崩溃。
+L|!wv$pb051Testing软件测试网n3h)q.{&Q_h16、什么是缓冲区溢出?有什么危害?其原因是什么?51Testing软件测试网 u8`govr-F^x)ts b
51Testing软件测试网&Q@.b2q Z X?/A缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。51Testing软件测试网z;o8rtt9ZQ
51Testing软件测试网c%MR9tFF*Oo]危害:在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而 缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致 拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破 坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。51Testing软件测试网0C4|U a+j
51Testing软件测试网r1U,qX5s+|,M,nI造成缓冲区溢出的主原因是程序中没有仔细检查用户输入的参数。
V$za%EP)}"W pp0rKEWM-}0 17、什么是死锁?其条件是什么?怎样避免死锁?
R'OV _9CBO0S$y;C/RY t0 死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。51Testing软件测试网Qc+Az J"Y
51Testing软件测试网qd*RKu:th死锁产生的原因主要是:? 系统资源不足;? 进程推进顺序非法。
I`g;mY t uU0n*`r3q7SO\0 产生死锁的必要条件:
;L)x@G@XA[0M!J6_%Zcz b,ILo8a/j0 (1)互斥(mutualexclusion),一个资源每次只能被一个进程使用;51Testing软件测试网T x4{*oi;DA
8ZgoV8~%T0 (2)不可抢占(nopreemption),进程已获得的资源,在未使用完之前,不能强行剥夺;
QM$e1YU0tE'}0"[ uVj,r)|7Gp)j0 (3)占有并等待(hold andwait),一个进程因请求资源而阻塞时,对已获得的资源保持不放;
7H"G%gvmoL'zWH)N051Testing软件测试网o5w:piW;s9{T!O mLu K(4)环形等待(circularwait),若干进程之间形成一种首尾相接的循环等待资源关系。51Testing软件测试网$B~&to1L6pZ
51Testing软件测试网*?(DRegX9E?这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。51Testing软件测试网a:zH;YN4s
51Testing软件测试网vo7]k_ST死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方 面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此, 对资源的分配要给予合理的规划。
Yk#[!B:ce`X"]0