目录
先学习C语言,包括C高级、shell脚本,数据结构等。
再学习IO、进程、线程、进程间通信、网络编程、数据库等都是linux为我们写好的接口函数,称为应用层开发。
其中用到IO用到read、write、fork、socket等等,底层这些函数底层是对接硬件,向上提供接口,称为系统移植、驱动开发。
应用开发 即使用系统提供的接口(API),做上层应用程序的开发
底层开发 即做操作系统本身的开发
linux层次结构
学习方法
课程内容改变:CPU 接口 硬件
思维方式改变:程序如何执行 接口如何配置 硬件如何控制
学习方式改变:先宏观再微观 重理解轻记忆 善于总结归纳
逻辑1和0
在计算机中数据的存储、运算、传输都是以高低电平的方式
所以数字电路中用高、低电平来表示逻辑1和0
输入设备
把其他信号转换成计算机能识别和处理的信号并送入计算机中 如键盘、鼠标、摄像头等
输出设备
把运算结果以人或其他设备所能接受的形式送出计算机外 如显示器、音响、打印机等
存储器
存储器是用来存储程序和数据的部件,是实现"存储程序控制"的基础 如内存、硬盘等
运算器
CPU中负责进行算数运算和逻辑运算的部件,其核心是算术逻辑单元ALU (运算器都是各种各样的运算电路)
控制器
控制器是CPU的指挥中心,其控制着整个CPU执行程序的逻辑过程
注:运算器和控制器共同组成了CPU
总线
是计算机中各个部件之间传送信息的公共通信干线, 在物理上就是一束导线按照其传递信息的类型可以分为数据总线、地址总线、控制总线(总线意义:上面计算机的五个组成部分是独立的,需要数据传递,总线是通信桥梁。)
DMA总线
DMA(Direct Memory Access)即直接存储器访问,使用DMA总线可以不通过CPU直接在存储器之间进行数据传递
注:DMA与普通总线的区别是可以不通过CPU,其他都需要过CPU。DMA可以释放CPU使用率。
为什么要用这么多种存储器?使用三级存储结构是为了兼顾速度、容量、价格
Cache
速度最快、价格最贵、容量最小、断电数据丢失、cpu可直接访问 存储当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据(高速缓存,速度最快,容量最小,价格最高)
主存储器
速度、价格、容量介于Cache与辅存之间、断电数据丢失、cpu可直接访问 存储当前正在执行的程序和数据(内存,速度快,可以按字节访问,容量小,断电丢失)
辅助存储器
速度最慢、价格最低、容量最大、断电数据不丢失、cpu不可直接访问 存储暂时不运行的程序和数据,需要时再传送到主存(硬盘,读写按块,每次如512个字节,单变量都是1个字节,所以慢)
工作原理
CPU可以直接读写Cache和主存储器
计算机打开程序会把硬盘搬到内存。如果一部分代码会经常被读写,经常需要读写的代码会搬到Cache
概念:一个处理器能够访问(读写)的存储空间是有限的,我们称这个空间为它的地址空间(寻址空间),一般来说N位地址总线的处理器的地址空间是2的N次方
如买了一个内存4G,实际可能用到的只有3G多一点。因为读的空间不是无限大的,地址是有限,与地址空间有关。CPU必须先发送一个地址,然后才能拿到地址中的内容,那总有无法访问的地址。
按顺序发送指令计数器地址到内存中
取指
译码
执行
指令计数器PC
指令寄存器IR
指令译码器
一条指令的执行分为三个阶段
1.简述为什么地址总线为32bit的处理器的地址空间为4G?
32位处理器的地址总线可以用来寻址 2^32 个不同的内存地址,也就是 4,294,967,296 个地址。通常情况下,每个地址对应一个字节的内存空间。因此,32位地址总线可以寻址的内存空间大小为 4,294,967,296 字节,即4GB。
2.简述CPU执行指令的过程
CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回,到CPU中的指令寄存器(IR)
译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算
控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器 每执行一条指令后PC的值会自动增加指向下一条指令,以此往下类推。