`
lingqi1818
  • 浏览: 249251 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
原文地址: 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平台上的系统实现方法,这里先把系统的启动原理总结一下。,由于内容过长,iteye很难操作,故请下载附件,目录如下: 1.汇编调试方法 3 2.系统启动原理 5 3.扇区写入原理 5 4.突破512K限制 9 5.org伪指令解密 28

bochs简介

最近在玩操作系统,开发调试阶段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 ...
今天接到任务,图片上传服务器的性能有问题,高峰期间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 ...
通用寄存器的主要用途 寄存器的分类 寄存器 主 要 用 途 通 用 寄 存 器 数据   寄存器 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 ...
错误一: 调用代码: 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;}& ...
<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 ...
Global site tag (gtag.js) - Google Analytics