操作系统实验报告.docx

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

操作系统实验报告.docx

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

操作系统实验报告.docx

操作系统实验报告

学生学号

实验课成绩

武汉理工大学

学生实验报告书

 

实验课程名称操作系统

开课学院计算机科学与技术学院

指导老师姓名

学生姓名

学生专业班级

 

2012—2013学年第一学期

 

实验课程名称:

操作系统

实验项目名称

Linux键盘命令和vi

实验成绩

实验者

专业班级

组别

同组者

实验日期

年月日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

Linux键盘命令和vi

要求:

掌握Linux系统键盘命令的使用方法。

 

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

在登录了Linux系统之后常用的系统命令如下:

●文件命令:

cat、more、less,Is,cp,rm,mv命令;

●目录命令:

pwd,cd,mkdir、rmdir命令;

●查找命令:

find,grep命令;

●进程命令:

ps,kill命令;

●联机帮助命令:

man命令。

VI编辑器的使用:

基本vi命令

vifilename:

打开或新建文件,并将光标置于第一行首

vi+nfilename:

打开文件,并将光标置于第n行首

vi+filename:

打开文件,并将光标置于最后一行首

vi+/patternfilename:

打开文件,并将光标置于第一个与pattern匹配的串处

vi-rfilename:

在上次正用vi编辑时发生系统崩溃,恢复filename

vifilename....filename:

打开多个文件,依次进行编辑

:

w将缓冲区写入文件,即保存修改

:

wq保存修改并退出

:

x保存修改并退出

:

q退出,如果对缓冲区进行过修改,则会提示

:

q!

强制退出,放弃修改

查找替换

/pattern向后搜索字符串pattern

?

pattern向前搜索字符串pattern

n下一个匹配(如果是/搜索,则是向下的下一个,?

搜索则是向上的下一个)

N上一个匹配(同上)

:

%s/old/new/g搜索整个文件,将所有的old替换为new

:

%s/old/new/gc搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

复制粘贴

dd删除光标所在行

dw删除一个字(word)

x删除当前字符

X删除前一个字符

D删除到行末

yy复制一行,此命令前可跟数字,标识复制多行,如6yy,表示从当前行开始复制6行

yw复制一个字

y$复制到行末

p粘贴粘贴板的内容到当前行的下面

P粘贴粘贴板的内容到当前行的上面

]p有缩进的粘贴,vim会自动调节代码的缩进

"a将内容放入/存入a寄存器,可以支持多粘贴板

附:

比如常用的一个寄存器就是系统寄存器,名称为+,所以从系统粘贴板粘贴到vim中的命令为"+p,注意此处的+不表示操作符,二十一个寄存器。

移动光标

在vim中移动光标跟其他的编辑器中有很大的区别,不过一旦学会了,就会飞速的在文本中移动了。

 

三、主要仪器设备及耗材

 

Ubuntu操作体统

Vi编辑器

 

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

(1)进入ubuntu

(2)打开终端teiminal

(3)输入常见Linux命令测试

(4)进入vi

(5)在vi中进行输入,修改查找操作

(6)退出VI

 

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

PS:

显示进程状态

Free显示系统中已用空闲内存数量

 

 

Ls:

显示文件属性和目录内容

 

进入vi编辑器

 

三、实验小结、建议及体会

本次实验是我第一次接触Linux操作系统,通过本次实验我对Linux系统有了初步的了解。

大体上掌握了Linux的常用命令。

 

实验课程名称:

操作系统

实验项目名称

Linux下C编程

实验成绩

实验者

专业班级

组别

同组者

实验日期

年月日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

Linux下的C编程

要求:

掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。

内容:

设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。

 

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

#include

usingnamespacestd;

intmain()

{

intm;

inttemp=1;

cout<<"请输入一个正整数:

"<

cin>>m;

for(inti=1;i<=m;i++)

temp=temp*i;

cout<<"m的阶乘是:

"<

cout<

return0;

}

 

三、主要仪器设备及耗材

Ubuntu操作体统

Vi编辑器

G++编译

 

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

调试正常

 

 

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

 

三、实验小结、建议及体会

这次实验的代码我是在Linux下的vi编辑器上书写的。

通过这次实验vi编辑器有了进一步的应用,同时学会了在Linux进行简单的C语言编程。

我不仅仅掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法,更加熟悉了Linux的使用,在以后的学习过程中,会多加实践。

 

实验课程名称:

操作系统

实验项目名称

SHELL编程和后台批处理

实验成绩

实验者

专业班级

组别

同组者

实验日期

年月日

第一部分:

实验分析与设计(可加页)

三、实验内容描述(问题域描述)

