2018-2019-1 20165225《信息安全系统设计基础》第七周学习总结

2018-2019-1 20165225《信息安全系统设计基础》第七周学习总结


教材学习内容总结:

异常的类别
  • 故障指令:执行当前指令导致异常

  • 中断处理程序:硬件中断的异常处理程序。

  • 中断:异步发生 来自处理器外部的I/O设备的信号的结果 返回下一条指令

  • 陷阱是有意的异常 是执行一条指令的结果 最重要的用途——系统调用

  • 故障:由错误状况引起,可能能够被故障处理程序修正 结果要么重新执行指令(就是返回当前指令地址),要么终止 典型示例:缺页异常

  • 终止:是不可恢复的致命错误造成的结果 通常是一些硬件错误

相关系统调用
  • image
地址空间
  • 线性地址空间:地址空间中的整数是连续的。

  • 虚拟地址空间:CPU从一个有 N=2^n 个地址的地址空间中生成虚拟地址,这个地址空间成为称为虚拟地址空间。
    地址空间的大小:由表示最大地址所需要的位数来描述。
    物理地址空间:与系统中的物理存储器的M个字节相对应。

  • 虚拟存储器的基本思想:主存中的每个字节都有一个选自虚拟地址空间的虚拟地址和一个选自物理地址空间的物理地址。
    虚拟存储器作为缓存的工具
    虚拟存储器——虚拟页VP,每个虚拟页大小为P=2^平字节。
    物理存储器——物理页PP,也叫页帧,大小也为P字节。

  • 并发流:一个逻辑流的执行在时间上与另一个流重叠。

  • 并发:多个流并发地执行的一般现象。

  • 多任务:一个进程和其他进程轮流运行的概念。

  • 时间片:一个进程执行它的控制流的一部分的每一时间段。(多任务也叫时间分片)

  • 并行流:如果两个流并发的运行在不同的处理器核或者计算机上。

PTE的三个许可位:
SUP:表示进程是否必须运行在内核模式下才能访问该页

READ:读权限

WRITE:写权限

  • C语言通过longjmp、setjmp函数提供非本地跳转;
  • Unix/Linux中通过调用fork()可以获取子进程PID。
  • Unix/Linux中通过调用getppid()获取父进程ID。

本周错题总结

忘记写了QAQ!
1 多选题 | 1 分)
C语言通过(                      )函数提供非本地跳转。

A .
try ...catch

B .
longjmp

C .
setjmp

D .
signal

正确答案: B C  你的答案: 未作答 查看知识点 | 查看解析
2
( 多选题 | 1 分)
Linux信号处理说法正确的是()

A .
可以用signal()处理信号

B .
一个信号最多只能被接收一次

C .
kill(1)用来杀死进程

D .
kill(1)用来发送信号

E .
可以通过键盘发送信号

F .
可以用sigaction()处理信号

正确答案: A B D E F  你的答案: 未作答 查看知识点 | 查看解析
3
( 多选题 | 1 分)
有关exec系列函数,下面说法正确的是()

A .
可以用char[][] 来传递argv

B .
进程调用了exec系列函数后,pid会变

C .
进程调用了exec系列函数后,代码会改变。

D .
system()和exec系列等价。

E .
exec系列函数中带e的要传入环境变量参数

F .
exec系列函数中带v的要传入环境变量参数

正确答案: C E  你的答案: 未作答 查看知识点 | 收起解析

不能用char[][] 来传递argv,结尾的0(null)无法处理;system=fork+exec+wait; 
4
( 多选题 | 1 分)
有关wait类系统调用,说法正确的是()

A .
wait(&status) 等价于waitpid(-1, &status, 0)

B .
父进程中执行waitpid, 等待集合中的所有子进程结束了才返回

C .
父进程中执行waitpid, 等待集合中的任一子进程结束了才返回

D .
子进程中的退出状态在wait的status参数返回

正确答案: A C D  你的答案: 未作答 查看知识点 | 查看解析
5
( 多选题 | 1 分)
关于图中代码,说法正确的是()

Image 3.png

A .
 程序执行2个printf

B .
程序执行3个printf

C .
程序执行5个printf

D .
程序执行4个printf

正确答案: B  你的答案: 未作答 查看知识点 | 收起解析

子2 父1
6
( 多选题 | 1 分)
有关fork(),下面说法正确的是()

A .
一次调用,两次返回

B .
子进程中,fork()返回子进程PID

C .
子进程可以读写父进程中打开的文件

D .
子进程和父进程的用户级虚拟地址空间相同但独立

正确答案: A C D  你的答案: 未作答 查看知识点 | 查看解析
7
( 多选题 | 1 分)
关于代码  int main(){} 说法正确的是()

A .
返回值是0

B .
返回值不确定

C .
会调用exit(0)

D .
返回值大于0

E .
上面代码运行完,在命令行中运行echo $?  的值是0  

正确答案: A C E  你的答案: 未作答 查看知识点 | 收起解析

main中不调用exit,会补上exit(0)
8
( 多选题 | 1 分)
从程序员角度看进程状态有(          ) 

A .
运行

B .
就绪

C .
停止

D .
终止

正确答案: A C D  你的答案: 未作答 查看知识点 | 查看解析
9
( 单选题 | 1 分)
Unix/Linux中通过调用(                   )可以获取子进程PID。

A .
getpid()

B .
getppid()

C .
getcpid()

D .
fork()

