山东农业大学Linux操作系统A及详细答案DOC.docx
- 文档编号:10964640
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:12
- 大小:24.61KB
山东农业大学Linux操作系统A及详细答案DOC.docx
《山东农业大学Linux操作系统A及详细答案DOC.docx》由会员分享,可在线阅读,更多相关《山东农业大学Linux操作系统A及详细答案DOC.docx(12页珍藏版)》请在冰豆网上搜索。
山东农业大学Linux操作系统A及详细答案DOC
2010-2011学年第1学期
《Linux操作系统》试题(卷)A
课程代码 考试方式考试时长分钟
姓名 学号 教学班号 专业级班
题号
一
二
三
四
五
六
七
八
合计
满分
20
20
10
50
得分
阅卷人
一、选择题(每题1分,共20分)
1、Linux文件系统的目录结构是一棵倒挂的树,文件都按其作用分门别类地放在相关的目录中。
现有一个外部设备文件,我们应该将其放在()目录中。
A./binB./etcC./devD.lib
2、ls–al命令列出下面的文件列表,问哪一个文件是符号连接文件()。
A.-rw-------2hel-susers56Sep0911:
05hello
B.-rw-------2hel-susers56Sep0911:
05goodbye
C.drwx-----1helusers1024Sep1008:
10zhang
D.lrwx-----1helusers2024Sep1208:
12cheng
3、cd~这个命令的用途是()?
A.切换到用户主目录B.离线
C.回到先前的路径位置D.回到上一层目录
4、下列哪一个命令()可以用来移动或更名现有的档案或目录?
A.renameB.rmC.mvD.cp
5、下列哪一个指命令()可以在档案中搜寻关键词?
A.grepB.psC.moreD.cat
6、用chmod551fido对文件进行许可权的修改,用ls–al查看到如下的几个文件许可权信息,以下哪个是fido文件的。
()
A.–rwxr-xr-xB.–rwxr—r--
C.–r—r—r--D.–r-xr-x—x
7、()命令可以将普通用户转换成超级用户
A.super B.passwd C.tar D.su
8、下列哪一个命令可以用来将某一个目录打包成一个档案?
()
A.tarB.cheeseC.queeD.wzip
9、关于Linux内核版本号的含义,下列说法中哪个是错误的?
()
A.依次表示为主版本号.此版本号.修正次数的形式
B.2.6.24表示稳定的发行版
C.2.6.28表示对内核2.6的第28次修正
D.2.6.29表示稳定的发行版
10、grub和vi分别是()
A.查看开机的程序;一种编辑程序
B.一种安装核心加载并管理开机的程序;一种编辑程序
C.关机程序;一种设定接口
D.网络除错程序;一种设定接口
11、rm-Rf/home/sample这个命令何义?
()
A.将/home/sample中的档案删除
B.将/home/sample目录立即删除
C.将/home/sample目录备份
D.将/home/sample这个目录移走
12、通常第一个IDE硬盘的第一个分区用()来表示?
A.hadB.hda1C.sdaD.sda1
13、如果想加载一个/dev/hdb1的windows分区到/mnt/win目录,需要运行哪个命令()。
A.mount-thpfs/dev/hdb1/mnt/win95B.mount-thpfs/mnt/win95/dev/hdb1
C.mount-tvfat/dev/hdb1/mnt/win95D.mount-tvfat/mnt/win95/dev/hdb1
14、哪个命令可以查看进程的动态运行情况?
()
A.psB.llC.topD.fs
15、哪个命令组合能统计有多少用户登录系统?
()
A.who|wc–w B.who|wc–l C.who|wc–c D.who|wc–T
16、createuser.shoffice12命令行中的$2的值是多少?
()
A.createuser.shB.officeC.1D.2
17、shell程序中的判断命令是什么?
()
A.ifB.whileC.testD.goto
18、Shell程序中变量的引用方法是?
()
A.直接引用B.加$引用C.加括号引用D.加引号引用
19、Shell程序总是以什么符号作为第一行开头?
()
A.#B.!
C.#!
D.!
#
20、vi编辑器中,当编辑完文件,要保存文件并退出vi返回到shell,应使用哪个命令?
()
A.exitB.wqC.q!
D.以上都不对
请将选择答案填写在下面的表格里
1~5
6~10
11~15
16~20
二、应用题(每题5分,共20分)
1、解释命令功能或根据功能写出命令(5分)
1)find/home-name"*csv">csv.out
2)cp-idata.txtbachup
3)设user用户的主目录下有一文件目录file,用一个命令将其拷贝到/root目录下。
4)将当前目录所有文件打包成mytar.tar文件
5)新建/newdir/other目录,移动/newdir下的所有文件到该目录中。
2、编写一个名为iffile的shell程序,功能为:
判断用户输入的文件是否存在。
并说明你会如何执行?
(5分)
3、编写shell程序,实现自动删除10个账号的功能。
账号名为stud1至stud10。
(5分)
4、写一个checkuser脚本文件,脚本运行时带一个用户名作为参数,在/etc/passwd文件中查找是否有该用户。
(5分)
三、判断题(每题1分,共10分)
1.进程调用exit结束时会释放其相关的所有资源。
2.Linux系统下正在执行进程(运行)和准备运行的进程(就绪)的进程状态标志是一样的。
3.即使程序没有修改,make工具编译程序时总会把程序重新编译一遍。
4.利用pipe()函数可以建立管道文件,任何进程都可以通过读写管道实现进程间的通信。
5.Linux内存管理中先描述虚拟内存空间,然后才分配物理内存。
6.Linux内存管理里,虚拟地址、物理地址都是线性的。
7.管道通信利用内核空间,而共享内存的通信方式利用进程的用户空间,所以管道通信速度比共享内存快。
8.slab模式以字节为单位分配虚拟内存,伙伴算法则以页为单位分配物理内存。
9.Linux系统下的模块程序可以不和内核一块静态编译。
10.系统调用发生时必然伴随着系统运行程序由用户态到内核态的切换。
请将选择答案填写在下面的空里,正确填T,错误填F
1-5:
_____________________6-10:
__________________________
四、问答题(共50分)
1、读下面的代码,回答以下问题(8分)
1该程序运行时会产生几个进程?
2输出“A:
mypidis…”和输出“B:
mypidis…”的进程的亲缘关系如何,为什么?
main(){
inta;
pid_tpd1,pd2;
pid1=fork();
pid2=fork();
if(pid1==0&&pid2>0)
printf(“A:
mypidis:
%d\n”,getpid());
if(pid1>0&&pid2==0)
printf(“B:
mypidis:
%d\n”,getpid());
}
2、某管道操作程序的部分代码如下,阅读程序回答下面问题:
(10分)
1程序运行会有怎样的输出?
说明你的分析。
2请说明系统调用fork()为什么应该在调用pipe()前面使用?
wait(NULL)的作用是什么?
intmain(){
intpid_fd[2];
pid_tpid;
charbuf_f[100];
char*p_wbuf;
intr_num;
memset(buf_r,0,sizeof(buf_r));//对缓冲区进行初始化
if(pipe(pipe_fd)<0)
{
printf(“pipecreateerror\n”);
return-1;
}
if((pid=fork())==0){
close(pipe_fd[1]);
sleep
(2);
if((r_num=read(pipe_fd[0],buf_r,100)).0)
{
printf(“%dnumbersreadfromthepipeis%s\n”,r_num,buf_r);
}
close(pipe_fd[0]);
exit(0);
}
elseif(pid>0)
{
close(pipe_fd[0];
if(write(pipe_fd[1],”Hello”,5)!
=-1)
printf(“parentwrite1Hello!
\n”);
if(write(pipe_fd[1],“Pipe”,5)!
=-1)//Pipe前有一个空格
printf(“parentwrite2pipe!
\n”);
close(pipe_fd[1]);
sleep(3);
wait(NULL);
exit(0);
}
return0;
}
3、简单介绍至少4种进程通信方式。
(8分)
4、什么是物理内存空间、虚拟地址空间。
简单说明Linux下内存分配和回收的过程。
(8分)
5、Linux的内存管理函数malloc、kmalloc和vmalloc有什么异同。
(8分)
6、系统调用和模块有什么区别?
简述添加一个满足自己需求的系统调用的步骤有哪些?
(8分)
2010-2011学年第1学期
《Linux操作系统》A卷答案
课程代码 考试方式考试时长分钟
姓名 学号 教学班号 专业级班
一、选择题(每题1分,共20分)
1~5
CDACA
6~10
DDADB
11~15
BBCCB
16~20
CCBCB
二、应用题(20分)
1、解释命令功能或根据功能写出命令(5分,每题1分)
1)列出home目录下所有的csv文件并把结果保存到文件csv.out中
2)将data.txt拷贝到backup目录中,如果有覆盖情况发生则询问用户。
3)cp–r/user/home/file/root
4)tar–cvfmytar.tar*
5)mkdir/newdir/othermv/newdir/* /newdir/home
2、判断用户输入的文件是否存在。
(共5分)
#!
/bin/bash
readfname(1分)
if(test–f“$fname”)then(1分)
echo“exist”(1分)
fi(1分)
执行(1分):
shiffile或者chmod755iffile./iffile
2、自动删除用户账户(共5分)
#!
/bin/sh
i=1(1分)
while[$i-le10](1分)
Do
userdel-rstud${i}(1分)
i=$(($i+1))(1分)
done(1分)
3、脚本运行时带一个用户名作为参数,没有参数时要给警告。
功能为在/etc/passwd文件中查找是否有该用户。
(共5分)
if[$#-eq0];then(1分)
a=`cut-d:
-f1/etc/passwd|grep-c“^$1$”`(2分)
if[$a-gt0];then(1分)
echo“userexists”
else
echo“nosuchuser”
fi
else
echo“onparams”
fi
执行:
shcheckuserusername(1分)
三、判断题(10分,每题1分)
1-5:
FTFFT6-10:
TFTTT
四、问答题(50分)
1、4个进程(2分)
兄弟关系(2分)fork发生时,执行该fork的进程内返回的是子进程的进程号,而被创建出的子进程空间中返回值是0。
(2分)第一次fork后,第1个儿子进程的空间中的pid1==0,继续执行第2次fork若得到的pid2>0,说明仍是第1个儿子在运行。
所以输出A:
…的是第一个儿子;同理,pid1>0是在祖先进程里,祖先进程继续执行得到pid2==0,说明是祖先的第2个儿子。
所以这两个进程是兄弟关系。
(2分)
2、程序运行结果parentwrite1Hello!
parentwrite2Pipe!
10numbersreadfromthepipeisHelloPipe(3分)
分析:
fork()调用后产生父子两个进程,当子进程先执行时,sleep2秒钟,所以一定是父进程先执行,父进程关闭读口文件描述符pipe_fd[0],向管道中写入5个字符“Hello”,输出语句parentwrite1Hello,,继续向管道中写入5个字符“Pipe”,输出语句parentwrite2pipe,关闭写文件描述符pipe_fd[1],
休眠3秒钟,子进程运行,关闭写文件描述符pipe_fd[1],从管道中读出数据,输出10numbersreadfromthepipeisHelloPipe,关闭读文件描述符。
(3分)
必须在fork()前调用pipe(),否则子进程将无法继承文件描述符。
(2分)
wait(NULL)的作用是在子进程exit后回收子进程。
(2分)
3、
(1)信号一种简洁的通信方式,进程或内核均可使用信号通知一个进程有某种事件发生
(2)管道及命名管道进程将管道视为一个文件,一个进程向管道写入数据,另一个进程从管道中读出数据。
(3)消息队列进程之间以传递消息的形式进行通信。
(4)共享内存多个进程可以访问同一块内存空间
(5)信号量进程之间及同一进程之间的同步手段,信号量机制的一种推广。
(答对上述4个即可,每个要点2分)
4、答:
将主板上的物理内存条所提供的内存空间定义为物理内存空间,其中每个内存单元的实际地址就是物理地址(2分)
将应用程序员看到的内存空间定义为虚拟地址空间(或地址空间),其中的地址就叫虚拟地址(或虚地址),一般用“段:
偏移量”的形式来描述(2分)
5、都是内核代码在内核空间分配内存(虚拟内存),但分配的内存在内核空间的不同位置。
kmalloc()分配的内存处于3GB~high_memory之间,vmalloc()分配的内存在VMALLOC_START~4GB之间,(4分)
地址连续性不同:
kmalloc虚拟地址连续,物理地址也连续。
vmalloc虚拟地址连续,但通过分页映射的物理内存不保证物理地址连续。
kamlloc以字节为单位,vmalloc以页为单位。
(4分)
6、系统调用是操作系统内核提供的、功能相对较强的一系列函数,这些函数是在内核码中实现的,并通过某种接口形式,将这些函数提供给用户来进行调用。
(3分)
添加一个能满足自己需求的系统调用需要四个步骤:
(每个步骤1分,共4分)
(1)添加系统调用号
(2)添加新的系统调用服务函数
(3)更新头文件
(4)更新系统调用函数表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东 农业大学 Linux 操作系统 详细 答案 DOC