软件设计师知识点整理(一)
一、计算机网络
二、操作系统基本原理
四、计算机组成原理与体系结构

软件设计师知识点整理(二)
四、编译原理基础
五、软件工程概述
六、计算机软件法律法规

软件设计师知识点整理(三)
七、系统安全设计与分析
八、数据结构与算法基础
九、数据库系统

一、计算机网络

OSI七层模型

OSI 将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。

  1. 应用层:通过应用程序间的交互来完成特定的网络应用
  2. 表示层:解释交换数据的含义。该层提供的服务主要包括数据压缩,数据加密以及数据描述。
  3. 会话层:负责建立、管理和终止表示层实体之间的通信会话。该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
  4. 传输层:负责因特网中两台主机的进程提供通信服务。
  5. 网络层:选择合适的网间路由和交换节点,确保数据按时成功传送。
  6. 数据链路层(链路层):数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
  7. 物理层:实现计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性,过程特性)

TCP/IP 五层参考模型

  1. 应用层 :为特定应用程序提供数据传输服务。
  2. 传输层 :为进程提供通用数据传输服务。
  3. 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。
  4. 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。
  5. 物理层 :负责比特流在传输介质上的传播。
    image.png

数据在各层传输过程

1675867690-lXXziw-image.png
假设一个主机上的一个应用向另一个主机的一个应用发送数据。

  1. 在发送主机端,一个应用层报文被传送到传输层。在最简单的情况下,传输层收取到报文并附上附加信息,该首部将被接收端的传输层使用。
  2. 应用层报文和传输层首部信息一道构成了传输层报文段。附加的信息可能包括:允许接收端传输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变。
  3. 传输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报文。
  4. 该数据报文接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧。
  5. 在物理层数据帧被封装成比特流,之后通过传输介质传送到对端。而在接收主机端,整个过程正好反过来。

网络技术标准与协议

image.png
(1)IGMP:称之为因特网的控制协议
(2)ARP:是地址解析协议(即IP转MC)
(3)RARP:是反向地址解析协议(MC转IP)
(4)TCP:被称为可靠的协议,因其在通信时会建立连接(通过三次握手来建立连接,即A与B三次互发信息),且在传输信息时有验证机制,以验证数据包是否顺利传输,其上方的FTP,Telnet等协议都是建立在TCP基础上的
(5)UDP:称为不可靠的协议,因其在建立时不会建立连接,因其在传输数据时,会直接将数据发送给另一方
(6)DHCP:用来做动态的IP地址的分配工作
(7)TFTP:是小文件传输协议,文件传输不可靠且不安全
(8)SNMP:是简单网络管理协议
(9)DNS:是域名解析协议
(10)位于中间部分的Samba协议、CIFS协议、NFS协议则是可基于两种基本协议
(11)TCP和UDP均提供了端口寻址能力
(12)MIME:是一个互联网标准,扩展了电子邮箱标准,使其能够支持电子邮箱的使用
(13)PGP:是一套用于信息加密、验证的应用程序,可用于加密电子邮件内容
(14)Https:是HTTP的安全版,它是在HTTP的基础上加上了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密
(15)FTP:文件传输是可靠但不安全的方式
(16)SFTP:在FTP基础上,通过SSH对传输文件进行加密,安全文件传输
(17)ICMP:Internet控制报文协议,与文件传输功能无关
(18)SMTP:邮件传输协议,负责邮件发送,端口:25
(19)POP:邮件协议,用于收邮件,POP3端口:110
(20)IMAP:交互邮件访问协议
(21)RFB:远程帧缓冲协议,用于远程访问图形用户界面
(22)IGP:内部网关协议。常见的有OSPF,RIP
(23)EGP:外部网关协议。BGP:边界网关协议,是建立在EGP的经验之上的

网络类型与拓扑结构

image.png

网络规划与设计

image.png

逻辑网络设计

image.png

物理网络设计

image.png

分层设计

image.png

IP地址与子网划分

image.png

特殊含义的IP地址

image.png

无线网

image.png
图注:无线网可分为无线局域网、无线城域网、无线广域网、无线个人网;覆盖范围:个人<局域<城域<广域;优势:移动性、灵活性、成本低、容易扩充;无线局域网的接入方式有两种:接入点模式、无接入点模式;蓝牙属于无线个人网

网络接入技术

