进程的调度策略与进程的状态
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 空闲,该进程也不能运行
进程状态的变化
- 运行态→阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
- 阻塞态→就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
- 运行态→就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
- 就绪态→运行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
进程的调度策略与进程的状态相关推荐
- 进程和线程:进程的状态和层次结构
进程的状态 三种状态 运行态:该时刻实际占用 CPU 的进程. 就绪态:可运行但还没有被分配时间片.一般在就绪队列中. 阻塞态:除非某种外部事件发生,否则进程无法运行.一般在阻塞队列中. 四种转换关系 ...
- 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 )
文章目录 一.ptrace 函数族 1.进程附着 2.进程脱离 3.进程数据读写权限 4.进程对应的主线程寄存器读写 5.单步调试 6.继续向后执行 二.ptrace 函数族状态转换 一.ptrace ...
- 【Linux进程、线程、任务调度】一 Linux进程生命周期 僵尸进程的含义 停止状态与作业控制 内存泄漏的真实含义 task_struct以及task_struct之间的关系
学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 文章目录 1 ...
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...
lienhua34 2014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于 ...
- linux中的进程有哪三种基本状态,Linux下的进程有哪三种状态?()
1.R (TASK_RUNNING)状态,可执行状态. 只有在该状态的进程才可能在CPU上运行.而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CP ...
- stopped状态的进程 top 命令_Linux 进程管理之四大名捕
一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手"无情".内功卓越的高手"铁手".腿 ...
- linux kernel 进程管理,Linux内核 | 进程管理
1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的最小单位. 线程是进程的内部的一个执行序列,是CPU调度的最小单位.有一段可执行程序代码. 有一段进程专用的系统堆 ...
- linux中第一个进程的形成,Linux进程管理
1.进程基本概述 定义:进程是已经启动的可执行程序的运行中实例. /proc目录下以数字为名的目录,每一个目录代表一个进程,保留着进程的属性信息,每一个进程的PID是唯一的,就算进程退出了,其他进程也 ...
- linux proc进程,linux 下 /proc/进程号/ 重要进程文件的内容解析
/proc//maps 查看进程的虚拟地址空间是如何使用的. 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有: 偏移量:库在进程里地址 ...
最新文章
- php类对象无法转还子符串问题,php – 类stdClass的对象无法转换为字符串
- 书多嚼不烂,看书的方法
- Unity插件Gaia使用介绍
- 玩转oracle 11g(10):初步了解Rman备份
- 在python中输入圆的半_python根据圆的参数方程求圆上任意一点的坐标
- UVA10803 Thunder Mountain【Floyd算法】
- mysql数据库调试_mysql数据库调试
- [转]el-table表格翻页后仍记忆所选项
- ShopXO开源电商系统源码
- ucwords和ucfirst用法举例!!
- 跟进分析不一样的MTI商城
- 万用表如何进行欧姆校零
- 五分钟学Java:一篇文章带你搞懂spring全家桶套餐
- visual Paradigm如何创建BPMN图?
- 爱情、面包论——真正的爱情
- TCP/IP原理浅析
- 大括号内打两行公式,还附带标号或条件
- 面向对象的特征之一:抽象
- 36、有效的数独 | 算法(leetode,附思维导图 + 全部解法)300题
- 深入剖析原理!Android面试你必须要知道的那些知识,吐血整理