计算机操作系统实验报告.doc

上传人:仙人指路1688 文档编号:2882244 上传时间:2023-03-01 格式:DOC 页数:56 大小:4.20MB
返回 下载 相关 举报
计算机操作系统实验报告.doc_第1页
第1页 / 共56页
计算机操作系统实验报告.doc_第2页
第2页 / 共56页
计算机操作系统实验报告.doc_第3页
第3页 / 共56页
计算机操作系统实验报告.doc_第4页
第4页 / 共56页
计算机操作系统实验报告.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《计算机操作系统实验报告.doc》由会员分享,可在线阅读,更多相关《计算机操作系统实验报告.doc(56页珍藏版)》请在三一办公上搜索。

1、院 系: 计算机科学学院 专 业: 计算机科学与技术 年 级: 2010级 课程名称: 操作系统原理 指导教师: 艾勇 学 号: 09061082 10061064 10061065 10081109 10151251 姓 名: 谭垒 朱辰 徐丽 张赛北 张胜南 2013年 6 月 3 日年级2010级专 业计算机科学与技术班级一大班3小班组号 08实验室9#206日期2013.5实验名称 实验一 操作系统实验环境熟悉(Linux操作命令、Linux/Windows平台编程工具)实验内容分项内容实验级别Linux 常用命令的使用(操作系统使用级)Vi / Emacs等编辑软件的使用(操作系统使

2、用级)cc 、gcc 、g+、 gdb 命令的使用(开发调试环境)(操作系统使用级)小 组 成 员姓名学号组内分工(各实验大家都参与了,最后主要负责演示模块是以下内容)自我评分教师评分谭垒09061082Linux 常用命令的使用朱辰10061064Vi / Emacs等编辑软件的使用徐丽10061065cc 、gcc 、g+、 gdb 命令的使用(开发调试环境)张赛北10081109cc 、gcc 、g+、 gdb 命令的使用张胜南10151251Vi / Emacs等编辑软件的使用小组成绩评定教师签名: 年 月 日实验分项1inux 常用命令的使用(操作系统使用级)实验目的1.熟悉Linu

3、x概念,比如Linux发行版、宏内核、微内核等。2.掌握Ubuntu Linux系统的安装方法,了解在多操作系统环境下如何本地安装(光盘安装)Ubuntu Linux。3.熟悉Linux系统的文件系统结构。实验要求具体题目:Linux 常用命令的使用(操作系统使用级)系统平台:Linux系统平台实验原理步骤(算法流程)实验内容:Linux常用命令及功能:1、Pwd命令语法:pwd 说明:此命令显示出当前工作目录的绝对路径。2、cd 命令语法:cd directory 功能:改变工作目录。3、mkdir命令功能:创建一个目录(类似MSDOS下的md命令)。语法:mkdir 选项 dir-name

4、 4、rmdir 命令功能:删除空目录。语法:rmdir 选项 dir-name 5、Cat命令使用方式:cat -AbeEnstTuv -help -version fileName 说明:把档案串连接后传到基本输出(萤幕或加 fileName 到另一个档案) 6、cp命令 语法: cp 选项 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。7、mv命令语法:mv 选项 源文件或目录 目标文件或目录 说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。8、rm命令语法:rm 选项

5、 文件9、ls 命令功能:列出目录的内容。语法:ls 选项 目录或是文件 实验结果及分析10、chmod 命令功能:改变文件或目录的访问权限。 语法:chmod who + | - | = mode 文件名?或chmod mode 文件名? 11、sort命令 语法: sort 选项 文件12、gzip命令语法:gzip 选项 压缩(解压缩)的文件名功能:对文件进行压缩和解压缩13、unzip命令语法:unzip 选项 压缩文件名.zip14、tar命令语法:tar 主选项+辅选项 文件或者目录功能:为文件和目录创建档案1、使用mkdir创建一个test1目录:mkdir test1,结果显示

