编程语言
什么是编程语言
编程语言就是一门语言,而语言就是一种事物与另一种事物沟通的介质。
为什么要编程语言
帮助人类工作,解放人类,把人想的事情写成计算机能识别的语言然后让计算机执行代替人类工作
怎么用编程语言
学习相应的编程语言的语法,根据语法来写程序,让计算机可以执行
计算机
什么是计算机
计算机俗称电脑
为什么要计算机
帮助人类工作,执行人类写的程序
计算机的组成
五大组成部分
控制器:控制计算机指挥系统,负责控制计算机的使用组成部分
运算器:负责运算(控制器+运算器=CPU)
存储器:负责存,取数据
内存:基于电工作(短期存储)
优点:读取数据速度快
缺点:断电数据消失
外存:基于磁工作(长期存储)
优点:永久存取数据
缺点:读取数据速度慢
输入设备(input):键盘,鼠标
输出设备(output):显示屏,音响
-------------------------------------------------------------------------
以上功能想象成人类的身体器官:
控制器:类似于人类大脑
运算器:类似于人类大脑负责运算与逻辑
存储器:类型于人类的记忆力
内存:短期记忆(可能就记住了一个小时,一天)
外存:笔记本(记录起来)
输入设备:类型于人类嘴巴,要说出来
输出设备:类型于人类耳朵,听进去
以上所有的功能是由电线连接而成,而电线相当于人类的神经
操作系统的三大核心硬件
应用程序:就是一个软件
操作系统:操作系统就是一个控制计算机硬资源与软件的操作,控制计算机基本运行
计算机硬件:最底层的硬件
平台:就是计算机工作的环境
平台 = 操作系统 + 计算机硬件
如果要运行一个程序,经历的底层过程
1.程序最先是存储于硬盘的(计算机硬件)
2.要使用某个程序要先把数据加载到内存
3.然后CPU再从内存中读取指令
4.最后显示在显示屏上
处理器
CPU分2种,32位(X86)和64位(X86-64)
CPU具有向下兼容性,就像USB3.0可以兼容USB2.0一样,64位的CPU既可以运行64位的程序,同样也可以运行32位的程序。
#通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。 #其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算。 #可以说计算机的大脑就是CPU,它从内存中取指令->解码->执行 #CPU读取的数据都是从主存储器(内存)来的! #主存储器内的数据则是从输入单元所传输进来! #而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。
内核态与用户态
#除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态。
#内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能
#用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,
#因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),
#当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。
#CPU的两种工作状态:内核态与用户态
代表CPU的2种工作状态
①内核态:运行的程序是操作系统,可以操作计算机硬件
②用户态:运行的程序是应用程序,不能操作计算机硬件
内核态与用户态的转换
应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到
内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换
存储器
RAM
随机存取存储器(英语:Random Access Memory,缩写:RAM),也就是内存。
常说的也叫主存,是与CPU直接交换数据的内部存储器。
优点:可读可写,读写速度快,最快DDR4标准的内存读写速度高达50000MB/s
缺点:一旦断电,数据就会丢失
ROM
ROM 是 read only memory的简称,表示只读存储器。
只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入。
即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。
优点:即使断电也可以保存数据
CMOS
是电脑主板上的一块可读写的RAM芯片。
在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,这个芯片仅仅是用来存放数据的。
优点:可读可写,可保存数据,耗电量极低
缺点:读写速度慢,断电数据会丢失
硬盘
电脑硬盘是计算机最主要的存储设备,主要分为 “机械硬盘” 和 “固态硬盘” 2种。
机械硬盘(HDD:Hard Drive Disk)
磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位)
单位换算:
8bit比特(位) = 1Bytes字节
1024Bytes = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
扇区:
一个扇区通过为512Bytes
站在硬盘的解读,一次性读写数据的最小单为为扇区
IO延迟:
以一个7200rpm的硬盘为例:
7200rpm也就是7200转 / 分钟
120转 / 秒
1次转动花费8ms
平均寻道时间:
机械手臂转到数据所在磁道需要花费的时间
受限于物理工艺水平,目前机械硬盘可以达到的是5ms
平均延迟时间:
转半圈需要花费4ms,受限于硬盘的转速
IO延迟 = 平均寻道时间 + 平均延迟时间
优化程序运行效率的一个核心法则:
能从内存取数据,就不要从硬盘取
IO设备=设备的控制+设备本身
常见的机械硬盘接口:SATA
优点:存储容量大,价格便宜,使用寿命长。
缺点:读写速度慢,最快读写速度约为300M/s;有噪音;震荡易损坏;功耗大。
固态硬盘(SSD:Solid State Disk)
俗固态硬盘是用固态电子存储芯片阵列而制成的硬盘。
SSD由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。
常见的固态硬盘接口:SATA、M.2、PCI-E
优点:读写速度快,最快读写速度约为5000M/s;轻便、功耗小、抗震防摔。
缺点:最大容量小于机械硬盘;价格高;因为擦写次数的限制,寿命短。