目录算法
计算机分为五大组成部分,分别为控制器,运算器,存储器,输入设备,输出设备。其中控制器+运算器是计算机的中央处理器(CPU),至关于人类的大脑。编程
计算机的指挥系统,大脑指挥全身的器官运做,可是大脑不会随意的指挥身体运动,大脑只有在接受指令后猜会指控身体行动spa
运算器是计算机的运算系统。大脑除了指挥,无时无刻都在运算,即实现算术运算和逻辑运算。操作系统
1,算术运算:相似1 + 1 = 2翻译
2,逻辑运算:相似 碰到疯狗,弄死他,或者跑3d
相似:blog
吃饭流程示例。进程
计算器的存储系统,须要注意的是:不管是内存仍是外存,计算机存储数据的格式都是01,01的形式是0和1由电压的电频控制。计算机的存储的一个二进制单位称为1bit,8bit=1Bytes称为一个字节,1024Bytes=1kb,1024kb=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB。事件
下图展现了目前市场上经常使用的存储器,从图中能够看出存储器的速度,容量和价格是相互矛盾的。内存
内存是计算机临时存储数据的硬件设备,因为内存读取数据速度较快,CPU下达的指令会直接传输给内存,即CPU与内存会直接交互,常见的内存有内存条。
1.优势(较于外存):
1.存取速度快。
缺点(较于外存):
1.容量小。
2.因为内存基于电,存储数据,所以断电后数据会立刻消失。
外存是计算机内永久存储数据的硬件设备,因为外存容量大,因此外存主要用于存储软件等占用量大的数据。当须要使用外存上的某个软件时,CPU下达的指令须要传输给内存后,内存在从外存中读取软件信息,即CPU不与外存直接交互。
常见的外存有磁带、磁盘,和U盘等。
1.优势(较于内存):
1.容量大
2.能够永久的存储数据。
2.缺点(交于内存):
1.存取速度慢
电脑打开qq的流程示例:
1.双击qq图标,CPU先向内存发出取指的命令。(CPU+内存)
2.内存从硬件中取出运行QQ的指令(硬盘)
3.控制器分析运行QQ的指令并告知运算器工做(控制器)
4.运算器进行一系列的算术运算和逻辑运算打开QQ,并从硬件中读取QQ的代码到内存(运算器+内存+硬盘)
5.计算机在内存中运行QQ的代码(内存)
6.若是此时从QQ好友中接受一个文件而且下载,该文件将会永久保存在硬盘中(硬盘)
7.关闭QQ时CPU向内存发出关闭QQ的指令,内存关闭QQ并清理内存中的QQ代码(内存)
计算机的输入信息(程序,数据,声音,文字,图形,图像)的设备
常见的输入设备:键盘,鼠标,图形扫描仪,触摸屏,条形码输入,光笔等。外存储器(u盘等)也是一种输入设备。
计算机输出信息的设备
常见的输出设备:显示器,打印机,绘图仪等,外存储器也是一种输出设备。
注意因为外存储器便是一种输入设备,也是一种输出设备,所以外存储器也被称为IO设备,其中I为Input(输入),O为Output(输出).
补充部分做为选看部分,主要是为了介绍计算机的启动流程。
多核CPU:多个CPU,电脑能够同时干多个事件。如,四核CPU能够同时作四件事情。
X86-64位:X86是CPU的一种型号,64表示CPU每次能取64位二进制数。X86-32表示CPU每次取32位二进制数。CPU具备向下兼容性,即64位电脑能下载32位的软件,而32位的软件下载64位的软件会丢失数据。
ROM存储器:ROM只读存储器(不可写)在工厂中就被编程完毕,而后不再能修改。它通常存放BIOS(Basic input output system)程序,该程序通常用于启动计算机,或用于处理底层设备的控制。
CMOS存储器:CMOS存储器由一块电脑内置的电池驱动供电,它通常用来保持当前时间和日期的更新,也就是说,即便计算机没有充电,时间也会持续更新;同时它也能够存储启动磁盘的路径。(装机的时候通常会告诉计算机操做系统在计算机中的位置,如C:/)
总线至关于人类的神经、血管、链接计算机的全部硬件设备。
计算机加电。
BIOS开始运行,检测硬件:CPU、内存、硬盘灯。
BIOS读取CMOS存储器中的参数,选择启动设备等。
从启动设备上读取第一个扇区的内容。
根据分区信息读入bootloader启动装载模块,启动操做系统。
操做系统询问BIOS,得到配置信息。对于每种设备,系统会检查其设备驱动是否存在,若是没有,系统则会要求用户按照设备驱动程序,一旦有了所有的设备驱动程序,操做系统则会将它们调入内核,而后初始有关的表格(如进程表。
现在市场上的硬盘分为机械硬盘和固态硬盘两大类,咱们将从这两大类出发和同窗们介绍硬盘的工做原理
机械硬盘主要有机械手臂、磁道和扇区组成,接下来咱们将从这三个方面对机械硬盘的工做原理。
机械手臂:机械硬盘经过机械手臂读取数据,机械手臂的末端是磁头。
磁道:磁道是机械硬盘的磁面中的一个一个圈,磁道用于存储数据。
扇区:扇区的最小单位一般为512KB(因为磁盘大小不断增大,也有部分厂商设定每一个扇区的大小是4096字节)。为了减少IO操做,机械硬盘也会将多个相邻的扇区组合在一块儿,造成一个块,这个块便就是咱们在Windows系统中看到的C、D分区。
平均寻道时间:因为数据存放在磁道上,所以机械手臂须要读取数据首先要找到磁道。受限于工业水平的限制,目前机械手臂找到磁道的时间为5ms,这个时间被称为平均寻道时间。
平均延迟时间:机械手臂寻道以后,须要寻找数据。因为数据的位置是不肯定的,而目前的机械硬盘寻找数据会从硬盘的头部扫描到尾部。以7200r/min的硬盘为例,若是碰巧在硬盘头部找到数据,时间约为0ms;若是在硬盘尾部找到数据,时间约为8.3ms,所以咱们采用一个平均时间4.15ms做为机械手臂在磁道找到数据的时间,这个时间被称为平均延迟时间。
$$
7200/60 = 120r/s \
\frac{1}{120} = 0.00833s = 8.3ms \
\frac{0.83+0}{2} = 4.15 ms \
\text{寻找数据的时间} = 4.15+5 = 9.15ms \
$$
补充:平均延迟时间: 机械手臂到磁盘的时间 5ms (固态硬盘没有这个时间)
平均寻数据的时间: (0 + 8.3) /2
从上述描述能够得出:
寻找数据的时间=平均寻道时间+平均延迟时间寻找数据的时间=平均寻道时间+平均延迟时间
随着人们对数据需求增多,存储系统的瓶颈愈来愈明显。而在嵌入式领域移动设备和工业自动化控制等恶劣环境下,传统硬盘机械结构已经没法知足要求,而全部这一切随着固态存储(SSD)的到来而发生了改变。
传统的机械硬盘(HDD)运行主要是靠机械驱动头,包括马达、盘片、磁头摇臂等必需的机械部件,它必须在快速旋转的磁盘上移动至访问位置,至少95%的时间都消耗在机械部件的动做上。SSD却不一样机械构造,无需移动的部件,主要由主控与闪存芯片组成的SSD能够以更快速度和准确性访问驱动器到任何位置。传统机械硬盘必须得依靠主轴主机、磁头和磁头臂来找到位置,而SSD用集成的电路代替了物理旋转磁盘,访问数据的时间及延迟远远超过了机械硬盘。SSD有如此的“神速”,彻底得益于内部的组成部件:主控--闪存--固件算法。SSD经过这套组成部件,让数据以电荷的方式存储在每一个NAND存储单元内。
上面讲了这么多,牢记一点:
固态硬盘是基于固态电子(SSD,断电数据也会保留)和算法实现数据存储的。