实验一和实验二.docx

上传人:b****8 文档编号:10917340 上传时间:2023-02-23 格式:DOCX 页数:13 大小:756.56KB
下载 相关 举报
实验一和实验二.docx_第1页
第1页 / 共13页
实验一和实验二.docx_第2页
第2页 / 共13页
实验一和实验二.docx_第3页
第3页 / 共13页
实验一和实验二.docx_第4页
第4页 / 共13页
实验一和实验二.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验一和实验二.docx

《实验一和实验二.docx》由会员分享,可在线阅读,更多相关《实验一和实验二.docx(13页珍藏版)》请在冰豆网上搜索。

实验一和实验二.docx

实验一和实验二

实验一熟悉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中线程的操作和一种同步对象的使用,熟悉线程不同步时的现象及环境因素

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1