操作系统实验.docx
- 文档编号:2441532
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:12
- 大小:31.63KB
操作系统实验.docx
《操作系统实验.docx》由会员分享,可在线阅读,更多相关《操作系统实验.docx(12页珍藏版)》请在冰豆网上搜索。
操作系统实验
操作系统实验
并键入回车,则系统接收并记住新口令。
如果用户在登录时忘记了密码,则只能找系统管理员解决(取消用户密码:
passwd-d用户名)。
2.退出、注销与关机当用户不再使用Linux时,在离开前,通常应键入logout命令或Ctrl+D来退出帐号。
在Linux下,涉及到关机或重启的命令有:
(1)halt命令。
这是最常用的关机方式。
(2)reboot命令。
用户只是想退出操作系统,并不想关机,还想再进入其他操作系统。
(3)shutdown命令。
在多用户系统中,系统管理员在关机前,通知各用户即将关机,以便给各用户留下一定的时间作保存和退出工作。
3.建立用户账号,设置相应密码在超级用户(root)命令提示符#下,教师根据需要建立适当数量的账号(成组创建:
./add_uB0801132B08),以便学生上机登录使用。
建立账号的命令:
#adduser(如用户名:
B080101)#passwd(初始为空)4.远程登录命令telnet的使用telnet命令的使用形式如下:
telnet[主机名][主机的IP地址]如:
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();printf('itisparentprocessn');}else{printf('itischildprocessn');exit();}printf('itisendn');}(3)写出下列程序的功能,并分析程序的运行结果。
#includemain(){intp1,p2,i;while((p1=fork())==-1);if(p1==0)for(i=0;i 程序的功能是:
输入两个整数并求和输出,然后创建一个子进程,当进程调度程序调度到父进程或子进程时将输出不同的信息。
#includemain(){inti,j,k,sum;scanf('%d%d',&j,&k);sum=j+k;printf('sum=%dn',sum);while(){printf('i=%dn',i);}if()printf('itisparentprocess!
n');elseprintf('itischildprocess!
n');}(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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)