6、为: 2、将test1更名为test2,结果显示为:实验结果及分析3、使用ls命令,结果为:4、创建一个test.txt文件,利用chmod修改其权限,兵用ll查看权限为:5. Pwd命令结果示图实验结果及分析6.Wc命令结果示意图7.Wc命令结果示意图8. .sort命令结果示意图实验结果及分析9.tar 命令结果示意图10 mv命令结果示意图心得体会通过本次实验我们熟悉了Linux系统使用的基本方法,还了解了很多Linux系统使用的常用命令,如登录login,修改权限chmod等的。Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linu

7、x和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。例如,用户登录后,按一下“Alt+F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是,当一个程序出错

8、造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 由于我们日常生活中接触最多的是windows操作系统,很少有接触到其他的系统。所用在本实验中,初步体验到了Linux的魅力,对它产生了浓厚的兴趣,希望在今后的学习中能够更全面了解Linux操作系统。实验分项2Vi / Emacs等编辑软件的使用(操作系统使用级)实验目的1、掌握 Linux 系统终端方式使用的编辑器 vi;2、学习 vi 的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、 查找/替换等命令;3、掌握 GCC 编译器的使用。实验要求具体题目:Vi / Emacs等编辑软件的使用(操作系统使用级)系统平台:L

9、inux系统平台实验原理步骤(算法流程)实验内容: Vi编辑器一、Vi概述vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。vi也是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1命令行模式co

10、mmand mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。 2插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按【ESC】键可回到命令行模式。3底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令行模式。 二、实验内容步骤1vi的基本操作(1)进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是进入vi之后,

11、是处于 “命令行模式”,需要切换到“插入模式”才能够输入文字。(2)切换至插入模式编辑文件 在“命令行模式”下按一下字母【i】就可以进入“插入模式”,这时候就可以开始输入文实验原理步骤(算法流程)字了。(3)Insert 的切换 目前处于“插入模式”,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下【ESC】键转到“命令行模式”再删除文字。 (4)退出vi及保存文件 在“命令行模式”下,按一下【:】冒号键进入“底行模式”。2命令行模式功能键 (1)插入模式 I: 在光标之前插入; a: 在光标之后插入; I: 在光标所在行的行首插入; A: 在光标所在行的

12、行末插入; o: 在光标所在的行的上面插入一行; O: 在光标所在的行的下面插入一行; s: 删除光标后的一个字符,然后进入插入模式; S: 删除光标所在的行,然后进入插入模式(2)从插入模式切换为命令行模式 (3)移动光标 vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母“h”、“j”、“k”、“l”,分别控制光标左、下、上、右移一格。 ctrl+b:屏幕往“后”移动一页。 ctrl+f:屏幕往“前”移动一页。 ctrl+u:屏幕往“后”移动半页。 ctrl+d:屏幕往“前”移动半页。 0: 移到文章的开头。 G: 移动到文章的最后。 $: 移动到光标所在行的“行尾”。

13、 : 移动到光标所在行的“行首” w: 光标跳到下个字的开头 e: 光标跳到下个字的字尾 b: 光标回到上个字的开头 #l: 光标移到该行的第#个位置,如:5l,56l。 (4)删除文字 x:每按一次,删除光标所在位置的“后面”一个字符。 例如:“6x”表示删除光标所在位置的“后面”6个字符。 X:大写的X,每按一次,删除光标所在位置的“前面”一个字符。 例如:“20X”表示删除光标所在位置的“前面”20个字符。 dd:删除光标所在行。 例如:#dd:从光标所在行开始删除#行 (5)复制 yw:将光标所在之处到字尾的字符复制到缓冲区中。 例如: “#yw”:复制#个字到缓冲区 yy:复制光标所

14、在行到缓冲区。 实验原理步骤(算法流程)例如:“#yy”:“6yy”表示拷贝从光标所在的该行“往下数”6行文字。p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。 (6)替换 r:替换光标所在处的字符。 R:替换光标所到之处的字符,直到按下【ESC】键为止。 (7)回复上一次操作 u:如果您误执行一个命令,可以马上按下“u”,回到上一个操作。按多次“u”可以执行多次回复。 (8)更改 cw:更改光标所在处的字到字尾处 例如:“c#w”:“c3w”表示更改3个字 (9)跳至指定的行 ctrl+g:列出光标所在行的行号。 例如:“#G”

