一、存储系统 - 存储容量计算(字节编址、位编址、芯片个数)
·内存地址是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
九、逻辑地址与物理地址转换
直接找第一位对应的物理块号,与第一位交换。