linux进程调度方法

linux内核学习9:Linux的进程调度 一、什么是进程调度 出现背景: 无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。 进程调度,是确保进程能有效工作的一个内核子系统。 调度程序负责决定将哪些进程投入到运行,何时进行以及运行多长时间。 进程调度程序(通常简称为调度程序)可看成是可运行态进程之间分配有限的处理器时间资源的内核子系统。 进程调度是对TASK_RUNNING状 阅读详情

 

 


linux 内核的三种调度方法:

1 , SCHED_OTHER 分时调度策略,

 

2 , SCHED_FIFO 实时调度策略,先到先服务

 

3 , SCHED_RR 实时调度策略,时间片轮转

 

http://www.myfaq.com.cn/2005September/2005-09-13/199638.html

 

 

 

linux 内核的三种调度方法:

1 , SCHED_OTHER 分时调度策略,

 

 

2 , SCHED_FIFO 实时调度策略,先到先服务

 

 

3 , SCHED_RR 实时调度策略,时间片轮转

 

 

实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过 nice 和 counter 值决定权值, nice 越小, counter 越大,被调度的概率越大,也就是曾经使用了 cpu 最少的进程将会得到优先调度。

 

SHCED_RR 和 SCHED_FIFO 的不同:

     当采用 SHCED_RR 策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列 尾。放在队列尾保证了所有具有相同优先级的 RR 任务 的调度公平。      

    SCHED_FIFO 一 旦占用 cpu 则一直运行。一直运行直到有更高优先级任务到达或自己放弃。

    如果有相同优先级的实时进程(根据优先级计算的调度权值是一样 的)已经准备好, FIFO 时必须等待该进程主动放弃后才可以运行这个优先级相同的任务。 而 RR 可以让每个任务都执行一段时间。

 

 

相同点:

    RR 和 FIFO 都只用于实时任务。

    创建时优先级大于 0(1-99) 。

    按照可抢占优先级调度算法进行。

    就绪态的实时任务立即抢占非实时任务。

 

所有任务都采用 linux 分 时调度策略时。

1 ,创建任务指定采用分时调度策略,并指定优先级 nice 值 (-20~19) 。

2 ,将根据每个任务的 nice 值 确定在 cpu 上的执行时间 (counter) 。

3 ,如果没有等待资源,则将该任务加入到就绪队列中。

4 ,调度程序遍历就绪队列中的任务,通过对每个任务动态优先级的 计算 (counter+20-nice) 结果,选择计算结果最大的一个去运行,当这个时间片用完后 (counter 减至 0) 或者主动放弃 cpu 时,该任务将被放在就绪队列末尾 ( 时间片用完 ) 或等待队列 ( 因等待资源而放弃 cpu) 中。

5 ,此时调度程序重复上面计算过程,转到第 4 步。

6 ,当调度程序发现所有就绪任务计算所得的权值都为不大于 0 时,重复第 2 步。

 

 

所有任务都采用 FIFO 时,

1 ,创建进程时指定采用 FIFO , 并设置实时优先级 rt_priority(1-99) 。

2, 如果没有等待资源,则将该任务加入到就绪队列中。

3 ,调度程序遍历就绪队列,根据实时优先级计算调度权值 (1000+rt_priority), 选择权值最高的任务使用 cpu ,该 FIFO 任务将一直占有 cpu 直到有优先级更高的任务就绪 ( 即使优先级相同也不行 ) 或者主动放弃 ( 等待资源 ) 。

4 ,调度程序发现有优先级更高的任务到达 ( 高优先级任务可能被中断或定时器任务唤醒,再或被当前运行的任务唤醒,等等 ) ,则调度程序立即在当前任务堆栈中保存当前 cpu 寄存器的所有数据,重新从高优先级任务的堆栈中加载寄存器数据到 cpu ,此时高优先级的任务开始运行。重复第 3 步。

