1. 为什么要引入进程
      通常的程序是不能并发执行的,因为并发执行会使它们具有间断性、失去封闭性,并且其结果不可再现。
     为了使程序能够并发执行,并且对程序加以描述及控制,引入了进程的概念。
2. 进程的定义
      进程是进程实体的运行过程,进程实体由程序段、相关的数据段和PCB三部分构成。在没有引入线程的操作系统中,进程是系统进行资源分配和调度的一个独立单位
3. 进程的状态
      (1)创建状态
          当一个新进程被创建时,系统为其创建PCB,并填写必要的管理信息。但由于该进程所需的资源尚未分配,进程还没有进入主存,进程还不能被调度运行。
     (2)就绪状态
          当进程已经被分配到除CPU以外的所有资源时,只要再获得CPU就可以执行,这种状态称为就绪状态。
     (3)执行状态
          进程获得了CPU,正在执行当中。
     (4)阻塞状态
          正在执行的进程由于发生一些事件暂时无法继续占有CPU时,进程进入阻塞状态。
     (5)挂起状态
          当有终端用户的请求,或父进程的请求,或系统负荷调节的需要,或操作系统的需要时,进程进入挂起状态。
     (6)终止状态
          当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统终结,或是被其它拥有终止权的进程终结,进程就进入终止状态。
进程状态转换图(无挂起状态)
4. 引起进程进入各种状态的事件
4.1 进入阻塞状态
     (1)请求的资源被其它进程占用。如:请求使用打印机资源,但打印机正在被其它进程使用。
     (2)启动某种操作。如:启动了某项I/O设备,只有在I/O设备完成了指定的I/O操作后进程才能继续执行。
     (3)新数据尚未到达。如:进程A用于输入数据,进程B用于对数据加工,如果进程A尚未输入完数据 ,则进程B阻塞。
     (4)无新工作可做。如:发送数据的进程已经发送完数据,且无新的发送请求,则该发送进程阻塞。

4.2 进入挂起状态
     (1)终端用户请求。如:终端用户在程序运行期间希望程序 暂停执行,进程进入挂起状态。
     (2)父进程的请求。如:父进程希望挂起自己的某个子进程,以便修改子进程或协调各子进程的活动。
     (3)进行负荷调节。如:当实时系统的负荷较重,系统可以把一些不重要的进程挂起。
     (4)操作系统的需要。如:操作系统挂起某些进程,以便检查运行资源的使用情况
5. 进程控制块(PCB)
5.1 进程控制块的作用
     进程控制块记录了操作系统所需的,用于描述进程的当前情况,以及控制进程运行的全部信息。操作系统是根据PCB来对并发执行的进程进行控制和管理的。
     例子:
     (1)当操作系统要调度某进程执行时,要从该进程的PCB中查看其现行状态和优先级。
     (2)当调度某进程后,要根据PCB中保存的CPU状态信息,设置进程恢复运行的现场,并根据PCB中程序和数据的内存地址找到程序和数据。
     (3)当进程阻塞或挂起时,要将其断点的CPU环境保存在PCB中。
     (3)进程之间实现同步、通信、访问文件时,需要访问PCB。
5.2 进程控制块的内容
     (1)进程标识符(PID)。进程标识符唯一地标识一个进程。
     (2)CPU状态信息。由CPU的各种寄存器的内容组成。
     (3)进程调度信息。包括进程状态、进程优先级、进程调度所需的其他信息、引起状态转换的事件。
     (4)进程控制信息。包括程序和数据的地址、进程同步和通信所需的内容、进程所需和已有的资源清单、所在队列中指向下一个进程的链接指针。

