软考软件设计师学习笔记

目录

进制转换

按权展开法

短除法

减法

8421法

码制

数据的表示-原/反/补/移码

浮点数的表示

运算过程

特点

逻辑运算

关系运算符

逻辑运算符

校验码概述

奇偶校验码

CRC循环冗余校验码

海明校验码

奇偶校验码

CRC循环冗余校验码

 海明校验码

CPU组成(运算器与控制器)

运算器 

控制器

寻址方式

指令的基本概念

CISC与RISC

流水线技术

存储系统概述

层次化存储

层次化存储结构

层次化存储结构-分类

Cache

Cache-概念

Cache-映像

Cache-直接相联映像

Cache-全相联映像

Cache-组相联映像

总体表格

主存编址计算

编址

编址与计算

存储单元

编址内容

总容量

输入/输出技术

总线

可靠性

性能指标

计算机组成与体系章节回顾

操作系统章节概述

 操作系统概念概述

操作系统的作用

特殊的操作系统

进程的概念

进程的状态

进程调度 

PV的概念

信号量与PV操作

前驱图与PV操作

死锁资源数计算


进制转换

进制数码基数位权
十进制(D)0,1,2,3,4,5,6,7,8,91010^k
二进制(B)0,122^k
十六进制(H)0~9,A,B,C,D,E,F1616^k

按权展开法

作用场景:R进制转十进制

解释:将R进制按权展开后相加

如二进制:10100.01=1*2^4+0*2^3+1*2^2+0*2^1+0*2^0+0*2^-1+1*2^-2

这种方法也可以先将10100.01当成十进制,如:10100.01=1*10^4+1*10^2+1*10^-2

然后再把10^k这个位权变成R^k,这样就能做到快速转换。

短除法

作用场景:十进制转R进制

解释:也称除基取余法,即将十进制除以R得出的结果和余数,结果再除R知道0为止,得到的进制结果取倒叙的余数

例如:

减法

作用场景:十进制转二进制

解释:列出2的0到n次方,并从与要转换的数想近最大的数开始减,每减一次,记录一次1,直到减到2^0

如:

8421法

作用场景:二进制转八进制和十六进制

解释:当要转八进制的时候将二进制从后向前,每三位分成一组,三位从左到右标记成4 2 1,然后把有1的标记相加得到一个数,将所有组的数组合就是八进制。同理十六进制多加一位,并标记成8

如:

码制

数据的表示-原/反/补/移码

计算机只取固定8位,当超过8位后不会取。也即:补码的0000 0001+1111 1111=1 0000 0000。但是最高位的1不会取,因此结果为0

0表示正号,1表示负号

数值1数值-11+(-1)
源码0000 00011000 0011000 0010
反码0000 00011111 11101111 1111
补码0000 00011111 11110000 0000
移码1000 00010111 11111000 0000

原码:最高位是符号位,其余低位表示数值的绝对值

反码:正数的反码与原码相同,负数的反码是其绝对值按位取反(符号不变)

补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)

移码:补码符号位按位取反(只有符号位会取反)

移码的运算和正常的运算是有区别的,但不需要了解

码数个数

原码:2^-1

反码:2^n-1

补码:2^n

移码:2^n

其中 -128的补码为1000 0000 是人为规定的

二进制的符号位在转换十进制中不算入运算

浮点数的表示

浮点数的表示:

N=尾数*基数^指数

例如:1.25*10^6

也即:定点小数*基数^阶码(定点整数)

在对阶的过程中,一般是小的阶数向大的看齐

运算过程

对阶>尾数计算>结果格式化

特点
  1. 一般尾数用补码,阶码用移码
  2. 阶码的位数决定表示范围,位数越多范围越大
  3. 尾数的位数决定有效精度,位数越多精度越高
  4. 对阶时,小数向大数看齐
  5. 对阶是通过较小数的尾数右移实现的

数符:尾数的符号位(决定整个数的正负)