5 ,如果当前任务因等待资源而主动放弃 cpu 使 用权,则该任务将从就绪队列中删除,加入等待队列,此时重复第 3 步。

 

所有任务都采用 RR 调度 策略时

1 ,创建任务时指定调度参数为 RR ,并设置任务的实时优先级和 nice 值 (nice 值将会转换为该任务的时间片的长度 ) 。

2 ,如果没有等待资源,则将该任务加入到就绪队列中。

3 ,调度程序遍历就绪队列,根据实时优先级计算调度权值 (1000+rt_priority), 选择权值最高的任务使用 cpu 。

4 ,如果就绪队列中的 RR 任务 时间片为 0 ,则会根据 nice 值设置该任务的时间片,同时将该任务放入就绪队列的末尾。重复步 骤 3 。

5 ,当前任务由于等待资源而主动退出 cpu , 则其加入等待队列中。重复步骤 3 。

 

系统中既有分时调度,又有时 间片轮转调度和先进先出调度

 

1 , RR 调度和 FIFO 调度的进程属于实时进程,以分时调度的进程是非实时进程。

2 ,当实时进程准备就绪后,如果当前 cpu 正 在运行非实时进程,则实时进程立即抢占非实时进程。

3 , RR 进程和 FIFO 进程都采用实时优先级做为调度的权值标准, RR 是 FIFO 的一个延伸。 FIFO 时,如果两个进程的优先级一样,则这两个优先级一样的进程具体执 行哪一个是由其在队列中的未知决定的,这样导致一些不公正性 ( 优先级 是一样的,为什么要让你一直运行 ?), 如果将两个优先级一样的任务的调度策略都设为 RR, 则保证了这两个任务可以循环执行,保证了公平。

 

 

ISCE2+MintPy环境搭建实战:用Anaconda五分钟搞定InSAR处理全家桶 本文提供了一份详细的ISCE2+MintPy环境安装教程,旨在帮助InSAR处理初学者快速搭建开发环境。通过使用Anaconda创建虚拟环境并配置国内镜像,用户可在五分钟内一键安装ISCE2和MintPy全家桶,有效解决依赖冲突和版本兼容性问题,让用户能专注于数据处理本身。 阅读详情

相关推荐

蓄热式加热炉燃烧技术

蓄热式加热炉燃烧技术

weixin_37928884的博客 2733

linux进程的调度

进程状态 进程主要有7种状态:就绪状态、运行状态、轻度睡眠、中度睡眠、深度睡眠、僵尸状态、死亡状态。它们之间状态变迁如下: 进程描述符task_struct结构体中有个成员state专门用来描述进程的状态。 就绪状态:state为TASK_RUNNING,正在运行队列中等待调度器调度。 运行状态:state为TASK_RUNNING,被调度器命中,正在处理器中运行。 轻度睡眠:称为可打断的睡眠状态。state为TASK_INTERRUPTIBLE,可以被信号打断。 中度睡眠:state为TASK_KIL

m0_65931372的博客 6407

意图识别和纠错问题

可想而知,错误的意图识别会带来多大的负面影响。基于词典,就是对用户query内容和词典内容进行比对,比较常见的方式是序列标注问题里用的最大逆向匹配,通过这种方式找到词典里的实体词,匹配触发了自然就有意图了,而在词典匹配的时候,不是使用链表之类的来构造匹配结构,而是使用搜索树的结构,这种匹配的复杂度最低,速度也快,两者结合,其速度甚至比很多模型要快得多(基本上1ms以内就能完成),fasttext速度非常快,但是textcnn之类的其实就已经达到ms级别以上,bert甚至在10ms级别。

TURING.DT 4571

Linux进程调度

