❶ 编程是什么意思
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】
一、编程语言
机器语言:是机器能直接识别的程序语言或指令代码。计算机是基于二进制的0和1来处理运算,这种0和1的组合指令又叫做机器语言。
编译器:就像中国人和外国人说话要把中文翻译成英文一样。代码要运行,就要把代码翻译成机器语言,这个过程叫做编译,用来处理代码编译的软件叫做编译器。
编程语言:用来定义计算机程序的形式语言,用来向计算机发出指令。简单来说,就是人类和计算机进行交流的语言。
二、计算机如何处理程序?
按照冯·诺依曼存储程序的原理,计算机的工作流程大致如下:
用户打开程序,程序开始执行;
操作系统将程序内容和相关数据送入计算机的内存;
CPU根据程序内容从内存中读取指令;
CPU分析、处理指令,并为取下一条指令做准备;
取下一条指令并分析、处理,如此重复操作,直至执行完程序中的全部指令;
最后,将计算的结果放入指令指定的存储器地址。
❷ 什么叫编程,是什么意思
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解颤高腔决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的茄衫指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】
一、编程语言
机器语言:是机器能直接识别的程序语言或指令代码。计算机是基于二进制的0和1来处理运算,这种0和1的组合指令又叫做机器语言。
编译器:就像中国人和外国人说话要把中文翻译成英文一样。代码要运行,就要把代码翻译成机器语言,这个过程叫做编译,用来处理代码编译的软件叫做编译器。
编程语言:用来定义计算机程序的形式语言,用来向计算机发出指令。简单来说,就是人类和计算机进行交流的语言。
二、计算机如何处理程序?
按照冯·诺依曼存储程序的原理,计算机的工作流程大致如下:
用户打开程序,程序开始执行;
操作系统将程序内容和相关数据送入计算机的内存;
CPU根据程序内容从内存中读取指令;
CPU分析、处理指令,并为取下一条指令做准备;
取下一条指令并分析、处理,如此重复操作,直至执行完程序中的全部指令;
最后,将计算的结果放入指令指定的存储器地址念哪。
❸ 数据网格技术是什么
网格技术基本概念:
一家票务公司要销售滚石乐队的告别演出门票,部门经理担心,开始网上售票后,公司的服务器和软件会不会不堪重负?但实际上该公司并没有增加数十个服务器和存储系统,有关IT人员只是拧开开关,将公司的骨干网与一个“网格”相联。结果公司在3分钟内销售了90万张门票,没有一个顾客因系统处理能力不足而被拒之门外。
上述情景并非可望而不可及。网格作为一种能带来巨大处理、存储能力和其他IT资源的新型网络,可以应付临时之用。网格计算通过共享网络将不同地点的大量计算机相联,从而形成虚拟的超级计算机,将各处计算机的多余处理器能力合在一起,可为研究和其他数据集中应用提供巨大的处理能力。有了网格计算,那些没有能力购买价值数百万美元的超级计算机的机构,也能利用其巨大的计算能力。
计算的“乌托邦”?
Gartner公司的Rob Batchelder认为,网格的构想一直是计算领域的“乌托邦”,在科技应用上虽有巨大前景,但最大的缺陷是缺乏明显的商业应用。自20世纪90年代在欧美出现以来,网格主要被用于帮助分散的大学研究人员分析粒子加速器和巨型望远镜的数据。但在过去的两年中,网格的概念和GlobusToolkit已在研究和教育领域得到广泛应用,数十项全球性的大项目采用这些技术,以挑战科学计算中的海量计算问题。
目前网格技术虽主要为学术机构所控制,但企业也在陆续跟进。事实上,全球网格论坛(GlobalGridForum)的主要赞助企业就包括Unilever——一家以经销肥皂、冰淇淋著称的企业。与许多正在研究和评估网格技术的企业一样,Unilever自己对于如何利用此技术仍秘而不宣。而Johnson&Johnson与Merck等制药公司、BMW与波音等制造企业却已利用这一技术的处理能力和存储空间进行仿真试验,例如药品能否保护细胞免受病毒侵袭?飞机机翼是否会在暴风雨中折断?
基因研究是网格技术的自然应用,这一领域所需的投资很难由一家企业来承担,生物科技企业可用网格技术来分析基因数据;医生可以用网格技术制作出病人器官的三维模型,作为诊断疾病的辅助手段;网格可以处理来自商店现金记录或金融市场的数据流。其他行业,如航空、保险、运输和国防,也会从中受益。如此看来,网格计算并非是可望不可及的乌托邦,其商业应用的广阔前景就在眼前。
争夺控制权
网格计算被誉为继Internet和Web之后的“第三个信息技术浪潮”,有望提供下一代分布式应用和服务,对研究和信息系统发展有着深远的影响。主要IT厂商早就为获得网格计算的控制权展开了竞争。
Sun公司日前发布了“网格引擎”企业版5.3的测试版,使企业内部的计算机网格更容易联接,提供更好的管理和资源分配。网格引擎软件提供了开放源代码版本,自2000年发布到目前为止,共被下载了1.2万次,共有11.8万个CPU利用该软件进行管理。Sun公司技术产品营销经理PeterJeffcock认为,网格计算有明显的三个阶段:群集网格、校园网格和全球网格,目前发布的GridEngine企业版5.3使Sun向功能校园网格迈进了一步。Sun还与竞争对手一起支持AVAKI与Globus等行业组织,积极参与网格计算开放标准的建立。
Microsoft的研究部门也参与了各项分布式计算研究项目,包括容错远程文件系统Farsite,以及建设分布式系统的Millenium;HP也表示将提供Coolbase软件,使用户可以通过Internet共享各种计算设备;Compaq宣布正在制定一个全球性的网格计算解决方案计划,向寻求网格计算系统的客户提供软硬件和技术支持。为此,Compaq与加拿大PlatformComputing结盟,充分利用该技术,以及CompaqTru64UnixAlpha服务器系统和运行Linux的CompaqProLiant服务器,为用户提供完整的、集成的、开放的网格解决方案。Compaq还建立了网格计算高级研究中心,继续对该技术进行研究。日本的企业在网格计算方面也跃跃欲试。NTT宣布将于2002年中期开展为期6个月的网格计算试验,参与者包括了Intel、SGI等。
今年8月,IBM宣布在网格计算领域投资40亿美元,在全球建设40家数据中心,正式进入网格计算领域。IBM被英国政府选中,负责NationalGrid(国家网格)项目,这项预算达2500万美元的网格会把8所大学的计算机相连。IBM目前正与美国的宾夕法尼亚大学合作,将数家医院联接,构建一个复杂的计算网格。参与的医院可快速利用远方的医疗数据,并共享分析程序。日前,IBM还宣布了一项名为北卡罗莱纳生物信息科学网格的项目,涉及60家企业、大学和生物医学研究公司,这是全球第一个主要由私营行业参与的网格项目。而此时距IBM进入网格计算领域仅仅3个月。看来IBM是要立志做网格技术的“领头羊”。
那么,这一项目的实施是否标志网格计算已开始进入商业应用呢?
标准是成功关键
就像TCP/IP协议是Internet的核心一样,构建网格计算也需要对标准协议和服务进行定义。目前,包括Global Grid Forum、研究模型驱动体系结构(Model Driven Architecture)的对象管理组织(OMG)、致力于网络服务与语义WWW研究的W3C,以及Globus.org等标准化团体蠢蠢欲动。
今年7月,OMG、W3C、Grid Forum等标准化组织与来自学术、商业领域的人士出席了“软件服务网格研讨会”,加快全球大网格(GGG)标准的制定。接着,另一开放源代码网格标准组织——Globus也集会研究通过广域网联接的高性能计算的基础设施问题。Globus目前正致力于开发标准的网格架构和其他技术。
迄今为止,网格计算还没有正式的标准,但在核心技术上,相关机构与企业已达成一致:由美国Argonne国家实验室与南加州大学信息科学学院(ISI)合作开发的Globus Toolkit已成为网格计算事实上的标准,包括Entropia、IBM、Microsoft、Compaq、Cray、SGI、Sun、Veridian、Fujitsu、Hitachi、NEC在内的12家计算机和软件厂商已宣布将采用Globus Toolkit。作为一种开放架构和开放标准基础设施,Globus Toolkit提供了构建网格应用所需的很多基本服务,如安全、资源发现、资源管理、数据访问等。目前所有重大的网格项目都是基于Globus Tookit提供的协议与服务建设的。
除了标准以外,安全和可管理性、IT人才的缺乏也是网格计算亟待解决的一个问题,否则将无法成为企业的商业架构。在内部系统环境中常常视而不见的问题,如安全、认证和可靠性,在任何分布式环境下都必须得到解决。研究咨询公司StencilGroup的合伙人Brent Sleeper认为:“这要求具有高层次的架构技能,而不是简历上列出的编程语言。”如果把全球的网格都联在一起,那么就能借用彼此未用的资源,网格就会更强大和灵活。虽然这也是网格的最终目标,但把网格联在一起也会带来政治问题。IBM为大学建设网格或Unilever建设内部的网格都只是单纯的IT决策,而将私有网格联接,形成能力更大的共享网格,其中的风险却大得多。在客户需要时,相互竞争的网格提供商是否愿意出售彼此多余的资源?此外,网格应用常涉及大量的数据和计算,需要在各组织间共享安全资源,这不是当前的Internet和网络基础设施所能做到的。看来在网格计算实现商业应用之前,还有很多的问题需要解决。
然而,设想一下运用前所未闻的计算能力所能完成的工作,我们都会明白,构建全球网格的前景几乎是无法抗拒的。美国Argonne国家实验室的科学家Rick Stevens指出:“就像最初的Arpanet成为Internet的中心一样,就把Teragrid看做是形成全球网格中心的雏形吧!”
网格的商业应用
生物医学:网格可提供药品开发人员所需的计算能力,用以研究药物和蛋白质分子的形态与运动。
工程:波音、福特、bmw公司都在尝试用网格计算进行复杂的仿真与设计。
数据搜集/分析:制造、石油加工、货物运输、甚至零售企业都要维护昂贵的设备,时常会出现问题,造成不好的结果。同无线传感器一样,网格能够存储和处理所有交易。
❹ 编程的科普小知识
1.编程是什么
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强丛坦大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。
于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。 那程序到底是什么呢? 程序也就是指令的 *** ,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。没有这些特殊的指令,就不能执行预期的任务。
计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。 这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。因此我们要通过程序的方式来让计算机为我们“效劳”。
而这个过程就是我们“编”出来的。编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。 写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。
因此,编程实际上也就是“人给计算机出规则”这么一个过程。 随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的 *** ,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。 汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
由于省略了很多细节,所以编程者也不需要具备太多的专业知识。 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不局燃能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。 (2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先桐郑虚修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来?当然是由我们编写出来了。
或许你又会问到另一个问题:现在要什么程序有什么程序, *** 嘛还要编程呢?这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有可能就是你所需要的。但是,就好比去买衣服,虽然卖衣服的到处都是,但是哪一件是为你“量身定做”的呢! 程序还能够做很多事情不同的程序可以完成不同的。
2.科普小知识资料有哪些
科普小知识按研究对象不同可分为自然科学、社会科学和思维科学。
1、自然科学是关于自然现象的各门具体科学,研究自然界的本质和规律。
例如,数学、物理学、化学、天文学、地理学、生物学等等。
2、社会科学是关于社会现象的各门具体科学、力求揭示社会的本质和规律。
例如,经济学、政治学、军事学、社会学、管理学、教育学等等。
3、人文科学是关于人类文化现象的各门具体科学、力求揭示社会文化领域的本质和规律。
例如,语言学、历史学、考古学、伦理学、美学、宗教学等等。
科学知识普及简称科普,又称大众科学或者普及科学,是指利用各种传媒以浅显的、让公众易于理解、接受和参与的方式向普通大众介绍自然科学和社会科学知识、推广科学技术的应用、倡导科学方法、传播科学思想、弘扬科学精神的活动。科学普及是一种社会教育。
参考资料
科学的分类.360个人图书馆[引用时间2018-4-4]
3.计算机编程入门
选择一门编程语言、建立基本的编程思想、注重实验和学习相关知识。
1、选择一门编程语言。
虽然目前编程语言有600种左右,但是比较流行的编程语言只有几十种,所以尽量选择流行程度比较高的编程语言来入门编程。对于没有明确编程场景的初学者来说,尽量选择全场景编程语言,比如Java、Python、C#等就是不错的选择,不仅应用范围广泛,而且也有大量的开发案例可以参考学习。
2、建立基本的编程思想。
编程语言本身的难度并不高,只要掌握了相应的编程规则就能逐渐建立起自己的编程思想。建立编程思想的第一步是了解编程语言的基本语法规则,以Java语言为例,要掌握各种抽象概念,比如类、对象、属性、方法等;第二步是了解基本的编程过程,比如类的定义、对象的创建、方法的调用;第三步是学习经典的编程模式。
3、注重实验。
学习编程语言一定要重视实验,实验不仅能够帮助理解各种抽象概念,也能在一定程度上积累编程经验。
4、学习相关知识。
在学习编程语言的过程中,也需要同时学习计算机网络、数据库等相关知识,在当前的云计算和大数据时代背景下,还需要掌握如何通过云计算(PaaS)来辅助开发,以及如何利用大数据平台的各种资源。
(4)编程是什么叫网格扩展阅读
注意事项:
1、网上有很多编程社区,编程论坛,以及免费的学习教程、视频资源等。刚开始学习,除了看书,要亲自上手实践,遇到问题去这些地方查找。
2、要学习电脑编程,对于刚入门的新手来说,一定要多实践,多敲代码,遇到bug上网查找,多看看别人的博客、个人网站,向程序员大牛学习。
4.计算机的科学、学问除了编程一大方面还有哪几个方面
计算机的科学?与计算机有关的学科有:计算机科学,数学,计算机程序设计,软件工程,计算机工程等。
如你所说的微电子学,电学等都是以上学科的基础性课程。如学数字电子技术(或称计算机逻辑),再学计算机组成与结构,再学微机原理接口,学具体的微机(MCU,DSP)。
课程都是一门承接着一门的。以下可做参考:硬件 结构控制和指令系统 算法和逻辑结构 存储器结构 冯·诺伊曼结构 哈佛结构 输入/输出和数据通信 数字逻辑 逻辑设计 集成电路 计算机系统组织 计算机系统结构 计算机网络 分布式计算 网络安全 计算机系统实现 软件 系统软件 操作系统 编译器 应用软件 计算机游戏 办公自动化 网络软件 CAD软件 计算机程序 程序设计和程序设计实践 面向对象技术 程序设计语言 软件工程 软件复用 驱动程序 计算机模拟 程序设计方法学 数据和信息系统 数据结构 数据存储表示 数据加密 数据压缩 编码与信息论 文件 信息系统 管理信息系统 决策支持系统 - 专家系统 数据库 信息存储和数据存取 信息交互与表达 主要的研究领域 形式化基础 逻辑学 谓词逻辑 模态逻辑 时序逻辑 描述逻辑 数学 泛代数 递归论 模型论 概率论和数理统计 逻辑代数 布尔代数 离散数学 组合数学 图论 网论 信息论 理论计算机科学 形式语言 自动机 可计算性 算法 计算复杂性 描述复杂性 编译器 程序设计理论 信息论 类型理论 指称语义 微程序 遗传算法 并行计算 计算方法学 人工智能 计算机图形学 图像处理与计算机视觉 模式识别 语音识别 文字识别 签名识别 人脸识别 指纹识别 仿真与建模 数字信号处理 文档与文本处理 计算机应用 数值计算 数值分析 定理机器证明 计算机代数 工程计算 计算机化学 计算机物理 生物信息论 计算生物学 非数值计算 工厂自动化 办公室自动化 人工智能 信息存储与检索 符号语言处理 计算机辅助科学 计算机辅助设计 计算机辅助教学 计算机辅助管理 计算机辅助软件工程 机器人学 多媒体技术 人机交互 电子商务 特定技术 测试基准 机器视觉 数据压缩 软件设计模式 数字信号处理 文件格式 信息安全 国际互联网络 超大规模集成电路设计 网络传输协议 网络处理器技术 整数运算器 浮点运算器 矩阵运算处理器 网格 计算科学史 计算机历史 软件业历史 编程思想。
5.科普小知识的内容是什么
科普小知识的内容是什么?
科普知识是一种用通俗易懂的语言,来解释种种科学现象和理论的知识文字。用以普及科学知识为目的。
科普知识涵盖了科学领域的各个方面,无论是物理、化学、生物各个学科,还是日常生活无不涉及到科普知识。由于其范围的广泛性,奠定了科普知识的重要意义和影响。科普知识的重要意义必然要求我们的科普教育必须与时俱进的与我们所提倡的素质教育同行。同步发展。使科普知识,科普教育真正意义上走进人们的生活。科普知识的意义和影响必将是深远的、长久的。
这里举两个例子:
1.为甚么星星会一闪一闪的?
我们看到星闪闪,这不是因为星星本身的光度出现变化,而是与大气的遮挡有关。
大气隔在我们与星星之间,当星光通过大气层时,会受到大气的密度和厚薄影响。大气不是绝对的透明,它的透明度会根据密度的不同而产生变化。所以我们在地面透过它来看星星,就会看到星星好像在闪动的样子了。
2. 为甚么人会打呵欠?
当我们感到疲累时,体内已产生了许多的二氧化碳。当二氧化碳过多时,必须再增加氧气来平衡体内所需。因为这些残留的二氧化碳,会影响我们身体的机能活动,这时身体便会发出保护性的反应,于是就打起呵欠来。
打呵欠是一种深呼吸动作,它会让我们比平常更多地吸进氧气和排出二气化碳,还做到消除疲劳的作用呢。
……
6.科普小知识
科学知识
1白天,鸟儿们在枝头穿梭呜叫,在蓝天下自由飞翔,到了晚上,它们和我们人一样也要休息、睡觉,恢复体力,不过它们睡觉的姿势可是各不相同的。
2冰糕冒气是因为外界空气中有不少眼睛看不见的水汽,碰到很冷的冰糕时,一遇冷就液化成雾滴包围在冰糕周围,看上去似乎是冰糕在“冒气”一样。
3向日葵的茎部含有一种奇妙的植物生长素。这种生长素非常怕光。一遇光线照射,它就会到背光的一面去,同时它还 *** 背广义面的细胞迅速繁殖,所以,背光的一面就比向光的一面生长的快,使向日葵产生了向旋光性弯曲。
4蝉的外壳(外骨骼)是坚硬的,不能随着蝉的生长而扩大,当蝉生长到一定阶段时,蝉的外骨骼限制了蝉的生长,蝉将原有的外骨骼脱去,就是蝉蜕。
5蜂先把采来的花朵甜汁吐到一个空的蜂房中,到了晚上,再把甜汁吸到自己的蜜胃里进行调制,然后再吐出来,再吞进去,如此轮番吞吞吐吐,要进行100~240次,最后才酿成香甜的蜂蜜
6我们看到星闪闪,这不是因为星星本身的光度出现变化,而是与大气的遮挡有关。大气隔在我们与星星之间,当星光通过大气层时,会受到大气的密度和厚薄影响。大气不是绝对的透明,它的透明度会根据密度的不同而产生变化。所以我们在地面透过它来看星星,就会看到星星好像在闪动的样子了。
7当我们感到疲累时,体内已产生了许多的二氧化碳。当二氧化碳过多时,必须再增加氧气来平衡体内所需。因为这些残留的二氧化碳,会影响我们身体的机能活动,这时身体便会发出保护性的反应,于是就打起呵欠来。打呵欠是一种深呼吸动作,它会让我们比平常更多地吸进氧气和排出二气化碳,还做到消除疲劳的作用呢。
8蛇的身上有很多鳞片,这是它们身上最外面的一层盔甲。鳞片不但用来保护身体,还可以是它们的「脚」。蛇向前爬行时,身体会呈S形。而每一片在S形外边的鳞片,都会翘起来,帮助蛇前进时抓住不平的路面。这些鳞片跟蛇的肌肉互相配合,并能推动身体向前爬行,所以蛇没有脚也可以走动呀!
9我们的头发中有一种叫「黑色素」的物质,黑色素愈多头发的颜色便愈黑。而黑色素少的话,头发便会发黄或变白。人类到了老年时,身体的各种机能会逐渐衰退,色素的形成亦会愈来愈少,所以头发也会渐渐变白啊
10当别人搔自己时,我们会倍感痕痒,而且不断大笑;可是,当自己搔自己的时候,我们不单不会大笑,而且更不感痕痒。基于我们的思想上已有了准备,大脑会发出一种 「不会有危险」的讯息,神经亦随之放松,所以便不会大笑起来和感到痕痒了!
11望向大海,很多时也发现海水呈现蓝、绿色。可是,当你把海水捞起时,你却只能看到它像往日的水般,透明无色。原来,海水本身与我们日常所接触到的水没有大分别,也是透明的。我们所看到的绿色,其实是海水对光吸收能力而产生出来的现象。只有绿光能被海水吸收,从而反射出来;当海水更深时,绿光也被吸收,海水看上去便成了蓝色。
12我们的皮肤表面长着汗毛,而每一个毛孔下都有一条竖毛肌,当受到神经 *** (例如:生气、害怕、受凉等情况)后,身体的温度会下降,而竖毛肌便会收缩而令毛发竖立起来,形成鸡皮疙瘩。除了有着保温的作用外,这个生理系统亦可使动物的体型看起来比实际更大,从而吓退敌人
7.科学小知识大全
科学小知识 冰糕为什么会冒气? 冰糕冒气是因为外界空气中有不少眼睛看不见的水汽,碰到很冷的冰糕时,一遇冷就液化成雾滴包围在冰糕周围,看上去似乎是冰糕在“冒气”一样。
向日葵为什么总是向着太阳? 向日葵的茎部含有一种奇妙的植物生长素。这种生长素非常怕光。
一遇光线照射,它就会到背光的一面去,同时它还 *** 背光一面的细胞迅速繁殖,所以,背光的一面就比向光的一面生长的快,使向日葵产生了向光性弯曲。 蝉为什么会蜕皮? 蝉的外壳(外骨骼)是坚硬的,不能随着蝉的生长而扩大,当蝉生长到一定阶段时,蝉的外骨骼限制了蝉的生长,蝉将原有的外骨骼脱去,就是蝉蜕。
蜜蜂怎样酿蜜? 蜂先把采来的花朵甜汁吐到一个空的蜂房中,到了晚上,再把甜汁吸到自己的蜜胃里进行调制,然后再吐出来,再吞进去,如此轮番吞吞吐吐,要进行100~240次,最后才酿成香甜的蜂蜜。
❺ 编程是什么
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
(5)编程是什么叫网格扩展阅读:
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。
然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
❻ 网格是指什么意思
网格指的是网格化社会服务管理模式,网格内有网格管理员、网格助理员、网格督导员、网格警员、网格党支部书记和网格司法力量和网格消防员七类人员,分工承担网格内的社会服务和社会管理各项事务。
网格员就是驻区的社区民警。只不过公安分局根据区域内的人员情况、社会治安复杂程度将区域划分成网格。平均每个社区划分成3到5个网格。
网格内有网格管理员、网格助理员、网格督导员、网格警员、网格党支部书记和网格司法力量六类人员,分工承担网格内的社会服务和社会管理各项事务。民警主要承担治安秩序维护、矛盾纠纷化解、实有人口管理、便民利民服务等任务。
网格管理员工作职责:
一、严格遵守各项网格管理规章制度,认真履行网格管理各项职责。
二、对网格管理实行专职负责,为网格管理第一责任人。
三、要发挥牵头指挥作用,虚心接受网格督导员的监督和指导,带领网格协管员开展网格管理各项工作。
四、对网格协管员采集、排查的各类信息进行签名茄清审定并上报信息系统。
五、积极主动做好不和谐因素的排查化解工作,力争将一般性的不和谐因素自行化解在网格内。
六、对网格自行化解的进行提交结案操作,对街道科室部门、提交的结案信息进行认真及时的核实确认。
七、积极配合、全力协助街道科室部门、调处各类矛盾纠纷,整治各类问题隐患,确保网格内突出的不和谐因素得到及时有效的化解。
八、会同网格协管员和网格督导员认真研究分析网格内的各种不和谐因素产生的原因,及时采取有效的贺衫稳控措施。
九、通过工作例会向分包领导和社居村、委主任汇报网格工作开展的情况及存在的问题,并提出改进意见。
十、完成分包领导和社居村、委主任交办的颤拍前其它工作任务。
❼ 编程是什么
编程 是个动词,编程==写代码,写代码为了什么? 为了让计算机干你想要干的事情,比如,马化腾想跟别人聊天,于是写了个聊天软件,这个软件就是一堆代码的集合,这些代码是什么?这些代码是计算机能理解的语言。
那计算能理解的语言是什么呢? 之前,我们已经了解到,它只能理解2进制,0101010…,你总不能人肉输一堆二进制给计算机(虽然最原始的计算机就是这么干的)让它工作吧,这样开发速度太慢了。所以最好的办法就是人输入简单的指令,计算机能把指令转成二进制进行执行,举例如下:
假如 程序员想让计算机 播放一首 歌曲 , 只需要输入指令 ,
open "老男孩.mp3"
play
计算机的CPU接收到这样的指令后,会把它转成一堆 只有cpu可以理解的指令,然后再将指令变成各种对应的如下类似二进制
[ op | rs | rt | address/immediate]
353868decimal
binary
最终cpu 去调用你的硬盘上这首歌,通过音箱播放。
上面cpu那段指令太难理解了,如果让你天天写这样的代码,大家非得自杀不可。还好,伟大的计算机先驱们,开发了各种编程语言,让我们只需要通过写一些简单的规则,就能操作计算机工作啦。
有哪些编程语言?
编程语言总体分以为机器语言、汇编语言、高级语言,如下
机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
尽管机器语言好像是很复杂的,然而它是有规律的。
存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。
以下是一些示例:
指令部份的示例
0000 代表 加载(LOAD)
0001 代表 存储(STORE)
…
暂存器部份的示例
0000 代表暂存器 A
0001 代表暂存器 B
…
存储器部份的示例
000000000000 代表地址为 0 的存储器
000000000001 代表地址为 1 的存储器
000000010000 代表地址为 16 的存储器
100000000000 代表地址为 2^11 的存储器
集成示例
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
汇编的hello world,打印一句hello world, 需要写十多行,也是醉了。
; hello.asm
section .data ;数据段声明
msg db "Hello, world!",0xA;要输出的字符串
len equ $ - msg ;字串长度
section .text ;代码段声明
global _start ;指定入口函数
_start:;在屏幕上显示一个字符串
mov edx, len ;参数三:字符串长度
mov ecx, msg ;参数二:要显示的字符串
mov ebx,1;参数一:文件描述符(stdout)
mov eax,4;系统调用号(sys_write)
int0x80;调用内核功能
;退出程序
mov ebx,0;参数一:退出代码
mov eax,1;系统调用号(sys_exit)
int0x80;调用内核功能
高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。
总结
机器语言
优点是最底层,速度最快,缺点是最复杂,开发效率最低
汇编语言
优点是比较底层,速度最快,缺点是复杂,开发效率最低
高级语言
编译型语言执行速度快,不依赖语言环境运行,跨平台差
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
主流编程语言介绍(10分钟)
世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了。有个权威的语言排名网站,可以看到主流的编程语言是哪些
TIOBE发布编程语言排行榜已经快6年的时光了,在这六年中我们见证了不少语言的起起落落。虽然国内有很多大牛说,关注这语言的排名没有多少意义。但仍可以看出那些语言日渐兴盛,哪些日渐没落,我们从Objective-C的上升过程中,还是能看到移动设备端,特别是iOS应用开发方面的黄金潜力。
下面介绍下几个主流的编程语言:
C语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C++:
C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
JAVA:
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域
Ruby:
Ruby 是开源的,在Web 上免费提供,但需要一个许可证。[4]
Ruby 是一种通用的、解释的编程语言。
Ruby 是一种真正的面向对象编程语言。
Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。
Ruby 可以用来编写通用网关接口(CGI)脚本。
Ruby 可以被嵌入到超文本标记语言(HTML)。
Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby
GO:
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
由其擅长并发编程
Python:
Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。
❽ 什么是网格技术
网格是把整个因特网整合成一台巨大的超级计算机闹神,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。当然,网液穗亏格并不一定非要这么大,我们也可以构造地区性的网格,如中关村科技园区网格、企事业内部网格、局域网网格、甚至家庭网格和个人网格。事实上,网格的根本特征是资源共享而不是它的规模。它应用到不同领域又叫计算网格、信息网格、知识网格、服务网格等。
由于网格是一种新技术,因此具有新技术的两个特征:其一,不同的群体用不同的名词来称谓它;其二,网格的精确含义和内容还没有固定,而是在不断变化。因此,我们不应该空谈和争论什么是网格,什么不是网格,而应该集中精力解决关键问题。
最“正统”的网格研究来源于美国联邦政府过去10年来资助的高性能计算项目。这类研究使用的名词就是“网格”(Grid)或“计算网格”。早期还使用过另一个名词—“元计算”(Metacomputing)。这类研究的目标是将跨地域的多台高性能计算机、大型数据库、贵重科研设备(电子显微镜、雷达阵列、粒子加速器、天文望远镜等)、通信设备、可视化设备和各种传感器整合成一个巨大的超级计算机系统,支持科学计算和科学研究。这方面的代表性研究工作包括美族搭国国家科学基金会资助的NPACI、“国家技术网格”(NTG)、分布万亿次级计算设施(DTF)、美国宇航总署的IDG、美国能源部的ASCI Grid以及欧盟的Data Grid等(有关这些网格研究的信息可从“全球网格论坛” www.gridforum.org网站查阅)。
也有人把网格看成是未来的互联网技术。国外媒体常用“下一代Internet”、“Internet2”、“下一代Web”等词语来称呼与网格相关的技术。要注意的是,“下一代Internet”(NGI)和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交,但研究内容和重点有很大不同。中国科学院计算所所长李国杰院士认为,网格实际上是继传统因特网、Web之后的第三个大浪潮,可以称之为第三代因特网。简单地讲,传统因特网实现了计算机硬件的连通,Web实现了网页的连通,而网格试图实现互联网上所有资源的全面连通,包括计算资源、存储资源、通信资源、软件资源、信息资源、知识资源等。
还有一类研究的侧重点是智能信息处理,它与网格研究的共同点是如何消除信息孤岛和知识孤岛,实现信息资源和知识资源的智能共享。这方面研究常见的名词包括语义网(Semantic Web)、知识管理(Knowledge Management)、知识本体(Ontology)、智能主体(Agents)、信息网格、知识网格、一体化智能信息平台等。
企业界用的名字就更多了,包括内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算、Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。这些名词所代表的技术有一个共同点,即将因特网上的资源整合成一台超级服务器,有效地提供内容服务、计算服务、存储服务、交易服务等。另一个共同点是这些技术会尽量利用现有的Internet/Web技术,以便早出产品。当然这些技术也各有小的区别。比如,P2P强调打破Client/Server或Browser/Server的主从模式,用对等模式(或无服务器模式)实现超级服务器的功能。RTEC则强调对企业级在线事务处理的实时支持。
在企业界对网格的相关研究开发工作中,最重要的就是Web服务。不仅那些正在创业的小公司,而且像IBM这样的大牌公司也在加紧开发Web服务产品。目前,这些公司已经就几个底层标准协议达成了共识,包括XML、SOAP、WSDL、UDDI等。Web服务不是纯研究,而主要是产品开发,因此可望在2002~2003年在市场上开始普及。
网格的类型
现状http://www.e.cn/20031030/3093557.shtml
❾ 什么是“网格”
在信息学中,网格是一种用于集成或共享地理上分布的各种资源(包括计算机系统、存储系统、通信系统、文件、数据库、程序等),使之成为有机的整体,共同完成各种所需任务的机制。
网格是一种新兴的技术,正处在不断发展和变化当中。学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容定位。比如国外媒体常用“下一代互联网”、 “Internet2 ”、“下一代Web”等来称呼网格相关技术。
网格是利用互联网把地理上广泛分布的各种资源(包括计算资源、存储资源、带宽资源、软件资源、数据资源、信息资源、知识资源等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等),虚拟组织最终实现在这个虚拟环境下进行资源共享和协同工作,彻底消除资源“孤岛”,最充分的实现信息共享。
(9)编程是什么叫网格扩展阅读:
网格技术的应用:
1、生物医学:
网格可提供药品开发人员所需的计算能力,用以研究药物和蛋白质分子的形态与运动。
2、工程:
波音、福特、bmw公司都在尝试用网格计算进行复杂的仿真与设计。
3、数据搜集/分析:
制造、石油加工、货物运输、甚至零售企业都要维护昂贵的设备,时常会出现问题,造成不好的结果。同无线传感器一样,网格能够存储和处理所有交易。
4、娱乐产业:界面设计
网格作为一个集成的计算与资源环境,能够吸收各种计算资源,将它们转化成一种随处可得的、可靠的、标准的且相对经济的计算能力,其吸收的计算资源包括各种类型的计算机、网络通信能力、数据资料、仪器设备甚至有操作能力的人等各种相关资源等。
❿ 网格的结构体系
在介绍网格的特征之前,我们首先要解决一个重要的问题:网格是不是分布式系统?这个问题之所以必须回答,因为人们常常会问另一个相关的问题:为什么我们需要网格?现在已经有很多系统(比如海关报关系统、飞机订票系统)实现了资源共享与协同工作。这些系统与网格有什么区别?
对这个问题的简要回答是:网格是一种分布式系统,但网格不同于传统的分布信历式系统。IBMGlobal Service与EDS是在这个分布式领域最著名的公司。构建分布式系统有三种方法:即传统方法(我们称之为EDS方法)、分布自律系统(Autonomous Decentralized Systems, ADS)方法,网格(grid)方法。ADS通常用于工业控制系统中。网格方法与传统方法的区别见下表:
特征 传统分布式系统 网格
开放性 需求和技术有一定确定性、封闭性 开放技术、开放系统
通用性 专门领域、专有技术 通用技术
集中性 很可能是统一规划、集中控制 一般而言是自然进化、非集中控制
使用模式 常常是终端模式或C/S模式 服务模式为主
标准化 领域标准或行业标准 通用标准(+行业标准)
平台性 应用解决方案 平台或基础设施
通过以上对比,网格具有以下四点优势:
(1)资源共享,消除资源孤岛:网格能够提供资源共享,它能消除信息孤岛、实现应用程序的互连互通。网格与计算机网络不同,计算机网络实现的是一种硬件的连通,而网格能实现应用层面的连通。
(2)协同工作:网格第二个特点是协同工作,很多网格结点可以共同处理一个项目。
(3)通用开放标准,非集中控制,非平凡服务质量:这是Ian Foster最新提出的网格检验标准。网格是基于国际的开放技术标准,这跟以前很多行业、部门或者公司推出的软件产品不一样。
(4)动态功能,高度可扩展性:网格可以提供动态的服务,能够适应变化。同时网格并非限制性的,它实现了高度的可扩展性。 网格之所以能有以上所说的种种优势特征,是由网格的体系结构赋予它的。网格体系结构的主要功能是划分系统基本组件,指定组件的目的与功能,刻画组件之间的相互作用,整合各部分组件。科研工作者已经提出并实现了若干种合理的网格体系结构。下面介绍影响比较广泛的两个网格体系结构:网格计算协议体系结构(Grid Protocol Architecture,GPA)和计算经济网格体系结构(GRACE)模型。
OGSA(Open Grid Services Architecture)被称为是下一代的网格体系结构,它是在原来“五层沙漏结吵饥构”的基础上,结合最新的Web Service 技术提出来的。OGSA包括两大关键技术即网格技术和Web Service 技术。
随着网格计算研究的深入,人们越来越发现网格体系结构的重要。网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。
OGSA最突出的思想就是以“服务”为中心。在OGSA框架中,将一切都抽象为服务,包括计算机、程序、数据、仪器设备等。这种观念,有利于通过统一的标准接口来管理和使用网格。Web Service提供了一种基于服务的框架结构,但是,Web Service 面对的一般都是永久服务,而在网格应用环境中,大量的是临时性的短暂服务,比如一个计算任务的执行等。考虑到网格环境的具体特点,OGSA 在原来Web Service 服务概念的基础上,提出了“网格服务(Grid Service)”的概念,用于解决服务发现、动态服务创建、服务生命周期管理等与临时服务有关的问题。
基于网格服务的概念,OGSA 将整个网格看作是“网格服务”的集合,但是这个集合不是一成不变的升坦返,是可以扩展的,这反映了网格的动态特性。网格服务通过定义接口来完成不同的功能,服务数据是关于网格服务实例的信息,因此网格服务可以简单地表示为“网格服务=接口/行为+服务数据”。
在当下,网格服务提供的接口还比较有限,OGSA 还在不断的完善过程之中,下一步将考虑扩充管理、安全等等方面的内容。 Ian Foster于2001年提出了网格计算协议体系结构,认为网格建设的核心是标准化的协议与服务,并与Internet网络协议进行类比(如图1)。该结构主要包括以下五个层次:
构造层(Fabric):控制局部的资源。由物理或逻辑实体组成,目的是为上层提供共享的资源。常用的物理资源包括计算资源、存储系统、目录、网络资源等;逻辑资源包括分布式文件系统、分布计算池、计算机群等。构造层组件的功能受高层需求影响,基本功能包括资源查询和资源管理的QoS保证。
连接层(Connectivity):支持便利安全的通信。该层定义了网格中安全通信与认证授权控制的核心协议。资源间的数据交换和授权认证、安全控制都在这一层控制实现。该层组件提供单点登录、代理委托、同本地安全策略的整合和基于用户的信任策略等功能。
资源层(Resource):共享单一资源。该层建立在连接层的通信和认证协议之上,满足安全会话、资源初始化、资源运行状况监测、资源使用状况统计等需求,通过调用构造层函数来访问和控制局部资源。
汇集层(Collective):协调各种资源。该层将资源层提交的受控资源汇集在一起,供虚拟组织的应用程序共享和调用。该层组件可以实现各种共享行为,包括目录服务、资源协同、资源监测诊断、数据复制、负荷控制、账户管理等功能。
应用层(Application):为网格上用户的应用程序层。应用层是在虚拟组织环境中存在的。应用程序通过各层的应用程序编程接口(API)调用相应的服务,再通过服务调动网格上的资源来完成任务。为便于网格应用程序的开发,需要构建支持网格计算的大型函数库。 现在国内国外运用得最多的可能是在一些大型院校的计算网格(实现计算资源的共享。 什么是计算资源: 简单来说就是计算能力,CPU。 计算资源共享就是CPU计算的共享)。人们把一个集群(cluster, 也就是常说的机房,通常有几十台操作系统为Linux的计算机)的计算机连成一个局域型网格。这样就好像把这几十台电脑连成了一台超级计算机,计算能力当然大大提高了。这种局域计算网格主要运用于一些科研的研究。比如说生物科学。当生物科学的研究员需要高性能的计算资源来帮助他们分析试验的结果时,他们就把这些分析试验的程序提交(submit)给网格,网格通过计算再把结果返回给这些研究员。计算结果可能是一些图像(rendering)也可能是一些数据。这些计算如果在单一PC(Personal computer, 个人计算机)上运行的话,往往会花费几个月的时间,然而在网格中运行一,两天也就完成了。这就是网格技术最直观的优点之一。当然有一些大型主机(super-mainframe)也有很强的计算能力(比如常说的IBM deepblue,打败人类国际象棋大师Kasparov那位),但是这种主机太昂贵,而且配置(deploy)往往不方便,是名副其实的重量级(heavyweight)计算。1996年初,美国数学家和程序设计师乔治· 沃特曼编制了一个梅森素数计算程序,并把它放在网页上供数学家和数学爱好者免费使用,这就是著名的“因特网梅森素数大搜索”(GIMPS)项目。现在只要人们去GIMPS的主页下载那个免费程序,就可以通过计算网格来搜寻新的梅森素数。SETI@Home,一个分布式计算的项目,通过互联网络上的计算机搜索地球外智慧讯息,网格在分布式计算的成功运用。)的网站指出,世界上最强大的计算机IBM 的 ASCI White,可以实现每秒12万亿次的浮点运算,但是花费了1亿千万美元;然而SETI@HOME只用了50万美元却实现了每秒15万亿次浮点运算。
网格另外一个显著的运用可能就是虚拟组织(Virtual Organisations)。这种虚拟组织往往是针对与某一个特定的项目,或者是某一类特定研究人员。在这里面可以实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。比如说中国2008年奥运会开幕式研究组就可以运用网格组成一个虚拟组织。在这个虚拟组织里,任何成员不管在哪个地方都可以有权访问组织的共享资源(如 开幕式场地图纸,开幕式资金,开幕式节目单);而且可以和另一地方的虚拟组织成员进行交流。这个虚拟组织就像把所有奥运会开幕式的资源,信息,以及人员集中到了一个虚拟的空间,让人们集中精力研讨开幕式项目的问题,而不必考虑其他的问题。据个实例,由英国利兹大学,牛津大学,约克大学和谢菲尔德大学合作的DAME项目就是致力于研究和运用虚拟组织。DAME架构在这四个大学合建的白玫瑰网格White Rose Computational Grid (WRCG)上,运用于对飞机故障的快速检测和维修。