阶符:阶码的符号位(决定是小数还是整数)

逻辑运算

关系运算符

优先级高:> >= < <=

优先级低:== !=

逻辑运算符

! && ||

注意逻辑短路

运算符优先顺序:!>算数运算符>关系运算符>逻辑运算符>赋值运算符

也即:单目运算符>双目>三目>...    这种规律

校验码概述

奇偶校验码

作用:可检奇数位错,不可纠错

CRC循环冗余校验码

作用:既可以检错,并且不限定一位错,可以检多为错,不可纠错

海明校验码

作用:既可检错,又可纠错

奇偶校验码

码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距

例如:

 通俗讲就是,一次能变换1个的就是1码距,一次变两个的就是2码距,像组一样。

 例如:

传递的是10,其中1是传递的有效信息,0是校验位,使用奇校验,收到的是00,说明是偶数个1,那么就检测出错误了。

 传递的是01,其中0是传递的有效信息,1是校验位,使用奇校验,收到的是11,说明是偶数个1,那么就检测出错误了。

偶校验类似

例题:

 这个例题中C是正确的。

CRC循环冗余校验码

特点:可检错,不可纠错

 重点:模二除法

 海明校验码

特点:即可检错也可纠错

 

上述的描述是校验码与有效信息位通过交叉的方式进行发送。

重点掌握公式“2^r=m+r+1”就可以了,其中m是有效信息位,r是我的知道有效信息位之后要求得的校验位。

例如:m是16,那么r>=5才符合公式要求,而在有效信息位中的位置就是,2^0,2^1~2^4,即:1,2,4,8,16。不过这里不要求掌握

在推算D5的时候可以用位置推算,如:D5的位置是10,那么就要用位置8和位置2的相加,也就是P4和P2。也可以用二级制的方式推算,如:D5的位置是10,而10的二进制是1010,从右向左算,是P4 P3 P2 P1,对应1010的位置,有1的地方就需要,因此推测出事P4和P2。这种二进制的方式也可以推测出D14的校验位

CPU组成(运算器与控制器)

 

 

运算器 

  1. 算数逻辑单元ALU
  2. 累加寄存器
  3. 数据缓冲寄存器
  4. 状态条件寄存器

其中状态条件寄存器有争议,可以把他归为控制器中

控制器

  1. 程序计数器PC
  2. 指令寄存器IR
  3. 指令译码器
  4. 时序部件

寻址方式

指令的基本概念

一条指令就是机器语言的一条指令,他是一条有意义的二进制代码

基本格式为:操作码字段+地址码字段

CISC与RISC

 

流水线技术

其中重要的概念,一条指令分为:取指、分析、执行

这里的流水线是标准并行

 例如在例题中,第一个空为:(3+2+4)*10=90,第二个空为:4(注:流水线周期为三个中最长的),第三个空为:3+2+4+(10-1)*4=45

其中公式:3+2+4+(10-1)*4  可以通过提公因式的思维方式将4提取出来,就变成了3+2+(1+10-1)*4   从而进行快速的计算

其中重要公式为:取指时间+分析时间+执行时间+(指令条数-1)*三个中最大的那个=执行完的时间 

其中t是流水线周期也就是4

例题:

答案:A 

答案:D

其中他的吞吐率是:100/405△t。极限吞吐率是:1/4△t

存储系统概述

层次化存储体系

Cache

主存编址计算

层次化存储

层次化存储结构

 结构是:

CPU:容量按照bt

Chche(缓存):容量按照M

内存(主存):容量按照G

外存(辅存):容量按照T

时间局部性是按照循环的,空间局部性是按照顺序的

层次化存储结构-分类

 虚拟存储体系由(主存-辅存)两级存储体系构成。如果在加上Cache(缓存)就变成了三级存储体系。

Cache

Cache-概念

 重点部分:主存与Cache之间的地址映射硬件直接完成

Cache-映像

Cache-直接相联映像

