windows xp 的系统结构

windows xp 的系统结构,第1张

简析Windows XP体系结构
Windows XP是一个把消费型 *** 作系统(Windows 9x核心系列)和商业型 *** 作系统(Windows NT核心系列)融合为统一系统代码的新型Windows *** 作系统,它的发布标志着微软在 *** 作系统领域“两条腿走路”的研发和营销策略的结束。
毫不夸张地说,Windows XP是 *** 作系统历史上的全才,既有华丽堂皇的外表,更有卓越不凡的性能。对于广大的电脑爱好者而言,除了关心Windows XP友好的界面、简易的 *** 作和齐全的功能外,是否还有更进一步认识它的兴趣呢?怎样开始我们对Windows XP的深层次认识呢——它的体系结构就是最佳的着眼点。
*** 作系统作为一种大型软件,在它的发展过程中,出现过多种多样的体系结构,概括起来,大致可以分为以下四种类型:模块组合结构、分层结构、虚拟机结构和客户/服务器结构(又称微内核结构)。历史上的众多 *** 作系统不外乎都采用了这些体系结构,例如我们熟知的DOS就是“模块组合结构”的代表。作为一个实际应用型的 *** 作系统,Windows XP没有单纯地采用某一种体系结构,而是把分层结构 *** 作系统和客户/服务器结构 *** 作系统的特点融合到了一起。
所谓分层结构,指的是把 *** 作系统的所有功能模块按照调用的次序分别划分为若干层,各层之间的模块只能单向依赖或单向调用。这样做的好处是:既把复杂的整体问题分解成了若干易于解决的相对独立的子模块;同时又使得各个子模块之间的结构关系很清晰明了,不容易隐藏潜在的逻辑错误,而且也便于在不同的硬件环境中移植。可以说,Windows XP的可靠性、稳定性和可移植性都跟它采用了分层的体系结构是有密切联系的。
当然,Windows XP采用的最主要的体系结构是客户/服务器结构,因为采用这种结构的 *** 作系统将非常适于应用在网络环境下。作为面向网络的 *** 作系统,Windows XP没有理由不采用客户/服务器结构来设计。该结构的内核只提供了 *** 作系统最基本的功能,如基本调度 *** 作和中断处理等。微内核结构的优点是可靠、灵活以及适宜于网络计算机环境,但也存在工作效率不高的缺陷。Windows XP在设计上没有一味地承袭微内核结构,而是把效率问题更多地考虑了进去,做了很多改进和优化,例如把文件服务、图形引擎等功能组件植入到微内核中,使得Windows XP在效率与稳定之间找到了一个最佳的平衡点。实际的测试也表明,Windows XP的高效性并没有导致其稳定性的降低。
下面,需要引入两个重要的概念:核心态(kernel mode)和用户态(user mode),它们各自代表程序不同的运行状态。计算机里运行的程序,不是处于核心态就是处于用户态。当程序处于用户态时,它为用户服务。例如,当你使用Office系列软件办公时,这些软件就在为你服务,所以其运行状态就处于用户态。当程序处于核心态时,既可为用户服务,又可为系统服务。例如,内存管理器和安全控制程序,它们并非是用户直接需要的,但却必不可少,因为它们的任务是维护系统不出问题,所以要运行在核心态。可见,系统服务是用户服务的前提,因为首先要保证计算机系统能正常地运行,才谈得上为用户提供可靠的服务。也就是说,如果你用的 *** 作系统经常出现“蓝屏”或者死机的现象,那你还能很好地工作吗?因此,保证核心态的稳定可靠,是 *** 作系统在设计上必须着重考虑的。
Windows XP通过硬件机制现实了核心态以及用户态,并为前者赋予了很高的特权,允许处于核心态的程序调用特权指令来封杀任何用户态的程序,而用户态的程序只能调用常规的指令。一般来说,只有那些至关重要的、对性能影响很大的代码和组件才运行在核心态。例如,内存管理器、高速缓存管理器、安全管理器、网络协议、进程管理以及文件系统等就运行在核心态。而用户的应用程序都只准运行在用户态,而且不允许直接访问 *** 作系统的特权代码和数据,以免被恶意的应用程序侵扰。当用户的应用程序试图调用特权指令时, *** 作系统会借助硬件提供的保护机制剥夺这些程序的控制权并将它们强制关闭。有了这样的保护措施,Windows XP既可作为一般的工作平台,又可成为坚固稳定的服务器。
有了对核心态和用户态的认识,Windows XP体系结构的框架也应运而生,图1所示的就是以核心态和用户态为划分原则的Windows XP体系结构示意框图。
图1中的粗线将Windows XP分为用户态和核心态两部分。粗线上部的、处于用户态的方框分别代表的是四种基本类型的用户进程:系统支持进程、服务进程、应用程序、环境子系统。另外,子系统动态链接库也归类于用户态。
在介绍上述四种类型的用户进程之前,需要先来认识一下“进程”的概念,凡是研究 *** 作系统,都不能不涉及这个概念。简而言之,“进程”就是程序的执行过程。程序通常是以文件形式静态地存放在磁盘上的,而当程序被执行时,会产生一个动态的执行过程,如何来描述这个动态的过程呢?于是就引入了“进程”的概念。所以,一个处于运行状态的程序都对应了一个相应的进程。例如,你在使用Microsoft Word时,系统就会创建一个映像名称为WINWORDEXE的进程。为了能更细致地描述程序的执行过程,又引入了“线程”的概念,一个进程可以被细化为一个或多个线程。用线程来描述程序的执行过程,显得更深入、更精确。一般来说,从用户角度,线程是观察不到的。
1系统支持进程(system support process)
属于“系统支持进程”类型的进程,虽然处于用户态,但它们却是由 *** 作系统启动的。在Windows XP中,属于该类型的进程主要有:System Idle进程,用于统计CPU的空闲时间;System进程,是系统核心 *** 作的载体;会话管理器(smssexe),主要用于系统初始化工作;登录进程(winlogonexe),用于处理用户的登录和注销请求,按下“Ctrl+Alt+Del”组合键时,可以激活该进程;本地安全身份验证服务器(lsassexe),该进程用于接收来自登录进程的身份验证请求,然后调用适当的身份验证机制来完成实际的验证。
2服务进程(service process)
属于“服务进程”类型的进程,其对应的程序实体应该是Win32模式的程序。在客户/服务器结构的Windows XP系统中,这些服务进程其实完成的是服务器的功能。例如,Servicesexe、Spoolsvexe、Svchostexe、Winmgmtexe等程序,在执行时都归类于服务进程。
3应用程序(user application)
这个概念应该是最容易理解的,因为所有由用户启动的、被用户直接使用的程序都属于应用程序的范畴。Windows XP支持的应用程序的类型包括Win32模式、Windows31模式和MS-DOS模式。例如,上网用的IE浏览器、办公用的Office系列软件、听音乐用的Winamp以及用于进程查看的任务管理器(taskmgrexe)等都属于应用程序。
4环境子系统(environment subsystem)
简而言之,环境子系统的作用是向应用程序提供必要的运行环境。也就是说,应用程序的执行,实际上是通过调用环境子系统提供的功能函数实现的。在此前的Windows 2000 *** 作系统中,提供了三种环境子系统:Win32、POSIX(UNIX类型的子系统)和OS/2(用于x86系统的);而在Windows XP中,去掉了后两者,只保留了Win32环境子系统。
Win32环境子系统的程序实体是csrssexe文件,而且它必须始终处于运行状态,否则Windows XP就不能正常工作。同时,Win32子系统还包括以下重要组件:各种可供调用的函数;核心态设备驱动程序(Win32ksys),用于控制窗口显示、屏幕输出以及收集来自鼠标、键盘的输入信息;图形设备接口(Graphics Device Interface,GDI),提供文本、图形输出的各种函数;子系统动态链接库(subsystem DLLs),它是服务进程、应用程序与核心态的系统组件之间交互的中介。其具体的作用是将文档形式的函数转换成Windows XP内部的系统调用,相当于一个再编译的过程。例如,Ntdlldll、User32dll、Gdi32dll、Kernel32dll等都是该链接库的成员。
以上是Windows XP体系中的用户态的概况。其中列举了不少具体的程序文件,它们都可以在Windows XP的系统目录下找到;如果它们处于运行状态,那么在任务管理器中还能观察到它们(图2)。
粗线以下的部分是Windows XP的核心态组件,它们都运行在统一的核心地址空间中。核心态组件包括以下五项:核心、硬件抽象层、执行体、设备驱动程序以及图形引擎。
1核心(Kernel)
Windows XP的核心(程序实体是Ntoskrnlexe)始终运行在核心态,其代码短小紧凑,可移植性很好,主要提供下列功能:线程安排和调度;异常情况处理和调度;中断处理和调度;多处理器同步;为执行体提供“内核对象”调用。
2硬件抽象层(Hardware Abstraction Layer,HAL)
在多种硬件平台上的可移植性是Windows XP设计的一个至关重要的方面,除了核心以外,硬件抽象层(HAL)是完善可移植性的另一个关键部分。在实际的系统中,HAL表现为一个可加载的核心态模块haldll,它运行在最靠近硬件的地方,将核心、设备驱动程序以及执行体同硬件分隔开,从而使Windows XP能适应多种硬件平台。
3执行体(Executive)
执行体是核心的上层,作用是为用户态的用户进程提供函数的调用,使用户进程的功能得以实现。从外部看,用户交给的任务都好像是在执行体中完成的。而实际上,执行体的功能又是建立在调用核心的“内核对象”的基础上的。这样就避免了用户进程直接调用核心的情况的出现,减少了不稳定因素的产生。
4.设备驱动程序(Device Drivers)
设备驱动程序是一系列可加载的、以SYS为扩展名的核心态模块,它们负责I/O系统和相关硬件之间的交互。但Windows XP的设备驱动程序又并非是直接控制硬件的,而是通过硬件抽象层(HAL)来间接实现的。
Windows XP对“即插即用”和“高级电源选项”有很强大的支持,它使用Windows驱动程序模型(Windows Driver Model,WDM)作为标准驱动程序模型。WDM是微软专门为NT核心的Windows研发的一种分层化的驱动程序模型,并在Windows 2000系统中首次应用。从WDM的角度看,Windows XP中的驱动程序可分三种:总线驱动程序,负责硬件设备与总线控制器的连接;功能驱动程序,用于硬件自身内部的驱动;过滤器驱动程序,用于为现有硬件设备添加新的功能。在Windows XP中,每一个硬件设备都至少有总线驱动程序和功能驱动程序,前者负责与总线的交互,后者控制内部的运转。这是Windows XP的设备驱动程序机制的一大重要特点。
5图形引擎(Graphics Engine)
简言之,图形引擎的用处就是提供实现图形用户界面(Graphical User Interface,GUI)的基本函数。前面提到过,在Win32子系统中已经包含了图形设备接口(GDI),但其图形功能毕竟有限,不能满足高质量的图形应用的要求。为此,就采取了将图形系统移入到核心态来运行的策略,以提高图形处理能力。可以说,核心态的图形引擎是塑造出Windows XP华丽外表的艺术师。
到此,我们对Windows XP的体系结构应该有了一个概括性的认识。实际上,对于Windows XP这种庞大的 *** 作系统而言,其体系结构细节的复杂程度是难以想象的。如果用程序语言来描述的话,岂止一本书能够涵盖。为大家简析Windows XP体系结构旨在于增长见识、了解一点 *** 作技巧之外的知识。

