易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux 系统下如何分区才最合理

Linux 系统下如何分区才最合理
以下摘自《Gentoo Linux x86手册》
http://www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml
分区的数目主要根据你的系统环境来决定。
例如,如果你有很多用户,你可能更希望把你的/home目录独立出来,因为这样做可以增加安全性,备份起来也更容易。如果你安装Gentoo用来做邮件服务器 ......

对 Linux的协议栈理解

Linux的网络协议栈
       Linux的协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好。
       Linux的协议栈基于分层的设计思想,总共分为四层,从下往上依次是 :物理层,链路层,网络层,应用层。
  & ......

Linux下core文件

1.1 core文件的简单介绍
在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
1.2 开启或关闭core文件的生成
用以下命令来阻止系统生成core文件:
ulimit -c 0
也可以修改系统文件来调整core选项
在/etc/profile通常会有这样一句话来禁止产生 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号