操作系统实验指导书修订版.doc
《操作系统实验指导书修订版.doc》由会员分享,可在线阅读,更多相关《操作系统实验指导书修订版.doc(167页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录实验一 Windows任务管理器的使用(课外)3实验二 进程创建与撤消7实验三 进程间通信12进程间通信之管道133.1管道143.2 其它IPC机制18实验四 创建线程20三、实验内容31实验五 线程同步32实验六 作业调度试验35实验七 死锁实验41一、实验目的41二、实验分析41三、实验设计41四、算法说明41五、程序使用说明41六、死锁实验源程序41实验八 存储管理46实验九 动态分区存储管理方式的主存分配回收50一、实验目的50二、实验主要内容50三、实验原理50四、实验方法与步骤50五、练习题54实验十 页式存储管理实验报告55实验十一 页面置换算法实验70实验十二 设备管理(
2、对光驱的打开、关闭实验;USB的启用和禁用实验,关机、重启实验)87mciSendString87OSVERSIONINFO88GetVersionEx90实验十三 设备管理之设备的分配与回收96实验十四 磁盘存储空间的分配与回收102一、实习内容102二、实习目的102三、实习要求102第1题 连续的磁盘存储空间的分配和回收102第2题 用位示图管理磁盘存储空间103第3题 模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间的管理104实验十五 磁盘调度算法109一、实验内容109二、开发环境109三、实验原理.109四、程序结构110实验十五 文件基本操作实验(创建、删除等)122实验十
3、六 文件管理之目录管理158一、实验目的158二、实验条件158三、实验要求158四、提交实验报告159实验一 Windows任务管理器的使用(课外)一、实验目的通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能.二、实验内容启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口.1. 分别查看每个选项卡的内容,了解相关参数的含义及其当前内容.2. 在“进程”选项卡上单击“查看”菜单,然后单击“选择列”命令.单击要增加显示为列标题
4、的项目,然后单击“确定”.分别了解“进程”选项卡各列的含义及其当前内容.3. 为更改正在运行的程序的优先级,可在“进程”选项卡上右键单击您要更改的程序,指向“设置优先级”,然后单击所需的选项.更改进程的优先级可以使其运行更快或更慢 (取决于是提升还是降低了优先级) ,但也可能对其他进程的性能有相反的影响.( 查看进程管理器,说明按照名字序号前5个进程的主要用途和功能.)4、 修改windows服务选项,将windows的远程用户修改注册表的服务设置成禁止. :打开控制面板 管理工具 服务 找到Remote Registry,双击,启动类型设置为禁用. 5、 修改windows的磁盘管理并设定配
5、额选项。设定配额的磁盘格式必须是NTFS,如果你的硬盘是FAT32格式;可通过以下命令:convert 盘符:/fs:ntfs 将某一磁盘分区转为NTFS。 6、 修改windows启动选项,将其中的前三个自动启动的选项去掉. :开始 运行 输入msconfig,到启动页.7、 修改windows的虚拟内存交换空间. 8、 修改windows使得windows启动时,显示操作系统列表时间为5秒,并写出启动文件的具体内容. :右键我的电脑 属性 高级 启动和故障恢复的设置 显示列表时间 设为5, 点击编辑 列出具体内容,一般是: boot loadertimeout=0default=multi
6、(0)disk(0)rdisk(0)partition(1)WINDOWSoperating systemsmulti(0)disk(0)rdisk(0)partition(1)WINDOWS=Microsoft Windows XP Professional /noexecute=optin /fastdetect9、 查看windows本地安全策略,并修改为定期强制修改密码.写出本地安全策略的审核的内容. :开始 运行 输入gpedit.msc 计算机设置 Windows设置 安全设置 账户策略 密码策略 密码最长存留期设置为需要的天数即可. 10、 获得此计算机网卡的网络配置及mac地址
7、. 开始 运行 输入cmd回车 输入ipconfig /all回车即是. 11、 在D盘新建一个文件夹,以自己的拼音缩写命名,并利用命令将其映射为I盘,例如为aaa,命令:subst I: d:aaa.即将c:aaa映射为I盘. (注:I盘是虚拟盘,不是实际的硬盘)语法subst drive1:drive2:Path subst drive1:/d参数drive1: 指定要为其指派路径的虚拟驱动器. drive2: 指定包含指定路径的物理驱动器(如果不是当前的驱动器). Path 指定要指派给虚拟驱动器的路径. /d 删除虚拟驱动器. /? 在命令提示符显示帮助. 注释以下命令在 subst
8、命令中使用的驱动器上无法工作(或不应使用): chkdsk Diskcomp Diskcopy format label recover drive1 参数必须在 lastdrive 命令指定的范围之内.如果没有,subst 将显示下列错误消息: Invalid parameter - drive1: 范例若要为路径 B:UserBettyForms 创建虚拟驱动器 Z,请键入: subst z:b:userbettyforms 现在,不用键入完整路径,而是通过键入虚拟驱动器号,后跟冒号,即可到达该目录,如下所示: z: winxp中的映射盘符命令:subst 另附上软件extrasubst.
9、zip(创建虚拟驱动器) 12、通过设备管理器查看系统所有组件配置.包括驱动程序,装载的所有程序,windows组件,硬件组件的IRQ等. 13、 查看windows的版本及注册信息. :开始 运行 输入winver回车 14、 利用windows自带的聊天工具,进行局域网内的聊天,并写出详细步骤. 首先启动服务中的Messager服务,Sp2以后版本默认为禁止的,将其设为自动, 然后要发消息就开始 运行 输入net send 对方IP地址 信息内容.回车即可 15、 利用命令查看windows进程中每个进程所提供的服务. 命令:tasklist /SVC (注:查看svchost进程情况)
10、实验二 进程创建与撤消一、实验目的1. 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 2000进程生存过程.2. 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法.二、背景知识1. 创建进程:CreateProcess() 调用的核心参数是可执行文件运行时的文件名及其命令行.下表详细地列出了每个参数的类型和名称.参数名称使用目的LPCTSTR lpApplivationName全部或部分地指明包括可执行代码的EXE文件的文件名LPCTSTR lpCommandLine向可执行文件发送的参数LPSECURI
11、ITY_ATTRIBUTES lpProcessAttributes返回进程句柄的安全属性.主要指明这一句柄是否应该由其他子进程所继承LPSECURIITY_ATTRIBUTES lpThreadAttributes返回进程的主线程的句柄的安全属性BOOL bInheritHandle一种标志,告诉系统允许新进程继承创建者进程的句柄DWORD dwCreationFlage特殊的创建标志 (如CREATE_SUSPENDED) 的位标记LPVOID lpEnvironment向新进程发送的一套环境变量;如为null值则发送调用者环境LPCTSTR lpCurrentDirectory新进程的启
12、动目录STARTUPINFO lpStartupInfoSTARTUPINFO结构,包括新进程的输入和输出配置的详情LPPROCESS_INFORMATION lpProcessInformation调用的结果块;发送新应用程序的进程和主线程的句柄和ID可以指定第一个参数,即应用程序的名称,其中包括相对于当前进程的当前目录的全路径或者利用搜索方法找到的路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关.然后是标志参数,用以在dwCreationFlags参数中指明系统应该给予新进程什么行为.经常使用的标志
13、是CREATE_SUSPNDED,告诉主线程立刻暂停.当准备好时,应该使用ResumeThread() API来启动进程.另一个常用的标志是CREATE_NEW_CONSOLE,告诉新进程启动自己的控制台窗口,而不是利用父窗口.这一参数还允许设置进程的优先级,用以向系统指明,相对于系统中所有其他的活动进程来说,给此进程多少CPU时间.接着是CreateProcess() 函数调用所需要的三个通常使用缺省值的参数.第一个参数是lpEnvironment参数,指明为新进程提供的环境;第二个参数是lpCurrentDirectory,可用于向主创进程发送与缺省目录不同的新进程使用的特殊的当前目录;第
14、三个参数是STARTUPINFO数据结构所必需的,用于在必要时指明新应用程序的主窗口的外观.CreateProcess() 的最后一个参数是用于新进程对象及其主线程的句柄和ID的返回值缓冲区.以PROCESS_INFORMATION结构中返回的句柄调用CloseHandle() API函数是重要的,因为如果不将这些句柄关闭的话,有可能危及主创进程终止之前的任何未释放的资源.2. 终止进程:所有进程都是以调用ExitProcess() 或者TerminateProcess() 函数结束的.但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭“职责”之后以正常的终止方式来调用前者的.而外
15、部进程通常调用后者即突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为.TerminateProcess() API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码.这是一种“野蛮”的终止进程的方式,但是有时却是需要的.如果开发人员确实有机会来设计“谋杀”(终止别的进程的进程) 和“受害”进程 (被终止的进程) 时,应该创建一个进程间通讯的内核对象如一个互斥程序这样一来,“受害”进程只在等待或周期性地测试它是否应该终止.三、实验内容1编译运行项目create and terminate ProcessCreateandt
16、erminateProcess.dsw,观察运行结果,并阅读和分析实验程序.*主要分析A. void CCreateandterminateProcessDlg:OnCreateprocess()/ TODO: Add your control notification handler code herePROCESS_INFORMATION pi;STARTUPINFO si;/初始化变量memset(&si,0,sizeof(si);si.cb=sizeof(si);si.wShowWindow=SW_SHOW;si.dwFlags=STARTF_USESHOWWINDOW;/打开记事本程
17、序BOOL fRet=CreateProcess(NULL,c:windowsnotepad.exe c:autoexec.bat,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);if(!fRet)/创建失败,显示错误信息LPVOID lpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastErr
18、or(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), / Default language(LPTSTR) &lpMsgBuf,0,NULL );AfxMessageBox( (LPCTSTR)lpMsgBuf);LocalFree( lpMsgBuf );elseAfxMessageBox(CreateProcess成功);m_hPro=pi.hProcess;B. void CCreateandterminateProcessDlg:OnTerminateprocess()/判断进程句柄是否合法if(m_hPro)/根据句柄,终止刚才打开的记事本程
19、序if(!TerminateProcess(m_hPro,0)/终止出现错误,显示错误信息LPVOID lpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), / Default language(LPTSTR) &lpMsgBuf,0,NULL );AfxMessageBox( (LPCTSTR)
20、lpMsgBuf);LocalFree( lpMsgBuf );elseAfxMessageBox(TerminateProcess成功);m_hPro=NULL;elseAfxMessageBox(m_hPro为空);C. 在cpp文件中添加“ #include winbase.h”D. 在头文件中添加“protected:HANDLE m_hPro;”2编译运行项目Lab2.2proclist.dsw,观察运行结果,并阅读和分析实验程序. *主要分析A 、void CCntrlOtherPrcssDlg:OnStart();B、 void CCntrlOtherPrcssDlg:OnSto
21、p(); 3. 编写程序将系统中所有的Notepad进程全部终止.TerminateProcess就可以: BOOL TerminateProcess( HANDLE hProcess, / handle to the process UINT uExitCode / exit code for the process ); 实验三 进程间通信一、实验目的在本实验中,通过对文件映射对象的了解,来加深对Windows 2000线程同步的理解.回顾系统进程、线程的有关概念,加深对Windows 2000线程间通讯的理解;了解文件映射对象;通过分析实验程序,了解线程如何通过文件映射对象发送数据;了解
22、在进程中如何使用文件映射对象.二、背景知识1共享内存:Windows 2000提供了一种在文件中处理数据的方法,名为内存映射文件,也称为文件映射.文件映射对象是在虚拟内存中分配的永久或临时文件对象区域 (如果可能的话,可大到整个文件) ,可将其看作是二进制的数据块.使用这类对象,可获得直接在内存中访问文件内容的能力.文件映射对象提供了强大的扫描文件中数据的能力,而不必移动文件指针.对于多线程的读写操作来说,这一点特别有用,因为每个线程都可能想要把读取指针移动到不同的位置去为了防止这种情况,就需要使用某种线程同步机制保护文件.在CreateFileMapping() API中,一个新的文件映射对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 指导书 修订版
限制150内