类模块就是定义一个“类”,这是OOP(面对对象编程)的思想,就是将相关的数据(类的属性)和处理过程(类的方法)打包成一个“类”,定义好之后可以声明一个此类的对象来使用其中的属性和方法。
比如你做个聊天软件,其中文字收发你定义了一个类,将服务器连接、文字发送、接受等功能打包进这个类,那以后在软件里用到文字发送时就直接声明一个类的对象就可以了。简单的说,就是提高代码的重用性,一次代码可以多次多个场合使用。
类模块并不是必须的,你也可以拆开用原来的的方法写代码。数据用全局变量或者参数传递,方法改成一般的函数来实现。相对而言会显得松散,相关的数据没有整合在一起。
VB里面分过程和函数,实际上按C语言的角度,过程就是没有返回值的函数(返回类型VOID)。但VB用惯了“过程”这个词,所以许多地方会用它来描述。至于“子”说明了嵌套关系,通常把一个过程里面的调用的另一个过程叫做“子过程”。

R/3系统是一个建立在客户机/服务器上功能强大的ERP软件系统。主要功能模块包括:销售和分销、物料管理、生产计划、质量管理、工厂维修人力资源、工业方案、办公室和通信、项目系统、资产管理、控制、财务会计。

R/3的功能涵盖了企业管理业务的各个方面,这些功能模块服务于各个不同的企业管理领域。在每个管理领域,R/3又提供进一步细分的单一功能子模块,例如财务会计模块包括总账、应收账、应付账、财务控制、金融投资、报表合并、基金管理等子模块。