image.png
PSTN:在十多年前非常流行,其上网和通话功能不能同时进行,目前基本被淘汰,但pos机和传真依旧在使用;
ISDN:解决了上网和通话不能同时进行的问题,速度达到128KB;
ADSL:是ISDN的发展,目前是主流的有线网络接入方式,速度达到了8MBS;ADSL上网拨号有三种方式,即专线方式(静态IP)、pppoA和pppoE。
HFC:目前广泛用于电视机接入网络;
TD—SCDMA:是国产的技术,只在中国应用,由移动公司主导推广;目前最为广泛应用的技术是WCDMA,而FDD则是其发展版本,
TDD:是LTE—Advanced发展而来,是4G时代智能机的主流接入网络的方式

IPv6

image.png

二、操作系统基本原理

ps:在上午考试中一般占到5—7分
重点:银行家算法、pv操作、文件管理、存储管理、操作系统的分类及其特点

操作系统概述

操作系统与计算机体系结构之间的关系
image.png
操作系统具备的管理职能

  1. 进程管理:包括(1)进程的状态;(2)前趋图;(3)pv操作;(4)死锁问题。
  2. 存储管理:包括(1)段页式存储;(2)页面置换算法。
  3. 文件管理:包括(1)索引文件;(2)位示图。
  4. 作业管理
  5. 设备管理 包括:数据传输控制方式
  6. 微内核操作系统:包括虚设备与SPOOLING技术

进程管理

进程的三种基本状态

image.png
图注:
等待状态下的程序缺少除cpu资源以外的其他资源,如用户指令或外设支持等资源;
就绪状态的程序除了CPU资源以外的所有资源都已经准备就绪;
处于就绪状态的程序需要排队获取CPU资源,且即使获取到了CPU资源,他们的运行时间也是有限的,因此,时间片到了以后就会从运行状态退出到就绪状态,而程序在运行时出现了某些资源的缺失则会退出至等待状态.

进程的五态模型(三态模型的发展)

image.png
图注:
该模型是三态模型的发展,将就绪状态分为了静止就绪和活跃就绪,静止就绪是该进程已经获得了CPU资源,但由于人为需要,由运行状态将其退出至就绪状态,如我们在听歌时突然来了电话,我们暂时将音乐关闭,这种人为的将程序由运行态转至的就绪态,即为静止就绪,再次调动该程序时,该程序就将由静止就绪转至活跃就绪进而被调用;
此外,阻塞态即为三态模型中的等待态

进程控制块的组织方式

分为索引方式和链接方式

  1. 链接方式:把具有同一状态的进程(PCB),用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。对其中的就绪队列常按进程优先级的高低排列,把优先级高的进程排在队列前面。此外,也可以根据阻塞原因的不同而把处于阻塞状态的进程的PCB排成等待I/O操作完成的队列和等待分配内存的队列等
  2. 索引方式:系统根据所有进程的状态建立若干索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的位置

前趋图

  1. 概念:前趋图是将一个完整的进程所需的工序按照是否具有先后关系将进程进行再次区分的图象
  2. 示例

image.png
图注:A,B,C三个步骤是平行的,他们之间可以并行,这样可以增大CPU的处理效率。

进程的同步与互斥

进程的同步

  1. 概念:运行速度有差异的两个进程同时开始运行,在一定情况下,速度较快的进程会停下来等待速度较慢的进程
  2. 示例:

image.png

进程的互斥

  1. 概念:在同一时刻只允许某一个进程使用资源,即同一资源不能服务于多个进程
  2. 示例:

image.png

PV操作

  1. 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机,磁带机等。
  2. 临界区:每个进程中访问临界资源的那段代码称为临界区。
  3. 信号量:是一种特殊的变量,符号为s,只用于pv操作

用PV操作控制进程同步与互斥时,应该在进程执行前执行P操作,在进程执行后执行V操作
image.png
单缓冲区生产者、消费者问题PV原语描述
image.png

pv操作与前趋图

image.png
图注:这种例题通过观察箭头的指向来解题,被指箭头用p操作,指向箭头就用v操作,有几个箭头就用几次。

死锁问题

死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。
image.png
最少需要(4+4+4)+1=13个资源

