《操作系统上机报告.docx》由会员分享,可在线阅读,更多相关《操作系统上机报告.docx(14页珍藏版)》请在课桌文档上搜索。
1、西安电子科技大学计算机学院操作系统实验实验报告姓名:学号:班级:一、题目实验1:LINUX/UNIXShell部分()系统基本命令1 .登陆系统,输入whoami和pwd,确定自己的登录名和当前目录;登录名admix,当前目录/root2 .显示自己的注册目录?命令在哪里?a.键入echo$HoME,确认自己的主目录;主目录为/rootb.键入echo$PATH,记下自己看到的目录表;usrlibqt-3.3binusrkerberossbinusrkerberosbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
2、/usr/XHR6/bin:/root/binc.键入whichabed,看看得到的错误信息;usrbinwhich:noabedin(usrlibqt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/XHR6/bin:/root/bin再键入whichIs和whichvi,对比刚刚得到的结果的目录是否在a.、b.两题看到的目录表中;aliasIs=zIs-coIor=ttyzbinlsbinvi3 .Is和cd的使用:a
3、.键入Is,Is-I,Is-a,Is-al四条命令,观察输出,说明四种不同使用方式的区别。Is:列出目录内容Is-I:以长格式详细显示文件信息Is-a:列出所有文件,包括以文件Is-al:以长格式显示当前目录下的所有文件b.利用cd转到/bin,sbin,/etc,dev,再利用Is列出各个目录的内容,如果迷路”,可以利用pwd确定位置,或键入Cd,cd-观察效果.cd,cd的区别:cd:回到上层目录cd:可进入用户的HOME目录(二)基本操作1 .用CP将usrshare目录下的exercise子目录连同目录下的文件拷贝到自己的主目录下,然后进入自己的exercise目录.2 .输入/输出重
4、定向和cat,more等显示命令的配合使用:a.输入cat命令列出目录下Iongtext文件中的内容;b.输入cat命令列出目录下Iongtext文件中的内容,是否发现一屏显示不完?是c.使用more命令列出Iongtext的内容:d.输入cathello.txthello2.txt,再输入cathello.txthello2.txt,再检查hello2.txt的内容有何变化;说明与的区别。是把hello.txt的内容覆盖在hello2.txt内是把hello.txt的内容续写在hello2.txt内e.对比两条命令:moreIongtext和catIongtextmore,两者有何不同点?m
5、oreIongtext显示出已经显示出来的内容的百分比CatlOngteXtlmOre不显示f.执行命令echohello.txt文档就会被清空g.输入命令cat符号并可以输入文档h.设计一条命令,使该命令可以从标准输出中读入;cathello3.txtcathello3.txt就可以看到3 .特殊字符:输入catalsoatext.txt,看看能否打开目录下的alsoatext.txt文件,若不能,该怎么办?输入catalsoatext.txt”(参考答案:Catalsoatext.tt)4 .文件链接:a.用In命令为目录下的IOngteXt文件建立一个硬链接,链接名为IOngteXt2,
6、然后把IongteXt复制一个新文件IongteXt3,用cat命令将hello,txt的内容追加到IOngteXt的末尾,再用diff命令比较Iongtext,Iongtext2和IongteXt3,看看有什么结果,特别是比较一下Iongtext和IongtextZ是否相同;Iongtext和IOngteXt2一直是相同的在Iongtext后续写hello.txt之后,Iongtext和IOngteXt2均与Iongtet3不同了b.用In命令给IOngteXt3建立一个符号链接IongteXt4,用cat命令看看IOngteXt4;然后删去IongteXt3,再用cat命令看看IOngte
7、Xt4,是否有什么不同?没有不同c.删去Iongtet2,看看能否用cat命令看到Iongtext?能d.试着执行ln-sabcde./nulllink,看看是否能建立文件链接.不能5 .查找命令find:用find命令查找当前目录下所有以del开头或以del结尾的文件,并将其删除,要求删除前征求用户许可.find./-namedel*rm-idel*find./(-namedel/*-o-name*del)-execrm-i;find./(-namedel/*-o-name*del)-exec-okrm;6 .文件的属性:a.用Is-I列出exercise目录下所有的文件和目录,观察其权限位
8、;b.将hello2.txt的读权限去掉,看看还能否用cat打开该文件;不能c.将program目录的读权限去掉,看看是否能用Is命令看到其中内容?不能(三)SheIl程序设计编写一个Shell过程完成如下功能:1 .合并两个$1、$2文件为$3,并显示。2 .如果缺少$3,那么先报告缺少$3,将合并后的内容输出到CHENG.TXT,显示。3 .如果缺少$2、$3那么先报告缺少$2、$3,只显示$1的内容。iftest-f$3thencat$1$2$3cat$3elseiftest-f$2thenecho$3isnotafileornotinthisdirectorycat$l$2CHENG.
9、TXTcatCHENG.TXTelseechoNeither$2or$3isafileorinthisdirectorycat$1fifi实验2:实验题目进程的建立实验目的创建进程及子进程在父子进程间实现进程通信实验软硬件环境Linux、WindoWS98、WindowsZOOO实验内容创建进程并显示标识等进程控制块的属性信息:显示父子进程的通信信息和相应的应答信息。(进程间通信机制任选)实验步骤创建进程;显示进程状态信息;实现父子进程通信;考核指标显示创建的进程及控制块参数;显示进程间关系参数源程序:#include#include#include#include#include#defin
10、eBUFFERSIZE32intmain()pid_tpid;intstatus;intfd2;charbufBUFFERSIZE=Thisisapipen;if(pipe(fd)O)printf(pipeerrorn);exit(l);pid=fork();if(pidWindows2000实验内容利用通信API实现进程之间的同步:建立司机和售票员进程;并实现他们间的同步运行。实验步骤创建进程;实现同步操作或函数;实现公共汽车司机和售票员开关车门及行车运行过程的同步模型;显示同步运行的结果。考核指标显示司机和售票员进程的同步运行轨迹。司机进程代码:#includeinclude#includ
11、e#includeincludeinclude#includeinclude#include#includecharSEM_NAMEl=sl;inti;sem_t*sl;sem_t*s2;si=Sem_oPen(SEM_NAMEl,O_CREA10644,0);if(sl=SEM_FAILED)(perror(unabletocreatesemaphore);sem_unlink(sl);exit(-l);)s2=Sem_oPen(SEM_NAME2,CLCREA7;0644,0);if(s2=SEM_FAILED)perror(unabletocreatesemaphore);sem_unl
12、ink(s2);exit(-l);)for(i=0;i=2;i+)printf(driverreachstation,stopcarn);sem_post(s2);printf(driverwaitingclosingdoorn);sem_wait(sl);printf(driverleavingstationn);printf(carisrunningn);)seep(2);sem_close(sl);sem_close(s2);sem_unlink(SEM_NAMEl);sem_unlink(SEM_NAME2);.exit(O);)售票员进程代码:#includeinclude#incl
13、udeinclude/include#include#includeincludeincludeincludecharSEM_NAMEl=sl;inti;sem_t*sl;sem_t*s2;/create&initializesemaphoresi=Sem_oPen(SEM_NAMEl,0,0644,0);if(sl=SEM_FAILED)(perror(unabletocreatesemaphore);sem_close(sl);eit(-l);)s2=sem_open(SEM_NAME2z0,0644,0);if(s2=SEM_FAILED)perror(unabletocreatesem
14、aphore);sem_close(s2);exit(-l);)for(i=0;i=2;i+)sem_wait(s2);printf(,conductoropendoor,passenger,closedoorn);sem_post(sl);printf(conductorwaitingreachingstationn);sem_close(sl);sem_close(s2);_exit(O);运行结果:结果分析:利用PV操作实现司机进程和售票员进程之间的同步。设司机进程的信号量为Sl,售票员进程信号量为S2o当车到站时,停车,进行操作V(S2),P(Sl)o此时司机进程被挂起,售票员进程开始
15、进行。售票员进程先进行P(S2)操作,若之前未进行V(S2)则被挂起,否则进程继续执行,打开车门。待人上完后关车门,进行V(Sl)操作,唤醒被挂起的司机进程。汽车再次离站开出。实验4:实il.ZLinux文件系统实验题目实验通过熟悉使用相关命令、使用系统调用来读写文件熟悉LinUX文件系统,并阅读LinUX文目件系统设计与实现的相关资料,加深理解。的实验软硬Linux件环境实文件命令:文件操作的系统调用内容Linux文件系统理解熟悉文件系统常用命令实(Is,mv,rm,ln,cp,compress,uncompress,gzip,gunzip,rar,rpm,tar,df,mount,umou
16、nt,chmod,chown验,.);步骤建立相关用户和组,并熟悉文件系统的权限管理;利用文件操作相关的系统调用实现一个文件拷贝命令(参数为源文件、目标文件,提示源文件不存在,提示目标文件存在是否覆盖);阅读Linux文件系统设计与实现的相关资料;考核t演示实验结果。指标#includeincludeinclude#includeincludeinclude#defineBUFF_SIZE1024intmain(intargczchar*argv)intsrc_file,dest_file;intreal_read_len;unsignedcharbuffBUFF_SIZE;charcover
17、;/argcisnotcorrectif(argc!=3)printf(,Errorusecopy!n);printf(Example:n);printf(copysrc_filedestilen);exit(l);/judgewheathersrc_fileexistsif(access(argvl,F_OK)!=0)printf(sourcefiledosentexist.n);exit(-l);)/judgetheexistenceofthedest_fileif(access(argv2,F_OK)=0)printf(dest_filealreadyexists.coverit?n);
18、printf(yesyornotn?n);scanf(%ccover);if(cover=,n,)exit(l);elseprintf(coverit!n);)/Opensrc_filereadonlysrc_file=open(argvl,O_RDONLY);/Ifthedest_fileisnotexsit,thencreatenewonedestJile=open(argv2,O-WRONLYO-CREATz666);/Openerrorif(src_fileO|dest_file0)write(dest_file,buff,real_read_len);)/closefdclose(dest_file);close(srcile);return0;)程序分析:本程序主函数接受两个参数,为源文件目录和目标文件目录。首先程序尝试打开源文件,若无法打开表明源文件不存在。之后尝试打开目标文件,若成功打开目标文件表明目标文件已存在,询问用户是否覆盖。若目标文件打开失败表明目标文件不存在,创建目标文件并将源文件的内容复制到目标文件中。