R/3适用的服务器平台是:Nove、Netware、NTServer、0S400、Unix;适用的数据库平台是:IBMDB2、Informix、MSSQLServer、Oracle。

支持的生产经营类型是:按定单生产、批量生产、合同生产、离散型、复杂设计生产、按库存生产、流程型;其用户主要分布在航空航天、汽车、化工、消费品、电器设备、电子、食品饮料等行业。

扩展资料

1972年,SAP诞生,推出了RF系统(实时财务会计系统),后来命名为R1。R指Realtime。3既指第三代系统,又代表3层架构。

R/3系统的组织结构和联机功能相结合而直接引入了具有三个层次的分布式数据处理概念。

中心数据库(CentralDB)是存储所有数据和应用程序的,它掌握所有数据库功能,如更新、建库等等,通过修改数据库和进行批处理与应用逻辑层相联接。应用服务器应用服务器用户服务器用户服务器联接应用服务器的工作站、PC机和终端,它们用来作为输入和显示数据的。

R/3应用最大的特性就是其高度集成性。标准化的用户界面,标准化的数据管理,控制和分布处理的标准化概念,标准化接口,标准化的开发方法共同保证了应用模块能进行无缝连接。所有这些都是通过在最低层软件的共享层,即基础软件的基础上建立一些应用来达到的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13206547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-20
下一篇 2023-06-20

发表评论

登录后才能评论

评论列表(0条)

保存