转自:深入理解Linux进程调度(0.4)_进程调度 城_城中之城的博客-优快云博客一、进程调度概览进程调度是操作系统最重要的内容之一,也是学习操作系统的重点和难点。关于进程本身的实现和管理请参看《深入理解Linux进程管理》。关于进程调度,我们首先就会问出一些问题,什么是进程调度,为什么要进程调度,如何进行调度。下面我们用一幅图把这些问题关联起来: 在这里插入图片描述 这张图把进程调度的所有问题和知识点都关联了起来,本文后面所有的内容都是对这张图的解释和扩展延伸,下面让我们来一一讲解。1.1 什么是调度

wmzjzwlzs的专栏 1574

Hermes Agent Windows安装教程:本地智能体离线部署实战

本地智能体(Local Agent)是一种运行在用户设备端、无需云端依赖即可响应自然语言指令并自动化执行任务的轻量级AI运行时框架。其核心原理基于配置驱动的任务监听与脚本调用机制,通过服务化驻留实现持续响应能力,技术价值在于保障数据隐私、规避API调用限制、适配内网及老旧系统环境。典型应用场景包括财务报表自动整理、科研仪器数据归档、IT资产变更通知等Windows桌面自动化需求。本文聚焦Hermes Agent这一主流开源实现,围绕Windows平台特有的服务注册、权限模型、杀软拦截、中文路径与YAML编码

weixin_34411563的博客 433

YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数

是一种基于IoU的损失函数,旨在解决目标检测中边界框回归损失函数在处理低质量训练数据时的问题。论文链接:https://arxiv.org/pdf/2301.10051 源码链接:https://github.com/Instinct323/wiou此处需要查看的文件是中定义了模型的损失函数和计算方法,我们想要加入新的损失函数就只需要将代码放到这个文件内即可将下方的函数替换原本的函数即可: 用于计算各种损失。在内修改如下代码,使模型调用此损失函数。 tal.py中是一些损失函数的功能应用。在内修改如下代码,

Limiiiing的博客 3795

【Linux内核系列】进程调度

Linux内核之进程管理

小鱼学编程 3194

基于数字图像处理方法的迷宫问题图解 : 基于骨架提取、四邻域

问题是,这条红色的线是人为标记出来的能通的路线,对计算机来看,黑色和红色的线没有任何差异,所以之前的想法压根不起作用。对应于数字图像的表达,就是从远离主干的分支端点出发,如果4邻域中只有一个可以通的道路,那么这个点在分支上。闪电划过,有一道连接了天空和大地,就是迷宫的解,其余的分支就是迷宫中对应的死路。类似这个闪电图,假设图中最粗的主干(迷宫解的路线)是最先形成的,其余的细小的分支是慢慢从主干上形成的。因此,只要在端点的4邻域中,找到可以走的道路,那么一定就是分支,也就是要移除的路线。

Henry的博客 2073

【操作系统】_7种进程调度算法

书中一共描述了七种进程调度算法,为了学到这几种调度算法,后边做了几道练习题。 1. 先来先服务(FCFS)调度算法 先来先服务调度算法是最简单的调度方法。其基本原则是,按照进程进入就绪队列的先后次序进行选择。对于进程调度来说,一旦一个进程得到处理机,它就一直运行下去,直到该进程完成任务或者因等待某事件而不能继续运行,才会让出处理机。先来先服务调度算法属于非剥夺方式。 从表面上看,这个方法对于所有进程都是公平的,并且一个进程的等待时间是可以预先估计的。但是从另一方面来说,这个方法并非公平,因为当一个大进程先到

weixin_43916755的博客 2万+

华为MetaERP在财务模块(GL/AP/AR/FA)及子账模块效率优化、月末关账加速、与外部系统对账方面,已形成一套**“并行+实时+智能化”**的完整技术方案

华为MetaERP推出"并行+实时+智能化"技术方案,显著提升财务模块效率:1)采用三级并行策略和内存计算,使子账模块单任务处理时间从142分钟降至9分钟;2)通过并行关账架构将月末关账时间从68小时压缩至7.2小时;3)运用AI智能对账提升效率50%,并支持异步流程和区块链审计。典型场景测试显示月结耗时下降89%,CPU利用率提升116%。方案建议分阶段实施,注意依赖分析、任务粒度设计和性能监控,避免过度并行。该方案已有效解决大型集团财务处理效率低、关账慢、对账难等痛点。

