技术笔记
LeslieWei
这个作者很懒,什么都没留下…
展开
-
(转)怎样理解操作系统中“栈”的概念
从CPU角度来说的栈指的是CPU有个积存器SS,这个寄存器的低16 bit连同ESP一同指向下一次堆栈操作(push和pop)所要使用的堆栈地址。这个寄存器也可以被装入任意数值,你可以通过入栈和出栈操作来给他赋值,不过由于堆栈对于很多操作有很重要的意义,因此,不正确的修改有可能造成对堆栈的破坏。////////////////////////////////////////////////...原创 2012-05-14 20:13:06 · 212 阅读 · 0 评论 -
Erlang虚拟机源码阅读笔录(一)虚拟机的启动
去年在北京一个互联网公司实习,当时项目组需要使用和erlang相关的东西,然后给我一个任务,和另外两个同事一起阅读erlang虚拟机的源码,然后给老大写一份报告,我主要阅读的是启动,指令,进程创建以及调度这块的代码。阅读笔记是早就写好了,却一直没有同步到博客上,本来自己资质尚浅,笔记里面也有诸多错误;再则这份阅读笔录也不是完全原创,也借鉴了诸多大牛和官网上的东西。到现在突然想将其开放到博客上,...原创 2013-04-10 08:31:59 · 522 阅读 · 0 评论 -
Erlang虚拟机源码阅读笔录(二)虚拟机的指令集
2. Erlang虚拟机的指令集在具体分析erlang进程的调度和执行过程前,我们需要简单的了解下erlang虚拟机的指令集的几种形式。2.1. Erlang程序的内存结构 Erlang程序beam文件是需要虚拟机解释执行的字节码文件,因此Erlang的进程结构不同于普通的操作系统进程,Erlang的所有进程数据包括代码,堆栈结构都是存放在数据区里,Erlang进程并没有普通...原创 2013-04-10 11:37:16 · 258 阅读 · 0 评论 -
Erlang虚拟机源码阅读笔录(三)虚拟机的进程调度
3. Erlang虚拟机的调度在这一部分中我们来重点分析Erlang虚拟机的调度策略。由第一分部的介绍可以得知,在ERTS_SMP模式中,erl_start()函数在创建好第一个进程后最后调用的两个函数分别为erts_start_schedulers()和erts_sys_main_thread()。在单核模式下,erl_start()函数在调用set_main_stack_size(...2013-04-10 11:43:47 · 464 阅读 · 0 评论 -
Erlang虚拟机源码阅读笔录(四)虚拟机的进程创建
4. Erlang虚拟机的进程创建在第三节中我们分析了Erlang虚拟机的进程调度和指令集(threaded-code)的执行过程,这一节我们分析Erlang虚拟机的进程创建过程。首先,创建一个需要调用内建函数(BIF)erlang:spawn或者spawn_opt,spawn_link等,这里我们分析spawn函数的调用过程。所有spawn函数最后都会调用spawn/3这个BIF,这...2013-04-10 11:46:03 · 272 阅读 · 0 评论 -
Memcached和Mysql数据存储测试对比
昨晚写了个关于Memcached和Mysql的数据存储与读取的数据对比,然后让服务器跑了一晚上,一直担心把电脑跑崩溃,还好没有,测试结果和预测的差不多。 测试的平台是Memcached-1.4.13和MySql-14.14; 访问数据库工具是iBatIS+JDBC; 操作系统CentOS6; CPU:Pentium(R) Du...原创 2012-04-11 21:28:37 · 182 阅读 · 0 评论 -
C++中的一个小问题
先看下面一段代码: 1/******************************************* 2 * Author: Leslie Wei 3 * Created Time: 2012年04月22日 星期日 21时35分58秒 4 * File Name: nullObj.cpp 5 * Description: 6 * @Copyright ...原创 2012-04-22 22:23:49 · 142 阅读 · 0 评论