ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:155.68KB ,
资源ID:4278465      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4278465.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验报告书 施敏宇.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

操作系统实验报告书 施敏宇.docx

1、操作系统实验报告书 施敏宇 操作系统原理实 验 报 告 书 班级: 信息1101 学号: * * * * * 2013-2014 学年 第 一 学期实验名称: LINUX 用户界面 实验时间: 年 月 日 第 周 星期 一、实验目的1熟悉Linux字符操作界面,熟练掌握常用Shell命令。2熟悉Linux中文本编辑方法,学会编辑软件vi的使用。3了解Linux编绎器gcc的功能,掌握基于Linux平台的C程序开发。二、实验预习(预备知识的问题及回答)1为什么在Linux系统中,诸如光盘、U盘等要先挂载而后才能使用?如何获得U盘的设备名?装载点在文件系统中的位置是什么?答 由于文件系统的差异,l

2、inux在默认情况下并不支持软盘光盘U盘,所以需要装在相应的盘片才能访问其中的数据装载点就是挂载文件系统的目录位置2从虚拟机界面退出进入Windows OS界面的操作是 ctrl+ait ,从Windows OS界面进入虚拟机界面的方法是 鼠标点击虚拟机界面 。3权限的含义是什么?如何使用数字法设定文件的权限?答权限的含义Linux系统中的每个文件和目录都有相应的访问许可权限,访问权限分为只读(r),可写(w)和可执行三种。有三种不同类型的用户可对文件或目录进行访问,分别是文件所有者(u),同组用户(g)和其他用户(o)。所有的文件和目录都被创建它们的人所“拥有”,只要你是这个文件的所有者或你

3、登录为根用户,你就拥有了改变所有者、组群和其他人权限的权利。 使用数字法改变权限命令格式chmod权限数值文件名说明给指定文件赋予数值所规定的权限。在数字设定法中,每种权限设置均可用数值来代表,其中0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,这些值之和便可用来设立特定权限。所以数字属性的格式应为3个07的八进制数,3个数表示的次序为u、g和o。4什么过滤操作?在Linux中如何实现?答:过滤操作:将一个命令(程序)的输出作为另一个命令(程序)的输入Linux实现的命令格式:命令丨命令5在Linux中挂载u盘并能显示其文档的中文信息,所使用的挂载命令是: mount /de

4、v/sda1 /mnt/sub 。6什么是vi? 其三种操作模式的含义是什么?给出三种工作模式间的转换图。vi有3种基本工作模式:命令模式(Command Mode):vi启动后的默认模式,控制光标的移动、复制删除文字、进入输入模式和末行模式输入模式(Insert Mode):进行文字输入末行模式(Last Line Mode):保存文件、退出vi图示三种工作模式转换图。 三、实验内容(包含实验所用命令或相关程序源代码)1shell操作命令(给出每题所用的Shell命令或命令结果)(1)创建名为stu1、stu2的2个用户,设置密码分别为student1和student2 ,并将它们设为组gr

5、oup1中的成员。答#Groupadd group1#Useradd stu1 g group1#Useradd stu2 g group1$Passwd stu1Student1Student1$Passwd stu2Student2Student0(2)在每个用户的主目录下建立2个目录,分别命名为dir1和dir2。答#Su stu1$Cd$Mkdir dir1 $Mkdir dir2$Exit#Su stu2$Cd$Mkdir dir1 $Mkdir dir2(3)查找stu1用户主目录、下属各子目录的默认存取权限,并给出结论。答 #Su stu1$Cd$Ls -l(4)调试pwd和cd

6、命令,回答下列关于Linux文件系统中目录的有关问题。用户主目录的绝对路径如何表示? /home/stu1 /home/stu2 根目录如何表示? /root 和分别表示什么目录? 子目录 父母目录 表示什么目录? 主目录 当前目录如何表示? Cd (5)新建用户stu3,设置其密码为student3,并将其设置为group2中成员。尔后,以stu3登录,在其主目录下建立名为text的目录,在text目录下再建立名为dir1的子目录,并使其成为当前目录。答 #Groupadd group2$Useradd stu3 g group2$Passwd stu3Student3Student3#Su

7、 stu3$Cd$Cd text$Mkdir dir1$Cd dir1(6)使用catsneakers.txt命令,分析命令行cat sneakers.txt的显示结果。$ catsneakers.txt buy some sneakersthen go to the coffee shop then buy some coffD$cat sneakers.txt答 $catsneakers.txtbuy some sneakersthen go to the coffee shop then buy some coffctrl D(7)使用上题的方法,在dir1目录中建立home.txt文件

8、,其内容为: bring the coffee home take off shoes put on sneakers make some coffee relax!答 $Exit#Su stu1$Cd$Cd dir1$Cathome.txtbring the coffee home take off shoes put on sneakers make some coffee relax!Ctrl D(8)试写出实现下列功能的shell命令: 将home.txt文件移至其上级目录中(即text目录下)。答 $ exit#Su stu1$Cd /home/stu1/dir1$Mr /home/

