自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 linux下文件访问时间、修改时间、更改时间

基本概念:linux对每个文件维护3个时间段(访问时间、修改时间、更改时间),它们的意义于图4-19中。在linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间,但是不能依赖文件内容来判断文件是否被修改,举个例子,用vim打开文件,不做任何修改操作,执行保存退出,修改时间也会被改变成当前时间,而实际上文件内容并没有被改变。

2016-08-29 23:24:26 9422

原创 IPC之Posix信号量详解

基本概念:信号量(semaphore)是一种用于提供不同进程间或一个给定进程的不用线程间同步手段的原语。共有三种类型的信号量:1)Posix有名信号量:使用Posix IPC名字标识,可用于进程或线程间的同步。2)Posix基于内存的信号量:存放在共享内存区中,可用于进程或线程间的同步。3)System V信号量:在内核中维护,可用于进程或者线程间同步。(本文不讨论System

2016-08-28 22:14:05 4653 2

原创 IPC之Posix消息队列详解

基本概念:    消息队列可认为是一个消息链表。有足够写权限的线程可往队列中放置消息,有足够读权限的线程可从队列中取走消息,每个消息都是一个记录(非字节流式,也就是不需要自定义边界),它由发送者赋予一个优先级。在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。    一个进程可以往某个队列写入一些消息,然后终止,再让另外一个进程在以后某个时刻读出这些消息。消息

2016-08-27 20:49:19 2973

转载 优酷蓝鲸近千节点的Redis集群运维经验总结

Redis是时下比较流行的Nosql技术。在优酷我们使用Redis Cluster构建了一套内存存储系统,项目代号蓝鲸。到目前为止集群有700+节点,即将达到作者推荐的最大集群规模1000节点。集群从Redis Cluster发布不久就开始运行,到现在已经将近两年时间。在运维集群过程中遇到了很多问题,记录下来希望对他人有所帮助。主从重同步问题问题描述服务器宕机并恢复后,需要

2016-08-26 09:44:53 2158

原创 TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项

基本概念:SO_REUSEADDR套接字选项能起到以下4个不同的功用:(1)SO_REUSEADDR允许启动一个监听服务器并捆绑众所周知端口,即使以前建立的该端口用作它们的本地端口的连接仍存在。这个条件通常是这样碰到的:a)启动一个监听服务器;b)连接请求到的,派生一个子进程来处理这个客户;c)监听服务器终止,但子进程继续为现有的连接上的客户提供服务;d)重启监听服

2016-08-23 23:41:32 9890

原创 IPC之管道和FIFO的额外属性

前文:IPC之管道详解IPC之FIFO(有名管道)详解关于阻塞与非阻塞:首先,一个描述符能以两种方式设置成非阻塞。(1)调用open时可指定O_NONBLOCK标志。(2)如果一个描述符已经打开,那么可以调用fcntl以启用O_NONBLOCK标志。因为管道没有open调用,在pipe调用中没法指定O_NONBLOCK标志,所以管道必须使用fcntl函数来设置。

2016-08-21 22:21:29 1154

原创 IPC之FIFO(有名管道)详解

