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

上传人:b****5 文档编号:6778373 上传时间:2023-01-10 格式:DOCX 页数:82 大小:2.13MB
下载 相关 举报
计算机操作系统实验报告.docx_第1页
第1页 / 共82页
计算机操作系统实验报告.docx_第2页
第2页 / 共82页
计算机操作系统实验报告.docx_第3页
第3页 / 共82页
计算机操作系统实验报告.docx_第4页
第4页 / 共82页
计算机操作系统实验报告.docx_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

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

《计算机操作系统实验报告.docx》由会员分享,可在线阅读,更多相关《计算机操作系统实验报告.docx(82页珍藏版)》请在冰豆网上搜索。

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

计算机操作系统实验报告

(此文档为word格式,下载后您可任意编辑修改!

 

院系:

计算机科学学院

专业:

计算机科学与技术

年级:

2010级

课程名称:

操作系统原理

指导教师:

艾勇

 

学号:

姓名:

谭垒朱辰徐丽张赛北张胜南

 

2013年6月3日

年级

 2010级

专业

 计算机科学与技术

班级

 一大班3小班

组号

08

实验室

9#206

日期

  2013.5

实验

名称

实验一操作系统实验环境熟悉(Linux操作命令、Linux/Windows平台编程工具)

分项内容

实验级别

Linux常用命令的使用

(操作系统使用级)

Vi/Emacs等编辑软件的使用

(操作系统使用级)

cc、gcc、g++、gdb命令的使用(开发调试环境)

(操作系统使用级)

小组成员

姓名

学号

组内分工(各实验大家都参与了,最后主要负责演示模块是以下内容)

自我评分

教师评分

谭垒

Linux常用命令的使用

 

朱辰

Vi/Emacs等编辑软件的使用

 

徐丽

cc、gcc、g++、gdb命令的使用(开发调试环境)

 

张赛北

cc、gcc、g++、gdb命令的使用

 

张胜南

Vi/Emacs等编辑软件的使用

 

教师签名:

年月日

实验分项1

inux常用命令的使用(操作系统使用级)

1.熟悉Linux概念,比如Linux发行版、宏内核、微内核等。

2.掌握UbuntuLinux系统的安装方法,了解在多操作系统环境下如何本地安装(光盘安装)UbuntuLinux。

3.熟悉Linux系统的文件系统结构。

具体题目:

Linux常用命令的使用(操作系统使用级)

系统平台:

Linux系统平台

实验内容:

Linux常用命令及功能:

1、Pwd命令

语法:

pwd说明:

此命令显示出当前工作目录的绝对路径。

2、cd命令

语法:

cd[directory]功能:

改变工作目录。

3、mkdir命令

功能:

创建一个目录(类似MSDOS下的md命令)。

语法:

mkdir[选项]dir-name

4、rmdir命令

功能:

删除空目录。

语法:

rmdir[选项]dir-name

5、Cat命令

使用方式:

cat[-AbeEnstTuv][--help][--version]fileName

说明:

把档案串连接后传到基本输出(萤幕或加>fileName到另一个档案)

6、cp命令

语法:

cp[选项]源文件或目录目标文件或目录

说明:

该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

7、mv命令

语法:

mv[选项]源文件或目录目标文件或目录

说明:

视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

8、rm命令

语法:

rm[选项]文件…

9、ls命令

功能:

列出目录的内容。

语法:

ls[选项][目录或是文件]

10、chmod命令

功能:

改变文件或目录的访问权限。

语法:

chmod[who][+|-|=][mode]文件名?

或 chmod[mode]文件名?

11、sort命令

语法:

sort[选项]文件

12、gzip命令

语法:

gzip[选项]压缩(解压缩)的文件名

功能:

对文件进行压缩和解压缩

13、unzip命令

语法:

unzip[选项]压缩文件名.zip

14、tar命令

语法:

tar[主选项+辅选项]文件或者目录

功能:

为文件和目录创建档案

1、使用mkdir创建一个test1目录:

mkdirtest1,结果显示为:

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是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。

这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。

每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。

虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6。

例如,用户登录后,按一下“Alt+F2”键,用户就可以看到上面出现的“login:

”提示符,说明用户看到了第二个虚拟控制台。

然后只需按“Alt+F1”键,就可以回到第一个虚拟控制台。

一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。

虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。

由于我们日常生活中接触最多的是windows操作系统,很少有接触到其他的系统。

所用在本实验中,初步体验到了Linux的魅力,对它产生了浓厚的兴趣,希望在今后的学习中能够更全面了解Linux操作系统。

实验分项2

Vi/Emacs等编辑软件的使用(操作系统使用级)

1、掌握Linux系统终端方式使用的编辑器vi;

2、学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令;

3、掌握GCC编译器的使用。

具体题目:

Vi/Emacs等编辑软件的使用(操作系统使用级)

系统平台:

Linux系统平台

实验内容:

Vi编辑器

一、Vi概述

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。

由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。

vi也是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。

基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:

1.命令行模式commandmode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。

2.插入模式(Insertmode)

只有在Insertmode下,才可以做文字输入,按【ESC】键可回到命令行模式。

3.底行模式(lastlinemode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令行模式。

二、实验内容步骤

1.vi的基本操作

(1)进入vi

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

$vimyfile

不过有一点要特别注意,就是进入vi之后,是处于“命令行模式”,需要切换到“插入模式”才能够输入文字。

(2)切换至插入模式编辑文件

在“命令行模式”下按一下字母【i】就可以进入“插入模式”,这时候就可以开始输入文

字了。

(3)Insert的切换

目前处于“插入模式”,您就只能一直输入文字,如果您发现输错了字!

想用光标键往回移动,将该字删除,就要先按一下【ESC】键转到“命令行模式”再删除文字。

(4)退出vi及保存文件

在“命令行模式”下,按一下【:

】冒号键进入“底行模式”。

2.命令行模式功能键

(1)插入模式

I:

在光标之前插入;

a:

在光标之后插入;

I:

在光标所在行的行首插入;

A:

在光标所在行的行末插入;

o:

在光标所在的行的上面插入一行;

O:

在光标所在的行的下面插入一行;

s:

删除光标后的一个字符,然后进入插入模式;

S:

删除光标所在的行,然后进入插入模式

(2)从插入模式切换为命令行模式

(3)移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母“h”、“j”、“k”、“l”,分别控制光标左、下、上、右移一格。

ctrl+b:

屏幕往“后”移动一页。

ctrl+f:

屏幕往“前”移动一页。

ctrl+u:

屏幕往“后”移动半页。

ctrl+d:

屏幕往“前”移动半页。

0:

移到文章的开头。

G:

移动到文章的最后。

$:

移动到光标所在行的“行尾”。

^:

移动到光标所在行的“行首”

w:

光标跳到下个字的开头

e:

光标跳到下个字的字尾

b:

光标回到上个字的开头

#l:

光标移到该行的第#个位置,如:

5l,56l。

(4)删除文字

x:

每按一次,删除光标所在位置的“后面”一个字符。

例如:

“6x”表示删除光标所在位置的“后面”6个字符。

X:

大写的X,每按一次,删除光标所在位置的“前面”一个字符。

例如:

“20X”表示删除光标所在位置的“前面”20个字符。

dd:

删除光标所在行。

例如:

#dd:

从光标所在行开始删除#行

(5)复制

yw:

将光标所在之处到字尾的字符复制到缓冲区中。

例如:

“#yw”:

复制#个字到缓冲区

yy:

复制光标所在行到缓冲区。

例如:

“#yy”:

“6yy”表示拷贝从光标所在的该行“往下数”6行文字。

p:

将缓冲区内的字符贴到光标所在位置。

注意:

所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

(6)替换

r:

替换光标所在处的字符。

R:

替换光标所到之处的字符,直到按下【ESC】键为止。

(7)回复上一次操作

u:

如果您误执行一个命令,可以马上按下“u”,回到上一个操作。

按多次“u”可以执行多次回复。

(8)更改

cw:

更改光标所在处的字到字尾处

例如:

“c#w”:

“c3w”表示更改3个字

(9)跳至指定的行

ctrl+g:

列出光标所在行的行号。

例如:

“#G”:

“15G”表示移动光标至文章的第15行行首。

3.底行模式命令

在使用“底行模式”之前,请记住先按【ESC】键确定您已经处于“命令行模式”下后,再按【:

】冒号即可进入“底行模式”。

(1)列出行号

 setnu:

在文件中的每一行前面列出行号。

(2)跳到文件中的某一行

 #:

“#”号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

(3)查找字符

 /关键字:

先按“/”键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按“n”会往后寻找到您要的关键字为止。

 ?

关键字:

先按“?

”键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按“n”会往前寻找到您要的关键字为止。

(4)保存文件

 w:

在冒号输入字母“w”就可以将文件保存起来。

(5)离开vi

q:

按“q”就是退出,如果无法离开vi,可以在“q”后跟一个“!

”强制离开vi。

qw:

一般建议离开时,搭配“w”一起使用,这样在退出的时候还可以保存文件。

5.Vi编辑程序

(1)在vi中编写一个cjb.c程序,对程序进行编译、连接、运行。

具体如下:

student]$mkdircjb

student]$cdcjb