发生死锁的四大必要条件

  1. 进程互斥
  2. 保持和等待:在资源总量并未满足完成进程所需资源的总量前提下,每个进程都保持自身占用的资源不变并且一直等待其他进程完成以获取其释放的系统资源
  3. 不剥夺:系统不会把已分配给一个进程的资源剥夺掉分配给其他进程
  4. 环路等待:如总共有三个进程,A等待B,B等待C,C等待A;诸如此类的,等待的进程形成了一个闭合环状

注:死锁的预防就是通过打破四大条件来进行

死锁的避免

有两大方法,分别是:
1.有序资源分配法:将系统资源按照顺序分配给进程,一个进程完成后才将资源分配给下一个进程
2.银行家算法

资源分配图

image.png
image.png

  • 如果系统中剩余的可用资源数足够满足进程的需求,那么这个进程暂时是不会阻塞的,可以顺利地执行下去。
  • 如果这个进程执行结束了把资源归还系统,就可能使某些正在等待资源的进程被激活,并顺利地执行下去。
  • 相应的,这些被激活的进程执行完了之后又会归还一些资源.这样可能又会激活另外一些阳塞的讲程.

银行家算法
image.png

存储管理

分区存储组织

  • 首次适应法:首次适应法会把即将执行的作业安排在第一个能够容纳它的空间
  • 最佳适应法:该算法优先将作业存放至内存空间较小的地址。空闲区块按大小顺序连接。当前空闲的三个块分别是25,28,10。当他发现10k已经放得下,就分配出去了。该算法会造成内存空间碎片化,降低内存地址的利用率
  • 最差适应法:该算法优先将作业存放至内存空间最大的地址。该算法能够解决内存空间碎片化的问题
  • 循环首次适应法:每次为进程分配空间的时候,从上一次刚分配过的空闲区的下一块开始寻找

image.png

页式存储、段式存储、段页式存储

此部分参考:https://blog.csdn.net/imreal_/article/details/113965349

页面置换算法

image.png
https://blog.csdn.net/qq_35128300/article/details/109217440
页面的大小为100个字节,则460个字节应占5页,编号为0~4,第0页字节为0~99,第1页为100~199,依此类推。得到页面的访问序列是(0,0,1,1,0,3,1,2,2,4,4,3),可简化为(0,1,0,3,1,2,4,3)。

最佳页面置换算法(OPT)

既然带着最佳,就是最理想的算法
一句话:比比当前三个,谁将来最远被用淘汰谁
思想:为调入新页面而必须预先淘汰某个老页面时,所选择的老页面应在将来不被使用,或者是在最远的将来才被访问。以此保证获得最低的缺页率。
image.png
优点:性能最佳,缺页中断率最低。缺点:理想化的算法,无法实现。因为它需要预先知道一个进程整个运行过程中页面走向的全部情况。作用:模拟实验分析或理论分析其他算法的优劣。

先进先出法(FIFO)

很容易理解
思想:为调入新页面而必须预先淘汰某个老页面时,总是淘汰在内存中停留时间最长的一页,即先进入内存的页,先被换出
实现方法

  1. 计时器。在页面上加计时器记录最早进入的页。
  2. 队列。只需把调入内存的页面根据先后次序链接成队列,设置一个指针总是指向队首的页面。

image.png
优点:容易理解,实现简单,方便程序设计。缺点:性能不好。因为常被访问的页,通常在内存中停留最久。仅当按线性顺序访问地址空间时,才是最理想的,否则效率不高。作用:作为基础算法被应用在其他算法中。

最近最少使用置换法(LRU)

一句话:看看之前的谁最久没用过,就淘汰谁
Least Recently Used。也称“最近最久未使用置换法”。思想:当需要置换一页时,选择在最近一段时间里最久没有使用过的页面予以淘汰。理由:认为过去一段时间内未被访问过的页面,在最近的将来可能也不会被访问。
实现方法1、计数器。要求在硬件上有一个64位的计数器C(给CPU增加一个计数器C),每条指令执行完后,C的值自动加1 。在每个页表项中,增加一个“使用时间”字段(时间戳)。每一次内存访问后,C的值就被复制到被访问页面的“使用时间”字段中。系统始终保留着每个页面最后被访问的“时间”,淘汰该时间值最小的页面,即最近最久未被使用的页面。
2、栈。
用一个栈保留页号,每访问一个页面时,就把它从栈中取出,放入栈顶。要用具有首指针和尾指针的双向链把各个栈单元连起来。
image.png