在直接相连映像中主存里各个区的0页对应cache的0页,1页对应1页这样,但是当一个区的0页放入cache中,其他区的0页就不能放入了(因为需要一一对应,不能放入不对应的页中)。这也导致这种方法电路简单但是冲突高

Cache-全相联映像

全相连映像让主存的任意页可以放在任意Cache页中,不需要一一对应。也导致冲突低但是电路复杂

Cache-组相联映像

组相连映像是将主存分区在化成组,Cache也分成组,主存0组的页只能放在Cache的0组,但是页可以放在0组中的任意页,通过这种方法使得电路复杂度折中 冲突折中 

总体表格

冲突率

(高、中、低)

电路复杂度

(复杂、简单、折中)

直接相联映像简单
全相联映像复杂
组相联映像

主存编址计算

编址

编址与计算

存储单元

公式:存储单元个数=最大地址-最小地址+1

编址内容

按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字

按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节

总容量

公式:总容量=存储单元个数*编址内容

根据存储器所要求的容量合选定的存储芯片的容量,就可以计算出所需芯片的总数,即:

公式:总片数=总容量/每片的容量

注:一般的出题会给地址范围编址内容总容量,在通过芯片容量片数,或芯片数容量

例题:

 第一个空求的是总容量,首先他给了内存按字节编址,因此编址内容也就是一个字节=1B=8bit

1K=2^10

1M=2^10K=2^20

1G=2^10M=2^20K=2^30

因为:存储单元个数=最大地址-最小地址+1

所以:存储单元个数=CFFFFH-A0000H+1        (其中H代表16进制)

存储单元个数=D0000H-A0000H        (先最大+1。D为13,A为10)

存储单元个数=30000H=3*16^4

因此总容量=3*16^4*8bit=3*2^16*8bit       

 (因为最终的结果是KB,所以要约分,目前的单位是bit除以8就变成了B再除2^10就变成了KB,或者理解为1KB=2^10B,因此除以2^10B)

总容量=3*2^16*8bit/2^10B

(因为1B=8bit,所以8bit/2^10B=1/2^10)

总容量=3*2^16/2^10=3*2^6KB=192KB

所以第一个空选 D

第二段得知芯片容量:64K*8bit

因为:总片数=总容量/每片的容量

所以:总片数=192KB/64K*8bit=192*2^10B/64*2^10*8bit=192/64=3

所以第二个空选 B

输入/输出技术

 

 

总线

分时双工:既能发消息也能接收消息

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收

可靠性

 

 其中公式:

串联:R,三个就是R^3

并联:1-(1-R),三个就是(1-(1-R))^3

性能指标

 

 

计算机组成与体系章节回顾

操作系统章节概述

 

 操作系统概念概述

操作系统的作用

操作系统是计算机硬件之上的第一层软件

作用:

  • 管理系统的硬件、软件、数据资源
  • 控制程序运行
  • 人机之间的接口
  • 应用软件与硬件之间的接口

管理:

  • 进程管理
  • 存储管理
  • 文件管理
  • 作业管理
  • 设备管理

特殊的操作系统

进程的概念

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。


PCB: PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。
 

进程程序的区别:进程是程序的一次执行过程,没有程序就没有进程。

程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位

不同的线程中共享的是:内存地址空间、代码、数据、文件等。不共享的:程序计数器、寄存器、栈

进程的状态

 

进程调度 

PV的概念

信号量与PV操作

P(S):获取资源

V(S):释放资源

前驱图与PV操作

重要部分:前驱,后继

例题:

在该例题中信号(S1~5)就是线

答案:

死锁资源数计算

所谓死锁,是指两个以上的进程互相要求对方已经占有的资源,导致无法继续运行下去的现象

死锁四大条件:

  • 互斥
  • 保持和等待
  • 不剥夺
  • 环路等待

系统不可能发生死锁的最小资源数 :(w-1)*m+1<=n

其中:w:进程所需资源,m:进程数,n:资源