15、:“15G”表示移动光标至文章的第15行行首。 3 底行模式命令 在使用“底行模式”之前,请记住先按【ESC】键确定您已经处于“命令行模式”下后,再按【:】冒号即可进入“底行模式”。 (1)列出行号 set nu: 在文件中的每一行前面列出行号。 (2)跳到文件中的某一行 #: “#”号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。 (3)查找字符 /关键字: 先按“/”键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按“n”会往后寻找到您要的关键字为止。 ?关键字: 先按“?”键,再输入您想寻找的字符,如果第

16、一次找的关键字不是您想要的,可以一直按“n”会往前寻找到您要的关键字为止。 (4)保存文件 w: 在冒号输入字母“w”就可以将文件保存起来。 (5)离开vi q: 按“q”就是退出,如果无法离开vi,可以在“q”后跟一个“!”强制离开vi。 qw: 一般建议离开时,搭配“w”一起使用,这样在退出的时候还可以保存文件。 5 Vi编辑程序(1) 在vi中编写一个cjb.c程序,对程序进行编译、连接、运行。具体如下:studentenjoy student$ mkdir cjbstudentenjoy student$ cd cjbstudentenjoy cjb$ vi cjb.cmain() i

17、nt i,sum=0; for(i=0;i=100;i+) sum=sum+i; printf(n1+2+3+.+99+100=%dn,sum);studentenjoy cjb$ gcc -o cjb cjb.cstudentenjoy cjb$ lscjb cjb.cstudentenjoy cjb$ ./cjb1+2+3+.+99+100=5050studentenjoy cjb$studentenjoy cjb$(2)编写一个程序解决“鸡兔同笼”问题。 #include main() int h,f; int x,y; printf(请输入头数和脚数:); scanf(%d,%d,&h

18、,&f); x=(4*h-f)/2; y=(f-2*h)/2; printf(鸡=%d 兔子=%d,x,y);运行结果:请输入头数和脚数:18,48鸡=12 兔子=6几个典型操作:查找:实验结果及分析替换:改变一行的内容:编程:心得体会 通过本次实验,对Linux系统进行了操作,学习并初步掌握了Linux常用命令及系统基本操作,了解了vi编辑器的基本用法和一些指令的作用,能运用vi编辑器进行文本编辑,同时能够在Linux下面进行编程与调试工作。也更加深了我们对操作系统这门课的了解。实验分项3cc 、gcc 、g+、 gdb 命令的使用(开发调试环境)(操作系统使用级)实验目的1、cc 命令的使

19、用2、gcc 命令的使用3、g+命令的使用4、gdb 命令的使用实验要求具体题目:cc 、gcc 、g+、 gdb 命令的使用(开发调试环境)系统平台:Linux系统平台实验原理步骤(算法流程)实验原理:用GCC编译程序生成可执行文件要经过下面的几个过程。预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)-c选项:这是GCC命令的常用选项。-c选项告诉GCC仅把源程序编译为目标代码而不做链接工作,所以采用该选项的编译指令不会生成最终的可执行程序,而是生成一个与源程序文件名相同的以.o为后缀的目标文件。 -O选项:编译时使用选项-O

20、可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1。-O2选项:选项-O2告诉GCC除了完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度-p用于调试,产生用于调试和排错的扩展符号表,以便gnu调试程序-S选项:使用该选项会生成一个后缀名为.s的汇编语言文件,但是同样不会生成可执行程序。-e选项:-e选项只对文件进行预处理,预处理的输出结果被送到标准输出(比如显示器)。gdb调试的对象是可执行文件。 命令 解释break NUM/函数 在指定的行上设置断点。clear 删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。

21、continue 继续执行正在调试的程序。该命令用在程序由于处理信号 或断点而导致停止运行时。info break 显示当前断点清单,包括到达断点处的次数等。kill 终止正被调试的程序。list 行号/函数 显示源代码段。next 在不单步执行进入其他函数的情况下,向前执行一行源代码。Run 执行P 变量/&变量 显示变量值或者地址n/s 单步实验结果及分析gcc -o -g 、 list、lL 函数、d 断点号、d、quit心得体会通过本次实验学会了编译以及运行程序,知道编译程序有四个部分:预处理、编译、汇编、链接。可以指定编译的程度。还有在linux下调试环境,设置断点、删除断点、显示变

