编程语言
计算机语言包括机器语言、汇编语言、高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者经过计算机的硬件结构赋予计算机的操做功能,好比汇编语言(assembly language)。机器语言具备灵活、直接执行和速度快等特色。高级语言比较容易识记和理解,像C B语言等。前端
语言分类:机械语言,汇编语言,高级语言。程序员
计算机并不能直接地接受和执行用高级语言编写的
源程序,源程序在输入计算机时,经过“
翻译程序”翻译成
机器语言形式的
目标程序,计算机才能识别和执行。这种“翻译”一般有两种方式,即
编译方式和解释方式。编译方式是:事先编好一个称为
编译程序的机器语言程序,做为系统软件存放在计算机内,当用户由高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,而后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是:源程序进入计算机时,
解释程序边扫描边解释做逐句输入逐句翻译,计算机一句句执行,并不产生
目标程序。PASCAL、 FORTRAN、COBOL等高级语言执行编译方式;
BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级
程序设计语言。每一种高级(程序设计)语言,都有本身人为规定的专用符号、英文单词、语法规则和语句结构(书写格式)。高级语言与天然语言(英语)更接近,而与硬件功能相分离(完全脱离了具体的
指令系统),便于广大用户掌握和使用。高级语言的通用性强,兼容性好,便于移植。
计算机操做系统/计算机硬件/计算机软件
是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其余软件都必须在操做系统的支持下才能运行。编程
操做系统的主要功能是资源管理,
程序控制和
人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如
中央处理器,主存储器,
磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各类数据,如文件,程序库,知识库,系统软件和应用软件等。
计算机硬件(Computer hardware)
是指计算机系统中由电子,机械和光电
元件等组成的各类物理装置的总称。这些物理装置按
系统结构的要求构成一个有机总体为
计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和
数据,以及
执行程序把数据加工成能够利用的形式。从外观上来看,微机由
主机箱和
外部设备组成。主机箱内主要包括CPU、
内存、主板、
硬盘驱动器、
光盘驱动器、各类扩展卡、
链接线、电源等;外部设备包括鼠标、
键盘等。
计算机由运算器、控制器、存储器、输入设备和输出设备等五个逻辑部件组成windows
运算器
运算器由
算术逻辑单元(ALU)、
累加器、
状态寄存器、通用
寄存器组等组成。算术
逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操做,以及移位、求补等操做。计算机运行时,运算器的操做和操做种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据一般送回存储器,或暂时寄存在运算器中。与Control Unit共同组成了
CPU的核心部分。[1]
控制器
控制器(Control Unit),是整个计算机系统的控制中心,它指挥计算机各部分协调地工做,保证计算机按照预先规定的目标和步骤有条不紊地进行操做及处理。控制器从
存储器中逐条取出指令,分析每条指令规定的是什么操做以及所需数据的存放位置等,而后根据分析的结果向计算机其它部件发出控制信号,统一指挥整个计算机完成指令所规定的操做。计算机自动工做的过程,其实是自动执行程序的过程,而程序中的每条指令都是由控制器来分析执行的,它是计算机实现“程序控制”的主要设备。
一般把控制器与运算器合称为
中央处理器(Central Processing Unit,CPU)。工业生产中老是采用最早进的超大规模集成电路技术来制造中央处理器,即CPU芯片。它是计算机的核心设备。它的性能,主要是工做速度和计算精度,对机器的总体性能有全面的影响。[2]
硬件系统的核心是中央处理器(Central Processing Unit,简称 CPU)。它主要由控制器、运算器等组成,并采用大规模集成电路工艺制成的芯片,又称
微处理器芯片。
存储器
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中所有信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工做。按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存一般是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
输入设备
向计算机输入数据和信息的设备。是计算机与用户或其余设备通讯的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,
扫描仪,
光笔,手写输入板,游戏杆,
语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把
原始数据和处理这些数的程序输入到计算机中。计算机可以接收各类各样的数据,既能够是数值型的数据,也能够是各类非数值型的数据,如图形、图像、声音等均可以经过不一样类型的输入设备输入到计算机中,进行存储、处理和输出。
输出设备
输出设备(Output Device)是计算机的
终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操做等。也是把各类计算结果数据或信息以数字、
字符、图像、声音等形式表示出来。
中央处理器
中央处理器(CentralProcessingUnit,CPU),由
运算器和控制器组成,是任何计算机系统中必备的核心部件。CPU由运算器和控制器组成,分别由运算电路和控制电路实现。
运算器是对数据进行加工处理的部件,它在控制器的做用下与内存交换数据,负责进行各种基本的算术运算、逻辑运算和其余操做。在
运算器中含有暂时存放数据或结果的
寄存器。运算器由
算术逻辑单元(ArithmeticLogicUnit,ALU)、
累加器、
状态寄存器和
通用寄存器等组成。ALU是用于完成加、减、乘、除等算术运算,与、或、非等逻辑运算以及移位、求补等操做的部件。
控制器是整个计算机系统的指挥中心,负责对
指令进行分析,并根据指令的要求,有序地、有目的地向各个部件发出控制信号,使计算机的各部件协调一致地工做。控制器由指令指针寄存器、
指令寄存器、控制
逻辑电路和时钟控制电路等组成。
寄存器也是CPU的一个重要组成部分,是CPU内部的临时
存储单元。寄存器既能够存放数据和地址,又能够存放控制信息或CPU工做的
状态信息。
并行处理一般把具备多个CPU同时去执行程序的计算机系统称为
多处理机系统。依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向。
CPU品质的高低,直接决定了一个计算机系统的档次。反映CPU品质的最重要指标是主频和数据传送的位数。主频说明了CPU的工做速度,主频越高,CPU的
运算速度越快。经常使用的CPU主频有1.5GHz、2.0GHz、2.4GHz等。
CPU传送数据的位数是指计算机在同一时间能同时并行传送的二进制信息位数。常说的16位机、32位机和64位机,是指该计算机中的CPU能够同时处理16位、32位和64位的二进制数据。286机是16位机,386机是32位机,486机是32位机,Pentium机是64位机。随着型号的不断更新,微机的性能也不断提升。
计算机软件( Software,也称软件)
是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。程序必须装入机器内部才能工做,文档通常是给人看的,不必定装入机器。缓存
软件是用户与硬件之间的接口界面。用户主要是经过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具备较高的整体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。服务器
应用程序-》操做系统-》硬件cpu-》内存-》磁盘
cpu与寄存器
中央处理器(CPU,Central Processing Unit)
是一块超大规模的
集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机
指令以及处理计算机软件中的数据。
中央处理器主要包括
运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和
高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与
内部存储器(Memory)和输入/输出(I/O)设备合称为
电子计算机三大核心部件。
主要功能
处理指令
英文Processing instructions;这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工做的正确性。
执行操做
英文Perform an action;一条指令的功能每每是由计算机中的部件执行一系列的操做来实现的。CPU要根据指令的功能,产生相应的操做
控制信号,发给相应的部件,从而控制这些部件按
指令的要求进行动做。
控制时间
英文Control time;时间控制就是对各类操做实施时间上的定时。在一条
指令的执行过程当中,在什么时间作什么操做均应受到严格的控制。只有这样,计算机才能有条不紊地工做。
处理数据
其功能主要是解释
计算机指令以及处理
计算机软件中的数据, 并执行指令。在微型计算机中又称微处理器,计算机的全部操做都受CPU控制,CPU的性能指标直接决定了
微机系统的性能指标。CPU具备如下4个方面的基本功能:
数据通讯,资源共享,
分布式处理,提供系统可靠性。运做原理可基本分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。
寄存器
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。多线程
工做原理并发
寄存器的功能十分重要,CPU对存储器中的数据进行处理时,每每先把数据取到内部寄存器中,然后再做处理。外部寄存器是
计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间经过“
端口”交换数据,外部寄存器具备寄存器和
内存储器双重特色。有些时候咱们常把外部
寄存器就称为“
端口”,这种说法不太严格,但常常这样说。
外部
寄存器虽然也用于存放数据,可是它保存的数据具备特殊的用途。某些
寄存器中各个位的0、1状态反映了外部设备的工做状态或方式;还有一些寄存器中的各个位可对
外部设备进行控制;也有一些端口做为CPU同外部设备交换数据的通路。因此说,
端口是CPU和外设间的联系桥梁。CPU对端口的访问也是依据端口的“编号”(地址),这一点又和访问存储器同样。不过考虑到机器所联接的外设数量并很少,因此在设计机器的时候仅安排了1024个
端口地址,端口地址范围为0--3FFH。
因访问内存以获得指令或数据的时间比cpu执行指令花费的时间要长得多,因此,全部CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样一般在cpu的指令集中专门提供一些指令,用来将一个字(能够理解为数据)从内存调入寄存器,以及将一个字从寄存器存入内存。cpu其余的指令集能够把来自寄存器、内存的操做数据组合,或者用二者产生一个结果,好比将两个字相加并把结果存在寄存器或内存中。框架
寄存器的分类:dom
1.除了用来保存变量和临时结果的通用寄存器外
2.多数计算机还有一些对程序员课件的专门寄存器,其中之一即是程序计数器,它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令
3.另一个寄存器即是堆栈指针,它指向内存中当前栈的顶端。该栈包含已经进入可是尚未退出的每一个过程当中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量
4.最后 一个很是重要的寄存器就是程序状态字寄存器(Program Status Word,PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各类其余控制位。用户一般读入整个PSW,可是只对其中少许的字段写入。在系统调用和I/O中,PSW很是很是很是很是很是很是重要
寄存器的维护:
操做系统必须知晓全部的寄存器。在时间多路复用的CPU中,操做系统会常常停止正在运行的某个程序并启动(或再次启动)另外一个程序。每次中止一个运行着的程序时,操做系统必须保存全部的寄存器,这样在稍后该程序被再次运行时,能够把这些寄存器从新装入。
处理器设计的演变
1.最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都须要等待其他两个过程执行完毕,时间浪费
2.后来被设计成了流水线式的设计,即执行指令n时,能够对指令n+1解码,而且能够读取指令n+2,彻底是一套流水线。

3.超变量cpu,比流水线更加先进,有多个执行单元,能够同时负责不一样的事情,好比看片的同时,听歌,打游戏。
两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令

这种设计存在一种缺陷,即程序的指令常常不按照顺序执行,在多数状况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。
内核态与用户态
除了在嵌入式系统中的很是简答的CPU以外,多数CPU都有两种模式,即内核态与用户态。
一般,PSW中有一个二进制位控制这两种模式。
内核态:当cpu在内核态运行时,cpu能够执行指令集中全部的指令,很明显,全部的指令中包含了使用硬件的全部功能,(操做系统在内核态下运行,从而能够访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操做硬件功能的部分,所以,通常状况下,在用户态中有关I/O和内存保护(操做系统占用的内存是受保护的,不能被别的程序占用),固然,在用户态下,将PSW中的模式设置成内核态也是禁止的。
内核态与用户态切换
用户态下工做的软件不能操做硬件,可是咱们的软件好比暴风影音,必定会有操做硬件的需求,好比从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操做系统,TRAP指令把用户态切换成内核态,并启用操做系统从而得到服务。
请把的系统调用当作一个特别的的过程调用指令就能够了,该指令具备从用户态切换到内核态的特别能力。
异常处理
须要强调的是,计算机使用TRAP来执行系统调用,多数的TRAP是由硬件引发的,用于警告有异常状况发生,如试图1/0等操做。在全部的状况下,操做系统都获得控制权并决定如何处理异常状况,有时,因为出错的缘由,程序不得不中止。在其余的状况下能够忽略出错,若是程序已经提早宣布它但愿处理某类异常时,那么控制权还必须返回给程序,让其处理相关的问题
多线程和多核芯片
moore定律指出,芯片中的晶体管数量每18个月翻一倍,随着晶体管数量的增多,更强大的功能称为了可能,如
I.第一步加强:在cpu芯片中加入更大的缓存,一级缓存L1,用和cpu相同的材质制成,cpu访问它没有时延
II.第二步加强:一个cpu中的处理逻辑增多,intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来讲一个有两个线程的cpu就至关于两个cpu,咱们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。
多线程运行cpu保持两个不一样的线程状态,能够在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)
III.第三步加强:除了多线程,还出现了傲寒2个或者4个完整处理器的cpu芯片,以下图。要使用这类多核芯片确定须要有多处理操做系统


存储器系列
缓 存
缓存
缓存大小也是CPU的重要指标之一,并且缓存的结构和大小对
CPU速度的影响很是大,CPU内缓存的运行频率极高,通常是和
处理器同频运做,工做效率远远大于
系统内存和硬盘。实际工做时,CPU每每须要重复读取一样的
数据块,而缓存容量的增大,能够大幅度提高CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提升系统性能。可是因为CPU芯片面积和成本的因素来考虑,缓存都很小。
L1 Cache(
一级缓存)是CPU第一层高速缓存,分为
数据缓存和
指令缓存。内置的
L1高速缓存的容量和结构对CPU的性能影响较大,不过
高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的状况下,L1级高速缓存的容量不可能作得太大。通常服务器CPU的
L1缓存的容量一般在32-256KB。
L2 Cache(
二级缓存)是CPU的第二层高速缓存,份内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,之前家庭用CPU容量最大的是512KB,笔记本电脑中也能够达到2M,而服务器和
工做站上用CPU的L2高速缓存更高,能够达到8M以上。
L3 Cache(
三级缓存),分为两种,早期的是外置,
内存延迟,同时提高大数据量计算时
处理器的性能。下降内存延迟和提高大数据量计算能力对游戏都颇有帮助。而在服务器领域增长L3缓存在性能方面仍然有显著的提高。比方具备较大L3缓存的配置利用
物理内存会更有效,故它比较慢的磁盘I/O子系统能够处理更多的数据请求。具备较大L3缓存的处理器提供更有效的
文件系统缓存行为及较短消息和处理器队列长度。
其实最先的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并无被集成进芯片内部,而是集成在主板上。在只可以和
系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是
英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2
处理器,和之后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提升显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,因而可知前端总线的增长,要比缓存增长带来更有效的性能提高。
内存(RAM),EEPROM和闪存
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中全部程序的运行都是在内存中进行的,所以内存的性能对计算机的影响很是大。内存(Memory)也被称为内存储器,其做用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把须要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
主存,此乃存储器系统的主力,主存一般称为随机访问存储RAM,就是咱们一般所说的内存,容量一直在不断攀升,全部不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据所有消失
除了主存RAM以外,许多计算机已经在使用少许的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断以后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,而后不再能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另一些I/O卡也采用ROM处理底层设备的控制。
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,可是与ROM相反,他们能够擦除和重写。不太重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存一般做为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不一样的是,闪存擦除的次数过多,就被磨损了。
还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,因此,即便计算机没有加电,时间也仍然能够正确地更新,除此以外CMOS还能够保存配置的参数,好比,哪个是启动磁盘等,之因此采用CMOS是由于它耗电很是少,一块工厂原装电池每每能使用若干年,可是当电池失效时,相关的配置和时间等都将丢失
内存
随机
存储器(Random Access Memory)表示既能够从中读取数据,也能够写入数据。当机器电源关闭时,存于其中的数据就会丢失。咱们一般购买或升级的
内存条就是用做电脑的内存,内存条(SIMM)就是将RAM集成块集中在一块儿的一小块
电路板,它插在计算机中的
内存插槽上,以减小RAM集成块占用的空间。目前市场上常见的
内存条有1G/条,2G/条,4G/条等。
Cache也是咱们常常遇到的概念,也就是日常看到的
一级缓存(L1 Cache)、
二级缓存(L2 Cache)、
三级缓存(L3 Cache)这些数据,它位于CPU与
内存之间,是一个读写速度比内存更快的
存储器。当CPU向
内存中写入或读出数据时,这个数据也被
存储进
高速缓冲存储器中。当CPU再次须要这些数据时,CPU就从
高速缓冲存储器读取数据,而不是访问较慢的
内存,固然,如须要的数据在Cache中没有,CPU会再去读取内存中的数据。
物理
存储器和存储
地址空间是两个不一样的概念。可是因为这二者有十分密切的关系,并且二者都用B、KB、MB、GB来度量其
容量大小,所以容易产生认识上的混淆。初学者弄清这两个不一样的概念,有助于进一步认识
内存储器和用好内存储器。
内存
存储
地址空间是指对存储器
编码(编码地址)的范围。所谓编码就是对每个物理存储单元(一个
字节)分配一个号码,一般叫做“
编址”。分配一个号码给一个存储单元的目的是为了便于找到它,完成数据的读写,这就是所谓的“
寻址”(因此,有人也把
地址空间称为
寻址空间)。
地址空间的大小和物理
存储器的大小并不必定相等。举个例子来讲明这个问题:某层楼共有17个房间,其编号为801~817。这17个房间是物理的,而其
地址空间采用了三位编码,其范围是800~899共100个地址,可见地址空间是大于实际房间数量的。
对于386以上档次的
微机,其
地址总线为32位,所以
地址空间可达2的32次方,即4GB。(虽然如此,可是咱们通常使用的一些操做系统例如windows xp、却最多只能识别或者使用3.25G的
内存,
64位的操做系统能识别并使用4G和4G以上的的内存,
CMOS与BIOS电池
磁盘结构
平均寻道时间,平均延迟时间
虚拟内存与MMU
磁带
设备驱动
控制器
总线与南桥和北桥
操做系统的启动流程
应用程序的启动流程