实验1 进程管理与控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一进程管理与控制
一、实验目的
进程管理是操作系统多用户与多任务管理的基本重要手段,用户作业与任务进入内存后采用进程模式进行管理,利用不同进程对资源的不同要求实现进程的并发管理是提高系统效率的有效途径。本实验的目的是要求学生通过实验全面了解进程管理与控制的相关内容,并通过Windows 2000系统中管理控制工具观察进程,分析系统性能。
二、实验要求
1、应用操作系统原理模拟程序进一步体会进程管理与控制的相关原理,如PCB、进程基本
状态及其状态转换、进程控制、进程互斥与进程同步。
2、启动一个或多个应用程序,通过Windows 2000系统任务管理器,观看程序、进程和性
能标签,并完成实验记录。
三、实验过程
1、启动操作系统原理模拟程序系统,选择进程管理与控制模块,创建一组进程,完成进程
调度、进程阻塞、唤醒、撤销等控制任务。
2、打开进程互斥模块,体会进程互斥原理及信号量机制。
3、打开进程同步模块,体会进程同步原理。
4、关闭操作系统原理模拟程序系统。
5、启动一个或多个应用程序,鼠标右键点击任务栏,在快捷菜单中选择任务管理器,观察
程序、进程和性能标签。核心内存是OS占有的内存,认可内存,是分给程序和系统的内存,物理内存是实际的内存条的内存。
6、选择任务管理器查看菜单(在进程标签选择后),单击“选择列”进行添加进程计数器操
作。
页面错误是指该进程引用了当前不在系统物理内存中的内存地址。这将引起系统读取硬盘上的虚拟内存到物理内存,所谓换页。
7、启动控制面板,点击“管理工具”图标,选择“性能”,启动系统性能监视器。
8、在属性中为“PROCESS”和“THREAD”对象添加相应的计数器,监视进程工作状态。
9、通过Windows 2000系统帮助文件,查找相关内容,并完成实验记录。
四、实验记录
五、实验练习
1、选择任务管理器进程标签,添加“页面错误增量”列,并启动应用程序进行观察。
2、什么是句柄?有什么用途?
句柄是整个Windows编程的基础,一个句柄是指使用一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中的不同对象和同类对象中两不同的实例。句柄不是一个指针,程序不能利用它。句柄来直接阅读文件中的信,如果句柄不用在I/O文件中,它是毫无用途的。句柄是Windows用来标志应用程序中建立或是使用的唯一整数,Windows使用了大量的句柄来标志很多对象。
3、线程与进程有什么区别?
线程和进程的主要区别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃以后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死亡,所以多个进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些,但对于一些要求同时进行并且又要共享某些变量的操作,只能用线程。
六、实验小结
通过这次实验,我理解了什么是句柄,及其用途,还知道了线程与进程的区别在于它们是不同的操作系统资源管理方式,懂得这些知识使我受益非浅。
附: Windows NT中的进程知识
一、进程
1、定义:Windows NT中进程被定义为表示操作系统所要做的工作,是操作系统用于组织其必须完成的诸项工作的一种手段。
2、NT中的进程由以下四个部分组成:
(1)一个可执行的程序:它定义了初始代码和数据;
(2)一个私用地址空间:即进程的虚拟地址空间;
(3)系统资源:由操作系统分给进程,并且是进程执行时所必须的一个资源的集合;
(4)至少有一个执行线程。
二、线程
1、定义:进程内的一个执行单元;进程内的一个可调度实体。
2、线程的组成:
(1)一个唯一标识符,称之为客户ID;
(2)描述处理器状态的一组状态寄存器的内容(相当于“老程序状态字”的意思;
(3)两个栈,分别用于用户态和核心态下执行时使用;
(4)一个私用存储器。
为什么NT要推出线程来实现并行性呢?问题是因为用进程来实现并行性并不总是有效的。以UNIX为例,当一个进程创建一个子进程时,系统必须将父进程地址空间的所有内容拷贝到新进程的地址空间中去。这对大地址空间来说,这操作很费时,更何况两进程还需要建立共享数据。如果用多线程来实现并行性要有利得多,因为这些线程共享进程的同一地址空间、对象句柄以及其它资源,所以没有用进程来实现并行性所存在的缺点,此外还有如下的优点:(1)通过线程可方便而有效地实现并行性,进程可创建多个线程来执行同程序的不同部分,如一个编译进程可创建预处理线程和编译线程这样两线程。
(2)创建线程比创建进程要快,而且只需很少的开销,因为所有线程除栈和寄存器内容外共享同一主存,不需特殊的数据传送机制(如发消息),一个线程只需简单地把输出写入主存,另一线程可以读出作为输入。而且进程的资源线程都可用。
(3)创建多线程进程,对多个用户同时提出服务请求时的回答也十分有利,因为服务器程序只被装入主存一次,就可使每个客户的服务请求分别由一个独立的服务器线程,通过执行适当的服务器功能,并行地为客户进行处理。
NT的线程有些什么特点呢?
(1)线程也是作为对象来实现。
(2)每个NT进程创建时只有一个线程,需要时这个线程可以创建其它线程;
(3)线程调用系统服务是采用陷阱(trap)方式。
线程对象类
(4)线程是调度的基本单位,线程之间竞争处理机,为防止一个线程独占处理机,采用可抢占的优先级调度算法。
(5)线程在它的生命周期间有六种状态的变化,每一时刻处于六种状态之一。
(6)由于NT的调度程序只在线程(而不是进程)中挑选合适的线程到处理机上运行,所以每个进程在可以执行前,至少必须调度一个线程,NT进程只有在它的一个线程被调度执行才被激活。
(7)用户态进程的线程主要在用户态处理器模式下运行。
三、进程和线程的关系
(1)线程是进程的一个组成部分;
(2)进程的多个线程都在进程的地址空间活动;
(3) 资源分配的对象是进程,换句话说,资源是分给进程的,而不是分给线程的,并系统还为分给进程的资源规定配额;
(4)调度的基本单位是线程。也就是说,处理机是分给线程的,真正在处理机上执行的是线程(从某种意义上说,进程不干活,它只通过线程工作),线程在执行中需要资源时,系统分给它,但从进程的配额中扣除;
(5)线程在执行过程中,需要协作同步,在不同进程的线程间同步要用消息通信办法。
四、线程的六个状态
(1)就绪状态;(2)备用状态;(3)运行状态;(4)等待状态;(5)转换状态;(6)终止状态。