08 2016 档案

摘要:池的概念 由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它 阅读全文
posted @ 2016-08-22 17:06 _in_the_way 阅读(2140) 评论(0) 推荐(0)
摘要:HTTP协议产生于互联网,因此服务器需要处理同时面向全世界数十万、上百万客户端的网页访问,但每个客户端(即浏览器)与服务器之间交换数据的间歇性较大(即传输具有突发性、瞬时性),并且网页浏览的联想性、发散性导致两次传送的数据关联性很低,如果按照上面的方式则需要在服务器端开的进程和句柄数目都是不可接受的 阅读全文
posted @ 2016-08-18 22:46 _in_the_way 阅读(496) 评论(1) 推荐(0)
摘要:TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息。 1.第一次握手:建立连接。客户端发送连接请求报文段,将 阅读全文
posted @ 2016-08-14 15:15 _in_the_way 阅读(12492) 评论(0) 推荐(7)
摘要:一、mmap函数的介绍 1. mmap系统调用: 将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件 阅读全文
posted @ 2016-08-09 00:17 _in_the_way 阅读(405) 评论(0) 推荐(0)
摘要:poll函数和select函数非常相似,但是函数接口不一样。 #include <poll.h> int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); 返回:就绪描述字的个数,0-超时,-1-出错 第一个参数是指向一个结 阅读全文
posted @ 2016-08-08 00:41 _in_the_way 阅读(428) 评论(0) 推荐(0)
摘要:系统提供select函数来实现多路复⽤用输入/输出模型。select系统调用是用来让我们的程序监视 多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或 多个发生了状态改变。关于文件句柄(socket),其实就是一个整数,我们最熟悉的句柄是0、1、2三 个,0是标准 阅读全文
posted @ 2016-08-07 22:13 _in_the_way 阅读(718) 评论(0) 推荐(0)
摘要:自旋锁(Spin lock)自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。因为自旋锁不会引起调用者睡眠,所以自旋锁的效率远 高于互斥锁 阅读全文
posted @ 2016-08-05 14:46 _in_the_way 阅读(782) 评论(0) 推荐(1)
摘要:TCP/IP通讯协议采⽤用了4层的层级结构 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇 分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI 的第四层)。 TCP/IP通讯协议采⽤用了4层的层级结构,每一层都 阅读全文
posted @ 2016-08-04 10:30 _in_the_way 阅读(302) 评论(0) 推荐(0)
摘要:Mutex变量是非0即1的,可看作一种资源的可用数量,初始化时Mutex是1,表示有一个可用资源, 加锁时获得该资源,将Mutex减到0,表示不再有可用资源,解锁时释放该资源,将Mutex重新加 到1,表示又有了一个可用资源。 semaphore变量的类型为sem_t,sem_init()初始化一个 阅读全文
posted @ 2016-08-03 14:20 _in_the_way 阅读(1013) 评论(0) 推荐(0)
摘要:进程与线程的一个简单解释 作者: 阮一峰 日期: 2013年4月24日 作者: 阮一峰 日期: 2013年4月24日 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机 阅读全文
posted @ 2016-08-02 17:16 _in_the_way 阅读(194) 评论(0) 推荐(0)
摘要:1. 相关函数 #include <pthread.h> //初始化 pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *con 阅读全文
posted @ 2016-08-02 14:19 _in_the_way 阅读(241) 评论(0) 推荐(0)
摘要:A. mutex (互斥量) 对于多线程的程序,访问冲突的问题是很普遍的, 引入互斥用来保证在任一时刻,只能有一个线程访问该对象, 来保证共享数据操作的完整性 。 解决的办法是引入互斥锁(Mutex,Mutual Exclusive Lock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁 阅读全文
posted @ 2016-08-01 14:18 _in_the_way 阅读(392) 评论(0) 推荐(0)