Linux的调度程序是一个叫Schedule()的函数,由它来决定是否要进行进程的切换。而所谓的调度时机则是在什么情况下执行调度程序。

主要有一下几种状况:

1、进程状态转换的时刻:进程终止、进程睡眠;

2、当前进程的时间片用完时(current->counter=0);

3、设备驱动程序

4、进程从中断、异常及系统调用返回到用户态时;

时机1,进程要调用sleep()或exit()等函数进行状态转换,这些函数会主动调用调度程序进行进程调度;

时机2,由于进程的时间片是由时钟中断来更新的,因此,这种情况和时机4是一样的。

时机3,当设备驱动程序执行长而重复的任务时,直接调用调度程序。在每次反复循环中,驱动程序都检查need_resched的值,如果必要,则调用调度程序schedule()主动放弃CPU。

时机4,如前所述,不管是从中断、异常还是系统调用返回,最终都调用ret_from_sys_call(),由这个函数进行调度标志的检测,如果必要,则调用调用调度程序。

那么,为什么从系统调用返回时要调用调度程序呢?这当然是从效率考虑。从系统调用返回意味着要离开内核态而返回到用户态,而状态的转换要花费一定的时间,因此,在返回到用户态前,系统把在内核态该处理的事全部做完。

下面简单看一下每个时钟中断发生时内核要做的工作,首先对这个最频繁的调度时机有一个大体了解,然后再详细讨论调度程序的具体工作过程。

每个时钟中断(timer interrupt)发生时,由三个函数协同工作,共同完成进程的选择和切换,它们是:schedule()、do_timer()及ret_form_sys_call()。

schedule():进程调度函数,由它来完成进程的选择(调度);

do_timer():暂且称之为时钟函数,该函数在时钟中断服务程序中被调用,是时钟中断服务程序的主要组成部分,该函数被调用的频率就是时钟中断的频率即每秒钟100次(简称100赫兹或100Hz);

ret_from_sys_call():系统调用返回函数。

当一个系统调用或中断完成时,该函数被调用,用于处理一些收尾工作,例如信号处理、核心任务等等。

全部

linux的进程调度时机,Linux进程调度时机怎么把握?相关推荐

  1. Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)

    日期 内核版本 架构 作者 GitHub CSDN 2016-07-01 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 ...

  2. linux系统中的进程调度采用( ),Linux系统中的进程调度.ppt

    Linux系统中的进程调度.ppt 第3章 处理机调度 本章重点 3.1 调度级别 3.2 作业调度 3.3 进程调度 一.基本概念 二.调度级别 一.基本概念 处理机调度是操作系统的重要功能之一,其 ...

  3. 浅谈操作系统是如何工作的及简单的进程调度的linux实现

    浅谈操作系统是如何工作的及简单的进程调度的linux实现 1)进程的启动和切换机制 a)进程的启动机制 保存ebp的值到栈, 将esp的值保存在prev->thread.sp,在下一步esp的值 ...

  4. 操作系统之进程调度 (十一) --- 进程调度的时机、进程调度的方式、进程调度的狭义与广义...

    文章目录 进程调度 进程调度的时机 对遗留问题的解释 进程调度的方式 进程调度的狭义与广义 总结 感谢 进程调度 进程调度的时机 在上篇中说到,进程调度(低级调度),就是按照某种算法从就绪队列中选择一 ...

  5. linux 进程调度 内存,linux学习的任督二脉-进程调度和内存管理

    转自 宋宝华老师的博客 原文:https://blog.csdn.net/21cnbao/article/details/77505330 内功心法 学习或遇到问题时,反过来主动思考如果我是设计者,我 ...

  6. linux 进程调度ppt,371Linux进程调度.PPT

    371Linux进程调度 第3章 处理机调度 本章重点 3.1 调度级别 3.2 作业调度 3.3 进程调度 一.基本概念 二.调度级别 一.基本概念 处理机调度是操作系统的重要功能之一,其调度策略决 ...

  7. linux 进程调度卡死,linux进程调度之总章:一些片汤话

    最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境,就像盲人摸象,学到一些东 ...

  8. linux 进程管理 ppt,Linux内核结构与进程管理.ppt

    Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...

  9. linux 内核 课程,Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频教 ......

    课程名称 Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频 课程目录 (1)\1, 计算机是如何工作的?:目录中文件数:0个 (2)\2, 操作系统 ...

  10. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

最新文章

  1. android简化log输出方法
  2. 二叉排序树(c/c++)
  3. 开发自己的区块链基础功能篇
  4. I/O复用之 EPOLLONESHOT 事件
  5. 机器学习近年来之怪现状
  6. php 正则断言里面使用*+
  7. 图卷积神经网络GCN ---如何在交通预测中考虑网络拓扑结构
  8. Unity3D AssetBundle相关
  9. 苹果计算机打音乐,给苹果手机“隔空投送”更多的音乐和文件!
  10. 什么算法计算地图上从A点到B点的方向?
  11. 谷歌浏览器设置信任_Win10谷歌浏览器添加信任网址/站点的方法
  12. logistics回归分析——二元逻辑回归
  13. 图灵学院:淘宝大秒系统设计详解
  14. 五边形创意画_儿童美术创意绘画图片_儿童美术创意绘画作品
  15. mac mail 删除邮件服务器,这是在Mac上的Mail中自动删除垃圾电子邮件的方法
  16. MySql 查询语句替换换行符
  17. 网管软件 LANDesk的配置(视频配截图)
  18. 织梦CMS建站入门学习(二)
  19. 2022 哪些企业在考虑 IDaaS ?IDaaS 适合我们企业么?
  20. 三维深度学习之pointnet系列详解(一)

热门文章

  1. 10大开源的Web应用防火墙介绍
  2. 【Java】轻松掌握栈的基本操作
  3. 分页计算总页数的算法
  4. 亚伟计算机速录测试软件,亚伟中文速录机
  5. STM32 中断优先级设置或配置
  6. 智慧海关大屏可视化决策系统
  7. 山东自然人电子税务局(扣缴端)_好消息!自然人电子税务局人员信息删除操作指南发布,速领!...
  8. 国之骄傲,清华IT大牛带领一群年青程序员叫板美国!
  9. WAP、WIFI、CMWAP、CMNET上网方式的区别与联系
  10. 小程序统一服务消息接口