1 进程的调度策略

1.1 先来先服务

非抢占式的调度算法,按照请求的顺序进行调度。有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。另外,对 I/O 密集型进程也不利,因为这种进程每次进行 I/O 操作之后又得重新排队

1.2 短作业优先

非抢占式的调度算法,按估计运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。

1.3 最短剩余时间优先

最短作业优先的抢占式版本,按剩余运行时间的顺序进行调度。 当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待。

1.4 时间片轮转

将所有就绪进程按 FCFS(先来先服务) 的原则排成一个队列,每次调度时,把 CPU 时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。
        时间片轮转算法的效率和时间片的大小有很大关系:因为进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,会导致进程切换得太频繁,在进程切换上就会花过多时间。 而如果时间片过长,那么实时性就不能得到保证。

1.5 优先级调度

为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。

2 进程的状态

进程一共有 5 种状态,分别是创建、就绪、运行(执行)、终止、阻塞。

  • 运行状态就是进程正在 CPU 上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。
  • 就绪状态就是说进程已处于准备运行的状态,即进程获得了除 CPU 之外的一切所需资源,一旦得到 CPU 即可运行。
  • 阻塞状态就是进程正在等待某一事件而暂停运行,比如等待某资源为可用或等待 I/O 完成。即使CPU 空闲,该进程也不能运行

进程状态的变化

  • 运行态→阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
  • 阻塞态→就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
  • 运行态→就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
  • 就绪态→运行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。

进程的调度策略与进程的状态相关推荐

  1. 进程和线程:进程的状态和层次结构

    进程的状态 三种状态 运行态:该时刻实际占用 CPU 的进程. 就绪态:可运行但还没有被分配时间片.一般在就绪队列中. 阻塞态:除非某种外部事件发生,否则进程无法运行.一般在阻塞队列中. 四种转换关系 ...

  2. 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 )

    文章目录 一.ptrace 函数族 1.进程附着 2.进程脱离 3.进程数据读写权限 4.进程对应的主线程寄存器读写 5.单步调试 6.继续向后执行 二.ptrace 函数族状态转换 一.ptrace ...

  3. 【Linux进程、线程、任务调度】一 Linux进程生命周期 僵尸进程的含义 停止状态与作业控制 内存泄漏的真实含义 task_struct以及task_struct之间的关系

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 文章目录 1 ...

  4. UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...

    lienhua34 2014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于 ...

  5. linux中的进程有哪三种基本状态,Linux下的进程有哪三种状态?()

    1.R (TASK_RUNNING)状态,可执行状态. 只有在该状态的进程才可能在CPU上运行.而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CP ...

  6. stopped状态的进程 top 命令_Linux 进程管理之四大名捕

    一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手"无情".内功卓越的高手"铁手".腿 ...

  7. linux kernel 进程管理,Linux内核 | 进程管理

    1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的最小单位. 线程是进程的内部的一个执行序列,是CPU调度的最小单位.有一段可执行程序代码. 有一段进程专用的系统堆 ...

  8. linux中第一个进程的形成,Linux进程管理

    1.进程基本概述 定义:进程是已经启动的可执行程序的运行中实例. /proc目录下以数字为名的目录,每一个目录代表一个进程,保留着进程的属性信息,每一个进程的PID是唯一的,就算进程退出了,其他进程也 ...

  9. linux proc进程,linux 下 /proc/进程号/ 重要进程文件的内容解析

    /proc//maps 查看进程的虚拟地址空间是如何使用的. 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有: 偏移量:库在进程里地址 ...

最新文章

  1. php类对象无法转还子符串问题,php – 类stdClass的对象无法转换为字符串
  2. 书多嚼不烂,看书的方法
  3. Unity插件Gaia使用介绍
  4. 玩转oracle 11g(10):初步了解Rman备份
  5. 在python中输入圆的半_python根据圆的参数方程求圆上任意一点的坐标
  6. UVA10803 Thunder Mountain【Floyd算法】
  7. mysql数据库调试_mysql数据库调试
  8. [转]el-table表格翻页后仍记忆所选项
  9. ShopXO开源电商系统源码
  10. ucwords和ucfirst用法举例!!
  11. 跟进分析不一样的MTI商城
  12. 万用表如何进行欧姆校零
  13. 五分钟学Java:一篇文章带你搞懂spring全家桶套餐
  14. visual Paradigm如何创建BPMN图?
  15. 爱情、面包论——真正的爱情
  16. TCP/IP原理浅析
  17. 大括号内打两行公式,还附带标号或条件
  18. 面向对象的特征之一:抽象
  19. 36、有效的数独 | 算法(leetode,附思维导图 + 全部解法)300题
  20. 深入剖析原理!Android面试你必须要知道的那些知识,吐血整理

热门文章

  1. php版主动推送,织梦php主动推送完整实例(单篇推送版本)
  2. Mac修改pip为国内源
  3. 博弈树α-β剪枝搜索学习参考资料
  4. python判断字符串中[提取、判断只含有、判断不含有]中文
  5. 用c语言实现循环神经网络,浅谈LSTM循环神经网络
  6. python 鱼骨图_面向对象编程,鱼骨图分析法
  7. Linux服务器,服务管理--systemctl命令详解,设置开机自启动
  8. Linux 两台服务器之间传输文件
  9. Unity搭建简单的图片服务器
  10. Jquery Ajax +.ashx XML数据格式