操作系统之进程

  • 1、进程
    • 1.1进程的定义
    • 1.2 进程的组成
    • 1.3 进程的特点
    • 1.4 进程控制结构
      • 1.4.1 使用进程控制块
      • 1.4.2 PCB三大类信息
      • 1.4.3 PCB的组织方式
    • 1.5 进程的生命期原理
      • 1.5.1 进程的状态
    • 1.6 进程状态变化模型
      • 1.6.1 进程的基本状态
      • 1.6.2 进程挂起
      • 1.6.3 与挂起相关的状态转换

1、进程

1.1进程的定义

代表一种运行程序的执行过程,会消耗计算机的资源。
一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程

1.2 进程的组成

进程包含了正在运行的一个程序的所有状态信息

  • 程序的代码
  • 程序处理的数据
  • 程序计数器中的值,指示下一条将要运行的指令
  • 一组通用的寄存器的当前值,堆、栈
  • 一组系统资源(比如:打开的文件)

程序与进程的联系

  • 程序是产生进程的基础
  • 程序的每次运行构成不同的进程
  • 进程是程序功能的体现
  • 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可以包括多个程序

进程与程序的区别

  • 进程是动态的,程序是静态的;程序是有序代码的集合;进程是程序的执行,进程有核心态/用户态
  • 进程是暂时的,程序是永久的;进程是一个状态变化的过程,程序可长久保存
  • 进程与程序的组成不同;进程的组成包括程序、数据、和进程控制块(进程状态信息)

1.3 进程的特点

  • 动态性:可动态的创建、结束进程
  • 并发性:进程可以被独立调度并占用处理机运行
  • 独立性:不同进程的工作不相互影响
  • 制约性:因访问共享数据/资源或进程间同步而产生制约

1.4 进程控制结构

进程控制块:操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志。

1.4.1 使用进程控制块
  • 进程的创建:为该进程生成一个PCB
  • 进程的终止:回收它的PCB
  • 进程的组织管理:通过对PCB的组织管理来实现
1.4.2 PCB三大类信息

一、进程标识信息
如本进程的标识,本进程的产生者标识(父进程标识);用户标识。

二、处理机状态信息保存去。保存进程的运行现场信息

  • 用户可见寄存器,用户程序可以使用的数据,地址等寄存器
  • 控制和状态寄存器,如程序计数器(PC),程序状态字(PSW)
  • 栈指针,过程调用/系统调用/中断处理和返回时需要用到它

三、进程控制信息

  • 调度和状态信息,用于操作系统调度进程并占用处理机使用。
  • 进程间通信信息,为支持进程间的与通信相关的各种标识、信号、信件等,这些信息存在接收方的进程控制块中。
  • 存储管理信息,包含有指向本进程映像存储空间的数据结构
  • 进程的所用资源,说明由进程打开,使用的系统资源,如打开的文件等。
  • 有关数据结构连接信息,进程可以连接到一个进程队列中,或连接到相关的其他进程的PCB
1.4.3 PCB的组织方式

链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表
各状态的进程形成不同的链表:就绪链表、阻塞链表
索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表

1.5 进程的生命期原理

1.5.1 进程的状态
  • 进程创建
    引起进程创建的三个主要事件:

    • 系统初始化时
    • 用户请求创建一个新进程
    • 正在运行的进程执行了创建进程的系统调用
  • 进程运行
    内核选择一个就绪的进程,让他占用处理机并执行
  • 进程等待
    以下情况下,进程会等待(阻塞)

    • 请求并等待系统服务,无法马上完成
    • 启动某种操作,无法马上完成
    • 需要的数据没有到达
      进程只能自己阻塞自己,因为只有进程自身才能知道何时需要等待某种事件的发生
  • 进程唤醒
    唤醒进程的原因:

    • 被阻塞进程需要的资源可被满足
    • 被阻塞进程等待的事件到达
    • 将该进程的PCB插入到就绪队列
      进程只能被别的进程或者操作系统唤醒
  • 进程结束
    在以下四种情况下,进程结束:

    • 正常退出(自愿的)
    • 错误退出(自愿的)
    • 致命错误(强制性的)
    • 被其他进程所杀(强制性的)

1.6 进程状态变化模型

1.6.1 进程的基本状态

进程的三种基本状态
进程在生命结束前处于且仅处于三种基本状态之一,不通系统设置的进程状态数目不通。

  • 运行状态:当一个进程正在处理机上运行时。
  • 就绪状态:一个进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行
  • 等待(阻塞)状态:一个进程正在等待某一事件而暂停运行时。如等待某资源,等待输入/输出完成。

状态变化图

进程其他的基本状态

  • 创建状态:一个进程正在被创建,还没转到就绪状态之前的状态
  • 结束状态:一个进程正在从系统中消失时的状态,这是因为进程结束或由于其他原因导致

完整的状态变化图

1.6.2 进程挂起

进程在挂起状态时,说明进程没有占用内存空间。处于挂起状态的进程映像在磁盘上

挂起状态分为两种:

  • 阻塞挂起状态:进程在外存并等待某事件的出现
  • 就绪挂起状态:进程在外存,但只要进入内存,即可运行
1.6.3 与挂起相关的状态转换

挂起:把一个进程从内存转到外存
可能会有以下几种情况:

  • 阻塞到阻塞挂起:没有进程处于就绪状态或者就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程
  • 就绪到就绪挂起:当前高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪就绪
  • 运行到就绪挂起:对抢先式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能回吧运行进程转到就绪挂起状态

