linux系统中进程调度所采用的策略,Linux系统中进程调度策略

1-118-png_6_0_0_45_1224_37_22_841.5_1264.5-200-0-0-200.jpg

2009年第5期商丘职业技术学院学报Vol.8,No.5    第8卷(总第44期)JOURNALOFSHANGQIUVOCATIONALANDTECHNICALCOLLEGEOct.,2009文章编号:1671-8127(2009)05-0042-03

Linux系统中进程调度策略

葛 君1,2,郑凤婷2

(1.软件工程国家重点实验室(武汉大学),湖北武汉,430072;2.商丘职业技术学院,河南商丘,476000)

摘 要:Linux是一个多用户多任务的操作系统.Linux中实现了对多个进程公平、高效的调度,并不是采用单

一的调度策略,而是几种调度策略有机地综合应用.

关键词:进程调度;优先级;时间片轮转;实时进程

中图分类号:TP31617            文献标识码:A

在任何一种操作系统中,进程调度一直是一个核心问题,进程调度策略的选择对整个系统性能有至关重要的影响.一个好的调度算法应该考虑很多方面:公平、有效、响应时间、周转时间,但这些因素之间又是相互矛盾的,最终的取舍根据系统要达到的目标而定.本文以,分析其进程调度策略,以期对进程调度过程有更深层次的认识.

1 Linux的进程调度

Linux支持多进程,进程控制块)是系统中最为重要的数据结构之一,用来存放进程所必需的各种信息.,包括进程的类型、进程状态、优先级、时钟信息等.

Linux()函数执行.这是一个只在内核态运行的函数,函数代码为所有进程共享.

2 Linux进程调度时机

Linux的进程调度时机与现代操作系统中的调度时机基本一致,为了判断是否可以执行内核的进程调度程序来调度进程,Linux中设置了进程调度标志need_resched,当标志为1时,可执行调度程序.通常,Linux调度时机分以下两种情况:(1)主动调度:指显式调用schedule()函数明确释放CPU,引起新一轮调度.一般发生在当前进程状态改变,如:进程终止、进程睡眠、进程对某些信号处理过程中等.(2)被动调度:指不显示调用schedule()函数,只是PCB中的need_resched进程调度标志,该域置位为1将引起新的进程调度,而每当中断处理和系统调用返回时,核心调度程序都会主动查询need_resched的状态(若置位,则主动调用schedule()函数).一般发生在新的进程产生时、某个进程优先级改变时、某个进程等待的资源可用被唤醒时、当前进程时间片用完等.

3 Linux进程调度策略

一般来说,不同用途的操作系统的调度策略是不同的.Linux进程调度是将优先级调度、时间片轮转法调度、先进先出调度综合起来应用.Linux系统中,不同类型的进程调度策略也不一样.

3.1 与进程调度相关的数据结构

每个进程都是一个动态的个体,其生命周期依次定义的数据结构为:TASK_RUNNING,TASK_INTER2RUPTIBLE,TASK_UNINTERRUPTIBLE,TASK_ZOMBIE和TASK_STOPPED.一个进程在其生存期间,状态会发生多次变化.

收稿日期:2009-04-02

作者简介:葛 君(1983—)女,河南商丘人,软件工程国家重点实验室(武汉大学)在读工程硕士,主要从事计算机操作系统及数据库

研究.

42

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值