Linux
文章平均质量分 72
AllenHuai
鹅厂最高的小白程序猿!
展开
-
TCP的三次握手与四次挥手
TCP的三次握手与四次挥手原创 2015-03-14 22:42:15 · 592 阅读 · 0 评论 -
linux进程间通信
整理自网络Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal) 管道(pipe)管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;实现机制:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进转载 2015-08-17 20:33:33 · 475 阅读 · 0 评论 -
daemon守护进程
守护进程原创 2015-05-04 11:17:12 · 620 阅读 · 0 评论 -
Daemon守护进程
Daemon守护进程在linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程,都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。原创 2015-08-17 22:43:14 · 777 阅读 · 0 评论 -
Linux的SOCKET编程详解
1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(message)、共享存储区(shared memory转载 2015-08-17 23:17:05 · 484 阅读 · 0 评论 -
HTTP协议
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个原创 2015-08-17 16:54:15 · 711 阅读 · 0 评论 -
何时使用条件变量? 我们有互斥锁不是就够了么?
先来看看两者的概念:互斥锁(英语:英语:Mutual exclusion,缩写 Mutex)是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全局变量)进行读写的机制。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在原创 2015-08-17 19:46:30 · 2236 阅读 · 2 评论 -
可重入函数与线程安全函数
可重入函数与线程安全函数 线程安全函数 • 概念: 线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全: 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈转载 2015-08-17 21:35:32 · 431 阅读 · 0 评论 -
linux文件系统十问
Linux文件系统十问--关于文件系统,你知道吗? 关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖一下,其中又有多少是我们理解深度不够的呢。那么让我们一起来看一下下面这一组Linux文件系统相关的问题吧:1、机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的?2、touch一个新的空文件占用磁盘空转载 2015-08-18 09:15:25 · 695 阅读 · 0 评论 -
Linux文件系统相关知识整理
1. 磁盘的物理结构盘面:磁盘是由一叠盘面组成磁头(Heads):每个磁头对应一个盘面,负责该盘面上的数据的读写磁道(Track):每个盘面会围绕圆心划分出多个同心圆圈,每个圆圈叫做一个磁道柱面(Cylinders):所有盘片上的同一位置的磁道组成的立体叫做一个柱面扇区(Sector):以磁道为单位管理磁盘仍然太大,所以计算机前辈们又把每个磁道划分出了多个扇区磁盘原创 2015-08-18 11:30:33 · 813 阅读 · 0 评论 -
Linux下fork()、vfork()、clone()和exec()的区别
前三个和最后一个是两个类型。前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的所有内容。所以exec()系列函数经常在前三个函数使用之后调用,来创建一个全新的程序运行环境。Linux用init进程启动其他进程的过程一般都是这样的。 下面说fork、vfork和clone三个函数。这三个函数分别调用了sys_fork、sy转载 2015-08-19 16:45:33 · 545 阅读 · 0 评论 -
三大WEB服务器对比分析(apache ,lighttpd,nginx)
1. lighttpdLighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。Lighttpd使用fastcgi方式运行php,它会使用转载 2015-08-19 20:16:51 · 526 阅读 · 0 评论 -
进程间通信的特点
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:它转载 2015-08-21 10:21:35 · 2069 阅读 · 2 评论 -
Linux fork面试题
fork原创 2015-09-06 09:54:17 · 1366 阅读 · 4 评论 -
Linux管道实现机制
pipe原创 2015-09-07 15:53:38 · 1292 阅读 · 0 评论 -
Linux下的五种I/O模型
阻塞I/O(blocking I/O)非阻塞I/O (nonblocking I/O)I/O复用(select 和poll) (I/O multiplexing)信号驱动I/O (signal driven I/O (SIGIO))异步I/O (asynchronous I/O (the POSIX aio_functions))前四种都是同步,只有最后一种才是异步IO原创 2015-08-17 11:26:59 · 820 阅读 · 0 评论 -
Nginx内存管理
1.源代码位置 头文件:http://trac.nginx.org/nginx/browser/nginx/src/core/ngx_palloc.h源文件:http://trac.nginx.org/nginx/browser/nginx/src/core/ngx_palloc.c 2.数据结构定义先来学习一下nginx内存池的几个主要数据结构:转载 2015-08-14 19:43:10 · 564 阅读 · 0 评论 -
listen->backlog
To understand the backlog argument, we must realize that for a given listening socket, the kernel maintains two queues :要明白backlog参数的含义,我们必须明白对于一个listening socket,kernel维护者两个队列:1.An incomplete原创 2015-08-30 10:40:46 · 615 阅读 · 0 评论 -
IPv4头部结构详解
IPv4头部结构详解以下为书中原文摘录:原创 2015-03-16 23:11:03 · 7669 阅读 · 0 评论 -
TCP头部结构
TCP头部结构以下摘自书中原文:原创 2015-03-17 22:46:29 · 1040 阅读 · 0 评论 -
单例模式及线程安全
单例设计模式+线程安全原创 2015-03-12 22:35:38 · 536 阅读 · 0 评论 -
Linux信号量
信号量原创 2015-03-30 18:27:00 · 415 阅读 · 0 评论 -
Socket描述符选项[SOL_SOCKET]
Socket描述符选项[SOL_SOCKET] #include int setsockopt( int socket, int level, int option_name, const void *option_value, size_t option_len);转载 2015-03-30 14:43:37 · 452 阅读 · 0 评论 -
文件传输项目模块1-线程池
线程池的实现原创 2015-03-30 16:59:25 · 723 阅读 · 0 评论 -
I/O复用三大模型select/poll/epoll
Linux三大I/O复用函数select/poll/epoll1. select系统调用如下: int select(int nfds, fd_set*readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout); nfds指定被原创 2015-03-23 19:48:53 · 665 阅读 · 0 评论 -
文件传输项目模块2互斥与同步
互斥和同步原创 2015-03-31 14:29:57 · 614 阅读 · 0 评论 -
Linux内存讲解
这篇文章讨论基于的环境是AICT Linux集群,运行64位的GNU / Linux的AMD Opteron处理器。内容简介程序和进程存储类别和作用域程序大小内存映射调用堆栈页表库内存限制内存分配实现细节参考文献简介在Linux下,所有的程序都在虚拟内存环境中运行。如果有某个C程序员将指针的值打印出来(在实践中从来没有必要),其结果将是一个虚拟内存地址。在For转载 2015-04-10 17:16:18 · 1220 阅读 · 0 评论 -
I/O复用之epoll模型
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。转载 2015-04-19 22:51:55 · 434 阅读 · 0 评论 -
Linux守护进程
在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程)。守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的中断信息所终止。 创建守护进程的一般步骤: (1) 创建子进程,退出父进程为了脱离控制终端需要转载 2015-04-19 20:05:53 · 428 阅读 · 0 评论 -
TIME_WAIT 与 CLOSE_WAIT
1.服务器保持了大量TIME_WAIT状态这种情况比较常见,一些爬虫服务器或者WEB服务器(如果网管在安装的时候没有做内核参数优化的话)上经常会遇到这个问题,这个问题是怎么产生的呢?从上面的示意图可以看得出来,TIME_WAIT是主动关闭连接的一方保持的状态,对于爬虫服务器来说他本身就是“客户端”,在完成一个爬取任务之后,他就会发起主动关闭连接,从而进入TIME_WAIT的状态,然原创 2015-08-12 15:34:06 · 541 阅读 · 0 评论 -
I/O复用机制
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2015-08-09 16:18:53 · 461 阅读 · 0 评论 -
Hadoop相关基础知识
Hadoop相关基础知识原创 2015-08-13 19:02:41 · 1185 阅读 · 4 评论 -
进程间通信-信号详解
一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强转载 2015-08-21 20:03:29 · 499 阅读 · 0 评论