• 1.运行——>就绪

    • 1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的
    • 2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态
  • 2.就绪——>运行
    • 运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
  • 3.运行——>阻塞
    • 正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求
  • 4.阻塞——>就绪
    • 进程所等待的事件已经发生,就进入就绪队列

以下两种状态是不可能发生的

  • 5.阻塞——>运行

    • 即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取
  • 6.就绪——>阻塞
    • 就绪态根本就没有执行,谈不上进入阻塞态

另外一个版本

  • (1)新状态->就绪态

    • 当等待队列允许接纳新进程时,内核便把新进程移入等待队列。
  • (2)就绪态->运行态
    • 调度类选中等待队列中的某个进程,该进程进入运行态。
  • (3)运行态->睡眠态
    • 正在运行的进程因需要等待某事件(如IO等待、信号等待等)的出现而无法执行,进入睡眠态。
  • (4)睡眠态->就绪态
    • 进程所等待的事件发生了,进程就从睡眠态排入等待队列,等待下次被选中执行。
  • (5)运行态->就绪态
    • 正在执行的进程因时间片用完而被暂停执行;或者在抢占式调度方式中,高优先级进程强制抢占了正在执行的低优先级进程。
  • (6)运行态->终止态
    • 一个进程已完成或发生某种特殊事件,进程将变为终止状态。对于命令来说,一般都会返回退出状态码。

      以上引用:http://www.cnblogs.com/f-ck-need-u/p/7058920.html这位大佬

转载于:https://www.cnblogs.com/lqynkdcwy/p/9570260.html

4.状态间的六种转换情况相关推荐

  1. vue组件间通信六种方式(完整版)

    前言   组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系:                如上图所示 ...

  2. vue组件间通信六种方式

    vue组件间通信六种方式 组件之间的传值通信 组件之间的通讯分为三种:父传子.子传父.兄弟之间的通讯: props/$emit 父传子:主要是通过props来实现的 具体实现:父组件通过import引 ...

  3. java线程的状态及状态间的切换

    在 Java 5 以后,线程状态被明确定义在其公共内部枚举类型 java.lang.Thread.State 中. 分别是: 1.        NEW(初始化状态) 2.        RUNNAB ...

  4. 进程的三种状态及相互之间的转换

    1.进程的三种基本状态 进程在运行中不断地改变其运行状态.通常,一个运行进程必须具有以下三种基本状态.  就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行 ...

  5. c语言不同类型指针间的强转,C语言中不同的结构体类型的指针间的强制转换详解...

    C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险.只要理解了其内部机制,你会发现C是非常灵活的. 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在 ...

  6. 常用的整数间的数制转换

    常用的整数间的数制转换 前言 一.基本概念 1.数制: 2.数位: 3.基数: 4.位权: 二.转换 1.十进制转换二进制 2.二进制转换十进制 3.二进制转换其它进制 总结 前言 虽然计算机能极快地 ...

  7. Java 整数型的进制间的互相转换

    /*** 整数型, 进制间的互相转换*/public class IntConversion {public static void main(String[] args) {int num = 38 ...

  8. vivado中如何读取十进制小数_二进制十进制间小数怎么转换,原来是这样的

    二进制十进制间小数怎么转换?感兴趣的小伙伴们快来了解一下吧. 工具/材料 纸.笔 十进制的小数到二进制的转换 01 步骤: 1.小数部分*2: 2.得到的结果*2,取整数部分. 3.得到的结果*2,取 ...

  9. vue组件穿方法_vue组件间通信六种方式(完整版)

    [51CTO.com原创稿件] 前言 组件是 vue.js强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系: 如上图所示,A ...

最新文章

  1. 使用while语句修改后的效果和for一样
  2. web前端技术杂谈--css篇(1)--浅谈margin(续)
  3. 分治法在排序算法中的应用(JAVA)--快速排序(Lomuto划分、Hoare划分、随机化快排)
  4. django-演练-英雄表的添加操作
  5. Linux的shell编程(三)
  6. 写了个简单的pdo的封装类
  7. LeetCode 623. Add One Row to Tree
  8. 当遥感卫星有了AI……
  9. mysql时间排序获取最新_mysql获取按日期排序获取时间最近的记录
  10. [资源下载] chromium OS 镜像下载
  11. 外键的约束(Mysql、PostgreSQL)
  12. 宁录哨兵机器人_漫威漫画里奥创、灭霸、哨兵机器人、天启谁更厉害?
  13. cad菜单栏快捷键_天正建筑菜单栏不见了怎么调出来
  14. 【它山之玉】慎重选择博士后(或博士生)导师-科学网马臻
  15. OpenCV图像处理_2:平滑smoothing模糊blurring操作
  16. acg-faka--功能丰富的发卡二次元商城源码
  17. 2018初中计算机考试知识点,2018计算机等级考试考点:考前学习的技巧
  18. php artisan dumpautoload,artisan 命令使用总结
  19. Ultimate Member插件注册登录流程分析
  20. Nginx代理mysql端口

热门文章

  1. 树莓派 使用读卡器修改WIFI连接配置
  2. mysql字段获取当前日期格式_mysql数据库,获取当前日期及格式化
  3. Python 3.3.2 中文版
  4. SciTE 2.21 汉化版
  5. ARM 内核移植中常见的错误
  6. logging模块的使用
  7. 人工智能:模型与算法 之 启发式搜索
  8. Spring @EventListener 异步中使用condition的问题
  9. struts2获取服务器临时目录
  10. spring装配Bean过程