基本概念:管道没有名字,因此它们的最大劣势是只能用于有一个共同祖先进程的各个进程之间。我们无法在无亲缘关系的进程间创建一个管道并将它用作IPC管道(不考虑描述符传递)。FIFO指先进先出(first in,first out),它是一个单向(半双工)数据流。不同于管道的是,每个FIFO有一个路径名与之关联,从而允许无亲缘关系的进程访问同一个FIFO。FIFO也称为有名管道(named pi

2016-08-21 00:45:36 4391 2

原创 IPC之管道详解

基本概念:linux管道由pipe函数创建,提供一个单路(单向)数据流。(注:linux不支持全双工的管道,某些系统支持)PIPE(2) Linux Programmer's Manual PIP

2016-08-19 00:12:43 3436

原创 IPC之记录锁详解

基本概念:当两个人同时编辑一个文件时,其后果将如何?在大多数unix系统中,该文件的最后状态取决于写该文件的最后一个进程,记录锁(record locking)的功能是:当一个进程正在读或者修改文件的某个部分时,使用记录锁可以阻止其他进程修改同一区域。POSIX.1标准是使用fcntl方法控制记录锁,函数原型如下FCNTL(2) Linu

2016-08-17 01:10:22 1706

原创 线程属性

基本概念:pthread接口允许我们通过设置每个对象关联的不同属性来细调线程和同步对象的行为。一、线程属性的初始化与反初始化PTHREAD_ATTR_INIT(3) Linux Programmer's Manual PTHREAD_ATTR_INIT(3)NAME pthread_attr_init, pthread_attr_dest

2016-08-14 16:00:35 811

原创 线程和信号

基本概念:每个线程都有自己的信号屏蔽字,但是信号的处理是进程所以线程共享的。这意味着单个线程可以阻止某些信号,但当某个线程修改了与某个给定信号相关的处理行为以后,所有的线程都必须共享这个行为处理的改变。进程中的信号是传递到单个线程的。如果一个信号与硬件故障相关,那么该信号一般都会被发送到引起该事件的线程中去,而其他的信号则被发送到任意一个线程。要把信号发送给线程,可以调

2016-08-14 15:04:08 748

原创 linux多线程之屏障

基本概念:屏障(barrier)是用户协调多个线程并行工作的同步机制。屏障允许每个线程等待,直到所有的合作线程都达到某一点,然后从该点继续执行。一、初始化与销毁PTHREAD_BARRIER_DESTROY(P) POSIX Programmer's ManualPTHREAD_BARRIER_DESTROY(P)NAME pthread_barrier_de

2016-08-14 14:26:36 4337 2

原创 linux多线程之自旋锁

基本概念:何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用

2016-08-14 00:17:27 4906

原创 linux多线程之条件变量

基本概念:条件变量是线程可用的另一种同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定条件发生。条件变量本身是互斥量保护的。线程在改变条件状态之前必须首先锁住互斥量。在使用条件变量之前,必须先对它进行初始化。由pthread_cond_t数据类型表示的条件变量可以用两种方式初始化,可以把常量PTHREAD_COND_INITIA

2016-08-13 23:23:41 1101

原创 linux多线程之读写锁

基本概念:读写锁也叫做共享互斥锁。当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态,所有试图以读模式对它进行加锁的线程都可以得到访问权。与互斥量相比,读写锁在使用之前必须初始化,在释放它们底层的内存之前必须销毁。一、锁的初始化与销毁PTHREAD_RWLOCK_DESTROY(P) POSIX Programmer

2016-08-13 21:33:15 2561 2

原创 linux多线程之互斥锁

基本概念:互斥变量是用pthread_mutex_t数据类型表示的。在使用互斥变量以前,必须首先对它进行初始化,可以把它设置为常量PTHREAD_MUTEX_INITIALIZER(只适用于静态分配的互斥量),也可以通过调用pthread_mutex_init函数进行初始化。如果动态分配互斥量(例如,通过调用malloc函数),在释放内存前需要调用pthread_mutex_destroy。

2016-08-13 18:24:49 1455

原创 linux多线程编程详解

注:如果unubtu下 man手册不全,需要安装 apt-get install manpages-posix-dev一、线程创建PTHREAD_CREATE(3) Linux Programmer's Manual PTHREAD_CREATE(3)NAME pthread_create - create a new threa

2016-08-13 01:48:57 991

原创 linux信号之基本概念

信号概念:信号是软件中断。首先每个信号都有一个名字,这些名字都以3个字符SIG开头。例如,SIGARBT是夭折信号,当进程调用abort函数时产生这种信号。SIGALRM是闹钟信号,由alarm函数设定的定时器超时后产生此信号。Linux3.2.0支持31种信号(不同的系统支持的信号数不一样)。产生信号的条件:1.当用户按某些终端键时,引发终端产生的信号,比如(Ct

2016-08-09 00:34:41 935

原创 进程调度(进程优先级和nice值)

进程优先级是一个数值,它通过动态的优先级和静态的优先级来决定进程被CPU处理的顺序。一个拥有更高进程优先级的进程拥有更大的机率得到处理器的处理。

2016-08-05 23:22:57 7180 4

原创 shell中获取程序输出

1.待执行的程序gcc printf.c -o printf#include int main(){ printf("hello world\n"); return 1;}2.shell脚本test.sh#! /bin/shvalue1=`./printf`value2=$?echo "value1: $value1"ec

2016-08-05 14:16:35 5439

原创 system函数详解

基本概念:system函数在其实现中调用了fork、exec和waitpid,使用system函数而不是直接使用fork和exec的优点是:system进行了所需的各种出错处理以及信号处理。注:对fork和exec不熟悉的先参考文章:fork编程之exec函数详解SYSTEM(3) Linux Programmer's Manual

2016-08-04 23:36:32 2290

原创 解析器文件

基本概念:解释器是文本文件,其起始行的形式是:#! pathname [optional-argument]在惊叹号和pathname之间的空格是可任选的。最常见的是以下列行开始:#! /bin/shpathname通常是个绝对路径名,对它不进行什么特殊的处理,对这种文件的识别是由内核作为exec系统调用处理的一部分来完成的。内核使调用exec函数的进程实际执行

2016-08-04 22:57:42 965

原创 fork编程之exec函数详解

基本概念:用fork函数创建新的子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用磁盘上的一个新程序替换了当前进程的正文段、数据段、堆段和栈段。系统调用:EXECVE(2)

2016-08-04 01:00:48 2080

原创 如何获取进程的终止状态

测试代码:int main(){ return 1;}编译:gcc main.c运行:./a.out获取终止状态:echo $?End;

2016-08-02 20:48:39 1290

转载 理解inode

作者: 阮一峰日期: 2011年12月 4日inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。====================

2016-08-02 18:36:20 913

原创 linux下软连接与硬链接的本质区别

软连接跟硬链接最大的区别在于:1.文件A和文件B的inode号码一样,对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。2.文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,

2016-08-02 18:18:20 6469

原创 linux下创建临时文件

前述:linux下删除一个文件需要满足两个条件:1.文件的链接计数为02.没有进程打开该文件我们即使使用rm命令删除了文件,实际上如果有进程打开了该文件,该文件的内容实际上没有被删除,进程仍然可通过fd操控这个文件。删除一个文件时,内核首先检查打开该文件的进程个数;如果这个技术达到0,内核再去检查其链接计数;如果计数也是0.那么就删除该文件的内容。系

2016-08-02 15:58:58 5167 1

原创 linux下文件操作需要关注的函数

前述:本文并不是为了详细讲解每个函数的细节,细节可参考man手册或者《unix环境高级编程》一、打开或者创建文件#include #include #include int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode

2016-08-02 11:55:17 775

转载 PHP运行模式

1、运行模式关于PHP目前比较常见的五大运行模式:1)CGI(通用网关接口 / Common Gateway Interface)2)FastCGI(常驻型CGI / Long-Live CGI)3)CLI(命令行运行 / Command Line Interface)4)Web模块模式(Apache等Web服务器运行的模式)5)ISAPI(Inte

2016-08-02 00:18:21 739

linux环境的wmi-1.3.13.tar.bz

linux下的wmic命令,用于查询windows服务器主机的状态

2012-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除