Week 1 计算机组成

I. 引

Introduction

    在学习计算机技术之前,了解计算机的组成是非常必要的。这不仅可以让你对硬件有一个大概的了解,而且会让你将来对基于硬件运行的软件有一个更为透彻的理解。只有理解了计算机是如何协调它的部件来工作的才方能理解人们为何这样设计操作系统和程序。

I. 计算机部件

The Essential Components of a Modern PC

    现代计算机都是遵循冯诺依曼体系进行架构的。它由五大部分组成:运算器+控制器+储存器+输入设备+输出设备

    计算机也叫电脑。电脑这个名字是非常贴切的,因为计算机和人脑的工作方式非常相似。我们想象计算机的时候不妨想象一下一个人的大脑。研究表明,想象的画面越是夸张花哨,记忆得越牢靠。试着想象一个非常富有科技感的全息大脑。想象这个大脑正在高速运转。五颜六色的霓虹穿梭于突触之间,那是庞大的数据流在传输。

u=1596299780,1182363738&fm=21&gp=0.jpg

Figure 1

    大部分的计算机组件都安置在主板(Motherboard)上。主板负责接收来自电源(Power)的电流并按需分配给各个配件。主板上还安置了大部分总线(Bus)。总线就像无数的神经突触,将各个部件联系在一起,使它们能进行信息的交换。如果没有了主板,所有的部件之间的连接所需要的线的数量难以想象,会把组装计算机的人逼疯的。主板的存在大大方便了这一点。输入设备(Input)通过主板来接入总线以让我们于计算机交互。如果没有了输入设备,我们便无法使用计算机。如此它便和板砖无二。

    我们的大脑接收外界的信息并对其进行处理。计算机对应的部件叫做CPU(全称为:Central Processing Unit,即中央处理单元)。CPU是镶嵌在主板上的一块芯片。CPU上有许多针脚。每个针脚负责一个简单的运算,比如说加法,取模等等。CPU除了具有处理信息的能力,它还承担了控制器这个角色。这个我们过会儿再讲。

    处理好的信息需要一个地方来存储。人脑中的海马体便是负责短期记忆的。计算机中的内存(RAM,全称为:Random Access Memory)也担当了一样的角色。CPU通过总线将数据存储在内存中。内存分为很多不同的区间,不同区间放着不同的数据。如何才能正确地提取数据并把处理好的数据存放在一个空白的区间呢?CPU的控制器部分就是负责这个功能的,以此来协调计算机的工作。内存的读取和写入速度都非常快,但容量相当有限,而且内存一旦断电就会永久失去所有数据。为了长期储存数据,我们设计了硬盘(Hard Drive)。相对于内存,硬盘的速度比较慢,但是它的容量非常大。为什么我们需要内存和硬盘两个部件而不是只用内存或只用硬盘呢?只用内存的话,速度会非常快,但是一旦断电数据则会全部丢失,非常不现实。新型的NVDIMM内存不会出现断电丢失数据的情况,但是价格相当昂贵。不说NVDIMM内存,普通内存的价格相对于硬盘就非常昂贵。只用硬盘的话,平时运行的时候速度会非常缓慢。所以计算机采取两者兼用的策略。

    GPU(全称:Gprahic Processing Unit, 即图像处理单元)就是我们常说的显卡。我们大脑接收外界的数据之后在脑内构建图像,即我们平时所见的世界。在计算机中,CPU将需要GPU处理的数据通过总线传输给GPU。GPU将数据进行处理并转换成模拟信号传输给显示器(Moniter),最后显示出我们平时所见的图像。

II. 操作系统

Operating System

    不同厂商生产的计算机部件规格不同。程序员面对某一组计算机硬件编写的程序很可能不能在另外一台不同配置的计算机上运行。为了解决这个问题,我们需要通用软件,即可以无视硬件不同运行的软件。操作系统(Operating System,简称OS)便是这样一种软件。操作系统统一了计算机的规格。不管你的CPU是AMD的还是Intel的,操作系统都将其视为提供计算能力的工具。无论你的内存是512MB还是2GB,32位系统默认你拥有4GB内存,64位系统默认你拥有4G个4G内存(天文数字)。规格的统一极大地方便了程序员的工作,所以我们说程序员编程都是面向操作系统编程而不是面向硬件编程。这个统一的规格便是一台虚拟机(Virtual Machine)。世界上有很多不同的操作系统。程序员使用的都是高级语言,比如说C,C++,Java等等。这些语言在不同的操作系统上都可以通用,但是一旦程序被编译了,那程序只能在这个操作系统上运行了,比如说Windows系统编译为的exe格式,Mac系统的dmg格式等等。

    CPU只有一块,但是我们的操作系统平时都可以同时运行数十个不同的进程。这是通过操作系统实现的。操作系统将使用CPU的时间进行切割,以5ms为一个区间,逐个执行进程。5ms之后,无论现在的任务是否完成,立刻进行下一个任务。因为CPU的速度很快,所以我们感觉这些进程是同时运行的。其实CPU每次只能执行一个功能。

    以上。

III. 引用

Reference

  1. http://img2.imgtn.bdimg.com/it/u=1596299780,1182363738&fm=21&gp=0.jpg

原创文章,作者:mercerchen,如若转载,请注明出处:http://www.178linux.com/17954

(0)
mercerchenmercerchen
上一篇 2016-06-10
下一篇 2016-06-12

相关推荐

  • 博客作业网络班22期+第6周(9.12-9.18)

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost /]# cp /etc/rc.d/rc.sysinit /tmp[root@localhost /]# sed -i 's/\…

    Linux干货 2016-09-19
  • linux文件的时间

    1,linux文件有哪些时间属性     access time:atime 访问时间:即查看访问文件的时间     modify time:mtime 修改时间:修改文件内容的时间     change time:ctime 改变时间:修…

    Linux干货 2016-06-09
  • Linux系统终端类型

    引言 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。在早期计算机系统中,由于计算机主机昂贵,因此一个主机一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成,在个人计算机时代,个人计算机可以运行称为终端仿真器的程序来模仿一个终端的工作。 &…

    Linux干货 2016-10-19
  • N25-第六周作业

    第6周作业 — 请详细总结vim编辑器的使用并完成以下练习题 vim是模式化的全屏文本编辑器。vim分为三种模式:分别是编辑模式;输入模式;末行模式; 打开文件的方式有:vim +# FILE打开文件FILE并把光标定位到#行的行首;vim +/PATTERN FILE打开文件并让光标处于第一个被PATTERN匹配到的行的行首。(支持正则表达式)…

    Linux干货 2017-02-22
  • MHA

    1.关于MHA MHA是一款开源的mysql的高可用程序,它为mysql主从复制架构提供了automating master failover功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其他从节点获取额外的信息来避免不一致性的问题。MHA还提供了master节点的在线切换…

    2016-11-26