首页
社区
课程
招聘
[求助]操作系统习题――有关WIN2000
发表于: 2007-1-13 22:16 4296

[求助]操作系统习题――有关WIN2000

2007-1-13 22:16
4296
题目为:●Windows NT或Windows 2000是当前流行的一类操作系统, (13) 是Windows NT真正的中心,它提供了一组操作系统原语和机制。Windows NT采用线程机制提高系统的 (14) 。NT采用基于 (15) 的方案选定线程执行的次序。
     (13)A.进程    B.内核    C.线程    D.管程
     (14)A.并行性   B.可靠性   C.健壮性   D.兼容性
     (15)A.先来先服务 B.时间片轮转 C.随机选择  D.优先级

题中给出的答案为:13.C  14.B   15.A
    我认为答案为13.B  14.A  15.D

   
     小弟有点不懂了,所以求教个位大哥,最好能带讲解说明原因。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 139
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
13.B  14.A  15.B

13就不多说了。

14。线程就是为了并行性,在单CPU上实际上是没法并行的,只是让人感觉像是几个软件同时在运行。只有在多核的计算机上才可能实现真正的并行,这当然也需要操作系统的支持。

    线程对可靠性反而是个挑战,软件处理不当很容易崩溃。一直到.NET 2都有线程处理上的bug,平时编程时比较头痛的就包括对多thread程序的调试,不管是在windows还是在Linux上。

很多人一上来就写multi-thread的程序,不管是不是真的需要。至少在单核的Windows机器上,多线程的程序引起的系统开销是很大的。你每创建一个thread,系统就得调用该process里面所有DLL的DllMain()一遍。系统每一次thread切换,该休息的thread的数据(kernel object,stack --- user mode and kernel mode)都得保存,由此引起的内存page fault和相应的disk I/O是很惊人的。还不提你得花在线程同步上的功夫和效果。所以要慎用。

15。如果是考试题,这个老师该打屁股。先来先服务是早期操作系统调度进程的常用办法,比如Windows 3.1;从95开始就是round robin的法子了。
    1) 每个thread的quantum大概是20ms
    2) quantum的原理可参考:

http://download.microsoft.com/download/5/b/3/5b38800c-ba6e-4023-9078-6e9ce2383e65/C06X1116607.pdf

    3) sleep(10)可以让系统保证你的thread最少睡上10ms
    4) 在task manager里右键选择一个process,“set Affinity”可以让系统把你的thread绑定到某个CPU上去运行,对应的API是SetThreadAffinityMask()。
    5)2000/XP/2003:thread的优先级(priority)一般有32级(0到31),在task manager里你可以设定你的thread的优先级为real time(31),但系统内部从来就是不理睬,当成15(普通)来看待。
2007-1-14 10:24
0
游客
登录 | 注册 方可回帖
返回
//