在外存时的状态转换:

  • 阻塞挂起到就绪挂起:当有阻塞挂起进程因相关事件出现时,系统会把阻塞挂起进程转换为就绪挂起进程

解挂/激活:把一个进程从外存转到内存;可能有以下几种情况

  • 就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会就行这种转换
  • 阻塞挂起到阻塞“当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程转换为阻塞进程

状态队列

  • 由操作系统来维护一组队列,用来表示系统当中所有进程的当前状态
  • 不同的状态分别用不同的队列来表示(就绪队列、各种类型的阻塞队列)
  • 每个进程的PCB都根据它的状态加入相应的队列当中,当一个进程的状态发生变化时,它的PCB从一个状态队列中脱离出来,加入到另外一个队列
    状态表示方法

学习使人进步:操作系统之进程相关推荐

  1. 大数据证实:学习使人快乐

    感恩节到了,为了回馈大家对ProHR的支持,我们要给大家分享一个变快乐的简单方法: 最近有一个基于领英用户调查的研究告诉我们,越爱学习的人,越快乐. 这项研究中有几个有意思的数字,那些愿意在工作中花时 ...

  2. 操作系统原理学习笔记(基础概念与进程)

    学习视频 王道的操作系统原理,我在网上搜了一下,没有那个视频像湖科大那种推荐的人那么多,感觉这个还可以,就看这个了. 随看随记 进程运行前需要将需要执行的程序放置到内存中,内存再到CPU中执行程序. ...

  3. 【操作系统】Oranges学习笔记(五) 第六章 进程

    文章目录 6.1 迟到的进程 6.2 进程概述 6.2.1 进程介绍 6.2.2 未雨绸缪--形成进程的必要考虑 6.2.3 参考的代码 6.3 最简单的进程 6.3.1 简单进程的关键技术预测 1. ...

  4. 操作系统 之 进程 学习总结

    1. 概述 1.1 程序.进程和作业 程序:完成特定任务的一系列指令集合,储存在硬盘的静态⽂件: 程序 = 代码段 + 数据段. 进程:程序运行时被加载到内存,就成了进程(即正在进行中的程序): 1. ...

  5. Python自动化开发学习的第九周----线程、进程、协程

    一.计算机操作系统的简介 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装 ...

  6. python 操作系统和进程

    一. 操作系统介绍 多道程序系统 多道程序设计技术 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬.软件资源 ...

  7. 我的操作系统复习——进程(下)

    上一篇博客是复习操作系统进程篇的上篇,包括进程状态.PCB.进程控制等--我的操作系统复习--进程(上),本篇博文是进程篇的下篇,开始复习进程同步.进程通信,以及重要的线程概念. 一.进程同步 什么是 ...

  8. 『操作系统』 进程的描述与控制 Part 1 前驱图与程序执行

    文章目录 2.1 前趋图和程序执行 2.1.1 程序的顺序执行及其特征 1. 程序的顺序执行 2.程序顺序执行时的特征 2.1.2 前趋图 2.1.3 程序的并发执行及其特征 1. 程序的并发执行 2 ...

  9. 【操作系统】进程管理(二)

    [操作系统]进程管理(二) 一.前言 二.进程的基本概念 2.1 程序的顺序执行 2.2 程序的并发执行 2.3 进程的特征 2.4 进程的状态 2.5 进程控制块 三.进程控制 3.1 进程的创建 ...

最新文章

  1. 模型也可以上网课?!一文看懂服务型蒸馏训练方案
  2. 2016年第七届蓝桥杯C/C++ C组国赛 —— 第二题:反幻方
  3. 第二章作业第2题--苏志华
  4. SAP MIGO的界面中Document Overview部分,可以不让一些单据在这里显示。
  5. c++ 连接两个字符串实现代码 实现类似strcat功能(转)
  6. 【python】os.getcwd和getcwdu
  7. STL源码剖析 算法开篇
  8. LeetCode 49. 字母异位词分组(哈希)
  9. [bzoj2127]happiness
  10. 类的加载顺序(例题)
  11. python给ppt表格加边框_向ppt里插入图片和表格
  12. There are 1 missing blocks. The following files may be corrupted:
  13. python股票技术指标计算,python股票量化交易(3)---趋势类指标MACD
  14. ps怎么将图片制作成ico图标? ps制作ico图标的教程
  15. 使用 html 写一个表达爱意的网页
  16. JAVA毕业设计花卉网站计算机源码+lw文档+系统+调试部署+数据库
  17. fluent-edem耦合出错,如何继续计算。
  18. C语言fscanf函数的理解
  19. 现代密码学期末复习26问
  20. 【U8】登录账套显示“账套XXX年度XXXX是以前版本的数据,请使用系统管理升级”

热门文章

  1. DVWA+SQL Injection(high)+SQLmap注入实战
  2. 【有利可图网】PS实战教程39:PS黑白颠倒大法
  3. Mac office 2011 打开word有中文乱码问题解决
  4. 如何通过Photoshop根据纹理贴图轻松获得法线贴图
  5. 【独立站运营】分享用即上“瘾”的16个购物车召回邮件模板
  6. HTML模板布局页面教程,css网页布局教程 标签 HTML Nav CSS布局教程
  7. 部署上网监控软件 更好的管理员工
  8. python定义一个人类_python基础课程 第9章 面向对象编程(上) 一场人类进化史
  9. 蛋花花分析Web前端高薪就业必须掌握的5个技能
  10. OA自动化办公管理系统