`
emowuyi
  • 浏览: 1509302 次
文章分类
社区版块
存档分类
最新评论

linux内核之进程调度(一)

 
阅读更多


等待队列

Sleep相关函数将进程的状态设置为非运行态,在下一次调度来时,将在schedule函数中将本进程从运行队列中移除。sleep函数将进程加入等待队列,然后调用schedule函数选择并重新开始另一个程序的执行。当调用wake_up类函数将进程唤醒时,wake_up类函数将进程加入运行队列中,调度程序重新从sleep函数中下一条没有执行的指令开始执行。

sleep类函数都调用sleep_on_common函数实现,只是传入的参数有别。


我们看唤醒函数,default_wake_function最终调用函数try_to_wake_up


所有的wake_up类函数都最终调用__wake_up_common函数实现


wait_event方式

考虑到sleep_on类函数在以下条件中不能使用,那就是必须测试条件并且当条件还没哟得到验证时又紧接着让进城去睡眠;为实现这样的功能,内核采用wait_event的方式实现。

当下一次调度到来时,调度程序把设置为非运行的当前进程从运行队列里面删除,而进程被wake_up类函数唤醒时,wake_up类函数将其加入运行队列,继续执行上面没有执行完成的wait_event函数(执行finish_wait函数),finish_wait函数将其从等待队列中删除。


分享到:
评论

相关推荐

    LINUX内核的进程调度策略.doc

    Linux内核的进程调度策略是操作系统的核心组成部分,它决定...总结来说,Linux内核的进程调度策略是一个复杂而精细的设计,它平衡了系统效率、公平性和实时性。理解这些概念对于优化系统性能和开发高效的应用至关重要。

    Linux内核的进程调度原理及改进算法研究.pdf

    《Linux内核的进程调度原理及改进算法研究》这篇论文深入探讨了Linux内核的进程调度机制,并提出了改进算法以提升实时性能。在嵌入式操作系统领域,Linux由于其稳定性和灵活性,已经占据了重要的位置。然而,对于...

    Linux内核2.6进程调度分析与改进.pdf

    在本文中,作者杨静、李炜、万峰松和吴建国主要分析了Linux内核2.6的进程调度机制,并提出了针对实时性问题的改进策略。Linux内核2.6是Linux操作系统的一个重要版本,它在实时性方面有所提升,但仍然存在一些挑战,...

    LINUX2.6内核进程调度策略分析.pdf

    "LINUX2.6内核进程调度策略分析" 本文将对LINUX2.6内核进程...LINUX2.6内核进程调度策略是一个高效的、实时的、公平的进程调度系统,它解决了LINUX2.4内核中的缺陷,对实时应用和多处理器环境的支持都有了较大改善。

    Linux 2.6内核进程调度策略与算法分析.pdf

    Linux 2.6内核进程调度策略与算法分析是Linux操作系统中非常重要的一部分。Linux 2.6内核采用了新的调度器,该调度器基于O(1)算法,取消了全局同步和重算循环,每个CPU分配时间片。文中详细分析了新调度器的策略和...

    Linux内核进程调度与控制的实现.pdf

    Linux 内核进程调度与控制的实现 Linux 操作系统 是一种功能强大、遵守 POSIX 标准、与 Unix 兼容的操作系统,其中进程调度与控制是整个 Linux 系统的核心部分。 Linux 内核由五个主要的子系统组成:进程调度 ...

    Linux内核中进程调度的分析.pdf

    "Linux内核中进程调度的分析" 本文是对Linux内核中进程调度机制的深入分析。进程是操作系统实现并发执行、系统资源共享、用户随机使用系统等功能的重要概念。在Linux内核中,进程的表示方式是通过进程控制块(PCB)...

    Linux内核的进程调度.pdf

    进程调度是操作系统的核心组件之一,对系统的性能和可靠性有着至关重要的影响。 一、进程调度的原理 在Linux内核中,进程调度是通过对进程的状态和优先级进行管理实现的。进程状态包括Running、Interruptible、...

    Linux内核中进程调度的分析.PDF

    Linux内核中进程调度的分析.PDF

    Linux进程调度算法分析

    * Linux2.6.x 内核进程调度算法:设计了全新的数据结构和调度算法,为实时进程(SCHED_FIFO/SCHED_RR)提供 O(1)时间复杂度的调度算法,同时,为了兼顾“完全公平”这一设计思路,设计了 CFS 调度器,为普通进程...

    linux内核简介,进程管理,进程调度等等

    这个压缩包包含了关于Linux内核的深入讲解,特别是关于进程管理和进程调度的内容。 首先,让我们从Linux内核的简介开始。Linux内核是由林纳斯·托瓦兹开发的开源操作系统内核,它遵循GNU General Public License,...

    linux源代码分析--进程调度部分

    在深入探讨Linux内核源代码的进程调度机制之前,我们首先要理解操作系统中的“进程调度”概念。进程调度是操作系统核心的重要组成部分,负责管理系统的执行流程,确保系统资源的高效利用。在Linux系统中,进程调度器...

    Linux内核分析之调度算法.doc

    Linux 内核分析之调度算法是 Linux 内核中的一种用于进程调度的机制。调度算法的主要目标是将有限的 CPU 资源分配给多个进程,以提高系统的整体性能和效率。 Linux 调度算法在 2.6.32 中采用调度类实现模块式的...

    深入理解LINUX内核(中文第三版)第七章 进程调度

    这一机制在Linux内核中被称为进程调度。进程调度涉及决定何时进行进程切换以及选择哪个进程来运行的策略、算法和系统调用。 在进程调度策略方面,传统Unix系统需要平衡多个目标:尽可能减少进程响应时间、最大化...

    Linux2.6进程调度机制的剖析.pdf

    Linux2.6进程调度机制是 Linux 操作系统 的核心组件之一,对系统的整体性能有着直接的影响。 Linux2.6 内核相比 Linux2.4 内核,在进程调度机制上有了很大的改进,实现了 O(1) 调度算法,支持抢占式调度,并增强了对...

    Linux内核分析(进程与进程调度) 北航软件学院课件

    北航软件学院的Linux内核分析课程深入探讨了Linux操作系统的核心机制之一:进程与进程调度。本课程不仅覆盖了理论知识,还提供了实践指导,通过分析关键源代码帮助学生理解Linux内核的工作原理。以下是基于课件资料...

    LINUX内核调度原理

    Linux内核调度原理是Linux操作系统的核心部分之一,它负责管理和分配系统资源,确保系统的高效运行和稳定性。本文将深入探讨Linux内核调度原理的基本概念和算法,包括进程调度、优先级调度、实时进程和一般进程的...

Global site tag (gtag.js) - Google Analytics