cjb]$vicjb.c

main()

{

inti,sum=0;

for(i=0;i<=100;i++)

{

sum=sum+i;

}

printf("\n1+2+3+...+99+100=%d\n",sum);

}

cjb]$gcc-ocjbcjb.c

cjb]$ls

cjbcjb.c

cjb]$./cjb

1+2+3+...+99+100=5050

cjb]$

cjb]$

(2)编写一个程序解决“鸡兔同笼”问题。

#include

main()

{

inth,f;

intx,y;

printf("请输入头数和脚数:

");

scanf("%d,%d",&h,&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下面进行编程与调试工作。

也更加深了我们对操作系统这门课的了解。

实验分项3

  cc、gcc、g++、gdb命令的使用(开发调试环境)(操作系统使用级)

1、cc命令的使用

2、gcc命令的使用

3、g++命令的使用

4、gdb命令的使用

具体题目:

cc、gcc、g++、gdb命令的使用(开发调试环境)

系统平台:

Linux系统平台

实验原理:

用GCC编译程序生成可执行文件要经过下面的几个过程。

预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)

-c选项:

这是GCC命令的常用选项。

-c选项告诉GCC仅把源程序编译为目标代码而不做链接工作,所以采用该选项的编译指令不会生成最终的可执行程序,而是生成一个与源程序文件名相同的以.o为后缀的目标文件。

-O选项:

编译时使用选项-O可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1。

-O2选项:

选项-O2告诉GCC除了完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度

-p用于调试,产生用于调试和排错的扩展符号表,以便gnu调试程序

-S选项:

使用该选项会生成一个后缀名为.s的汇编语言文件,但是同样不会生成可执行程序。

-e选项:

-e选项只对文件进行预处理,预处理的输出结果被送到标准输出(比如显示器)。

gdb调试的对象是可执行文件。

命令解释

breakNUM/函数在指定的行上设置断点。

clear删除设置在特定源文件、特定行上的断点。

其用法为:

clearFILENAME:

NUM。

continue继续执行正在调试的程序。

该命令用在程序由于处理信号

或断点而导致停止运行时。

infobreak显示当前断点清单,包括到达断点处的次数等。

kill终止正被调试的程序。

list行号/函数显示源代码段。

next在不单步执行进入其他函数的情况下,向前执行一行源代码。

Run执行

P[变量]/&变量显示变量值或者地址

n/s单步

gcc-o-g、list、l

 L函数、d断点号、d、quit

通过本次实验学会了编译以及运行程序,知道编译程序有四个部分:

预处理、编译、汇编、链接。

可以指定编译的程度。

还有在linux下调试环境,设置断点、删除断点、显示变量、单步调试这几种基本的功能。

(实在没有windows下方便)

这里我们提一下没有使用的GDB。

GDB是个强大的命令行调试工具。

虽然Window提供了GDB的图像版DDD,不过我仍然更钟爱在命令行模式下使用GDB。

大家知道命令行的强大就是在于,其能形成执行序列,形成脚本。

UNIX下的软件全是命令行的,这给程式研发提代供了极大的便利,命令行软件的优势在于,他们能非常容易的集成在一起,使用几个简单的已有工具的命令,就能做出一个非常强大的功能。

于是UNIX下的软件比视窗系统下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。

而视窗系统下的图像软件基本上是各自为营,互相不能调用,非常不利于各种软件的相互集成。

在这里并不是要和视窗系统做个什么比较,所谓“寸有所长,尺有所短”,图像化工具还是有不如命令行的地方。

年级

2010级

专业

 计算机科学与技术

班级

 一大班3小班

组号

08

实验室

9#206

日期

  2013.5

实验

名称

实验二进程控制

分项内容

实验级别

Linux系统常用进程管理命令的使用

(操作系统观察级)

Linux系统常用进程创建与管理的系统调用

(原码阅读与系统编程级)

小组成员

姓名

学号

组内分工(各实验大家都参与了,最后主要负责演示模块是以下内容)

自我评分

教师评分

谭垒

Linux系统常用进程管理命令的使用

 

朱辰

Linux系统常用进程管理命令的使用

 

徐丽

Linux系统常用进程创建与管理的系统调用

 

张赛北

Linux系统常用进程创建与管理的系统调用

 

张胜南

Linux系统常用进程创建与管理的系统调用

教师签名:

年月日

实验分项1

 Linux系统常用进程管理命令的使用(操作系统观察级)

 学会在LINUX系统下使用进程管理命令。

一.具体题目

Linux系统常用进程管理命令的使用

二.系统平台

LINUX操作系统

一、命令介绍

1、ps命令:

查看权限

作用:

ps命令主要查看系统中进程的状态。

格式:

ps[选项]

2、kill命令:

杀掉进程

作用:

kill命令终止一个进程。

格式:

kill[-ssignal|-p][-a]pid…

kill-l[signal]

3、bg:

后台运行命令

作用:

bg命令使一个被挂起的进程在后台执行。

格式:

bg

4、fg:

挂起程序

作用:

fg命令使一个被挂起的进程在前台执行。

用法:

fg[job-spec]

说明:

fg命令和bg命令是相对应的。

如果想查看后台程序运行情况,可以使用fg命令把它调回前台查看。

bg命令可以使多个进程放到后台中执行。

5、pstree:

查看进程间父子关系

用法:

pstree

格式:

pstree[格式

二、Linux系统常用进程管理命令的使用实验结果

1、使用ps查看进程运行状态,结果显示为:

2、使用pstree查看进程树:

3、利用yes>/dev/null&在后台启动三个作业,使用fg命令将2号作业放置前台工作,结果如图所示:

4、使用kill结束进程5113,结果为:

通过这次实验,对linux下进程的创建以及管理有了实际而深刻的掌握。

进程管理还是需要的,虽然在桌面应用上,我们点鼠标就能完成大多的工作,但在服务器管理中,进程管理还是十分重要的。

以上介绍的Linux下进程管理的命令都是比较重要的,通过这些命令可以对进程进行观察。

进程运行需要占用系统资源,一个进程如果占用大量资源会造成系统性能瓶颈现象。

此时就需要进行进程调度,达到实时监控系统和优化性能的目的。

你对每个进程了解得越多,就能够越容易地精确定位进程的问题所在。

系统通常会因为某种原因遇到各种问题,比如速度变慢或者不稳定,而使用这些工具可以帮助你提高找到问题所在的能力。

实验分项2

Linux系统常用进程创建与管理的系统调用(原码阅读与系统编程级)

会在Linux下创建进程,销毁进程,并理解进程创建的意义。

一、具体题目

Linux系统常用进程创建与管理的系统调用

二、系统平台

Linux系统平台

一、Linux下进程的创建与销毁算法流程图

二、进程创建代码段

#include

#include

#include

#include

#include

#include

main()

{

pid_tpid;

intrv;

switch(pid=fork()){//创建进程

case-1:

printf("errorocurred!

\n");/*somethingwentwrong*/

exit

(1);/*parentexits*/

case0:

printf("CHILD:

Thisisthechildprocess!

\n");

printf("CHILD:

MyPIDis%d\n",getpid());//获得子进程ID

printf("CHILD:

Myparent'sPIDis%d\n",getppid());//获得父进程ID

printf("CHILD:

Entermyexitstatus(makeitsmall):

");

scanf("%d",&rv);

printf("CHILD:

I'mou

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1