Linux操作系统作业-参考答案

发布时间 : 星期日 文章Linux操作系统作业-参考答案更新完毕开始阅读

一个命令的输入。

第四章作业2

1.利用for循环将当前目录下的.c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。 解:

dir=/home/hzxyjsj for f in *.c do

mv $f $dir

done ls -S $dir

注:写法多样,这只是其中一种写法。

2.编写一个shell脚本,求斐波那契数列的前10项及总和,并输出各项及总和。 解: f1=1 f2=1

sum=$f1+$f2=2 echo $f1 $f2 for((i=1;i<9;i++)) do

let f3=$f1+$f2 let f1=$f2 let f2=$f3 let sum=$sum+$f3 echo $f3 echo $sum

done

注:写法多样,这只是其中一种写法。

第五章作业-Linux内核简介

1.什么是进程?什么是线程?进程至少包含的基本状态有哪些?Linux进程包含哪些状态?

答:进程就是程序的一次执行过程;线程是进程的“执行上下文,即进程中指令的不同执行路径;进程至少包含三个状态:运行态、就绪态、封锁态(或阻塞态);Linux进程包含的状态有:运行态、就绪态、不可冲断等待态、可冲断等待态、停止态、僵死态。

2.Linux内核调度采用哪种方式?Linux系统提供的调度策略有哪些?

答:Linux内核采用“抢占式优先级”的调度方式;Linux系统提供的调度策略有三种:(1)SCHED_FIFO,即先来先服务,适合实时进程,对时间要求比较高;(2)SCHED_RR,时间片轮转法,适合每次运行需要较长时间的进程;

(3)SCHED_OTHER,适合交互式分时进程,进程的优先权取决于进程剩余时间配额和其优先级。

3.简述Shell的基本工作过程。

答:shell基本工作过程大致有以下几个过程: (1)中断读入命令行;

(2)分离命令名,按execve()的要求置放参数;

(3)创建子进程id=fork(),若id的值为0则创建的是子进程,若id的值不为0则创建的是父进程;

(4)若是子进程则调用子进程,执行结束后返回shell提示符,若是父进程则判断其是否是后台进程,若是后台进程则直接返回shell提示符,若不是后台进程这执行该进程后返回shell提示符。

4.VFS是什么?为什么要建立VFS?

答:VFS即虚拟文件系统,将不同文件系统的细节隐藏起来,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面。

建立VFS使得用户进程在读取不同的文件系统的时候消除用户对不同文件系统的差异性,提高可操作性。

5.什么是中断?中断的一般处理过程是什么?

答:中断是指在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 中断处理过程:

(1)保存正在运行进行各寄存器的内容; (2)确定“中断源”,决定处理方式; (3)调用冲断处理程序,对冲断进行处理;

(4)中断处理完成后返回现场,恢复中断时保留的各寄存器的内容。

第六章作业

1. C语言编译过程有几个阶段?并简述每个阶段所做的工作。 答:4个阶段。

(1)预处理阶段,主要是对源程序中伪指令和特殊符号的处理;

(2)编译阶段,主要对预处理后的输出文件进行词法分析和语法分析,找出不符合语法规则的部分;

(3)汇编阶段,把汇编语言代码翻译成机器语言代码的过程; (4)连接阶段,将目标文件连接成为最终的可执行文件。

2.如何用GCC对C和C++源程序进行编译、执行?

答:GCC对C和C++源程序直接编译,默认都是生产a.out的可执行文件,编译命令为“#gcc file.c”、“#gcc file.cpp -lstdc++”;执行命令“#./a.out”即可。 若是自定义输出可执行文件则需要添加-o选项以及对应的输出可执行文件,即“#gcc file.c -o file”、“gcc file.cpp -lstdc++ -o file” 执行命令“#./file”即可。

3.若有一个file.c的源文件,需用gdb调试工具对其进行调试,该如何进入gdb?进入gdb之后如何设置断点、单步执行、连续执行?

答:首先带-g选项进行编译,即“#gcc -g file.c -o file”,然后在提示符执行命令“#gdb file”即可可把file.c调入gdb。

第七章作业

1. 写出以下系统调用函数:(1)创建一个文件;(2)打开一个文件;(3)关闭一个文件;(4)读一个文件;(5)写一个文件。

答:(1)create();(2)open();(3)close();(4)read();(5)write()

2. 指出以下文件操作标志的意义:(1)O_CREAT;(2)O_RDONLY;(3)O_WRONLY。 答:(1)打开一个文件,若该文件不存在就创建它; (2)以只读方式打开文件; (3)以只写方式打开文件。

3. 指出以下进程控制有关系统调用函数的功能:(1)fork();(2)wait();(3)getpid();(4)getppid();(5)sleep();(6)nice()。 答:(1)创建一个进程; (2)等待一个进程的结束; (3)获取当前进程的进程号; (4)获取当前进程的父进程号; (5)休眠,时间单位为秒;

(6)表示进程的优先级,值越小优先级越大。

第八、九章作业

1. 在Linux系统中,与用户账户管理有关的主要有哪些文件?并说明用户的密码是保存在哪一个文件。

答:在Linux系统中,与用户帐户管理有关的主要有三个文件:

(1)passwd文件,为系统中的每一个合法用户记录一条相应信息; (2)shadow文件,用于存放用户账号的密码信息和密码的有效期等信息;

(3)group文件,用于保存系统中的用户及组的信息。很显然,用户的密码信息保存在shadow文件里面,而非passwd文件。

2. 在Linux系统中,通过命令方式对用户、组分别进行创建、删除的命令分别是什么? 答:添加用户命令为useradd,添加组的命令为groupadd,删除用户的命令为userdel,删除组的命令为groupdel,这些命令后面跟踪相应的用户或组,即可将相应的用户或组添加或删除。

3. Linux系统中常用的网络命令有哪些?并简述这些命令的功能。 答:Linux系统中常用的网络命令主要有4个: (1)ping,主要用于测试主机的连通性;

(2)ifconfig,网络接口配置命令,用于指定一个网络接口地址或设置网络接口参数; (3)netstat,用于对TCP/IP网络协议和连接进行统计; (4)route,用于配置静态路由信息,使不同网络可达。

补充说明:后面章节的作业输入虽然没有布置给大家做,但是希望大家要掌握。 第四章课本中讲过的脚本例子要看得懂,习题中讲过的题目以及作业布置的题目要举一反三,融会贯通。

Makefile文件的编写必须要会 p241表8.4要求理解

联系合同范文客服:xxxxx#qq.com(#替换为@)