慢系统调用accept,read,write被信号中断时应该重试。对于accept,如果errno为ECONNABORTED,也应该重试。connect虽然也会阻塞,但被信号中断时不能立即重试,该socket应close后再重新创建套接子连接。因为connect伴随3次握手,若立即重试,服务器不知道...
分类:
其他好文 时间:
2015-11-27 00:39:52
阅读次数:
216
这段时间在看Unix网络编程卷1,在5.9节处理SIGCHLD信号,关于处理僵死进程第四步如下写道:信号是在父进程阻塞于慢系统调用(accept)时由父进程捕获的,内核就会使慢系统调用(accept)返回一个EINTR错误。
看到上面那段落的时候,想到我前段时间写网络服务器遇到的问题,链接地址:http://bbs.csdn.net/topics/391032981,其实里面也有我关于这方面问题的困惑。
总结一下我论坛的那个问题,其实我无论如何是不能通过信号中断,测试epoll_wait出错errno置EI...
分类:
其他好文 时间:
2015-08-19 13:31:33
阅读次数:
186
什么是信号?
信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。
“中断”在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给“中断”了,我去签收快递( 处理中断...
分类:
系统相关 时间:
2015-08-13 14:30:21
阅读次数:
321
1.中断
#中断使得硬件得以发出通知给处理器,本质上是一种电信号
#中断随时可以产生,内核随时会被打断
#不同设备的中断不同,每个中断都通过一个唯一的数字标识,称为IRQ(中断请求)
2.中断处理程序
#响应中断的时候,内核会执行一个函数(中断处理程序或中断服务例程)
#在Linux中,中断程序为普通的C函数
3.上半部和下半部...
分类:
系统相关 时间:
2015-06-26 09:15:16
阅读次数:
129
信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。
“中断”在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给“中断”了,我去签收快递( 处理中断 ),处理完成后,再继续玩我的游戏。这里我们学习的“信号”就是属于这么一种“中断”。我们在终端上敲“ctrl + c”,就产生一个“中断”,相当于产生一个信号,接着就会处理这么一个“中断任务”(默...
分类:
系统相关 时间:
2015-06-01 20:33:54
阅读次数:
254
Slow system call该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括pipe,终端设...
分类:
其他好文 时间:
2015-04-17 07:06:50
阅读次数:
107
1基本概念中断q 中断是系统对于异步事件的响应q 中断信号q 中断源q 现场信息q 中断处理程序q 中断向量表异步事件的响应:进程执行代码的过程中可以随时被打断,然后去执行异常处理程序生活中的中断和计算机系统中的中断1) 无中断生活场景张三看书,厨房烧水2)有中断的生活场景张三看书,设置闹钟,厨房烧...
分类:
其他好文 时间:
2015-04-16 19:44:42
阅读次数:
137
今天中午13点多顺利完成了科目三考试,比想象中容易好多,下午第一场14号车1号线,同考4个人中第三个,考试第一次快结束时信号中断没有成绩后又重考,一次性顺利100分通过,中间有上车调好座位后,未系安全带就要开始和中途挂3档错挂一档的失误,多亏安全员提醒,我及时反应修正,最终顺利通过。从今天来看科目三...
分类:
其他好文 时间:
2015-03-17 23:15:00
阅读次数:
125
中断概念 中断是系统对于异步事件的响应 中断信号 中断源 现场信息 中断处理程序 中断向量表 异步事件的响应:进程执行代码的过程中可以随时被打断,然后去执行异常处理程序 生活中的中断和计算机系统中的中断1)无中断生活场景 张三看书,厨房烧水2)有中断的生活场景 张三看书,设置闹钟,厨房烧水。 闹钟发出中断信号,张三把书合好(第20页...
分类:
其他好文 时间:
2014-11-21 16:20:42
阅读次数:
238
(一)不可靠信号
对前面说的信号,是不可靠的,不可靠指的是信号可能会丢失:一个信号发生了,但进程却可能一直不知道这一点。另外,进程对信号的控制能力有限,只能捕捉信号或忽略它。有时用户希望通知内核阻塞一个信号:不要忽略它,在其发生时记住它,然后在进程做好准备时再通知它。这种阻塞信号的能力并不具备。
之前的版本中村咋一个问题:在进程每次接到信号对其进行处理时,随即将该信号动作复位为默认值。另一个问...
分类:
系统相关 时间:
2014-05-18 06:48:10
阅读次数:
290