从Linux的进程调度机制中想到的
Linux持续维护相关的数据结构(诸如runqueue、prio_array),不断更新进程的动态优先级,并相应的调整时间片,从而实现了O(1)复杂度的进程调度算法,可以在常量时间内调度新进程上台运行,而不受系统中进程总数的影响。
我觉得这至少能佐证三个道理:
(1)效益可以来自于平时点点滴滴地积累(功夫都在平时,而并非只针对schedule()函数本身做“天才的设计”);
(2)维持秩序固然需要成本,却可以带来可观的收益(如果不是一直维护着井然有序的队列,进程调度算法的复杂度恐怕很难优于O(N));
(3)世上没有免费的午餐(O(1)复杂度不是0成本的),但不断努力,不断积累就可能吃到很便宜的午餐。
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
超级简单用puppy linux 建立自己的LIVECD
2008-05-18 13:32
copy form
http://www.linuxsir.org/bbs/thread328351.html
声明: 这是写给和我一样,连命令行不懂的新手看的。
别人还在学习linux,你没学习狗屁不懂的已经发放你自己命名的版本了,有意思吧。下面就教你如何DIY你自己的linux版本。
如果你在 windows下会 ......
创了一个虚拟机,里面跑SuSE Linux,整个虚拟机拿给别人用的时候,会碰到copy还是move这样的疑问,目前看来,最大的区别在于网卡的MAC地址。如果是copy,MAC地址会重新生成,udev也会重新创建一个网络设备名,原来是eth0的话,现在就是eth1,这个还不是最关键的问题,关键在于SuSE Linux的网络配置文件名是和MAC地址 ......
1、程序和进程;
程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。
一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多 ......