操作系统实验指导书-实验二进程管理

2018-12-08 20:55

实验二 进程管理

一、实验目的

(1) 加深对进程概念的理解,明确进程和程序的区别。 (2) 深入了解操作系统如何组织进程和创建进程。 (3) 进一步认识如何实现处理器调度。

二、实验预备知识

(1) 进程的概念 (2) PCB。

(3) 进程的组织方式。 (4) 进程的创建。 (5) 进程的调度。

三、实验内容

1. 观察Windows2000/XP中的进程和线程

熟悉Windows2000/XP中任务管理器的使用,通过任务管理器识别操作系统中的进程和线程的相关信息;掌握利用spy++.exe来察看Windows中各个任务的更详细信息。具体实验步骤如下: (1) 启动操作系统自带的任务管理器:

方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。如下图所示:

(2) 调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,

并完成下表(填满即可):

表一:统计进程的各项主要信息

序号 进程名称 1 2 3 4 5 6 7 8 进程ID 线程数量 占用内存 优先级 占CPU时间 虚拟内存

(3) 从桌面启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其

结束掉。再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、

csrss.exe、smss.exe,试着结束它们,观察到的反应是 , 原因是 。

(4) 在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打

开的所有窗口最小化,看看你的计算机系统起来什么样的变化 、得到的结论是 (说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“

”,切换到进程显示栏上,查

看进程“explorer.exe”的各项信息,并填写下表:

表二:统计线程的各项信息

进程:explorer.exe 中的各个线程 序号 1 2 3 4 5 进程ID 线程ID 基本优先级 当前优先级 CPU时间 上下文开关 6 7 8 9 10 11 12 13 14 6、注意某些线程前有“+”,如图所示:,说明二者

之间的差异是 。

2. 利用API在Windows下创建进程

学习使用在Windows 2000/XP中利用API创建进程的方法;学习了解创建进程函数CreateProcess及其特性;设计测试程序,通过在命令行中加载相应的测试程序生成的命令文件,去按照命令文件中指定的程序路径打开相应的程序去执行。

1)相关知识介绍

在创建一个线程时,Windows会做大量的工作---创建一个新的地址空间,为进程分配资源以及创建一个基线程。

CreateProcess函数的原型如下: CreateProcess(

LPCTSTR lpApplicationName, //pointer to name of executable moudle LPTSTR cmdLine,

//pointer to command line string

LPSECURITY_ATTRIBUTES lpProcessAttributes, //pointer to process security attributes

LPSECURITY_ATTRIBUTES lpThreadAttributes, //pointer to theread security attributes

BOOL bInheritHandle , //handle inheritance flag

DWORD dwCreationFlag,//various creation flags LPVOID lpEnviroment,//Enviroment variable

LPCTSTR lpCurrentDirectory, //Child's current directory LPSTARTUPINFO lpStartupInfo, //pointer to StartupInfo LPPROCESS_INFORMATION lpProcessInformation //pointer to PROCESS_INFORMATION )

创建进程的函数为CreateProcess,该函数比较复杂共有十个参数。 BOOL CreateProcess(

LPCTSTR lpApplicationName, //执行程序文件名 LPTSTR lpCommandLine, //参数行

LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全参数 LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全参数 BOOL bInheritHandles, // 继承标记 DWORD dwCreationFlags, // 创建标记 LPVOID lpEnvironment, // 环境变量

LPCTSTR lpCurrentDirectory, //运行该子进程的初始目录 LPSTARTUPINFO lpStartupInfo, //创建该子进程的相关参数 LPPROCESS_INFORMATION lpProcessInformation //创建后用于被创建子进程的信息

);

虽然有很多参数,不过在现阶段的实验级别,大多数参数只要用默认值即可。 lpApplicationName:为执行程序的文件名,如果在创建进程时要使用参数,则该参数可以为NULL。

lpCommandLine:为参数行,如果无参数可以为NULL,在有参数传递给进程时如下设置:lpApplicationName=NULL;lpCommandLine=para,例如lpCommandLine=\ c:\\\\autoexec.bat\。


操作系统实验指导书-实验二进程管理.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:版式设计_复习题_FXT263011_1212

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: