收藏 分销(赏)

实验一 和实验二.doc

上传人:xrp****65 文档编号:7424006 上传时间:2025-01-03 格式:DOC 页数:12 大小:1,009KB 下载积分:10 金币
下载 相关 举报
实验一 和实验二.doc_第1页
第1页 / 共12页
实验一 和实验二.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
实验一 熟悉Windows2000/XP中的进程和线程 一、实验目的 1、熟悉Windows2000/XP中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 二、实验理论基础 1、实验理论基础: (1) 操作系统中的进程和线程的概念; (2) 进程PCB的各项指标含意; (3) 操作系统中的进程和线程的概念; (4) 进程的各种控制; 三、实验内容与步骤 1、 启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。如下图所示: 2、 调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并完成下表(填满即可): 表一:统计进程的各项主要信息 序号 进程名称 进程ID 线程数量 占用内存 优先级 占CPU时间 虚拟内存 1 alg.exe 2268 6 3844k 标准 0:00:00 1416k 2 Matlab.exe 2044 15 33416k 标准 0:00:01 30640k 3 Matlabserver.exe 1956 5 9400k 标准 0:00:00 10844k 4 SVCHOST.EXE 1756 1 3788k 标准 0:00:00 1524k 5 Igfxsrvc.exe 1704 4 3460k 标准 0:00:00 1232k 6 Ctfmon.exe 1672 1 3516k 标准 0:00:00 1232k 7 Igfxpers.exe 1656 3 3208 标准 0:00:00 896k 8 Hkcmd.exe 1640 2 3872k 标准 0:00:00 1148k 3、 从桌面启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是无法中止进程 , 原因是 该程序为关键系统进程,任务管理器无法结束进程。 4、 在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化 桌面所有的快捷图标消失,任务栏消失 、得到的结论是 这个进程用于显示桌面上的图标和开始菜单 (说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进程“explorer.exe”的各项信息,并填写下表: 表二:统计线程的各项信息 进程:explorer.exe 中的各个线程 序号 进程ID 线程ID 基本优先级 当前优先级 CPU时间 上下文开关 1 00000BA8 00000298 8 11 0:00:00.000 36 2 00000BA8 00000794 9 10 0:00:00.000 192201 3 00000BA8 000008D4 8 10 0:00:00.000 25 4 00000BA8 00000C00 8 10 0:00:00.000 25 5 00000BA8 00000C4C 8 10 0:00:00.546 25547 6 00000BA8 00000C74 8 8 0:00:00.000 148 7 00000BA8 00000C88 8 10 0:00:00.015 1185 8 00000BA8 00000DE4 8 11 0:00:00.015 66663 9 00000BA8 00000E38 8 10 0:00:00.328 384 10 00000BA8 00000E68 8 8 0:00:00.000 2075 11 00000BA8 00000F04 10 12 0:00:00.015 179 12 00000BA8 00000F88 15 15 0:00:00.000 41 13 00000BA8 00000FB8 8 10 0:00:00.093 26873 14 6、注意某些线程前有“+”,如图所示:,说明二者之间的差异是 线程前有“+”的有子线程 。 7、按下列步骤建立一个工程项目,将记事本应用程序运行起来,即创建了一个新的进程。 步骤1、创建一个基于MFC的应用程序。 步骤2、在应用程序类型中选取“基于对话框”的选项。 步骤3、直接点击完成,系统将为你创建一个工程项目。 步骤4、然后在“资源视图”中,打开对话框“IDD_MY_DIALOG”,将出现以下对话框: 步骤5、打开界面上的“工具箱”,放置一个“按钮”,如下图: 步骤6、双击上面的“Button1”按钮,切换到代码的编写处: 输入以下语句: 步骤7、编译并运行此工程项目,看看运行的结果。 运行的结果是:打开了记事本. 四、实验结果分析 写出你在本次实验中学习到的关于进程的或者其他方面的知识. 要想好好地学好这门就要把许多知识联系起来,还要熟记许多的计算机中的名词和不同软件的应用。通过本次实验我掌握了WINDOWS系统的许多知识,我觉得计算机操作系统是一门深奥难懂的课,但越难越应该更努力地学习它。 实验二 Windows中的线程与线程同步现象 一、实验目的 1、掌握Windows中线程的操作。 2、熟悉线程不同步时的现象及环境因素。 3、掌握一种同步对象的使用。 二、实验理论基础 1、线程和线程同步的认识。 2、线程间的同步和通信。 三、实验内容与步骤 1、定义全局变量 int i = 0; 初始值置为 0。 2、创建两个线程,一个对 i 执行加 1 操作,另一个对 i 执行减 1 操作。两个线程执行相同的次数。 显然,正常情况下,i 的仍然保持为 0。 #include <stdio.h> #include <windows.h> #define MaxCount 9000000 // 循环次数要很大,可多次尝试一些值 DWORD __stdcall fun1( LPVOID p1) { for( int j =0 ;j < MaxCount;j++){ i++; } return 0; } DWORD __stdcall fun2( LPVOID p1) { for( int j =0 ;j < MaxCount;j++){ i--; } return 0; } 3、观察两个线程执行后的情况,可以发觉最后 i 的值不一定是 0, 有时是很大的正数,有时是很大的负数,这就是多个线程在操作同一个变量 i时,未同步时带来的严重问题。 还应该了解,在多个线程操作共享的变量时,才需要考虑同步问题。 5、 给这两个线程加上同步代码,再来观察对 i 值的影响。步骤2的函数稍微改动即可: 加入的同步代码的两个线程,无论如何执行,i 的值总是 0 ,结果是正确的。 6、 主函数的写法 四、实验结果分析 抓图贴出实验结果,并分析,写出通过本次实验你们进程同步的认识,以及在实现同步时各个函数的作用. 本次实验是应用C#的运行环境来实现的,通过以上程序的运行,是我了解了线程与线程同步的现象和许多的知识。同时我还掌握了Windows中线程的操作和一种同步对象的使用,熟悉线程不同步时的现象及环境因素
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服