第六周:进程的描述和进程的创建--随堂小测【含答案】 Linux操作系统分析

(1)多选题

内核中的操作系统三大功能是什么?()

A  . 进程管理;

B  . 内存管理;

C  . 文件系统;

D  . 中断管理;

(2)多选题

linux系统调用,执行int 0x80后需要压入哪些信息?()

A  . 用户ss;

B  . 用户esp;

C  . cs;

D  . eip;

(3)单选题

僵尸进程是由什么状态的进程调用do_exit()函数后所处的状态?()

A  . Task_ZOMBIE;

B  . TASK_RUNNING 正在运行;

C  . TASK_RUNNING 就绪态;

D  . Task_INTERRUPTIBLE;

(4)单选题

进程父子关系是通过什么数据结构连接起来的?()

A  . 单向链表;

B  . 数组;

C  . 双向链表;

D  . 队列;

(5)单选题

在linux源代码中进程控制块使用什么数据结构来表示()?

A  . struct task_struct;

B  . struct tcb;

C  . struct pcb;

D  . struct task;

(6)单选题

linux系统调用system_call的SAVE_ALL对输入参数寄存器压栈,其中下列哪一个不是SAVE_ALL压栈的寄存器?()

A  . %es;

B  . %eax;

C  . %ebp;

D  . %esp;

(7)判断题

父进程调用fork系统调用后,fork系统调用在父进程和子进程各返回一次。

(8)判断题

下面的代码,只会有一个判断输出,要么是子进程,要么是父进程: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char * argv[]) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr,"Fork Failed!"); exit(-1); } else if (pid == 0) { /* child process */ printf("This is Child Process!\n"); } else { /* parent process */ printf("This is Parent Process!\n"); /* parent will wait for the child to complete*/ wait(NULL); printf("Child Complete!\n"); } }

(9)判断题

linux系统中调用fork系统调用后,在子进程中fork的返回值为0。

获取标准答案请阅读全文

未经允许不得转载!第六周:进程的描述和进程的创建--随堂小测【含答案】 Linux操作系统分析