Linux 进程管理(一)

1.1 进程

        进程是现代操作系统的核心概念,它用来描述程序的执行过程,是实现多任务操作系统的基础。进程管理的功能是跟踪和控制所有进程的活动,为它们分配和调度CPU,协调进程的运行步调。进程管理的目标是最大限度地发挥CPU的处理能力,提高进程的运行效率。

1.1.1 程序的顺序执行和并发执行

        程序的顺序执行:程序各操作步骤之间是依序执行的,程序与程序之间是串行执行的。它的特点是:顺序性、封闭性、可再现性。总体来说,这种执行方式简单,便于调试,但运行时独占系统全部资源,因而利用率低。DOS程序即是采用这种方式。
        程序的并发执行:若干个程序或程序段同时运行,它们在执行时间上是重叠的。它的特点是:间断性、非封闭性、不可再现性。可以看出,并发执行程序可以提高系统的资源利用率和吞吐量,但程序的行为变得复杂和不确定。
        并发执行的潜在问题:由于并发程序执行时会导致执行结果的不可再现性,这是多道程序系统必须解决的问题。具体例子可参见(停车场使用程序控制电子公告牌来显示空闲车位数)。根本原因在于,当多个程序在访问共享资源时的操作是交叉执行的,容易造成对资源的实行错误。

1.1.2 进程的概念

        多道程序并发显著提高了系统的效率,但同时也使程序的执行过程变得复杂与不确定。为了更好地研究、描述和控制并发程序的执行过程,操作系统引入了进程的概念,它对理解操作系统的并发性有着极为重要的意义。

  1. 进程 

       进程是一个可并发执行的程序在一个数据集上的一次运行。简单来说,进程是程序的一次运行。

       进程和程序既相互关联又有区别。可以类比胶片和电影的关系。具体来说,程序是进程的组成部分(另有数据集),是进程的执行文本,而进程是程序的执行过程;程序是静态的,进程是动态地产生、发展和消失;一个进程可以顺序执行多个程序,一个程序也可以对应多个进程。

     2.  进程的特性

      进程有几个基本特性:
动态性:进程由“创建”而产生,“撤销”而消亡,因”调度“而运行,因”等待“而停顿。进程从创建到消失的全过程称为进程的生命周期。
并发性:同一时间段有多个进程在系统中运行。宏观上并发,微观上交替。
独立性:进程是独立运行的基本单位,是系统分配资源和调度管理的基本对象。因此,进程独立拥有必要资源,独立占有CPU运行。
异步性:每个进程独立运行,进程之间由系统协调调度。 

     3.  进程的基本状态

      进程个数一般多于CPU,故须轮流占用CPU。通常采用状态刻画进程各个时期的动态行为特征。它有3个基本状态:

就绪态:进程已分配得到除CPU外所需的所有资源,一旦获得CPU可以立马执行。通常会有多个进程处于此状态,构成就绪队列。
运行态:进程正在运行,在单核系统中,任何时刻只有一个进程处于此态。
等待态:进程因资源不足,或触发事件未发生而暂停。通常有多个进程处于此态,按等待事件分类,排成多个等待队列。

     4.  进程状态的转换

      进程诞生之初是处于就绪态,在其生命周期之间进行状态转移,最后在运行状态结束。引发状态转换的原因如下:


运行态—>等待态:因等待某事件无法执行,例如申请某资源,恰好被占用。
等待态—>就绪态:所需资源得到满足。
运行态—>就绪态:进程时间片用完,或被高优先级进程打断。
就绪态—>运行态:被进程调度程序选中,掌控CPU。

1.1.3  进程控制块

        进程由程序、数据和进程控制块3个基本部分组成。程序是进程执行的可执行代码,数据是进程处理的对象,进程控制快记录进程的各种信息。它们存在于内存,随进程发展而变化。在某个时刻的进程的执行内容(代码和数据)称为进程映象。进程控制块是为管理进程而设置的一个数据结构,系统通过PCB来感知进程,对进城实施控制和调度。PCB主要包括4方面内容:
  • 进程描述信息:进程的标识信息和身份特征,记录进程的权限,及和其它进程的关系,最重要的是进程标识号PID。
  • 进程控制和调度信息:进程的当前状态、调度策略、优先级、时间片等信息。
  • 资源信息:系统分配给进程的资源,包括地址空间、要访问的文件和设备,以及处理的信号等。
  • 现场信息:也称进程上下文,包括CPU各寄存器的值,刻画了进程的运行状态和环境。

1.1.4  Linux系统中的进程

        在Linux系统中,进程也称为任务。进程状态有多种,其中有5中基本状态:运行、就绪、可中断睡眠、不可中断睡眠、暂停和僵死。具体可参见下图

                                                                                                                   
         Linux系统采用task_struct结构来记录进程的信息,称为进程描述符,也即PCB,具体可参见 Linux进程管理之task_struct结构体(上)Linux进程管理之task_struct结构体(下)
         查看进程的信息命令是ps(process status)命令,几乎可查看进程PCB的所有信息。

1.1.5 小结

        本节总结了进程的基本概念,特点,基本状态及它们之间的相互转换。此外,还有进程描述符的结构,需要仔细研究一下。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值