image.png
图注:”没有使用快表“即表示每读一次程序的块,需要先在内存上面查表,才能读取相应的内存块,所以每一个块需要两次内存的访问,所以6个块(在页式存储结构中,每一个页面对应一个块)总共会产生12次对内存的访问;一个内存单元占据1b的内存,所有的指令(无论占据了几个页面)都只产生一次缺页中断,而操作数A和操作数B则各自产生两次缺页中断,因此总共产生了5次缺页中断

文件管理

索引文件结构

image.png

图注:索引一般会有13个节点(默认情况下),从0开始编号,其中索引0到9这十个索引称为直接索引,直接对应物理盘块,每一个物理盘块都对应了索引文件的内容,而索引10则称为间接索引,里面只存储地址,如一个物理盘块的地址大小为4个字节,而一个物理盘块的大小为4k,则4k\4字节等于1024,代表着1024个物理盘块的地址,因此该索引内可以存储的文件大小为4k1024;该10号索引称之为一级间接索引;索引11则是二级间接索引,即索引的内容还是索引,再索引的内容才是物理盘块
,二级简介索引存储的文件大小即为:4k
1024*1024;虽然分级越多存储的内容越多,但相应的,效率也会更低

文件和数型结构目录

树型目录结构的路径
1.绝对路径:是从盘符开始的路径
2.相对路径:是从当前路径开始的路径
image.png

图注:在该文件树型图中,若文件目录的位置是D1,若要求f2的路径,则绝对路径:/D1/W2/F2;相对路径:W2/F2
文件属性及文件名的组成
1.文件属性:R:只读文件属性 A:存档属性 S:系统文件 H:隐藏文件
2.文件名的组成:驱动器号;路径;主文件名;扩展名

空闲存储空间的管理

总共有四种管理方法,分别是:空闲区表法;空闲链表法;位示图法;成组链接法
空闲区表法
1.概念:我们可以用一个表来记录哪些地方是空闲的,以便将其管理起来
空闲链表法
1.概念:把空闲区域都链起来,链成一条链表,然后需要空间分配的时候,从这条链表中划出一部分出来即可
位示图法(重点)
常以计算题方式考察
1.概念:将所有存储区域分成无数个物理块,然后以1表示被占用,0表示空闲,将所有空间进行标记
2.例题:
image.png

图注:4195号是第4196个位,因此4196/32=131.125;因此物理块的使用情况应该在第132个字中描述
成组链接法

设备管理

数据传输控制方式

主要是指内存和外设之间的数据传输控制问题,解决方式包括:程序控制方式;程序中断方式;DMA方式;通道;输入输出处理机;前三种要求重点掌握
程序控制方式
1.概念:也称程序查询方式,由这种方式是最为低级的,也是CPU介入最多的一种机制,即整个数据的传输控制很多时候都要CPU的介入,此时外设会处于非常被动的位置,即不会主动的去返回信息,如是否完成等信息,而是由CPU主动发出查询指令,进而对信息进行查询
程序中断方式
1.概念:大部分与程序控制方式相同,但相较于程序控制方式,由于增加了中断方式,主动性更强,即:如果外设完成了数据的传输等操作,外设会发出中断指令,效率比程序控制方式更高
DMA方式
1.概念:也称直接存储器存取方式,在该方式中,会有专门的DMA控制器,只要是外设和内存之间的数据交换过程,就由这个控制器进行管控了,CPU只需要在开头的时候做一些介入,如初始化等操作
设备管理的五个层次
由上到下依次是:用户进程、与设备无关的系统软件、设备驱动程序、中断处理程序、硬件

虚设备与SPOOLING技术

SPOOLING技术
1.概念:例如:四个人通过远程手段准备使用一台打印机,而这台打印机在同一段时间内只能让一个用户使用,若一个用户正在使用该打印机,另一名用户试图使用该打印机时就会提示该打印机被占用,,事实上这样做使得打印机的技术非常的低,而面对这个问提,采用了SPOOLING技术的打印机会进行如下操作:给打印机创建一个缓存区,每一个用户在打印时都会进入缓存区,而从缓存区到真正打印则需要挨个排队,即打印机在打印时不再排斥其他用户的打印操作,而是将其缓存起来,在将当前操作完成后立即进行第二个操作,这样做不仅使得用户的操作界面变得更为友好,也极大的提高了打印机的打印效率

微内核操作系统

