
linux scheduler
剥丝机器人
这个作者很懒,什么都没留下…
展开
-
Linux内核进程调度schedule深入理解
一.说明本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会说明。默认系统平台是自己的i386 架构的pc。二.前提知识在进行schedule 分析之前有必要简单说明一下系统启动过程,内存分配使用等。这样才能自然过渡到schedule 模块。首先是Linux各个功能模块之间的依赖关系:转载 2013-09-05 17:16:57 · 1505 阅读 · 0 评论 -
linux schedule() 流程图
http://blog.youkuaiyun.com/xiayu98020214/article/details/7187365转载 2013-10-12 17:45:56 · 4017 阅读 · 0 评论 -
进程资源和进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE
摘要:本文主要介绍进程资源和进程状态.进程资源由两部分组成:内核空间进程资源以及用户空间进程资源.进程状态,就绪/运行状态、等待状态(可以被中断打断)、等待状态(不可以被中断打断)、停止状态和僵死状态.1.进程资源 进程是Linux系统下资源管理的基本单位,每个进程都有自己的独立的运行空间.为了更好的管理Linux所访问的资源,系统引入了进程控制(PCB)的概念,PCB结构体. 进程资...转载 2018-06-25 09:41:20 · 987 阅读 · 0 评论 -
Set_current_state(TASK_INTERRUPTIBLE) 简介 进程状态
进程状态定义:include/linux/sched.hTASK_RUNNING : 进程处于可运行状态,但并不意味着进程已经实际上已分配到 CPU ,它可能会一直等到调度器选中它。该状态只是确保进程一旦被 CPU 选中时立马可以运行,而无需等待外部事件。TASK_INTERRUPTIBLE : 这是针对等待某事件或其他资源而睡眠的进程设置的。在内核发送信号给该进程时表明等待的事件已经发生或资源已...转载 2018-06-25 10:01:49 · 7956 阅读 · 0 评论 -
TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。信号本质信号是在软件层次上对中断机制的一种模拟,软中断信号来源信号事件的发生有两个来源:硬件来源:(比如我们按下了键盘或者其它硬件故障);软件来源:最常用发送信号的系统函数是kill, raise, alarm和se...转载 2018-06-25 10:04:09 · 1667 阅读 · 0 评论 -
wait_event族函数浅析
周末闲暇无事,聊聊内核中的wait_event*类函数的具体实现,等待事件必定涉及到某个条件,而这些函数的区别主要是等待后唤醒的方式……直奔主题,上源码wait_event_interruptible#define wait_event_interruptible(wq, condition) \({ ...转载 2018-06-25 10:05:01 · 2740 阅读 · 0 评论 -
signal_pending函数解析
经常我们在睡眠的代码中 会看到这样的例子: if (signal_pending(current)) { ret = -ERESTARTSYS; return ret; } 关于 -ERESTARTSYS 到底是什么意思? -ERESTARTSYS表示信号函数处理完毕后重新执行信号函数前的某个系统调用.也就是说,如果信号函数前有发生系统调用,在调度用户...转载 2018-06-25 10:14:06 · 1731 阅读 · 0 评论