
Linux
文章平均质量分 85
勿到
这个作者很懒,什么都没留下…
展开
-
poll 使用
poll() | 多路复用 I/O和 select() 函数一样,poll() 函数也可以用于执行多路复用 I/O 。但 poll() 与 slect()相比,用起来更加直观容易。使用该函数,需要包含 #include 文件,实际上最终包含的是 文件,poll.h 里的内容也就是 #include 。函数的原型:引用#include extern int poll转载 2013-10-23 16:05:18 · 1180 阅读 · 0 评论 -
基于Lockset的数据竞争检测方法汇总(一)
对于搞数据竞争检测方向的人来说,Lockset方法大家肯定不陌生,作为一个刚入门数据竞争检测方向的我来说,就和大家总结一下我近期有关Lockset方法的一些研究和心得。 Lockset方法研究比较早可以追溯到1997年Eraser那篇论文,被引用无数次,非常经典的方法。 Reference Savage S, Burrows M, Nelson G, et原创 2015-04-17 00:37:33 · 3125 阅读 · 0 评论 -
Linux下相关解压缩命令总结
Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下: # tar -cf all.tar *.jpg转载 2014-11-15 16:43:23 · 471 阅读 · 0 评论 -
Linux socket编程之bind小技巧
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于转载 2014-05-07 11:23:41 · 803 阅读 · 0 评论 -
Linux之僵尸进程和孤儿进程【总结】
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进转载 2014-03-12 19:02:20 · 540 阅读 · 0 评论 -
linux系统编程之信号(四):信号的捕捉与sigaction函数
一、内核如何实现信号的捕捉如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下:1. 用户程序注册了SIGQUIT信号的处理函数sighandler。2. 当前正在执行main函数,这时发生中断或异常切换到内核态。3. 在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQU转载 2014-03-11 16:59:29 · 785 阅读 · 0 评论 -
Linux之守护进程理解
在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。一. 守护进程简介 守护进程,也转载 2014-03-12 18:45:55 · 616 阅读 · 0 评论 -
Linux之守护进程理解(2)
1、屏蔽一些有关控制终端操作的信号防止在守护进程没有正常运转起来时,控制终端受到干扰退出或挂起。2、脱离控制终端,登录会话和进程组登录会话可以包含多个进程组,这些进程组共享一个控制终端,这个控制终端通常是创建进程的登录终端。控制终端,登录会话和进程组通常是从父进程继承下来的。我们的目的就是要摆脱它们,使之不受它们的影响。其方法是在fork()的基础上,调用setsid()使进程成为原创 2014-03-12 20:37:07 · 709 阅读 · 0 评论 -
Linux之会话浅析
说起会话,我们经常登录到linux系统,执行各种各样的程序,这都牵涉到会话。但是,一般情况下我们又很少会去关注到会话的存在,很少会去了解它的来龙去脉。本文就对linux会话相关的信息做一些整理,看看隐藏在我们日常使用的背后,都有些什么样的逻辑。【会话的维系】维系一个会话,最常见的有两种方式:一是基于某种凭证,比如web网站的登录会话,在登录验证之后,服务器就会返回一个ses转载 2014-03-12 19:42:30 · 763 阅读 · 0 评论 -
linux系统编程之信号(三):信号的阻塞与未决
一、信号在内核中的表示实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。注意,阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。信号在内核中的表示可以看作是这样的:转载 2014-03-11 16:42:35 · 611 阅读 · 0 评论 -
linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
一、kill, raise, killpg 函数int kill(pid_t pid, int sig);int raise(int sig);int killpg(int pgrp, int sig);kill命令是调用kill函数实现的,kill函数可以给一个指定的进程或进程组发送指定的信号,其中kill 函数的pid 参数取值不同表示不同含义,具体可man 一转载 2014-03-11 16:08:02 · 674 阅读 · 0 评论 -
sigaction结构浅析
信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL转载 2014-03-11 10:14:17 · 1245 阅读 · 0 评论 -
Linux系统编程之信号(一):信号基本概述
一、为了理解信号,先从我们最熟悉的场景说起:1. 用户输入命令,在Shell下启动一个前台进程。2. 用户按下Ctrl-C,这个键盘输入产生一个硬件中断。3. 如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。4. 终端驱动程序将Ctrl-C解释成一个SIGINT信号,记在该进程的PCB中(也可以说发送了一个SIGINT信转载 2014-03-11 10:38:32 · 633 阅读 · 0 评论 -
Python-开发工具-Sublime2-安装总结
Sublime Text 2 的下载地址是 http://www.sublimetext.com/2,如果你的 Linux 系统是64位的,那么别忘了下载64位的程序包,速度和性能都大不一样的。解压你可以使用 GUI 管理工具来解压,不过我更加推荐使用命令行工具。打开 Terminal ,首先进入存放下载程序包的文件夹:(假设是用户目录下的 Downloads 文件夹)~$ cd转载 2013-12-27 21:44:05 · 716 阅读 · 0 评论 -
也谈应用程序级的同步、异步、阻塞、非阻塞
同步IO(synchronous)异步IO(asynchronous)阻塞IO(blocking)非阻塞IO(non-blocking)这几个经常出现的词汇很容易会引起大家的误解,第一次接触相关词汇是在课上,当时上操作系统的老师说得比较模糊(阻塞==同步,非阻塞==异步),当时觉得挺对 的,初学者一般来说很会这么认为。但是后来随着对操作系统的进一步认识和学习,以及参考其原创 2013-10-23 17:13:18 · 831 阅读 · 0 评论 -
I/O多路复用
一、I/O模型首先,输入操作一般包含两个步骤:1、等待数据准备好(waiting for data to be ready)。对于一个套接口上的操作,这一步骤关系到数据从网络到达,并将其复制到内核的某个缓冲区。2、将数据从内核缓冲区复制到进程缓冲区(copying the data from the kernel to the process)。二、I/O模型类型转载 2013-10-23 19:25:17 · 667 阅读 · 0 评论 -
IO 多路复用
IO多路复用 与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。主要应用:(1)客户程序需要同时处理交互式的输入和服务器之间的网络连接(2)客户端需要对多个网络连接作出反应(3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字(4)服务器需要处理多个网络协议的套转载 2013-10-23 16:14:30 · 680 阅读 · 0 评论 -
Linux常用shell语法和命令
Linux常用shell语法和命令原创 2016-11-20 23:47:58 · 4171 阅读 · 1 评论