摘要: 1 #include 2 using namespace std; 3 4 /************************************************************************/ 5 /*Lazy Singletom(非线程安全) */ 6 /***... 阅读全文
posted @ 2018-03-08 08:32 张铁子 阅读(191) 评论(0) 推荐(0) 编辑
摘要: auto_ptr: unique_ptr: shared_ptr和weak_ptr: 阅读全文
posted @ 2018-03-04 16:49 张铁子 阅读(239) 评论(0) 推荐(0) 编辑
摘要: select: poll: epoll: 1.实现了epoll自己的文件结构eventpoll和epitem,在初始化时(操作系统启动时)分配相应的缓存,使用slab分配内存。epoll_creat返回的为新的文件描述符(仅epoll可用),可以通过file->private_data得到。 2.高 阅读全文
posted @ 2018-03-02 11:58 张铁子 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 本文参考华庭(庄明强)的ptmalloc2 源码剖析 简介: ptmalloc实现了malloc(),free()以及一组其他函数,以提供动态内存管理,同时支持多线程。分配器处于用户空间和内核空间之间,响应用户的分配请求,向操作系统申请内存。总体思想是先“批发”一块大内存,而后“零售”给用户,同时也 阅读全文
posted @ 2018-02-22 18:58 张铁子 阅读(1616) 评论(0) 推荐(0) 编辑
摘要: chunk 容器 ptmalloc统一管理heap和mmap区的chunk,避免了频繁的系统调用,一共维护了128个bin,使用数组来存储,所有的bin都是双向链表。 2.Fast Bins 对于不大于max_fast的chunk加入fast bins,标志位P不改变(为了不使其合并),在认为内存碎 阅读全文
posted @ 2018-02-22 18:52 张铁子 阅读(425) 评论(0) 推荐(0) 编辑
摘要: pipe 函数 int pipe( int fd[2] ); 创建管道,半双工,字节流,容量默认65536字节。fd[0]用来读,fd[1]用来写。 可以用与父子进程间的无名管道,各自关闭一端。 int sockpair(int domain, int type, int protocol, int 阅读全文
posted @ 2018-02-21 16:33 张铁子 阅读(260) 评论(0) 推荐(0) 编辑
摘要: register: 定义变量是寄存器保存,不写到内存上 static: static修饰变量: static修饰函数: NULL: 在c语言中 #define NULL (void*)0,所以对于指针来说p == NULL 和 p == 0 是一个道理。c++中 #define NULL 0 ,而对 阅读全文
posted @ 2018-02-16 09:38 张铁子 阅读(245) 评论(0) 推荐(0) 编辑
摘要: TCP/IP协议族体系结构和主要协议 下层协议通过封装为上层协议提供相应的接口,通过头部信息中的类型字段实现分用。‘ ARP协议工作原理 主机向自己所在的网络广播一个ARP请求,目标地址会回应一个ARP应答,包含自己的物理地址。对于经常访问或最近访问的IP会放入ARP高速缓存。 ICMP: 一类是差 阅读全文
posted @ 2018-02-16 09:27 张铁子 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 参考博文:http://www.cnblogs.com/huxiao-tee/p/4660352.html x86平台下linux进程虚拟地址空间分布(2.6.7以前版本) mmap区域与栈区域相对增长,只有1GB连续的虚拟地址空间可用。 x86平台下linux进程虚拟地址空间分布(2.6.7以后版 阅读全文
posted @ 2018-02-08 14:34 张铁子 阅读(2906) 评论(0) 推荐(2) 编辑
摘要: 缺页异常 会出现缺页异常的情况: fork等系统调用时并没有映射物理页,写数据->缺页异常->写时拷贝 task_struct: linux描述进程的结构体 1.5个互斥状态,两个终止状态,同时定义了新的睡眠状态可以响应致命信号 使用thread_union来存放 thread_info 和 sta 阅读全文
posted @ 2018-02-02 12:33 张铁子 阅读(7772) 评论(0) 推荐(0) 编辑