即把内核做得更小的操作系统
1.概念:把内核做的更小具有许多好处与优势,如提高了可靠性,稳定性,安全性;因为操作系统作为核心的系统软件,如果操作系统出现故障,就会影响整个系统的运行,将内核做的更小就会降低故障的发生率
2.单体内核和微内核的区别及各自优缺点如下图所示
image.png
Linux系统的常用命令
attrib:声明
modify:修改
chmod:修改文件权限
change:改变

三、计算机组成原理与体系结构

数据的表示

进制转换

  1. R进制转十进制:将每一位数字用R^k表示然后相加,k与该位与小数点的距离有关,小数点左边第一位为0,右边第一位为-1,往左递增,网往右递减,如:二进制数10100.01=12^4+12^2+1*2^-2
  2. 十进制转R进制:整数位使用短除法,即将十进制数除以R再取余,直至余数为零,然后将余数由下往上按顺序排列,小数位乘以R,每乘一次就取它的整数位( 整数位为零时就取零),直至小数位为零,然后将取得的整数位由上往下排列即可。

例如:94转二进制
image.png

  1. 二进制转八进制及二进制转十六进制:将二进制数以小数点为界向左及向右每三个一组(转八进制),或者每四个一组(转十六进制),缺的数用零来补充,然后依次转化为相应的进制数然后按顺序排列即可

image.png

原码反码补码移码

原码
数值直接转为二进制数,负数的最高位置1。
以8位为例:
+1的原码为0000 0001,-1的原码为1000 0001.
+127的原码为0111 1111,-127的原码为1111 1111.
+0的原码为0000 0000,-0的原码为1000 0000.

反码
①正数的反码和原码相同
②负数的反码,在原码基础上,符号位不变,其余各位取反
以8位为例:
-1的反码为1111 1110
-127的反码为1000 0000
-0的反码为1111 1111

补码
①正数的补码和原码相同
②负数的补码,在反码基础上,加一
以8位为例:
-1的补码为1111 1111
-127的补码为:1000 0001
+0的补码=-0的补码,为0000 0000

移码
移码的符号位与补码相反,数值位与补码相同
移码=补码+偏移量
当机器字长为8,偏移量为127时,移码=补码最高位取反。
原码和反码的+0和-0是不同的表示,而补码表示上是一致的。
-128的补码是1000 0000
image.png

浮点数运算

  1. 浮点数的概念:浮点数即科学计数法,如1000=1X10^3; 其中,1为尾数,10为基数,3为指数(阶码)。
  2. 计算机中浮点数的运算:当两个指数不等的浮点数相加时,计算机会把低阶浮点数的指数转化为高阶浮点数的指数,如:1.0X10^3+1.19X10^2,计算机会将1.19X10^2转化为0.119X10^3,然后作和,然后结果格式化(即通过指数的转化保证尾数必须为非零的一位数)如:得到11.3019X10^3以后,要化为1.13019X10^4

计算机结构

image.png

Flynn分类法

image.png

CISC与RISC(指令系统)

image.png

流水线技术

基本概念

  1. 概念:流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可以同时为多条指令的不同部分进行工作,以提高各部分的利用率和指令的平均执行速度
  2. 流程:

image.png
image.png

流水线周期及流水线执行时间计算

  1. 流水线周期计算:流水线周期为执行时间最长的一段
  2. 流水线执行时间计算:

(1)理论公式:1条指令完整执行的时间+(指令条数-1) × 流水线周期;
(2)实际公式(实际生产中工厂往往采用该方法,因为该方法效率更高):(一个完整指令的步骤数+指令条数-1) × 流水线周期;
注:计算时优先用理论公式,选项中没有该答案时再采用实际公式

流水线吞吐率计算

  1. 概念:是指在单位时间内流水线所完成的任务数量或输出的结果数量
  2. 计算公式:TP=指令条数/流水线执行时间
  3. 流水线最大吞吐率计算公式:$TP_{max}= \lim_{n \to \infty} \frac{n}{(k+n-1)\Delta t} =\frac{1}{\Delta t}$,其中$\Delta t$是流水线周期

流水线的加速比

  1. 概念:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比
  2. 加速比计算公式:不使用流水线的执行时间/使用流水线执行时间

流水线的效率

  1. 概念:指流水线的设备利用率
  2. 计算公式:E=n个任务占用的时空区/k个流水段的总的时空区=$\frac{T_{0}}{k*T_{k}}$;即从图形面积求解面积

