JAVA 应用优雅关闭
Linux 信号
信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。通俗来讲,信号就是进程间的一种异步通信机制。
对于内核来说,信号的意义在于通知进程让进程知道已经发生了某个特定事件,或/和强迫进程执行它的信号处理程序,比如本文[……]
信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。通俗来讲,信号就是进程间的一种异步通信机制。
对于内核来说,信号的意义在于通知进程让进程知道已经发生了某个特定事件,或/和强迫进程执行它的信号处理程序,比如本文[……]
本文涉及到中断/异常、系统调用、信号、进程切换,因为有这之间涉及到很多依赖,而很多概念容易混淆,所以专门梳理一下概念
中断是由间隔定时器和I/O设备产生的,即CPU的外围设备产生,以通知CPU一个事件的发生,硬件上存在可编程中断控制器(PIC, APIC),负责向 CPU[……]
A few weeks ago Linus Torvalds answered some questions on slashdot. All his responses[……]
double sqrt_x(double x) { double x0, xn, xn1, diff; double pricision = 1e-10; x0 = x; *((char *)&x0 + 7) &= 0x7f; // x0[......]
最近自己实现了math.h中的一些函数, 目的还是为了熟悉一些原理性的知识, 虽然很多函数都有直接对应的硬件指令了…
#define LLMAX 0x7FFFFFFFFFFFFFFFLL #define LLMIN 0X8000000000000000LL typedef union[......]
#include <stdlib.h> #include <string.h> #define between(x, min, max) ((x) >= (min) && (x) <= (max)) static inline unsigned[......]
#include <stdlib.h> #include <string.h> unsigned int base64_encode( unsigned char **dest, const unsigned char *src, unsigned int le[......]
转自http://just-study.blogbus.com/logs/37238127.html 代码有部分改动
本文档已经经过反复修改,最终包含大量的方法帮助优化c语言代码。编译器是很好的,但是它们并不能按照你的意愿做所有事情,因此,我希望帮助大家从自己的代码中获取最好的性能比。本教[……]
转一个条理比较清晰的文章 Intel x86 Function-call Conventions – Assembly View[……]
我们可以定义一些最基本的计算,比如加减乘除、移位等,然后通过对基本计算进行高阶组合,形成更复杂的计算,比如幂、开方、阶乘等等
而计算机中除了基本的计算,还有基本的控制指令,比如循环、判断、递归、函数调用等
当具备这些特性后,我们就可以用他们进行组合,模拟出一个高阶的机器
比如我们可[……]
有时会需要测试一个函数的运行时间, 用标准库的时间函数精度不够, 打印出来的运行时间是0.00000…
用循环来放大这个时间一般不会有问题的
但是如果多个算法之间时间开销差别很大, 比如函数aa()运行一次的时间是1.0s, 而函数bb()运行时间是0.000000s, 这时候再对他们用循环10[……]
转自http://www.52rd.com/Blog/Detail_RD.Blog_thieven_4865.html (为了防止链接404特意转载)
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解[……]