linux 信号处理 的学习
linux系统中对信号的处理主要是signal 和sigaction函数来完成,pause用来响应任何信号,但不做任何处理。
1。signal函数
该函数用来设置进程在接到信号的动作。可以 man signal查看具体用法,现在对其用法演示,
SIGKILL SIGSTOP是不能被捕捉和忽略的信号。
#include <stdio.h>
#include <signal.h>
void handler_sigint (int signo)
{
printf("recv SIGINT\N");
}
int main()
{
signal(SIGINT,handler_sigint);
while(1)
;
return 0;
}
解释:while为死循环,ctrl+c产生SIGINT信号,而ctrl+\将向进程SIGQUIT 信号,但程序本身没有处理该信号,则使用默认处理方式,退出程序。也可以kill;
相关文档:
linux启动流程:
系统预处理程序->GRUB (此阶段可以理解为bootloader阶段)
->kernel (此阶段为kernel)
->initrd->init启动->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(读配置文件)
1.->字符模式->tty->bash
2.->图形模式->进入X Window-> ......
引用 2 楼 cokeliu 的回复:
谢谢! 请问是否每调用一次tasklet_schedule(B task); B task任务被加到链表上只会被执行一次?
是的,只被加一次
第一次tasklet_schedule(B task)给他一个状态TASK_STATE_SCHED
作标记,以后的tasklet_schedule(B task)会检查这个标记
http://os.inf.tu-dresden.de/l4env/doc/html/dde_linux ......
7.5. Tasklets 机制
上一页
第 7 章 时间, 延时, 和延后工作
下一页
http://lsec.cc.ac.cn/~tengfei/doc/ldd3/index.html
Linux 设备驱动 Edition 3
7.5. Tasklets 机制
另一个有关于定时问题的内核设施是 tasklet 机制. 它大部分用在中断管理(我们将在第 10 章再次见到). ......
大致命令如下:
tar xvfj lichuanhua.tar.bz2
tar xvfz lichuanhua.tar.gz
tar xvfz lichuanhua.tgz
tar xvf lichuanhua.tar
unzip & ......
http://blog.chinaunix.net/u2/69889/showart_971040.html
Linux中的工作队列
[前记]Linux自从2.6.20之后,工作队列发生了一些变化,目前从网络上搜索的资料一般都是介绍老版本的工作队列,很少见到对新版本的介绍。本文对新老版本都做了简要概述,并分别提供了简单的实作案例。
********************************** ......