导航:首页 > 编程系统 > linux任务调度

linux任务调度

发布时间:2021-10-25 07:57:52

『壹』 linux的任务调度机制是什么

调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选专择进程的依据是什属么呢?在每个进程的task_struct结构中有以下四 项:policy、priority、counter、rt_priority。这四项是选择进程的依据。其中,policy是进程的调度策略,用来区分 实时进程和普通进程,实时进程优先于普通进程运行;priority是进程(包括实时和普通)的静态优先级;counter是进程剩余的时间片,它的起始 值就是priority的值;由于counter在后面计算一个处于可运行状态的进程值得运行的程度goodness时起重要作用,因此,counter 也可以看作是进程的动态优先级。rt_priority是实时进程特有的,用于实时进程间的选择。
Linux用函数goodness()来衡量一个处于可运行状态的进程值得运行的程度。该函数综合了以上提到的四项,还结合了一些其他的因素,给每个处于 可运行状态的进程赋予一个权值(weight),调度程序以这个权值作为选择进程的唯一依据。关于goodness()的情况在后面将会详细分析。

『贰』 在Linux 9中,cron用来周期性的进行任务调度,请列出cron任务的格式,如果要月运行一次,怎么设置请说

1)、cron的格式为
minute hour day month dayofweek command
* * * * *
入果要一月运行一次的话,格式是:
N(0-59) N(0-23) N(1-31) * * command
也可以举例说明。

2)、法一:用crontab命令逐行进行输入,按“ctrl+d”退出。
法二:用crontab –e 命令,用编辑器对文件进行编辑。
可用crontab –l 显示cron信息
3)、/etc/init.d/crond 文件是cron 的服务程序运行脚本;
/etc/crontab是Linux系统维护所需的任务,一般不需要人为修改;
/etc/下的 cron.daily, cron.hourly, cron.monthly, cron.weekly的目录,存放相应的系统执行任务;
/var/spool/cron/用户名 是保存此用户的cron任务的文件。
还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。

『叁』 在Linux 9中,cron用来周期性的进行任务调度,

1)、cron的格式为

minute hour day month dayofweek command

* * * * *

入果要一月运行一次的话,格式是:

N(0-59) N(0-23) N(1-31) * * command

也可以举例说明。

2)、法一:用crontab命令逐行进行输入,按“ctrl+d”退出。

法二:用crontab –e 命令,用编辑器对文件进行编辑。

可用crontab –l 显示cron信息

3)、/etc/init.d/crond 文件是cron 的服务程序运行脚本;

/etc/crontab是Linux系统维护所需的任务,一般不需要人为修改;

/etc/下的 cron.daily, cron.hourly, cron.monthly, cron.weekly的目录,存放相应的系统执行任务;

/var/spool/cron/用户名 是保存此用户的cron任务的文件。

更多资料请查看《Linux就该这么学》。

『肆』 怎么评判linux系统调度最优

你是指定时任务调度吗?简单的一个crontab就可以帮你解决定时调度问题: crontab -e 编写crontab任务,可以定时具体到哪天哪分哪秒,很灵活

『伍』 linux进程调度的三种策略是什么

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,则保证了这两个任务可以循环执行,保证了公平。

Ingo Molnar-实时补丁
为了能并入主流内核,Ingo Molnar的实时补丁也采用了非常灵活的策略,它支持四种抢占模式:
1.No Forced Preemption (Server),这种模式等同于没有使能抢占选项的标准内核,主要适用于科学计算等服务器环境。
2.Voluntary Kernel Preemption (Desktop),这种模式使能了自愿抢占,但仍然失效抢占内核选项,它通过增加抢占点缩减了抢占延迟,因此适用于一些需要较好的响应性的环境,如桌面环境,当然这种好的响应性是以牺牲一些吞吐率为代价的。
3.Preemptible Kernel (Low-Latency Desktop),这种模式既包含了自愿抢占,又使能了可抢占内核选项,因此有很好的响应延迟,实际上在一定程度上已经达到了软实时性。它主要适用于桌面和一些嵌入式系统,但是吞吐率比模式2更低。
4.Complete Preemption (Real-Time),这种模式使能了所有实时功能,因此完全能够满足软实时需求,它适用于延迟要求为100微秒或稍低的实时系统。
实现实时是以牺牲系统的吞吐率为代价的,因此实时性越好,系统吞吐率就越低。

