08 2013 档案

摘要:浅析Linux Kernel中的那些链表出处信息链表是Linux内核中最重要的数据结构,但Linux内核中的链表与传统的数据结构书中看到的链表结构略有不同。这里简单写一下我对于Linux内核中链表的理解,不足之处欢迎路过的大牛给出批评意见。1.传统形式的链表数据结构书中的链表一般是下面这种形式:struct list { struct list *pre; struct list *next; void *data;};每一个链表结构中都包括两个同类型的指针,分别指向链表的上一个节点和下一个节点。这样当该节点处于一个循环链表中时,链表的首节点一般不用于保存数据,但首节点也需要是一个struct 阅读全文
posted @ 2013-08-30 11:14 tangr206 阅读(468) 评论(0) 推荐(0)
摘要:首先解释一下这个题目, "报文"指的是业务层自定义的报文, TCP是流式协议, 不像UDP那样是报文协议.SYS-ATM开发的RMS系统, 需要和SYS-SIM开发的某个系统进行交互, 进行自动重启服务器和其它操作. 双方使用了TCP, 并自定义了一个简单的应用层协议, 请求报文的格式为:&sig=xxxSYS-ATM作为请求方, 用PHP的stream_socket_sendto()进行发送. SYS-SIM开发服务器端, 使用Python的twisted框架. 上线后, 出现问题, 服务器端接收到的报文不完整. 例如, json串只读了一半, 或者缺少" 阅读全文
posted @ 2013-08-27 09:37 tangr206 阅读(3224) 评论(0) 推荐(0)
摘要:连续发送多份小数据时40ms延迟问题以及TCP_NODELAY、TCP_CORK失效问题的定位与解决Pyramidtandai@baidu.com提到TCP_NODELAY和TCP_CORK,相信很多人都很熟悉。然而由于Linux实现上的问题,这两个参数在实际使用中,并不像书里介绍的那么简单。最近DTS在解决一个TCP超时问题时,对这两个参数和它们背后所隐藏的问题有了比较深刻的认识,在此与同学们分享一下我们的经验和教训。问题描述和许多经典的分布式程序类似,DTS使用TCP长连接用于client和server的数据交互:client发送请求给server,然后等待server回应。有时候出于数据 阅读全文
posted @ 2013-08-27 09:27 tangr206 阅读(3526) 评论(1) 推荐(0)
摘要:select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。关于这三种IO多路复用的用法,前面三篇总结写的很清楚,并用服务器回射echo程序进行了测试。连接如下所示:select:http://www.cnblogs.com/Anker/archi.. 阅读全文
posted @ 2013-08-20 10:11 tangr206 阅读(395) 评论(0) 推荐(0)
摘要:1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#include int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wai.. 阅读全文
posted @ 2013-08-20 10:07 tangr206 阅读(353) 评论(0) 推荐(0)
摘要:1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间 我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,... 阅读全文
posted @ 2013-08-20 10:00 tangr206 阅读(168) 评论(0) 推荐(0)
摘要:这里对在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出.对于网络编程的更多详细说明建议参考下面的书籍《UNIX网络编程》《TCP/IP 详解》《Unix环境高级编程》网络编程常见问题总结相关说明非阻塞IO和阻塞IO基本概念设置区别:读:写:超时控制:长连接和短连接的各种可能的问题及相应的处理短连接:长连接:主要线程模型优缺点和注意事项最简单的线程模型生产者消费者模型异步模型对一些常见错误号的分析FAQ为什么网络程序会没有任何预兆的就退出了write出去的数据, read的时候知道长度吗?如何查看和观察句 阅读全文
posted @ 2013-08-20 09:48 tangr206 阅读(1034) 评论(0) 推荐(0)
摘要:分类:数据库2011-10-28 20:44618人阅读评论(1)收藏举报mysql数据库databasesqldeletebashMysql跨库主从热备失效问题在InnoDB引擎下发现,Mysql的主从热备存在数据不一致的问题,一些数据没有成功同步到备机。在use databases后,更新的表必须是当前选择的database才同步。譬如连上Mysql服务后操作:USE test2;UPDATE client SET name='test' WHERE uid=1;数据未能同步到备机,而使用use test后,才可以成功同步,如下方式:USE test;UPDATE clie 阅读全文
posted @ 2013-08-12 09:35 tangr206 阅读(436) 评论(0) 推荐(0)
摘要:论创新工场、职业发展、offer如何比较选择、移动互联网[复制链接]laofo版主金钱9642版本号160威望12852积分22666精华172帖子6746串个门加好友打招呼发消息电梯直达1#发表于3天前|只看该作者|倒序浏览@魏小康xiaokanghttp://weibo.com/xiaokangwei首先声明:忙,保证持续更新不保证结束时间,估计一周左右写完,忙的话两周。涉及到对创新工场、李开复人品、移动互联网等的看法代表我魏小康的个人看法,版权所有,转载请务必注明。大纲:一、缘由、概述二、创新工场的模式三、职业发展道路的影响因素四、职业选择的几个小问题五、李开复的移动互联网和我眼中的移动 阅读全文
posted @ 2013-08-09 19:40 tangr206 阅读(472) 评论(0) 推荐(0)
摘要:数据库的备份是极其重要的事情。如果没有备份,遇到下列情况就会抓狂:UPDATE or DELETE whitout where…table was DROPPed accidentally…INNODB was corrupt…entire datacenter loses power…从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从、drbd等容灾机制,但它们都无法完全取代备份。容灾和高可用能帮我们有效的应对物理的、硬件的、机械的故障,而对我们犯下的逻辑错误却无能为力。每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就放大成很大的安全隐患,这时候备 阅读全文
posted @ 2013-08-07 22:26 tangr206 阅读(90) 评论(0) 推荐(0)