操作系统实验指导书(2).docx

上传人:李医生 文档编号:6169185 上传时间:2020-09-16 格式:DOCX 页数:64 大小:1.26MB
返回 下载 相关 举报
操作系统实验指导书(2).docx_第1页
第1页 / 共64页
操作系统实验指导书(2).docx_第2页
第2页 / 共64页
操作系统实验指导书(2).docx_第3页
第3页 / 共64页
操作系统实验指导书(2).docx_第4页
第4页 / 共64页
操作系统实验指导书(2).docx_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《操作系统实验指导书(2).docx》由会员分享,可在线阅读,更多相关《操作系统实验指导书(2).docx(64页珍藏版)》请在三一文库上搜索。

1、.操作系统实 验 指 导 书孙 述 和 编计算机科学与技术学院2013 年 4 -6月用.目录实验一Win2K 交互命令与进程管理1实验二Linux 交互命令3实验三Linux vi 编辑器的使用以及编程实践10实验四Win2K 系统的管理功能13实验五Linux 进程控制与进程通信16实验六进程调度模拟程序设计20实验七页面置换模拟程序设计31实验八文件系统模拟程序设计40操作系统( OS)实验报告参考模板59.实验一Win2K交互命令与进程管理一、实验目的:1、通过交互命令的操作实践,了解并熟悉Win2000/XP 系统的系统功能、文件和网络等的管理功能和方法;2、掌握使用任务管理器, 实

2、现对 Win2000/XP 系统的进程及内部资源利用率的分析管理;二、实验内容:1、Win2000/XP 系统的交互命令2、Win2000/XP 系统的任务管理器三、实验方法与步骤:1、转换当前驱动器(或盘符) ;2、目录管理;3、文件的创建、编辑、查看、复制、比较和改名等管理;4、本地网络配置与连接状态等的测试与查看等;5、打开任务管理器窗口,查看CPU 和内存的使用情况;6、进程(及活动程序)的查找、查看、撤销(杀死);7、网络和用户活动情况监控;8、任务管理器中的其它菜单与功能。四、实验素材1、需要阅读的参考资料,参见教材 P.238-246 7.2.3P.250 8.1.4;2、字符交

3、互命令窗口及执行情况参见图1-1;3、任务管理器窗口参见图1-2.图 1-1图 1-2.实验二Linux交互命令一、实验目的:1、熟悉并掌握 Linux 系统的交互命令, 能够用交互字符命令实现: 目录管理、文件管理、文本文件的查看和编辑、文件的查找 /复制 /改名 /比较、本地网络配置与连接状态等的测试与查看等;2、了解并熟悉Linux 系统的进程管理,学会进程的查找、查看、撤销(杀死),分析系统核心资源分配和使用情况等;3、通过交互命令的操作实践,了解并熟悉Linux 系统的系统功能、文件和网络等的管理功能和方法;二、实验内容:1、掌握图形界面和字符界面下关机及重启的命令。2、掌握 Lin

4、ux 下获取帮助信息的命令:man、 info 、help以及其他实用程序。3、练习常用的 shell 命令三、实验方法与步骤:1、图形界面和字符界面下关机以及重启命令立即关机并重启动: shutdown r now 或者 reboot;立即关机: shutdown h now 或者 poweroff等待 10 分钟关机 /关机并重启: shutdown h 10 / shutdown r 102、获取帮助信息命令注: 内为可选命令help -dms:显示 shell 的内建指令的帮助信息man -akw name : 显示实用程序的有用信息和基本用法。name指定帮助内容, -a:对所有与

5、name 相关的内容进行帮助, -k:在整个手册中寻找指定字符串,-w: 显示手册页的位置。info name:获取相关命令的详细使用方法按 q 键返回到命令行例: help echo, man ls ,inform.3、目录操作命令,参见图2-1mkdir :创建目录rm:删除文件和目录; rmdir 删除目录cp:复制目录和文件;cd:改变当前目录;ls -alrt name :列出当前目录的内容;pwd 显示当前目录的路径图 2-1 目录操作4、文件操作命令,如图2-2,图 2-3gedit:编辑文本文档cat:显示文件内容; more:分屏显示 mx.c 内容; less:按页显示文件

