`
xieyaxiong
  • 浏览: 39032 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

进程描述和控制

 
阅读更多

 

 

 

进程描述和控制

 

 

 

什么是进程

有以下几个定义:

1:一个正在执行中的程序。

2:一个正在计算机上执行的程序实例。

3:能分配给处理器并由处理器执行的实体。

4:一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。

 

也可以把进程视为由一组元素组成的实体,进程的两个基本元素是程序代码和代码相关联的数据集。假设处理器开始执行这个程序代码,且我们把这个执行实体称为进程。在进程执行时,任意给定一个时间,进程都可以唯一的表征为以下元素:

1:标识符:跟这个进程相关的唯一标识符,用来区别其他进程。

2:状态:如果进程正在执行,那么进程处于运行态。

3:优先级:相对于其他进程的优先级。

4:程序计数器:程序中即将被执行的下一条指令的地址。

5:内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针。

6:上下文数据:进程执行时处理器的寄存器中的数据。

7IO状态信息:包括显示的IO请求、分配给进程的IO设备和被进程使用的文件列表等。

8:记帐信息:可能包括处理器时间总和、使用的时钟总和、时间限制、记帐等。

 

前术的列表信息被存放在一个称为进程控制块的数据结构中,该控制块由操作系统创建和管理。比较有意义的一点是,进程控制块抱住了充分的信息,这样就可以中断一个进程的执行,并且在后来恢复执行进程时就好像进程未被中断过一样。进程控制块是操作系统能够支持多进程和提供多重处理技术的关键工具。

因此,可以说进程是由程序代码和相关数据还有进程控制块组成的。对于一个单处理器计算机,在任何时间最多只有一个进程在执行,正在运行的这个进程的状态为运行态。

 

 

 

被挂起的进程

交换的需要

三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。许多实际的操作系统都是按照这样的三种状态进行具体构造的。

但是,可以证明往模型中增加其他状态也是合理的。为了说明加入新状态的好处,考虑一个没有使用虚拟内存的系统,每个被执行的进程必须完全载入内存,因此,所有队列中的所有进程必须驻留内存中。内存中保存有多个进程,当一个进程正在等待时,处理器可以转移到另一个进程,但是处理器比IO要快得多,以至于内存中所有的进程都在等待IO的情况很常见(内存不足,进程按需加载,运行时加载),因此,即使是多道程序设计,大多数时候处理器仍然可能处于空闲状态。

一种解决方法是内存可以被扩充以适应更多的进程,但是这种方法有两个缺陷。首先是内存的价格问题,当内存大小增加时,价格也会随之增加;再者,程序对内存空间的增长速度比内存价格下降的速度快。因此,更大的内存往往导致更大的进程 ,而不是更多的进程。

另一种解决方案是交换,包括把内存中某个进程的一部分或全部移到磁盘中。当内存中没有

处于就绪状态的进程时,操作系统就把被阻塞的进程换出到磁盘中的“挂起队列”,即暂时保存从内存中被“驱逐”出来的进程队列,或者说是被挂起的进程队列 。操作系统在此之后取出挂起队列中的另一个进程,或者接受一个新进程的请求,将其纳入内存运行。

“交换”是一个IO操作,因而也可能使问题更加恶化。但是由于磁盘IO一般是系统中最快的IO(相对于磁带或打印机IO),所以交换通常会提高性能。

为使用前面描述的交换,在进程的行为模型中必须增加另一个状态:挂起态。

当内存中的所有进程都处于阻塞态时,操作系统可以把其中的一个进程置于挂起态,并将它转移到磁盘中,内存中释放的空间可被调入另一个进程使用。

 

 

 

 

2.3进程描述

操作系统控制计算机系统内部的事件,它为处理器执行进程而进行调度和分派,给进程分配资源,并响应用户程序的基本服务请求。因此,我们可以把操作系统视为管理系统资源的实体。

操作系统为了控制进程和管理资源需要哪些信息?

 

3.3.1操作系统的控制结构

操作系统为了管理进程和资源,必须掌握关于每个进程和资源当前状态的信息。普遍使用的方法是:操作系统构造并维护它所管理的每个实体的信息表。操作系统维护着四种不同类型的表:内存、IO、文件和进程。尽管不同的操作系统中的实现细节不同,但基本上所有操作系统维护的信息都可以分为这四类。

 

1:内存表:用于跟踪内(实)存和外存(虚拟内存)。内存的某些部分为操作系统保留,剩余部分是进程可以使用的,保存在外存中的进程使用某种类型的虚拟内存或简单的交换机制。内存表必须包括以下信息:

1:分配给进程的内存。

2:分配给进程的外存。

3:内存块或虚拟内存块的任何保护属性,如哪些进程可以访问某些共享内存区域。

4:管理虚拟内存所需要的任何信息。

 

2IO表:管理计算机系统中的IO设备和通道。在任何给定的时刻,一个IO设备或者是可用的,或者已分配给某个特定的进程,如果正在进行的IO操作,则操作系统需要知道IO操作的状态和作为IO传送的源与目标目标的内存单元。

 

3:文件表:这些表提供关于文件是否存在、文件在外存中的位置、当前状态和其他属性的信息。大部分信息(不是全部信息)可能由文件管理系统维护和使用。在这种情况下,操作系统只有少许或者没有关于文件的信息;在其他操作系统中,很多文件管理的细节由操作系统自己管理。

 

4:进程表:操作系统维护的这几种不同的表必须以某种方式链接起来或交叉引用。内存、IO和文件是代表进程而被管理的,因此进程表中必须有对这些资源的直接或间接引用。文件表中文件可以通过IO设备访问,有时它们也位于内存中或虚拟内存中。这些表自身必须可以被操作系统访问到,因此它们受制于内存管理。

 

 

3.3.3进程控制结构

操作系统在管理和控制进程时,首先必须知道进程的位置,然后,它必须知道在管理时所必需的进程属性(如进程ID、进程状态)。

1:进程位置

在处理进程定位问题和进程属性问题之前,首先需要解决一个更基本的问题:进程的物理表示是什么?进程最少必须包括一个或一组被执行的程序,与这些程序相关联的是局部变量、全局变量和任何已定义常量的数据单元。因此,一个进程至少包括足够的内存空间,以保存该进程的程序和数据;此外,程序的执行通常涉及用于跟踪过程调用和过程参数传递的栈。最后,与每个进程相关联的还有操作系统用于控制进程的许多属性,通常,属性的集合称为进程控制块。程序、数据、栈和属性的集合称为进程映像。

 

 

3.4进程控制

需要区分通常与操作系统相关联的及与用户程序相关联的处理器执行模式。大多数处理器至少支持两种执行模式。某些指令只能在特权态下运行,包括读取或改变诸如程序状态字之类控制寄存器的指令、原始IO指令和与内存管理相关的指令。另外,有部分内存区域仅在特权态下可以被访问到。

使用两种模式的原因是很显然的,它可以保护操作系统和重要的操作系统表(如进程控制块)不受用户程序的干涉。在内核态下,软件具有对处理器所有指令、寄存器和内存的控制能力,这一级的控制对用户程序不是必需的,并且为了安全起见也不是用户程序可访问的。

 

 

 

 

 

3.5操作系统的执行

关于操作系统的两个特殊事实:

1:操作系统与普通的计算机软件以同样的方式运行,也就是说,它也是由处理器执行的一个程序。

2:操作系统经常释放控制权,并且依赖于处理器恢复控制权。

如果操作系统仅仅是一组程序,并且像其他程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如何控制它?这些有趣的问题列出了大量的设计方法

 

1:无进程的内核

2:在用户进程中执行。

3:基于进程的操作系统。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics