2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业

学习使用stat(1),并用C语言实现

  1. 提交学习stat(1)的截图
  2. man -k ,grep -r的使用
  3. 伪代码
  4. 产品代码 mystate.c,提交码云链接
  5. 测试代码,mystat 与stat(1)对比,提交截图

问题分析

stat命令

  • 定义
    1.用来显示文件的详细信息,包括inode, atime, mtime, ctime
    2.相比ls而言,stat还可以看到设备号,环境等信息。
    -常用命令
    -L:支持符号连接;
    -f:显示文件系统状态而非文件状态;
    -t:以简洁方式输出信息;
    -help:显示指令的帮助信息;
    -version:显示指令的版本信息。

来自: http://man.linuxde.net/stat

问题解决过程以及学到知识点

学习stat(1)


man 1 stat

man -k ,grep -r的使用

使用man -k stat | grep 2查找相关函数

C语言实现stat,mystat 与stat(1)截图对比

实践二

1 理解test.c, 说出程序功能
2 编译运行程序,提交运行截图

程序功能

先打印输入的前三行文本,然后读入data文档中的数据,打印其中的前三行文本。

  • 程序如下:
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

main()
{
    int fd;
    int newfd;
    char line[100];
    fgets(line,100,stdin);
    printf("%s",line);
    fgets(line,100,stdin);
    printf("%s",line);
    fgets(line,100,stdin);
    printf("%s",line);
    fd=open("data",O_RDONLY);
    newfd=dup2(fd,0);
    if(newfd!=0)
    {
        fprintf("stderr","Could not duplicate fd to 0\n");
        exit(1);
    }
    close(fd);
    fgets(line,100,stdin);
    printf("%s",line);
    fgets(line,100,stdin);
    printf("%s",line);
    fgets(line,100,stdin);
    printf("%s",line);
}

截图

问题解决过程以及学到知识点

  • fgets函数
    fgets(line, n, file) 函数功能:从 目标文件流 file 中读取 n-1 个字符,放入以 line 起始地址的内存空间中。
    程序中用于采集三次用户输入并打印出来

课上试卷

由于自己疏忽了时间导致没有交上
( 单选题 | 1 分)
下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为()
Image 5.png
A .
1
B .
1/4
C .
1/2
D .
3/4
正确答案: D 你的答案: 未作答
解析:因为填充消除了冲突不命中,所以答案等于(8-2)/8
2
( 多选题 | 1 分)
有关高速缓存的说法正确的是()
A .
高速缓存的容量可以用C=SEB 来计算
B .
高速缓存容量为2048,高速缓存结构为( 32 ,8,8,32)
C .
直接映射高速缓存要:组选择、行匹配、字抽取

D .
当程序访问大小为2的幂的数组时,直接映射高带缓存中常发生冲突不命中
正确答案: A C D 你的答案: 未作答 查看知识点 | 查看解析
解析:高速缓存结构为(( 32 ),8,8,32)
3
( 多选题 | 1 分)
The following table gives the parameters for a number of different caches. For
each cache, determine the number of cache sets (S), tag bits (t), set index bits (s),
and block offset bits (b)

Image 4.png
A .
第三行S为1
B .
第一行t为24
C .
第二行b为5
D .
第三行s的值为0
正确答案: A C D 你的答案: 未作答 查看知识点 | 查看解析
解析:第二行的t为24
4
( 多选题 | 1 分)
有关缓存的说法,正确的是()
A .
LRU策略指的是替换策略的缓存会选择最后被访问时间距现在最远的块
B .
不同层之间以字节为传送单元来回复制
C .
缓存不命时,决定哪个块是牺牲块由替换策略来控制
D .
空缓存的不命中叫冲突不命中
正确答案: A C 你的答案: 未作答 查看知识点 | 查看解析
b.不同层之间不是以字节为传送单元来回复制,而是以块为大小传输单元在层与层之间复制。

d.空缓存的不命中叫强制性不命中或冷不命中
5
( 多选题 | 1 分)
下面说法正确的是()

Image 3.png
A .
存储层次结构中最小的缓存是寄存器
B .
存储层次结构的中心思想是每一层都缓存来自较低一层的数据对象
C .
L4主存可以看作是L5:本地磁盘的缓存
D .
L4主存可以看作是L6的缓存
正确答案: A B C 你的答案: 未作答 查看知识点 | 查看解析
每一层都缓存来自较低一层的数据,L4主存可以看作L5:本地磁盘的储存,但是不能看作是L6的缓存。
6
( 单选题 | 1 分)
下面代码的步长是()
Image 2.png
A .
1
B .
N
C .
NN
D .
N
NN
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析
解析:步长值是循环体中计数器每次的增量值,因为sum += a[k][i][j]所以步长为N
N。
7
( 单选题 | 1 分)
下面代码中()局部性最差