『陆』 关于linux的调度算法

Linux2.6
版本
Linux
内核使用了新的调度器算法,它是由
Ingo
Molnar开发的
O(1)调度器算法。它在高负载的情况下极其出色,并且对处理器调度有很好的扩展。
Linux2.4
版本的标准调度器中,使用时间片重算的算法。这种算法要求在所有的进程都用尽时间片以后,重新计算下一次运行的时间片。这样每次任务调度的花销不确定,可能因为计算比较复杂,产生较大调度延迟。特别是多处理器系统,可能由于调度的延迟,导致大部分处理器处于空闲
状态,影响系统性能。
新的调度器采用
O(1)的调度算法,通过优先级数组的数据结构来实现。优先级数组可以使每个优先级都有相应的任务队列,还有一个优先级位图,每个优先级对应位图中一位,通过位图可快速执行最高优先级任务。因优先级个数是固定的,所以查找的时间也固定,不受运行任务数的影响。
新的调度器为每个处理器维护
2
个优先级数组:有效数组和过期数组。有效数组内任务队列的进程都还有可以运行的时间片;过期数组内任务队列的进程都没有时间片可以执行。当一个进程的时间片用光时,就把它从有效数组移到过期数组,并且时间片也已经重新计算好了。当需要重新调度这些任务的时候,只要在有效数组和过期数组之间切换就好了。这种交换是O(1)算法的核心。
关于该算法的更多内容,google
一下!

『柒』 linux和ucosiii线程的任务调度的区别

任务切换本质是靠tick中断和实时系统中的任务调度的 在arm芯片中即SysTick Timer,其1个tick产生一次中断,1个tick对实时系统算作一个时间片 在实时系统中,高优先级的任务可以嵌套即打断低优先级任务 在实时系统中,高优先级的任务进入挂起状态。

『捌』 如何设置linux 的计划任务

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任务调度的crond常驻命令
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
1、linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
2.crontab命令选项:
-u指定一个用户,
-l列出某个用户的任务计划,
-r删除某个用户的任务,
-e编辑某个用户的任务
3.cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
4.记住几个特殊符号的含义:
"*"代表取值范围内的数字,
"/"代表"每",
"-"代表从某个数字到某个数字,
","分开几个离散的数字
一、任务调度设置文件的写法
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

举例如下:
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
二、新增调度任务
新增调度任务可用两种方法:
1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
三、查看调度任务

crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
四、删除任务调度工作
crontab -r //删除所有任务调度工作
五、任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行结果及错误信息。
编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了
例如: 1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
11 2 21 10 * rm -rf /mnt/fb

『玖』 linux中设置任务调度两种方法:/etc/crontab文件和crontab -e命令,两种方式有什功能上的区别

修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等等,推荐这种方法。

crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。

『拾』 在linux系统下如何实现任务调度

你是指定时任务调度吗?简单的一个crontab就可以帮你解决定时调度问题:
crontab -e 编写crontab任务,可以定时具体到哪天哪分哪秒,很灵活

阅读全文

与linux任务调度相关的资料

热点内容
不要下载免费电影 浏览:852
贵阳有情侣座的电影院 浏览:983
天堂网在线免费观看 浏览:733
win10左面文件在哪个夹 浏览:549
成都动游天下网络技术有限公司 浏览:460
怎样一键更改文件格式mkv 浏览:994
都市重生收母收姐妹txt 浏览:99
appstore不能搜索 浏览:794
看客电影 浏览:57
关于蛇变人的香港电影 浏览:769
中文肉电影 浏览:971
萧楼晋江 浏览:308
电影院电影布 浏览:294
无广告免费电影网址 浏览:104
男主通过药物控制女主 浏览:763
wordgirl 浏览:387
数据可视化技术指标是什么 浏览:472
淘宝全屏海报显示代码 浏览:715
缉魂台湾原版130分钟百度云 浏览:977
香港三级古装喜剧电影 浏览:753

友情链接