进程

作者: 姜旺不解之缘 | 来源:发表于2019-02-04 16:53 被阅读0次

操作系统中最核心的概念是进程,是对正在运行程序的一个抽象。
1.进程
  每个控制逻辑流都是一个进程,由内核来调度与维护;因为进程有着独立的虚拟地址空间,想要和其他进程流通信,控制流必须使用某种显式的进程间通信机制IPC
  对于单核CPU而言,在某一个瞬间,CPU只能运行一个进程,多进程并发是CPU在进程间不断切换产生并行错觉,即实现伪并行。一个进程就是一个正在执行程序的实例。
  由于CPU在各进程之间来回快速切换,每个进程执行其运算的速度是不确定的。而且当同一进程再次运行时,其运算速度通常也不可再现。所以,在对进程编程时不能对时序做任何想当然的假设。
  进程和程序间的区别很微妙,程序只是进程的组成部分之一。一个进程是某种类型的一个活动,其有程序、输入、输出以及状态。单个处理器可以被若干进程共享。
  值得注意的是:如果一个程序运行了两遍,则算做两个进程。因为操作系统能够使这两个进程共享代码,只有一个副本放在内存中。
1.1 进程的创建
  4种主要事件会导致进程的创建:
  1)系统初始化。
  2)正在运行的程序执行了创建进程的系统调用。
  3)用户请求创建一个新进程。
  4)一个批处理作业的初始化。
  从技术上看,新进程都是由于一个已存在的进程执行了一个用于创建进程的系统调用而创建。这个系统调用通知操作系统创建一个新进程,并且直接或者间接地指定在该进程中运行的程序。
  进程之间特别是父进程和子进程之间有各自不同的地址空间。如果其中某个进程在其地址空间中修改了一个字,这个修改对其他进程而言是不可见的。在UNIX中,不可写的内存区域是可以共享的,可写的内存区域是不可以共享的(子进程通过写时复制的方式共享父进程的所有内存)。但是,对于一个新创建的进程而言,有可能共享其创建者的其他资源,如打开的文件等。在Windows中,父进程与子进程的地址空间从一开始就不同。
  对于父子进程间的共享状态信息,进程有一个非常清晰的模型:共享文件表,但是不共享用户地址空间。进程拥有独立的地址空间既是优点也是缺陷。优点是:不会产生由于虚拟内存覆盖产生的错误;缺点是:独立的地址空间使得进程共享状态信息变得更加困难。为了共享信息,进程间通信机制开销很高。
1.2 进程的终止
  进程终止的一般情形:
  1)正常退出;
  2)出错退出;
  3)严重错误(非自愿);
  4)被其他进程杀死(非自愿);
1.3 进程的状态
  进程运行的三状种态:
  1)运行态(实际占用CPU);
  2)就绪态(可运行,由于其他进程正在运行而暂时停止);
  3)阻塞态(除非某种外部事件发生,否则进程不能运行);
1.4 进程的实现
  为了实现进程模型,操作系统维护着一个结构数组,即进程表。每个进程占用一个进程表项(进程控制块);该表项包含了进程状态的各种重要信息。
1.5 多道程序设计模型
  采用多道程序设计可以提高CPU的利用率;
  利用率公式如下: \rho = 1 - P^{n}
  从完全精确的角度考虑,由于进程不是独立的,更精确的模型应该用排队论构建。

进程模型

相关文章

  • 进程,进程,进程

    1. 进程是具有独立功能的程序关于某个数据集合的一次运行过程。(1)程序本身是静态的,是没有生命周期的,只有运行起...

  • Linux回收子进程

    孤儿进程 孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程...

  • Android 五种进程的管理

    安卓有几种进程? 前台进程 可见进程 服务进程 后台进程 空进程 前台进程 用户当前操作所必需的进程。如果一个进程...

  • 孤儿进程、僵尸进程与进程回收

    孤儿进程与僵尸进程 孤儿进程:父亲死了,子进程被init进程领养僵尸进程:子进程死了,父进程没有回收子进程的资源(...

  • 第三章 进程管理

    进程基础 进程基本概念 进程组:只包括祖先进程,子孙进程,兄弟进程进程树:所有进程僵尸进程:在父进程中经常会调用w...

  • Chaprter-1 [进程]

    进程模型 进程定义 进程的创建 进程的终止 进程的层次结构 进程的状态 进程的状态图 进程的实现

  • 进程操作

    一、进程创建 进程树 父进程创建若干子进程,子进程再创建其子进程,依次类推,构成进程树。进程的调度,其实就是在进程...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • python中的僵尸进程和孤儿进程

    孤儿进程:父进程退出,子进程还在运行的这些子进程都是孤儿进程,孤儿进程将被 init 进程(进程号为 1)所收养,...

  • 容器中的孤儿进程&僵尸进程简介

    背景简介 孤儿进程 父进程先于子进程退出,那么子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)接管,并...

网友评论

      本文标题:进程

      本文链接:https://www.haomeiwen.com/subject/cagpsqtx.html