操作系统之进程

来源:互联网 发布:淘宝联盟返现到哪里 编辑:程序博客网 时间:2024/04/29 18:40

进程的引入

在多道程序环境下,程序可以并发执行,一个程序的任意两条指令之间都可能发生随机事件而引发程序切换。因而,每个程序的执行都可能不是连续的而是走走停停的。系统需要一个能够描述程序动态执行的单位,于是就引入了进程。

进程的生命周期

同静态的程序相比较,进程依赖于处理器和主存储器资源, 具有动态性和暂时性。进程随着一个程序模块进入主存储器并获得一个数据块和一个进程 
控制块而创建,因等待某个事件发生或资源得不到满足而暂停执行,随着运行的结束退出主存储器而消亡。

“可再入”程序的概念

所谓“可再入”程序是指能被多个程序同时调用的程序。另一种称“可再入”程序由于它被调用过程中具有自身修改,在调用它的程序退出以前是不允许其他程序来调用它的。

进程的特点

  • 结构性:进程包含了数据集合和运行于其上的程序。为了描述和记录进程的动态变化过程使其能正确运行,还需配置一个进程控制块,所以每个进程至少有三要素组成:程序块、数据块和进程控制块。 
  • 共享性同一程序同时运行于不同数据集合上时,构成不同的进程。或者说多个不同的进程可以共享相同的程序,所以进程和程序不是一 一对的。
  • 动态性:进程是程序在数据集合上的一次执行过程,是动态概念。同时,它还有生命周期,由创建而产生,由调度而执行,由撤销而消亡。而程序是一组有序指令序列,是静态概念,所以,程序作为一种系统资源是永久存在的。 
  • 独立性:进程既是系统中资源分配和保护的基本单位,也是系统调度的独立单位(单线程进程)。凡是未建立进程的程序,都不能作为独立单位参与运行。通常,每个进程都可以各自独立的速度在CPU 上推进。 
  • 制约性:并发进程之间存在着制约关系,进程在进行的关键点上需要相互等待或互通消息,以保证程序执行的可再现性和计算结果的惟一性。 
  • 并发性:进程可以并发地执行,进程的并发性能改进资源利用率和提高系统效率。对于一个单处理器的系统来说,m个进程 P1,P2,P3…Pm, 是轮流占用处理器并发地执行。例 如,可能是这样进行的: P1进程执行了N1条指令后让出处理器给P2,P2执行了 N2条指令后让出处理器给 P3,…Pm执行了Nm 条指令后让出处理器给P1,…。因此,进程的执行是 可以被打断的,或者说,进程执行完一条指令后在执行下一条指令前,可能被迫让出处理器, 由其他若干个进程执行若干条指令后才能再次获得处理器而执行。

进程的状态和转换

1)三态模型
  • 运行(running )态:进程占有处理器正在运行。 
  • 就绪( ready)态:进程具备运行条件,等待系统分配处理器以便运行。 
  • 等待( wait)态:又称阻塞(blocked )态或睡眠(sleep )态,指进程不具备运行条件,正 在等待某个事件的完成。
通常,一个进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当 处于上述三种状态之一。


2)五态模型
相比三态模型,多了新建态(new)、终止态(exit)
进程的创建:当操作系统为一个程序构造一 个进程控制块并分配地址空间之后,就创建了一个进程。


3)七态模型
由于进程的不断创建,系统的资源特别如内存资源已经不能满足进程运行的要求。这个时候就必须把某些进程挂起( suspend),对换到磁盘镜像区中(即从主内存中移出,换到辅存储器上),释放它所占有的某些资源,暂时不参与低级调度,起到平滑系统操作负荷的目的。

一个挂起进程等同于不在主存的进程,因此,挂起的进程将不参与低级调度直到它们被对换进主存。

挂起和等待的区别:挂起进程不在主存中,等待进程依然在主存中。

相比五态模型,多了2种状态:
 挂起就绪态:进程具备运行条件,但目前在辅存储器上。只有当它对换到主存中才能被调度执行。
 挂起等待态:进程正在等待一个事件发生,且目前在辅存储器上。当事件发生结束,进程将变为挂起就绪态。



进程控制块

每一个进程都有一个也只有一个进程控制块,进程控制块是操作系统用于记录和刻画进程状态及有关信息的数据结构,也是操作系统掌握进程的惟一 资料结构,是操作系统控制和管理进程的主要依据。它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。

进程控制块中有一种信息叫:现场信息
用于保留一个进程在运行时存放在处理器现场中的各种信息,任何一个进程在让出处理器时必须把此时的处理器现场信息保存到进程控制块中,而当该进程重新恢复运行时就可以根据进程控制块中的现场信息来恢复处理器现场。



0 0