概述
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说“某某函数比某某函数效率高XX倍”一样,脱离了实际环境,这些结论是比较片面的。
而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对 TASK_RUNNING 状态的进程进行调度。如果进程不可执行(正在睡眠或其他),那么它跟进程调...
分类:
系统相关 时间:
2015-04-09 22:00:04
阅读次数:
274
进程的描述ulk那个大图 for task_struct提纲挈领,看代码前总览
序言 进程控制块PCB——task_struct为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。
struct task_struct数据结构很庞大Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢...
分类:
系统相关 时间:
2015-04-07 23:33:39
阅读次数:
382
摘要:本文主要介绍进程资源和进程状态.进程资源由两部分组成:内核空间进程资源以及用户空间进程资源.进程状态,就绪/运行状态、等待状态(可以被中断打断)、等待状态(不可以被中断打断)、停止状态和僵死状态....
分类:
其他好文 时间:
2014-10-10 12:01:54
阅读次数:
226
一、概述
首先简单介绍一下基本的设计思路,
CFS思路很简单,就是根据各个进程的权重分配运行时间(权重怎么来的后面再说)。
进程的运行时间计算公式为:
分配给进程的运行时间 = 调度周期 * 进程权重 / 所有进程权重之和 (公式1)
调度周期很好理解,就是将所有处于TASK_RUNNING态进程都调度一遍的时间,
差不多相当于O(1)调度算法中运行队列和过期队列切换一次的时间...
分类:
系统相关 时间:
2014-09-19 23:58:46
阅读次数:
654
COPY FROM:http://www.2cto.com/os/201204/127771.html1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, ...
分类:
系统相关 时间:
2014-09-05 15:41:41
阅读次数:
397
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结...
分类:
Web程序 时间:
2014-06-25 16:04:52
阅读次数:
384
最近看epoll 和 select
都涉及到一个东西叫做设备等待队列,等待队列是如何工作的,内核是怎么管理的?看这篇文章问题:进程是如何组织起来的?我们知道,进程是有很多种状态的:include/linux/sched.h#define
TASK_RUNNING 0#define TASK_INT....
分类:
系统相关 时间:
2014-05-11 23:08:52
阅读次数:
537
进程状态TASK_RUNNING可运行或正在运行TASK_INTERRUPTIBLE进程被阻塞,但可以被信号唤醒TASK_UNINTERRUPTIBLE进程被阻塞,且不可以被信号唤醒TASK_STOPPED进程已停止,且不能再投入运行TASK_ZOMBIE所谓的僵死进程,进程描述符仍然保留关键函数和...
分类:
系统相关 时间:
2014-05-05 09:45:05
阅读次数:
473