操作系统实验报告1Vi编辑器的学习和使用_第1页
操作系统实验报告1Vi编辑器的学习和使用_第2页
操作系统实验报告1Vi编辑器的学习和使用_第3页
操作系统实验报告1Vi编辑器的学习和使用_第4页
操作系统实验报告1Vi编辑器的学习和使用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机操作系统实验报告PAGEPAGE1评语:课中检查完成的题号及题数:课后完成的题号与题数:成绩:指导教师:/*文件名请使用“班号+学号+姓名+os项目号”命名,如10010701班同学张**,学号2007302276,则其项目1实验报告的文件名是“10010701_2007302276_张**_os1.doc”。请大家严格遵守。实验报告提交时请删除本注释*/实验报告一实验名称:Vi编辑器的学习和使用观察进程的并发性日期:2011.5.7班级:学号:姓名:一、实验目的:1)通过对vi编辑器的学习和使用,熟悉Unix类环境下的正文编辑程序及其作用。2)通过创建子进程,观察父子进程的并发执行过程,区别顺序执行和并发执行;明确进程和程序的区别;加深对操作系统进程概念和进程并发特性的理解。二、实验内容:1)认真学习Linux的正文编辑的相关基础知识,了解其编辑方式、插入方式和命令方式。2)学习进程的基础知识;了解Linux系统中进程创建的基本原理;熟悉进程的创建、控制、执行和终止等系统调用函数;进程的创建。三、项目要求及分析:1)使用“ESC”键在命令模式和插入模式之间进行切换。各项操作命令如下:(1)进入插入模式a追加,I插入,o在当前行下插入一空行;A在行尾追加,I从行首插入,0在当前行上插入一空行。(2)复制正文yy复制当前行,nyy复制n行,yw复制一个词,y)复制从光标至句末的所有正文;y}复制从光标至句首的所有正文,nyx复制类型为x。(3)删除正文x删除一个字符,dd删除当前行,ndd删除n行,dw删除一个单词(从光标处开始),nx删除n个字符,^gndd删除n行正文到缓冲区g中,^Gndd删除n行正文追加到缓冲区g中,c$从当前光标处删至行尾,d^从当前光标处删至行首,ndw(或dnw)删除n个词。(4)替换正文p将缓冲区的内容粘贴到当前光标处,^gp将g缓冲区里的内容粘贴到当前行下,^gP将g缓冲区的内容粘贴到当前行上,rn用字符n替换当前字符。(5)查找定位nG将光标定位到第n行,^F向前一屏,^B向后一屏,^D向下半屏,^U向上半屏。(6)文件操作:w写盘,:wq(或:ZZ)写盘退出,:q!不存盘退出,:e!不存盘不退出,u恢复前一步的改变,:efilename编辑文件名,:wfilename写文件名,:w!filename重写文件名,:!cmd运行一个命令,然后返回,^G显示当前文件和行号。2)进程的创建。编制一段程序,使用系统调用fork()创建两个子进程,在此程序运行时,系统中就有一个父进程和两个子进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,两个子进程分别显示字符b和字符c。观察、记录并分析屏幕上进程调度和并发执行的情况:此时,在程序中使用系统调用nice()来改变各进程的优先级,观察、记录并分析屏幕上进程调度和并发执行的情况

四、具体实现:开始4.1流程图开始1)创建子进程 创建子进程创建子进程NPNPid1>=0?YYYPid1==0?YPid1==0?出错N打印“N打印“b”创建子进程创建子进程 PPid2>=0?Y打印“a”Y打印“c”退出Pid2==0?NY打印“a”Y打印“c”退出Pid2==0?NN2)修改优先级NYYN打印“b”Pid1==0?出错Pid1>=0?创建子进程开始NYYN打印“b”Pid1==0?出错Pid1>=0?创建子进程开始创建子进程创建子进程修改优先级修改优先级修改优先级N退出打印“a”Pid2==0?NYYPid2>=0?打印“修改优先级N退出打印“a”Pid2==0?NYYPid2>=0?打印“c”4.2添加函数的代码#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/resource.h>#include<sys/wait.h>#include<stdlib.h>intmain(){ pid_tpid1,pid2; pid1=fork(); if(pid1<0) { printf("error!\n"); } elseif(pid1==0) { printf("b\n"); exit(1); } else { pid2=fork(); if(pid2<0) { printf("error\n"); } elseif(pid2==0) { printf("c\n"); exit(1); } else printf("a\n"); }}#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/resource.h>#include<sys/wait.h>#include<stdlib.h>intmain(){ pid_tpid1,pid2; intoldpri1,oldpri2,newpri1,newpri2; pid1=fork(); if(pid1<0) { printf("error!\n"); } elseif(pid1==0) { oldpri1=getpriority(PRIO_PROCESS,getpid()); printf("oldpriorityis:%d\n",oldpri1); newpri1=nice(2); printf("newpriorityis:%d\n",newpri1); printf("b\n"); exit(1); } else { pid2=fork(); if(pid2<0) { printf("error\n"); } elseif(pid2==0) { printf("c\n"); exit(1); } else printf("a\n"); }}#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/resource.h>#include<sys/wait.h>#include<stdlib.h>intmain(){ pid_tpid1,pid2; intoldpri1,oldpri2,newpri1,newpri2; pid1=fork(); if(pid1<0) { printf("error!\n"); } elseif(pid1==0) { oldpri1=getpriority(PRIO_PROCESS,getpid()); printf("b'soldpriorityis:%d\n",oldpri1); newpri1=nice(2); printf("b'snewpriorityis:%d\n",newpri1); printf("b\n"); exit(1); } else { pid2=fork(); if(pid2<0) { printf("error\n"); } elseif(pid2==0) { oldpri2=getpriority(PRIO_PROCESS,getpid()); printf("c'soldpriorityis:%d\n",oldpri2); newpri2=nice(4); printf("c'snewpriorityis:%d\n",newpri2); printf("c\n"); exit(1); } else printf("a\n"); }}4.3修改原有函数部分代码pid2=fork(); if(pid2<0) { printf("error\n"); } elseif(pid2==0) { oldpri2=getpriority(PRIO_PROCESS,getpid()); printf("c'soldpriorityis:%d\n",oldpri2); newpri2=nice(4); printf("c'snewpriorityis:%d\n",newpri2); printf("c\n"); exit(1); }五、调试运行结果:运行结果为b,c,a;Pid1的优先级加2后的运行结果为c,a,b;Pid2的优先级加4后的运行结果为a,b,c。六、所遇问题及解决方法: 1)开始时,不知道什么是终端,结果打开了文本编辑器。后来经过自己的摸索,终于搞明白了,于是可以顺利的按照实验指导书所示内容进入VI进行操作。 2)在进行文件操作时,写盘和写文件名没有弄清楚,经过与同学的讨论和探索,最终成功的进行了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论