安徽工业大学操作系统实验报告.doc
《安徽工业大学操作系统实验报告.doc》由会员分享,可在线阅读,更多相关《安徽工业大学操作系统实验报告.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统教程实验报告书专业班级物141班学 号149074353姓 名程裕博指导教师郭玉华安徽工业大学计算机实验一 WINDOWS进程初识1、 实验目的(1) 学会使用VC编写基本的Win32 Consol Application(控制(2) 台应用程序)。(3) 掌握WINDOWS API的使用方法。(4) 编写测试程序,理解用户态运行和核心态运行。2、 实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC+ 6.0。步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol
2、 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实验程序os11
3、debughello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :运行成功,截图:(2)计算进程在核心态运行和用户态运行的时间步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。步骤2: 在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。E:课程os课os实验程序os12debugtime TE
4、ST.exe步骤4:运行结果 (如果运行不成功,则可能的原因是什么?):process ID: 3716,EXE file:3.exe,%d in Kernel mode: 60步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。屏蔽i循环:process ID: 1412,EXE file:3.exe,%d in Kernel mode: 62屏蔽j循环:process ID: 1816,EXE file:3.exe,%d in Kernel mode: 34调整循环变量i的循环次数:process ID: 2616,EXE file:3.exe,%d
5、 in Kernel mode: 64调整循环变量j的循环次数:process ID: 1868,EXE file:3.exe,%d in Kernel mode: 503、 实验结论对Win32 Consol Application有进一步的认识,WIN32 API也就是Windows 32平台的应用程序编程接口。用户态运行和核心态运行,核心态就是一个是直接的代码运行,即win32consol Application下代码运行;而用户态是在DOS下运行的,对编译好的程序进行的运行,核心态速度较快,没有太多的约束,而用户态的运行需要时间较长,由于有相应的约束。实验二 进程管理1、实验目的1)
6、通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进程的“一生”。2) 通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。2、实验内容和步骤 (1). 创建进程本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单2-1中的程序,编译成可执行文件。步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11d
7、ebugos21 (假设编译生成的可执行文件是os21.exe)ProcessID:3012, Clone ID:0Process ID:2748, Clone ID:1Process ID:4044, Clone ID:2Process ID:2896, Clone ID:3Process ID:1588, Clone ID:4Process ID:2144, Clone ID:5按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos2
8、1 3(假设编译生成的可执行文件是os21.exe)Process ID:3112, Clone ID:3Process ID:1380, Clone ID:4Process ID:3576, Clone ID:5按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:步骤4:修改清单2-1中的程序,将nClone的定义和初始化方法按程序注释中的修改方法进行修改,编译成可执行文件(执行前请先保存已经完成的工作)。再按步骤2中的方式运行,看看结果会有什么不一样。运行结果:Process ID:3112, Clone ID:3Process ID:1380, Clon
9、e ID:4Process ID:3576, Clone ID:5从中你可以得出什么结论:nClone的作用:控制ID的起始值,并控制其输出窗口的数量。_ 变量的定义和初始化方法(位置)对程序的执行结果有影响吗?为什么?有影响,变量的定义影响了程序的结果数目,还影响了ID的其实位置,由于变量的初始化使程序的循环次数发生改变,直接改变了结果,所以结果由变量的不同而不同。(2). 父子进程的简单通信及终止进程步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单2-2中的程序,编译成可执行文件。步骤2:在VC的工具栏单击“Execute Program”(执行程序)
10、 按钮,或者按Ctrl + F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课os实验程序os11debugos22 (假设编译生成的可执行文件是os22.exe)步骤3:按源程序中注释中的提示,修改源程序2-2,编译执行(执行前请先保存已经完成的工作)。运行结果: 死循环在程序中加入跟踪语句,或调试运行程序,同时参考MSDN中的帮助文件CreateProcess()的使用方法,理解父子进程如何传递参数。给出程序执行过程的大概描述:产生的应用程序的名称 (本EXE文件), 告诉其行为像一个子进程的标志,不继承句柄,使用新的控制台,新的环境,启动信息,返
11、回的进程信息。步骤4:填空 CreateProcess() 函数有_8个核心参数?本实验程序中设置的各个参数的值是:a. szFilename;b. szCmdLine,;c. NULL;d. NULL;e. FALSE;f. CREATE_NEW_CONSOLE;g. NULL;h. NULL。步骤5:按源程序中注释中的提示,修改源程序2-2,编译执行。运行结果: 步骤6:参考MSDN中的帮助文件CreateMutex()、OpenMutex()、ReleaseMutex()和WaitForSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一
12、个大概描述: 首先,进程创建一个互斥体,打开互斥体,如遇到互斥,则进行处理,处理完后,释放互斥体,下面便是进程等待下一个要处理的项目。3、 实验结论每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess() 或TerminateProcess() API函数终止。通常应用程序的框架负责调用 ExitProcess() 函数。进程都是有始有终,其中有中断,还有处理进程间互斥的函数,已达到进程的完成后自然终止。实验三 进程同步的经典算法1、实验目的1) 回顾系统进程、线程的有关概念,加深对Window
13、s 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函数,回答下列问题:线程的第一个执行
14、函数是什么(从哪里开始执行)?它位于创建线程的API函数的第几个参数中?第一个执行函数是:DWORD WINAPI Producer(LPVOID lpPara)Produce();它位于创建线程的API函数的第3个参数中。步骤4:修改清单3-1中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。运行结果:从中你可以得出什么结论:生产速度快,生产者经常等待消费者;反之,消费者经常等待。步骤5:修改清单3-1中的程序,按程序注释中的说明修改信号量EmptySemaphore的初始化方法,看看结果有何不同。运行结果:步骤6:根据步骤4的结果,并查看MSDN,回答
15、下列问题1)CreateMutex中有几个参数,各代表什么含义。答:有三个参数.1. LPSECURITY_ATTRIBUTES lpMutexAttributes 代表安全属性的指针2. BOOL bInitialOwner代表布尔bInitialOwner3. LPCTSTR lpName 代表LPCTSTR类型lpName2)CreateSemaphore中有几个参数,各代表什么含义,信号量的初值在第几个参数中。四个: lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值表示采用不允许继承的默认
16、描述符。该参数定义了信号机的安全特性 ;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)Creat
17、eMutex能用CreateSemaphore替代吗?尝试修改程序3-1,将信号量Mutex完全用CreateSemaphore及相关函数实现。写出要修改的语句:可以Mutex=CreateSemaphore(NULL,false,false,NULL);(2). 读者写者问题根据实验(1)中所熟悉的P、V原语对应的实际Windows API函数,并参考教材中读者、写者问题的算法原理,尝试利用Windows API函数实现第一类读者写者问题(读者优先)。3、 实验结论将信号量看作生产或消费的一个对象,对信号量的生成和销毁操作如同P操作和V操作一样,生成者消费者问题模拟的就是对信号量的生成和销毁
18、,其中牵涉了信号量的同步,这也是该问题为何称为同步的经典问题的原因。实验四 存储管理1、 实验目的(1) 通过对Windows 2000“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整Windows的内存性能,加深对操作系统存储管理、虚拟存储管理等理论知识的理解。(2) 了解Windows 2000的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。2、 实验内容和步骤(1)观察和调整Windows 2000/XP的内存性能。步骤1:阅读“背景知识”,请回答:1) 什么是“分页过程”?_分页就是将信息从主内存移动
19、到磁盘进行临时存储的过程2) 什么是“内存共享”?_应用程序经常需要彼此通信和共享信息。_3) 什么是“未分页合并内存”和“分页合并内存”?Windows 2000中,未分页合并内存的最大限制是多少?分页合并内存是存储迟早需要的可分页代码或数据的内存部分。未分页合并内存包含必须驻留在内存中的占用代码或数据。4) Windows 2000分页文件默认设置的最小容量和最大容量是多少?Windows 2000使用内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。步骤2:登录进入Windows 2000 Professional。步骤3:查看包含多个实例的应用程序的内存需求。1
20、) 启动想要监视的应用程序,例如Word。2) 右键单击任务栏以启动“任务管理器”。3) 在“Windows任务管理器”对话框中选定“进程”选项卡。4) 向下滚动在系统上运行的进程列表,查找想要监视的应用程序。请在表4-3中记录:表4-3 实验记录映像名称PIDCPUCPU时间内存使用WINWORD368000:00:3823.440“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。5) 启动应用程序的另一个实例并观察它的内存需求。请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:印像名称:Explorer.EXE_pid:1652_cpu:0:00:26_内存使用:2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 工业大学 操作系统 实验 报告
限制150内