期中总结

课本总结

 

第1章 计算机系统漫游

 

信息

 

  • 位+上下文

 

系统中全部信息都是由一串位表示的,区分不一样数据对象惟一方法是读到这些数据对象时的上下文。缓存

 

程序被翻译成不一样格式

 

  • 编译系统

 

预处理器、编译器、汇编器、连接器ruby

 

存储设备层次结构

 

  • 核心思想:缓存
  • 操做系统核心抽象:文件、虚存、进程、虚拟机

(二)第二章 信息的表示和处理

1. 字长:指明整数和指针数据的标称大小。一个字长为w的机器的虚拟地址范围为0~2^(w-1),程序最多访问2^w个字节。学习

2. int 、char 4字节,单精度float 字节,双精度double 8字节。spa

3.三种最重要的数字表示:无符号、补码、浮点数。操作系统

4. 运算:整数运算、浮点运算。翻译

5. 小端法和大端法指针

  • 小端法:最低有效字节在前面——“高对高,低对低”code

  • 大端法:最高有效字节在前面对象

6.布尔代数:进程

  • 与: &
  • 或: |
  • 非: ~
  • 异或:^

7. 逻辑运算符

  • 与:&&
  • 或:||
  • 非:!

8. 逻辑运算和位运算的区别

  • 只有当参数被限制为0或1时,逻辑运算才与按位运算有相同的行为。
  • 若是对第一个参数求值就能肯定表达式的结果,逻辑运算符就不会对后面的参数求值。

9. 移位运算

  • 逻辑右移:在左端补k个0,多用于无符号数移位运算
  • 算术右移:在左端补k个最高有效位的值,多用于有符号数移位运算。

10. 有符号数和无符号数的转换

(1)有符号数→无符号数:

  • 非负数——保持不变
  • 负数——转换成大正数

(2)无符号数→有符号数:

  • 小于2的w-1次方——保持不变
  • 大于2的w-1次方——转换为负数值

11.扩展

  • 零扩展:多用于无符号数转换为一个更大的数据类型,只需在开头加上0便可。
  • 符号扩展:多用于补码数字转换,最高有效位是什么,就添加什么。

12.截断数字

将一个w位的数截断为k位数字时,就会丢弃高w-k位。

  • 对于无符号数来讲,就至关于 mod 2的k次幂
  • 对于有符号数来讲,先按照无符号数截断,而后再转化为有符号数

13.舍入

  • 向偶舍入:将数字向上或向下舍入,是的结果的最低有效数字为偶数。能用于二进制小数。
  • 向零舍入:把整数向下舍入,负数向上舍入。
  • 向下舍入:正数和负数都向下舍入。
  • 正数和负数都向上舍入。

第三章 程序的机器级表示

1.操做数的三种类型

  • 当即数
  • 寄存器
  • 存储器

2.寻址方式:

1.当即数寻址方式
2.寄存器寻址方式
3.存储器寻址方式
  • 直接寻址方式
  • 寄存器间接寻址方式
  • 寄存器相对寻址方式
  • 基址变址寻址方式
  • 相对基址变址寻址方式

4.mov类指令:将源操做数的值复制到目的操做数中。源操做数指定的值是一个当即数,存储在寄存器中或存储器中。目的操做数制指定一个位置,要么是一个寄存器,要么是一个存储器。

  • movb 传送字节
  • movw 传送字
  • movl 传送双字
  • movs 符号位扩展
  • movz 零扩展

push:把数据压入栈中

pop:删除数据

  • 后进先出
  • 栈指针指向栈顶元素
  • 栈朝低地址方向增加

5.栈帧:

为单个过程分配的那部分栈称为栈帧。

最顶端的栈帧以两个指针界定:

  • 寄存器%ebp-帧指针
  • 寄存器%esp-栈指针

1.call

CALL指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。

返回地址是还在程序中紧跟在call后面的那条指令的地址。

2.ret

ret指从栈中弹出地址,并跳转到这个位置。

3.leave

这个指令使栈作好返回的准备

 

第4章 处理器体系结构

1.Y86指令集体系结构

