进程

概念

计算机出现时,"程序"是广泛的一个概念在多道程序涉及之前,程序是顺序执行的

程序在处理器上执行所发生的活动称为进程

进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行支援分配和调度的基本单位

进程的的生成和终止

进程的创建

  • 系统初始化:系统运行也是一种进程执行
  • 正在运行的程序执行了创建按进程的系统调用
  • 用户请求创建一个新进程
  • 一个批处理作业的初始化

进程的终止

  • 正常退出(自愿的):工作完成
  • 出错退出 (自愿的):进程发现严重错误
  • 严重错误(非自愿):进程引起错误
  • 被其他进程杀死(非自愿):如linux系统执行kill命令杀死其他系统程序

进程的层次

*(windows中没有该层次关系),但是Windows中有句柄能够控制子进程,但是句柄能交给其他进程,所以没有层级关系

  • 一个进程只有一个父进程(一个进程创建另一个进程),但是可以有多个子进程
  • unix下面能够创建的进程和他的子进程称为进程组,其中当其中用户发一个信号到该用户组,每个用户组的进程都能捕获信号,忽略信号或者采取默认动作,都会该信号杀死,个人认为不叫杀死

程序顺序执行的特点

  • 顺序性:处理器严格按照程序所规定的顺序执行,每个炒作必须在下一个操作之前开始结束(线性)

  • 封闭性:一个程序执行,不受其他程序的干扰

  • 可在线性:只要初值一样,运行出现的结果也就一样

并发程序的执行

  • 间断性:程序并发执行时,共享资源,致使程序相互制约,导致程序走走停停,
  • 失去封闭性: 受其他程序的影响
  • 不可再现性:因为并发,和受其他影响,每次执行的顺序不一定相同
    因为程序是静态,而并发已经是动态,不能很好的描述,所有选择引入进程

进程和程序的联系与区别

  • 程序是指令的有序集合,其本身没有任何运行的含有,为静态概念,而进程是程序在处理器上执行的过程,为动态概念

  • 程序可长期存在,经常是暂时存在

  • 进程和程序组成不同:进程是程序,数据,进程控制块组成

进程状态

三态

进程三态

  • 运行态:

    • 占用cpu
  • 就绪态:

    • 所有准备就绪,就等系统分配处理器
  • 阻塞态:

    • 等待某件事情发生,及时给其处理器也不能运行(阻塞态只能先转就绪态)如等待输入输入
  • 运行态→阻塞态:等待使用资源;如等待外设传输;等待人工干预。

  • 等待态→就绪态:资源得到满足;如外设传输结束;人工干预完成。

  • 运行态→就绪态:运行时间片到;出现有更高优先权进程。

  • 就绪态—→运行态:CPU 空闲时选择一个就绪进程。

运行态有cpu,就绪是有条件但是未分配cpu,
阻塞还在等待条件

五态

进程五态

  • 新建态:进程被创建时的状态,但是没有真正进入到就绪态
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。终止一个进程需要两个步骤:1.先对操作系统或相关的进程进行善后处理(如抽取信息)。2.然后回收占用的资源并被系统删除。

七态挂起

操作系统七态

  • 等待态→挂起等待态:操作系统根据当前资源状况和性能要求,可以决定把等待态进程对换出去成为挂起等待态。
  • 挂起等待态→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态
  • 挂起就绪态→就绪态:当内存中没有就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级,系统将把挂起就绪态进程转换成就绪态。
  • 就绪态→挂起就绪态:操作系统根据当前资源状况和性能要求,也可以决定把就绪态进程对换出去成为挂起就绪态。
  • 挂起等待态→等待态:当一个进程等待一个事件时,原则上不需要把它调入内存。但是在下面一种情况下,这一状态变化是可能的。当一个进程退出后,主存已经有了一大块自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。
  • 运行态→挂起就绪态:当一个具有较高优先级的挂起等待态进程的等待事件结束后,它需要抢占 CPU,而此时主存空间不够,从而可能导致正在运行的进程转化为挂起就绪态。另外处于运行态的进程也可以自己挂起自己。
  • 新建态→挂起就绪态:考虑到系统当前资源状况和性能要求,可以决定新建的进程将被对换出去成为挂起就绪态。

挂起

由于系统不断创建进程,系统资源特别是内存已经不能满足运行要求,必须将某些进程挂起,置于磁盘对换区,释放资源,暂时不启用低级调度,

进程控制块(pcd)

  • 每个进程只有一个进程控制块
    • 作用
      • 用于记录和刻划进程状态及有关信息的数据结构
      • pcb是系统感知程序的唯一标识
      • pcd和进程一一对应,共存亡

多道程序设计模型算cpu利用率

参考

posted @ 2022-10-30 22:23  壹剑霜寒十四州  阅读(273)  评论(0编辑  收藏  举报