
linux操作系统
文章平均质量分 64
Sunny_Oo
喜欢编程,希望各位大神多多指教!!
展开
-
IA32体系32位Linux系统虚拟地址映射上
首先呢,先来了解相关历史和概念接下来就看看实模式下的地址映射吧!好了,本篇就先介绍这么多,一次看太多不容易消化,但还是要多看几遍哟觉得没问题的了就可以看下篇啦,下篇是重中之重!!!(保护模式下的地址映射)原创 2017-08-01 03:41:13 · 312 阅读 · 0 评论 -
poll源码剖析
下雨天最适合剖源码了→_→**老套路,在看源码之前,先来看看poll源码中的重要数据结构。。。struct poll_wqueues { poll_table pt;//实质上只有一个函数指针 struct poll_table_page * table;//记录poll_table_entry结构的第一个元素的地址 int error;};struct poll_tab原创 2017-09-02 15:23:40 · 432 阅读 · 0 评论 -
进程间通信
进程间的通讯方式有:管道、消息队列、信号量、共享内存管道管道是一种半双工的通信方式,数据只能单向流动;管道在内存中存取数据,磁盘上只保留管道的信息,故管道的大小恒为0。管道的实质是一个内核缓冲区,进程以先进先出的方式从缓冲区存取数据:管道一端的进程顺序地将进程数据写入缓冲区,另一端的进程则顺序地读取数据,该缓冲区可以看做一个循环队列,读和写的位置都是自动增加的,一个原创 2017-09-07 22:36:48 · 288 阅读 · 0 评论 -
进程和线程的区别
面试中被问到几率最大的问题就是进程和线程的区别,本篇就聊聊关于进程和线程的事情吧一、定义进程:一个正在执行中的程序,或者一个正在计算机上执行的程序实例。进程是系统进行资源分配和调度的基本单位。进程四要素:1、可供执行的程序2、专用的系统堆栈空间3、在内核中的task_struct数据结构(户口),记录着进程所占的各项资源3、独立的用户空间线程原创 2017-09-06 15:57:56 · 367 阅读 · 0 评论 -
为什么epoll比select和poll更高效
常见的面试问题之一就是为什么epoll比select和poll高效?本篇就来总结一下它们三者之间的区别~~一、select、poll、epoll三者的特点及区别(1)select系统调用select创建了3个文件描述符集(fd_set)并拷贝到内核中,分别监听读、写、异常动作。这里收到单个进程所能打开的fd的限制,默认为1024.采用轮询方式,遍历所有的fd,最后返回一个文件描原创 2017-09-03 17:18:52 · 3240 阅读 · 2 评论 -
多进程和多线程的选择
多线程和多进程的对比我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说一个好得不得了,另外一个差的无法忍受)。 对比维度多进程多线程总结数据共享、同步数据共享复杂,需要用IPC;数据是分开的,同步简单因为共享进程数据,数据共享简单,但也是因为这个原创 2017-08-15 17:26:16 · 238 阅读 · 0 评论 -
线程池及适用场合
1、为什么需要线程池?目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,原创 2017-08-15 17:21:49 · 608 阅读 · 0 评论 -
epoll源码剖析
在看源码之前呢,非常有必要知道epoll的核心数据结构有哪些,一张图让你更容易看懂重要的数据结构~~(跟着图片走,让你不至于在epoll的源码里绕圈加懵圈→_→ Let’s go!) /** * 代表一个打开的文件。由内核在open时创建。当文件的所有实例都被关闭后,才释放该结构。 */struct file { /** * 用于通用文件对象链表的指针。 *原创 2017-08-10 22:57:35 · 332 阅读 · 0 评论 -
epoll系统调用的API
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#d原创 2017-08-04 13:35:57 · 501 阅读 · 0 评论 -
IA32体系32位Linux系统虚拟地址映射下
看到这里了,说明你已经基本掌握了地址映射的过程再坚持五分钟,再来总结一遍加补充知识!啊,终于结束了,收工......晚安原创 2017-08-01 04:02:23 · 353 阅读 · 0 评论 -
IA32体系32位Linux系统虚拟地址映射中
都是一点一滴积累的,说多了都是泪原创 2017-08-01 03:56:07 · 334 阅读 · 0 评论 -
select源码剖析
我左看右看,上看下看,一不小心看懂了select→_→现在就让它现出原形~*int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout)1)nfds参数指定被监听的文件描述符的总数。它通常被设置为select监听的所有的文件描述符中的最大值加1。因为文件描述符是从0开始计原创 2017-09-02 21:51:43 · 450 阅读 · 0 评论