9、stu1/dir1/home.txt ./home/stu1 将home.txt添加到sneakers.txt尾部形成新的文件saturday.txt。答 $exit #Su stu1 $Cd /home/stu1$Cat sneakers.txtSaturday.txt$Cat home.txtSaturday.txt 将text目录树从stu3用户主目录下移至stu2主目录下。【使用特权用户方法】sumv /home/stu3/text /home/stu2【修改目录权限方法】将 Saturday.txt文件从stu2目录中复制到stu1目录中。#cp /home/stu1/saturda

10、y.txt /home/stu2(9) 试画出上述命令后,用户stu1、stu2和stu3主目录中的目录树(3棵子树)。2 Linux C程序开发(1)编写Linux C程序,把一个文件的内容复制到另一个文件中,即实现简单的copy功能。要求:程序输入的第一个参数是源文件,第二个参数是目标文件。【源程序】#include #include int main(int argc ,char *argv) FILE *in, *out; char ch ; if(argc!=3) printf(“You forgot to enter a filenamen”); exit(0); if(in=fo

11、pen(argv1,“r”)=NULL) printf(“can not open infilen”); exit(0); if(out=fopen(argv2,“w”)=NULL) printf(“can not open outfilen”); exit(0); while(!feof(in)fputc(fgetc(in),out); fclose(in); fclose(out);【运行命令】#gcc o test copy.c#./test file1.c file2.c(2)编写Linux C程序,列出stu2主目录中的文件信息,并将其中saturday.txt文件的权限设置为文件所

12、有者可读可写、同组用户只读、其他用户无权限。【源程序】#include #include #include #include int main(int argc ,char *argv) DIR *dp; struct dirent *dirp; int n=0; if(argc!=2) printf(“a single argment is required”); exit(0);if(dp=opendir(argv1)=NULL) printf(“can not open %s”,argv1); exit(0);while(dirp=readdir(dp)!=NULL)&(nd_name)

13、;system(“chmod 640 /home/stu2/text/dir1/saturday.txt”);【运行命令】#gcc o test list.c#./test /home/stu2实验名称: SHELL程序设计 实验时间: 年 月 日 第 周 星期 一、实验目的1熟悉Shell脚本编程的步骤,掌握基于Bash的Shell脚本开发。2掌握Shell脚本中变量、条件测试的使用。3掌握Shell脚本中的控制流结构和函数的使用。二、实验预习(预备知识的问题及回答)1. Linux系统默认的shell语言是什么?欲查看该shell的版本,应使用什么命令?答:Linux系统默认的shell语

14、言是Bash shell。欲查看该shell的版本,应使用的命令是: $echo $BASH_VERSION2. 预习shell有关变量和参数的相关知识,回答下列问题。(1)假设用户进行了如下的赋值操作:$ person=jenny试给出下面命令的输出结果。1) echo person person 2) echo $person jenny 3) echo $person $person 4) echo “$person” jenny (2)填充下列与环境变量、位置变量和预定义变量相关的表格。Shell变量定义HOME用于保存用户注册目录的绝对路径PATH保存用冒号分隔的目录路径,shell

15、将按PATH变量中给出的顺序搜索这些目录,找到第一个与命令名一致的可执行文件将被执行。PWD当前工作目录的绝对路径名,该变量取值随cd命令的使用而变化。PS1主提示符,默认特权用户为#,普通用户为$。$0表示当前shell程序的文件名。$#表示位置参数的个数。$?前一命令执行后返回的状态。$当前进程的pid。3写出下列expr命令的输出: (1)expr index “value” a(2)expr “value” : v.*u(3)expr “aaa” : a+(4)expr “aaa” : a?(5)expr 2+3 (6)expr 2 + 3 (7)expr 2 * 3(8)expr 5

16、 + expr 2 + 3(9)expr length “operating system”(10)expr substr linux 2 3答:(1)2 (2)4 (3)3 (4)1 (5)2+3 (6)5(7)6 (8)non-numeric argument (9) 16 (10)inu三、实验内容1编写Shell脚本,从命令行中接收一个二元算术表达式并计算其结果。【源程序】#!/bin/bashif test $#=3then case $2 in +) let z=$1+$3; ; -) let z=$1-$3; ; /) let z=$1/$3; ; x|X) let z=$1*$

17、3; ; *) echo “Warning -$2 invalid operator!” exit; ; esacecho “Answer is $z” else echo “Usage - $0 Value1 operator value2” fi【运行】chmod a+x jisuan./jisuan 2 +32编写一个以文件列表作为输入的过滤器程序,要求文件名含有以句点“.”分隔的后缀,过滤器输出每个文件的不带句点和后缀的文件名。【源程序】read flag while test “$flag” != “#” #输入的文件列表以井号结束 do location=expr “$flag”

18、: “.*.” location=expr $location 1 basename=expr substr “$flag” 1 $locationecho $basename read flagdone【运行】chmod a+x letter./letter3将下面的shell脚本命名为myscript,分析其功能:count=$#cmd=echowhile $count gt 0 do cmd=$cmd $count count=expr $count - 1doneeval $cmd【命令行输入】 chmod a+x myscript ./myscript first second th