正确答案: D  你的答案: 未作答 查看知识点 | 查看解析
10
( 单选题 | 1 分)
Unix/Linux中通过调用(             )获取父进程ID。

A .
getppid()

B .
getppid() 

C .
getbpid()

D .
getmpid()

正确答案: B  你的答案: 未作答 查看知识点 | 查看解析
11
( 单选题 | 1 分)
进程调度由内核中的(              )处理完成

A .
上下文切换

B .
中断服务程序

C .
调度器

D .
异常处理程序

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
12
( 多选题 | 1 分)
进程调度中的上下文切换包括()

A .
保存当前进程的上正文

B .
恢复某个先前被抢占的进程被保存的上下文

C .
让当前进程休眠

D .
将控制传递给这个新恢复的进程

正确答案: A B D  你的答案: 未作答 查看知识点 | 查看解析
13
( 单选题 | 1 分)
用户进程可以通过()访问内核代码和数据

A .
特权指令

B .
系统调用

C .
模式位

D .
程序计数器

正确答案: B  你的答案: 未作答 查看知识点 | 查看解析
14
( 单选题 | 1 分)
x86-64 Linux中,用户模式进程无法访问内核数据结构的内容。

A .
正确

B .
错误 

C .
不确定

正确答案: B  你的答案: 未作答 查看知识点 | 查看解析
15
( 单选题 | 1 分)
x86-64 Linux进程中,代码段是从(              )开始的。

A .
0

B .
2^48-1

C .
0x400000

D .
2^64-1

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
16
( 多选题 | 1 分)
三个进程的起始和结束时间如下图,互为并发的是()Image 2.png

A .
AB

B .
AC

C .
BC

D .
以上都是

正确答案: A C  你的答案: 未作答 查看知识点 | 查看解析
17
( 单选题 | 1 分)
进程提供给应用程序的关键抽象让我们的程序感觉独占了处理器和内存。()提供了独占处理器的假象。

A .
地址空间

B .
虚拟内存

C .
逻辑控制流

D .
指令控制流

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
18
( 多选题 | 1 分)
有关异常,下面说法正确的是()

A .
系统中的异常由异常名唯一确定

B .
异常表中存放的是异常处理程序

C .
异常表的起始地址存放在异常表基址寄存器中

D .
异常处理程序运行在内核模式下

正确答案: C D  你的答案: 未作答 查看知识点 | 查看解析
19
( 多选题 | 1 分)
进程上下文包括程序的( )

A .
代码和数据

B .
栈

C .
通用寄存器中的内容

D .
程序计数器

E .
环境变量

F .
打开的文件描述符的集合

正确答案: A B C D E F  你的答案: 未作答 查看知识点 | 查看解析
20
( 单选题 | 1 分)
X86-64结构,Linux中系统调用(函数调用)的返回值放在()

A .
%rcx

B .
%r11

C .
%rax

D .
%rbx

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
21
( 单选题 | 1 分)
图中第()行给出write(2)要写的字节数

Image 1.png

A .
9

B .
10

C .
11

D .
12

正确答案: D  你的答案: 未作答 查看知识点 | 查看解析
22
( 单选题 | 1 分)
图中代码用到的系统调用是()



Image 1.png

A .
open(2)

B .
read(2)

C .
write(2)

D .
close(2)

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
23
( 单选题 | 1 分)
x86-64中,Linux系统调用的系统调用号是通过()传递的。

A .
栈

B .
%rax

C .
%rdi

D .
%rbp

E .
%rsp

正确答案: B  你的答案: 未作答 查看知识点 | 查看解析
24
( 单选题 | 1 分)
调用fork(2)的系统调用号是()

A .
0

B .
2

C .
3

D .
57

正确答案: D  你的答案: 未作答 查看知识点 | 查看解析
25
( 单选题 | 1 分)
C语言中有()函数可以直接调用任何系统调用

A .
syscall

B .
syscalls

C .
system

D .
main

正确答案: A  你的答案: 未作答 查看知识点 | 查看解析
26
( 多选题 | 1 分)
异步异常是同处理器外部的I/O设备中的事件产生的(硬件产生),同步异常是执行一条指令的直接产物(软件产生)。下面是同步异常的是()

A .
中断

B .
陷阱

C .
故障

D .
终止

正确答案: B C D  你的答案: 未作答 查看知识点 | 查看解析
27
( 单选题 | 1 分)
系统调用属于异常中的()

A .
中断

B .
陷阱

C .
故障

D .
终止

正确答案: B  你的答案: 未作答 查看知识点 | 查看解析
28
( 单选题 | 1 分)
Linux中,信号(Signal)是一种()异常控制流。

A .
硬件层

B .
操作系统层

C .
用户层

D .
网络层

正确答案: C  你的答案: 未作答 查看知识点 | 查看解析
29
( 单选题 | 1 分)
中断是()的异常控制流。

A .
硬件层

B .
操作系统层

C .
应用层

D .
网络层

正确答案: A  你的答案: 未作答 查看知识点 | 

结对学习

  • 本周依然和5221同学一起复习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 12 14小时
第一周 63/150 1/12 3小时
第二周 150/150 2/12 10小时
第三周 150/150 3/12 13小时
第四周 97/150 4/12 10小时
第五周 104/150 5/12 10小时
第六周 95/150 6/12 8小时
第七周 112/150 7/12 8小时
posted @ 2018-11-11 21:58  牛奶仔丶  Views(111)  Comments(0Edit  收藏  举报