文章目录
计算机组成原理
数据表示
进制转换
二进制 | 八进制 | 十六进制 | 十进制 | |
---|---|---|---|---|
二进制 | 小数点开始,从右向左,每3位为一位,不足三位左边补0 | 四位为一 | 整数:除2取余,余数倒置。小数:乘2取整,正序排列 | |
八进制 | 三位为一 | 换2再换16 | 换2 | |
十六进制 | 四位为一 | 换2 | 换2 | |
十进制 | 按权展开 |
(1)0x81 81H表示十六进制
(2)二,八,十六进制转换
码值转换
1 | -1 | 1-1 | |
---|---|---|---|
源码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
移码 | 0000 0001 | 0111 1111 | 0000 0000 |
补码 | 0000 0001 | 1111 1111 | 1000 0000 |
(1)机器字长为8位的时候,高位表示符号位,0表示正数,1表示负数,后面的七位表示数值。
(2)负数的反码:符号位不变,其他的各位取反。负数的补码:反码+1
(3)移码:在补码的基础上符号位取反
数值表示范围
以机器字长为4位时为例:
(1)符号位分别为0和1
1111–0111(-7—7)-(23-1),(23-1)
(2)补码和移码相比于源码和反码没有-0这个数字(因为0和-0都表示为00000000), 所以表示为-23—23-1。
(3)八位字节机中,-128的补码为1000 0000人为规定。
浮点的运算
阶符 | 阶码 | 尾符 | 尾数 |
---|
N=尾数*基数的指数次方
计算过程:
1.对阶(小阶码变成大阶码)
小数向大数看齐,小数尾数算术右移
2.尾数计算(尾数用补码表示)
3,结果格式化
计算机结构
主机和外设
主机是由主存储器,运算器,控制器组成,外设是由外辅助存储器,输出设备和输入设备组成
计算机体系结构分类Flynn分类
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机,阵列处理机,超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能 | 目前无 |
– | – | ||
多指令流多数据流MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业,任务,指令等全面并行 |
指令
指令是机器语言,是二进制代码,由操作码字段和地址码字段组成。
操作码指出计算机要执行什么性质的操作,比如加法,减法,取数,存数等。地址码字段需要包含各种操作数的地址和操作结果的存放地址等,从其地质结构的角度可以分为三地址指令,二地址指令,一地址指令和零地址指令。
指令系统 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC | 数量多,效率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制的周期长 |
RISC | 数量少,使用频率接近,定长,大部分为单周期指令,操作寄存器,只有load/store操作内存 | 支持方式少 | 增加通用寄存器,硬布线逻辑控制为主,适合流水线 | 优化编译,有效支持高级语言 |
流水线
流水线是程序执行时多条指令重叠进行操作的一种并行处理的实现技术。
各种部件同时处理针对不同指令而言,同时为多条指令的不同部分工作,提高部件的利用率和指令的平均执行速度。
流水线不影响每个命令执行的时间,但可以综合利用时间。
1.流水线的周期是执行时间最长的一段。
如果取指,分析,综合的时间分别为1ms,2ms,1ms,则整个流水线周期就是2ms
2.流水线计算公式:
如果理论公式算不出就用实际公式
理论公式:
1条指令的执行时间+(指令条数-1)*流水线周期
实际公式:
k*T+(n-1)*T(让第一条指令按最长的时间去执行)
3.例题:
一条指令的执行的时候取指=3t,分析时间2t,执行时间4t.如果按照串行的方式执行,则十条指令全部执行完,需要(3+2+4)10=90t;
若按照流水线的方式执行,流水线周期是4t,则十条指令全部执行完需要(9+94==44t)
超标量流水线
由俩条或者多条流水线组成,当度为2的时候,原本要十条流水线所需时间完成的任务,现在只用一半就完成了。
流水线的吞吐率
单位时间内流水线完成的任务数量或者输出结果
TP=指令条数/流水线执行时间
最大吞吐率TP=1/T
层次化存储结构
CPU | 寄存器,最快,容量小,成本高 |
---|---|
Cache | 按内容存取 |
内存(主存) | 随机存储器(RAM)和只读存储器(ROM) |
外存 | 硬盘,光盘,U盘 |
(从上往下,速度越来越慢,空间越来越大)
1.Cache-概念:按照内容来存取,Cache是访问速度最快的层次。(若有寄存器,则寄存器最快)使用Cache改善系统性能的依据是程序的局部性原理(防止抖动,电脑闪屏)。
2.如果以h代表对Cache的访问命中率。t1表示Cache的周期时间,t2表示主存储器的周期时间,使用“Cache+主存储器”的系统平均周期为t3
则:t3=h*t1+(1-h)*t2;其中(1-h)称为失效率(未命中率)
3.Cache-映像:
1)直接相联映像:硬件电路较简单,但是冲突率较高
2)全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低。
主存页编号+页内地址
3)组相联映像:直接相联和全相联的折中
先分区再分组
4)地址映像是将主存和Cache的存储空间分成若干大小相同的页(或者称为块)
例如:某个主机的主存容量为1GB,划分为2048页,每页512kb。
Cache容量为8MB,划分为16页,每页513KB。
编址与计算
1.按字编址:存储体的存储单元是字存储单元,也就是最小的寻址单位是一个字
2.按字节去编址:存储体的存储单元是字节存储单元,也就是最小寻址单位是一个字节。
题目:根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数。也就是:总片数=总容量/每片的容量。
例:如果内存的地址区间为4000H-43FFH,每个存储单元可以存储16位二进制数,该内存区域用4片存储器芯片构成,则构成该内存所用的存储器芯片的容量是多少?
解答:一定要算总容量的时候+1
43FFH-4000H+1=400H=pow(2,10);
总片数:pow(2,10)16/4=25616bit
总线
一条总线同一时刻只允许一个设备发送,但允许多个设备接收。
总线的分类:数据总线+地址总线+控制总线。
数据总线 | 在CPU和RAM中来回传送需要处理或者需要存储的数据 |
---|---|
地址总线 | 用于指定在RAM之中储存数据的地址 |
控制总线 | 将微处理器控制单元的信号,一般为常见的USB Bus和19=394 Bus |
串联系统和并联系统的可靠性
校验码
码距:任何一种编码都由许多码字组成,任意俩个码字之间最少变化的二进制位数称为数据校验码的码距。
例如:用4位二进制表示16种状态,则有16个不同的码字,此时码距为1.
奇偶检验
只能检验1位的错误,不能纠错。
奇偶校验码的编码方式:由若干位有效信息,再加上一个二进制位(校验位)组成校验码。
奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
循环校验码CRC
海明校验码
可以纠错,也可以检错。
在有限信息位中加入几个校验位形成海明码,使得码距比较均匀拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起相关的几个校验位发生错误。
操作系统
进程管理
进程的概念
进程是程序在一个数据集合上运行的过程,它是资源进行资源分配和调度的一个独立单元。它有程序块,进程控制块(PCB)和数据块三部分组成。
进程和程序区别:
(1)进程是程序的一次执行过程,没有程序就没有进程。程序是完成某个特定功能的一系列语句的集合,只要不被破坏,就永远存在。
(2)程序是一个静态的概念,进程是动态的,它由创建而产生,完成任务后消亡。
(3)进程是系统进行资源分配和调度的独立单位,而程序不是。
进程的状态
进程的同步和互斥
PV操作
临界资源:进程间需要互斥方式对其进行共享的资源(打印机,磁带)
临界区:每个进程中访问临界资源的那段代码
信号量:特殊的变量
P操作:申请资源的操作
V操作:释放资源的操作
S表示信号量
(当申请一个资源之后,s减1.此时如果s<0的话,就需要挂起,没有资源可以进行分配,就会阻塞。如果还有资源的话,继续执行)
(释放出来的资源使得信号量增加,如果s<=0为真的话,说明队列中还有剩余的资源,就需要唤起剩余的资源)
互斥模型
例如:理发店有一个师傅(临界资源)(s=1)
当来了一个客户之后,申请一个资源P(S) (s=0)
再来一个客户,申请资源P(S),进入阻塞队列(s=-1)
客户1剪完头,师傅释放资源V(S)(s=0)
同步模型
单缓冲区:一次只能用一个进程执行。
市场:存放产品,个数为1
S1代表市场中产品,S2代表生产出来的产品
(S1的初值是1,S2的初值是0)
由于PV同步出现,消费者V(S1)消耗产品之后,唤起生产者P(S1),然后送产品到缓冲区V(s2),继续消费者从中缓冲器取产品P(s2)。
例:
当第一个购书员进入的时候,收银员睡梦醒来,p(S1),收费之后,排队等候V(S2)。购书的时候先**V(S1)**唤醒收银员,**P(S2)**等待收银员。
PV操作的应用
进来的需要等待(P),出来代表唤起(V),以D作为切入口。
死锁问题
设计不当 or 一个进程等待不可能发生的事==进程死锁
一个(多个)进程死锁= =系统死锁
系统至少有多少个资源不会死锁:给每个进程分配所需资源数-1,系统再保留一个资源。
银行家算法
(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。
(3)当系统现有的资源不能满足进程尚需资源的时候,对资源的请求可以推迟分配,但总能使进程在有限的时间里获得资源。
存储管理
页式存储组织
页式存储:将程序和内存均划分为相同大小的块,以页为单位将程序调入内存。
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象
例如:4k= =2 ^ 12==12位
段式存储组织
按用户作业中的自然段来划分逻辑空间,然后调入内存a区,段的长度可以不一样。
优点:多段程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内存碎片大。
段页式存储组织
先分段,再分页。一个程序又若干段,每个段中可以有若干页,每个页的大小相同,但每个段不同。
页面置换算法
最优:Optimal(OPT)
随意(RAND)
先进先出(FIFO):可能出现抖动。
最近最少使用(LRU)算法:不会抖动(局部性原理)
时间局部性:刚被访问的内容,立即又被访问
空间局部性:刚被访问的内容,周围的内容又被访问。
磁盘管理
存取时间=寻道时间+等待时间
寻道时间:磁头移动到磁道所需的时间
等待时间:等待读写的山区转到磁头下方的时间
磁盘调度算法
FCFS:先来先服务
SSTF:最短寻道时间优先
SCAN:扫描算法
CSCAN:循环扫描算法
读取磁盘数据时间计算
作业管理
先来先服务算法+时间片轮转法+短作业优先法+最高优先权优先法+高响应比优先法(作业的等待时间/作业的执行时间)
文件管理
索引文件结构:简单的放简单的里面。
设备管理