- 浏览: 255964 次
- 性别:
- 来自: 杭州
-
最新评论
-
leibnitz:
有几点要请教下;a.在二阶段里有这样一句:引用例如如果一个 p ...
zookeeper源码学习 -
nettm:
不错,我也遇到了第一个问题
mongodb客户端错误集合 -
lingqi1818:
xiaoych 写道很好,研究了一年多了吧,哈哈 难得你上 ...
80x86系统启动原理 -
xiaoych:
很好,研究了一年多了吧,哈哈
80x86系统启动原理 -
pengpeng:
pengpeng 写道很强大。我觉得mas-slave那块可以 ...
分布式计算需求场景以及解决方案
文章列表
【转】一致代码段和非一致代码段
- 博客分类:
- 操作系统
原文地址:
http://blog.csdn.net/feijj2002_/article/details/4597174
之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.
但是有时候用户程序也需要读取内核的某些数据,怎么办呢?
操作系统就引入了访问特权等级(0-3)的机制.
这些特权等级,通过三个符号来体现CPL/DPL/RPL.
其中
CPL是存寄存器如CS中,
RPL是代码中根据不同段跳转而确定,以动态刷新CS里的CPL.
DPL是在GDT/LDT描述符表中,静态的。
1.在x86中的数据和代码是按段 ...
欧洲杯激战正酣,而中国足球假赌黑大审判也在沈阳盖棺定论。而我也不由的想到了2003年末代中国足球甲级A组联赛的排名规则,以及由此发散性的思维,在这里与大家分享。
首先我们来看下03年甲A联赛的排名规则,由于2004年中国足协决定效仿英超联赛启动全新的中国足球超级联赛,而入围的球队将以02年和03年甲A联赛的综合排名来决定,具体排名公式为:
2002年的排名×0.5+2003年的排名=中超资格积分
此公式得出的结果数字越小则排名越靠前。
这个看似很理想的计算方法,其实存在着一个惊天大漏洞。前2年的排名累加对本队丝毫没有影响,但是本队却可以合理利用规则来输球导致其他队排名降低从中获利。 ...
这里有几个原则:
1.调用者需要在调用前声明被调用者。
c的做法
void myprint(char* msg, int len);
int choose(int a, int b)
{
if(a >= b){
myprint("the 1st one\n", 13);
}
else{
myprint("the 2nd one\n", 13);
}
return 0;
}
汇编的做法:
extern choose
...
...
push num2nd
push num1st
call ch ...
80x86系统启动原理
- 博客分类:
- 操作系统
最近在看80X86平台上的系统实现方法,这里先把系统的启动原理总结一下。,由于内容过长,iteye很难操作,故请下载附件,目录如下:
1.汇编调试方法 3
2.系统启动原理 5
3.扇区写入原理 5
4.突破512K限制 9
5.org伪指令解密 28
最近在玩操作系统,开发调试阶段bochs给我们带来了很大的便利,这里做简单介绍。
Bochs是对x86硬件设备的完全模拟,所以它是一个模拟器,而vmware则是一个虚拟机,它会将用户行为完全委托给真实的硬件来完成,除了一些特定的IO需要模拟外。所以bochs的速度回很慢,但是比较方便我们做开发和调试。
1. 安装bochs
a) 从http://bochs.sourceforge.net/下载
b) 编写配置文件
配置文件简介:
megs: 32 ##bochs分配的内存大小,单位为m
floppya: 1_44=tinix.img, status=inserted ##软驱路径
boo ...
commons-io引起的ygc问题
- 博客分类:
- 程序代码
今天接到任务,图片上传服务器的性能有问题,高峰期间YGC频率在2秒一次,维护应用的程序员诊断的原因是图片处理API有性能问题。
不管咋样,亲自看一把才是王道,jmap -dump出堆内存文件。
用Eclipse MAT打开一看,发现FileCleaningTracker这个对象占用了将近一半的堆内存。
查看了下代码,发现这个类是commons-io下用于追踪文件的一个方法引起的问题。方法如下:
/**
* Track the specified file, using the provided marker, deleting the file
* when the ma ...
关于为什么不能从32位的保护模式直接跳转到实模式,而要先跳转到16位的保护模式,再从16位的保护模式跳转到实模式的理解
;****************注意在此用normal选择子对段寄存器进行填充******************************
mov ax, SelectorNormal
317 mov ds, ax
318 mov es, ax
319 mov fs, ax
320 mov gs, ax
321 mov ss, ax
从上述代码可以看出:ds,es,fs,gs,ss这些段寄存器对应的高速缓冲寄存器中的内容可以通过加载normal选择子而得到 ...
最近在使用URLClassloader的加载JAR包中的资源的时候,在系统运行期将JAR包替换成新编译的包(包中数据未变),报错:
Caused by: sun.misc.InvalidJarIndexException: Invalid index at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:858) at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:765) at sun.misc.U ...
- 2012-04-13 17:05
- 浏览 1966
- 评论(0)
通用寄存器的主要用途
寄存器的分类
寄存器
主 要 用 途
通
用
寄
存
器
数据
寄存器
AX
乘、除运算,字的输入输出,中间结果的缓存
AL
字节的乘、除运算,字节的输入输出,十进制算术运算
AH
字节的乘、除运算,存放中断的功能号
BX
存储器指针
CX
串操作、循环控制的计数器
CL
移位操作的计数器
DX
字的乘、除运算,间接的输入输出
变址寄存器
SI
存储器指针、串指令中的源操作数指针
DI
存 ...
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmete ...
mongodb客户端错误集合
- 博客分类:
- 程序代码
错误一:
调用代码:
String map = "function() { emit(this.offer_price, {count:1});}";
String reduce = "function(key, values) {";
reduce = reduce + "var total = 0;";
reduce = reduce + "for(var i=0;i<values.length;i++){total += values[i].count;}& ...
jmeter java请求参数配置
- 博客分类:
- 程序代码
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java请求" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Argument ...
-module(test81).
-export([start/1]).
start({N,M,Mess})->
statistics(runtime),
statistics(wall_clock),
L=for(1,N,fun()->spawn(fun()->recv() end) end),
for(1,M,fun()->lists:foreach(fun(Pid)->Pid!Mess end,L) end),
{_,Time1}=statistics(runtime),
{_,Time2}=statistics(wall_cl ...
redis的服务器程序采用的是单进程,单线程的模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。
下图是整个服务器模型原理图。
首先我们来说明下整个服务器初始化的过程:
1.初始化asEventLoop ...