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

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

  1. linux操作系统安装自定义分区,CentOS linux操作系统安装图文教程

    目前linux操作系统安装方法非常多,我们可以通过一些常用的U盘启动盘工具制作对应的启动 U 盘后,然后再进行安装 Linux 系统即可.以下是今天给大家分享的 CentOS linux操作系统安装图 ...

  2. 飞利浦linux手机,飞利浦968手机 采用Linux系统

    飞利浦968手机 飞利浦的第一款采用Linux系统,高端定位的智能手机飞利浦 968,从去年上市之初,就凭借其强大的功能.不俗的外表,再加之难能可贵.适中的价格,在市场中受到了不少的关注. 飞利浦 9 ...

  3. linux操作指令训练,实验二linux 常用命令练习

    一.使用简单的命令:date,cal,who,echo,clear等,了解linux命令格式. 1.date系列命令,用来显示日期:     2.cal系列命令,用来显示日历: 3.who系列命令,用 ...

  4. linux操作界面如何设置网关,linux网关如何设置

    设置linux网关的方法:首先使用xshell登录linux服务器:然后使用ip add查看本机地址,并手动增加一条路由:最后将route add命令写入配置文件里即可. [相关文章推荐:linux教 ...

  5. linux操作系统安装man,在deepin linux系统终端中安装man的中文手册

    本文教你在深度deepin linux操作系统终端中安装man的中文手册的方法,当前manjaro系统的man的中文手册相当的好,在deepin的lion源中也可以安装man的中文手册,可参考解决de ...

  6. Linux操作Oracle(1)——Linux下 Weblogic启动关闭方法

    方法1:使用脚本执行 进入wls安装目录中,使用脚本命令启动 关闭 运行.sh脚本文件,命令格式: ./startWeblogic.sh 方法2:使用命令ps -ef | grep 'weblogic ...

  7. Linux操作系统管理公共基础——积累

    20170609 16:00 备注:本篇博文,借鉴新浪博客中用博文积累文学知识.英语词汇的好习惯的成功养成,这里同样是一篇知识积累型的博文,用于记录任何.各种关于Linux系统技术的新发现.这些技术多 ...

  8. Linux操作系统文档

      一. Linux操作系统概述 l 为什么要学习Linux操作系统: 1. 大部分服务端都是使用Linux操作系统(Django,爬虫,科学运算等项目是部署到服务器中的) 2. 一些企业和学校(国外 ...

  9. 第一章 Linux操作系统概述

    接下来我将根据<Linux C编程完全解密>这本书,整理Linux系列相关笔记,并写成文章.本文将是该系列文章的第一篇. 第1章 Linux操作系统概述 1.1 认识Linux操作系统 1 ...

最新文章

  1. cpio/rpm2cpio 命令
  2. 桌面虚拟化“寻人行动”-转裁
  3. opencv图像处理
  4. Nginx 作为代理服务与负载均衡
  5. 利用数据集在水晶报表中显示图像
  6. 完整的连接器设计手册_Harwin连接器展示在深井探油应用中不受环境影响的价值...
  7. 牛客题霸 [矩阵乘法] C++题解/答案
  8. 关于在asp.net中textbox文本输入框中的汉语标点符号显示位置的问题
  9. Java正则获取a标签href_正则表达式,同时获取a标签里的href,text 的值
  10. Go 单元测试--Mock接口实现和对接口打桩
  11. 微信群打卡小程序_微信群不好管理?这几款小程序帮你管理微信群
  12. 测试工具大全http://blog.csdn.net/vincetest/archive/2006/12/12/1440353.aspx
  13. 在系统中增加各银行卡刷卡消费分析
  14. HTTP 返回状态码
  15. 微信小程序推广方式有哪些?
  16. 在线教育数据分析实战项目案例
  17. jQuery源码分析系列目录
  18. 记一个typeorm问题 Main alise is not set
  19. Android 亮屏流程分析
  20. mac mini调整屏幕亮度

热门文章

  1. “另类”计算IP地址和子网划分
  2. 实用必备:可以迅速让你出口成章的英语短语
  3. java怎么实现华为云文字识别,OCR文字识别服务快速入门教程
  4. Java性能优化从20s优化到500ms,我用了这三招,内容知识满满
  5. 详解网易AI布局,三大AI产品矩阵浮出水面
  6. linux systemd.service说明
  7. sqlserver+asp.net+devextreme从零开始(1)
  8. 机器学习、数据挖掘、统计建模的技术担当,20款免费预测分析软件
  9. 晶振并联 1_10M电阻 稳定
  10. 【项目实战课】基于Pytorch的InceptionNet花卉图像分类实战