




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、扬州大学操作系统实验汇报文书综述操作系统原理实验报告书班级:软件1102心口子»:姓名:指导教师:徐向英2012-2013学年第二学期实验名称:LINUX用户界面实验时间:2013年4月9日第二周星期二一、实验目的1,熟悉Linux字符操作界面,熟练掌握常用Shell命令。2,熟悉Linux文本编辑方法,学会编辑软件VI的使用。3,了解Linux编译器gcc的功能,掌握基于Linux平台的C程序的开发二、实验预习(预备知识的问题及回答)1 .为什么在Linux系统中,诸如光盘、U盘等要先挂载而后才能使用?如何获得U盘的设备名?装载点在文件系统中的位置是什么?由于文件系统的差异,Lin
2、ux在默认情况下并不支持软盘,光盘,U盘,所以需要通过装在相应盘片才可以访问其中的数据装载点是挂载文件系统的目录位置2 .从虚拟机界面退出进入WindowsOS界面的操作是Ctrl+Alt,从WindowsOS界面进入虚拟机界面的方法是鼠标点击虚拟机界面。3 .权限的含义是什么?如何使用数字法设定文件的权限?Linux系统中的每个文件和目录都有相应的访问许可权限,访问权限分为只读(r),可写(w)和可执行三种,有三种不同类型的用户可以对文件或者目录进行访问,分别是文件所有者(u),同组用户(g)和其它用户(o)。所有的文件和目录都被创建他们的人所拥有。只要你是这个文件的所有者或者你登陆为用户,
3、你就拥有了改变所有者,群组和其他人权限的权利。使用数字法改变权限:命令格式chmod权限数值文件名说明给指定文件赋予数值所规定的权限在数字设定法中,每种权限设置均可以用数值来代表,其中0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,这些值之和便可以用来设定特定权限。4 .什么过滤操作?在Linux中如何实现?过滤操作:将一个命令的输出作为一个命令的输入Linux实现的命令格式:命令|命令5 .在Linux中挂载u盘并能显示其文档的中文信息,所使用的挂载命令是:Mount/dev/sdal/mnt/usb6 .什么是vi?其三种操作模式的含义是什么?给出三种工作模式间的转换图。
4、命令模式:vi启动后的默认模式,控制光标的移动,复制删除文字,进入输入模式和末行模式输入模式:进行文字输入末行模式:保存文件,退出VI三、实验内容(包含实验所用命令或相关程序源代码)1.shell操作命令(给出每题所用的Shell命令或命令结果)(1)创建名为stul、stu2的2个用户,设置密码分别为studentl和student2)并将它们设为组groupl中的成员。#groupaddgroupl#useraddstulggroupl#sustulSpasswdstul回车后敲入密码studentl$exit#useraddstud2ggroupl#sustu2$passwdstu2$e
5、xit(2)在每个用户的主目录下建立2个目录,分别命名为diri和dir2o#sustul$cd$mkdirdiri$exit#sustu2$cd$mkdirdir2$exit(3)查找stul用户主目录、下属各子目录的默认存取权限,并给出结论。#sustul$cd.$ls-1用户主目录权限为:drwx,即目录的用户可读,写,执行,同组和其它的用户无任何权限#sustu'$cd$ls-1Dir1目录权限为:drwxr-xr-x,即目录的用户可读,写,执行(4)调试pwd和cd命令,回答下列关于Linux文件系统中目录的有关问题。 用户主目录的绝对路径如何表示?/home/stu1/ho
6、me/stu2 根目录如何表不?/root .和.分别表示什么目录?子目录.父目录表示什么目录?甩户主目录当前目录如何表示?Cd(5)新建用户stu3,设置其密码为student3并将其设置为group2中成员。尔后,以stu3登录,在其主目录下建立名为text的目录,在text目录下再建立名为dir1的子目录,并使其成为当前目录。#groupaddgroup2#useraddstu3ggroup2#sustu3student3$passwd回车后敲入密码$cd$mkdirtext$mkdirdiri$cdtext/diri(6)使用cat>)分析命令行cat$cat>buysom
7、esneakersthengotothecoffeeshopthenbuysomecoffAD$cat)文件内容为:buysomesneakersThengotothecoffeeshopThenbuysomecoff(7)使用上题的方法,其内容为:bringthecoffeehometakeoffshoesputonsneakersmakesomecoffeerelax!$cd/home/stu1/dir1$cat>BringthecoffeehomeTakeoffshoesPutonsneakersMakesomecoffeeRelax!ctrl+d(8)试写出实现下列功能的shel
8、l命令:(即text目录下)。$mv/。$cat>$cat>>将text目录树从stu3用户主目录下移至stu2主目录下。【使用特权用户方法】sumv/home/stu3/text/home/stu2【修改目录权限方法】#cp/home/stu3/text/home/stu2(9)试画出上述命令后)用户stu1、stu2和stu3主目录中的目录树(3棵子树)。HtUtxtu22.LinuxC程序开发(1)编写LinuxC程序,把一个文件的内容复制到另一个文件中,即实现简单的copy功能。要求:程序输入的第一个参数是源文件,第二个参数是目标文件。【源程序】#include<
9、;sys/>#include<>#include<>#include<>Intmain(intargc,char*argv)(FILE*in,*out;Charch;If(argc!=3)(Printf(youforgottoenterafilenamen);Exit(0);If(in=fopen(argv1,"r")=NULL(Printf(cannitopenoutfilen);Exit(0);If(out=fopen(argv2,"w")=NULL(Prntf(cannotopenoutfile);Exit
10、(0);)While(!feof(in)fputc(in),out);Fclose(in);Fclose(out);)【运行命令】#gccotest#./test(2)编写LinuxC程序)列出stu2主目录中的文件信息,、同组用户只读、其他用户无权限。【源程序】#include<sys/>#include<>#include<>#include<>Intmain(intargc,char*argv)(DIR*dp;Structdirent*dirp;Intn=0;If(arge!=2)(Printf(asignleargementisrequi
11、red");Exit(0);If(dp=opendir(argv1)=NULL)(Printf(Cannotopen%s,args1);Exit(0);While(dirp=readdir(dp)!=NULL)&&(n<=50)(If(n%1=0)printf();N+;Printf(%10sn”,dirp->d_name);System(Chmod640/home/stu2/text/dir17)【运行命令】#gccotest#./实验名称:SHELL程序设计实验时间:2013年4月11日第6周星期4一、实验目的ash的Shell熟悉SHELL脚本编程的
12、步骤,掌握基于脚本开发二、实验预习(预备知识的问题及回答)1 .Linux系统默认的shell语言是什么?欲查看该shell的版本,应使用什么命令?Bashshell$echo$BASH_VERSION2 .预习shell有关变量和参数的相关知识,回答下列问题。(1)假设用户进行了如下的赋值操作:$person=jenny试给出下面命令的输出结果。1) echopersonperson2) echo$personjennyShell变量定义HOME保存用户注册目录的绝对路径PATH保存用冒号分割的目录路径PWD当前工作目录的据对路径名PS1主提示符,特权用户为#,普通用户为$0当前shell程
13、序的文件名$#位置参数的个数$?前一个命令执行后返回的状态$当前进程的PIDa3.写出下列expr命令的输出:(1)exprindexvalue"3)echo$person4)echo$person"(2)填充下列与环境变量、变量相关的表格。$personjenny位置变量和预定义(2) exprValue":V.*u'(3) expraaa":条+'(4) expraaa":a?(5) expr2+3(6) expr2+3expr2*3(8) expr5+'expr2+3'(9) exprlengthopera
14、tingsystern(10) exprsubstrlinux234312+356mon-numericargument16inu三、实验内容1.编写Shell脚本,从命令行中接收一个二元算术表达式并计算其结果。【源程序】#!/bin/bashIftest$#=3ThenCases2in+)letz=$1+$3;-)letz=$1-$3;/)letz=$1/$3;x|x)letz=$1*$3;*)echo'warning-$2invalidoperator!”exit;EsacEcho”answerissZElseEcho”usage-$0value1operatorvalue2fi【
15、运行】Chmoda+xjisuan./jisuan2+32 .编写一个以文件列表作为输入的过滤器程序,要求文件名含有以句点“.”分隔的后缀,过滤器输出每个文件的不带句点和后缀的文件名。【源程序】ReadflagWhiletest$flag”DoLocation=expr$location=TBasename=exprsubstr="$flag”1$location'Echo$basecnameReadflagdone【运行】Chmoda+xletter./letter3 .将下面的shell脚本命名为myscript,分析其功能:count=$#cmd=echowhile$c
16、ountpt0docmd="$cmd$count"count='expr$count-1'doneeval$cmd【命令行输入】chmoda+xmyscript./myscriptfirstsecondthird【运行结果】Thirdsecondfirst【脚本功能分析】将命令行输入的参数倒叙显示4 .设计一个程序cuts,它从标准输入读入数据,获取由第一个参数n和第二个参数m所限定范围的数据(包括这两个字符),n和m都是整数。例如:$cuts1114Thisisatestofcutsprogram输入)test(显示结果)【源程序】#!/bin/bashR
17、eadblineEcho$aline|cut-c$1-$2实验名称:进程捽制与通信实验时间:2013年5月7_日第_m周星期2一、实验目的1加深进程的概念理解,体会进程创建过程,经一部认识进程的异步并发特征2,了解Linux进程通信原理3,掌握Linux进程控制和进程通信相关的系统调用二、实验预习(预备知识的问题及回答)1 .写出下列系统调用功能:(1) fork()用于创建进程(2) getpid()用于获取当前的讲程ID号(3) wait()用于等待子进程结束(4) exit0用于讲程自我终止(5) pipe()用于常见无高管道(6) signal()用于在信号和信号处理函数之间建对应关系
18、kill()用于发送信号给指定进程2 .阅读fork系统调用,用伪码写出其实现流程。Pid=fork()Ifpid为负Print当前进程是子进程Elseifpid为0Print当前进程是父进程3 .图示pipe系统调用生成无名管道时所涉及的数据结构4 .在UNIX系统中运行下面程序,最多可以产生多少个进程?画出进程家族树。main()fork();fork();fork();,a的值是多少?main()inta,pid;a=55;);pid=fork();if(pid<0)printf("errorinforkexit(0);elseif(pid=0)sleep(5);a=99
19、;printf("a=%tf,a);sleep(5);exit(0);)elsesleep(7);printf("a=%d,a);wait(0);a=99a=55;最终a=55三、实验内容1.调试下面的程序,观察可能的并发结果,给出简要分析,并画出进程家族树。#include<>#include<sys/>#include<sys/>main()intstatus;intpid1=-1,pid2=-1,pid3=-1;pid1=fork();if(pid1=0)printf("pid1=0,myprocessidis%dn”,g
20、etpid();elseif(pid1>0)printf("pid1>0,myprocessidis%dn",getpid();pid2=fork();if(pid2=0)printf("pid2=0,myprocessidis%dn”,getpid();elseif(pid2>0)printf("pid2>0,myprocessidis%dn",getpid();pid3=fork();if(pid3=0)printf("pid3=0,pid1=%d,pid2=%d,myprocessidis%dn"
21、;,pid1,pid2,getpid();elseif(pid3>0)printf("pid3>0,pid1=%d,pid2=%d,myprocessidis%dn",pid1,pid2,getpid();wait(&status);exit(0);)2.编程实现进程间管道通信。要求:父子进程共享一无名管道,两个子进程作为发送方分别向管道发送一行信息,父进程先读出子进程P1发来的信息行,将其转换为大写字母输出;再读出子进程P2发来的信息行,将其转换为小写字母输出。【源程序】Intfiledes2;Charbuffer80;Main()Pipe(filed
22、es);Charstr180;Charstr280;Intpid1,pid2,I;While(pid=fork()=-1);If(pid1=0)Lockf(filedes1,1,0);Printf(child1inputString1n');Scanf(%s”,str1);Write(filedes1,str,sizeof(str1);Lockf(filedes1,0,0);Exit(0);)ElseWhile(pid=fork()=-1)If(pid2=0)Lockf(filedes1,1,0)Printf(Child2inputstring2n);Scanf(%s”,str2);W
23、rite(filedes1,str2,sizeof(stru2);Lockf(fildes1,0,0);Exit(0);)ElseIf(waitpid(pid1,null,0)=pid1)Read(filedes0,buffer,80);For(i=0;i<sizeof(str1);i+)bufferi=toupper(bufferi);Printf(parent=child1:%sn”,buffer);)ElsePrintf(waitpid1error!”);If(waitpid(pid2,NULL,0)=pid2)(Read(filees0,bufferm80);For(i=0;i&
24、lt;sizeof(str2);i+)Bufferi=tolower(bufferi);Printf(parent=child2:%sn”,buffer);ElsePrintf(Waitpid2error!");【运行与测试】rmiJ*Isi3JtlmI-,aj<.iIeI*hnari<,S.(FtwiI:-li!"i1tim|讣iy.n,rt1chiNinpul«lringIIIaVV-ulJpartD.lliiId1!ILUUtHlJthiId2in|Hj1>fIWItia”par#iiLt'haIJJ1:eivkch>!附加题
25、3.学习下面共享存储区的内容,并用共享存储区的方式实现“观察者一一报告者”问题(共享的count变量存于共享存储区),并验证“与时间有关的错误”。共享存储操作使得两个或两个以上的进程可以共用一段物理内存(一般情况下,两个进程的数据区是完全独立的,父进程用fork创建子进程后,子进程会复制父进程数据到自己的数据区)。(1)创建共享内存#include<sys/>intshmget(key_tkey,size_tsize,intpermflags);参数key是共享内存的标识,size是共享内存段的最小字节数,permflags是访问权限,值的设置同semgeL样。(2)共享内存的控制
26、#include<sys/>intshmctl(intshmid,intcommand,structshmid_ds*shm_stat);command可设为IPC_STAT,IPC_SET,IPC_RMID。参数shm_stat指向存放属性的结构体,具体内容请参考手册。(3)共享内存的附接和断开#include<sys/>void*shmat(intshmid,constvoid*addr,intshmflags);intshmdt(constvoid*addr);由于两个函数需指出进程地址空间中的地址,因此比较复杂。简化的方法是将shmat中的地址设为NULL。【源
27、程序】【运行与测试】实验名称:虚拟存储实验时间:2013年二月21日第12周星期2一、实验目的1,掌握虚拟存储器的概念,理解实现虚拟存储器的基本方法2,体会分页存储器管理中,页面置换的过程3,进一步认识多种页面置换算法的实现机制二、实验预习(预备知识的问题及回答)1.描述请求分页的地址转换过程。程序请求访问一页缺页中髀出保留CPU现场从外中找到出页内存满否?选择一页换出被修改否?构该页写回外存OS命令CPU从外存读缺页页表项在快表中?否CPU检索快表访问页太页在内存?修改快衣地址变换结束修改访问位和修改位形成物理地址启动约硬件修改页表将一页从外存怏入内存超界结束2.解释FIFO页面置换算法所产
28、生的Belady现象。Belady现象是指当进程分配的内存块数增加时,进程缺页率反而上升的现象。FIFO算法在页面置换时,总是淘汰先进入主存的页面,而先进入主存的页面并不一定是以后用不到的页面,如果这些页面以后需要访问,则将产生缺页,因此即使分配的内存块数增加,缺页率依然有可能上升,这是由于使用的页面置换算法不合理导致的三、实验内容1.计算并输出下列页面置换算法在不同内存容量(4页至32页)下的命中率.最佳置换算法(OPT)(2)先进先出算法(FIFO)(3)最近最久未用页面置换算法(LRU)具体要求如下:(1)通过随机函数产生一个指令序列,:1)50%勺指令是顺序执行的;2)25%勺指令是均
29、匀分布在前地址部分;3)25%勺指令是均匀分布在后地址部分;程序中的具体实施方法是:1)在0,319的指令地址之间随机选取一起点地址m;2)顺序执行一条指令,即执行地址为m+1的指令;3)在前地址0,m+1中随机执行一条指令,该指令的地址为mi;4)顺序执行一条指令,即执行地址为M+1的指令;5)在后地址m'+2,319中随机执行一条指令;重复上述步骤(1)(5),直到执行320条指令为止.将指令序列变换成为页地址流:设:页面大小为1k,用户内存容量为4页逐步增加到32页,用户虚存容量为32k.假定在用户虚存中,每页存放10条指令,即320条指令在虚存中的存放方法为:第0条第9条指令在第0页;第10条-第19条指令在第1页;第310条-第319条指令在第31页.:page=m/10,offset=m%10.页地址流长度为320。【源程序】Intpage_stream320;Intb32;Voidran()(Intinstruct320;IntI,j,m,m1,m2;Srand(getpid();I=0;While(i<320)(M=rand()%320;Instructi=m;I+;If(m+1)<320Instructi=m+1;I+;M1=read()%(m+1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装店装修发包合同
- 2025年度养猪场生物安全防控体系建设合同
- 2025年度劳动合同到期解除协议书及离职员工离职证明及离职手续办理指南
- 2025年度建筑劳务施工节能减排合作协议
- 2025年度分红股收益分配与权益变更协议
- 2025年度数据保密审计与保密合同
- 2025年度公司免责的旅游服务合作协议
- 2025年度创业公司股权激励及转让协议
- 2025年网络游戏行业发展现状分析:网络游戏国内用户规模不断扩大
- 岗位晋升申请书
- 让水产动物第一口都吃上虾奶粉(廖英杰)
- 2023年高考数学大招9蒙日圆及其证明
- 城乡居民基本医疗保险参保登记表
- 探究课程之蛇的探究
- 2023年云南省初中信息技术学业水平考试操作题
- 中智集团及下属单位招聘笔试题库2022
- 2023年江苏财会职业学院高职单招(数学)试题库含答案解析
- GB/T 40417-2021电子特气六氟丁二烯
- GB/T 39518-2020产品几何技术规范(GPS)使用单探针和多探针接触式探测系统坐标测量机的检测不确定度评估指南
- GB/T 34281-2017全民健身活动中心分类配置要求
- GB/T 21941-2008土方机械液压挖掘机和挖掘装载机的反铲斗和抓铲斗容量标定
评论
0/150
提交评论