深入解读Linux进程调度系列(6)——抢占与非抢占
系列文章:https://blog.csdn.net/Vince_/article/details/89054330
进程运行模式
user mode
进程运行在用户空间,资源访问等受限
kernel mode
内核空间,用户程序通过系统调用进入内核态执行,另外中断也是运行在内核空间中
抢占调度的原则
- 普通进程,用户态运行过程中可以被中断,包括被高优先级的进程中断
- 运行在内核模式的系统调用不可以被抢占,但是系统调用可以被中断
- 中断优先级最高,可以抢占运行在内核或者用户态的进程
1.1 Preemptive
Preemptive Multitasking系统上,调度器决定运行中的进程何时中止运行换出而新的进程开始执行,该过程称为抢占Preemption,而抢占前的进程运行时间一般为提前设定的时间片(Timeslice),时间片的设定与进程优先级有关,根据实际的调度类方法决定,调度类后面会具体介绍。在定时器中断处理过程中对进程的运行时间vruntime进行刷新,如果已经超过了进程可运行的时间片,则设置当前进程current的thread_info flag的调度标志TIF_NEED_RESCHED,在下一个调度入口会调用need_resched函数判断该标志,如果被设置则会进入调度过程,换出当前进程并选择新进程开始执行。关于调度入口,下面章节会进行详细介绍。
1.2 Cooperative
非抢占的Cooperative Multitasking系统最大的特点就是进程只有在主动决定放弃CPU的时候才开始调度其他进程执行,称为yielding,调度器无法控制全局的进程运行状态和时间,这其中最大的缺点就是挂起的进程可能会导致整个系统停止运行,无法调度。进程在因为需要等待特定的信号活着事件发生时会放弃CPU而进入睡眠,通过主动调用schedule进入调度。
深入解读Linux进程调度系列(6)——抢占与非抢占相关推荐
- 【操作系统】抢占与非抢占式调度
最佳适合算法产生的内存碎片要比最先适合算法多,因为将小而不能使用的碎片放在自由表开头部分的排序趋势更为强烈 抢占式调度(Preemptive Scheduling)是一种CPU调度技术,它通过将CPU ...
- Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
日期 内核版本 架构 作者 GitHub CSDN 2016-07-01 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 ...
- 操作系统(五):FCFS/SJF/非抢占优先级/RR
操作系统(五):FCFS/SJF/非抢占优先级/RR 一.题目1(书上170页5.7) 5.4 5.4 Consider the following set of processes, with th ...
- 非抢占模式下故障后优先级降低却不切换问题--使用Keepalived实现非抢占模式主备切换
使用Keepalived实现非抢占模式主备切换–解释非抢占模式下故障后优先级降低却不切换问题 背景 最近在用keepalived时发现,配置为非抢占模式后,主节点的服务检测脚本返回非0后,不发生切换, ...
- matlab非抢占优先排队,T型非抢占优先权MM1排队系统
T型非抢占优先权MM1排队系统 马占友,张世久,徐彪 [摘要]摘要:为了进一步优化认知无线网频谱的接入,在将T作为时间参数引入排队系统的基础上,提出了一种新的T型非抢占优先权排队策略,并将其引入M/M ...
- linux 2.6内核进程调度,Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片,...
Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片, RT /** * 递减当前进程的时间片计数器,并检查是否已经用完时间片. * 由于进程的调度类型不同 ...
- linux进程调度之 FIFO 和 RR 调度策略
转载 http://blog.chinaunix.net/uid-24774106-id-3379478.html linux进程调度之 FIFO 和 RR 调度策略 2012-10-19 18:1 ...
- Linux进程调度 - 实时调度器 LoyenWang
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- linux进程调度之FIFO和RR策略
最近花了10几天的时间,将linux进程调度相关的内核代码看了两遍左右,也看了一些讲述linux进程调度的一些文章,总想写个系列文章,把进程调度全景剖析一遍,但是总是感觉力不逮己,自己都不敢下笔写文章 ...
- linux 进程调度卡死,linux进程调度之总章:一些片汤话
最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境,就像盲人摸象,学到一些东 ...
最新文章
- php中文件操作函数,php中常用文件操作函数介绍
- 美团面试题:String s = new String(111)会创建几个对象?
- java word 纸张大小_如何在Java中为Word文档(.doc或.docx)设置背景色(页面颜色)?...
- ping与telnet的区别
- 基于cuda的mmp的bug调试
- java中拼写xml
- php解决与处理网站高并发 大流量访问的方法
- MyBatis在Oracle中插入数据并返回主键的问题解决
- android 广播观察者,作业三——观察者模式在Android广播机制上的应用
- java取余位运算_Java中对于位运算的优化以及运用与思考
- Mysql Hash索引和B-Tree索引区别(Comparison of B-Tree and Hash Indexes)
- maven教程一:快速搭建
- 数据:FIT2CLOUD飞致云连续进入云管理软件市场权威研究报告
- 微信百度网盘小程序文件分享Burp抓包获得链接和提取码
- Java 创建一个Customer类,类中的属性有姓名、年龄、性别,然后创建两个Customer对象,把这两个对象存储在ArrayList对象中,然后再从ArrayList对象中读取出来。
- PR字幕模板 简单大气红色创意图形动态字幕条全屏标题pr模板
- office转换pdf [doc,docx,xls,xlsx]
- 【SSL】2278Oliver的救援
- 最新计算机专业毕业设计论文选题源码演示录像下载(开题报告任务书PPT毕业答辩模板jsp352 cs拼图游戏的设计与实现
- Log4j2 重大漏洞与解决方案
热门文章
- android编译framework架包运行报错 (转)
- vs2005 打包,并自动安装SQL数据库
- pytorch不加载fc_Pytorch自己加载单通道图片用作数据集训练的实例
- Opencv笔记(四)——绘图函数
- PropertyChangeSupport 监听器模式的应用
- jenkins2 pipeline高级
- DNS服务器上的IP地址修改
- javaSE---最大值最小值和冒泡排序及随机数的讲解
- 利用JDBC开发图书管理系统
- 4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图