6、,可使用翻页键; tail :显示文件后几行; head:显示文件的前几行catfile1file2 :连接 file1 和 file2 ; sort:将文本文件排序wc:统计文件 filename 中的行数、单词数和字符数od :查看非文本文件; find :查找文件或目录; cmp:比较文件差异grep:查找文件里符合条件的字符串;file :测试文件类型.图 2-2.用 gedit 命令编辑文本文档图 2-3 文件操作命令.5、常用压缩与解压缩工具,见图2-4gzip:压缩文件,压缩后文件格式为.gz;gunzip:解压缩tar cvf :打包;tar xvf : 解包图 2-46、进程

7、(及活动程序)的查找、查看、撤销(杀死) ; ps:用来显示当前进程的状态;ps aux | grep 查看程序是否正在运行;kill :删除执行中的程序或工作;pkill : ps 与 kill 的结合;at:系统将执行的任务排序.图 2-5 当前进程的状态7、网络和用户活动情况监控;ping:测试网络连接是否正常;ifconfig :查看本机 IP 地址;netstat:看网络的联机状态;wall :向所有用户广播信息write :向另外一个用户发信息,以CTRL+D 结束mesgy|n :是否接受其他用户发来的信息FTP 客户端程序finger:查找并显示用户信息;who:查看其他登录的

8、用户whoami:查看登录用户自己的信息su:切换登录用户;passwd:更改用户密码chmod:改变文件访问权限;chown:改变文件的拥有者或群组stat:显示文件访问、修改时间、大小、属主和组以及许可模式等信息。.图 2-6 网络和用户活动情况图 2-7 显示文件属性.8、系统相关的命令dmesg:显示机器引导时内核显示的状态信息free:查看系统内存,虚拟内存占用情况;df:显示指定磁盘文件的可用空间;du:查看目录中各级子目录使用的硬盘空间top:动态实时查看系统内存,CPU,进程hostname:查看主机名; uname:显示系统信息date:显示和更改系统日期,时间clock -

9、w :将系统时间写入CMOS; clock -s:根据 CMOS 时间自动设置系统时间 ; cal:显示日历图 2-8 系统命令四、实验素材1、需要阅读的参考资料,参见教材P.223-229 7.1.5-6;2、字符交互命令窗口及执行情况参见图2-1 至图 2-4;3、进程、网络、用户、系统等命令窗口参见图2-5 至图 2-8.实验三Linux vi编辑器的使用以及编程实践一、实验目的:1、熟悉 Linux 系统中的 vi 编辑器,能够使用vi 编辑器建立、编辑、显示以及加工处理文本文件。2、理解 Shell 程序的设计方法,熟悉Shell 程序的编辑、运行、调试方法与过程。二、实验内容:1、

10、熟悉 Linux 系统的 vi 编辑器掌握三种模式下常用命令的使用编辑模式命令: a, A, i , I, o, O, ESC, : , 回车, ZZ显示模式命令: ctrl+d/u/b/f ,: 数字, x, X, dd, ndd, Y, nyy, p/P, ?name等命令模式:w,:q,:! , :n , :set nu, :f 等2、熟悉 Shell 编程实践,编写简单的C 语言程序,并编译运行与显示结果。三、实验方法与步骤:1、vi 编辑器的基本使用,三种模式下各个命令使用编编编 编vi 编编编编 编 ZZ编编 编编编编编 编编编 编 i,o,a编编 编编编ESC 编编 编编编编编编

11、 编图 3-1 vi 编辑器三种模式之间的转换vi 编辑器的界面,如图 3-2 所示。1) 在命令状态键入 vi test.c 回车进入编辑模式2) 按 i 或 a 后,进入插入模式后,开始编写程序代码3) 编写完毕后,按 ESC 退到编辑模式4) 键入 :wq 保存退出.图 3-2 vi 编辑界面2、c 程序编译与运行图 3-3 c 程序的编译与运行3、c 程序的调试, gdb 命令b/break:设置断点; delete:清除断点;c/continue:继续终止的程序;r/run:运行程序; step/s:单步进行,进入函数;next/n:单步不进入函数;list/l :显示源代码,每次1

12、0 行; kill :终止正在调试的程序file :装入将要调试的文件;print :先死 queue中的内容; q:退出 gqb.图 3-4 gdb 调试程序示例四、实验素材1、需要阅读的参考资料,参见教材P.248-250 8.1.3;2、vi 编辑器的使用情况参见图3-1 和图 3-2;3、c 语言程序编译运行及调试参见图3-3 和图 3-4.实验四Win2K系统的管理功能一、实验目的:1、熟悉并掌握 Win2K 这个注册表编辑器,熟悉注册表根键的内容与作用2、熟悉 Win2K 服务管理工具,了解开机自动启动的服务,掌握设置服务启动和停止的方法二、实验内容:1、熟悉 Win2000 系统

