计算机软硬件组成
——副标题
作者
关键词:硬件;计算机;计算机组成
1 引言
计算机硬件包括计算机的物理部件,例如机箱、中央处理器 (CPU)、随机存取存储器 (RAM)、显示器、鼠标、键盘、计算机数据存储、显卡、声卡、扬声器和主板。相比之下,软件是可以由硬件存储和运行的指令集。硬件之所以被称为“硬”,是因为它在变化方面是“硬的”或刚性的,而软件是“软”的,因为它很容易改变。硬件通常由软件指示执行任何命令或指令。硬件和软件的组合形成了一个可用的计算系统,尽管其他系统仅存在硬件。
所有现代计算机的模板都是冯·诺依曼架构,匈牙利数学家约翰·冯·诺依曼在1945 年的一篇论文中对此进行了详细说明。这描述了一种电子数字计算机的设计架构,其中包含一个由算术逻辑单元和处理器寄存器组成的处理单元,一个包含指令寄存器和程序计数器的控制单元,一个存储数据和指令的存储器,外部大容量存储器,以及输入和输出机制。 该术语的含义已经演变为存储程序计算机,其中指令获取和数据操作不能同时发生,因为它们共享公共总线。这被称为冯诺依曼瓶颈,通常会限制系统的性能。计算机的分类包括个人电脑、工作站、微型电脑、大型机、超级电脑等[范冰冰李晨缠绵两晚1]。
2 计算机硬件的组成
计算机机箱包裹着系统的大部分组件。它为诸如主板、磁盘驱动器和电源等内部元件提供机械支持和保护,并控制和引导冷却空气在内部元件上的流动。机箱也是控制计算机辐射的电磁干扰的系统的一部分,并保护内部部件免受静电放电的影响。大型塔式机箱为多个磁盘驱动器或其他外围设备提供空间,通常站在地板上,而台式机箱提供的扩展空间较小。一体化风格的设计包括内置在同一机箱内的视频显示器。便携式计算机和笔记本电脑需要为设备提供冲击保护的机箱。爱好者可以用彩灯、油漆或其他功能来装饰机箱,这种活动称为机箱改装。
在使用计算机硬件时,升级意味着向计算机添加新的或额外的硬件,以提高其性能,增加其容量,或增加新功能。例如,用户可以进行硬件升级,用更快的硬盘或固态硬盘(SSD)来取代硬盘,以获得性能上的提升[2]。用户还可以安装更多的随机存取存储器(RAM),以便计算机可以存储更多的临时数据,或以更快的速度检索这些数据。用户可以添加一个USB 3.0扩展卡,以充分使用USB 3.0设备,或者可以升级图形处理单元(GPU),以获得更干净、更先进的图形,或更多的显示器。进行这样的硬件升级对于老旧的计算机可能是必要的,以满足新的,或更新的程序的系统要求[3]。
3 系统软硬件的应用
软件是一组计算机程序和相关的文件和数据。这与硬件相反,系统是由硬件构建的,它实际执行工作。在最低的编程水平上,可执行代码由单个处理器--通常是中央处理单元(CPU)或图形处理单元(GPU)支持的机器语言指令组成。机器语言由标志着处理器指令的二进制数值组组成,这些指令将计算机的状态从先前的状态中改变。例如,一条指令可能会改变存储在计算机中某一特定存储位置的值--这种效果是用户无法直接观察到的。一条指令也可以调用许多输入或输出操作中的一个,例如,在计算机屏幕上显示一些文本;
引起状态变化,这些变化对用户来说应该是可见的。处理器按照提供的顺序执行指令,除非它被指示 "跳转"到一个不同的指令,或者被操作系统打断。截至2015年,大多数个人电脑、智能手机设备和服务器的处理器都有多个执行单元或多个处理器一起进行计算,计算已成为比过去更多的并发活动[4]。
大多数软件都是用高级编程语言编写的。它们对程序员来说更容易、更有效,因为它们比机器语言更接近自然语言。高级语言通过编译器或解释器或两者的结合被翻译成机器语言。软件也可以用低级汇编语言编写,它与计算机的机器语言指令有很强的对应关系,用汇编器翻译成机器语言。
使用现代通用计算机(相对于嵌入式系统、模拟计算机和超级计算机而言)的人通常会看到有三层软件在执行各种任务:平台、应用软件和用户软件[5]。
平台软件:平台软件包括固件、设备驱动程序、操作系统,通常还有一个图形用户界面,总共允许用户与计算机及其外围设备(相关设备)互动。平台软件通常与计算机捆绑在一起。在个人电脑上,人们通常有能力改变平台软件。
应用软件:应用软件是大多数人提到软件时想到的东西。典型的例子包括办公套件和视频游戏。应用软件通常与计算机硬件分开购买。有时应用软件与计算机捆绑在一起,但这并不改变它们作为独立的应用程序运行的事实。应用程序通常是独立于操作系统的程序,尽管它们往往是为特定平台量身定做的。大多数用户认为编译器、数据库和其他 "系统软件 "都是应用程序[6]。
用户编写的软件:终端用户开发为系统量身定做,以满足用户的特定需求。用户软件包括电子表格模板和文字处理器模板。甚至过滤器也是一种用户软件。用户自己创建这种软件,但往往忽略了它的重要性。根据用户编写的软件被整合到默认的应用程序包中的能力,许多用户可能不知道原始包和同事添加的东西之间的区别[7]。
4 编程语言类型
4.1面向过程编程语言
过程编程语言用于执行导致结果的语句序列。通常,这种类型的编程语言使用多个变量、繁重的循环和其他元素,这将它们与函数式编程语言区分开来。过程语言的函数可以控制
变量,而不是函数的返回值。例如,打印信息。
4.2函数式编程语言
函数式编程语言通常使用存储的数据,经常避免循环以支持递归函数。函数式编程的主要关注点是函数的返回值,副作用和不同表明强烈不鼓励存储状态。例如,在一个非常纯粹有用的语言中,如果一个函数被命名,那么该函数应该不会修改或执行任何o/p。但是,它可能会构建算法调用并更改这些调用的参数。函数式语言通常更容易构建,更容易解决抽象问题,但是,它们甚至会“离机器更远”,它们的编程模型很难准确地知道,但是代码被解码成机器语言(它们是通常对系统编程有问题)谢娜结婚刘烨[7]。
4.3 面向对象编程语言
这种编程语言将世界视为一组具有内部数据和外部访问部分数据的对象。这种编程语言的目的是通过将故障分离为提供可用于解决特定问题的服务的对象集合来考虑故障。面向对象编程语言的主要原则之一是封装对象所需的一切都必须在对象内部[8]。这种语言还强调通过继承的可重用性和传播当前实现的能力,而无需通过使用多态性来更改大量代码。
高以翔结婚了没4.4 脚本编程语言
这些编程语言通常是过程性的,可能包含面向对象的语言元素,但它们属于自己的类别,因为它们通常不是支持大型系统开发的成熟编程语言。例如,它们可能没有编译时类型检查。通常,这些语言需要很小的语法才能开始。
4.5 逻辑编程语言
这些类型的语言让程序员可以做出声明性陈述,然后让机器推理这些陈述的后果。从某种意义上说,这种语言并没有告诉计算机如何做某事,而是对它必须考虑做的事情施加限制[9]。
将这些组称为“语言类型”确实有点令人困惑。用C语言以面向对象的风格进行编程很容易。事实上,大多数语言都包含来自不同领域的思想和特征,这只会有助于增加这些类型语言的实用性。然而,大多数编程语言并不是在所有编程风格中都是最好的[10]。
[1]黄涛. 面向城市轨道交通的安全计算机设计[D].浙江大学,2011.
[2].电子计算机系统及原理介绍[J].医学情报通讯,1985(01):12-33.
[3]赵一凡,孙树朴.MCS-51单片微型计算机原理及应用[J].煤矿自动化,1989(01):43-46.
辩论会流程[4]李俊.C语言中计算机原理的应用[J].计算机光盘软件与应用,2012(10):99+101.
[5]黄学祥.“微型计算机原理及应用”辅导材料——接口技术[J].江苏机械,1987(04):42-46.
[刘思彤老公6]薛华成.INTEL8080微处理机原理及应用(上)——“电子计算机原理与应用”讲座之五[J].冶金自动化,1979(05):29-35.
[7]常蕊.计算机原理与故障处理的关系探讨[J].计算机产品与流通,2019(08):8.
[8]曼纽尔·布卢姆.走向有意识的AI 受认知神经智能启发的计算机架构[J].检察风云,2021(06):82-83.
[9]于燕波,崔大伟.先进的通信计算机架构ATCA及应用研究[J].电子技术与软件工程,2017(01):35-36.
[10]韩伟,白晓颖,谢建春.航空航天嵌入式计算机体系架构评估模型[J].计算机科学,2015,42(05):10-13+18.
发布评论