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

相关推荐

  • Linux命令帮助及history命令的使用

    1.Linux命令帮助的获取详解 在Linux中获取命令帮助时,内部命令和外部命令的获取方式是有区别的: 即 (1)内部命令:#help COMMAND             #man bash     (2)外部命令:<1> # COMMAND –help &nb…

    Linux干货 2016-08-05
  • N27_第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关演示。  A、copy命令        a、 单元复制:cp [OPTION]… [-T] SOURCE DEST 1、  如果dest不存在:则事先创建此文件,并复制源文件的数据流至dest中; [root@localhost /]# ls -l /tmp total 0 [r…

    2017-09-07
  • varnish 缓存服务器配置与使用

    varnish 缓存服务器配置与使用 一、cache 1.缓存为什么会存在? 一个快的设备要想和慢的设备交互,只有一种办法就是让快的设备工作在慢的设备的频段上!这样的话就浪费了,我们可以在两者之间加上一个加速器,这个加速器就叫做缓存! CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读…

    2016-11-13
  • Liunx权限的管理

    一、权限 获取某种资源的能力。对于Liunx而言,一切皆文件。所以,对于Liunx的权限定义,也就是定义文件被不同用户访问能力的过程。 权限分为三种:r、w、x 文件 r:查看文件内容 w:修改文件内容 x:可以将文件启动运行 目录 r:可以使用ls命令查看目录中的文件名 w:可以在目录中创建或删除文件(能否删除文件,取决于用户对目录的写权限 x:可以cd到…

    Linux干货 2015-04-03
  • 谷歌三大核心技术(二)Google MapReduce中文版

    摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处理模型的例子,本论文将详细描…

    Linux干货 2015-04-13
  • 新手上路,多多担待,分享linux的ls 常用选项

    ls 命令   ls[OPTION]…[FILE]….选项 和 参数可有可无。 定义:显示指定路径下的文件列表。  -a: 全拼是all,所有的意思,ls  -a能显示出所有的文件,包括隐藏的。点开头和..开头的隐藏文件都能看见。  -l:后跟文件 可以查看文件的大小,和权限(一般用户都有读的权…

    2017-05-21