如:
image.png
T0=(1+1+1+3)△t × 4=24△t
E= 24/(15×4)=0.4
注:所有步骤花费时间相等的指令执行的效率最高
image.png
流水线执行时间:理论公式: 5+(100-1)* 2=203
实际公式:(3+100-1)* 2=204
吞吐率:TP=100/203
最大吞吐率:TPmax=1/2
加速比:(2+2+1)* 100/203=500/203

存储系统

image.png

Cache

  1. cache的功能:提高CPU输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储器系统间数据传送带宽限制,在程序执行过程中,Cache与主存的地址映射是由硬件自动完成的。
  2. 与cache相关的计算:如果以h代表对cache的访问命中率,t1表示cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“cache+主存储器”的系统的平均周期为t3,则:t3=h*t1+(1-h)*t2;其中,(1-h)又称为失效率(未命中率)。

注:CPU会在cache中寻找它需要的数据,如果不能找到,CPU就将前往内存中寻找,而chche的访问命中率就是CPU需要的数据在cache中被找到的比例,未能找到的数据CPU将前往内存中进行再次寻找

  1. 内存与cache地址映射的三种方式:cache与内存的地址映像方式有三种,分别是直接映像(cache的区号与内存的区号一一对应)、全相连映像(cache的一个块号可以对应多个内存的块号,内存的一个块号也可以对应cache的多个块号),组相连映像(即两种方式相结合的方法)

注:这三种映射方式都是计算机硬件自动完成的,不是软件

  1. 替换算法:替换算法的目的是使cache获得尽可能高的命中率,有以下四种:随机替换算法、先进先出算法、近期最少使用算法、优化替换算法

注:现代的计算机cache系统是分为了三个级别的,访问时先从第一层开始访问,直至三个级别的cache都被访问完全时才会访问内存

  1. 虚拟存储器:即cpu在给出需要访问的内存地址时,给出的并不是真正的物理地址,而是物理地址的抽象,虚拟存储器是由主存-辅存两级存储器组成

主存

主存的分类

  1. 随机存取存储器:简称RAM,断电后所有数据都将清除,有两类RAM:静态RAM(SRAM)和动态RAM(DRAM),SRAM比DRAM速度更快,但价格也更贵。
    1. SRAM用来作为高速缓冲存储器(Cache),DRAM用来作为主存及图形系统的帧缓冲区。
    2. SRAM将每个位存储在一个双隐态的存储器单元中,DRAM将每个位存储为对一个电容的充电,由于电容非常小,在10~100ms时间内会失去电荷,所以需要周期性地刷新充电以保持信息
  2. 只读存储器:简称ROM,断电后仍然能够存储信息

主存的编址
1.概念:主存的编址就是把许多块芯片组成相应的存储器
image.png

注:一般表示方式如下图,其中左图一中的8表示它有8个地址空间,4表示每一个地址空间存储了4位的信息,而两个图一则可以拼接为图二,两个图二可以拼接为图三

2.编址相关计算:
image.png

图注:其中H表示十六进制,存储单元数量等于大的内存地址减去小的内存地址再加上一;K=1024,第一个空即为存储单元数量除以1024
解题步骤:
C7FFFH-AC000H+1=C7FFFH+1-AC000H=C8000H-AC000H=1C000H
1C000H=12×16^3+16^4,所以共有(12×16^3+16^4)/1024=112 K个地址单元
总容量112K×16,存储位数为(112K×16)/(28×16K)=4

磁盘结构与参数

存取时间=寻道时间+等待时间
image.png
最长时间为(33+3)×10+6=366ms
对信息存储进行优化分布后,结果为下图
image.png
读完R1后恰好可以进行读取R1、R2…….,所以最少时间为两圈,66ms

总线系统

概念:总线是连接计算机有关部件的一组信号线,是计算机中用来传送信息代码的公共通道。
根据总线所处的位置不同,总线通常被分成三种类型

  1. 内部总线:微机内部的,各个外围芯片与处理器之间的总线,属于芯片级别
  2. 系统总线:系统总线即为各个插线板和系统板之间的总线;包括
    1. (1)数据总线:如32位,64位等一次性能够传输的位
    2. (2)地址总线:假设该计算机的地址总线为32位,那就代表它的地址空间为2^32个字节
    3. (3)控制总线:发送相应的控制信号的总线
  3. 外部总线:即微机和外部设备的总线

