Mr. Process的一生-Linux内核的社会视角 (1)调度
Written by manio (http://blog.csdn.net/manio)
Linux内核是一个无比复杂的系统,要想看清大致的脉络也非易事。其实,可以把运行中的Linux想像成一个人类的社会,当中的进程就是社会中的人。人有生老病死,进程有创建、异常、终止。人有各种各样的财产,进程有对应的地址空间、设备等等。人被各种各样的东西限制着,被人管着,进程也是。内核无比巨大,从哪着手?我想,从进程的视角来看是个好办法。并且,在学习Linux内核的同时,类比人类社会来看,会有更深刻的印象,理解得更透彻。
本来也应该从进程的创建开始写的,但是最近在看调度的相关论文,就又把Linux调度的东西看了一下。所以,就先写调度相关的东西吧。
首先介绍与进程所在环境对应的人类场景:
这是一个公司,公司里有很多人(进程),每个人都有其对应的职称(优先级)。这个公司很奇怪,只有一张办公桌(CPU),在任意时刻,只能有一个人在工作(TASK_RUNNING正在运行状态)。其他人呢,要么在休息室时短暂地休息(对应TASK_RUNNING就绪状态),要么就在寝室Sleep(对应TASK_INTERRUPTABLE或TASK_UNINTERRUPTABLE),要么就是死人了,在停尸间(TASK_ZOMBIE)。是的,这是真的,这个公司就是个血汗工厂,干活累死了,就直接丢进停尸间,惨绝人寰!
以下是此公司的平面图:
图解:“推门”是单向的:比如连接工作室和太平间的是推门,职员只能从工作室走到太平间,不能从太平间走到工作室(这太吓人了)。“凹槽门”是双向的:比如连接工作室和休息室的门是凹槽门,职员可以走来走去。
时间片(time slice):这个公司的工资特别高,按工作的小时数计算。工作者得钱,不工作者不得钱。所以,所有的人都特想去办公桌那里工作,争着抢着要去。为了让大家都有机会去工作(避免有的人没钱拿,饿死,i.e. starve to death),所以公司出了条规定,每个人每次工作的时间不能超过公司分给自己的时间片(time slice)。时间片的大小由此人的职称决定。
职称(也就是内核中的priority):职称有两种,一种是静态职称(static priority),一种是动态职称(dynamic priority)。静态职称是先天的,由此人的老爸决定(富二代有先天优势!)。动态优先级是看在公司里的工作表现的。职称是很重要的东西,职称越高,你到办公桌上赚钱的机会越大。
默认时间片长点好还是短点好?
自然是不长不短好(世界上的事情都是这样)。如果太短了,比如说某职员时间片是1分钟(对应的Li
相关文档:
以下是个人觉得比较详细而且易于理解的几篇文章,所以把它一起贴出来做为笔记(一)、(二)、(三),也希望对过路者提供一点方便。
第3章文件I / O
3.1 引言
本章开始讨论U N I X系统,先说明可用的文件I / O函数——打开文件、读文件、写文件等等。大多数U N I ......
系统环境:Linux 5.0 AS 64位
步骤:
1、下载apache-tomcat-5.5.23.tar和jdk-1_5_0_12-linux-i586.bin并存放在/usr/local文件夹下;
2、安装jdk
[root@localhost local]#chmod 775 jdk-1_5_0_12-linux-i586.bin '非必须,要是直接运行时提示权限不够时改变权限;
[root@localhost local]#./jd ......
LINUX常用命令(基础)
1. man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls相关的用法
注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。
2. ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),如果是一个"-"表示是文件,如果 ......
在进行负载测试(Load Test)是要监控服务器的CPU、内存、磁盘、网络的情况。如何监控Ubuntu的情况呢。
1、安装rstatd,sudo apt-get install rstatd,如果无法apt安装,可以下载安装。
2、启动rpc.rstatd
3、在LoadRunner Controller的ru ......