linux操作的进程调度没有采用,Linux进程调度分析

Computer Knowledge and Technology 电脑知识

与技术本栏目责任编辑:冯蕾

网络通讯及安全第7卷第1期(2011年1月)Linux 进程调度分析

钟诚,卢卫恒,李德勇

(江南计算技术研究所,江苏无锡214083)

摘要:Linux 系统作为能够应用于多平台的多任务操作系统,它被广泛应用于嵌入式电子产品中,linux 系统的效率就成为电子产品性能的重要因素之一。文章从linux 进程调度的角度来分析linux 系统的性能,对linux 进程调度的原理、算法以及过程进行了分析。关键词:进程调度;内核;多任务

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)01-0070-02

Linux Process Scheduling Analysis

ZHONG Cheng,LU Wei-heng,LI De-yong

(Jiangnan Computing Technology Institute,Wuxi 214083,China)

Abstract:The linux system is many task operate systems that can be applied to many platforms,it is extensively been applied to a built-in electronics product,the efficiency of linux system becomes one of the important factors of electronics product function.The article is from the angle that the linux progress adjusted a degree to analyze the function of linux system,adjusted principle,calculate way and process of degree to carry on analysis to the linux progress.

Key words:process scheduling;kernel;multitask

1概述

Linux 操作系统是一种开源、免费、能够运用于多平台的多任务操作系统。多任务操作系统就是能够同时并发的、交互的处理多进程任务的系统,然而多个进程的运行,就不可避免的竞争系统的资源,尤其是在单处理器系统上,进程就不可能同时占用处理器资源,这样进程调度就是Linux 内核不可或缺的成员,它是负责选择下一个可以运行的进程。进程调度程序可以看成在可运行态进程之间分配有限资源的内核子系统,它是多任务操作系统的基础,只有通过调度程序得合理调度,系统资源才会最大化的发挥它的作用,多进程才会有并发执行的效果。

2基本原理

2.1原则

进程的运行需要系统上的各种资源,如内存、cpu 、各种专用模块等,因此linux 进程的调度实际上就是合理的把这些资源分配给各个进程,而如何分配则是取决于具体的调度算法,不同的应用场合需要的资源存在着很多差异,选用什么样的调度算法要依据具体的资源分配策略。一个好的调度算法应该注意以下方面:

1)高效率:使CPU 尽可能的保持忙碌、最大限度地利用处理器的原则是,只要有可以执行的进程,那么就总会有进程正在执行。2)公平:保证每个进程得到合理的资源分配时间,避免一个进程长期占用同一个资源,不存在一个进程长时间获得不到资源。3)响应时间:使进程切换或获取资源时的相应时间尽可能的短,以最快的速度进入到工作状态。

4)周转时间:使得用户等待结果输出的时间尽可能短。

5)吞吐量:使得在单位时间内尽可能多的处理进程。

2.2调度的依据

调度程序在运行时,它主要依据每个进程的task_struck 结构中need_resched 、nice 、counter 、policy 和rt_priority 各项根据不同的分配策略依靠调度算法决定下一个要执行的进程。

1)need_resched :当进程需要进行调度的时候,会去判断这个变量的值,如果为1,则会调用schedule()。

2)counter :时间片,它表明一个进程处于运行状态所能够持续的时间,每当一个时钟中断到来时,就会减1,当它的值减少为0时,会把need_resched 变量置1,此时进程将会进入到调度队列从而不再运行。调度策略都要给每个进程规定一个默认的时间片,这个时间片的长度要合理的设置,时间片过长,会导致一个进程长时间占用资源,这样进程的交互性就差,其它进程也难以公平的获得资源;时间片过短,会使进程频繁的切换,进程切换的时间所占比例增大,从而致使CPU 的效率降低。

3)nice :进程的静态优先级,根据优先级的高低来确定不同进程的counter 的初值。调度算法中最基本的一类就是基于优先级的调度,它根据进程在系统中的重要程度以及所需的CPU 处理时间而分级,优先级高的先执行,低的后执行,同优先级的按照轮转的方式执行。调度程序总是选择优先级最高并且时间片还没有使用完的进程首先执行,因此可以通过修改进程的优先级控制进程的调度。

4)rt_priority :进程的动态优先级,一般每个进程都会有一个基本优先级,调度程序可以在实际运行过程中,根据需要动态提高或降低该值,可以控制进程的调度。

收稿日期:2010-11-02

作者简介:钟诚(1986-),男,助理工程师,江南计算技术研究所硕士研究生,主要研究方向为信息安全。

E-mail:info@http://www.doczj.com/doc/d6abd36ca98271fe910ef9a3.html http://www.doczj.com/doc/d6abd36ca98271fe910ef9a3.html Tel:+86-551-56909635690964ISSN 1009-3044

Computer Knowledge and Technology 电脑知识与技术Vol.7,No.1,January 2011,pp.70-7170

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值