转载地址:https://www.jianshu.com/p/92226196fdcd(内存介绍写的很详细)
1.什么是计算机
- 通俗的讲,计算机硬件分为:CPU,主板,内存,硬盘,显卡,网卡,显示器等外围设备组成,主板将一堆部件连接在一起。
- 根据冯▪诺依曼体系构成的计算机,计算机必须具备5大基本组成部件:
1)输入数据和程序的输入设备(如:键盘等)
2)记忆程序和数据的存储器(这里指内存)
3)完成数据加工处理的运算器(加法器,逻辑运算器,就是CPU)
4)控制程序执行的控制器(CPU)
5)输出处理结果的输出设备(如:屏幕等)
- 静态角度看 操作系统的组成部分:硬件+软件组成,从下到上,如图:
1)硬件
2)内核(操作系统,所属接口是system call(系统调用),系统调用是在内核中发生的)
3)library call(库调用,库调用有些是独立的模块;有些还要对系统调用进行一次二次封装)
4)程序员有可能面向系统调用来编程;也有可能面向库调用来编程;也有可能是混合编程,即面向库调用和系统调用来编程
2,加电自检
计算机加电后,计算机自动的(通过计算机硬件芯片逻辑完成)将ROM(只读存储器)中的程序(指令+数据)映射到存储器中(通常放在内存的最开始端),这堆指令检查计算机的外围设备(如:主板,键盘,鼠标,网卡等),这就是加电自检(Power-OnSelf-Test)
名词解释:
1)CPU:控制器、运算器、寄存器组成;运算器负责运算,控制器负责运算器在哪读取数据,存储器负责存储数据,运算器俗称加法器,能接收加数与被加数,将接收的数据存放在寄存器中,然后通过运算把结果输出(运算器从存储器取出数据做运算,运算之后再保存起来 。就是说 运算器与存储器相互交互)
2)总线:运算器+控制器+存储器等这些部件之间需要线路,实现数据交换
3)控制/数据/地址总线:运算器和存储器之间有线相连接,有些是为了传输数据,有些是为了实现控制信号的传输,有些是为了寻址
4)寻址:运算器与控制器主要实现运算和控制,数据存储在存储器上,存储器有多种数据类型
5)内存:编址存储设备,每8位为一个单元(1字节),1byte(字节)=8bit,在内存中,由很多的字节联合起来所形成的整体空间(比如一栋房子),每一字节都有一个盒子(一栋楼的一个房间),整个内存由很多很多盒子(一栋楼有很多个房间)组成,每一个字节可以存储8位。每个存储单元(一字节)称为内存地址(内存编址)。能提供多少个地址就意味着能使用多大的空间,如:32位系统,意味着2^32次方个地址(约为4 000 000 000既为:4G左右,这里的单位是byte,不是bit),存放的是指令+数据,每个存储单元是1字节,每个存储设备有一个地址(属平面编制,每个存储单元在全局中唯一的地址)
6)ROM:只读存储器(计算机的一堆指令,这堆指令计算机通电后映射到存储器上)
7)线路复用(通过控制器控制)
8)控制总线(控制器获取控制指令的线路);数据总线(控制器传输数据的线路)
9)主频:外频*倍频 (单位时间内某个事件发生的周期数),单位(HZ,如:3GHZ,既一秒内可以变化30亿次闭合的变化--->0和1,有信号传输是1,没信号传输是0.)
10) 外频:cpu与主板芯片组交换数据
11) 倍频:主频与外频相差的倍数
11)北桥芯片:高速总线控制器(如:内存,SSD和其他总线)工作在比较高的频率,快速数据交换
12)内存带宽:内存与北桥的传输=内存总线频率*数据总线位数/8
13)南桥芯片:低速总线控制器(如:KB,HDD等)
14)程序局部性原理(时间局部性,空间局部性)
15)操作系统:通用软件,协调具体的程序的工作
16)缓存:缓存的概念在很多场合下都有应用,如:cpu缓存,内存缓存,数据库缓存等等,这里指:cpu缓存,由于CPU运行速度比内存快,为了避免这种局面,在CPU里面加入缓存,避免高速运转的cpu等待低速的内存而产生的延迟,cpu缓存的速度接近cpu的工作频率,但价格贵,分l1,l2.l3(离cpu越近,速度越快) l1d--->缓存数据,l1i--->缓存指令,缓存用来加速运算器与存储器之间的数据交互
17)虚拟机:在主机上用软件+硬件的方式模拟出来的硬件设备
18)I/O设备
I/0设备通过不停的中断来和计算机进行交互
当用户输入一个指令时,cpu是如何知道的,两种方法:
轮询(poll)如:每隔1ms检查一遍,键盘/鼠标是否有变动,这种效率太低。
中断(interrupt),一种硬件通知机制
可编程中断控制器通过针脚与CPU相连,它内部有多根线,每跟线代表一个I/O设备(这种机制也不是很理想,因为当服务器中断过多后,CPU会非常繁忙)还有一种机制:一根线标识多个I/O设备