1 #define N 1000
2 3
typedef struct {
4 int vel[3];
5 int acc[3];
6 } point;
7 8
point p[N];

A .
1 void clear1(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++)
7 p[i].vel[j] = 0;
8 for (j = 0; j < 3; j++)
9 p[i].acc[j] = 0;
10 }
11 }
B .
1 void clear2(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++) {
7 p[i].vel[j] = 0;
8 p[i].acc[j] = 0;
9 }
10 }
11 }
C .
1 void clear3(point *p, int n)
2 {
3 int i, j;
4 5
for (j = 0; j < 3; j++) {
6 for (i = 0; i < n; i++)
7 p[i].vel[j] = 0;
8 for (i = 0; i < n; i++)
9 p[i].acc[j] = 0;
10 }
11 }
D .
不确定
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析
解析:C只有时间局部性。
8
( 单选题 | 1 分)
程序中()语句具有良好的局部性
A .
顺序
B .
分支
C .
循环
D .
以上都是
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析
解析:循环体越小,循环迭代次数越多,局部性越好。
9
( 单选题 | 1 分)
下面代码,()具有差的空间局部性。
A .
1 int sumvec(int v[N])
2 {
3 int i, sum = 0;
4
5 for (i = 0; i < N; i++)
6 sum += v[i];
7 return sum;
8 }
B .
1 int sumarrayrows(int a[M][N])
2 {
3 int i, j, sum = 0;
4 5
for (i = 0; i < M; i++)
6 for (j = 0; j < N; j++)
7 sum += a[i][j];
8 return sum;
9 }
C .
1 int sumarraycols(int a[M][N])
2 {
3 int i, j, sum = 0;
4 5
for (j = 0; j < N; j++)
6 for (i = 0; i < M; i++)
7 sum += a[i][j];
8 return sum;
9 }
D .
以上都不对
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析

解析:C中按照列的顺序来扫描数组,而不是按照行的顺序,因此它是使用步长为N的引用模式来扫描。
10
( 多选题 | 1 分)
有关局部性原理,说法正确的是()
A .
程序访问一个向量,步长越小或短,空间局部性越好
B .
局部性有两种形式:空间局部性,时间局部性
C .
程序访问一个向量,步长越大空间局部性越好。
D .
硬件、OS,应用程序都会用到局部性原理
正确答案: A B D 你的答案: 未作答 查看知识点 | 查看解析
解析:程序访问一个向量,步长越小空间局部性越好。
11
( 多选题 | 1 分)
下面说法正确的是()
A .
CPU通过内存映射I/O向I/O设备发命令
B .
DMA传送不需要CPU的干涉
C .
SSD是一种基于闪存或Flash的存储技术
D .
逻辑磁盘块的逻辑块号可以翻译成一个(盘面,磁道,扇区 )三元组。

正确答案: A B C D 你的答案: 未作答 查看知识点 | 查看解析
解析:全选
12
( 单选题 | 1 分)
下面()是I/O总线
A .
USB
B .
PCI
C .
网卡
D .
图形卡
正确答案: B 你的答案: 未作答 查看知识点 | 查看解析
解析:目前PC机中采用的I/O总线是PCI总线,传输速率较高可以有多个设备共享(比如USB)总线上有三类信号,数据信号,地址信号,控制信号,用于连接外存与外设,注意I/O总线与CPU总线的区别,CPU总线用于连接主存与CPU(也可说高速缓存即Cache)
13
( 单选题 | 1 分)
图中磁盘一个扇区的访问时间约为()ms
A .
10
B .
5
C .
6
D .
8
E .
12
正确答案: A 你的答案: 未作答 查看知识点 | 查看解析
解析:平均磁盘访问时间 = 平均寻道时间 + 平均旋转延时 + 传输时间 + 控制器延时
14
( 多选题 | 1 分)
有关磁盘操作,说法正确的是()
A .
对磁盘扇区的访问时间包括三个部分中,传送时间最小。
B .
磁盘以字节为单位读写数据
C .
磁盘以扇区为单位读写数据
D .
读写头总处于同一柱面
正确答案: A C 你的答案: 未作答 查看知识点 | 查看解析
解析:

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

