開啟主選單

求真百科

變更

电子计算机

增加 14,489 位元組, 4 年前
無編輯摘要
'''电子计算机'''亦稱电脑,是利用[[数字电子技术]],根据一系列指令指示並且自动执行任意算术或逻辑操作序列的设备。通用计算机因有能遵循被称为“[[计算机程序|程序]]”的一般操作集的能力而使得它们能够执行极其广泛的任务。  == 原理 == 尽管计算机技术自20世纪40年代第一部电子通用计算机诞生以来以来有了令人目眩的快速发展,但是今天计算机仍然基本上采用的是[[存储程序结构]],即[[冯•诺伊曼结构]]。这个结构实现了实用化的通用计算机。 存储程序结构将一部计算机描述成四个主要部分:[[算术逻辑单元]]、控制电路、[[存储器]]及[[I/O|输入输出设备]]。这些部件通过一组一组的排线连接(特别地,当一组线被用于多种不同意图的数据传输时又被称为[[总线]]),并且由一个時鐘来驱动(当然某些其他事件也可能驱动控制电路)。  == 输入输出设备 == 输入输出设备(I/O)是对将外部世界信息发送给计算机的设备和将处理结果返回给外部世界的设备的总称。这些返回结果可能是作为使用者能够视觉上体验的,或是作为该计算机所控制的其他设备的输入:对于一部机器人,控制计算机的输出基本上就是这部[[机器人]]本身,如做出各种行为。 第一代计算机的输入输出设备种类非常有限。通常的输入用设备是[[打孔卡|打孔卡片]]的读卡机,用来将指令和数据导入内存;而用于存储结果的输出设备则一般是磁带。随着科技的进步,输入输出设备的丰富性得到提高。以个人计算机为例:键盘和鼠标是用户向计算机直接输入信息的主要工具,而[[显示器]]、[[打印机]]、[[扩音器]]、[[耳机]]则返回处理结果。此外还有许多输入设备可以接受其他不同种类的信息,如[[数码相机]]可以输入图像。在输入输出设备中,有两类很值得注意:第一类是二级存储设备,如[[硬盘]],[[光碟]]或其他速度缓慢但拥有很高容量的设备。第二个是计算机[[网络]]访问设备,通过他们而实现的计算机间直接数据传送极大地提升了计算机的价值。今天,国际[[互联网]]成就了数以千万计的计算机彼此间传送各种类型的数据。 == 程序 == 简单说,计算机程序就是计算机执行指令的一个序列。它既可以只是几条执行某个简单任务的指令,也可能是可能要操作巨大数据量的复杂指令队列。许多计算机程序包含有百万计的指令,而其中很多指令可能被反复执行。在2005年,一部典型的[[個人電腦]]可以每秒执行大约30亿条指令。计算机通常并不会执行一些很复杂的指令来获得额外的机能,更多地它们是在按照程序员的排列来运行那些较简单但为数众多的短指令。 一般情况下,程序员们是不会直接用机器语言来为计算机写入指令的。那么做的结果只能是费时费力、效率低下而且漏洞百出。 所以,程序员一般通过“高级”一些的语言来写程序,然后再由某些特别的计算机程序,如解释器或编译器将之翻译成机器语言。 一些编程语言看起来很接近机器语言,如汇编程序,被认为是低级语言。而另一些语言,如即如抽象原则的[[Prolog]],则完全无视计算机实际运行的操作细节,可谓是高级语言。对于一项特定任务,应该根据其事务特点,程序员技能,可用工具和客户需求来选择相应的语言,其中又以客户需求最为重要(美国和中国军队的工程项目通常被要求使用[[Ada语言]])。 计算机软件是与计算机程序并不相等的另一个词汇。计算机软件一个较为包容性较强的技术术语,它包含了用于完成任务的各种程序以及所有相关材料。举例说,一个视频游戏不但只包含程序本身,也包括图片、声音以及其他创造虚拟游戏环境的数据内容。在零售市场,在一部计算机上的某个应用程序只是一个面向大量用户的软件的一个副本。这里老生常谈的例子当然还是[[微软]]的office软件组,它包括一系列互相关联的、面向一般办公需求的程序。 利用那些极其简单的机器语言指令来实现无数功能强大的应用软件意味着其编程规模注定不小。[[Windows XP]]这个[[操作系统]]程序包含的[[C++]]高级语言源代码达到了4000万行。当然这还不是最大的。如此庞大的软件规模也显示了管理在开发过程中的重要性。实际编程时,程序会被细分到每一个程序员都可以在一个可接受的时长内完成的规模。 即便如此,软件开发的过程仍然进程缓慢,不可预见且遗漏多多。应运而生的[[软件工程]]学就重点面向如何加快作业进度和提高效率与质量。 === 函数库与操作系统 === 在计算机诞生后不久,人们发现某些特定作业在许多不同的程序中都要被实施,比如说计算某些标准数学函数。出于效率考量,这些程序的标准版本就被收集到一个“库”中以供各程序调用。许多任务经常要去额外处理种类繁多的输入输出接口,这时,用于连接的库就能派上用场。 20世纪60年代,随着计算机工业化普及,计算机越来越多地被用作一个组织内不同作业的处理。很快,能够自动安排作业时续和执行的特殊软件出现了。这些既控制硬件又负责作业时序安排的软件被称为“操作系统”。一个早期操作系统的例子是[[IBM]]的OS/360。 在不断地完善中,操作系统又引入了时间共享机制——并发。这使得多个不同用户可以“同时”地使用机器执行他们自己的程序,看起来就像是每个人都有一部自己的计算机。为此,操作系统需要向每个用户提供一部“[[虚拟机]]”来分离各个不同的程序。由于需要操作系统控制的设备也在不断增加,其中之一便是硬盘。因之,操作系统又引入了文件管理和目录管理(文件夹),大大简化了这类永久储存性设备的应用。此外,操作系统也负责安全控制,确保用户只能访问那些已获得允许的文件。 当然,到目前为止操作系统发展历程中最后一个重要步骤就是为程序提供标准[[图形用户界面]]。尽管没有什么技术原因表明操作系统必须得提供这些界面,但操作系统供应商们总是希望并鼓励那些运行在其系统上的软件能够在外观和行为特征上与操作系统保持一致或相似。 除了以上这些核心功能,操作系统还封装了一系列其他常用工具。其中一些虽然对计算机管理并无重大意义,但是于用户而言很是有用。比如,[[苹果公司]]的Mac OS X就包含视频剪辑应用程序。 一些用于更小规模的计算机的操作系统可能没用如此众多的功能。早期的微型计算机由于记忆体和处理能力有限而不会提供额外功能,而嵌入式计算机则使用特定化了的操作系统或者干脆没有,它们往往通过应用程序直接代理操作系统的某些功能。 == 应用 == 起初,体积庞大而价格昂貴的数字计算机主要是用做执行科学计算,特别是军用课题。如ENIAC最早就是被用作[[火炮]]弹计算和设计[[氢弹]]时计算断面[[中子]]密度的(如今许多超级计算机仍然在模拟核试验方面发挥着巨大作用)。澳大利亚设计的首部存储程序计算机CSIR Mk I型负责对水电工程中的集水地带的降雨情形进行评估。还有一些被用于解密,比如[[英国]]的“巨像”可编程计算机。除去这些早年的科学或军工应用,计算机在其他领域的推广亦十分迅速。 从一开始,存储程序计算机就与商业问题的解决息息相关。早在[[IBM]]的第一部商用计算机诞生之前, 英国J. Lyons等就设计制造了LEO以进行[[资产管理]]或迎合其他[[商业]]用途。由于持续的体积与成本控制,计算机开始向更小型的组织内普及。加之20世纪70年代[[微处理器]]的发明,廉价计算机成为了现实。80年代,个人计算机全面流行, 电子 文档写作与印刷,计算预算和其他重复性的报表作业越来越多地开始依赖计算机。 随着计算机便宜起来,创作性的[[艺术]]工作也开始使用它们。人们利用合成器,计算机图形和[[动画]]来创作和修改声音,图像,视频。[[视频游戏]]的产业化也说明了计算机在娱乐方面也开创了新的历史。  计算机小型化以来,机械[[设备]]的控制也开始仰仗计算机的支持。其实,正是当年为了建造足够小的嵌入式计算机来控制[[阿波羅1號]]才刺激了集成电路技术的跃进。今天想要找一部不被计算机控制的有源机械设备要比找一部哪怕是部分计算机控制的设备要难得多。可能最著名的计算机控制[[设备]]要非机器人莫属,这些机器有着或多或少人类的外表和并具备人类行为的某一子集。在批量生产中,工业[[机器人]]已是寻常之物。不过,完全的拟人机器人还只是停留在[[科幻小说]]或[[实验室]]之中。 机器人技术实质上是[[人工智能]](AI人工智慧)领域中的[[物理]]表达环节。所谓[[人工智能]](AI人工智慧)是一个定义模糊的[[概念]]但是可以肯定的是这门学科试图令计算机拥有目前它们还没有但作为人类却固有的能力。数年以来,不断有许多新[[方法]]被开发出来以允许计算机做那些之前被认为只有人才能做的事情。比如读书、下棋。然而,到目前为止,在研制具有人类的一般“整体性”智能的计算机方面,进展仍十分缓慢。 === 网络、国际互联网 === 20世纪50年代以来计算机开始用作协调来自不同地方之信息的工具,美国军方的贤者系统(SAGE)就是这方面第一个大规模系统。之后“军刀”等一系列特殊用途的商业系统也不断涌现出来。 70年代后,美国各大院校的计算机工程师开始使用电信技术把他们的计算机连接起来。由于这方面的工作得到了ARPA的赞助,其计算机网络也就被称为[[ARPANET]]。此后,用于ARPA网的技术快速扩散和进化,这个网络也冲破大学和军队的范围最终形成了今天的国际互联网。网络的出现导致了对计算机属性和边界的再定义。[[太阳微系统公司]]的John Gage和Bill Joy就指出:“网络即是计算机”。计算机操作系统和应用程序纷纷向能访问诸如网内其它计算机等网络资源的方向发展。最初这些网络设备仅限于为高端科学工作者所使用,但90年代后随着[[电子邮件]]和[[万维网]]技术的扩散,以及[[以太网]]和[[ADSL]]等网络连接技术的廉价化,互联网络已变得无所不在。今日入网的计算机总数,何止以千万计;无线互联技术的普及,使得互联网在移动计算环境中亦如影随形。比如在笔记本计算机上广泛使用的[[Wi-Fi]]技术就是无线上网的代表性应用。 90年代之後,在電話數據機MODEM 技術成熟後,由窄頻的電話撥接,升級成為寬頻數據,這代表網路新時代來臨,由慢跑的速度改變而成開車的速度,也同時改變電腦使用者習慣,更大大普及網路連絡傳訊的方式,如即時通或SKYPE等等,以往只能文字傳訊提升至影音傳輸;而雲端、大數據時代造就了各種新型態行業,如網路商店、網路電商、網路拍賣、網路銷售、網路遊戲、網路設計及架設,以及越來越普遍性的雲端數據資料庫或備份庫,正在時時優化及改變現有人類的生活。 == 下一代计算机 == 自问世以来数字[[计算机]]在速度和能力上有了可观的提升,迄今仍有不少课题显得超出了当前计算机的能力所及。对于其中一部分课题,传统计算机是无论如何也不可能实现的,因为找到一个解决方法的时间还赶不上问题规模的扩展速度。因此,科学家开始将目光转向生物计算技术和[[量子]]理论来解决这一类问题。比如,人们计划用生物性的处理来解决特定问题([[DNA]]计算)。由于细胞分裂的指数级增长方式,DNA计算系统很有可能具备解决同等规模问题的能力。当然,这样一个系统直接受限于可控制的DNA总量。 量子计算机,顾名思义,利用了[[量子物理]]世界的超常特性。一旦能够造出[[量子计算机]],那么它在速度上的提升将令一般傳統计算机难以望其项背。 == 计算机学科 == 在当今世界,几乎所有专业都与计算机息息相关。但是,只有某些特定职业和学科才会深入研究计算机本身的制造、编程和使用技术,用来诠释计算机学科内不同研究领域的各个学术名词的涵义不断发生变化,同时新学科也层出不穷。 * [[计算机工程]]:是电子工程的一个分支,主要研究计算机软硬件和二者间的彼此联系。* [[计算机科学]]:是对计算机进行学术研究的传统称谓。主要研究计算技术和执行特定任务的高效算法。该门学科为我们解决确定一个问题在计算机领域内是否可解,如可解其效率如何,以及如何作成更加高效率的程序。时至今日,在计算机科学内已经衍生了许多分支,每一个分支都针对不同类别的问题进行深入研究。* [[软件工程]]:着重于研究开发高质量软件系统的方法学和实践方式,并试图压缩并预测开发成本及开发周期。* [[信息系统]]:研究计算机在一个广泛的有组织环境(商业为主)中的计算机应用。 许多学科都与其他学科相互交织。如[[地理信息系统]]专家就是利用计算机技术来管理地理信息。 全球有三个较大规模的致力于计算机科学的组织:[[英國電腦學會]];[[美国计算机协会]]([[ACM]]);[[电气电子工程师协会|美国电機电子工程师协会]]。 == 參考文獻 ==
712,257
次編輯