美文网首页linux
Linux内核学习012——进程调度(一)

Linux内核学习012——进程调度(一)

作者: 若梦儿 | 来源:发表于2019-02-07 19:57 被阅读36次

Linux内核学习012——进程调度(一)

进程是程序运行态的表现形式,而确保进程有效工作的是一个内核子系统——调度程序。调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间。进程调度程序可以视为可运行态进程之间分配有限处理器时间资源的内核子系统。调度程序是多任务操作系统的基础,只有通过调度程序的合理调度,系统资源才能最大限度发挥作用。

多任务

多任务操作系统是能同时并发地加交互执行多个进程的操作系统。无论是单处理器或者多处理器上,多任务操作系统都能使多个进程处于堵塞或者睡眠状态。处于这种状态的进程,并未真正运行,而是在等待某些事件发生(比如:键盘输入、网络数据、文件I/O等)。

进程调度可以发生在四种环境下:

  1. 当一个进程从运行状态切换到等待状态
  2. 当一个进程从运行状态切换到就绪状态
  3. 当一个进程从等待状态切换到就绪状态
  4. 当一个进程终止时

若调度只能发生在1、4时,称为非抢占式调度,否则为抢占式调度。Linux支持抢占式调度,由调度程序来决定何时停止一个进程的运行,以便其他进程能够得到执行机会。这个强制的挂起动作称为抢占。进程每次运行都被分配了一个固定的时间段,称为进程的时间片——即分配给每个可运行进程的处理器时间段。有效管理时间片能够使得调度程序从全局角度做出决定,并且可以避免陷入死循环的进程独占整个系统资源。现代操作系统对程序运行采用了动态时间片计算的方式,并且引入了可配置的计算策略。

在非抢占式调度的情况下,除非进程主动停止,否则会一直运行。进程主动挂起自己的操作称为让步。但是该机制存在很多缺点:调度程序无法规定每个进程的运行时间,以及陷入死循环的进程会导致系统崩溃。

相关文章

  • Linux内核学习013——进程调度(二)

    Linux内核学习013——进程调度(二) Linux的进程调度 早期版本(1~2.4)的Linux内核中,调度程...

  • Linux内核学习012——进程调度(一)

    Linux内核学习012——进程调度(一) 进程是程序运行态的表现形式,而确保进程有效工作的是一个内核子系统——调...

  • Linux内核学习014——进程调度(三)

    Linux内核学习014——进程调度(三) Linux调度算法 在Linux中,调度器是以模块方式提供的,这样可以...

  • 进程调度

    目标 本章将讨论Linux内核是如何进行进程调度的,进程调度程序(也称为调度器)的工作与实现原理。 进程调度程序负...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

  • Linux进程调度

    Linux进程调度是通过内核子系统:进程调度程序完成的。进程调度程序决定投入运行的进程、何时运行已经运行时长。从这...

  • Linux内核裁剪及编译

    [TOC] Linux内核裁剪及编译可加载模块 Linux基础知识 linux内核组要由五个子系统组成: 进程调度...

  • linux中的调度

    linux系统的线程是内核线程,所以linux系统的调度是基于线程而不是基于进程的 为了进行调度,linux系统将...

  • Linux内核进程调度

    [TOC] ## 多任务操作系统的两种形式: 1. 抢占式多任务操作系统 2. 协同式多任务操作系统 ## 进程分...

  • Linux主要特性

    Linux教程 Linux主要特性 Linux优点 模块化程度高 Linux的内核设计非常精巧,分成进程调度、内存...

网友评论

    本文标题:Linux内核学习012——进程调度(一)

    本文链接:https://www.haomeiwen.com/subject/phygsqtx.html