Lec9 异常控制流 习题_第1页
Lec9 异常控制流 习题_第2页
Lec9 异常控制流 习题_第3页
Lec9 异常控制流 习题_第4页
Lec9 异常控制流 习题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系统院系 学号 姓名 授课教师 密封线一、 单项选择题(每小题1分,共20分)1. 计算机操作系统抽象表示时( A )是对处理器、主存和I/O设备的抽象表示。A. 进程 B. 虚拟存储器 C. 文件 D. 虚拟机 教材P102. 每个信号类型都有一个预定义的默认行为,可能是( D )A.进程终止 B.进程挂起直到被SIGCONT重启 C.进程忽略该信号 D.以上都是3. C程序执行到整数或浮点变量除以0可能发生( D )A.显示除法溢出错直接退出 B.程序不提示任何错误C.可由用户程序确定处理办法 D.以上都可能4. 同步异常不包括( C ) A.终止 B.陷阱 C.停止 D.故障5. 进程上下文切换不会发生在如下( D )情况A.当前进程时间片用尽 B.外部硬件中断C.当前进程调用系统调用 D.当前进程发送了某个信号6. 一个子进程终止或者停止时,操作系统内核会发送( D )信号给父进程。ASIGKILL B.SIGQUIT C.SIGSTOP D.SIGCHLD7. 进程从用户模式进入内核模式的方法不包括( C ) A.中断 B.陷阱 C.复位 D.故障8. 内核为每个进程维持一个上下文,不属于进程上下文的是( D )A.寄存器 B.进程表 C.文件表 D.调度程序9. Linux进程终止的原因可能是( D ) A.收到一个信号 B.从主程序返回 C.执行exit函数 D.以上都是10. 内核为每个进程保存上下文用于进程的调度,不属于进程上下文的是( A )A.全局变量值 B.寄存器 C.虚拟内存一级页表指针 D.打开文件表11. 不属于同步异常的是( A )A.中断 B.陷阱 C.故障 D.终止12. 异步信号安全的函数要么是可重入的(如只访问局部变量)要么不能被信号处理程序中断,包括I/O函数( C )A. printf B. sprintf C. write D. malloc 13. 进程从用户模式进入内核模式的方法不包括( C )A.中断 B.陷阱 C.复位 D.故障14. 关于异常处理后返回的叙述,错误的叙述是( B )A.中断处理结束后,会返回到下一条指令执行B.故障处理结束后,会返回到下一条指令执行C.陷阱处理结束后,会返回到下一条指令执行D.终止异常,不会返回4. 进程 P1 是进程 P11 的父进程,P1 有全局变量 x=0,下列说法错误的是( C ) A.P1 与 P11 有相同的地址空间B.P1 与 P11 是并发执行的独立进程C.若 P1 与 P11 均对 x 执行一次加 1 操作,则 x=2 D.P1 与 P11 有相同的代码和数据段 5. 下列异常中可能从异常处理返回也可能不返回的是( C ) A. I/O中断 B.陷阱 C. 故障 D. 终止 6.下列函数中属于系统调用且调用一次,从不返回的是( B ) A.fork B.execve C.setjmp D.longjmp7关于异常处理后返回的叙述,错误的叙述是( B ) A.中断处理结束后,会返回到下一条指令执行 B.故障处理结束后,会返回到下一条指令执行 C.陷阱处理结束后,会返回到下一条指令执行 D.终止异常,不会返回 8. 属于异步异常的是( A )A.中断 B.陷阱 C.故障 D.终止 二、 填空题 ( 每空1 分,共 10 分 )1. 程序执行到A处继续执行后,想在程序任意位置还原到执行到A处的状态,通过_非本地跳转_/longjmp_进行实现。2. 进程创建函数fork执行后返回_2_次。3. 非本地跳转中的setjmp函数调用一次,返回_多次_次。4. 进程加载函数execve,如调用成功则返回_0_次。5. 子程序运行结束会向父进程发送_SIGCHILD_信号。1. 向指定进程发送信号的linux命令是 kill 。三、 判断对错(每小题1分,共10分,在题前打 X 符号)1.( X )Linux系统调用中的功能号n就是异常号n 。2. ( x )进程一旦终止就不再占用内存资源。3.( )execve加载新程序时会覆盖当前进程的地址空间,但不创建新进程。1. ( )异常处理程序运行在内核模式下,对所有的系统资源都有完全的访问权限。2. ( )子进程即便运行结束,父进程也应该使用wait或waitpid对其进行回收。3. ( )进程在进行上下文切换时一定会运行内核函数。4. ( )相比标准 I/O,Unix I/O 函数是异步信号安全的,可以在信号处理程序中安全使用。四、简答题1. 1. 简述shell的主要原理与过程。 (0)Linux系统中,Shell是一个交互型应用级程序,代表用户运行其他程序(是命令行解释器,以用户态方式运行的终端进程)。其基本功能是解释并运行用户的指令,重复如下处理过程: (1)终端进程读取用户由键盘输入的命令行。 (2)分析命令行字符串,获取命令行参数,并构造传递给execve的argv向量(3)检查第一个(首个、第0个)命令行参数是否是一个内置的shell命令(3)如果不是内部命令,调用fork( )创建新进程/子进程(4)在子进程中,用步骤2获取的参数,调用execve( )执行指定程序。(5)如果用户没要求后台运行(命令末尾没有&号)否则shell使用waitpid(或wait.)等待作业终止后返回。(6)如果用户要求后台运行(如果命令末尾有&号),则shell返回;五、分析题C程序fork2的源程序与进程图如下:void fork2() printf(L0n); fork(); printf(L1n); fork(); printf(Byen);请写出上述进程图中空白处的内容(1)_fork_(2)_L1_(3)_L1_(4) _fork_(5)_Bye_2. C程序forkB的源程序与进程图如下:void forkB()printfprintfforkprintfprintfforkprintfL0(5)(1)(4)(2)printf(3) printf(L0n); if(fork()!=0) printf(L1n); if(fork()!=0)printf(L2n); printf(Byen);请写出上述进程图中空白处的内容(1)_L1_(2)_L2_(3)_Bye_(4)_Bye_(5)_Bye_15. 一个C程序的main()函数如下:int main()if(fork()=0) printf(a); fflush(stdout);exit(0); else printf(b); fflu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论