D.在任何时刻,所有的读/写头都位于同一个柱面上。
15
( 单选题 | 1 分)
计算下面磁盘的容量():4个盘片,100000个柱面,每条磁道400个扇区,每个扇区512个字节
A .
81.92GB
B .
40.96GB
C .
163.84
D .
327.68GB
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析
解析:磁盘容量 = 字节数/扇区 X 平均磁盘数/磁道 X 磁道数/表面 X 表面数/盘片 X 盘片数/磁盘
16
( 多选题 | 1 分)
有关磁盘,说法正确的是()
A .
磁盘的读取时间为毫秒级
B .
每张磁盘有一个表面
C .
表面由磁道组成
D .
每个扇区的面积不同,包含的数据位的数量也不一样
正确答案: A C 你的答案: 未作答 查看知识点 | 查看解析
博客园首页新随笔联系管理订阅
随笔- 49 文章- 0 评论- 57
2017-2018-1 20155323 《信息安全系统设计基础》第10周学习总结
2017-2018-1 20155323 《信息安全系统设计基础》第10周学习总结
课堂测试CH06

答案: D

解析:因为填充消除了冲突不命中,所以答案等于(8-2)/8

答案: A C D

解析:高速缓存结构为(( 32 ),8,8,32)

解析:第二行的t为24

解析:
b.不同层之间不是以字节为传送单元来回复制,而是以块为大小传输单元在层与层之间复制。

d.空缓存的不命中叫强制性不命中或冷不命中

解析:每一层都缓存来自较低一层的数据,L4主存可以看作L5:本地磁盘的储存,但是不能看作是L6的缓存。

解析:步长值是循环体中计数器每次的增量值,因为sum += a[k][i][j]所以步长为N*N。

解析:C只有时间局部性。

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

解析:函数sumarraycols()按照列的顺序来扫描数组,而不是按照行的顺序,因此它是使用步长为N的引用模式来扫描。

解析:程序访问一个向量,步长越小空间局部性越好。

解析:PCI是I/O总线。

解析:

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

D.在任何时刻,所有的读/写头都位于同一个柱面上。

解析:存储容量C=柱面(磁道)数T x 磁盘面(磁头)数H x 扇区数S x 字节数 =4x2x100000x400x512=163.84GB。

解析:

B.每个盘片有两面或者称为表面。

D.每个扇区所包含的数据位的数量是一样的。
17
( 多选题 | 1 分)
根据携带信号不同,总线可分为()

A .
系统总线
B .
数据总线
C .
内存总线
D .
地址总线
E .
控制总线
正确答案: B D E 你的答案: 未作答 查看知识点 | 查看解析
解析:总线分为数据总线、地址总线、控制总线。
18
( 多选题 | 1 分)
关于非易失性存储器,下面说法正确的是()
A .
DRAM是非易失性存储器
B .
SRAM是非易失性存储器
C .
PROM只能编程一次
D .
EEPROM可以用紫外线进行擦除
E .
存在ROM中的程序通常被称为固件
正确答案: C E 你的答案: 未作答 查看知识点 | 查看解析

解析:DRAM、SRAM是易失的。

D:EEPROM不可以用紫外线进行擦除,EPROM可以。
19
( 单选题 | 1 分)
通过使用两个时钟沿作为控制信号,对DRAM进行增强的是()
A .
FPM DAM
B .
SDRAM
C .
DDR SDRAM
D .
VRAM
E .
EDO DRAM
正确答案: C 你的答案: 未作答 查看知识点 | 查看解析

解析:双倍数据速率同步DRAM(DDR SDRAM)使用两个时钟沿作为控制信号,使DRAM速度翻倍。
20
( 多选题 | 1 分)
有关RAM的说法,正确的是()
A .
SRAM和DRAM掉电后均无法保存里面的内容。
B .
DRAM将一个bit存在一个双稳态的存储单元中
C .
一般来说,SRAM比DRAM快
D .
SRAM常用来作高速缓存
E .
DRAM将每一个bit存储为对一个电容充电
F .
SRAM需要不断刷新
G .
DRAM被组织为二维数组而不是线性数组
正确答案: A D E G 你的答案: 未作答 查看知识点 | 查看解析
21
( 多选题 | 1 分)
有关计算机存储系统,下面说法正确的是()
A .
程序具有良好的局部性表现在倾向于从存储器层次结构中的较低层次处访问数据,这样节省时间
B .
存储层次涉用不同容量,成本,访问时间的存储设备
C .
存储层次设计基于局部性原理
D .
“存储山”是时间局部性和空间局部性的函数
正确答案: B C D 你的答案: 未作答 查看知识点 | 查看解析

 posted on 2017-11-26 20:16  20155327李百乾-  阅读(298)  评论(0编辑  收藏  举报