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 13:21
下一篇 2016-06-12 10:39

相关推荐

  • 十四.Linux博客-2016年8月22日数组

    格式说明: 操作 概念 命令 说明及举例 十四.数组 数组概念 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的集合。数组名和索引索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续) 声明数组declare -…

    Linux干货 2016-08-24
  • SELinux介绍

    SELinux介绍 SELinux: Secure Enhanced Linux, 是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Corporation)开发的 Linux的一个强制访问控制的安全模块。 2000年以GNU GPL发布, Linux内核2.6版本后集成在内核中D…

    Linux干货 2016-10-08
  • 正则表达式—正则表达式详解

    grep使用正则表达式进行匹配时,将大大提高效率和精准性,正则表达式概括分为基本正则表达式和扩展正则表达式。 一、基本正则表达式   字符匹配元字符         .        &nb…

    Linux干货 2016-07-04
  • mysql主从架构/模式

    MySQL Replication: Master/Slave Master: write/read Slaves: read 为什么? 冗余:promte(提升为主),异地灾备 人工 工具程序 负载均衡:转移一部分“读”请求; 支援安全的备份操作: … 主/从架构: 异步复制:master只需要完成自己的数据库操作即可。至于slaves是否收到…

    2016-11-27
  • linux 必须掌握的60个命令

    Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统, 就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200…

    2017-09-05
  • find查找

    find查找是生产中最常见的日志查找工具 下面看看它的用法 基本用法: find    查找路径    查找标准    查找到以后的处理动作 查找路径:需要被查找的文件所在的路径,一定是个目录,默认情况下为当前的目录 查找的标准:查找的时候用什么方式去查找 处理动作:文件查找完毕后,需要对查找出来的…

    Linux干货 2017-05-08