22、量、单步调试这几种基本的功能。(实在没有windows下方便)这里我们提一下没有使用的GDB。GDB是个强大的命令行调试工具。虽然Window提供了GDB的图像版DDD,不过我仍然更钟爱在命令行模式下使用GDB。大家知道命令行的强大就是在于,其能形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程式研发提代供了极大的便利,命令行软件的优势在于,他们能非常容易的集成在一起,使用几个简单的已有工具的命令,就能做出一个非常强大的功能。于是UNIX下的软件比视窗系统下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而视窗系统下的图像软件基本上是各自为营,互相不能调用,非常不利于

23、各种软件的相互集成。在这里并不是要和视窗系统做个什么比较,所谓“寸有所长,尺有所短”,图像化工具还是有不如命令行的地方。年级2010级专 业计算机科学与技术班级一大班3小班组号 08实验室9#206日期2013.5实验名称实验二 进程控制实验内容分项内容实验级别Linux 系统常用进程管理命令的使用(操作系统观察级)Linux 系统常用进程创建与管理的系统调用(原码阅读与系统编程级)小 组 成 员姓名学号组内分工(各实验大家都参与了,最后主要负责演示模块是以下内容)自我评分教师评分谭垒09061082Linux 系统常用进程管理命令的使用 朱辰10061064Linux 系统常用进程管理命令的

24、使用徐丽10061065Linux 系统常用进程创建与管理的系统调用张赛北10081109Linux 系统常用进程创建与管理的系统调用张胜南10151251Linux 系统常用进程创建与管理的系统调用小组成绩评定 教师签名: 年 月 日实验分项1Linux 系统常用进程管理命令的使用(操作系统观察级)实验目的学会在LINUX系统下使用进程管理命令。实验要求一具体题目Linux 系统常用进程管理命令的使用二系统平台LINUX操作系统实验原理步骤(算法流程)一、命令介绍1、 ps命令:查看权限作用:ps命令主要查看系统中进程的状态。格式:ps 选项2、kill命令:杀掉进程作用:kill命令终止一

25、个进程。格式:kill -s signal |-p -apidkill -l signal 3、bg:后台运行命令作用:bg命令使一个被挂起的进程在后台执行。格式:bg4、fg:挂起程序作用:fg命令使一个被挂起的进程在前台执行。用法:fg job-spec说明:fg命令和bg命令是相对应的。如果想查看后台程序运行情况,可以使用fg命令把它调回前台查看。bg命令可以使多个进程放到后台中执行。5、pstree:查看进程间父子关系用法:pstree格式:pstree格式实验结果及分析二、Linux 系统常用进程管理命令的使用实验结果1、 使用ps查看进程运行状态,结果显示为:2、使用pstree查

26、看进程树:3、利用yes /dev/null &在后台启动三个作业,使用fg命令将2号作业放置前台工作,结果如图所示: 4、使用kill结束进程5113,结果为:心得体会通过这次实验,对linux下进程的创建以及管理有了实际而深刻的掌握。进程管理还是需要的,虽然在桌面应用上,我们点鼠标就能完成大多的工作,但在服务器管理中,进程管理还是十分重要的。以上介绍的Linux下进程管理的命令都是比较重要的,通过这些命令可以对进程进行观察。进程运行需要占用系统资源,一个进程如果占用大量资源会造成系统性能瓶颈现象。此时就需要进行进程调度,达到实时监控系统和优化性能的目的。你对每个进程了解得越多,就能够越容易

27、地精确定位进程的问题所在。系统通常会因为某种原因遇到各种问题,比如速度变慢或者不稳定,而使用这些工具可以帮助你提高找到问题所在的能力。实验分项2Linux 系统常用进程创建与管理的系统调用(原码阅读与系统编程级)实验目的会在Linux 下创建进程,销毁进程,并理解进程创建的意义。实验要求一、具体题目 Linux 系统常用进程创建与管理的系统调用二、系统平台Linux系统平台实验原理步骤(算法流程)一、Linux下进程的创建与销毁算法流程图实验原理步骤(算法流程)二、进程创建代码段 #include #include #include #include #include #include mai

