Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6279904
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

发布时间:2015-03-14 04:29:42

       赵建清+原创作品转载请注明出处+《Linux内核分析》MOOC课程http://mooc.study.163.com/learn/USTC-1000029000       本文以汇编语言为工具,分析linux系统函数调用的基本工作机制。首先说明进程的内存布局,然后使用一个实例说明在进程运行过程中栈帧的动态变化过程.........【阅读全文】

阅读(858) | 评论(0) | 转发(0)

发布时间:2015-03-14 04:29:27

C程序怎么调用计算机工作?首先,设有下面的C程序代码:程序从main入手,调用f函数再调用g函数,最后返回main,输出结果。C程序是高级语言,最终计算机会翻译成机器语言,由于机器语言可读性太差,我们可将它翻译成对应的汇编语言,执行以下命令将以点开头的行去除,可以得到以下结果:ebp.........【阅读全文】

阅读(1037) | 评论(0) | 转发(0)

发布时间:2015-03-14 04:28:56

kernel 3.10内核源码分析--hung task机制
一、相关知识
长期以来,处于D状态(TASK_UNINTERRUPTIBLE状态)的进程都是让人比较烦恼的问题,处于D状态的进程不能接收信号,kill不掉。在一些场景下,常见到进程长期处于D状态,用户对此无能为力,也不知道原因,只能重启恢复。
其实进程长期处于D状态肯定是不正常的,内核中设计D状态的目的是为了让进程等待IO完成,正常情况下IO应该会顺利完成,然后唤醒相应的D状态进程,即使在异常情况下(比如磁盘离或损坏、磁阵链路断开等),IO处理也是有超时机制的,原理上不会存在永久处于D状态的进程。但是就是因为内核代码流程中可能存在一些bug,或者用户内核模块中的相关机制不合理,可能导致进程长期处于D状态,无法唤醒,类似于死锁状态。
针对这种情况,内核中提供了hung task机制用于检测系统中是否存在处于D状态超过120s(时长可以设置)的进程,如果存在,则打印相关警告和进程堆栈。如果配置了hung_task_panic(proc或内核启动参数),则直接发起panic,结合kdump可以搜集到vmco......【阅读全文】

阅读(878) | 评论(0) | 转发(0)

发布时间:2015-03-14 04:28:34

2015年,是我在北京第18年年头,也是走入职场第18个年头,期间发生的事千奇百怪,有些还挺有意思。一直有把自己在北京生活的经历写出来的想法。6年前写过一个《北漂12年》四篇之后就因为这个那个没再坚持。今年过年回天津,家里一位长辈特意提起此事,跟我说还是要写。当时我很受鼓舞,回北京一忙就又搁置了,直到上周机缘再次出现。......【阅读全文】

阅读(697) | 评论(0) | 转发(0)

发布时间:2015-03-14 04:27:20

2015.3.3 在经历了改版本号和11个rc版本之后,期待已久的Mongodb3.0.0终于发布,举群欢腾,下面我们就来看一下这个跳票版本主要有哪些改进。一、插件式存储引擎APIMongoDB向MySQL看齐,开发了插件式存储引擎API,为第三方的存储引擎厂商加入Mongodb提供了方便。已经支持和即将支持的一些存储引擎:MMAP v1 默.........【阅读全文】

阅读(969) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册