自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 设计模式-观察者模式

Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。今天就来简单实现以下观察者模式。我们首先来模拟一个场景,比如网上购物,现在有一款手机,价格会随着时间发生变化,如果顾客想要以较低的价格来购买,就需要不停去刷新页面,

2017-03-31 00:58:40 264

原创 LVS源码剖析-内核模块入口

首先思考一个问题,LVS的运行环境? 我们知道,应用层是运行在用户态的,但是如果想修改数据包,只有内核态的程序才可以。所以,问题就转移成如何写一个内核态的程序。 在这里,内核模块可以帮我们实现。 我们可以自己实现一个内核模块,让代码在内核态运行。 下面来看LVS的源码 在ip_vs_core.c这个文件中,首先看头文件我们可以看到里面有 module.h这个头文件,这就是写内核模块需要用到

2017-03-26 23:40:23 1464

原创 分布式系统中的一致性哈希 - c++实现

举个例子,在负载均衡中,需要在服务器列表中选择一个服务器。那么,如何选择呢? 我们可以round robin,即轮询策略,第一次把请求包分给1号服务器,第二次把请求包分给2号服务器。。。。。。这种策略比较简单,好理解,不过较为死板,没有考虑别的因素,是比较简单的均衡。 接下来,我们介绍一种比较好的策略–一致性哈希。一致性哈希理解起来并不困难,我们把服务器散列在一个圆环上,然后选择服务器的时候,从

2017-03-20 22:51:22 698

原创 LVS源码剖析-init

很早以前就准备开始写自己的技术博客,可惜迟迟没有动笔。今天就已LVS源码剖析来作为自己博客的开端吧。之前写过一个负载均衡器,不过有点过于简单,决定来研究一下LVS。首先去LVS官网下载了源码,然后用Source Insight 来阅读,还是很方便的。先简单介绍一下LVS的工作模式。 LVS提供了三种负载均衡模式,NAT、direct routing(DR)和tunnel。 NAT模式中,所有数据

2017-03-20 12:49:33 1067

原创 快速排序

快速排序的一个重点在于Partition过程 每次Partition之后找到基准该放的位置,之后递归调用Partition来对基准两边的数字进行划分。#include<stdio.h>#include<stdlib.h>#include<time.h>//交换数字位置void swap(int *a, int *b){ int tmp = *a; *a = *b;

2017-03-20 12:39:38 192

原创 IA32地址空间映射

环境:bochs2.11,linux0.11在main函数中定义一个临时变量 int tmp = 1; 然后打印其地址 这个时候得到的是其逻辑地址变量tmp存在于栈,所以先查找堆栈段寄存器 SS 共16位 高13位为编号(下标) 低前两位为权限(00为内核态,11为用户态) 低第三位(0代表使用GDT全局段描述符表,1代表使用LDT局部段描述符表) 在bochs中用dump_cpu查看

2017-03-20 00:03:57 396

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除