linux系统编程
yyp_cpp
这个作者很懒,什么都没留下…
展开
-
linux 信号设计 --不断补充--欢迎指正讨论
Linux 信号产生条件: 1. 用户输入 2. 系统异常:浮点异常和非法内存段访问 3. 系统状态变化:比如alarm 定时器到期将引起SIGALRM信号 4. 运行kill 命令 1. 发送信号: int kill(pid_t pid, int sig); 参数: pid = 0 信号发给本进程内的其他进程 注意sig = 0情况,=原创 2015-12-06 14:23:15 · 297 阅读 · 0 评论 -
高性能服务器程序框架--不断补充,欢迎交流
8.3 i/o模型 1. 阻塞i/o 2. 非阻塞i/o:事件未发生就返回,不等待 事件未发生的返回值和出错的返回值一样,都是-1,所以需要通过erron做进一步的确认 accept,recv,send 事件未发生errrno=EAGAIN或EWOULDBLOCK(再一次) connect errno=EINPROGRESS 3. 阻塞是会影响性能,非阻塞i/o原创 2016-02-22 13:37:16 · 316 阅读 · 0 评论 -
信号量、互斥体和自旋锁实现原理初览--补充中
本文重点在区分互斥锁和自旋锁的原理。 1. 互斥锁,假如进程A去抢锁,如锁已经被强占,那么进程A会被放入队列,接着进程的状态被改变,比如设为TASK_INTERRUPTIBLE,然后调用调度函数schedule(),后者将会把当前进程从cpu的运行队列中摘下,进程A进入睡眠。锁被释放,进程A将被唤醒。 而假如是自旋锁,A进程去抢自旋锁,锁已经被占后,A进程会不断的占用cpu,主动去查询(不像互原创 2017-09-17 23:24:50 · 266 阅读 · 0 评论