13、的管理功能,备份注册表2、修改注册表,屏蔽桌面“回收站”图标3、停止 Win2K “自动升级”服务三、实验方法与步骤:1、打开并备份注册表2、查找并分析对应根键以及子键,删除或修改相应的键值,重启观察效果3、打开服务管理器,查找相应服务,修改后重启观察变化4、打开安全中心,启动或停止“自动升级”、“防火墙”等5、运行系统配置实用程序,管理系统自动启动的程序或项目四、实验素材1、需要阅读的参考资料,参见教材P.231-2387.2.2,P.251-2528.2.2-3;2、注册表编辑器窗口参见图4-1;运行: regedit 命令3、服务管理器窗口参见图4-2;打开:控制面板管理工具服务4、安全

14、中心窗口参见图4-3打开:控制面板安全中心5、系统配置实用程序窗口参见图4-4运行: msconfig 命令.图 4-1 注册表编辑器窗口图 4-2 服务管理器窗口.图 4-3 安全中心窗口图 4-4 系统配置实用程序窗口.实验五Linux进程控制与进程通信一、实验目的:1、掌握进程的概念,明确进程和程序的区别。认识和了解并发执行的实质。分析进程争用资源的现象,学习解决进程互斥的方法。2、了解什么是管道,熟悉Linux 支持的管道通信方式二、实验内容:1、进程创建。编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上

15、显示一个字符:父进程显示“ a“;子进程分别显示字符” b“和字符“ c”。试观察记录屏幕上的显示结果,并分析原因。2、进程控制。修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,用 getpid()和getppid()获得当前进程号和父进程号,观察程序执行时屏幕上出现的现象,并分析原因。3、进程的管道通信。编写程序实现进程的管道通信,使用系统调用pipe()建立一个管道,二个子进程 P1和P2分别向管道各写一句话:Child 1 is sending a message!Child 2is sending a message!父进程从管道中读出二个来自子进程的信息并显示(要

16、求先接收P1,再接收 P2)。三、实验方法与步骤:1、进程的创建,参考程序# include#include#includeint main()int p1, p2;while(p1=fork()=-1);if(p1=0)putchar(b);/* 在子进程 1 中 */else/* 在父进程中 */ while(p2=fork()=-1);if(p2=0)putchar(c);/* 在子进程 2 中 */.else /* 在父进程中 */ putchar(a);printf(n);return 0;2、进程的控制,参考程序# include#include#includeint main()

17、int p1, p2, i;while(p1=fork()=-1);if(p1=0)printf(daughter,myid is %d, my parentsidis %dn,getpid(),getppid();elsewhile(p2=fork()=-1);if(p2=0)printf(son,my id is %d, my parentsid is %dn,getpid(),getppid(); elseprintf(parents,myidis%d,myparentsidis %dn,getpid(),getppid();return 0;3、进程的管道通信,参考程序# includ

18、e# include# include#include int pid1,pid2;int main().int fd2;char OutPipe100,InPipe100;pipe(fd);while(pid1=fork()=-1);if(pid1=0)lockf(fd1,1,0);sprintf(OutPipe,child 1 process is sending message!); write(fd1,OutPipe,50);sleep(5);lockf(fd1,0,0);exit(0);elsewhile(pid2=fork()=-1);if(pid2=0)lockf(fd1,1,0

19、);sprintf(OutPipe,child 2 process is sending message!); write(fd1,OutPipe,50);sleep(5);lockf(fd1,0,0);exit(0);elsewait(0);read(fd0,InPipe,50);printf(%sn,InPipe);wait(0);read(fd0,InPipe,50);printf(%sn,InPipe);exit(0);return 0;四、实验素材1、需要阅读的参考资料,参见教材P.252-254 8.3.1-2;2、进程异步并发执行情况参见图5-1,图 5-2;3、进程的管道通信执

20、行情况参见图5-3;.图 5-1 异步并发执行测试程序运行结构示例图 5-2 进程控制运行示例图 5-3 进程的管道通信运行示例.实验六进程调度模拟程序设计一、实验目的:1、通过对进程调度算法的模拟,进一步理解进程的基本概念;2、加深对进程运行状态和进程调度过程的了解和理解;3、加深对调度算法的理解。二、实验内容:给出进程调度的算法描述:1、用 c+语言编程实现对 N个进程采用某种进程调度算法调度执行的模拟;2、调度程序应包含两种不同调度算法,运行时任选一种,以利于各种方法的分析和比较;3、主程序流程图如图 6-1。.编 编编 编 编 编 编编 编 编 编 编 编编 编 编 编 编 编编 编

21、编 编 编 编编编 编 编 编 编 编编 编 编 编编编 编 编 编编编 编 编 编 编 编编编编 编 编 编 编 编编 编 编 编 编编编编编 编 编 编 编 编编 编 编 编编编编 编 编 编 编 编编 编 编 编 编 编编编 编图6-1 进程调度模拟程序流程图.三、实验方法与步骤:进程调度实验参考代码#include iostream.h#include windows.h#define N 3typedef structint ID;int PRIORITY;int CPUTIME;int ALLTIME;int STARTBLOCK;int BLOCKTIME;int STATE;/

22、0-运行 1- 阻塞 2- 就绪 3- 结束 4- 未到达int REACH;int TIME;PROCESS;void textcolor (int color) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), color ); void main()int i,time,max,l,l1,time1,flag=0,total=0,N,server10,sum=0;PROCESS pro10;textcolor(13);cout注意:本程序中状态代表如下endl0-运行1-阻塞2-就绪3-结束4-未到达endlendl;t

