<span>软考计算机系统知识</span>

 

 

 

考点归纳

1、数值的计算

各进制数相互间的转换、二进制的特点、原码、反码、补码、移码的特点、数值的表示范围

2、计算机系统的组成

计算机包含的部件、常见的寄存器及各寄存器的作用重点、计算机的性能和基本工作原理、计算机体系结构的分类、指令系统基础、寻址方式重点、CISC和RISC、流水线工作原理、流水线的计算重点、总线系统

3、存储系统

存储器的分类、主存-Cacher的工作原理、命中率计算、存储芯片容量计算重点、虚拟存储器重点、RAID类型和特点、主存、存储器地址编码

4、可靠性与性能评价

可靠性计算重点、系统性能评价

5、校验码

循环冗余校验码(CRC)、海明效验码、奇偶校验码的基本原理

6、输入输出

常见的I/O设备、I/O控制方式

基础知识

硬件基本组成

  • 计算机系统是由硬件与软件组成的
  • 计算机系统的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备
  • 运算器与控制器等部件被集成为CPU
  • 存储器分内存与外存
  • 输入设备与输出设备统称外部设备

中央处理单元CPU

  • 功能:程序控制、操作控制、时间控制、数据处理以及对系统内外的中断做出响应并及时处理
  • 组成:运算器、控制器、寄存器组
  • 运算器
    • 算术逻辑单元ALU:负责处理数据,实现对数据的算术运算和逻辑运算
    • 累加寄存器AC:为ALU提供一个工作区,维持ALU的运算
    • 数据缓冲寄存器DR:对内存储器进行读/写操作时,暂时存放其指令或数据字,将不同时间段的数据分隔
    • 状态条件寄存器PSW:保存由指令运行或测试的结果建立的各种条件码内容
  • 控制器
    • 指令寄存器IR:当CPU执行一条指令时,先将它从内存储器取到缓冲寄存器中,再送入IR暂存
    • 程序计数器PC:寄存信息、计数功能
    • 地址寄存器AR:保存当前CPU所访问的内存单元的地址
    • 指令译码器ID:对指令中的操作码字段进行分析解释,识别操作
    • 寄存器组
      • 分专用寄存器、通用寄存器

数据表示

  • 进制转换

    • 十进制转二进制
      把被转换的十进制整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简称“除2取余法”。
    例: (221)10=(11011101)2
    
    • 二进制转十进制
      方法是:二进制数按权展开求和。
    例:(10110)2转换成十进制数(22)10
    
  • 原码、反码、补码和移码

    • 1、带符号数的表示
      通常的做法是约定一个数的最高位为符号位,若该位为0,则表示正数;若该位为1,则表示负数。

      1.原码
      用最高位表示符号位,数值部分用二进制绝对值表示,这就是原码的表示方法。

      例如:+11的原码:00001011    -11的原码是:10001011
      

      2.反码
      原码变反码规则:正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变为0) 。

      +11的原码:00001011    
      -11的原码是:10001011 
      例如:+11的反码:00001011    -11的反码是:11110100
      

      3.补码
      补码规则为:正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变为0),最后在末尾加1。

      +11的原码:00001011    
      -11的原码是:10001011 
      例如:+11的补码:00001011    -11的补码是:11110101
      

      将补码转换为真值:[[X]补]补=[X]原

      4.移码(增码)
      无论正数、负数,在补码的基础上对符号位取反,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。

      +11的补码:00001011    
      -11的补码是:11110101 
      例如:+11的移码:10001011    -11的移码是:01110101
  • 负数的左移右移
    • 1)负数的右移:负数右移的话,由于要保持它是负数,所以负数的二进制的右边补1。如果一直右移的话,最后就就变成0xFFFFFFFF 即-1
      如: -4>>1 为-2 ;-4>>2为-1

    • 2)负数的左移:跟正整数左移一样,右边补0,一直左移的话,最后就是0啦。-2<<2 为-4 ; -2<<31为0
        

  • 定点数与浮点数

    • 计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。对于既有整数部分、又有小数部分的数,一般用浮点数表示。

      1、定点数

      • 定点整数:小数点的位置固定在最低位的右边,不占位
      • 定点小数:小数点的位置固定在符号位与最高数值位之间,表示一个纯小数。

      2、浮点数
      用类似科学计数法来表达,即
      N=M*Re
      M称为尾数,R称为基数,e为阶码(指数)
      比如 1001.101 的规范浮点数表达为 1.001101 ×23

      浮点数利用指数达到了浮动小数点的效果,从而灵活地表达更大范围的实数。

    • 原码定点整数-(-1+2(n-1))~+(-1+2(n-1)),定点小数-(1-2(1-n))~+(1-2(1-n))

    • 反码定点整数-(-1+2(n-1))~+(-1+2(n-1)),定点小数-(1-2(1-n))~+(1-2(1-n))

    • 补码定点整数-2(n-1)~+(-1+2(n-1)),定点小数-1~+(1-2^(1-n))

    • 移码定点整数-2(n-1)~+(-1+2(n-1)),定点小数-1~+(1-2^(1-n)) -

  • 校验码

    • 奇偶校验码:在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数,使码距变为2

      • 奇偶校验较简单,串口通信中使用奇偶校验作为数据校验的方法 。
      • 奇校验:被传输的有效数据中“1”的个数是奇数个,校验位 填“0”,否则填“1”;
      • 偶校验:被传输的有效数据中“1”的个数是偶数个,校验位 填“0”,否则填“1”。
      例:奇校验 1000110(0) 
      偶校验 1000110(1)
      

      使用一位奇偶校验的方法能够检测出一位错误,但无法判断是哪一位出错。
      当发生两位同时出错的情况时,奇偶校验也无法检测出来。所以奇偶校验常用于对少量数据的校验,如一个字节。

    • 海明码:设数据位是n位,校验位是k位,其关系:-1+2^k >= n+k

      • 还需要记住以下几个关键的关系。
        • 可查出多少位错误:可以发现“ ≤码距-1” 位的错误。
        • 可以纠正多少位错误:可以纠正“ <码距/2” 位的错误,因此如果要能够纠正n位错误,所需最小的码距应该是“ 2n+1” 。
      1. 海明码的原理
        在数据中间加入几个校验码,码距均匀拉大,当某一位出错,会引起几个校验位的值发生变化。
      2. 海明不等式:
        校验码个数为k,可以表示2k个信息,1个信息用来表示“没有错误”,其余2k -1个表示数据中存在错误,如果满足2k-1≥m+k( m+k为编码后的数编总长度),则在理论上k个校验 码就可以判断是哪一位(包括信息码和校验码)出现了问题。
      3. 海明码的编码规则
        校验位依次放在第2i(i=0,1,2,3…)位,其余位置为信息位。

        4个信息位k0,k1,k2,k3;3个校验位r0,r1,r2。
        第 i 个信息位的位数为参与校验它的校验位的位数之和。
        如上例 7=4+2+1;6=4+2;5=4+1;3=2+1。

        若三个校验方程都成立,即方程式右边都等于0,则说明没有出现错误。若不成立,即方程式右边不等于0,说明有错。 从三个方程式右边的值,可以判断那一位出错。出错位置为从下向上看相应的二进制数值,若三个方程式右边的值为100,说明第4位出错。
    • 循环冗余效验码CRC:若信息码是k位,则校验码即为n-k位,n为CRC码的字长

      •   例:信息位为1010 0110,生成多项式为 
          a(x)= X5+X4+X+1,则: 
          1010 0110 左移5位-> 1010 0110 0000 0 
          用1010 0110 0000 0 和110011 进行模2运算(异或) 
          余11000 
          即校验码11000,所以CRC码是1010 0110 11000。
        

