《[教育学]操作系统实验指导.doc》由会员分享,可在线阅读,更多相关《[教育学]操作系统实验指导.doc(54页珍藏版)》请在三一文库上搜索。
1、计算机操作系统实验指导书作者:宋秋艳计算机与通信工程系 目 录实验一 windows命令使用2实验二 进程模拟程序9实验三 进程调度17实验四 银行家算法模拟实现23实验五 作业调度模拟28实验六 请求页式存储管理中常用页面置换算法模拟36实验七 模拟文件管理系统44实验一 windows命令使用【实验要求】1、 上机前必须认真的做好准备,从网上下载windows的常用命令;2、 上机时测试windows的常用命令,并编写一定的批处理文件;并保护好实验环境,不恶意的修改电脑设置;3、 完成实验报告的撰写,并交给任课教师;【实验目的】1、 熟悉windows操作系统的常用命令;2、 通过编写与运
2、行批处理程序,进一步理解批处理作业的概念;【实验内容】1、 在windows自带的提示符下逐个的测试windows的常用命令;2、 编写一个批处理程序;【提示】批处理文件的创建方法:在记事本中输入批处理命令,然后保存为*.bat即可;批处理文件的编辑:选中文件,右击选择编辑。【windows命令集】C:boot.ini 打开启动菜单compact.exe 显示或改变NTFS分区上文件的压缩状态conime.exe IME控制台control.exe 控制面板convert.exe NTFS 转换文件系统到NTFSconvlog.exe 转换IIS日志文件格式到NCSA格式cprofile.ex
3、e 转换显示模式cscript.exe 较本宿主版本csrss.exe 客户服务器Runtime进程 (XP不可用)csvde.exe 格式转换程序 (XP不可用)dcpromo 活动目录安装(XP不可用)drwtsn32 系统医生diskmgmt.msc 磁盘管理器(和PowerQuest PartitionMagic 8.0)dvdplay DVD 播放器devmgmt.msc 设备管理器(检查电脑硬件,驱动)dxdiag 检查DirectX信息dcomcnfg.exe DCOM配置属性 (控制台根目录)dcpromo.exe 安装向导 (XP不可用)ddeshare.exe DDE共享d
4、ebug.exe 检查DEBUGdfrgfat.exe FAT分区磁盘碎片整理程序dfrgntfs.exe NTFS分区磁盘碎片整理程序 (XP不可用)dfs_cmd_.exe 配置DFS树 (XP不可用)dfsinit.exe 分布式文件系统初始化(XP不可用)dfssvc.exe 分布式文件系统服务器 (XP不可用)diantz.exe 制作CAB文件diskperf.exe 磁盘性能计数器dmremote.exe 磁盘管理服务的一部分 (XP不可用)doskey.exe 命令行创建宏dosx.exe DOS扩展edlin.exe 命令行的文本编辑esentutl.exe MS数据库工具e
5、udcedit.exe 造字程序eventvwr.exe 事件查看器exe2bin.exe 转换EXE文件到二进制expand.exe 解压缩extrac32.exe 解CAB工具fsmgmt.msc 共享文件夹fastopen.exe 快速访问在内存中的硬盘文件faxcover.exe 传真封面编辑faxqueue.exe 显示传真队列faxsend.exe 发送传真向导faxsvc.exe 启动传真服务fc.exe 比较两个文件的不同find.exe 查找文件中的文本行findstr.exe 查找文件中的行finger.exe 一个用户并显示出统计结果fixmapi.exe 修复MAPI文
6、件flattemp.exe 允许或者禁用临时文件目录 (XP不可用)fontview.exe 显示字体文件中的字体forcedos.exe 强制文件在DOS模式下运行ftp.exe FTP下载gpedit.msc 组策略gdi.exe 图形界面驱动grpconv.exe 转换程序管理员组hostname.exe 显示机器的HostnameInternat 输入法图标iexpress 木马捆绑工具,系统自带ieshwiz.exe 自定义文件夹向导iexpress.exe iexpress安装包iisreset.exe 重启IIS服务(未安装IIS,不可用)internat.exe 键盘语言指示器
7、 (XP不可用)ipconfig.exe 查看IP配置ipsecmon.exe IP安全监视器ipxroute.exe IPX路由和源路由控制程序irftp.exe 无线连接ismserv.exe 安装或者删除Service Control Manager中的服务jdbgmgr.exe Java4的调试器jetconv.exe 转换Jet Engine数据库 (XP不可用)jetpack.exe 压缩Jet数据库 (XP不可用)jview.exe Java的命令行装载者label.exe 改变驱动器的卷标lcwiz.exe 许可证向导 (XP不可用)ldifde.exe LDIF目录交换命令行
8、管理 (XP不可用)licmgr.exe 终端服务许可协议管理 (XP不可用)lights.exe 显示连接状况 (XP不可用)llsmgr.exe Windows 2000 许可协议管理 (XP不可用)llssrv.exe 启动许可协议服务器 (XP不可用)locator.exe RPC Locator 远程定位lodctr.exe 调用性能计数logoff.exe 注销当前用户lpq.exe 显示远端的LPD打印队列的状态,显示被送到基于Unix的服务器的打印任务lpr.exe 用于Unix客户打印机将打印任务发送给连接了打印设备的NT的打印机服务器。lsass.exe 运行LSA和Ser
9、ver的DLLlserver.exe 指定默认Server新的DNS域 (XP不可用)lusrmgr.msc 本地账户管理mmc 控制台mplayer2 播放器macfile.exe 管理MACFILES (XP不可用)magnify.exe 放大镜makecab.exe 制作CAB文件mem.exe 显示内存状态migpwd.exe 迁移密码mmc.exe 控制台mnmsrvc.exe 远程桌面共享mobsync.exe 同步目录管理器mountvol.exe 创建、删除或列出卷的装入点。mplay32.exe Media Player 媒体播放器mpnotify.exe 通知应用程序mqb
10、kup.exe 信息队列备份和恢复工具mqmig.exe MSMQ Migration Utility 信息队列迁移工具mrinfo.exe 使用SNMP多点传送路由mscdexnt.exe 安装MSCDmsdtc.exe 动态事务处理控制台msg.exe 发送消息到本地或远程客户mshta.exe HTML应用程序主机msiexec.exe 开始Windows安装程序mspaint.exe 打开画图板mstask.exe 任务计划表程序mstinit.exe 任务计划表安装Msconfig.exe 系统配置实用程序 (配置启动选项,服务项)mem.exe 显示内存使用情况mspaint 画图
11、板Net Stop Messenger 停止信使服务Net Start Messenger 恢复信使服务nslookup 网络管理的工具Nslookup IP 地址侦测器ntbackup 系统备份和还原nbtstat.exe 使用 NBT(TCP/IP 上的 NetBIOS)显示协议统计和当前 TCP/IP 连接。nddeapir.exe NDDE API服务器端netsh.exe 用于配置和监控 Windows 2000 命令行脚本接口(XP不可用)netstat.exe 显示协议统计和当前的 TCP/IP 网络连接。nlsfunc.exe 加载特定国家的信息。Windows 2000 和
12、MS-DOS 子系统不使用该命令接受该命令只是为了与 MS-DOS 文件兼容。notepad.exe 打开记事本nslookup.exe 该诊断工具显示来自域名系统 (DNS) 名称服务器的信息。ntbackup.exe 备份和故障修复工具ntfrs.exe NT文件复制服务 (XP不可用)ntvdm.exe 模拟16位Windows环境nw16.exe NetWare转向器nwscript.exe 运行Netware脚本odbcad32.exe 32位ODBC数据源管理 (驱动程序管理)odbcconf.exe 命令行配置ODBC驱动和数据源packager.exe 对象包装程序pathpi
13、ng.exe 包含Ping和Tracert的程序pentnt.exe 检查Pentium的浮点错误perfmon.exe 系统性能监视器ping.exe 验证与远程计算机的连接posix.exe 用于兼容Unixprint.exe 打印文本文件或显示打印队列的内容。progman.exe 程序管理器psxss.exe Posix子系统应用程序qappsrv.exe 在网络上显示终端服务器可用的程序qprocess.exe 在本地或远程显示进程的信息(需终端服务)query.exe 查询进程和对话 (XP不可用)quser.exe 显示用户登陆的信息(需终端服务)qwinsta.exe 显示终端
14、服务的信息rononce -p 15秒关机rasAdmin 远程访问服务.regedit.exe 注册表编辑器rasadmin.exe 启动远程访问服务 (XP不可用)rasautou.exe 建立一个RAS连接rasdial.exe 宽带,拨号连接ras.exe 运行RAS连接 (XP不可用)rcp.exe 计算机和运行远程外壳端口监控程序 rshd 的系统之间复制文件rdpclip.exe 终端和本地复制和粘贴文件recover.exe 从坏的或有缺陷的磁盘中恢复可读取的信息。redir.exe 运行重定向服务regedt32.exe 32位注册服务regini.exe 用脚本修改注册许可
15、regwiz.exe 注册向导replace.exe 用源目录中的同名文件替换目标目录中的文件。rexec.exe rexec 命令在执行指定命令前,验证远程计算机上的用户名,只有安装了 TCP/IP 协议后才可以使用该命令。risetup.exe 运行远程安装向导服务 (XP不可用)route.exe 控制网络路由表rsh.exe 在运行 RSH 服务的远程计算机上运行命令rsnotify.exe 远程存储通知回显runas.exe 允许用户用其他权限运行指定的工具和程序rundll32.exe 启动32位DLL程序rwinsta.exe 重置会话子系统硬件和软件到最初的值Sndvol32
16、音量控制程序sfc.exe 或CMD sfc.exe 回车 系统文件检查器services.msc 网络连接服务syskey 系统加密,(一旦加密就不能解开,保护windows xp系统的双重密码wupdmgr WIDNOWS UPDATE)SCANREG/RESTORE 命令恢复最近的注册表secedit.exe 自动化安全性配置管理services.exe 控制所有服务sethc.exe 设置高对比setver.exe 设置 MS-DOS 子系统向程序报告的 MS-DOS 版本号sfc.exe 系统文件检查shadow.exe 监控另外一台中端服务器会话shrpubw.exe 建立和共享文
17、件夹sigverif.exe 文件签名验证smlogsvc.exe 性能日志和警报 (XP不可用)sndrec32.exe 录音机sndvol32.exe 显示声音控制信息snmp.exe 简单网络管理协议 (XP不可用)snmptrap.exe SNMP工具 (XP不可用)srvmgr.exe 服务器管理器 (XP不可用)subst.exe 将路径与驱动器盘符关联sysedit.exe 系统配置编辑器syskey.exe NT账号数据库加密工具sysocmgr.exe Windows 安装程序systray.exe 在低权限运行systraytaskmgr 任务管理器tasklist /sv
18、c(CMD)了解每个SVCHOST进程到底提供了多少系统服务(200098不可用)tlist -S(CMD) 了解每个SVCHOST进程到底提供了多少系统服务(taskman.exe 任务管理器 (XP不可用)taskmgr.exe 任务管理器tcmsetup.exe 电话服务客户安装tcpsvcs.exe TCP服务termsrv.exe 终端服务tftp.exe 将文件传输到正在运行 TFTP 服务的远程计算机或从正在运行 TFTP 服务的远程计算机传输文件themes.exe 桌面主题 (XP不可用)tlntadmn.exe Administrator Telnet服务管理tlntses
19、s.exe 显示目前的Telnet会话tlntsvr.exe 开始Telnet服务tracert.exe 诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以决定到达目标采用的路由tsadmin.exe Administrator 终端服务管理器 (XP不可用)tscon.exe 粘贴用户会话到终端对话tsdiscon.exe 断开终端服务的用户tskill.exe 杀掉终端服务tsprof.exe 用终端服务得出查询结果tsshutdn.exe 关闭系统unlodctr.exe 性能监视器的一部分upg351db.exe 升
20、级Jet数据库 (XP不可用)ups.exe UPS service UPS服务user.exe Windows核心服务userinit.exe 打开我的文档usrmgr.exe 域用户管理器utilman.exe 指定2000启动时自动打开那台机器vwipxspx.exe 调用IPX/SPX VDMw32tm.exe 时间服务器wextract.exe 解压缩Windows文件winchat.exe 打开Windows聊天工具winhlp32.exe 运行帮助系统winmsd.exe 查看系统信息winver.exe 显示Windows版本wizmgr.exe Windows管理向导 (XP
21、不可用)wjview.exe Java 命令行调用Javawrite.exe 打开写字板wscript.exe 脚本工具wupdmgr.exe Windows update 运行Windows update升级向导winver 检查Windows版本【批处理文件实例】下面的批处理文件为删除temp、cookies、recent、Temporary Internet Files文件夹中的临时文件,通过执行批处理程序,解决手动删除的麻烦。echo offdel/f/s/q %systemdrive%*.tmpdel/f/s/q %systemdrive%*._mpdel/f/s/q %system
22、drive%*.logdel/f/s/q %systemdrive%*.giddel/f/s/q %systemdrive%*.chkdel/f/s/q %systemdrive%*.olddel/f/s/q %windir%*.bakdel/f/q %systemdrive%recycled*.*del/f/s/q %windir%prefetch*.*rd/s/q %windir%temp & md %windir%temprd/s/q %temp% & md %temp%del/f/q %userprofile%cookies*.*del/f/q %userprofile%recent*
23、.*rd/s/q %userprofile%Local SettingsTemporary Internet Filescls & echo 清除系统垃圾完成!echo. & pause实验二 进程模拟程序【实验要求】1、 上机前认真阅读实验内容,并编好程序;2、 上机实验后,请列出实验数据,写出实验结果;3、 完成实验报告后交任课教师。【实验目的】1、 理解进程的概念以及进程控制块(pcb)的作用;2、 通过模拟实现进程控制,进一步理解进程控制原语;【实验内容】1、 编写程序,模拟实现创建进程;2、 查看进程的运行情况;3、 换出某个进程;4、 删除某个进程;【提示】1、 pcb是系统识别进
24、程的唯一标识,所以要先给出进程的pcb的数据结构;然后,对数据结构进行初始化,即可完成进程的创建;最后将该进程插入到就绪队列;2、 查看运行进程,即是输出当前正在运行的进程的pcb信息即可;3、 可以按照某种策略,将就绪队列中的进程插入到挂起队列,即完成了进程的换出;4、 将某个进程的pcb从就绪队列或挂起队列中删除,即可完成进程的删除;【参考程序】#include conio.h#include stdio.h#include stdlib.hstruct jincheng_type int pid;int youxian;int daxiao;/进程模拟。struct jincheng_t
25、ype jiuxu20;/就绪数组。struct jincheng_type guaqi20;/挂起数组。struct jincheng_type cpu;/运行进程。int shumu1=0,shumu2=0,first=0;void create()if(shumu1=20)printf(n就绪进程已满,请先删除或挂起进程n);elseif(first=0)printf(n这是你第一次输入进程信息,它将直接调入CPU运行!);printf(n请输入新进程的pidn);scanf(%d,&cpu.pid);printf(请输入新进程的优先级n);scanf(%d,&cpu.youxian);
26、printf(请输入新进程的大小n);scanf(%d,&cpu.daxiao);first+;elseprintf(n请输入新进程的pidn);scanf(%d,&jiuxushumu1.pid);printf(请输入新进程的优先级n);scanf(%d,&jiuxushumu1.youxian);printf(请输入新进程的大小n);scanf(%d,&jiuxushumu1.daxiao);shumu1+;/新建进程。void run()printf(n现在正在运行的进程的资料如下:n);printf(PID码为:%d;n优先级为:%d;n大小为:%d.,cpu.pid,cpu.youx
27、ian,cpu.daxiao);/查看运行进程。void huanchua()int i,p,m,n,t;p=jiuxu0.youxian;for(i=0;ijiuxui.youxian)p=jiuxui.youxian;for(i=0;i20;i+)if(p=jiuxui.youxian)m=cpu.daxiao;cpu.daxiao=jiuxui.daxiao;n=cpu.pid;cpu.pid=jiuxui.pid;t=cpu.youxian;cpu.youxian=jiuxui.youxian;break;else continue;for(i;ishumu1-1;i+)jiuxui.
28、daxiao=jiuxui+1.daxiao;jiuxui.pid=jiuxui+1.pid;jiuxui.youxian=jiuxui+1.youxian;jiuxui.daxiao=m;jiuxui.pid=n;jiuxui.youxian=t;void huanchub()int i,p;printf(n请输入想要挂起的进程的PID码:n(在以下中选:);for(i=0;ishumu1;i+)printf(%d ,jiuxui.pid);printf()n);scanf(%d,&p);for(i=0;ishumu1;i+)if(p=jiuxui.pid)guaqishumu2.daxia
29、o=jiuxui.daxiao;guaqishumu2.pid=jiuxui.pid;guaqishumu2.youxian=jiuxui.youxian;shumu2+;break;else continue;for(i;ishumu1;i+)jiuxui.daxiao=jiuxui+1.daxiao;jiuxui.pid=jiuxui+1.pid;jiuxui.youxian=jiuxui+1.youxian;shumu1-;void huanchuc()int i;jiuxushumu1.daxiao=guaqi0.daxiao;jiuxushumu1.pid=guaqi0.pid;ji
30、uxushumu1.youxian=guaqi0.youxian;shumu1+;for(i=0;ishumu2;i+)guaqii.daxiao=guaqii+1.daxiao;guaqii.pid=guaqii+1.pid;guaqii.youxian=guaqii+1.youxian;shumu2-;void huanchud()int i,p,m,n,t;printf(n请输入想要运行的进程的PID码:n(在以下中选:);for(i=0;ishumu1;i+)printf(%d ,jiuxui.pid);printf()n);scanf(%d,&p);for(i=0;ishumu1;i
31、+)if(p=jiuxui.pid)m=cpu.daxiao;cpu.daxiao=jiuxui.daxiao;jiuxui.daxiao=m;n=cpu.pid;cpu.pid=jiuxui.pid;jiuxui.pid=n;t=cpu.youxian;cpu.youxian=jiuxui.youxian;jiuxui.youxian=t;break;else continue;void huanchue()int i,p;printf(n请输入想要调入就绪的进程的PID码:n(在以下中选:);for(i=0;ishumu2;i+)printf(%d ,guaqii.pid);printf(
32、)n);scanf(%d,&p);for(i=0;ishumu2;i+)if(p=guaqii.pid)jiuxushumu1.daxiao=guaqii.daxiao;jiuxushumu1.pid=guaqii.pid;jiuxushumu1.youxian=guaqii.youxian;break;else continue;shumu1+;for(i;ishumu2;i+)guaqii.daxiao=guaqii+1.daxiao;guaqii.pid=guaqii+1.pid;guaqii.youxian=guaqii+1.youxian;shumu2-;/交换进程的原码。void
33、huanchu()int a;printf(请你选择需要的交换方式:n);printf(1.将优先级高的进程调入CPU执行.n);printf(2.手动将进程挂起.n);printf(3.将挂起的进程按先如先出的方式调入就绪队列.n);printf(4.手动将就绪进程调入CPU执行.n);printf(5.手动将挂起的进程调入就绪队列.n);scanf(%d,&a);switch(a)case 1: huanchua();break;case 2: huanchub();break;case 3: huanchuc();break;case 4: huanchud();break;case 5
34、: huanchue();break;default:break;/换入换出实现函数。void del()int i,p;printf(n请输入想要删除的进程的PID码:n(在以下中选:);for(i=0;ishumu2;i+)printf(%d ,guaqii.pid);printf()n);scanf(%d,&p);for(i=0;ishumu2;i+)if(p=guaqii.pid)for(i;ishumu2;i+)guaqii.daxiao=guaqii+1.daxiao;guaqii.pid=guaqii+1.pid;guaqii.youxian=guaqii+1.youxian;S
35、humu2-;break;else continue;/删除进程。void main() int n; char a; n=1; while(n=1)printf(n*);printf(n* 进程演示系统 *);printf(n* 1.创建新的进程 2.查看运行进程 *);printf(n* 3.换出某个进程 4.删除某个进程 *);printf(n* 5.退出演示系统 *);printf(n*);printf(n请选择(15));a=getche();switch(a)case1:create();break;case2:run();break; case3:huanchu();break;
36、 case4:del();break; case5:exit(0); default:printf(输入有错!n);break;printf(n*);实验三 进程调度【实验要求】1、复习进程的状态及其转换;2、深入理解同步与互斥的概念及p、v操作;3、上机前仔细阅读参考程序,并在参考程序的基础上,对程序作相应的修改;给出实验数据与结果。【实验目的】进程调度时进程管理的主要内容之一,通过设计,编制,调试一个简单的进程调度模拟系统,对进程调度,进程运行状态变换及PV操作加深理解和掌握。【实验内容】1、模拟批处理多道操作系统的进程调度;采用剥夺式优先算法,对三个进程进行模拟调度2、模拟实现同步机构避
37、免并发进程执行时可能与时间相关的错误;模拟PV操作同步机构,用PV操作解决进程进入临界区的问题。【提示】(1)参考程序对三个进程进行模拟调度,对各进程的优先数静态设置,P1,P2,P3三个进程的优先数为1,2,3,并指定P1的优先数最高,P3的优先数最低,每个进程都处于执行态“e”,就绪态“r”,等待态“w”三种状态之一,并假定初始态为“r”。请同学们将优先数改为随机数,并进行测试;(2)每一个进程用一个PCB表,PCB表的内容根据具体情况设置,该系统在运行过程中能显示或打印各进程和参数的变化情况,以便观察各进程的调度;(3)参考程序在完成必要的初始化后,便进入进程调度程序,首先由P1进入执行
38、,当执行进程因等待某各事件被阻塞或唤醒某个进程等待进程时,转进程调度。请同学们将由p1先执行改为p3先执行,并进行测试;测试后与参考程序进行比较;(4)在进入临界区前后,调PV操作;(5)如果被唤醒的进程优先数高于现有执行的进程,则剥夺现行进程的执行权;(6)当三个进程都处于等待状态时,本模拟系统退出执行。【参考程序数据结构】1.数据结构:(1)进程控制块PCBstructint id;char status;int priority;int waiter1;(2)信号量structint value;int waiter2;sem2(3)现场保护栈stackchar stack114每个进程
39、都有一个大小为10个字的现场保护栈,用来保护被中断时的断点地址等信息。(4)全局变量int i;用以模拟一个通用寄存器char addr;用以模拟程序计数器int m1,m2;为系统设置的公用数据被三个进程共享使用。 【参考程序说明】本程序是用C语言编写,模拟三个进程的运行情况,过程在运行中要调用P操作申请信号量,如果该过程得到其申请的信号量,就继续运行,否则P操作阻塞该申请过程的运行,并将过程置为所申请信号量的等待者,如果已有其它过程在等待同一信号量则将该申请过程排在所有等待进程之后。过程运行中除了调用P操作申请信号量外,还要调用V操作释放信号量,V操作在释放信号量之后,还将唤醒因申请此信号量而被阻塞的过程。在程序运行的三个过程(PROCESS1,PROCESS2,PROCESS3),其中过程运行中通过P操作申请信号量1,过程2通过V操作释放信号量2,然后做一次操作申请信号量2。三个过程之间存在这样一种关系:过程1消耗的信号量1由过程2通过V操作产生,而过程3即释放信号量2也消耗信号
链接地址:https://www.31doc.com/p-1983337.html