您的位置:首页 > 其它

2017-2018-1 20155314 《信息安全系统设计基础》第9周学习总结

2017-11-19 19:16 411 查看

2017-2018-1 20155314 《信息安全系统设计基础》第9周学习总结

教材学习内容总结

学习目标

了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)

理解局部性原理

理解缓存思想

理解局部性原理和缓存思想在存储层次结构中的应用

高速缓存的原理和应用

教材内容提炼

第6章 存储器层次结构

6.1 存储技术

6.1.1 随机访问存储器

随机访问存储器(RAM)(易失性存储器)

分为两类

静态RAM(SRAM)

动态RAM(DRAM)

SRAM比DRAM更快,但更贵

传统的DRAM


内存模块(MM)


增强的DRAM

快页模式DRAM(FPM DRAM)

扩展数据输出DRAM(EDO DRAM)

同步DRAM(SDRAM)

双倍数据速率同步DRAM(DDR SDRAM)

视频RAM(VRAM)

只读存储器(ROM)(非易失性存储器)

可编程ROM(PROM)

可擦写可编程ROM(EPROM)

电子可擦除PROM(EEPROM)

闪存(FLASH)

固态硬盘(SSD)

访问主存



CPU chip:CPU芯片

Register file:寄存器文件

ALU:算术逻辑单元

Bus interface:总线接口

System bus:系统总线

I/O bridge:I/O桥

Memory bus:内存总线

Main memory:主存

6.1.2 磁盘存储

磁盘构造

磁盘(disk):由一个或多个叠放在一起的盘片组成,被封装在一个密封的包装里。整个装置通常被称为磁盘驱动器,简称为磁盘(又称旋转磁盘,以区别基于闪存的固态硬盘(SSD没有移动部分))



盘片(platter):磁盘由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料

磁道(track):每个表面由一组称为磁道的同心圆组成

扇区(sector):每个磁道被划分为一组扇区

间隙(gap):扇区之间由一些间隙分隔开

柱面(cylinder)

磁盘容量

记录密度(recording density)(位/英寸)

磁道密度(track density)(道/英寸)

面密度(areal density)(位/平方英寸)

计算公式:


磁盘操作



磁盘以扇区大小的块来读写数据

访问时间

寻道时间

旋转时间


传送时间


逻辑磁盘块

连接I/O设备

总线

数据总线

控制总线

地址总线

系统总线

存储总线

I/O总线

连接到总线的设备

通用串行总线(USB)

图形卡(或适配器)

主机总线适配器

其他设备(如网络适配器)

访问磁盘



6.1.3 固态硬盘



6.1.4 存储技术趋势

不同的存储技术有不同的价格和性能折中

不同存储技术的价格和性能属性以截然不同的速率变化着

6.2 局部性

局部性原理

两种不同的形式

时间局部性

空间局部性

有良好局部性的程序比局部性差的程序运行得更快

6.2.1 对程序数据引用的局部性

步长为1的引用模式:顺序访问一个向量每个元素

步长为k的引用模式:一个连续向量中每隔k个元素进行访问

随着步长的增加,空间局部性下降

6.2.2 取指令的局部性
6.2.3 局部性小结

重复引用相同变量的程序有良好的时间局部性

对于:

具有步长为k的引用模式的程序,步长越小,空间局部性越好

具有步长为1的引用模式的程序有良好的空间局部性

在内存中以大步长跳来跳去的程序的空间局部性会很差

对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好

6.3 存储器层次结构

存储技术

计算机软件

典型的存储器层次结构



6.3.1 存储器层次结构中的缓存

缓存命中

缓存不命中

缓存不命中的种类

缓存管理

6.3.2 存储器层次结构概念小结

利用时间局部性

利用空间局部性

6.4 高速缓存存储器



6.4.1 通用的高速缓存存储器组织结构



高速缓存参数小结


6.4.2 直接映射高速缓存



6.4.3 组相联高速缓存
6.4.4 全相联高速缓存
6.4.5 有关写的问题
6.4.6 一个真实的高速缓存层次结构的解剖
6.4.7 高速缓存参数的性能影响

6.5 编写高速缓存友好的代码

6.6 综合:高速缓存对程序性能的影响

6.6.1 存储器山



6.6.2 重新排列循环以提高空间局部性
6.6.3 在程序中利用局部性

课后实践:mypwd

实践要求

加分题-mypwd的实现

学习pwd命令

研究pwd实现需要的系统调用(man -k; grep),写出伪代码

实现mypwd

测试mypwd

提交过程博客的链接

思想

直接调用函数getcwd()

getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数maxlen为buffer的空间大小。可以采取令buffer为NULL来使getcwd()调用malloc给buffer动态分配空间。

代码

#include <stdio.h>
#include <unistd.h>
int main(){
printf("当前路径为:%s\n",getcwd(NULL,0));
return 0;
}

运行截图



代码调试中的问题和解决过程

无法打开Y86-64模拟器界面



解决方法

这是Y86-64模拟器的Makefile中配置GUI相关路径错误导致的,解决方法是将两个GUI路径分别设置为
TKLIBS=-L/usr/lib -ltk8.5 -ltcl8.5
TKINC=-I/usr/include/tcl8.5
即可,如下图:



成功打开Y86-64模拟器:



代码托管



上周考试错题总结

CH03

假设用ADD指令完成C表达式t=a+b的功能,有关条件码寄存器的说法正确的是()

A. 若t==0 ,则ZF=1

B. 若t<0, 则CF=1

C. 若t<0, 则SF=1

D. 若(a<0==b<0)&&(t<0 != a<0), 则OF=1

E. 若(a<0==b<0)&&(t<0 != a<0), 则CF=1

F. leaq指令不影响条件码寄存器

G. cmp指令不影响条件码寄存器

【错选】A B D G

【答案】A D F

【解析】参考课本p135

以下代码是将void decode1(long xp, long yp, long *zp)反汇编的结果,下面说法正确的是()



A. 从汇编代码看出,decode1的参数先入栈的是zp

B. 从汇编代码看出,decode1的参数先入栈的是xp

C. 函数功能等价于 t=x; x=y; y=z; z=t;

D. 函数功能等价于 x=y; y=z; z=x;

【错选】B C

【答案】C

对于图中内存地址和寄存器的值,下面说法正确的是()



A. %rax的值是0x100

B. (%rax)的值是0x100

C. (%rax)的值是0x104

D. (%rax)的值是0xFF

E. 4(%rax)的值是0xAB

F. (%rax,%rcx,4)的值是0xAB

G. (%rax,%rcx,4)的值是0x104

【错选】A D E

【答案】A D E F

【解析】参考课本p121

CH08

有关exec系列函数,下面说法正确的是()

A. 可以用char[][] 来传递argv

B. 进程调用了exec系列函数后,pid会变

C. 进程调用了exec系列函数后,代码会改变

D. system()和exec系列等价

E. exec系列函数中带e的要传入环境变量参数

F. exec系列函数中带v的要传入环境变量参数

【错选】A C E

【答案】C E

【解析】不能用char[][] 来传递argv,结尾的0(null)无法处理;system=fork+exec+wait;

有关wait类系统调用,说法正确的是()

A. wait(&status) 等价于waitpid(-1, &status, 0)

B. 父进程中执行waitpid, 等待集合中的所有子进程结束了才返回

C. 父进程中执行waitpid, 等待集合中的任一子进程结束了才返回

D. 子进程中的退出状态在wait的status参数返回

【错选】A B D

【答案】A C D

【解析】参考课本p516 517 518

有关fork(),下面说法正确的是()

A. 一次调用,两次返回

B. 子进程中,fork()返回子进程PID

C. 子进程可以读写父进程中打开的文件

D. 子进程和父进程的用户级虚拟地址空间相同但独立

【错选】A D

【答案】A C D

【解析】参考课本p514

关于代码 int main(){} 说法正确的是()

A. 返回值是0

B. 返回值不确定

C. 会调用exit(0)

D. 返回值大于0

E. 上面代码运行完,在命令行中运行echo $? 的值是0

【错选】A E

【答案】A C E

【解析】main中不调用exit,会补上exit(0)

用户进程可以通过()访问内核代码和数据

A. 特权指令

B. 系统调用

C. 模式位

D. 程序计数器

【错选】C

【答案】B

【解析】参考课本p510

进程上下文包括程序的( )

A. 代码和数据

B. 栈

C. 通用寄存器中的内容

D. 程序计数器

E. 环境变量

F. 打开的文件描述符的集合

【错选】B C D F

【答案】A B C D E F

【解析】参考课本p508

Linux中,信号(Signal)是一种()异常控制流。

A. 硬件层

B. 操作系统层

C. 用户层

D. 网络层

【错选】B

【答案】C

【解析】参考课本p501

结对及互评

本周结对学习情况

20155323

结对学习内容

- 教材第1章 计算机系统漫游

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2002/220/20
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

计划学习时间:5小时

实际学习时间:2小时

参考资料

《深入理解计算机系统V3》学习指导

IEEE 754 Calculator

GNU Linux核心命令和工具的源代码路径

mac 自带 ftp工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