您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 04-进程单元测试题及答案
一、选择题(每题2分)1.下列不是用户进程的组成部分的是(D)[A]正文段[B]用户数据段[C]系统数据段[D]elf段2.以下哪种不是进程的类型(B)[A]批处理进程[B]管理进程[C]交互进程[D]守护进程3.以下哪种方法无法查看进程的信息(C)[A]ps[B]查看/proc目录[C]kill[D]top4.fork()的返回值不可能是(C)[A]-1[B]0[C]1[D]大于10000的正整数5.可以改变正在运行的进程优先级的命令是()[A]nice[B]renice[C]kill[D]set6.下列哪个函数无法传递进程结束时的状态(A)[A]close[B]exit[C]_exit[D]return7.以下哪种用法可以等待接收进程号为pid的子进程的退出状态(A)[A]waitpid(pid,&status,0)[B]waitpid(pid,&status,WNOHANG)[C]waitpid(-1,&status,0)[D]waitpid(-1,&status,WNOHANG)8.函数waitpid的返回值等于0时表示的含义是(B)[A]等待的子进程退出[B]使用选项WNOHANG且没有子进程退出[C]调用出错[D]不确定9.下列对无名管道描述错误的是(C)[A]半双工的通信模式[B]有固定的读端和写端[C]可以使用lseek函数[D]只存在于内存中10.下列对于有名管道描述错误的是(D)[A]可以用于互不相关的进程间[B]通过路径名来打开有名管道[C]在文件系统中可见[D]管道内容保存在磁盘上11.下列不属于用户进程对信号的响应方式的是(B)[A]忽略信号[B]保存信号[C]捕捉信号[D]按缺省方式处理12.不能被用户进程屏蔽的信号是(B)[A]SIGINT[B]SIGSTOP[C]SIGQUIT[D]SIGILL13.默认情况下,不会终止进程的信号是(D)[A]SIGINT[B]SIGKILL[C]SIGALRM[D]SIGCHLD14.下列不属于IPC对象的是(A)[A]管道[B]共享内存[C]消息队列[D]信号灯15.下列哪种机制可以用于线程之间的同步(D)[A]信号[B]IPC信号灯[C]POSIX有名信号量[D]POSIX无名信号量二、判断题(每题1分)1.Linux下进程的模式分为用户态,内核态和系统态(F)2.每个进程的进程号和父进程号在进程执行期间不会改变(F)3.子进程被创建后从fork()的下一条语句开始执行(T)4.子进程的进程号等于父进程的进程号加1(F)5.执行_exit()函数时不会清理IO缓冲(T)6.exec函数族可以创建一个新的进程来执行指定的程序(F)7.wait函数无法接收子进程退出的状态(F)8.无名管道只能用于父子进程(T)9.对命名管道的读写严格遵循先进先出的规则(T)10.信号既可以发给前台进程也可以发给后台进程(T)11.可以用signal()向指定的进程发信号(F)12.无法用信号实现进程间的同步(F)13.消息队列可以按照消息类型读取消息(T)14.消息队列的读写只能采用阻塞的方式(F)15.共享内存是一种最为高效的进程间通信方式(T)三、简答题(30分)1.请描述进程和程序的区别(6分)进程和程序的区别程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡进程是一个独立的可调度的任务进程是一个抽象实体。当系统在执行某个程序时,分配和释放的各种资源进程是一个程序的一次执行的过程进程是程序执行和资源管理的最小单位2.指出静态库和共享库的区别(使用方法,对程序的影响)(8分)二者的不同点在于代码被载入的时刻不同。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。3.写出设置信号处理函数signal和用户定义的信号处理函数的原型(6分)void(*signal(intsignum,void(*handler)(int)))(int);typedefvoid(*sighandler_t)(int);sighandler_tsignal(intsignum,sighandler_thandler);voiddriver_handler(intsigno);4.程序代码如下,请按执行顺序写出输出结果(6分)intmain(){pid_tpid1,pid2;if((pid1=fork())==0)//child1{sleep(3);printf(“info1fromchildprocess_1\n”);exit(0);printf(“info2fromchildprocess_1\n”);}else{if((pid2=fork())==0)//child2{sleep(1);printf(“info1fromchildprocess_2\n”);exit(0);}else//parent{wait(NULL);wait(NULL);printf(“info1fromparentprocess\n”);printf(“info2fromparentprocess”);_exit(0);}}info1fromchildprocess_2info1fromchildprocess_1info1fromparentprocess5.列出任意四种进程间通信的方式(4分)传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)SystemVIPC对象共享内存(sharememory)、消息队列(messagequeue)和信号灯(semaphore)BSD套接字(socket)四、问答题(25分)1.指出创建守护进程的步骤(10分)1)创建子进程,父进程退出2)在子进程中创建新会话//3)改变当前目录为根目录4)重设文件权限掩码5)关闭文件描述符2.请画出Linux中进程的状态切换图(6分)3.编写程序实现如下功能(9分):reader.c从argv[1]所指定的文件中读取内容,依次写到管道/home/linux/myfifo中writer.c从管道/home/linux/myfifo中读取内容,写到argv[2]所指定的文件中并保存代码中可省略头文件,/home/linux/myfifo无需创建
本文标题:04-进程单元测试题及答案
链接地址:https://www.777doc.com/doc-3117727 .html