Linux提供两种信号量:
1、内核信号量,由内核控制路径使用
2、System V IPC信号量,由用户态进程使用
从本质上说,它们实现了一个加锁原语,即让等待者睡眠,直到等待的资源变为空闲。
信号量
内核信号量类似于自旋锁,因为当锁关闭着的时候,它不允许内核控制路径继续运行。然而,当内核内核控制路径试图获取内核信号量所保护的忙资源时,相应的进程被挂起。只有在资源被释放时,进程才再次变...
分类:
其他好文 时间:
2014-05-18 18:43:39
阅读次数:
294
话说有些事情十分适合在放假前的一天折腾一天,但绝对不适合在你准备去吃饭前多看一眼...我上周就碰到了这么一件揪心的事,最终以低血糖收场,十分狼狈地四处觅食,却觅到了一包超级辣的鸡爪,吃完后感觉症状加重了,于是向邻座的同事乞讨了巧克力糖,唉...这一切起源于我在准备吃午饭前一头扎进了一个技术问题,本以为能靠配置搞定,最终却还是不得不以修改The Fxxxing code告终!事情起源于公司的一个禁令...
分类:
系统相关 时间:
2014-05-18 14:47:43
阅读次数:
455
摘要:实现宿主机和虚拟机之间网络的通讯
环境:
宿主机操作系统 WindowsXP
虚拟机软件 VirtualBox
虚拟机操作系统 Linux
原理:
host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式...
分类:
其他好文 时间:
2014-05-18 09:55:56
阅读次数:
241
(一)kill和raise函数
kill函数将信号发送给进程或进程组。raise函数则允许进程自身发送信号。
#include
#include
int kill(pid_t pid, int sig);
int raise(int signo); //返回值:若成功则返回0,若出错则返回-1。
参数:pid参数有4种...
分类:
系统相关 时间:
2014-05-18 08:50:13
阅读次数:
360
这里并不是系统详细介绍每一个Linux命令,仅仅是记录本人在平时工作中经常用到的一些比较基础的命令及相关的参数,同时用了一些简单的例子来说明这些命令的用途,以及如何用多种命令来实现同一种功能。
1、ls命令
要显示当前目录下的文件列表时,我经常就使用ls命令的以下...
分类:
系统相关 时间:
2014-05-18 08:11:19
阅读次数:
335
[ sed简介: ]
sed是一个很好的文件处理工具, 它本身是一个管道命令, 以行为单位进行处理, 可以用于对数据行进行新增、选取、替换、删除等操作。
sed命令行格式:sed [-nefri] 'range command' file
[ sed工作流程: ]
使用vim这种屏幕编辑器编辑一个文件的时候, 我们需要把这个文件打开, 这里存在两个问题:
1. 打开一个比较大的文件会消耗很多内存。
2. 我们无法写脚本调用vim来编辑文件, 但是sed可以通过写脚本编辑文件。...
分类:
系统相关 时间:
2014-05-18 06:53:12
阅读次数:
551
(一)不可靠信号
对前面说的信号,是不可靠的,不可靠指的是信号可能会丢失:一个信号发生了,但进程却可能一直不知道这一点。另外,进程对信号的控制能力有限,只能捕捉信号或忽略它。有时用户希望通知内核阻塞一个信号:不要忽略它,在其发生时记住它,然后在进程做好准备时再通知它。这种阻塞信号的能力并不具备。
之前的版本中村咋一个问题:在进程每次接到信号对其进行处理时,随即将该信号动作复位为默认值。另一个问...
分类:
系统相关 时间:
2014-05-18 06:48:10
阅读次数:
290
通常在redis机器数量多的时候,需要对redis的机器进行状态监控,可以采用Linux 的nc 来对多个shard进行状态查询和监测...
分类:
其他好文 时间:
2014-05-18 05:51:38
阅读次数:
247
引言
假如在后台运行一个可执行程序./a.out,如果想终止该程序,通常会按下Ctrl-C,从而产生一个中断,其实这个过程的实现就是通过信号完成的。信号是软件中断,它提供了一种处理异步事件的方法。
(一)
每个信号都有一个名字,这些名字都以三个字符SIG开头。例如SIGALARM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号。Linux除支持31种不同信号外,还支持应用程序额外定...
分类:
系统相关 时间:
2014-05-18 04:50:12
阅读次数:
347
oracle乱码问题一般是由于oracle字符集设置和操作系统字符集设置不一致造成的,这里不得不提到两个操作系统环境变量,LANG和NLS_LANG
LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date
NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效
很显然,需要修改NLS_LANG环境变量
查看o...
分类:
数据库 时间:
2014-05-18 04:22:26
阅读次数:
262