28、n() pid_t pid; int rv; switch(pid=fork() /创建进程 case -1: printf(error ocurred!n); /* something went wrong */ exit(1); /* parent exits */ case 0: printf( CHILD: This is the child process!n); printf( CHILD: My PID is %dn, getpid(); /获得子进程ID printf( CHILD: My parents PID is %dn, getppid(); /获得父进程ID prin

29、tf( CHILD: Enter my exit status (make it small): ); scanf( %d, &rv); printf( CHILD: Im outta here!n); exit(rv); /销毁子进程 default: printf(PARENT: This is the parent process!n); printf(PARENT: My PID is %dn, getpid(); /获得父进程ID printf(PARENT: My childs PID is %dn, pid); /获得子进程ID printf(PARENT: Im now wai

30、ting for my child to exit().n); wait(&rv); /等待子进程 printf(PARENT: My childs exit status is: %dn, WEXITSTATUS(rv); /从wait()返回之中提取实际的返回值 printf(PARENT: Im outta here!n); 实验原理步骤(算法流程)三、用for循环的方法创建进程源代码及流程图(1)源代码#include#include#includemain()printf(This is parent process%dn,getpid();pid_t p1,p2;int i;for

31、(i=0;i0分支语句的前两句之后,转而输出pid=0分支的语句,然后又输出pid0分支的最后一句。后来查阅了很多相关资料,才弄明白,进程与普通程序的区别,创建一个进程之后,子进程的运行是与父进程并发的,也就是谁先运行是看CPU的调度,但是两者的运行是没有太大关联的。Pid 的返回值有两个,在子进程中返回0;在父进程中返回子进程的ID。如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程的副本,称为子进程。子进程继承了父进程的许多特性,并具有与父进程完全相同

32、的用户级上下文。年级 2010级专 业计算机科学与技术班级一大班3小班组号08实验室 9#206日期2013.5实验名称实验三 进程同步与通信管理实验内容分项内容实验级别进程同步与互斥控制(公共汽车售票员售票)(原码阅读与系统编程级)简单进程通信(管道、消息缓冲、邮件槽等)(原码阅读与系统编程级)小 组 成 员姓名学号组内分工(各实验大家都参与了,最后主要负责演示模块是以下内容)自我评分教师评分谭垒09061082进程同步与互斥控制(公共汽车售票员售票)朱辰10061064进程同步与互斥控制(公共汽车售票员售票)徐丽10061065进程同步与互斥控制(公共汽车售票员售票)张赛北10081109

33、简单进程通信(管道、消息缓冲、邮件槽等)张胜南10151251简单进程通信(管道、消息缓冲、邮件槽等)小组成绩评定教师签名: 年 月 日实验分项1进程同步与互斥控制(原码阅读与系统编程级)实验目的掌握使用信号量机制实现进程的同步和互斥控制以及解决进程(线程) 同步和互斥的算法,从而进一步巩固进程(线程)同步和互斥等有关的内容。 实验要求具体题目:进程同步与互斥控制(公共汽车售票员售票)系统平台:Windows平台实验原理步骤(算法流程)司机进程:#include #include using namespace std;int main(int argc, char* argv) HANDLE

34、 busstart; HANDLE busstop; busstart=OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,start); busstop =OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,stop); while(true) WaitForSingleObject(busstart,INFINITE); /*/ /*互斥P*/ /*具体操作*/ /*互斥V*/ /*/ cout司机启动汽车endl; Sleep(2000); cout司机停车endl; Sleep(2000); ReleaseSemaphore(busstop,1,NULL); cin.get(); return 0; 实验原理步骤(算法流程)售票员进程:#include #include using namespace std;int main(int argc, char* argv) HANDLE busstart; HANDLE busstop; busstart=OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,start); busstop =OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,stop); while(true) cou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号