第一周 ch01 课下测试
1.Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比。(B)
A .正确 B .错误
解析:Amdahl定律,该定律的主要思想是,当我们对系统的某个部分加速时,其对整个性能的影响取决于该部分的重要性和加速程度。
2.Linux中,内核虚拟内存在虚拟地址空间的低端。(B)
A .
正确
B .
错误
解析:由上图可知内核虚拟内存在虚拟地址空间的最顶端而不是最低端
3.实现进程这个抽象概念需要低级硬件和操作系统软件之间的紧密合作。(A)
A .
正确
B .
错误
解析:进程是操作系统对正在运行的程序的一种抽象。一个系统上可以同时运行多个进程,每个进程好像独占的使用硬件。所谓并发,是说一个进程的指令和另一个进程的指令交错执行。操作系统实现这种交错执行的机制称为上下文切换。操作系统跟踪进程运行所需的所有状态信息(也就是上下文),任何一个时刻,处理器只能运行一个进程。当操作系统决定要把控制权从当前进程转移到一个新进程时,就要进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权转交给新进程,新进程就从上次停止的地方开始执行。实现进程这个抽象概念需要低级硬件和操作系统软件之间的紧密合作
4.操作系统有两个基本功能:防止硬件被滥用;向应用供一致的机制来控制低级硬件设备。实现这两个功能相关的抽象有(ACD)
A .
文件
B .
虚拟机
C .
虚拟内存
D .
进程解析:操作系统有两个基本功能:防止硬件被失控的应用程序滥用;向应用程序提供简单一致的机制来控制复杂的低级硬件设备。操作系统通过几个抽象的基本概念(进程、虚拟存储器和文件)来实现以上两个基本功能。
5.存储器层次结构的主要思想是(A)
A .
上一层的存储器作为低一层存储器的高速缓存
B .
存储设备形成存储层次结构
C .
存储器分为主存和辅存
D .
较大的存储器运行慢,快速设备造价高
解析:在这个结构中,从上到下,设备容量越来越大,运行速度越来越慢,同时造价也越来越便宜。存储器层次结构的主要思想是上一层的存储器作为下一层存储器的高速缓存。上图中顶层的寄存器是L1的高速缓存,L1是L2的高速缓存,以此类推。从这个角度讲,程序员可以利用对整个存储器层次结构的理解来提高程序的性能。
6.处理器的(B)操作可以从寄存器中复制一个字节的数据到主存中。
A .
加载
B .
存储
C .
操作
D .
跳转
解析:
- 加载:把一个字节或者字从主存复制到寄存器,并覆盖寄存器原来的值。
- 存储:把一个字节或者字从寄存器复制到主存的某个位置,并覆盖掉主存该位置原来的值。
- 操作:把两个寄存器的内容复制到ALU,ALU对这两个内容做算术运算,将结果存放到一个寄存器中,并覆盖掉原来的值。
- 跳转:从指令本身中抽取一个字,复制到PC中,并覆盖掉PC中原来的值。
7.主存在逻辑上可以看作(A)
A .
字节数组
B .
字数组
C .
双字数组
D .
四字数组
解析:主存储器:主存储器是一个易失性存储区,也就是常说的RAM,它是一个程序和数据的暂存场所。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的索引(也就是地址的概念)。一般不同的机器指令都有不同的字节长度。
8.主存在逻辑上可以看作(A)
A .
字节数组
B .
字数组
C .
双字数组
D .
四字数组
解析:主存储器:主存储器是一个易失性存储区,也就是常说的RAM,它是一个程序和数据的暂存场所。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的索引(也就是地址的概念)。一般不同的机器指令都有不同的字节长度。
9.I/O设备可以通过(AD)与I/O总线相连。
A .
控制器
B .
主存
C .
处理器
D .
适配器
解析:I/O设备是计算机系统与外界通信的渠道。上图所示的USB、显示器、磁盘和键盘鼠标等都是I/O设备。I/O设备通常由机械部件和电子部件两部分组成,其中,电子部件又称为设备控制器或适配器。每一个I/O设备都是通过一个控制器与I/O总线连接。I/O设备又分为块设备和字符设备两种。上述中磁盘、USB等就是常见的块设备,而键盘鼠标和网络接口为字符设备。
10.计算机中总线传送定长的数据,这个定长是(B),是一个基本的系统参数。
A .
字节
B .
字
C .
双字
D .
四字
解析:总线实际上就是一组电子管道,它负责计算机系统各部件之间字节信息的传递。通常总线传输一些定长的字节块,这个定长的字节块也就是字(word)的概念。一个字包含的字节数即为这个系统的字长。我们说32位的计算机的字长为4个字节,64位的计算机字长为8.
11.计算机系统的硬件组成包含(ABCD)
A .
总线
B .
I/O设备
C .
主存
D .
处理器
解析:一个典型的计算机系统主要由CPU、总线、主存储器和I/O设备构成,如下图所示:
- 1、CPU:CPU是中央处理单元的简称。它负责解释执行存储在主存储器中的指令。CPU的核心部分为算术逻辑单元ALU、程序计数器PC和一些寄存器。其中,PC本身是一个字长的存储设备,它时时刻刻的只想主存中的某条机器语言指令。从系统上电以后,处理器从程序计数器PC指向的存储器读取指令,解释指令中的位,然后更新PC,使其指向下一条指令,具体的顺序由指令集结构所决定。
- 2、总线:总线实际上就是一组电子管道,它负责计算机系统各部件之间字节信息的传递。通常总线传输一些定长的字节块,这个定长的字节块也就是字(word)的概念。一个字包含的字节数即为这个系统的字长。我们说32位的计算机的字长为4个字节,64位的计算机字长为8.
- 3、主存储器:主存储器是一个易失性存储区,也就是常说的RAM,它是一个程序和数据的暂存场所。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的索引(也就是地址的概念)。一般不同的机器指令都有不同的字节长度。
- 4、I/O设备:I/O设备是计算机系统与外界通信的渠道。上图所示的USB、显示器、磁盘和键盘鼠标等都是I/O设备。I/O设备通常由机械部件和电子部件两部分组成,其中,电子部件又称为设备控制器或适配器。每一个I/O设备都是通过一个控制器与I/O总线连接。I/O设备又分为块设备和字符设备两种。上述中磁盘、USB等就是常见的块设备,而键盘鼠标和网络接口为字符设备。`
12.熟悉编译系统的好处有:(ABD)
A .
优化程序性能
B .
理解链接时出现的错误
C .
有助于设计处理器
D .
避免安全漏洞
解析:
优化程序执行效率:现代编译器都是非常聪明的工具,它们通常都能产生好的机器码。作为程序员,为了写出高效的代码,我们不需要去知道编译器的内部工作机制。然后,为了在我们的C程序中做出好的编码决定,我们确实需要对机器码和编译器如何把不同的C语句翻译成机器码有基本的了解。例如,switch语句是否总是比一系列if-else语句更高效?一个函数调用需要多少开销?while循环是不是比for循环更高效?指针引用是不是比数组索引更高效?为什么我们将求和结果放在本地变量里比放在通过引用传进来的参数中会使循环跑得快很多呢?我们怎样通过简单重新排列算术表达式中的元括号使函数跑得更快?
在第三章,我们将介绍两个相关的机器语言:IA32,32位机器码在运行Linux,Windows和最近的Macintosh操作系统的机器上无处不在,x86-64,64位扩张在最近的微处理器上能被发现。我们描述编译器怎么样把不同C语言结构翻译成这些语言。在第五章,你将会学到通过对你的C代码做简单的变形——这种形式帮助编译器更好的做它的工作——来调整你的C程序的执行效率。在第六章,你将会学习内存系统的层次特性,编译器如何把数组存储在内存中,以及你的C程序如何利用这些知识来让自己跑得更快。
理解链接时错误:在我们的经验里,一些最令人困惑的错误都与链接器操作相关,尤其是当你尝试构建大型软件系统时。例如,当连接器报告它不能解析一个引用时意味着什么?静态变量和全局变量的的区别是什么?如果你在不同的C文件中定义两个相同名字的全局变量会发生什么?静态库和动态库的区别是什么?为什么我们在命令行列举库的顺序是重要的?最吓人的是,为什么链接器相关的错误在运行时才出现?你将在第七章得到这些问题的答案。
避免安全漏洞:许多年来,缓存溢出缺陷已经引起了网络和互联网服务器中的大部分安全漏洞。这些缺陷之所以存在,是因为几乎没有程序员理解去仔细限制从不可信源接收到的数据的数量和形式的必要性。学习安全编程的第一步是数据和控制信息被存储在程序栈的方式所导致的结果。在第三章,我们讲解栈的问题和缓存溢出缺陷作为我们汇编语言学习的一部分。我们也会学到一些方法,这些方法能被程序员,编译器,操作系统用来减少被攻击的威胁。
13.熟悉编译系统的好处有:(ABD)
A .
优化程序性能
B .
理解链接时出现的错误
C .
有助于设计处理器
D .
避免安全漏洞
解析:
优化程序执行效率:现代编译器都是非常聪明的工具,它们通常都能产生好的机器码。作为程序员,为了写出高效的代码,我们不需要去知道编译器的内部工作机制。然后,为了在我们的C程序中做出好的编码决定,我们确实需要对机器码和编译器如何把不同的C语句翻译成机器码有基本的了解。例如,switch语句是否总是比一系列if-else语句更高效?一个函数调用需要多少开销?while循环是不是比for循环更高效?指针引用是不是比数组索引更高效?为什么我们将求和结果放在本地变量里比放在通过引用传进来的参数中会使循环跑得快很多呢?我们怎样通过简单重新排列算术表达式中的元括号使函数跑得更快?
在第三章,我们将介绍两个相关的机器语言:IA32,32位机器码在运行Linux,Windows和最近的Macintosh操作系统的机器上无处不在,x86-64,64位扩张在最近的微处理器上能被发现。我们描述编译器怎么样把不同C语言结构翻译成这些语言。在第五章,你将会学到通过对你的C代码做简单的变形——这种形式帮助编译器更好的做它的工作——来调整你的C程序的执行效率。在第六章,你将会学习内存系统的层次特性,编译器如何把数组存储在内存中,以及你的C程序如何利用这些知识来让自己跑得更快。
理解链接时错误:在我们的经验里,一些最令人困惑的错误都与链接器操作相关,尤其是当你尝试构建大型软件系统时。例如,当连接器报告它不能解析一个引用时意味着什么?静态变量和全局变量的的区别是什么?如果你在不同的C文件中定义两个相同名字的全局变量会发生什么?静态库和动态库的区别是什么?为什么我们在命令行列举库的顺序是重要的?最吓人的是,为什么链接器相关的错误在运行时才出现?你将在第七章得到这些问题的答案。
避免安全漏洞:许多年来,缓存溢出缺陷已经引起了网络和互联网服务器中的大部分安全漏洞。这些缺陷之所以存在,是因为几乎没有程序员理解去仔细限制从不可信源接收到的数据的数量和形式的必要性。学习安全编程的第一步是数据和控制信息被存储在程序栈的方式所导致的结果。在第三章,我们讲解栈的问题和缓存溢出缺陷作为我们汇编语言学习的一部分。我们也会学到一些方法,这些方法能被程序员,编译器,操作系统用来减少被攻击的威胁。
14.gcc 把源程序翻译成可执行文件的四个阶段是:预处理阶段,编译阶段,汇编阶段,链接阶段,其中汇编阶段用到的工具和相应的gcc命令是(C)
A .
cpp: gcc -E hello.c -o hello.i
B .
ccl: gcc -S hello.i -o hello.s
C .
as: gcc -c hello.s -o hello.o
D .
ld: gcc hello.o -o hello
解析:gcc命令:ESc, 生成文件后缀iso
预处理阶段:使用预处理器cpp,相应命令是: gcc -E hello.c -o hello.i
编译阶段:使用编译器ccl,相应命令是: gcc -S hello.i -o hello.s
汇编阶段:使用汇编器as,相应命令是:gcc -c hello.s -o hello.o
链接阶段:使用链接器ld,相应命令是: gcc hello.o -o hello
15.(B)就是位+上下文
A .
数据
B .
信息
C .
知识
D .
数据结构
解析:信息就是位+上下文:计算机系统中的所有信息都是由二进制串表示的,区分这些数据对象的唯一方法是读到这些数据的上下文。
第一周 ch01 课下测试的更多相关文章
- 第七周 ch04 课下测试补交
2017-2018-1 20155335 <信息安全系统设计基础>第7周 课下测试博客 本人不慎忘记去交dao'zhi 测试题目: SEQ+对SEQ的改变有() A . PC的计算挪到取指 ...
- 课下测试补交(ch01、ch02、ch07)
课下测试补交(ch01.ch02.ch07) 课下测试ch01 1.Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比.(B) A . 正确 B . 错误 解析:课本 ...
- # 课下测试补交(ch01)20155337
课下测试补交(ch01) 1.Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比.(B) A .正确 B .错误 解析:Amdahl定律,该定律的主要思想是,当我们对 ...
- # 第五周课下测试(ch03)补交
第五周课下测试(ch03)补交 1.( 多选题 | 1 分) 有关gdb调试汇编,下面说法正确的是() A . 可以用disas反汇编当前函数 B . 以16进制形式打印%rax中内容的命令是 pri ...
- 2017-2018-1 20155214 《信息安全系统设计基础》 第9周课下测试-mypwd
2017-2018-1 20155214 <信息安全系统设计基础> 第9周课下测试-mypwd(深入版) 题目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; ...
- 课下测试CH01补交
课下测试CH01补交 ( 单选题 | 1 分) Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比. A . 正确 B . 错误 正确答案: B 你的答案: 未作答 ...
- 课下测试ch01修改补交
由于当时学习态度有问题,没有注意到第一次的课下测试,虽然在当周的总结中就进行补交,但是当时态度并没有很认真,可能没有引起老师的注意,现在重新修改,望老师谅解. (单选题 | 1 分) Amdahl定律 ...
- 20155211课下测试ch10补交
20155211课下测试ch10补交 1.假设下面代码中的foobar.txt中有6个ASCII字母,程序的输出是() A.c = f B.c = o C.c = b D.c = 随机数 答案:A 解 ...
- 课下测试补交(ch03 ch08)
课下测试补交(ch03 ch08) 课下测试 ch03 1.有关gdb调试汇编,下面说法正确的是(ABCE) A . 可以用disas反汇编当前函数 B . 以16进制形式打印%rax中内容的命令是 ...
随机推荐
- Oracle win64_12g 安装
1.Oracle win64_12g 安装 1.下载安装包:这里需要自己注册一下,然后就可以登录下载软件了. 下载地址: http://www.oracle.com/technetwork/datab ...
- Java包名命名规则(转载)
转载自:http://lilinhai548.blog.163.com/blog/static/5847332920155132151359/ 鸣谢原作者 学习Java的童鞋们都知道,Java的包. ...
- BZOJ 1188 分裂游戏(sg函数)
如果把每堆巧克力看做一个子游戏,那么子游戏会互相影响. 如果把全部堆看做一个子游戏,那么状态又太多. 如果把每一个单独的巧克力看成一个子游戏的话,那么状态很少又不会互相影响. 令sg[i]表示一个巧克 ...
- appium使用H5怎么定位元素
允许是一个class,如果遇到有多个class,只能填写一个. 对于移动端H5元素定位采用Chromedriver的解决方案,具体操作如下: 1.手机安装Chrome浏览器 2.开启USB调试模式,并 ...
- BZOJ4916 神犇和蒟蒻(欧拉函数+杜教筛)
第一问是来搞笑的.由欧拉函数的计算公式容易发现φ(i2)=iφ(i).那么可以发现φ(n2)*id(n)(此处为卷积)=Σd*φ(d)*(n/d)=nΣφ(d)=n2 .这样就有了杜教筛所要求的容易算 ...
- web框架引入
1. web请求的本质就是一个socket. 2.http:一次请求,一次响应,断开链接.如下程序:必须先运行服务器端,然后客户端才能去连接.所有web框架的本质就是如下: import socket ...
- windows 网络共享无法用
可以远程电脑,但是无法网卡共享 原因是 远程电脑的Server服务停掉了,再开启下就行了
- [JLOI2012]时间流逝 树上高斯消元 概率期望
题面 题意:(感觉题面写的题意是错的?)有\(n\)种能量不同的圈,设当前拥有的圈的集合为\(S\),则: 1,每天有\(p\)概率失去一个能量最小的圈.特别的,如果\(S = \varnothing ...
- BZOJ5333 [Sdoi2018]荣誉称号 【差分 + 树形dp】
题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我 ...
- 【CF Gym100228】Graph of Inversions
Portal --> qwq(貌似是CodeForces Gym 100228 (ECNA2003) - I) Description 对于长度为 \(n\) 的序列 \(A\) ,定义其逆序图 ...