武汉理工大学操作系统实验报告.docx
《武汉理工大学操作系统实验报告.docx》由会员分享,可在线阅读,更多相关《武汉理工大学操作系统实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
武汉理工大学操作系统实验报告
学生学号
实验课成绩
学生实验报告书
实验课程名称操作系统
开课学院计算机科学与技术学院
指导老师姓名
学生姓名
学生专业班级软件工程
2014—2015学年第一学期
实验课程名称:
操作系统
实验项目名称
Linux键盘命令和vi
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
掌握Linux系统键盘命令的使用方法。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
Vi编辑器是所有计算机系统中最常用的一种工具。
UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。
1.进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
例如:
$vimyfile
有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。
2.切换至插入模式编辑文件
在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。
3.Insert的切换
处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。
4.退出vi及保存文件
在“命令行模式”下,按一下“:
”冒号键进入“Lastlinemode”,例如:
:
wmyfilename
:
wq(输入”wq”,存盘并退出vi)
:
q!
(输入q!
,不存盘强制退出vi)
三、主要实验工具、仪器设备及耗材
安装Linux系统的计算机一台。
第二部分:
实验结果分析(可加页)
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
在整个过程中,最困难的就是记忆整个Vi命令。
在查阅资料的情况下,这个问题得到了解决。
二、实验结果描述
1.进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面
图1vi主界面
2.切换至插入模式编辑文件
在“命令行模式”下按一下字母”i”就可以进入”插入模式”。
3.退出vi及保存文件
在”命令行模式”下,按一下”:
”冒号键进入”Lastlinemode”;输入wfilename将文章以指定的文件名filename保存;输入wq存盘并退出vi。
三、实验小结、建议及体会
这次实验让对Linux操作系统有了初步的了解,我掌握了一些Linux系统常用的命令。
实验课程名称:
操作系统
实验项目名称
Linux下C编程
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
要求:
掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。
内容:
设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
#include
intmain()
{
printf(“Hello.Thisismyfirstcprogramme.\n”);
return0;
}
三、主要实验工具、仪器设备及耗材
Linux操作系统、emacs编辑器、gcc编译器。
第二部分:
实验结果分析(可加页)
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
输入源代码
$vihello.c
#include
intmain()
{
printf(“Hello.Thisismyfirstcprogramme.\n”);
return(0);
}
$gcc–ohellohello.c
$./helloHelloWorld.
$gcc–g–ohellohello.c
$gdbhello
二、实验结果描述
编译运行
三、实验小结、建议及体会
这次实验,我学会了在Linux下进行简单的C语言编程。
编译、连接部分仍然不熟悉,需要多加练习。
实验课程名称:
操作系统
实验项目名称
SHELL编程和后台批处理
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
要求:
掌握Linux系统的SHELL编程方法和后台批处理方法。
内容:
(1)将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。
(2)将上面SHELLL程序后台运行。
观察原C程序运行时输入输出情况。
(3)修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
#!
/bin/sh
echo"helloshell"
三、主要实验工具、仪器设备及耗材
PC、操作系统:
Ubuntu13.04
第二部分:
实验结果分析(可加页)
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等
在实验时,最主要的就是后缀名发生了错误,应为.sh
在屏幕上述出用echo命令
二、实验结果描述
三、实验小结、建议及体会
这次实验,我熟悉了shell编程,对Linux下的编程有了进一步的了解,我对操作系统有了全新的认识。
实验中遇到了很多问题,随着自己的一步步解决,自身的技能也随之提升,我会继续努力学习操作系统。
实验课程名称:
操作系统
实验项目名称
Linux系统调用(time)
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
要求:
掌握Linux系统调用使用方法。
内容:
学习使用time,ctime,sleep,exit等Linux系统调用使用方法。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
#include
#include
intmain()
{
time_tnow;
now=time(NULL);
printf(“%s”,ctime(&now));
return0;
}
三、主要实验工具、仪器设备及耗材
Ubuntu操作系统Vi编辑器GCC编译器
第二部分:
实验结果分析(可加页)
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
ctime(将时间和日期以字符串格式表示)
表头文件
#include
ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
此函数已经由时区转换成当地时间,字符串格式为“WedJun3021:
49:
081993\n”。
若再调用相关的时间日期函数,此字符串可能会被破坏。
返回值
返回一字符串表示目前当地的时间日期。
time(取得目前的时间)
表头文件
#include
函数说明
此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t并非空指针的话,此函数也会将返回值存到t指针所指的内存。
返回值
二、实验结果描述
三、实验小结,建议与体会
通过这次实验学习使用time,ctime,sleep,exit等Linux系统调用使用方法,在以后会多多了解Linux系统调用的更多方法。
实验课程名称:
操作系统
实验项目名称
Linux进程控制(fork)
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
要求:
掌握Linux系统中进程控制原语fork的使用方法。
内容:
设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
#include
#include
#include
intmain(intargc,char*agrv[])
{
pid_tpid;
pid=fork();
if(pid<0)
printf("errorinfork!
");
elseif(pid==0)
printf("iamthechildprocess,myprocessidis%d\n",getpid());
else
printf("iamtheparentprocess,myprocessidis%d\n",getpid());
return0;
}
三、主要实验工具、仪器设备及耗材
Ubuntu操作系统Vi编辑器GCC编译器。
第二部分:
实验结果分析(可加页)
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
fork();
返回值:
若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1
由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。
因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。
二、实验结果描述
三、实验小结、建议及体会
此次实验,我学会了如何在父子进程之间发送信号和传输数据以及一些保存文件的操作。