计算机体系结构

  • 体系结构的发展
    • 常见的分类法包括Flynn、冯氏分类法两种。

    • 根据指令流、数据流和多倍性三方面进行分类。

    • 流水线技术
      流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。

    • (1)计算执行时间

      • 假定有某种类型的任务,可分成N个子任务,每个子任务需要时间t,则完成该任务所需的时间为N×t
      • 若以传统的方式,完成k个任务所需的时间是kNt
      • 使用流水线技术,花费的时间是Nt+(k-1)t

      注意,如果每个子任务所需的时间不同,其时间取决于执行顺序中最慢的那一个。
      例1:若指令流水线把一条指令分为取指令、分析和执行三部分 ,三部分的时间分别是取指令2ns,分析2ns,执行1ns。最长的是2ns,因此100条指令全部执行完毕所需要的时间是:

      (2ns+2ns+1ns)+(100-1) x2ns=203ns
      

      吞吐率为 100×109 /203=4.93×108/s

      • ①流水线的吞吐率 TP=n/Tk
        指在单位时间内流水线所完成的任务数量或输出的结果数量。
        n为任务数,Tk是处理完成n个任务所用的时间
      • ②加速比
        是指不采用流水线的执行时间/采用流水线的执行时间。
        用来衡量并行系统或程序并行化的性能和效果。
        例1中的加速比为 500/203=2.46
        (如果不采用流水线,则执行100条指令需要500 ns)。
    • (2)影响流水线的主要因素

      • 转移指令:因为前面的转移指令还没有完成,流水线无法确定下一条指令的地址,因此也就无法向流水线中添加这条指令。
      • 共享资源访问的冲突:后一条指令需要使用的数据,与前一条指令发生冲突,或者相邻的指令使用了相同的寄存器
      • 响应中断:当有中断请求时,流水线也会停止。对于这种情况有两种响应方式:
      • 精确断点法:立即停止,这种方法能够立即响应中断;
      • 不精确断点法:流水线中的指令继续执行,不再新增指令到流水线。
      • 指令系统
        • CISC复杂指令集计算机
        • RISC精简指令集计算机
    • 存储系统

      • 分类
        • 按所处位置分:内存、外存
        • 构成材料分类:磁存储器、半导体存储器、光存储器
        • 工作方式分:读/写存储器、只读存储器
        • 按寻址方式分类:随机存储器RAM、顺序存储器SAM、直接存储器DAM
      • 相联存储器
      • 高速缓存
      • 虚拟存储器
      • 外存储器
      • 磁盘阵列技术
    • 输入/输出技术

    • 总线结构

      • 分类:数据总线、地址总线、控制总线

安全性、可靠性与系统性能评测基本知识

  • 安全概述
    • 计算机的安全等级:A1>B3>B2>B1>C2>C1>D
    • 安全威胁:授权侵犯、拒绝服务、窃听、信息泄露、截获/修改、假冒、否认、非法使用、人员疏忽、完整性破坏、媒体清理、物理入侵、资源耗尽
  • 影响因素
  • 加密与认证技术
    • 加密技术
      • 对称加密算法:DES、3DES、RC-5、IDEA、AES
      • 非对称加密算法:RSA、
    • 认证技术
      • 机构认证、数字证书库、密钥备份与恢复系统
      • MD5是一种Hash函数
  • 计算机可靠性
    • 串联系统:R=R1R2R3……
    • 并联系统:R=1-(1-R1)(1-R2)……(1-Rn)
  • 系统的性能评价
    • 常用方法:时钟频率、指令执行速度、等效指令速度法、数据处理速率、核心程序法
    • 基准测试程序

这一章主要知识点就这么多!!!如有不足,请留言!

 

全部评论

相关推荐

10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
评论
2
2
分享
牛客网
牛客企业服务