============================================================================
在我看来,学习java最重要是要理解what(这东西是什么),why(为什么要用它),where(在哪用它),how(怎么用)。
===========================================================================
一、什么是计算机
计算机对于大部分人来说,最直观的认识无非就是一台电脑。那么一台计算机是由什么组成的?从术语上来说,计算机系统是由”硬件”和”软件”两大部分组成的。
计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。通俗点从外观上来看,由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
计算机软件是看不见摸不着的,由人们事先编制好的具有各类特殊功能的程序组成。通常把这些程序存放在计算机的主存或辅存里面。软件又分为两大类:系统软件和应用软件。系统软件又称为系统程序,主要是用来管理整个计算机系统,监控服务,使系统资源得到合理调度,高效运行,最具有代表性的就是操作系统。应用软件是根据用户根据任务需要所编制的各种程序,比如微信,QQ,钉钉等。
二、计算机系统层次结构
计算机系统层次是什么,是怎样将软件结合硬件跑起来的?早期的计算机只有机器语言(0、1代码表示的语言),开发者难度极大,并容易出错,但用户编写的机器语言程序可以直接在机器上面执行。直接执行机器语言的机器称为实际机器M1。
20世纪50年代出现了汇编语言,使用符号ADD,SUB,MUL,DIV等分别表示加减乘除等操作,是程序员不用使用复杂的二进制代码来编写程序。但机器只能识别机器语言,并不会识别汇编语言,那怎么办呢?所以就出现了带有能将汇编语言翻译成机器语言的功能的机器,即M2。M2并不是一台实际机器,它只是人们感到存在的一台具有翻译功能的机器,称为虚拟机。
接下来又出现了更高级的语言,如C、BASIC、PASCAL等,这类高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性。当然,机器M1本身是不能识别高级语言的,因此在进入机器M1之前,必须先将高级语言程序翻译成汇编语言,再将其翻译成机器语言程序。实际上在实际机器M1和虚拟机器M2之间还有一级虚拟机器,它是操作系统软件构成的。整个层次架构如下图所示。
从计算机系统的多级层次结构来看,可以将硬件研究的主要对象归结为传统机器M1和微程序M0。软件的研究对象主要是操作系统级以上的各级虚拟机。软件和硬件交界界面的划分并不是一成不变的,随着超大规模集成电路技术的不断发展,一部分软件功能将由硬件来实现,例如目前的操作系统已经实现了部分固化。
三、计算机的基本组成
上面大概描述了计算机层次结构,那么具体的计算机里面由什么组成的?计算机主要由两大类,冯·诺伊曼计算机以及现代的计算机。无论是哪两种计算机,都是由运算器、存储器、控制器、输入设备和输出设备五大部件组成。冯·诺伊曼计算机是以运算器为中心,如图3.1所示。现代计算机是以存储器为中心,如图3.2所示。
图3.1
图3.2
图中各部件的功能如下:
(1)运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存于运算器内。
(2)存储器用来存放数据和程序
(3)控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。
(4)输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
(5)输出设备用来将人们熟悉的信息形式转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
计算机的五大部件在控制器的统一指挥下,有条不紊地自动工作。由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大规模集成电路制作工艺出现后,这两个部件往往集成在同一芯片上,因此通常将它们合起来统称为中央处理器(CPU)。把输入设备与输出设备简称为I/O设备。
因此,现代计算机可认为由三大部分组成:CPU、I/O设备以及主存储器。CPU与主存储器合起来又称为主机。
参考:计算机组成原理(唐朔飞)
===========================================================================
用心查阅,有心分享,分享之际,互相指教,受益你我,何乐不为?
===========================================================================
最新评论