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 <stdio.h>

    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 你的答案: 未作答 查看知识点 | 查看解析

2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业的更多相关文章

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

    2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习st ...

  2. 20155229 《信息安全系统设计基础》 week10 课上测试ch06

    1( 单选题 | 1 分) 下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为() A . 1 B . 1/4 C . 1/2 D . 3/4 正确答案: D 解析:填充消除 ...

  3. 课堂练习&课下作业----用户场景分析

    典型用户1 ·小明---一名普通大学生生 名字 小明 性别.年龄 男,19岁 职业 大学生 收入 无 知识层次和能力 石家庄铁道大学学生,善于交际. 生活/工作情况 成绩优异,各方面技能突出 动机,目 ...

  4. 课堂练习&课下作业

    设计思路: 列举出买十本的所有情况:1.一本的时候不打折扣 2.两本的时候买两本价最低 3.三本的时候买三本价最低 4.四本的时候买四本价最低 5.五本的时候买五本价最低 6.六本的时候分一本和五本价 ...

  5. 软件工程课堂练习&课下作业

    题目:返回一个整数数组中最大子数组的和.一.设计思路按顺序定义子数组的和,如果为负,则选下一位数为子数组的和,反之则两个相加为子数组的和.二.源代码 package test;import java. ...

  6. 20155326 2017-2018-1 《信息安全系统设计基础》第2周学习及课堂总结myod

    20155326 2017-2018-1 <信息安全系统设计基础>第1次学习及课堂总结myod 虚拟机之前出了一些问题,然后我重新弄了一个新的虚拟机. 先在虚拟机里面安装了git. 安完以 ...

  7. 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客

    20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...

  8. 20155217 《信息安全系统设计基础》week16课堂测试

    20155217 <信息安全系统设计基础>week16课堂测试 在作业本上完成附图作业,要认真看题目要求并提交作业截图. 在set的过程中,我们需要将hour部分进行赋值,赋值我们采用&q ...

  9. 2017-2018-1 20155232 《信息安全系统设计基础》第十周课堂测试(ch06)补交

    # 2017-2018-1 20155232 <信息安全系统设计基础>第十周课堂测试(ch06)补交 上课时完成测试后在提交的时候,没有提交成功,进行补交. 1.下面代码中,对数组x填充后 ...

随机推荐

  1. Cookies的各方面知识(基础/高级)深度了解

    Cookies想必所有人都了解本文将围绕Cookies基础知识(什么是Cookies/Cookies如何传递/Cookies如何存储/Cookies如何查看)Cookies高级知识/Cookie的限制 ...

  2. PHP: APC Configuration and Usage Tips and Tricks

    原文链接:http://www.if-not-true-then-false.com/2012/php-apc-configuration-and-usage-tips-and-tricks/3/ T ...

  3. JavaScript中的值和引用

    JavaScript5中有6种基本数据类型:undefined.null.布尔值(Boolean).字符串(String).数值(Number).对象(Object) ES6中新引入一种原始数据类型: ...

  4. JavaScript的事件概述以及事件对象,事件流

    事件处理程序 JavaScript 事件对象是由访问 Web 页面的用户引起的一系列操作,例如:用户点击页面上的某个按钮或者鼠标移动到页面的某个图片上而产生一系列的互动的反馈. 我们通过为指定事件绑定 ...

  5. BZOJ 1192 鬼谷子的钱袋 找规律

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1192 题目大意: 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向 ...

  6. docker-4-镜像

    是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件, 它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. 1.UnionFS(联合文件 ...

  7. Controller如何写的更简化

    Controller层相当于MVC中的C,也是安卓或者前端请求的接口. 首先说Controller为什么需要写的更加简化? 第一.Controller是不能复用的: 第二.即便是将Controller ...

  8. Epoll为我们带来了什么

    libevent中用到的,epoll是Linux下多路复用IO接口select/poll的增强版本.网上找到的介绍资料,无法标明来源. Q:网络服务器的瓶颈在哪? A:IO效率. 在大家苦苦的为在线人 ...

  9. [Zedboard Linux系统移植]-从MACHINE_START開始

    改动自:http://www.cnblogs.com/lknlfy/archive/2012/05/06/2486479.html 内核的启动过程? 3)内核的启动过程? arch/arm/kerne ...

  10. oracle查询用户的权限

    DBA_* 描述的是数据库中的所有对象 ALL_* 描述的是当前用户有访问权限的所有对象 USER_* 描述的是当前用户所拥有的所有对象 查看所有用户:  select * from dba_user ...