SHELL编程和后台批处理

要求:

掌握Linux系统的SHELL编程方法和后台批处理方法。

内容:

(1)将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。

(2)将上面SHELLL程序后台运行。

观察原C程序运行时输入输出情况。

(3)修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。

 

四、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

test.cpp文件如下:

#include

usingnamespacestd;

intmain()

{

inti,j;

inta[10][10]={0};

a[0][0]=1;

for(i=1;i<=9;i++)

{

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

{

if((j==0)||(i==j))

a[i][j]=1;

else

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

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

{

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

cout<<""<

cout<

}

return0;

}

test.sh文件如下

#!

/bin/bash

#Program:

#Thisprogramisusedtocompileandrunafileofcpp

#History

#2011/06/01

g++-otest.outtest.cpp

chmodu+xtest.out

./test.out

 

三、主要仪器设备及耗材

Ubuntu操作体统

Vi编辑器

 

第二部分:

实验调试与结果分析(可加页)

四、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

调试正常

五、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

 

六、实验小结、建议及体会

通过这次实验熟悉了shell编程,对Linux下的编程有了进一步的了解。

 

实验课程名称:

操作系统

实验项目名称

Linux系统调用(time)

实验成绩

实验者

专业班级

组别

同组者

实验日期

年月日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

Linux系统调用使用方法。

要求:

掌握Linux系统调用使用方法。

内容:

学习使用time,ctime,sleep,exit等Linux系统调用使用方法。

 

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

while

(1)

{

chartimebuf[100];

time_tt;

time(&t);

strftime(timebuf,sizeof(timebuf),"%Y年%m月%d日%H:

%M:

%S",localtime(&t));

cout<

fflush(stdout);

sleep

(1);

}

return0;

}

 

三、主要仪器设备及耗材

Ubuntu操作系统

Vi编辑器

G++编译器

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

ctime(将时间和日期以字符串格式表示)

表头文件

#include

定义函数

char*ctime(consttime_t*timep);

函数说明

ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。

此函数已经由时区转换成当地时间,字符串格式为“WedJun3021:

49:

081993\n”。

若再调用相关的时间日期函数,此字符串可能会被破坏。

返回值

返回一字符串表示目前当地的时间日期。

time(取得目前的时间)

表头文件

#include

定义函数

time_ttime(time_t*t);

函数说明

此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。

如果t并非空指针的话,此函数也会将返回值存到t指针所指的内存。

返回值

成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。

sleep(让进程暂停执行一段时间)

表头文件

#include

定义函数

unsignedintsleep(unsignedintseconds);

函数说明

sleep()会令目前的进程暂停,直到达到参数seconds所指定的时间,或是被信号所中断。

返回值

若进程暂停到参数seconds所指定的时间则返回0,若有信号中断则返回剩余秒数。

 

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

 

三、实验小结、建议及体会

这次实验主要是研究Linux中的系统调用方法。

其中主要包括time,ctime,sleep,exit等Linux系统调用使用方法,这次实验加深了自己对Linux下编程的理解,在以后会多多了解Linux系统调用的更多方法,并多加练习。

 

实验课程名称:

操作系统

实验项目名称

Linux进程控制(fork)

实验成绩

实验者

专业班级

组别

同组者

实验日期

年月日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

Linux系统进程控制

要求:

掌握Linux系统中进程控制原语fork的使用方法。

内容:

设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。

 

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

#include

#include

#include

usingnamespacestd;

intmain()

{

cout<<"Parentprocessid:

"<

pid_tiRet=fork();

if(iRet<0)

cout<<"Createchildprocessfail!

"<

elseif(iRet==0)

{

cout<<"I'mchildprocess,andidis"<

"<

}

else

{

cout<<"Createchildprocesssuccesschild"<<"theidis:

"<

}

return0;

}

 

三、主要仪器设备及耗材

Ubuntu操作体统

Vi编辑器

G++编译

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

pid_tfork(void);

  (pid_t是一个宏定义,其实质是int被定义在#include中)

  返回值:

若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1

  函数说明:

  一个现有进程可以调用fork函数创建一个新进程。

由fork创建的新进程被称为子进程(childprocess)。

fork函数被调用一次但返回两次。

两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。

  子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。

注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。

  linux将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。

 fork会返回两次:

  由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。

因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。

 

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

 

三、实验小结、建议及体会

在这次实验之前,我从没使用过fork方法,通过这次实验掌握Linux系统中进程控制原语fork的使用方法。

同时我还发现自己对Linux有很多的不熟悉的地方,在以后会进一步加强。

 

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

当前位置:首页 > 工作范文 > 行政公文

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

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