软件设计师,经典计算题
计算题
缓冲区
问: 设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10us,由缓冲区送至用户区的时间是5us,系统对每个磁盘块数据的处理时间为2us,若用户需要将大小为10个磁盘块的Doc文件逐块从磁盘读入缓冲区送至用户区进行处理,那么采用单缓冲区需要花费时间为(1)us;采用双缓冲区需要花费的时间为(2)us。
解题思路: 缓冲区到用户区域只要推送完成,就可以继续读取,而同时处理数据
解
- 单缓冲区:
第一个磁盘处理: 10+5+2
第二个磁盘处理: 从缓冲区到用户区域只要推送完成就可以开始读取了,也就是与2并行,所以从第二个磁盘开始,每次节省2,时间为15
那么: 17+15×9 = 152 - 双缓冲区:
第一个磁盘处理: 10+5+2
第二个磁盘处理: 由于是双缓冲区,所以可以不停读取,主要取决于处理速度,所以第二个磁盘的读取可以在第一个磁盘读取后开始(逐块从磁盘读入缓冲区),然后开始处理,也就是第一个的推送+处理时间7与第二个磁盘的读取时间重合,第二个一共需要17,重合了7,所以剩余10
第三个磁盘处理:…
那么: 17+10×9 = 107
顺序执行,流水线执行
问 通常可以将计算机系统中执行一条指令的过程分为取指令,分析和执行指令3步。若取指令时间为5△t,分析时间为3△t、执行时间为2△t,按顺序方式以头到尾执行完200条指令所需时间为();
若按照执行第i条,分析第i+1条,读取第i+2条重叠的流水线方式执行指令,则从头到尾执行完200条指令所需时间为()△t.
解
- 顺序执行
第一个命令: 5+3+2
第二个命令: 同样如此
所以一共需要10*200 = 2000△t - 流水线执行
第一个命令: 5+3+2
第二个命令: (若按照执行第i条,分析第i+1条,读取第i+2条重叠的流水线方式执行指令)第一条执行的时候,第二条已经开始分析,那么也就是第一条执行之前第二条就要开始读取,也就是从第一条分析开始,第二条就开始了读取,所以第二条与第一条的分析、执行并行读取,所以第二条一共用分析3+执行2 共5△t
所以: 一共需要10+5*199 = 1005△t
位图
问 某文件管理系统在磁盘上建立了位示图(Btmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0.1.2…;系统中的字长为32位,位示图中字的编号依次为:0.1.2…,每个字中的一个二进制位对应文件存储器上的一个物理块,取值0和1分别表示物理块是空闲或占用,假设操作系统将2039号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为(1)的字中描述;系统应该将(2)。
解
因为 2039/32=63…23 所以,位示图编号为63(第64个) 字号为23 (第24个)
索引
问 某文件系统文件存储采用文件索引节点法,假设每个地址项大小为4字节,文件索引节点中有8个地址项iadd[0]-iadd[7],前6个地址项为直接地址索引;第7个是一级间接地址索引;第8个是二级间接地址索引:磁盘察引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是(1)KB,若逻辑块从0开始编号,要访问iclscClientd文件的运辑块号分别为6、593和1038,则系统应分别采用(2)
解
由于磁盘察引块大小为4KB, 每个地址项大小为4字节也就是4B
所以一个索引块共有地址项:4KB/4B= 1024个
由于磁盘数据块大小均为4KB;
且前6个地址项为直接地址索引,所以0-5 共索引磁盘大小为: 64KB = 24KB
第7个是一级间接地址索引,共索引磁盘大小为10244KB = 2048KB
第8个是二级间接地址索引,102410244KB = 4,194,304KB
所以: 共索引磁盘大小为 4,196,376KB
逻辑块6 也就是6号 第七个,所以是一级间接索引
第七个中的索引号范围为6-1029 , 所以593也在范围中
1038 明显已经超过了第七个的范围,所以在第八个索引号范围中
所以分别采用一级间接索引、一级间接索引、二级间接索引
存储单元,编制内容
问 内存按字节编址,利用8Kx4bit的存储器芯片构成84000H到8FFFFH的内存,共需( )片。
解
编址大小: 一个字节=8bit
总的存储单元个数: 8FFFFH-84000H+1 = C000H
总存储大小为: C000H × 8bit
由于单个存储器芯片大小为8K×4bit
所以需要 C000H × 8bit / 8K×4bit = 12×16^3 × 8bit / 8K×4bit =
12×2^12 × 8bit / 8×2^10×4bit = 12