23、extcolor(15);coutN;couttime;cout请输入各进程初始状态:endl;.coutID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIMEendl;for(i=0;iproi.IDproi.PRIORITYproi.REACH;cinproi.ALLTIMEproi.STARTBLOCKproi.BLOCKTIME;serveri=proi.ALLTIME;if(proi.REACH=0) proi.STATE=0;else proi.STATE=4;docoutendl当前时刻为 :total;textcolor(12);coute

24、ndl=各进程状态为 =endl;textcolor(15);coutID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATEendl; for(i=0;iN;i+)coutproi.ID proi.PRIORITY proi.CPUTIME ; coutproi.ALLTIME proi.STARTBLOCK proi.BLOCKTIME proi.STATE;coutendl;total+=time;for(i=0;iN;i+)if(proi.STATE=4&proi.REACHtotal)proi.STATE=1;for(i=0;iN;

25、i+)time1=proi.ALLTIME;if(proi.STATE=0)if(proi.ALLTIME=time)/proi.CPUTIME+=time1;.proi.ALLTIME=0;proi.STATE=3;proi.TIME=total-time+time1;else/proi.CPUTIME+=time;proi.ALLTIME-=time;proi.STARTBLOCK-;if(proi.STARTBLOCK=0)proi.STATE=1;proi.BLOCKTIME=time1;proi.STARTBLOCK=time1;proi.PRIORITY-=3;proi.TIME=

26、total;if(proi.STATE=1)proi.BLOCKTIME-;if(proi.BLOCKTIME=0) proi.STATE=2;proi.TIME=total;if(proi.STATE=2)/proi.CPUTIME+=time;proi.PRIORITY+;proi.TIME=total;max=-100;l1=-1;l=-1;.for(i=0;imax&(proi.STATE=0|proi.STATE=2)l=i;max=proi.PRIORITY;if(proi.STATE=0) l1=i;if(l!=-1&l!=l1) prol.STATE=0;if(l1!=-1)

27、prol1.STATE=2;flag=0;for(i=0;iN;i+)if(proi.STATE!=3)flag=1;break;if(flag=0) break;while(1);coutendl当前时刻 :total;textcolor(12);coutendl各进程状态为 endl;textcolor(15);coutID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATEendl;for(i=0;iN;i+)coutproi.IDproi.PRIORITYproi.CPUTIME;coutproi.ALLTIMEproi.STARTB

28、LOCKproi.BLOCKTIMEproi.STATE;coutendl;coutendl各进程运行结束!endl;cout 进程号到达时间结束时间周转时间带权周转时间endl;.textcolor(10);for(i=0;iN;i+)coutproi.IDproi.REACHproi.TIMEproi.TIME-proi.REACH(float)(proi.TIME-proi.REACH)/serveriendl;sum+=proi.TIME-proi.REACH;cout 平均周转时间为:(float)sum/Nendl;textcolor(15);四、实验素材1、需要阅读的参考资料,参见教材P.256-2578.4.1-3;2、进程调用模拟程序实验结果如下实验结果

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1