(1)信号:
信号是一种向进程发送通知,告诉其某件事情发生了的一种简单通信机制。
(2)信号的产生:
①另一个进程发送信号;
②内核发送信号;
③底层硬件发送信号。
(3)信号列表:常用信号。
信号宏名 信号编号 说明系统 默认处理方式
SIGABRT 6 终止进程,调abort函数是产生 终止,产生cre文件
SIGALRM 14 超时,调用alarm函数时产生 终止
SIGBUS 7 硬件故障 终止,产生core文件
SIGCHLD 17 子进程状态改变 忽略
SIGINT 2 终止进程(ctrl+c) 终止
SIGIO 29 异步通知信号 终止
SIGKILL 9 无条件终止一个进程,不可以被捕获或忽略 终止
SIGPIPE 13 写没有读权限的管道文件时 终止
SIGPOLL 8 轮询事件,涉及POLL机制 终止
SIGQUIT 3 终止进程(ctrl+\) 终止,产生core文件
SIGSEGV 11 无效存储访问(指针错误) 终止,产生core文件
SIGTERM 15 终止,kill PID时,默认发送的就是这个信号 终止
SIGUSR1 10 用户自定义信号1 终止
SIGUSR2 12 用户自定义信号2 终止
(4)信号发送:
int kill(pid_t pid, int sig);
int raise(int sig);
unsigned int alarm(unsigned int seconds);
void abort ();
(5)进程挂起pause
(6)信号处理的方式:
①忽略;
②执行用户需要执行的动作(捕获);
③默认处理。
(7)信号处理API:sighandler_t signal(int signum, sighandler_t handler);
二、线程概述:
(1)线程是任务调度和执行的基本单位。
(2)为什么会有线程?
①进程实现多任务的缺点:
a.进程间切换的计算机资源开销很大,切换效率非常低;
OS是通过虚拟内存机制来实现进程空间独立的,进程在并发运行时需要相互间的切换,切换时必然需要涉及虚拟内存机制的控制,但是虚拟内存机制比较复杂,所以在进行进程间切换时,会耗费高昂的cpu、缓存(cache)、内存等计算机资源,也非常耗费切换时间。
b.进程间数据共享的开销也很大。
当程序涉及多进程时,往往会涉及到进程间的通
嵌入式8
最新推荐文章于 2022-12-02 09:33:53 发布