进程的概念、状态转换和进程控制块相关推荐

  1. 揭开进程的概念、状态、通信的迷雾。看完瞬间豁然开朗

    预备知识 前驱图 程序顺序执行的特征 顺序性顺序执行 封闭性独占资源 可再现性只要程序执行环境和初始条件相同,重复执行时结果都相同 程序并发执行的特征 间断性 失去封闭性 不可再现性因为程序并发执行时 ...

  2. Linux进程的概念

    文章目录 一.冯·诺依曼体系结构 二.操作系统(operating system) 2.1 系统调用和库函数概念 三.进程 3.1 描述进程-PCB 3.2 查看进程 3.2.1 通过系统目录查看 3 ...

  3. Linux操作系统:操作系统与进程之fork、相关状态、僵尸进程

    文章目录 操作系统 什么是操作系统 操作系统如何管理 系统调用和库函数概念 为什么需要操作系统 进程 进程的概念 如何管理进程 一.描述 二.PCB 三.task_struct 进程相关操作 一.查看 ...

  4. 进程的概念与基本介绍

    文章目录 一.冯诺依曼体系结构 二.操作系统 1.操作系统的概念 2.管理的本质 3.操作系统是如何进行管理的 ****系统调用和库函数**** 4.操作系统上下层关系图 三.进程 1.进程的概念 2 ...

  5. 【Linux】基础:进程的概念

    [Linux]基础:进程概念 摘要:本文的主要目的是理解进程的概念.文章通过介绍进程的管理方式来引入进程的概念,从而提出进程的理解--PCB与程序.然后对PCB内容进行详细介绍,并同时介绍了关于进程的 ...

  6. 【Linux】进程的概念(1)

    冯诺依曼体系结构 我们常见的计算机,如笔记本.我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系. 关于冯诺依曼,必须强调几点: 这里的存储器指的是内存 不考虑缓存情况,这里的CPU能且只能对内存 ...

  7. Linux系统下进程的概念《一》

     个人主页:欢迎大家光临-->沙漠下的胡杨   各位大帅哥,大漂亮  如果觉得文章对自己有帮助  可以一键三连支持博主  你的每一分关心都是我坚持的动力   ☄: 本期重点:Linux下的进程的 ...

  8. 什么是进程、进程的概念?

    进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的地址空间, 一般情况下,包括文本区域(text region).数据区域(data region)和堆栈(stack region) ...

  9. (王道408考研操作系统)第二章进程管理-第一节3:进程控制(配合Linux讲解)

    文章目录 一:如何实现进程控制 二:进程控制原语 (1)进程创建 A:概述 B:补充-Linux中的创建进程操作 ①:fork() ②:fork()相关问题 (2)进程终止 A:概述 B:补充-僵尸进 ...

最新文章

  1. 网页学名为html文件,什么是HTML
  2. [NLP]--NLP programming tutorial
  3. Mac下配置svn服务器
  4. 先来先服务算法的特点
  5. 这样讲原码、反码、补码!学妹连夸我很猛!!
  6. navicate连接远程数据库
  7. SQL Server中的约束:SQL NOT NULL,UNIQUE和SQL PRIMARY KEY
  8. 【重识 HTML + CSS】Photoshop 简单使用
  9. POJ 2082Lost Cows
  10. linq判断集合中相同元素个数_高中数学:集合与函数概念知识点汇总
  11. 【数字信号处理】基于matlab GUI IIR低通+FIR高通信号时域+频谱分析【含Matlab源码 1029期】
  12. 产品经理必修课之互联网产品设计流程
  13. python从右向左第三个字符_字符串是一个字符序列,例如,字符串s,从右侧向左第3个字符用什么索引?_学小易找答案...
  14. Duang一夏,安码企业流程化管控软件优惠季来了! 活动介绍
  15. 网页商品SKU(规格)选择
  16. HTML编辑器选择什么,HTML编辑器有哪些?3款常用的编辑器推荐
  17. Activity销毁onStop或onDestroy延时10s左右才回调
  18. 【vs2019】vs2019(Visual Studio2019)离线安装包下载详细步骤
  19. java 图片相似搜索_java获取两张图片的相似度
  20. 关于数据库中FK的简单理解以及应用

热门文章

  1. 爬虫、蜘蛛、机器人有什么区别?
  2. 并查集(小西的迷宫)
  3. 牛人总结的单片机应用程序架构--3星推荐
  4. oracle em13c install,如何使用Oracle EM13c管理数据库私有云
  5. navicat的连接
  6. 【Matlab系列】之基于元胞自动机的城市规划(程序修正)
  7. iBeacon让互联网营销进入场景时代
  8. 流量劫持是如何产生的
  9. linuxcnc 安装详细教程
  10. jmeter-取token