具体使用结合练习

  • 异常
    halt指令、非法指令、访问非法地址

    2.HCL硬件控制语言

  • 数字系统

    组合逻辑、存储器元素、时针信号
  • 表达式

    AND:&& OR:|| NOT:!

    3.Y86的顺序实现

    取指、译码、执行、访存、写回、更新PC

第六章 存储器层次结构

1. 存储器系统是一个具备不一样容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最经常使用的数据。小而快的高速缓存寄存器靠近CPU,下层存储设备慢而大、便宜。

2. 基本存储技术

  • SRAM存储器
  • DRAM存储器
  • ROM存储器
  • 旋转和固态的硬盘

3. 随机访问存贮器:分为静态(SRAM)和动态(DRAM)两类,SRAM更快更贵,用来做为高速缓存存储器。DRAM用来做为主存以及图形系统的帧缓冲区。

  • 静态RAM:将每一个位存储在一个双稳态的存储器单元里,只要有电就会永远保持它的值。
  • 动态RAM:将每一个位存储为对一个电容的充电,当电容的电压被干扰后就存储器单元就永远不会恢复了。存储器系统必须周期性地经过读出,而后重写来刷新存储器的每一位。

4. 访问主存:数据流经过称为总线的共享电子电路在处理器和DRAM主存之间来回。读事物 从主存传送数据到CPU,写事物从CPU传送数据到主存。

  • 总线是一组并行的导线,能携带地址、数据和控制信号。
  • 计算机系统配置:CPU芯片、I/O桥、组成主存的DRAM存储器模块
  • 系统总线链接CPU和I/O桥,存储器总线链接I/O桥和主存

5. 磁盘构造:磁盘由盘片构成,每一个盘片有两面或称为表面,盘片中央有一个可旋转的主轴,它使盘片以固定的旋转速率旋转。

6. 磁盘容量=字节数/扇区 * 平均扇区数/磁道 * 磁道数/表面 * 表面数/盘片 * 盘片数/磁盘

7. 对扇区的访问时间有三个主要部分:寻道时间、旋转时间、传送时间

  • 寻道时间:为了读取某个目标扇区的内容,传动臂首先将读写头定位到包含目标扇区的磁道上。移动传动臂所需的时间称为寻道时间。
  • 旋转时间:最大旋转延迟Tmax rotation=1/RPM * 60secs/1min。平均旋转时间Tavg rotation的一半。
  • 传送时间:Tavg transfer=1/RPM * 1/(平均扇区数/磁道) * 60secs/1min
  • 估计总访问时间=Tavg seek+Tavg rotation+Tavg transfer。由于寻道时间和旋转延迟大体相等,因此将寻道时间乘以2可简单估计磁盘访问时间。

8. 局部性:时间局部性、空间局部性

  • 重复引用同一个变量的程序有良好的时间局部性。
  • 对于具备步长为k的引用模式的程序,步长越小空间局部性越好。具备步长为1的引用模式的程序有很好的空间局部性。在存储器中以大步长跳来跳去的程序空间局部性不好。
  • 对于取指令而言,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

本身的收获

说实话这种学习模式仍是真的挺累的,若是每一科的老师都用娄老师这样的学习模式,那咱们基本大三能够不过了~!~不过好在就这一门课,虽然挺累可是也还在接受范围以内,只是让大三变得没有想象中那么轻松,还要感谢上学期JAVA那门课,让这学期再次接触到娄老师的这种风格教学不会特别难适应。转眼学期了过半了,咱们也学习了第1、2、3、4、六章了。通过这几章的学习也到达了课本名字的效果,深刻理解计算机系统、对计算机系统的结构层次也更加清楚明了。经过同窗和本身查阅书本上不少深奥,难懂的抽象的东西也能慢慢的消化掉

本身的不足

这种学习模式存在一种弊端,就是记得不牢固,常常出现学哪一章的时候,那一周对这一章知识有印象,能掌握一些,可是一旦学习下一章再也不回忆以前的东西时,过那么几周,以前的知识感受消失殆尽。我以为本身还须要对以前的知识多一点巩固和温习。让知识在脑海里更加牢固一点。

相关文章
相关标签/搜索