一、存储系统 - 存储容量计算(字节编址、位编址、芯片个数)

·内存地址是16进制

·内存地址编址的单位是Byte,1K=1024B

·1B = 8 bit

1.计算存储单元个数

·存储单元个数 = 末地址 - 首地址 + 1

eg. 按字节编址,地址从 A4000H 到 CBFFFH,共有  ?  个字节

根据公式 存储单元个数 = 末地址 - 首地址 + 1 可知
存储空间 = CBFFF H − A 4000 H + 1 = 28000 H = 0010 1000 0000 0000 0000 B = 160 KB

·看清题目中是按位计算还是按字节计算,按位计算的存储容量 = 存储单元个数*存储字长;按字节计算的存储容量 = 存储单元个数*存储字长/8

eg. 一个存储器有 16 根地址线,8 根数据线,求此存储器存储容量?

按位计算:2^16 * 8 = 2^16* 2^3 bit = 2^19 b = 512KB
按字节计算:64KB

·所需芯片数 = 存储空间/存储容量

eg. 内存按字节编址,地址从A4000H到CBFFFH,共有 (160 K) 个字节。若用存储容量为 32K×8bit 的存储芯片构成该内存,至少需要 ? 片。

所需芯片数 = 160K * 8bit / 32K * 8bit = 5

二、磁盘缓冲区计算

单缓冲区:发送者和接收者无法并行工作,只能依靠修改读取顺序来优化;

双缓冲区:可以减少或消除用户进程的等待时间,计算上类似于流水线。

单缓冲区的时间花费= (读入+送至+处理)  +  (读入+送至)*(盘块数-1 )

双缓冲区的时间花费= (读入+送至+处理)  +  读入*(盘块数-1)

不做优化——366ms;进行优化——66ms;

双缓冲区的计算则类似于流水线计算。

三、磁盘读取文件

·磁盘的存取时间包括:寻道时间 + 旋转延迟时间 + 读写操作时间,即总数据块×(找磁道的时间+旋转延迟时间+传输时间)

eg.某磁盘有100个磁道,磁头从一个磁道移至另一个磁道需要6ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和20ms,则读取一个100块的文件需要( )ms

100 *(6 * 10 + 100 + 20)= 18000

四、总线带宽计算

总线带宽为32bit,时钟频率为200MHz,若总线上每5个时钟周期传送一个32bit的字,则该总线带宽为?MB/s。

32bit/8 = 4Byte  , 200MHz / 5 * 4Byte = 160MB/s

五、流水线计算

·流水线周期为执行时间最长的一段,流水线时间=1条指令执行时间 +(指令条数 -1)* 流水线周期

·流水线吞吐率=指令条数/流水线执行时间(执行时间最长的一段的倒数)

六、段页式存储计算

段号:段号相减 + 1,最多可有x段;

页号:页号相减 + 1,每段最多允许y页;

页大小:页内地址相减 + 1,页的大小为z个地址。

七、位示图计算题

位示图大小=磁盘块数量/字长多少位

磁盘块数量=磁盘容量÷物理块大小

字长=计算机字长(32位 or 64位)

位示图原理:例如32位,每一位bit采用0或1表示某一物理块是否被使用。所以32位字长的系统,1字可以统计32个块是否被使用,位示图的大小就因此而来。

eg.若计算机系统的字长为128位,磁盘的容量为2048GB,物理块的大小为8MB,假设文件管理系统采用位示图(bitmap)法记录该计算机系统磁盘的使用情况,那么位示图的大小需要( ?)个字。

磁盘容量2048G,物理块大小8MB,则磁盘共有2048GB/8MB=256*2^10个物理块,即2048*1024/8=262144;

采用位示图记录磁盘使用情况,每个磁盘块占据1bit,共需要256*2^10bit即262144bit进行记录;

每128个bit为为1个字,则共需要256*2^10/128个字,即262144/128=2048个字。

注意:从0开始编号!

系统中字长32位,即说明一个字可以存储32位;4195号是第4196个物理块,因为从0开始编号,(4195 + 1)/ 32 = 131…3 ,超过131,说明前131已经填满 ,当前物理块在第132个字中

在第132字上,从第0位置开始算,第0位置:32 * 131= 4192,第1位置:4193,以此类推,第3位置:4195

八、IP地址与子网划分

eg.假设欲将168.195.0.0划分成27个子网

计算子网掩码:

·step1:将子网数转化为二进制表示:27 = 11011

·step2:计算该二进制的位数N:11011共五位,N=5;

·step3:找出step3中掩码的主机位,将前N位置为1:属于B类,将前16位置为1,得255.255.0.0

·step4:再向后数N位,将0变为1,得到最终子网掩码:11111111.11111111.11111000.00000000=255.255.248.0

eg.假设欲将168.195.0.0划分成若干子网,每个子网内有主机700台

基本步骤相同,是将主机数转换为二进制,得到位数N,从后向前将后N位置为0,其他为1

根据子网掩码计算子网个数:

根据要划分的网络类型,A类8,B类16,以此类推,用网络号减当前的网络号。

eg.分配给某公司的网络地址块是210.115.192.0/20,可以被划分为几个C类子网?

C类网络数为24,24-20=4位,即1111=16

九、逻辑地址与物理地址转换

直接找第一位对应的物理块号,与第一位交换。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