操作系统基础

1.进程和线程的差别。

答:线程是指进程内的一个执行单元,也是进程内的可调度实体.

与进程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行

(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.

(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

2.测试方法

答:人工测试:个人复查、抽查和会审

机器测试:黑盒测试和白盒测试

2.Heap与stack的差别。

答:Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区

C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行

3.Windows下的内存是如何管理的?

答:  Windows的内存安排

Windows系统一般在硬盘上建立大小为物理内存两倍左右的交换文件(文件名在Windows 9x下为Win386.swp,Windows NT下为PageFile.sys)用做虚拟内存。利用80386处理器的内存分页机制,交换文件在寻址上可以很方便地作为物理内存使用。只需在真正访问到的时候将硬盘文件的内容读入物理内存,然后重新将线性地址映射到这块物理内存就可以了。同样道理,被执行的可执行文件也不必真正装入内存,只要在页表中建立映射关系,以后真正运行到某处代码的时候再将它调入物理内存。
如果把虚拟内存暂时先视为物理内存的一部分,从物理内存的层次看,Windows操作系统和DOS一样,也是所有的内容共享内存,比如操作系统使用的代码和数据(GDT,LDT与页表等),当前执行中的所有程序的代码和数据以及这些程序调用的DLL的代码和数据等,如图1.6的左上角所示。
但是从应用程序代码的层次看,也就是说从分页映射后线性地址的层次看,内存的安排却不是这个样子。因为Windows是一个分时的多任务操作系统,CPU时间被分成一个个的时间片后分配给不同程序轮流使用,在一个程序的时间片中,和这个程序执行无关的东西(如其他程序的代码和数据)并不需要映射到线性地址中去。
图1.6  Windows的内存安排
如图1.6所示,Windows操作系统通过切换不同的页表内容让线性地址在不同的时间片中映射不同的内容。图中的右边是Windows 98操作系统在单个时间片中线性地址的安排(Windows NT的地址安排稍微有些不同)。在物理内存中,操作系统和系统DLL的代码需要供每个应用程序调用,所以在所有的时间片中都必须被映射;用户程序只在自己所属的时间片内被映射;而用户DLL则有选择地被映射。假设程序A和程序C都要用到xxx.dll,那么物理内存中xxx.dll的代码在图中的时间片1和 n中被映射,其他的时间片就不需要映射,当然,物理内存中只需要一份xxx.dll的代码。
由此可以引出Win32编程中几个很重要的概念:
●   每个应用程序都有自己的4 GB的寻址空间。该空间可存放操作系统、系统DLL和用户DLL的代码,它们之中有各种函数供应用程序调用。再除去其他的一些空间,余下的是应用程序的代码、数据和可以分配的地址空间。
●   不同应用程序的线性地址空间是隔离的。虽然它们在物理内存中同时存在,但在某个程序所属的时间片中,其他应用程序的代码和数据没有被映射到可寻址的线性地址中,所以是不可访问的。从编程的角度看,程序可以使用4 GB的寻址空间,而且这个空间是“私有”的。
●   DLL程序没有自己“私有”的空间。它们总是被映射到其他应用程序的地址空间中,当做其他应用程序的一部分运行。原因很简单,如果它不和其他程序同属一个地址空间,应用程序该如何调用它呢?
5. 从Win32汇编的角度看内存寻址
对初学者来说,DOS下的分段寻址方式就已经令人一头雾水了,80386保护模式的内存管理就更麻烦。的确,如果在Win32汇编中访问内存之前要先在描述符表中构造正确的描述符,然后再构造页表把物理内存映射到要访问的线性地址的话,那就简直是一场噩梦,有90%的汇编程序员会因此改行去卖茶叶蛋!
但实际上这并没有发生,因为Win32汇编中的内存访问远比DOS下的分段寻址方式简单,这是为什么呢?
因为Windows是一个多任务的操作系统,最首要的宗旨就是“稳定压倒一切”。如果把描述符表以及页表等内容交给用户程序管理是很不安全的,不用说全局描述符表,就是为每个程序建立的局部描述符表也不应该让用户程序改写,否则用户可以通过构造自己的描述符来访问操作系统不希望用户访问的东西。任何权限上开放引发的安全问题都是很严重的,如Windows 9x中的中断描述符表是可写的,CIH病毒可利用它将自己的权限提高到优先级0;而Windows NT下的中断描述符表是不可写的,CIH病毒在Windows NT下就无法使用同样的方法进驻内存。
正因为如此,Windows操作系统干脆为用户程序“安排好了一切”。具体表现在为用户程序的代码段、数据段和堆栈段全部预定义好了段描述符。这些段的起始地址为0,限长为ffffffff,所以用它们可以直接寻址全部的4 GB地址空间。程序开始执行的时候,CS,DS,ES和SS都已经指向了正确的描述符,在整个程序的生命周期内,程序员不必改动这些段寄存器,也不必关心它们的值究竟是多少(实际上是想改也改不了)。
所以对Win32汇编程序来说,整个源程序中竟然可以不用出现段寄存器的身影。这在DOS汇编编程中是不可想像的。回顾本节开头提出的问题,答案是:并不是Win32汇编源代码用不到段寄存器,而是用户在使用中不必去关心段寄存器!

4.介绍.Net和.Net的安全性。

答: .NET

“.NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。”

“借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。”

“.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。”=版权所有 软件 下载 学院 版权所有

这个美国时间2000年6月22日上午面世的新概念一经发布就引起了全球IT界的关注,因为发布它的微软公司向以改变业界的游戏规则而闻名,该公司另一个出名的地方就是精通“拿来主义”,善于继承别人的思想再经过封装变成自己的产品。在.NET的新产品中,VS.NET有Delphi的影子,C#更宛若JAVA的一个clone,甚至.NET的“网络计算”的概念也曾经在很早以前由SUN提出过。但是这并不能妨碍.NET成为去年最热门的技术词汇,随着VS.NET和Windows.net的发布,它还会成为今年人们谈论最多的话题之一。

发布.NET之后,盖茨说,网络将由呈现式的平台转为完全的平台。

在微软的WinXP的发布会上,我注意到主持人特别强调的一句话:在未来,我们可以在任何时间,任何地点,使用任何设备获取信息(any time, any place and on any device.)。但是这当然不是.NET的全部,正如盖茨所言,仅仅能够获取信息是不够的,通过.NET,用户还将会获得由程序封装过的数据,也就是服务。关于这一点,我有如下的想象:有了.NET,全世界的互联网络会组成一个庞大的服务中心,而你的终端设备(当然不仅仅是你的台式机,还包括手机、PDA、平板PC等,甚至家用电器,前面说过了,任何设备)就是你贴身的智能秘书。你不需要自己获得信息去分析,只需将你的要求说(自然语言技术也是.NET的一部分)给秘书听,她就会自动地去互联网络上查找相关的服务,经过自己的智能处理与整合,以最有效率的方式完成你交给她的任务。关于这一新的计算模型所带来的可能性,在下面这一假想的事例中可得到突出的体现:

Steve Masters 因公到旧金山出差,过街时被一名骑自行车的邮递员撞伤。Steve 用他的 Web 电话与远在他的故乡的 Jamie 联系,她是他医生办公室里的接待员。Jamie 不仅知道 Steve 的位置,而且还能访问离 Steve 较近的一些诊所列表,这些诊所可提供他的健康保险所包括的服务。她为 Steve 在一街之隔的某诊所约了医生。Steve 在得到所需的医护后又上路了。

很多人为这个前景欢欣鼓舞,其实这只是.NET体验的一小部分而已。.NET为开发人员提供了新的开发平台 (.NET框架) ,新的开发语言(C#) ,新的开发工具 (Visual Studio .NET) ,新的开发方式 (Web Service) ;为普通用户提供了Windows CE、Windows XP、Stinger、Xbox、Tablet PC、.NET My Services、MSN等产品;为企业提供了bCentral。在未来,最终大多数流行的 Microsoft 软件应用程序——包括 Office 和 Visual Studio .NET——将开始与 XML Web 服务实现交互,并把它们的主要功能作为 XML Web 服务公开,以便其他开发人员可以利用

现在,你看到了,Microsoft .NET是一个平台,是 Microsoft 的 XML Web 服务平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。这个平台包含广泛的产品系列,它们都是基于 XML 和 Internet 行业标准构建,提供从开发、管理、使用到体验 XML Web 服务的每一方面。现在,Microsoft 正在五个方面创建 .NET 平台,即工具、服务器、XML Web 服务、客户端和 .NET 体验。

Microsoft .NET更是微软的一个网络战略,是微软意图全面占领互联网领域的最强有力的武器。在全球互联网络市场的抢夺战上,微软似乎慢了半拍,在浏览器方面差点败在Netscape手中,还为此吃了老大的官司,在流媒体上又被Real斩于马下。随着互联网以前所未有的速度席卷全球,很多人都希望籍此机会重新洗牌,但是惯于制定游戏规则的微软又怎会轻易将主动权交到别人的手中。同时,由于开放源码组织的不断壮大,微软紧抱源码不放的做法召致越来越多人的不满,很多人出于不同的考虑(安全、开放、免费)投靠了Linux阵营。另外,微软正等待着法院关于拆分的判决,如果微软被拆分,微软的产品将很难再取得目前的市场绝对垄断地位,对于微软来说,在产品上必须要变,而这个变,就是.NET所带来的由一个软件公司向一个服务公司的转变。事实上,微软将来可能会变成一个全球最大的网络服务商(ASP)。Windows这个给微软带来令人眩目的财富和辉煌的十年视窗时代结束了,微软打算全面设计我们的未来,它将把它所有产品全部重新改写为与.NET构造相一致的形态,以ASP(应用服务供应商)方式提供,这之后微软不再主要依靠授权和销售软件光盘赚钱,而是要通过互联网上运行的大量软件服务赚钱,从软件供应商走向ASP——这就是微软的新战略。

事实上,很早就有人提出过,对计算机发展和普及做出巨大贡献的软件行业已经到了这样一个转折点:留在终端的软件会越来越少,目前通过软件包发行的方式即将消失,而改为网上出租的形式获得利润,用户只要在本地发出请求,就可以在网上直接使用它,而这个软件的供应商会依你使用的次数来收费。现在你明白微软为何一定要拼了老本也要对Netscape赶尽杀绝了,一旦这个设想成为现实,集成诸多功能的浏览器将取代现在操作系统的地位,成为终端上唯一需要预安装的软件。如果这个浏览器不是微软的产品,那后果可想而知。=版权所有 软件 下载 学院 版权所有

.NET还是微软的一个互联网之梦,是微软公司提出的下一代互联网构想。在这一构想中,计算超越了网络浏览,进入一个更为先进的互联网平台和极为丰富的软件服务的新世界。微软心中有一个梦想,它要通过.NET改变人们未来的生活方式。就像当年Windows的出现使电脑从精英手中的玩具变成了普通大众身边不可或缺的工具,.NET极有可能会使互联网成为人们生活中密不可分的一部分。在未来的i时代,人们的生活、工作、学习、娱乐,都将得到.NET的帮助。在那个时候,.NET或许不会有人再提起,但是它带来的产品与概念,却将时刻伴随我们左右。


Web服务从由简单网页构成的静态服务网站,发展到可以交互执行一些复杂步骤的动态服务网站,这些服务可能需要一个Web服务调用其他的Web服务,并且像一个传统软件程序那样执行命令。这就需要和其他服务整合,需要多个服务能够一起无缝地协同工作,需要能够创建出与设备无关的应用程序,需要能够容易地协调网络上的各个服务的操作步骤,容易地创建新的用户化的服务。

微软公司推出的.NET系统技术正是为了满足这种需求。.NET将Internet本身作为构建新一代操作系统的基础,并对Internet和操作系统的设计思想进行了延伸,使开发人员能够创建出与设备无关的应用程序,容易地实现Internet连接。

.NET系统包括一个相当广泛的产品家族,它们构建于XML语言和Internet产业标准之上,为用户提供Web服务的开发、管理和应用环境。.NET系统由以下5个部分组成。

..NET开发平台

.NET开发平台由一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件构成,包括.NET框架(Framework)、.NET开发者工具和ASP.NET。

..NET服务器
NET服务器是能够提供广泛聚合和集成Web服务的服务器,是搭建.NET平台的后端基础。

..NET基础服务
.NET基础服务提供了诸如密码认证、日历、文件存储、用户信息等必不可少的功能。

..NET终端设备
提供Internet连接并实现Web服务的终端设备是.NET的前端基础。个人计算机、个人数据助理设备PDA,以及各种嵌入式设备将在这个领域发挥作用。

..NET用户服务
能够满足人们各种需求的用户服务是.NET的最终目标,也是.NET的价值实现。在这5个组成部分中,.NET开发平台中的.NET框架,是.NET软件构造中最具挑战性的部分,其他4个部分紧紧围绕.NET框架来进行组织整合。
.net 即DotNet。

首先我先给出微软的DotNet定义:
"Microsoft.NET 是 Microsoft.NET XML Web Services 平台。XML Web Services 允许应用程序通过 Internet 进行通讯和共享数据,而不管采用的是哪种操作系统,设备或编程语言。Microsoft.NET 平台提供XML Web Services 并将这些服务集成在一起,为个人用户的好处是无缝的,吸引人的体验。"

.net的开发工具主要是Visual Studio.net
现在流行的版本是Visual Studio.net 2003,最新是Visual Studio.net 2005, 可以到http://www.verycd.com/下载。
.NET 的安全性

编程上采用了.NET Framework 和 编译器,用以编译中间语言,实现了用.NET虚拟机机制实现代码安全托管。

服务框架上,整合了方便应用的加密算法类。

5.客户端如何访问.Net组件实现Web Service?

答:Step1. 加入Web Service的资源

        Step2.确定远程Web Service提供的URL(可以用UDDI增加),和其提供的 Service,通过权限认证。

        Step3.建立 Session

        Step4.调用远程 Web Service

        Step5.结束 Session

6.C/C++编译器中虚表是如何完成的?

答:如果类包含虚函数,在编译时,编译器会生成一虚函数的表,就是虚表,来存放虚函数。调用是都是从表里调用的,这也是实现多态性的原理。编译器为每个包含虚函数的类添加一个指针vptr,它指向一个保存有虚函数指针的表(每个不同的类都有一个对应的表), 在调用虚函数时,通过调用指针的运行起类型将该指针指向对应的虚表。《深入浅出MFC》侯捷,第一章就讲得很清楚了。

7.谈谈COM的线程模型。然后讨论进程内/外组件的差别。

答,中文翻译为公寓,有时候为套间,这里就翻译为公寓吧,都一个意思,指的就是COM的线程模式,这个概念很抽象,理解起来比较困难。因为公寓不像Windows内核对象那样有个句柄,并且跟公寓相关的Windows API很少,只有5个:CoInitialize,CoUninitialize,CoInitializeEx,OleInitialize和OleUninitialize,大家都很熟悉了,5个关于COM初始化和反初始化的函数。如何来理解公寓呢?可以这样:1、线程住在公寓中;2、对象住在公寓中。有时候,对象和创建它的线程住在同一个公寓中,有时候不是。这样还是很难理解对吧,但没事,这个先记下来,后面会明白的。

COM只有两种公寓,一种叫单线程公寓(Single-Thread Apartment),简称STA,一种叫多线程公寓(Multi-Thread Apartment),简称MTA,顾名思义,一种只能容纳一个线程,另一种能容纳多个线程。在一个进程中,MTA只有一个,而STA可以有很多。
 
我们在使用COM之前,都应该先初始化COM,怎么初始化?当然是前文提到的那几个函数了,CoInitialize,CoInitializeEx和OleInitialize,那我们是每个程序(进程)初始化一次还是每个线程初始化一次?答案是线程,每个线程初始化一次,这么个初始化,就相当于把这个线程安置在某个公寓中。具体这样的:CoInitialize或OleInitialize把线程放置入STA;CoInitializeEx允许你把线程放置入MTA。从公寓中移除线程的方法是CoUninitialize和OleUninitialize。
 
我们都知道,对象是线程创建的,那对象什么时候跟创建它的线程同一个公寓,什么时候不是同一个公寓呢?前面说了线程所在的公寓类型是由那几个初始化函数所决定,那对象所在什么公寓是由什么决定的呢?这个稍微复杂一点,答案是:由创建它的线程的类型及对象本身的线程属性所决定。线程类型大家都知道啦,就前面提到的由那几个初始化函数决定,那么对象本身线程属性怎么来定呢?答案:注册表里的信息来定。
 
打开注册表编辑器,按照这路径: / HKEY_CLASSES_ROOT/CLSID/{00000010-0000-0010-8000-00AA006D2EA4}/InprocServer32 ,(这个GUID很奇怪吧,明显不是用工具生成的,微软可有手动填写GUID的特权哦)看看 ThreadingModel 的值,嗯,没错,是 Apartment ,这个 Apartment 就是刚才我所提到的 对象本身线程属性 ,对象本身线程属性一共有四种:Apartment、Both、Free和Single。下面我列个表,一目了然。
 
组件线程属性 | STA线程                        | MTA线程
--------------------------------------------------------------------------------------
Apartment    | 同一公寓中,直接访问           | 创建一个STA,用代理访问
Free         | MTA中,用代理访问              | MTA,直接访问
Both         | 同一公寓中,直接访问           | MTA,直接访问
Single       | 主STA中,通过主STA访问
 
备注:第一个以COINIT_APARTMENTTHREADED调用CoInitializeEx()的线程被称作是主STA。
 
例如一个STA线程创建了一个本身线程属性为Free的对象,那该对象存在于MTA中,这个STA线程访问它就得通过代理,当然了,这对程序员来说是透明的,因为这个功能是靠COM的remoting层来实现的。要说和直接访问有什么能体现出来的不同,可能就是通过代理访问会慢一些,毕竟消息需要Marshalling,但这几毫秒的时间差你们地球人是很难感觉出来的( J )。
 
那么很明显了,只要我们把组件类型设置为Apartment,就不会有任何线程访问冲突的问题。《Win32 多线程》侯捷

进程内/外组件的差别是Com组建的一种表现形式:.exe文件,它是进程外组建,dll是进程内组建.

8.谈谈IA32下的分页机制

答:小页(4K)两级分页模式,大页(4M)一级

9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

答:一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方

10.在IA32中一共有多少种办法从用户态跳到内核态?

答:通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等

11.如果只想让程序有一个实例运行,不能运行两个。像winamp一样,只能开一个窗口,怎样实现?

答:用内存映射或全局原子(互斥变量)、查找窗口句柄..

FindWindow、互斥、写标志到文件或注册表、共享内存....。.

12.如何截取键盘的响应,让所有的‘a’变成‘b’?

键盘钩子SetWindowsHookEx

13.Apartment在COM中有什么用?为什么要引入?

答:同7

14.存储过程是什么?有什么用?有什么优点?

答:存储过程就是在数据库中建立一个可以调用的sql的查询函数,可以有参数输入,参数return,数据库编译它时实际上就会生成该存储过程的dll,所以运行一次后,以后再运行速度比单独执行SQL快很多。另一个优点,存储过程可以作为一个业务层,将用户层和数据层分隔,降低系统的内聚,提高耦合度。

15.Template有什么特点?什么时候用?

答:Template 延伸出来的 C++ Generic Programming,最大的特点是它已经成为STL 的最重要的骨干的C++标准程序库,将template 广泛应用于容器,算法,仿函数,适配器,分配器,迭代器上,无处不在,无役不已,所以C++会被认为是工业化的语言。

16.谈谈Windows DNA结构的特点和优点。

答:Windows  DNA是Windows Distributed interNet Applications Architecture 的缩写,如果直译成中文,是 "Windows 分布式集成网络应用体系结构" 的意思。

Windows DNA的核心是将Web和客户机/服务器的应用开发模型通过一套公共对象模型集成起来。Windows DNA使用一套公共服务集,如组件、动态 HTML、Web浏览器和服务器、脚本、事务处理、消息队列、安全性、目录、数据库和数据访问、系统管理以及用户界面等。这些服务在各个层次上以同一种方式开放给应用程序使用。

另外由于 Windows DNA是在W3C和IETF等制定的标准上构建的,所以它充分支持开放式的Web功能。

利用Windows DNA提供的优势,开发人员可以构建全新的应用程序,包括电子商务和其它个人之间及企业之间的通信应用,由于充分利用了标准网络服务和先进的基于组件的开发模式,开发人员可以比以往更快地开发出全新的应用。Windows DNA支持和旧有的计算机软硬件之间的集成和扩展,所以UNIX和一些大型机的系统在Windows DNA模式下仍然可以使用。

Windows DNA为网络应用提供了所有最基本的组件,所以开发人员可以把精力集中在产品的创新上,而无须关注底层结构和服务的构造。今天Windows DNA大部分的组件已被Microsoft的客户和合作伙伴广泛地利用了。在不远的日子里,随着Microsoft Windows NT 5.0操作系统和COM+(组件对象模型COM的增强版)的出现,将使Windows DNA的结构和组件更易于被开发人员创建和使用。

优点:

1.和Web结合:Windows DNA充分利用了Internet的优势,通过Microsoft Internet Information Server,  Windows DNA的应用可以提供用动态HTML语言创建的用户界面。这样就给出了一个简单的浏览器的界面,集中的维护和高效的软件发送模型可以为用户提供最新的软件。通过Microsoft Internet Explorer 4.0,  Windows DNA提供了对各种客户端操作系统的广泛支持,包括Windows NT , Windows 95, Windows CE, Macintosh和UNIX。

2.易于管理:通过Microsoft首创的零管理方案(Zero Administration),Windows DNA结构和它的组件都可以被集中地管理。这样网络管理员无须手工调整每个用户的PC就可以安装和更新应用程序。

3.动态:Windows DNA可以通过COM+中新增加的侦听功能动态地改变它的配置和能力。所以如果一旦业务条件或者其它环境因素改变了,应用程序逻辑也会自动随之改变。

4.支持固定或移动用户:差不多40%的个人计算机是所谓“膝上型计算机”,即意味着这些计算机是用于一个没有联网的环境中。所以我们的重要的任务之一就是充分考虑这些用户的需求。Windows DNA中包含了这样一种功能:当移动用户接入网络中时,智能地将数据和函数进行分区和存储。这样当用户离线时,仍可以使用一些特定的应用程序。

5. Internet 和Intranet的透明性:由于Windows DNA将Internet和客户机/服务器工作模式集成起来,用户可以如同浏览Web一样地浏览应用程序。通过提供单一的集成化的结构将Intranet和Internet紧紧捆绑起来,Windows DNA降低了系统维护和人员培训的费用。

6.更进一步的集成:Windows DNA结构不仅和网络紧密结合,而且和网络数据以及现存的应用程序都紧密联系。Windows DNA并没有构建一个独立的数据和应用的底层结构,而是将现存的系统进行扩展,使之能够共享数据和应用逻辑,并为它们创建可以在Web上使用的接口。

总而言之,Windows DNA将各种客户的各种系统集成起来,包括从基于页面的HTML应用程序到基于代码的Windows应用程序的用户界面,移动或是离线的用户,结构化的或是非结构化的存储,基于Web的或是基于客户机/服务器的应用程序。而且它还在充分发挥分布式计算资源的能力的同时,提供了集中管理的工具以降低系统部署和技术支持的开销。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值