19、ird【运行结果】答: third second first【脚本功能分析】答: 将命令输入的参数倒序显示4设计一个程序cuts,它从标准输入读入数据,获取由第一个参数n 和第二个参数m所限定范围的数据(包括这两个字符),n和m都是整数。例如:$ cuts 11 14This is a test of cuts program (输入)test (显示结果)【源程序】答#! /bin/bashread alineecho $aline | cut c $1-$2实验名称: 进程控制与通信 实验时间: 年 月 日 第 周 星期 一、实验目的1. 加深进程概念的理解,体会进程创建过程,进一步认识进

20、程的异步并发特征。2. 了解Linux系统中,进程通信的基本原理,重点掌握进程的信号通信和管道通信机制。3掌握Linux系统中,与进程控制和进程通信相关的系统调用。二、实验预习(预备知识的问题及回答)1写出下列系统调用功能: (1)fork()用于 创建进程 (2)getpid()用于 获取当前进程id号 (3)wait()用于 等待子进程结束 (4)exit()用于 进程自我终止 (5)pipe()用于 创建无名管道 (6)signal()用于 在信号与信号处理函数之间创建对应关系 (7)kill()用于 发送信号给制定进程 2阅读fork系统调用,用伪码写出其实现流程。答pid=fork(

21、)if pid为负 print fork调用失败else if pid为0 print 当前进程是子进程else pid为正 print 当前进程是父进程3图示pipe系统调用生成无名管道时所涉及的数据结构。4. 在UNIX系统中运行下面程序,最多可以产生多少个进程?画出进程家族树。main( ) fork( ); fork( ); fork( );答: 最多可以产生8个进程5.下列程序运行后,a的值是多少?main( ) int a,pid; a=55; pid=fork( );if(pid0) printf(errorinfork !); exit(0); else if(pid=0) s

22、leep(5); a=99; printf(“a=%dn”,a);sleep(5); exit(0); else sleep(7); printf(“a=%dn”,a); wait(0); 答:程序的运行结果为a=99,a=55;最终a=55三、实验内容1调试下面的程序,观察可能的并发结果,给出简要分析,并画出进程家族树。#include #include #includemain() int status;intpid1=-1,pid2=-1,pid3=-1; pid1=fork();if(pid1=0)printf(pid1=0,myprocessidis%dn,getpid(); els

23、e if(pid10) printf(pid10,myprocessidis%dn,getpid(); pid2=fork( );if(pid2=0)printf(pid2=0, myprocessidis%dn,getpid(); else if(pid20) printf(pid20, myprocessidis%dn,getpid(); pid3=fork();if(pid3=0)printf(pid3=0,pid1=%d,pid2=%d,myprocessidis%dn,pid1,pid2,getpid(); else if(pid30) printf(pid30, pid1=%d,p

24、id2=%d, myprocessidis %dn,pid1,pid2,getpid();wait(&status);exit(0); 答: 可能情况1:pid1=0,my process ID is 3937pid10,my process ID is 3936pid2=0,my process ID is 3939pid20,my process ID is 3936pid3=0,pid1=3937,pid2=3939,my process ID is 3941pid30,pid1=3937,pid2=3939,my process ID is 3936pid3=0,pid1=0,pid2

25、=-1,my process ID is 3938pid30,pid1=0,pid2=-1,my process ID is 3937pid3=0,pid1=3937,pid2=0,my process ID is 3940pid30,pid1=3937,pid2=0,my process ID is 3939可能情况2:pid1=0,my process ID is 3937pid3=0,pid1=0,pid2=-1,my process ID is 3938pid30,pid1=0,pid2=-1,my process ID is 3937pid10,my process ID is 39

26、36pid2=0,my process ID is 3939pid20,my process ID is 3936pid3=0,pid1=3937,pid2=3939,my process ID is 3941pid30,pid1=3937,pid2=3939,my process ID is 3936pid3=0,pid1=3937,pid2=0,my process ID is 3940pid30,pid1=3937,pid2=0,my process ID is 3939进程家族树为: 2编程实现进程间管道通信。 要求:父子进程共享一无名管道,两个子进程作为发送方分别向管道发送一行信息,

27、父进程先读出子进程P1发来的信息行,将其转换为大写字母输出;再读出子进程P2发来的信息行,将其转换为小写字母输出。【源程序】 答:#include #include #include #include #include int filedes2;char buffer80;main() pipe(filedes); char str180; char str280; int pid1,pid2,i; while(pid1=fork()=-1) ; if (pid1 = 0) lockf(filedes1,1,0); printf(child1 input string1n); scanf(%s,str1); write(filedes1,str1,sizeof(str1); lockf(filedes1,0,0); exit(0); else while(pid2=fork()=-1) ; if (pid2 = 0) lockf(filedes1,1,0); printf(child2 input string2n); scanf(%s,str2); write(filedes1,str2,sizeof(str2); l

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2