金牌架构师 557

3D高斯压缩黑科技开源!1GB场景压到42MB,Web3D迎来“WebP时刻”——SOG格式深度解析

Web3D迎来革命性突破!PlayCanvas开源全新3D高斯泼溅压缩格式SOG,将1GB场景压缩至仅42MB,体积缩小95%,加载速度提升10倍+。SOG通过将3D数据编码为WebP纹理+元数据,实现GPU零拷贝实时渲染,完美兼容WebGL/WebGPU。实测显示,4百万高斯点的场景在手机上1.5秒内完成加载,内存占用降低83%。这一技术突破为电商展示、虚拟旅游、工业设计等领域带来新机遇,开发者可通过开源工具链快速集成。SOG被誉为"3D界的WebP",有望成为下一代3D互联网的基础设

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 862

linux进程调度方法,Linux系统进程调度

主要参考:Linux manual page - sched概述自从linux内核2.6.23以来,默认的进程调度器就被设置为完全公平调度器(CFS,complete fair scheduler),取代了之前的O(1)调度器。每个线程都有一个静态调度优先级,即sched_priority字段。一个线程的调度策略决定了线程会被插入到同级静态优先级的线程队列的位置,以及它在队列中会怎样移动。所有的调...

weixin_39889642的博客 400

【漏洞复现】永恒之蓝 MS17-010 远程溢出漏洞(CVE-2017-0143)

文章目录声明前言一、漏洞原理简述二、漏洞代码深层解析三、实验步骤四、漏洞补丁总结 声明 本篇文章仅用于技术研究与技术学习,切勿用于非授权下攻击行为,切记! 前言 Windows7 存在 MS17-010 永恒之蓝(远程溢出漏洞) ,该漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码 一、漏洞原理简述 MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理FEA(File Ex

李同學AI安全 9627

linux进程调度方法简述

在 Linux2.6 中,仍有三种调度策略: SCHED_OTHER、SCHED_FIFO 和 SCHED_RR。   SCHED_ORHER:普通进程,基于优先级进行调度。   SCHED_FIFO:实时进程,实现一种简单的先进先出的调度算法。   SCHED_RR:实时进程,基于时间片的SCHED_FIFO,实时轮流调度算法。     前者是普通进程调度策略,后两者都是实时进程调度策略

laoniu_c的专栏 1329

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Linux中的进程调度方法简介

实时调度算法介绍  对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务。而一个由Donald Gillies提出的更加为大家接受的定义是:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型。硬实

lishitao_578的博客 924

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

操作系统 linux 内核的三种进程调度方法

1,SCHED_OTHER 分时调度策略; 2,SCHED_FIFO 实时调度策略,先到先服务; 3,SCHED_RR 实时调度策略,时间片轮转 。         实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了 cpu 最少的进程将会得到优先调度。

稚枭天卓 2925

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

转自:http://www.linuxdriver.cn/html/200712/387.htmlinux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR) linux内核的三种调度方法:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转 linux内核的三种调度方法:1,SCHED

loyal_baby的专栏 5259

Linux进程调度响应时间测试方法

目录Linux进程调度响应时间测试方法 Linux进程调度响应时间测试方法 环境:虚拟机Ubuntu18.04 内核版本:5.6.19 参考:linux内核添加模块

weixin_43739110的博客 1705

linux进程调度方法SCHED_OTHER,SCHED_FIFO,SCHED_RR

linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)linux内核的三种调度方法:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转linux内核的三种调度方法:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHE

flyingqr的专栏 830
上一篇: Linux 进程调度原理
下一篇: TCP的建立和拆除
wunderup
博客等级 码龄20年 13粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值