实验一和实验二.docx
- 文档编号:7893641
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:12
- 大小:756.61KB
实验一和实验二.docx
《实验一和实验二.docx》由会员分享,可在线阅读,更多相关《实验一和实验二.docx(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
8
11
0:
00:
00.000
36
2
00000BA8
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、定义全局变量inti=0;初始值置为0。
2、创建两个线程,一个对i执行加1操作,另一个对i执行减1操作。
两个线程执行相同的次数。
显然,正常情况下,i的仍然保持为0。
#include
#include
#defineMaxCount9000000//循环次数要很大,可多次尝试一些值
DWORD__stdcallfun1(LPVOIDp1)
{
for(intj=0;j i++; } return0; } DWORD__stdcallfun2(LPVOIDp1) { for(intj=0;j i--; } return0; } 3、观察两个线程执行后的情况,可以发觉最后i的值不一定是0,有时是很大的正数,有时是很大的负数,这就是多个线程在操作同一个变量i时,未同步时带来的严重问题。 还应该了解,在多个线程操作共享的变量时,才需要考虑同步问题。 5、给这两个线程加上同步代码,再来观察对i值的影响。 步骤2的函数稍微改动即可: 加入的同步代码的两个线程,无论如何执行,i的值总是0,结果是正确的。 6、主函数的写法 四、实验结果分析 抓图贴出实验结果,并分析,写出通过本次实验你们进程同步的认识,以及在实现同步时各个函数的作用. 本次实验是应用C#的运行环境来实现的,通过以上程序的运行,是我了解了线程与线程同步的现象和许多的知识。 同时我还掌握了Windows中线程的操作和一种同步对象的使用,熟悉线程不同步时的现象及环境因素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)