注:总线上的多个部件之间只能分时向总线发送数据,但可以同时从总线接收数据

系统可靠性分析与设计

串联系统

  1. 串联系统的结构:只要一个子系统失效,则整个系统都将失效

image.png

  1. 串联系统可靠性的计算:即各个串联子系统可靠性相乘,如上图,其中R为可靠性,此外,1-可靠性即为失效率,而总的失效率即为串联各个部件的失效率作和(近似计算)

并联系统

  1. 并联系统的结构 注:少数子系统的失效将不会影响整个系统

image.png

  1. 并联系统可靠性的计算:通过计算失效率来求得可靠性,即各个子系统的失效率相乘,再由1减去它,即可得到系统可靠性

模冗余系统与混合系统

image.png
图片解释:数据输入n个子系统中,它们各自得出自己的结果,然后汇总到表决器,表决器将遵循少数服从多数的原则,输出大多数子系统得到的那个答案然后进行输出

差错控制-CRC与海明校验码

检错与纠错

  1. 检错:将错误检查出来
  2. 纠错:将错误检查出来的同时并进行纠正

码距及其作用

  1. 码距的概念:指整个编码系统中任意两个码字的最小距离,如A变化X个位得到B,则X就为码距,如:若使用2位长度的二进制编码,若以A=11,B=00为例,A,B之间的最小码距为2
  2. 码距的作用:增大码距能够起到检错的作用,因为数据在传输的过程中如果链路出现了问题,那么将会使得接收到的二进制数发生变化,若码距过小,则很可能造成信息的混淆,增大码距就使得被改变的二进制数混淆信息的概率极大的降低;若码距再进行增大,则能够起到纠错的作用,因为数据链路出错的概率比较低,只能造成传输中极少二进制数的改变,我们可以根据该传输失真的二进制数中大部分二进制数的构成来进行推断,推断出结果就达到了纠错的目的。

在一个码组内为了检测e个误码,要求最小码距d应满足:d>=e+1
在一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1

循环校验码CRC

这是一种可以检错但不能纠错的一种编码

  1. CRC的概念:在对信息进行编码的时候在其尾部加入一些校验信息,让编码后的数据能够与循环校验码的生成多项式相除余数为零,若不为零则说明传输过程出现了错误,其中,原码加上(增添在右方)校验信息加(做加法)上余数所得的码即为CRC,

注(1):生成多项式是一个二进制数,如”X^4+X^3+X+1”,这个生成多项式实际上就是二进制数11011;在相除时,需在原码后方添加一些0,添加的0的个数等于生成多项式的位数减去1,增加的0即为校验信息。
注(2):二进制的除法与算术除法相似,唯一不同的是所得除数在作减法时,减得的值要取绝对值,即0-1=1;这样使得整个除法运算中不存在借位。

海明校验码

  1. 概念:海明码是一种利用奇偶性进行检错和纠错的校验码,是一种插入到信息中的编码,一般为多个码,其插入的位置满足规律:2^r>=x+r+1;其中,x为信息的二进制数的位数,r为校验码的个数,而插入信息的位置则是2^r-1,2^r-2……2^0;如r=3时,校验码就插在1,2,4位置
  2. 海明校验码的作用:将信息转换为海明校验码形式以后,我们就能进行纠错,如信息1011,其海明校验码的正确形式为1010101,若收到了1011101,我们可以将两个数的校验码位的数提取出来,并在对应位置进行异或运算,如该例得到了001,则说明第1位’(左数第一个信息位)出错了,若得到了010,则说明第二个信息位出错了。

image.png

给出一个容易理解的题解:https://blog.csdn.net/coolskyying/article/details/78963550
第三步之后,H1就是二进制末第一位为1的(不包括自身),H2为第二位,H3为第三位

奇偶校验码

奇偶校验码是在有效信息位前边加上一位校验码,码距为2,可以检测一位错误(或奇数位错误),不能确定出错的位置。
奇校验码:整个校验码(校验位和有效信息位)中“1”的个数为奇数;
偶校验码:整个校验码(校验位和有效信息位)中“1”的个数为偶数;
收发端约定采用的是奇校验还是偶校验,然后接收端对接收的数据进行校验。比如,1011是奇校验码,0011是偶校验码。