linux 0.11 内核学习 sched.c,调度进程。
/*
* 2010-1-21
* 该文件时内核中有关任务调度的函数程序,其中包含基本函数sleep_on,
* wakeup,schedule等,以及一些简单的系统调用。同时将软盘的几个操作
* 函数也放置在这里。
*
* schedule函数首先对所有的任务检查,唤醒任何一个已经得到信号的任务,
* 具体的方法是针对任务数组中的每个任务,检查其警报定时值alarm。如果任务
* 的alarm已经超期(alarm < jiffies),则在它的信号位图中设置SIGALARM,然后
* 情书alarm值。jiffies是系统自从开机之后算起的滴答数。在scheed.h中定义,
* 如果进程信号的位图中除去被阻塞的信号之外还有其他信号,并且任务处于可
* 中断睡眠状态,则置任务为就绪状态。
* 随后是调度函数的核心处理,这部分代码根据进程时间片和优先权的调度机制,
* 来选择将要执行的程序。他首先是循环检查任务数组中的所有任务。根据每个就绪
* 任务剩余执行时间值counter中选取一个最大的,利用switch_to函数完成任务
* 转换。如果所有的就绪任务的该值都是0,则表示此刻所有任务的时间片都已运行完。
* 于是就根据任务的优先权值priority,重置每个任务的运行时间counter。在重新
* 循环检查所有的任务重的执行的时间片值。
* 另一个值得一说的是sleep_on函数,该函数虽短,却要比schedule函数难理解,
* 简单的讲,sleep_on函数主要的功能是当一个进程所请求的资源正在忙,或者是
* 不在内存中被切换出去,放在等待队列中等待一段时间。切换回来后在继续执行。
* 放入等待队列的方式是,利用了函数中的tmp指针为各个正在等待任务的联系。
* 还有一个函数interrupt_sleep_on,该函数的主要功能是在进程调度之前,把当前
* 任务设置为可中断等待状态,并在本任务被唤醒之后还需要查看队列上是否还有
* 后来的等待任务,如果有,先调度他们。
*
*/
/*
* linux/kernel/sched.c
*
* (C) 1991 Linus Torvalds
*/
/*
* 'sched.c' is the main kernel file. It contains scheduling primitives
* (sleep_on, wakeup, schedule etc) as well as a number of simple system
* call functions (type getpid(), which just extracts a field fr
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Linux下CVS服务器的安装与配置
1、CVS服务器的安装
CVS服务器版可以从网上的很多地方下载到,也可以到CVS的官方网站进行下载。根据你所使用的系统,下载相应的版本,然后进行安装。因为当前大部分人是在Linux下使用CVS服务器进行版本管理,并且Redhat Linux是目前最流行的一个Linux发行版之一,所以本文将主要基于Re ......
1.1.5 Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc -w filewc -c fi ......
1.CPU&进程
1.1 top命令
top - 20:07:00 up 186 days, 3:47, 3 users, load average: 0.01, 0.02, 0.00
Tasks: 82 total, 1 running, 80 sleeping, 1 stopped, 0 zombie
Cpu(s): 3.7% us, 0.0% sy, 0.0% ni, ......