操作系统实验Word下载.docx
《操作系统实验Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统实验Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
telnet192.168.0.254从安装了Windows操作系统的机器登录到Linux服务器,telnet会话过程的具体操作如下:
(1)单击开始,选择程序,选择MS-DOS方式(或附件-命令提示符或开始,选择运行);
(2)在提示符C:
>
下输入telnet[主机的IP地址];
或运行中键入IP地址。
(3)如果连接成功,则会出现登录界面,通过用户账号和口令登录。
5.Linux的基本使用命令
(1)使用passwd命令修改用户密码。
(2)使用who命令查看当前登录在系统中的用户列表。
(3)熟练使用帮助信息,使用man命令获得ls命令的使用手册。
(4)熟悉cat、ls、cd、pwd、rm、mv、cp、mkdir、rmdir、more等命令的使用。
(5)查看并记录所在机器Linux操作系统目录结构。
(6)Linux常用命令,如表1-1所示。
表1-1Linux常用命令命令名功能使用举例adduser创建新用户#adduser↙cp复制文件$cp源文件目标文件↙rm删除文件$rm文件名mkdir创建新目录$mkdir目录名↙rmdir删除目录$rmdir目录名↙pwd显示当前目录$pwd↙ps显示进程状态$ps↙ls显示当前目录下内容$ls-l↙cat显示文件内容$cat文件名↙cd转换当前目录$cd路径名↙mv移动文件$mv源文件目标文件more分页显示$ls–l|more↙chmod改变文件权限$chmod777文件名↙clear清屏$clear↙输入的字符功能说明Esc进入命令模式i在光标前输入文字A在光标后输入文字X删除光标后输入的文字Dd删除当前行删除后内容自动进入剪贴板/abc向前查找字符字符串然后输入n,则继续向前查?
abc向后查找字符字符串Yw将光标所在单词拷入剪贴板Yy将光标所在行拷入剪贴板P将剪贴板内容贴在光标后:
q不保存退出……..0:
q!
表示强制退出:
w保存:
w!
表示强制保存:
wq保存退出:
x保存退出:
3,7co9将第3行至第7行拷到第9行:
3,7m9将第3行至第7行移到第9行u取消前次命令:
g/abc/s//123/g将全部的abc替换成1237.编译工具gcc的使用RedHatLinux的编译器是gcc。
gcc软件包支持C、C++。
gcc的可执行文件在/usr/bin/gcc下,/lib和/usr/lib目录下是库文件。
/usr/include目录下是头文件。
gcc编译常用格式为:
$gcc源文件名↙例如:
$gccaaa.c↙,将生成默认可执行文件a.out或者$gcc-o目标文件名源文件名↙例如:
$gcc–oaaaaaa.c或$ccaaa.c–oaaa.out8.程序的运行$./可执行文件名↙(例如:
$./aaa.out↙)三、实验内容1.熟悉开机后登录Linux系统和退出系统的过程。
2.熟悉Linux字符界面,练习并掌握常用的Linux操作命令。
3.学习使用Linux的在线求助系统,如man和help命令等。
例程:
#includeintmain(){inti=getuid();
printf('
Helloworld!
Thisismyuid:
%d\n'
i);
}6.使用搜索引擎、、回答下列问题。
(1)什么是操作系统?
你买回一台新计算机后,要装的第一个软件是什么?
为什么必须在计算机上安装操作系统?
(2)目前市场上常见的操作系统有哪些类型?
有哪些应用?
(3)请尽可能多地罗列出目前市场上已有的操作系统产品,分别给出这些操作系统所取得的成就,采用的新技术,以及这些操作系统的特点、特色和不足,指明它们的开发公司和开发年代。
(4)推动操作系统发展的主要动因有哪些?
列举出保证操作系统每次革命性发展的支撑技术。
(5)Linux与Windows系统的主要区别是什么?
四、实验报告1.实验目的与实验内容。
2.实验主要步骤。
3.实验结果。
实验2进程控制一、实验目的1.了解和熟悉Linux进程控制常用的系统调用(open、creat、close、read、write、lseek、fork、wait、sleep、exit、exec)。
2.掌握系统调用的简单编程。
3.进一步掌握C语言程序的开发方法,阅读、调试C程序并编写简单的进程创建程序。
4.通过有关进程控制的应用实例,深刻理解进程的管理过程。
二、相关知识准备1.进程状态命令表2-1Linux中的进程状态命令ps命令ps输出中的标题命令作用字段解释ps显示所有正在执行的进程PID进程标识号ps-x列出当前正在运行的进程的基本信息TTY开始这个进程的终端ps-au列出所有用户的基本信息TIME进程的累计执行时间,以分和秒表示COMMAND正在执行的命令名2.进程控制命令
(1)kill,向进程发送终止信号,撤消进程。
(2)nice命令用于改变进程的优先级,使用格式为:
$nice[+][-]n[PID]。
(3)创建后台进程:
在命令后输入后台命令符&
,如$sleep50&
,表示要创建一个睡眠时间为50秒的进程。
3.进程控制相关的系统调用
(1)fork()。
创建一个子进程,用它创建的子进程是fork调用者进程(即父进程)的复制品,即进程映象。
除了进程标识符以及与进程特性有关的一些参数外,其它与父进程相同,与父进程共享文本段和打开的文件,并都受进程调度程序的调度。
如果创建进程失败,则fork()返回值为-1;
如果创建进程成功,则在父进程中返回值是子进程号,子进程中返回的值是0。
m=fork()。
(2)wait()。
父进程处于阻塞(或等待)状态,等待子进程执行完成终止后继续工作。
其返回值为子进程号。
n=wait()。
(3)exit()。
子进程自我终止,释放所占资源,通知父进程可以删除自己。
此时它的状态变成P_state=SZOMB。
(4)getpid()。
获得进程的进程号,为正整数。
p=getpid()。
Linux中与进程控制相关的几个主要系统调用如表2-2所示。
表2-2Linux中与进程控制相关的几个主要系统调用使用形式功能返回值的解释fork()创建一个子进程对父进程:
返回子进程号对子进程:
返回0错误:
返回-1#includeexecve(char*file,char**argv,char**envp)用指定程序覆盖当前程序代码正确:
0错误:
-1#include#includepid_twait(int*statloc)等待进程终止正确:
子进程的ID错误:
-1getpid()获得进程号#includevoidexit(intstatus)进程正常结束三、实验内容1.在Windows下,使用性能监视器来观察进程运行情况和CPU工作情况。
2.在Linux下,用top命令显示进程动态执行时的系统变化情况。
3.在Linux下,熟悉进程状态命令(ps)的使用;
用pstree观察系统进程层次、分析进程状态。
4.在Linux下,熟悉进程的控制命令(kill、nice、创建后台进程)的使用。
5.在Linux下,分析程序的功能与运行结果,熟悉Linux进程控制常用的系统调用。
(1)分析下列程序的功能与程序的运行结果。
#includemain(){intp1,p2;
while((p1=fork())==-1);
if(p1==0)putchar('
b'
);
else{while((p2=fork())==-1);
if(p2==0)putchar('
c'
elseputchar('
a'
}}
(2)分析使用wait()和exit()控制进程的程序功能与运行结果。
#include#include#includemain(){intpid;
if(pid=fork()){wait();
itisparentprocessn'
}else{printf('
itischildprocessn'
exit();
}printf('
itisendn'
}(3)写出下列程序的功能,并分析程序的运行结果。
#includemain(){intp1,p2,i;
if(p1==0)for(i=0;
i 程序的功能是:
输入两个整数并求和输出,然后创建一个子进程,当进程调度程序调度到父进程或子进程时将输出不同的信息。
#includemain(){inti,j,k,sum;
scanf('
%d%d'
&
j,&
k);
sum=j+k;
sum=%dn'
sum);
while(){printf('
i=%dn'
}if()printf('
itisparentprocess!
n'
elseprintf('
itischildprocess!
}(5)分析并完善下列程序。
程序的功能是:
如果父进程要通过建立子进程在同一显示器上分别循环显示Parents和Children,循环次数由n决定。
#include#includemain(){intpid,n;
n=1;
if(()!
=0)While(n 2.实验主要步骤。
3.实验程序的功能与结果分析。
4.完善后的程序。
实验3进程通信
(一)一、实验目的1.练习使用wall、write、mesg命令来实现用户之间的信息交流。
2.练习使用系统调用pipe()实现进程的管道通信。
3.使用进程的软中断实现同一用户的进程之间通信。
4.掌握进程通信的基本方法。
二、相关知识准备1.有关的信息发送命令
(1)wall命令:
功能是对全部已登录的用户发送信息,用户可以先把要发送的信息写好存入一个文件中,然后输入:
#wall 符号 例如:
#wall'
Thankyou!
'
Broadcastmessagefromroot(tty1)FriNov2614:
15:
071999…Thankyou!
#执行以上命令后,用户的屏幕上显示出Thankyou!
信息后,并不出现系统提示符$(#),再次按回车键后,屏幕出现系统提示符。
(2)wri