计算机操作系统实验指导书(下)
- 格式:doc
- 大小:232.50 KB
- 文档页数:53
《操作系统》课程实验指导书一.实验总学时(课外学时/课内学时):4/8 总学分:8/44必开实验个数: 4 选开实验个数:0二.适用专业:网络工程、计算机科学与技术2007级三.考核方式及办法:在规定实验时间内完成实验要求,依据实验过程及实验结果在实验现场逐一检查考核。
四.配套的实验教材或指导书:自编实验指导书五. 实验项目:实验1 SHELL命令的使用1、实验目的通过对LINUX的系统启动、注销、关闭和关机,帐号管理,文件系统的日常管理,文件系统的权限控制等常用基本命令的使用及与Windows下DOS SHELL的比较,了解现代操作系统SHELL的特点和功能。
了解编辑器vi的使用方法。
2、实验工具及环境LINUX系统网络环境或单机,Windows系统网络环境或单机。
3、实验计划学时2学时上机实际操作。
4、实验内容及操作步骤⑴系统启动和关闭①使用自己的账户登录UNIX系统,查看系统提示符确定自己使用的shell程序类型别。
◎开机后,系统自检启动后提示login:(输入:root↙)password:(输入:用户口令↙,root用户为redhat)◎查看/etc/passwd文件可以获得用户使用的shell#grep $LOGNAME /etc/passwd↙可能的显示为:user001:*:200:50::/usr/user001:/bin/sh请思考上述命令怎样得到了当前使用的shell类型的?使用下面的命令也可以查看当前shell:#echo $SHELL②注销和关机命令。
◎用户注销使用:$exit↙或$<ctrl>+<D>↙或$logout↙◎超级用户关机使用:#shutdown↙该命令将结束所有的进程,当执行此命令后系统提示“Safe to Power off or Press Any Keyto Reboot”时可以关闭电源或按任一键重启系统。
◎haltsys(halt),reboot只能由超级用户在单用户模式下使用。
《计算机操作系统》实验指导书(适合于计算机科学与技术专业)湖南工业大学计算机与通信学院二O一四年十月前言计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。
要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。
同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。
为了收到良好的实验效果,编写了这本实验指导书。
在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。
任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。
进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。
实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。
实验成绩考核:实验成绩占计算机操作系统课程总评成绩的20%。
指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。
操作系统实验指导书实验⼀操作系统⽤户接⼝实验⼀、实验⽬的熟悉操作系统的命令接⼝、图形⽤户接⼝和程序接⼝。
⼆、实验内容:1、使⽤操作系统的命令接⼝。
使⽤Windows常⽤命令:dir 、md、copy、date、help,显⽰这些命令的结果,并解释这些命令的作⽤。
图1-1 命令控制台图1-2 windows常⽤命令图1-3 windows常⽤命令图1-4 windows常⽤命令使⽤图1-5 windows常⽤命令使⽤2、使⽤操作系统的程序接⼝。
VB环境下:编制⼀⼩程序,使其可通过某个系统调⽤来获得os 提供的某种服务,如打开控制⾯板:Shell "rundll32.exe Shell32.dll,Control_RunDLL", 1VC环境下:⽤C语⾔编制⼀个⼩程序,使其可通过Localtime( )系统调⽤来获得OS提供的时间和⽇期。
3、使⽤操作系统的图形⽤户接⼝(略)。
三、思考:OS向⽤户提供的命令接⼝、图形⽤户接⼝和程序接⼝分别适⽤于哪些场合?实验⼆进程创建与撤消⼀、实验⽬的1、加深对进程概念的理解和进程创建与撤消算法;2、进⼀步认识并发执⾏的实质。
⼆、实验内容本实验完成如下三个层次的任务:(1)系统级—以普通⽤户⾝份认识windows的进程管理。
通过windows的“任务管理器”观察进程的状态,进⾏进程的创建、切换和撤销。
(2)语⾔级—以普通程序员⾝份认识⾼级语⾔VC++/Java/VB的进程创建与撤销⼯具。
(3)模拟级—以OS设计师⾝份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。
三、实验步骤1、windows的进程管理当前状态图2-1 windows任务管理器切换前图2-2 windows任务管理器切换后图2-3 windows任务管理器撤销图2-4 windows任务管理器2、VC++进程创建与撤销⼯具Windows所创建的每个进程都从调⽤CreateProcess() API函数开始,该函数的任务是在对象管理器⼦系统内初始化进程对象。
操作系统实验指导书及代码《操作系统》实验指导书目录实验环境 ................................................. 1 实验报告要求 ............................................. 1 实验一进程控制与处理机调度综合实验 ..................... 2 实验二存储管理与页面置换算法 (7)实验环境本课程实验硬件环境为PⅢ以上的处理器,带有显示器。
操作系统使用windows98以上操作系统,基本编程环境为Turbo C。
实验报告要求实验报告应包含以下内容:(1)实验题目(2)实验目的(3)实验环境(4)算法描述(5)程序源代码(6)出现的问题(7)对问题的解决方案(8)实验结果与结果分析(9)实验思考(学生对本次实验的收获的总结)实验一进程控制与处理机调度综合实验一、实验目的通过模拟进程控制方法及单处理机系统的进程调度,了解进程的结构,进程的创建与撤消,进程的组织及进程的状态及其转换,掌握进程调度策略。
二、实验学时4学时三、实验内容本实验为单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。
实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS(先来先服务),SPF(短进程优先),RR(时间片轮转法),优先级算法等,模拟进行进程调度。
每进行一次调度,都打印一次运行进程、就绪队列、以及各个进程的PCB,并能在进程完成后及时撤消该进程。
四、算法描述1 进程及进程的运行状态进程是现代计算机中的基本要素,是系统分配资源和调度的基本单位。
进程与程序不同,进程是系统中动态的实体,有它的创建、运行和撤销的过程。
PCB块是系统感知进程存在的唯一实体。
进程的创建必须首先创建进程的PCB块,而进程的运行也伴随着PCB块的变化,进城撤销也要同时撤销它的PCB块。
所以本实验的任务就是通过模拟调度进程的PCB块来调度进程。
Windows XP基本操作实验实验一Windows的基本操作和程序管理一、实验目的1.掌握Windows的基本操作和基础知识2.掌握Windows的程序管理3.掌握Windows下文字、符号的输入4.掌握桌面属性设置5.掌握常用附件的使用6.掌握常用压缩软件的基本操作二、实验内容任务1 任务栏和开始菜单的设置(1)设置任务栏为自动隐藏。
【提示】在任务栏空白处右击,在弹出的快捷菜单中选择“属性”命令,弹出对话框,在其中进行设置(也可以通过“控制面板”的“任务栏和开始菜单”启动该对话框)。
此外,在给对话框还可以进行是否“显示快速启动”等选项的设置。
(2)设置“微软拼音输入法2003”为默认输入法。
(3)显示或隐藏任务栏上的“中文输入法”。
【提示】选择“开始|控制面板|日期、时间、语言和区域设置|区域和语言设置”,弹出“区域和语言选项”对话框,选择“语言”选项卡,关其属性页面中单击【详细信息】按钮进入“文字服务和输入语言”对话框,通过“默认输入语言”下拉列表可选择某种已安装的输入法为默认输入法,如“微软拼音输入法2003”就实现了(2);通过【语言栏】按钮打开“语言栏设置”对话框,选定或取消“在桌面上显示语言栏”复选框,并单击【确定】按钮即可实现显示或隐藏“中文输入法”,再将其拖入任务栏就实现了(3)。
当然,当“桌面语言栏”呈显示时,可直接指向其上任一按钮右击,从弹出的快捷菜单中选择“设置”命令亦可进入“文字服务和输入语言”对话框,接下来操作同上。
说明:对于容器型对象,如任务栏或桌面等,其快捷菜单是指当鼠标指向它的任一空白处时右击弹出的菜单;而对于非容器型的对象,如我的电脑或某一确定的文件夹、文件等,其快捷菜单是指当鼠标指向对象本身时右击弹出的菜单。
(4)“开始”菜单的设置“开始”菜单有两种样式可供选择:经典样式和XP样式。
其设置可以在上述(1)所打开的“任务栏和开始菜单”对话框中的“开始菜单”选项卡中进行。
武汉纺织大学数学与计算机学院操作系统实验指导书——Windows 2000/XP目录实验一 Windows中的进程初识 (1)实验二 Windows中进程的创建、运行和终止 (6)实验三 Windows线程间的通信 (18)实验四 Windows的内存结构 (24)实验总体安排实验环境操作系统:Windows2000 / XP / Vista编程工具:Visual C++6.0实验一 Windows中的进程初识(一)Windows中的进程对象_获取当前运行进程的优先级操作系统将当前运行的应用程序看作是进程对象。
利用系统提供的惟一的称为句柄(HANDLE) 的号码,就可与进程对象交互。
这一号码只对当前进程有效。
本实验表示了一个简单的进程句柄的应用。
在系统中运行的任何进程都可调用GetCurrentProcess() API函数,此函数可返回标识进程本身的句柄。
然后就可在Windows需要该进程的有关情况时,利用这一句柄来提供。
步骤1:登录进入Windows Professional。
步骤2:运行Visual C++ 6.0,在“文件”菜单中依次点击“新建”-“工程”-“Win32Console Application”命令,输入工程名,例如“1_1”,进入下一个对话框,选择“An empty project”,点击“完成”按钮,将建立一个使用控制台的工程。
步骤3:在“文件”菜单中依次点击“新建”-“文件”-“C++Source File”,输入文件名,例如“1_1”,点击“确定”按钮,将建立一个名为“1_1.cpp”的源文件并添加到上面建立的工程里面。
步骤4:将清单1_1中的程序键入1_1.cpp中。
清单1_1 获得和使用进程的句柄// prochandle项目#include<windows.h>#include<iostream>// 确定自己的优先权的简单应用程序void main(){// 从当前过程中提取句柄HANDLE hProcessThis=::GetCurrentProcess();// 请求内核提供该过程所属的优先权类DWORD dwPriority=::GetPriorityClass(hProcessThis);// 发出消息,为用户描述该类std::cout<<"current process priority:";switch(dwPriority){case HIGH_PRIORITY_CLASS:std::cout<<"High";break;case NORMAL_PRIORITY_CLASS:std::cout<<"Normal";break;case IDLE_PRIORITY_CLASS:std::cout<<"Idle";break;case REALTIME_PRIORITY_CLASS:std::cout<<"Realtime";break;default:std::cout<<"<unknow>";break;}std::cout<<std::endl;}清单1_1中列出的是一种获得进程句柄的方法。
目录实验一 WINDOWS进程初识 (3)1、实验目的 (3)2、实验内容和步骤 (3)3、实验结论 (5)4、程序清单 (5)实验二进程管理 (6)背景知识 (6)1、实验目的 (12)2、实验内容和步骤 (12)3、实验结论 (16)4、程序清单................... 错误!未定义书签。
实验三进程同步的经典算法 .. (17)背景知识 (17)1、实验目的 (19)2、实验内容和步骤 (19)3、实验结论 (22)4、程序清单................... 错误!未定义书签。
实验四存储管理 (23)背景知识 (23)1、实验目的 (31)2、实验内容和步骤 (31)3、实验结论 (48)4、程序清单................... 错误!未定义书签。
实验五文件和设备管理 (49)背景知识 (49)1、实验目的 (53)2、实验内容与步骤............. 错误!未定义书签。
3、实验结论................... 错误!未定义书签。
实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application (控制台应用程序)。
(2)掌握WINDOWS API的使用方法。
(3)编写测试程序,理解用户态运行和核心态运行。
2、实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC++ 6.0。
步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。
创建一个新的控制台应用程序工程。
步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。
《操作系统原理》实验指导书羊四清编写适用专业:计算机科学与技术网络工程湖南人文科技学院计算机科学技术系2008年8 月前言操作系统是计算机的核心和灵魂.操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设的一门计算机专业课程。
操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课.本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。
操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。
作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。
操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。
基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。
学生应具有高级语言编程能力、具有数据结构等基础知识。
说明:本实验指导书所提供的源程序均已在VC6.0下调试运行过.目录实验一进程创建模拟 (1)实验二进程撤销模拟 (9)实验三P、V 原语的模拟实现 (10)实验四带优先级的时间片轮换的进程调度算法的实现 (16)实验五银行家算法模拟 (26)实验六连续动态内存管理模拟实现 (29)实验七请求页式存储管理中常用页面置换算法模拟 (31)实验八SCAN 磁盘调度模拟实现 (36)实验九UNIX基本操作 (37)实验一进程创建模拟实验学时:2实验类型:验证实验要求:必修一、实验目的1)理解进程创建相关理论;2)掌握进程创建方法;3)掌握进程相关数据结构。
二、实验内容本实验针对操作系统中进程创建相关理论进行实验.要求实验者输入实验指导书提供的代码并进行测试。
代码简化了进程创建的多个步骤和内容。
《操作系统》实验指导书德州学院计算机系实验一理解和认识操作系统的三种接口1.目的和要求MS-DOS和Windows是市场上普及率很高的操作系统,本实验的目的是让读者从操作系统理论的观点加深对现代操作操作系统的接口设计的理解。
2.实验内容①熟悉DOS的基本命令,包括md,cd,copy,move,del,deltree,type 等的使用a、当前目录下建立子目录MYTEMP和MYTEMP2,将当前目录设定为MYTEMP;b、在当前目录下创建新文件B.BAT,其内容为:清除屏幕内容,显示当前DOS版本;c、使用type命令显示B.BAT的内容,检查正确后,执行它;d、拷贝B.BAT到路径MYTEMP中;e、删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2;f、使用deltree命令删除MYTEMP②理解WINDOWS下的编程接口原理,了解WINAPI,利用WINAPI实现WINDOWS 下的打印。
a、登录进入Windowsb、在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”-“MicrosoftVisual C++ 6.0”命令,进入Visual C++ 窗口。
c、在File菜单单击New Workspace...命令,创建PrintApp.dsw项目文件。
d、在File菜单单击New C++ Soure file命令,创建新的原文件。
e、输入如实验运行结果中所示的源代码,调试、编译并运行。
f、观察执行结果,理解各个函数的功能。
3.实验环境Windows操作系统和Visual C++6.0专业版或企业版实验二复习用C语言编制程序一、实验内容选择一个计算机系统,熟悉该系统的操作命令,且掌握该计算机系统的使用方法。
二、实验目的配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解。
操作系统功能的模拟实现可以在计算机系统的终端上进行,也可以在一台微型计算机上进行。
实验一进程的创建于撤销本实验有两题,可选择其中的一题。
第一题进程的创建于撤销一、实验目的1.加深对进程概念的理解和进程创建与撤消算法;2.进一步认识并发执行的实质。
二、实验内容1.进程管理认识:通过windows “任务管理器”观察进程的状态,进行进程的创建、切换和撤销。
2.进程创建与撤销:通过系统调用编程实现进程的创建与撤销功能,并在屏幕上观察进程活动的结果。
三、背景知识1. 创建进程:CreateProcess() 调用的核心参数是可执行文件运行时的文件名及其命令行.表1-1详细地列出了每个参数的类型和名称。
表1-1 CreateProcess() 函数的参数可以指定第一个参数,即应用程序的名称,其中包括相对于当前进程的当前目录的全路径或者利用搜索方法找到的路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关。
然后是标志参数,用以在dwCreationFlags参数中指明系统应该给予新进程什么行为.经常使用的标志是CREATE_SUSPNDED,告诉主线程立刻暂停.当准备好时,应该使用ResumeThread() API来启动进程.另一个常用的标志是CREATE_NEW_CONSOLE,告诉新进程启动自己的控制台窗口,而不是利用父窗口.这一参数还允许设置进程的优先级,用以向系统指明,相对于系统中所有其他的活动进程来说,给此进程多少CPU时间。
接着是CreateProcess() 函数调用所需要的三个通常使用缺省值的参数.第一个参数是lpEnvironment参数,指明为新进程提供的环境;第二个参数是lpCurrentDirectory,可用于向主创进程发送与缺省目录不同的新进程使用的特殊的当前目录;第三个参数是STARTUPINFO数据结构所必需的,用于在必要时指明新应用程序的主窗口的外观。
CreateProcess() 的最后一个参数是用于新进程对象及其主线程的句柄和ID 的返回值缓冲区.以PROCESS_INFORMATION结构中返回的句柄调用CloseHandle() API函数是重要的,因为如果不将这些句柄关闭的话,有可能危及主创进程终止之前的任何未释放的资源。
2. 终止进程:所有进程都是以调用ExitProcess() 或者TerminateProcess()函数结束的.但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭“职责”之后以正常的终止方式来调用前者的.而外部进程通常调用后者即突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为。
TerminateProcess() API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码.这是一种“野蛮”的终止进程的方式,但是有时却是需要的。
如果开发人员确实有机会来设计“谋杀”(终止别的进程的进程) 和“受害”进程(被终止的进程) 时,应该创建一个进程间通讯的内核对象——如一个互斥程序——这样一来,“受害”进程只在等待或周期性地测试它是否应该终止。
四、程序示例#include <iostream>#include <windows.h>using namespace std;HANDLE m_hPro;void startprocess()//创建进程{STARTUPINFO si;//必备的参数设置int n=1;memset(&si,0,sizeof(STARTUPINFO));si.cb=sizeof(STARTUPINFO);si.dwFlags=STARTF_USESHOWWINDOW;si.wShowWindow=SW_SHOW;PROCESS_INFORMATION pi;if(!CreateProcess(NULL,"C://Program Files//Internet Explorer//iexplore.exe",NULL,NULL,false,0,NULL,NULL,&si,&pi)) {cout <<"Create Process Fail!" <<endl;exit(1);}else{cout <<"Create Process Success!" <<endl;m_hPro=pi.hProcess;}}void stop_process(){if(m_hPro){if(!TerminateProcess(m_hPro,0)){//终止出现错误,显示错误信息LPVOID lpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR) &lpMsgBuf,0,NULL );}else{cout<<"TerminateProcess sucess"<<endl;}m_hPro=NULL;}else{ cout<<"null m_hPro"<<endl;}}int main(){while(1){cout<<"请输入序号"<<endl;cout<<"1 创建进程 2 终止进程 3退出"<<endl;int i;cin>>i;switch(i){case 1:startprocess();break;case 2:stop_process();break;case 3:exit(1);}}return(0);}第二题Windows xp进程的“一生”一、背景知识Windows所创建的每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。
每一进程都以调用ExitProcess() 或TerminateProcess() API函数终止。
通常应用程序的框架负责调用ExitProcess() 函数。
对于C++ 运行库来说,这一调用发生在应用程序的main() 函数返回之后。
1. 创建进程CreateProcess() 调用的核心参数是可执行文件运行时的文件名及其命令行。
表 1-2详细地列出了每个参数的类型和名称。
目录的全路径或者利用搜索方法找到的路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关。
然后是标志参数,用以在dwCreationFlags参数中指明系统应该给予新进程什么行为。
经常使用的标志是CREATE_SUSPNDED,告诉主线程立刻暂停。
当准备好时,应该使用ResumeThread() API来启动进程。
另一个常用的标志是CREATE_NEW_CONSOLE,告诉新进程启动自己的控制台窗口,而不是利用父窗口。
这一参数还允许设置进程的优先级,用以向系统指明,相对于系统中所有其他的活动进程来说,给此进程多少CPU时间。
接着是CreateProcess() 函数调用所需要的三个通常使用缺省值的参数。
第一个参数是lpEnvironment参数,指明为新进程提供的环境;第二个参数是lpCurrentDirectory,可用于向主创进程发送与缺省目录不同的新进程使用的特殊的当前目录;第三个参数是STARTUPINFO数据结构所必需的,用于在必要时指明新应用程序的主窗口的外观。
CreateProcess() 的最后一个参数是用于新进程对象及其主线程的句柄和ID 的返回值缓冲区。
以PROCESS_INFORMATION结构中返回的句柄调用CloseHandle() API函数是重要的,因为如果不将这些句柄关闭的话,有可能危及主创进程终止之前的任何未释放的资源。
2. 正在运行的进程如果一个进程拥有至少一个执行线程,则为正在系统中运行的进程。
通常,这种进程使用主线程来指示它的存在。
当主线程结束时,调用ExitProcess() API 函数,通知系统终止它所拥有的所有正在运行、准备运行或正在挂起的其他线程。
当进程正在运行时,可以查看它的许多特性,其中少数特性也允许加以修改。
首先可查看的进程特性是系统进程标识符(PID) ,可利用GetCurrentProcessId() API函数来查看,与GetCurrentProcess() 相似,对该函数的调用不能失败,但返回的PID在整个系统中都可使用。
其他的可显示当前进程信息的API函数还有GetStartupInfo()和GetProcessShutdownParameters() ,可给出进程存活期内的配置详情。
通常,一个进程需要它的运行期环境的信息。
例如API函数GetModuleFileName() 和GetCommandLine() ,可以给出用在CreateProcess() 中的参数以启动应用程序。
在创建应用程序时可使用的另一个API函数是IsDebuggerPresent() 。
可利用API函数GetGuiResources() 来查看进程的GUI资源。
此函数既可返回指定进程中的打开的GUI对象的数目,也可返回指定进程中打开的USER对象的数目。
进程的其他性能信息可通过GetProcessIoCounters()、GetProcessPriorityBoost() 、GetProcessTimes() 和GetProcessWorkingSetSize() API 得到。
以上这几个API函数都只需要具有PROCESS_QUERY_INFORMATION 访问权限的指向所感兴趣进程的句柄。
另一个可用于进程信息查询的API函数是GetProcessVersion() 。
此函数只需感兴趣进程的PID (进程标识号) 。
本实验程序清单1-6中列出了这一API函数与GetVersionEx() 的共同作用,可确定运行进程的系统的版本号。
3. 终止进程所有进程都是以调用ExitProcess() 或者TerminateProcess() 函数结束的。
但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭―职责‖之后以正常的终止方式来调用前者的。