随笔分类 -  Linux

摘要:池的概念 由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它 阅读全文
posted @ 2016-08-22 17:06 _in_the_way 阅读(2116) 评论(0) 推荐(0)
摘要:HTTP协议产生于互联网,因此服务器需要处理同时面向全世界数十万、上百万客户端的网页访问,但每个客户端(即浏览器)与服务器之间交换数据的间歇性较大(即传输具有突发性、瞬时性),并且网页浏览的联想性、发散性导致两次传送的数据关联性很低,如果按照上面的方式则需要在服务器端开的进程和句柄数目都是不可接受的 阅读全文
posted @ 2016-08-18 22:46 _in_the_way 阅读(485) 评论(1) 推荐(0)
摘要:TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息。 1.第一次握手:建立连接。客户端发送连接请求报文段,将 阅读全文
posted @ 2016-08-14 15:15 _in_the_way 阅读(12421) 评论(0) 推荐(7)
摘要:一、mmap函数的介绍 1. mmap系统调用: 将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件 阅读全文
posted @ 2016-08-09 00:17 _in_the_way 阅读(392) 评论(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 阅读(414) 评论(0) 推荐(0)
摘要:系统提供select函数来实现多路复⽤用输入/输出模型。select系统调用是用来让我们的程序监视 多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或 多个发生了状态改变。关于文件句柄(socket),其实就是一个整数,我们最熟悉的句柄是0、1、2三 个,0是标准 阅读全文
posted @ 2016-08-07 22:13 _in_the_way 阅读(692) 评论(0) 推荐(0)
摘要:自旋锁(Spin lock)自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。因为自旋锁不会引起调用者睡眠,所以自旋锁的效率远 高于互斥锁 阅读全文
posted @ 2016-08-05 14:46 _in_the_way 阅读(763) 评论(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 阅读(284) 评论(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 阅读(996) 评论(0) 推荐(0)
摘要:进程与线程的一个简单解释 作者: 阮一峰 日期: 2013年4月24日 作者: 阮一峰 日期: 2013年4月24日 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机 阅读全文
posted @ 2016-08-02 17:16 _in_the_way 阅读(186) 评论(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 阅读(225) 评论(0) 推荐(0)
摘要:A. mutex (互斥量) 对于多线程的程序,访问冲突的问题是很普遍的, 引入互斥用来保证在任一时刻,只能有一个线程访问该对象, 来保证共享数据操作的完整性 。 解决的办法是引入互斥锁(Mutex,Mutual Exclusive Lock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁 阅读全文
posted @ 2016-08-01 14:18 _in_the_way 阅读(377) 评论(0) 推荐(0)
摘要:线程的概念 我们知道 ,进程在各自独立的地址空间中运行,进程之间共享数据需要mmap或者进程间通 信机 制,本节我们学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进 程中同时执 行多个控制流程,这时候线程就派上了场,比如实现一个图形界面的下载软件, 一方面需要和 户交互,等待和处理户 阅读全文
posted @ 2016-07-31 14:36 _in_the_way 阅读(174) 评论(0) 推荐(0)
摘要:一、信号的产生: 1.用户在终端按下某些键时,终端驱动程序会发送信号给前台进程 例如: Ctrl-C产生SIGINT信号 Ctrl-\产生SIGQUIT信号 Ctrl-Z产生SIGTSTP信号 2.硬件异常产生信号,这些条件由硬件检测到并通知内核,然后内核向当前进程发送适当的信号。 例如:当前进程执 阅读全文
posted @ 2016-07-30 23:35 _in_the_way 阅读(586) 评论(0) 推荐(0)
摘要:System V 中的的三种通信机制 <1>msg_ids消息队列: 消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的,记录消息队列 阅读全文
posted @ 2016-07-26 13:31 _in_the_way 阅读(294) 评论(0) 推荐(0)
摘要:1.进程是一种单执行流,每个进程都私有/独占一份系统资源,代码段共享但是数据段不共享,子进程写数据时会触发写实拷贝,从而保证资源独享。总的来说 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到 。 所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据 阅读全文
posted @ 2016-07-26 11:11 _in_the_way 阅读(282) 评论(0) 推荐(0)
摘要:1.建立一个工程 2.写一个进度条的程序(原理就是在同一位置重复打印某一个字符(变化),达到动态显示的效果) 所以说我们这里只用回车'\r',覆盖这一行以前的输出,重新向缓冲区写数据刷新缓冲区,就能达到动态显示的目的; 效果图如下: 3.在工程下新建一个叫做 Makefile 的文件(M 也可以小写 阅读全文
posted @ 2016-05-31 10:46 _in_the_way 阅读(416) 评论(0) 推荐(0)
摘要:struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ struct thread_info *thread_info; atomic_t usage; unsigned long f 阅读全文
posted @ 2016-05-31 08:21 _in_the_way 阅读(2598) 评论(0) 推荐(0)
摘要:工欲善其事,必先利其器,我们要用好 vim 就先来把它配置的顺手一点,这样可以大大提高我们的工作学习效率 1.跳转指令 Ctags1 从下面地址下载ctags,将其中的ctags.exe复制到vim目录,比如E:\Vim\vim74\ctags.exe http://sourceforge.net/ 阅读全文
posted @ 2016-05-29 15:26 _in_the_way 阅读(1633) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/renfufei/article/details/41647973 阅读全文
posted @ 2016-05-29 13:49 _in_the_way 阅读(300) 评论(0) 推荐(0)