您的位置:首页 > 其它

Windows 2000/XP的操作系统模型

2006-03-07 23:41 357 查看
--摘自《Windows操作系统原理》一书

作为一个实际应用中的操作系统,Windows 2000/XP没有单纯地使用某一种体系结构,它的设计融合了分层操作系统和客户/服务器(微内核)操作系统的特点。
Windows 2000/XP像其他许多操作系统一样通过硬件机制实现了核心态(管态,kernel mode)以及用户态(目态,user mode)两个特权级别。当操作系统状态为前者时,CPU处于特权模式,可以执行任何指令,并且可以改变状态。而在后面一种状态下,CPU处于非特权(较低特权级)模式,只能执行非特权指令。一般来说,操作系统中那些至关重要的代码都运行在核心态,而用户程序一般都运行在用户态。当用户程序使用了特权指令,操作系统就能借助于硬件提供的保护机制剥夺用户程序的控制权并做出相应的处理。
在Windows 2000/XP中,只有那些对性能影响很大的操作系统组件才在核心态运行。在核心态下,组件可以和硬件交互,组件之间也可以交互,并且不会引起描述表切换和模式转变。例如,内存管理器,高速缓存管理器,对象及安全管理器,网络协议,文件系统(包括网络服务器和重定向程序)和所有线程和进程管理,都运行在核心态。因为核心态和用户态的区分,所以应用程序不能直接访问操作系统特权代码和数据,所有操作系统组件都受到了保护,以免被错误的应用程序侵扰。这种保护使得Windows 2000/XP可能成为坚固稳定的应用程序服务器,并且从操作系统服务的角度,如虚拟内存管理,文件I/O,网络和文件以及打印共享来看,Windows2000/XP作为工作平台仍是稳固的。
Windows 2000/XP的核心态组件使用了面向对象设计原则,例如,它们不能直接访问某一个数据结构中由单独组件维护的消息,这些组件只能使用外部的接口传送参数并访问和修改这些数据。但是Windows 2000/XP并不是一个严格的面向对象系统,出于可移植性以及效率因素的考虑,Windows 2000的大部分代码不是用某种面向对象语言写成,它使用了C语言并采用了基于C语言的对象实现。
Windows 2000/XP的最初设计是相当微内核化的,随着不断的改型以及对性能的优化,目前的Windows 2000/XP已经不是经典定义的微内核系统。出于对效率的考虑,经典的微内核系统在商业上并不具有实践价值,因为它们太低效了。Windows 2000/XP将很多系统服务的代码放在了核心态,包括像文件服务,图形引擎这样的功能组件。应用的事实证明这种权衡使得Windows 2000/XP更加高效并且并不比一个经典的微内核系统更容易崩溃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: