进程管理

进程基本概念

在未配置OS的系统中,程序是顺序执行方式;在多道程序环境下,则是并发执行。

进程的特征

通常的程序是不能并发执行的,为使程序(含数据)能独立运行,应为其配置一进程控制块,即PCB(Process Control Block),而由程序段、相关的数据段和PCB三部分便构成了进程实体。在早期的UNIX版本中,把这三部分也称为“进程映像”。所谓的进程创建和撤销,其实就是对PCB的操作。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

进程的状态

基本状态
  • 就绪状态:进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。
  • 执行状态:进程已获得CPU,其程序正在执行。
  • 阻塞状态:正在进行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态。引起进程阻塞的典型事件有请求I/O、申请缓冲空间等。

进程的三种基本状态转换

挂起

但有些系统由于终端用户的请求(终端用户希望能暂停程序)、父进程请求(挂起子进程,以便考察、修改、协调子进程)、负荷调节的需要(由于负荷较重,讲一些不重要的进程挂起)、操作系统的需要,从而引入挂起状态。

这样进程的状态就有:

  • 活动就绪:Readya,未挂起的就绪状态
  • 静止就绪:Readys,挂起的就绪状态
  • 活动阻塞:Blockeda,未挂起的阻塞状态
  • 静止阻塞:Blockeds,挂起的阻塞状态

具备挂起状态的进程状态图

创建和终止状态

PCB

PCB是进程存在的惟一标志。系统是通过PCB来实现对进程的控制。

PCB中主要包含以下信息:

  • 进程标识符
    • 内部标识符:系统创建,方便系统使用
    • 外部标识符:由创建者提供,往往由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父子进程标识,此外,还可设置用户标识,以指示拥有该进程的用户。
  • 处理机状态:处理机状态信息主要由处理机的各种寄存器中的内容组成的。这些寄存器包括通用寄存器、指令计数器、程序状态字(PSW)、用户栈指针
  • 进程调度信息:进程状态、进程优先级、进程调度所需的额外信息(比如:进程已等待CPU的时间总和)、事件(即阻塞原因)
  • 进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针

PCB的组织方式:

  • 链接方式:基于链接方式的队列
  • 索引方式:索引表

进程控制

进程的创建

引发的事件
  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

进程的终止

引发的事件
  • 正常结束
  • 异常结束
    • 越界错误
    • 保护错
    • 非法指令
    • 特权指令错
    • 运行超时
    • 等待超时
    • 算术运算错
    • I/O故障
  • 外界干预
    • 操作员或操作系统干预,比如死锁
    • 父进程请求
    • 父进程终止

进程的阻塞与唤醒

引发的事件
  • 请求系统服务
  • 启动某种操作
  • 新数据尚未到达
  • 无新工作可做
进程阻塞过程
进程唤醒过程

进程的挂起与激活

进程的挂起过程
进程的激活过程

进程同步

转载于:https://my.oschina.net/swustyc/blog/855927

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值