操作系统原理实验安全性⑩输入/输出管理⑦调度⑤存储器管理⑥进程描述与控制③并发性④文件管理⑧联网⑨操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密实验3进程控制与描述通过在Windows任务管理器中对程序进程进行响应的管理操作和管理Linux进程的操作,熟悉操作系统进程管理的概念,观察操作系统运行的动态性能,获得包含多进程的应用程序编程经验•实验3.1Windows任务管理器的进程管理•实验3.2Windows2000编程•实验3.3Windows2000进程的“一生”•实验3.4管理Linux系统进程实验估计时间:60分钟,难度系数:3§3.1Windows任务管理器的进程管理Windows2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信息,也显示了最常用的度量进程性能的单位使用任务管理器•可以打开监视计算机性能的关键指示器,快速查看正在运行的程序的状态,或者终止已停止响应的程序•也可以使用多个参数评估正在运行的进程的活动,以及查看CPU和内存使用情况的图形和数据背景知识任务管理器中•“应用程序”选项卡:显示正在运行程序的状态,用户能够结束、切换或者启动程序•“进程”选项卡:显示正在运行的进程信息。例如,可以显示关于CPU和内存使用情况、页面错误、句柄计数以及许多其他参数的信息•“性能”选项卡:显示计算机动态性能,包括CPU和内存使用情况的图表,正在运行的句柄、线程和进程的总数,物理、核心和认可的内存总数(KB)等背景知识通过在Windows任务管理器中对程序进程进行响应的管理操作熟悉操作系统进程管理的概念学习观察操作系统运行的动态性能实验目的在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Windows2000Professional操作系统的计算机工具/准备工作使用任务管理器终止进程显示其他进程记数器更改正在运行的程序的优先级实验内容与步骤注意实验中所使用的是操作系统的哪个版本了解在当前机器中正在运行的应用程序在WindowsXP的任务管理器中,“进程”选项卡增加了一个“用户名”栏目,其中区分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用户的不同进程类别终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等;终止进程将结束它直接或间接创建的所有子进程实验提示实验估计时间:120分钟,难度系数:4§3.2Windows2000编程Windows2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序控制台应用程序可以创建GUI;GUI应用程序可以作为服务来运行;服务也可以向标准的输出流写入数据——不同类型应用程序间的惟一重要区别是其启动方法背景知识Windows2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。当系统运行时,Windows2000的服务通常要向系统用户提供所需功能服务应用程序类型需要ServiceMail()函数,由服务控制管理器(SCM)加以调用。SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。其本身负责使应用程序的行为像一个服务。通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限背景知识当令C++编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始执行进程的主线程。在进行某些设置后,进入开发者提供的main()、ServiceMain()或WinMain()函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳转到WindowsAPI函数,进行计算或向磁盘写入数据等Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据背景知识通过对Windows2000编程•进一步熟悉操作系统的基本概念•较好地理解Windows2000的结构实验目的在开始本实验之前,请回顾教科书的相关内容需要做以下准备•一台运行Windows2000Professional操作系统的计算机•计算机中需安装VisualC++6.0专业版或企业版工具/准备工作简单的控制台应用程序GUI应用程序进程对象实验内容与步骤在与本书配套提供的一张小光盘中,包含了在各个实验中用到的所有程序的源代码,这些源程序均通过调试运行,实验时可直接将文件输入也可以利用任何其他文本编辑器键入程序代码。如果这样(例如使用WORD来键入和编辑程序)则应该注意什么问题?实验提示实验估计时间:120分钟,难度系数:4§3.3Windows2000进程的“一生”Windows所创建的每个进程都从调用CreateProcess()API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象每一进程都以调用ExitProcess()或TerminateProcess()API函数终止。通常应用程序的框架负责调用ExitProcess()函数。对于C++运行库来说,这一调用发生在应用程序的main()函数返回之后背景知识创建进程•CreateProcess()调用的核心参数是可执行文件运行时的文件名及其命令行背景知识正在运行的进程•如果一个进程拥有至少一个执行线程,则为正在系统中运行的进程。通常,这种进程使用主线程来指示它的存在。当主线程结束时,调用ExitProcess()API函数,通知系统终止它所拥有的所有正在运行、准备运行或正在挂起的其他线程•当进程正在运行时,可以通过一系列的API函数来查看它的许多特性,其中少数特性也允许加以修改背景知识终止进程•所有进程都是以调用ExitProcess()或者TerminateProcess()函数结束的。但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭“职责”之后以正常的终止方式来调用前者的。而外部进程通常调用后者即突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为•TerminateProcess()API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。这是一种“野蛮”的终止进程的方式,但是有时却是需要的背景知识通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows2000进程的“一生”通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法实验目的在开始本实验之前,请回顾教科书的相关内容需要做以下准备:•一台运行Windows2000Professional操作系统的计算机•计算机中需安装VisualC++6.0专业版或企业版工具/准备工作创建进程正在运行的进程终止进程实验内容与步骤实验估计时间:90分钟,难度系数:4§3.4管理Linux系统进程在本实验中,我们将使用Linux命令工作,来标识和控制系统进程。Linux操作系统使用进程管理作业,进程由系统或者用户初始化。用户在Linux环境下执行的作业大多数都会启动一个进程。进程可以启动或者派生一个子进程,这样创建了一个进程层次结构或者进程树,类似于具有父子关系的文件系统层次结构可以使用ps(进程状态)命令工作,监控系统进程,使用kill命令终止不想要的进程背景知识回顾系统进程的概念,加深对Linux/UNIX进程管理的理解回顾ps命令和选项列出当前shell中的进程列出运行在系统中的所有进程根据命令名搜索特定的进程确定一个进程,终止它使用kill命令终止进程根据用户查找和终止进程根据命令名终止进程实验目的在开始本实验之前,请回顾教科书的相关内容您需要做以下准备•由指导老师分配的登录用户ID(如user2)和口令•一台运行RedHatLinux操作系统的计算机工具/准备工作登录进入GNOME访问命令行回顾系统进程概念回顾ps命令和信息列出系统中运行的所有进程根据命令名搜索特定的进程确定一个要终止的进程使用kill命令终止一个进程按照用户查找和终止一个进程实验内容与步骤