




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统教程实验报告专业班级学 号姓 名指导教师 实验一 WINDOWS进程初识1、 实验目的(1) 学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。(2) 掌握WINDOWS API的使用方法。(3) 编写测试程序,理解用户态运行和核心态运行。2、 实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC+ 6.0。步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location” 处输入工程目录。创建一个新的控制台应用程序工程。步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C+ Source File”, 然后在“File” 处输入C/C+源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C+源程序中。编译成可执行文件。步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:课程os课os实验程序os11debughello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :(2)计算进程在核心态运行和用户态运行的时间步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。步骤2: 在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。E:课程os课os实验程序os12debugtime TEST.exe步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) :步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。屏蔽i循环:_屏蔽j循环:_调整循环变量i的循环次数:i=100,j=1000_调整循环变量j的循环次数:j=50,i=1000实验二 进程管理1、实验目的1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进程的“一生”。2) 通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。2、实验内容和步骤 (1). 创建进程本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单2-1中的程序,编译成可执行文件。步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos21 (假设编译生成的可执行文件是os21.exe)按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:_步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos21 3(假设编译生成的可执行文件是os21.exe)按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:步骤4:修改清单2-1中的程序,将nClone的定义和初始化方法按程序注释中的修改方法进行修改,编译成可执行文件(执行前请先保存已经完成的工作)。再按步骤2中的方式运行,看看结果会有什么不一样。运行结果:不断的弹出窗口,直到内存耗尽。从中你可以得出什么结论:nClone的作用是控制ID的起始值和输出窗口的数量。变量的定义和初始化方法(位置)对程序的执行结果有影响吗?为什么?_答:有影响,变量的定义影响了程序的结果的数目,还影响了ID的起始位置,由于变量的初始化使程序的循环次数发生改变,直接改变了结果。(2). 父子进程的简单通信及终止进程步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单2-2中的程序,编译成可执行文件。步骤2:在VC的工具栏单击“Execute Program”(执行程序) 按钮,或者按Ctrl + F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos22 (假设编译生成的可执行文件是os22.exe)步骤3:按源程序中注释中的提示,修改源程序2-2,编译执行(执行前请先保存已经完成的工作)。运行结果: 答:程序运行的结果是一个死循环。在程序中加入跟踪语句,或调试运行程序,同时参考MSDN中的帮助文件CreateProcess()的使用方法,理解父子进程如何传递参数。给出程序执行过程的大概描述:答:产生的应用程序名称,告诉其行为像一个子进程的标志,不继承句柄,使用新的控制台,新的环境,启动信息,返回的进程信息。步骤4:填空 CreateProcess() 函数有_8_个核心参数?本实验程序中设置的各个参数的值是:A.szFileName, B.szCmdLine C.NULL D.Null E.False F.CREATE_NEW_CONSOLEGNULL H.NULL步骤5:按源程序中注释中的提示,修改源程序2-2,编译执行。运行结果: Creating the child process.Telling the child process to quit.步骤6:参考MSDN中的帮助文件CreateMutex()、OpenMutex()、ReleaseMutex()和WaitForSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一个大概描述: 首先,进程创建一个互斥体,打开互斥体,如遇到互斥,则进行处理,处理完后,释放互斥体,下面便是进程等待下一个要处理的项目。3、 实验结论每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess() 或TerminateProcess() API函数终止。通常应用程序的框架负责调用 ExitProcess() 函数。进程都是有始有终,其中有中断,还有处理进程间互斥的函数,已达到进程的完成后自然终止。实验三 进程同步的经典算法1、实验目的1) 回顾系统进程、线程的有关概念,加深对Windows 2000线程的理解。2) 了解互斥体对象,通过对生产者消费者等进程间同步与互斥经典算法的实现,加深对P、V原语以及利用P、V原语进行进程间同步与互斥操作的理解。2、实验内容和步骤 (1). 生产者消费者问题步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单3-1中的程序,编译成可执行文件。步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos31 (假设编译生成的可执行文件是os31.exe)步骤3:仔细阅读源程序,找出创建线程的WINDOWS API函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的API函数的第几个参数中?答:第一个执行函数是:DWORD WINAPI Producer(LPVOID lpParaProduce();它位于创建线程的API函数的第3个参数中。步骤4:修改清单3-1中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。运行结果:从中你可以得出什么结论:答:进程执行中,有一定的次序,如程序运行结果是:首先是consuming,然后producing,其次是appending,最后是taking aproduct, 步骤5:修改清单3-1中的程序,按程序注释中的说明修改信号量EmptySemaphore的初始化方法,看看结果有何不同。运行结果:答:运行结果为什么都不输出,因为缓冲区长度为0。步骤6:根据步骤4的结果,并查看MSDN,回答下列问题1)CreateMutex中有几个参数,各代表什么含义。答:三个:lpMutexAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值,表示使用不允许继承的默认描述符 ;bInitialOwner Long,如创建进程希望立即拥有互斥体,则设为TRUE。一个互斥体同时只能由一个线程拥有 ;lpName String,指定互斥体对象的名字。2)CreateSemaphore中有几个参数,各代表什么含义,信号量的初值在第几个参数中。答:四个: lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值表示采用不允许继承的默认描述符。该参数定义了信号机的安全特性 ;lInitialCount Long,设置信号机的初始计数。可设置零到lMaximumCount之间的一个值 ;lMaximumCount Long,设置信号机的最大计数 ;lpName String,指定信号机对象的名称。3)程序中P、V原语所对应的实际Windows API函数是什么,写出这几条语句。HANDLE Mutex;HANDLE FullSemaphore;HANDLE EmptySemaphore;DWORD WINAPI Producer(LPVOID); DWORD WINAPI Consumer(LPVOID); 4)CreateMutex能用CreateSemaphore替代吗?尝试修改程序3-1,将信号量Mutex完全用CreateSemaphore及相关函数实现。写出要修改的语句: 可以。修改的语句为:Mutex = CreateSemaphore(NULL,0,0,NULL)实验结论答:通过对生产者、消费者问题的处理,加深理解了进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。线程是继进程之后引进的,为了减少程序并发执行的时空开销,使得并发粒度更细,并发性更好。生产者、消费者不但解决进程间同步,还解决了进程的互斥,其算法思想很经典,对P,V原语的理解有很大的帮助。实验四 存储管理1、 实验目的(1) 通过对Windows 2000“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整Windows的内存性能,加深对操作系统存储管理、虚拟存储管理等理论知识的理解。(2) 了解Windows 2000的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。2、 实验内容和步骤(1)观察和调整Windows 2000/XP的内存性能。步骤1:阅读“背景知识”,请回答:1) 什么是“分页过程”?答:当Windows 2000/XP求助于硬盘以获得虚拟内存时,这个过程被称为分页 (paging) 。分页就是将信息从主内存移动到磁盘进行临时存储的过程。2) 什么是“内存共享”?答:Windows 2000/XP必须允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性。3) 什么是“未分页合并内存”和“分页合并内存”?Windows 2000中,未分页合并内存的最大限制是多少?答:未分页合并内存包含必须驻留在内存中的占用代码或数据。分页合并内存是存储迟早需要的可分页代码或数据的内存部分。虽然可以将分页合并内存中的任何系统进程交换到磁盘上,但是它临时存储在主内存的这一部分,以防系统立刻需要它。在将系统进程交换到磁盘上之前,Windows 2000/XP会交换其他进程。Windows 2000中,未分页合并内存的最大限制是多少?Windows 2000/XP将未分页合并内存限制为256MB (在Windows NT 4中的限制为128MB) 。4) Windows 2000分页文件默认设置的最小容量和最大容量是多少?答:Windows 2000使用内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。步骤2:登录进入Windows 2000 Professional。步骤3:查看包含多个实例的应用程序的内存需求。1) 启动想要监视的应用程序,例如Word。2) 右键单击任务栏以启动“任务管理器”。3) 在“Windows任务管理器”对话框中选定“进程”选项卡。4) 向下滚动在系统上运行的进程列表,查找想要监视的应用程序。请在表4-3中记录:表4-3 实验记录映像名称PIDCPUCPU时间内存使用WINWORD.EXE5384000:02:03156.280Kb“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。5) 启动应用程序的另一个实例并观察它的内存需求。请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:答:大致相同步骤4:未分页合并内存。估算未分页合并内存大小的最简单方法是使用“任务管理器”。未分页合并内存的估计值显示在“任务管理器”的“性能”选项卡的“核心内存”部分。总数 :433(MB)分页数:298未分页:135(MB)还可以使用“任务管理器”查看一个独立进程正在使用的未分页合并内存数量和分页合并内存数量。操作步骤如下:1) 单击“Windows任务管理器”的“进程”选项卡,然后从“查看”菜单中选择“选择列”命令,显示“进程”选项卡的可查看选项。2) 在“选择列”对话框中,选定“页面缓冲池”选项和“非页面缓冲池”选项旁边的复选框,然后单击“确定”按钮。返回Windows 2000“任务管理器”的“进程”选项卡时,将看到其中增加显示了各个进程占用的分页合并内存数量和未分页合并内存数量。仍以刚才打开观察的应用程序 (例如Word) 为例,请在表4-4中记录:表4-4 实验记录映像名称PID内存使用页面缓冲池非页面缓冲池WINWORD.EXE5384155 988Kb1052K99K从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。拥有的物理内存越多,未分页合并内存就越多。但未分页合并内存被限制为256MB,因此添加超出这个限制的内存对未分页合并内存没有影响。步骤5:提高分页性能。在Windows 2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys) 。用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。虽然分页文件一般都放在系统分区的根目录下面,但这并不总是该文件的最佳位置。要想从分页获得最佳性能,应该首先检查系统的磁盘子系统的配置,以了解它是否有多个物理硬盘驱动器。1) 在“开始”菜单中单击“设置” “控制面板”命令,双击“管理工具”图标,再双击“计算机管理”图标。2) 在“计算机管理”窗口的左格选择“磁盘管理”管理单元来查看系统的磁盘配置。如果系统只有一个硬盘,那么建议应该尽可能为系统配置额外的驱动器。这是因为:Windows 2000最多可以支持在多个驱动器上分布的16个独立的分页文件。为系统配置多个分页文件可以实现对不同磁盘I/O请求的并行处理,这将大大提高I/O请求的分页文件性能。请在表4-5中记录:表4-5 实验记录卷布局类型文件系统容量状态c简单基本NTFS5054G状态良好D简单基本NTFS12075G状态良好步骤6:计算分页文件的大小。要想更改分页文件的位置或大小配置参数,可按以下步骤进行:1) 右键单击桌面上的“我的电脑”图标并选定“属性”。2) 在“高级”选项卡上单击“性能选项”按钮。3) 单击对话框中的“虚拟内存”区域中的“更改”按钮。请记录:所选驱动器 (C: ) 的页面文件大小:驱动器:_可用空间:12800 MB初始大小 (MB) :1024MB最大值 (MB) :40964) 要想将另一个分页文件添加到现有配置,在“虚拟内存”对话框中选定一个还没有分页文件的驱动器,然后指定分页文件的初始值和最大值 (以兆字节表示) ,单击“设置”,然后单击“确定”。5) 要想更改现有分页文件的最大值和最小值,可选定分页文件所在的驱动器。然后指定分页文件的初始值和最大值,单击“设置”按钮,然后单击“确定”按钮。6) 在“性能选项”对话框中单击“确定”按钮。7) 单击“确定”按钮以关闭“系统特性”对话框。步骤7:使用任务管理器。可以使用“任务管理器”来简单地检查分页文件是否配置了正确容量。这样可以实时提供系统正在使用分页文件的方式以及其他重要系统信息的准确描述。通过右键单击任务栏运行“任务管理器”,选定“性能”选项卡查看实时的系统统计数据。与分页文件大小最有关的信息位于“认可用量”区域。这一区域显示了认可“峰值”是否达到或超过了认可“限制”,以及它是否超过了系统上的物理内存数量。认可“峰值”是指系统迄今为止向进程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建龙岩市上杭县文化旅游发展有限公司(上杭古田建设发展有限公司)所属企业招聘拟聘用人选(二)模拟试卷及答案详解(必刷)
- 2025北京市场监管总局直属单位招聘210人模拟试卷及答案详解(必刷)
- 2025辽宁沈阳盛京资产管理集团有限公司所属子公司沈阳国际陆港集团有限责任公司拟聘用人员模拟试卷参考答案详解
- 安全培训效果验证表课件
- Ifebemtinib-tosylate-BI-853520-tosylate-生命科学试剂-MCE
- 装修复原工程现场现场施工协议模板模板协议模板合同7篇
- 2025福建龙岩市上杭县文化旅游发展有限公司(上杭古田建设发展有限公司)所属企业招聘拟聘用人选(二)模拟试卷及答案详解(全优)
- 2025年河北沧州泊头市中医医院招聘专业技术人员29名考前自测高频考点模拟试题附答案详解(典型题)
- 2025贵州罗甸县第一医共体沫阳分院招聘合同制专业技术人员考前自测高频考点模拟试题及一套答案详解
- 线上社群行业技术规范与发展
- 2025至2030年中国局部UV油墨行业投资前景及策略咨询报告
- 公积金补贴协议书
- 2025年中国眼视光行业发展深度分析与未来前景研究报告
- 科研机构安全标准化工作方案
- 2025年中小学心理健康教育考试试题及答案
- 2025-2030中国MLCC粉末行业市场发展趋势与前景展望战略研究报告
- 无人机吊装作业安全管理
- 试用期转正考核表(设计部)
- 2025年江西工业工程职业技术学院单招职业技能测试题库完美版
- 2025年经综396真题试及参考答案
- 2025年电信人工智能学习考试题库(含答案)
评论
0/150
提交评论