linux 内核研究--1--进程调度

原创 2012年03月28日 17:04:03

 

linux 内核研究--1--进程调度

内容组织:
一段牢骚+学习内容

1,一段牢骚

我是“半路出家”的。在大学过了两年的“必修课选逃,选修课必逃”的快乐时光后开始考虑未来。

本来打算大学毕业后读研来着,当时幸运,正好赶上金融危机,在把量子物理看了两遍后,感觉没戏

,于是就着急将来靠什么安身立命,思索再三,感觉网络工程师这个职业前途无量,于是在大三的暑

假来临前,在当当上买了本网络工程的书(第一次网购),以高考的状态看完后,又感觉没意思,后

来感觉平面设计前途无量,于是搜寻大量这方面的资料,还没来得及瞄一眼,就在一次学校举办的演

讲会上被专家定义为低端职业。走投无路时,有一个培训机构到我们学校笔试招人。于是就从图书馆

借了一本谭浩强的书,研习一晚,考了48分,义无反顾的加入了嵌入式的大军。。。

欲知后事如何,且听下回分解。说正事。。。

 


2,进程调度
2.1 概念
进程,程序,线程,调度。几乎所有介绍linux kernel的书上都有说明,并且说的很详细,生怕咱弄

混了。

2.2 进程调度
首先有几件事先说明一下:
1>进程调度程序独立于所有进程之外
2>2.4 和2.6内核的调度程序相差比较大,2.6进行了重写
3>在linux世界里,可以把进程和线程搞混,没有人会笑话你(本来他们就没多大差别)。
4>每个进程都有自己的第二代身份证(task struct),和身份证号码(PID)。
5>强调一下是第二代身份证,上面有芯片,它里面有内核管理这个进程的所有信息(32位机,1.7K左

右,)。
6>强调一下身份证号,不是无限大,默认32768,一般桌面系统够用了,但是对于大型server就可能不

够用,可以通过/proc/sys/kernel/pid_max修改
7>所有进程的身份证以一个双向链表联系在一起,current全局变量只是当前active的进程。
8>进程的身份证和上面芯片里的内容较多,它在<linux/sched.h>里面呆着呢,有兴趣可以自己探望

一下,先不说。

然后说一下调度算法:
调度准备:
0>每个CPU有一个执行队列
1>把把执行队列分为两类,可运行的和不可运行的,分别组成两个简单链表。
2>把可运行的再分成两个数组,活跃组和过时组。
3>两个数组又按优先级分成优先级个组,组每个元素包含这个优先级的可运行进程链表
4>每个数组元素主要包括一个160位的bitmap,当进程进入运行时,将与自己优先级对应的bit置位。

开始调度:
1>通过位图第一位,找到最高优先级的可运行进程
2>执行这个进程。

没了,当然没有这么简单,还有很多内容需要考虑。
next:
1,考虑重新计算时间片和动态修改进程优先级
2,考虑I/O消耗型进程和CPU消耗型进程
3,考虑多CPU情况下的负载平衡

说明:本人菜鸟,内容有错误之处,纯属无心,敬请指出。

相关文章推荐

数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合

引言 经过对OpenRISC近一年的分析与研究,在此过程中我们了解了计算机体系结构设计相关的主要概念,重要的技术,和基本思想。我觉的,现在我们有必要练练手了。 本小节,我们将设计一个简单的cpu,包括...

Linux Kernel 2.6内核进程调度复杂度为O(1)的代码分析

主要看了linux2.6.x内核进程调度那一块,和大家share一下。         每个cpu都有一个单独的runqueue,每个runqueue中有prio_array_t *active, ...

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

  • 2010年10月13日 17:25
  • 23KB
  • 下载

Linux内核进程调度schedule深入理解

Linux内核进程调度schedule深入理解   一.说明 本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会...

【Linux 内核】进程调度

现在的操作系统都是多任务的

《Linux内核设计与实现》--进程调度

1 多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统。 多任务系统可以划分为两类: 非抢占式多任务 进程会一直执行直到自己主动停止运行抢占式多任务 Linux/Unix使用的是抢...
  • XScxy
  • XScxy
  • 2016年06月19日 18:19
  • 142

深入理解Linux内核 chap 7 进程调度

1. 调度策略 目标: 进程响应时间尽可能快 后台作业的吞吐量尽可能高 尽可能避免进程饥饿 低优先级和高优先级进程需要尽可能调和 Linux 的调度基于分时技术: 多个进程以“时间多路复用”的方式...

《Linux内核设计与实现》——进程调度

一、多任务  1、
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 内核研究--1--进程调度
举报原因:
原因补充:

(最多只允许输入30个字)