自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(35)
  • 收藏
  • 关注

原创 Java初入其径(1): 接口也能继承

阅读代码时,窥得接口继承其它的接口,想着“接口也能被继承,不是实现接口吗?”,思忖之后,区分了继承和实现之间的语义差别,继承是“获取父辈流传下来的东西”,Java中,并不是说只有类可以继承类,当有接口需要获取另个接口的定义时,它也可以继承那个接口,这是符合语义的。而实现的语义是将已定义过的方法,填充它的内部运行机制。import sun.misc.Lock;/** * Created b

2014-01-26 14:55:54 546

原创 barbecue

#include "barbecue.h"#include void barbecue::add_guest(int arrival){ guest* gst = new guest(this, arrival); _schedule_table.push(gst);}void barbecue::serve_guest(guest* gst){ _schedule_tabl

2013-10-24 17:24:17 436

原创 c++获取操作系统的版本(vs2013)

在vs2013下,使用GetVersionEx来获取操作系统的版本信息,vs报错error: `GetVersionEx‘ declared deprecated,于是去msdn查看了一下,推荐使用VerifyVersionInfo来进行版本判断,官方解释是因爲一般只要判断是否windows的版本大于某个特定的版本号。于是我查看了一下VerifyVersionInfo,这个函数的使用就是针对特

2013-10-16 21:52:12 6402 4

原创 c#文件读写之内存映射和StreamReader

契机:这两天写逐行分析文件的程序,文件是GB量级的,我用来分析的文件大小是2GB大小。分析:       考虑到内存大小有限(本机2GB),那么不能将2GB的文件全部加载如内存,想到2个读取方法: c#本身有StreamReader类,可以通过指定path读取文件,并且有ReadLine的方法,逐行读取。 通过内存映射,将文件映射到虚拟内存空间,由操作系统管理,需要对虚拟内存中

2013-09-18 20:18:20 2780

原创 毕业设计之模块整合

之前完成了VolumeDelegateService,以及VmmDelegateService,于是最后是把这些模块进行整合。在最后最后的模块vssService里,已知卷服务器们的ip地址,和vmm服务器的ip地址。volumes表记录创建的volume的信息:卷id    卷所在的卷服务器url    卷大小   卷的创建时间   卷的使用状态volId   serve

2013-04-25 21:45:35 299

原创 毕业设计之多卷服务器

想到一开始拿到这个项目的时候,多卷的概念很模糊,现在经过学习之后,明白了,卷服务器是作为存储管理者的身份存在的,它们共享整个存储池,就算一个卷服务器挂掉了,也可以重启一个代替。可是我现在的问题是,我没有一块存储池,所以我改用每个卷服务器都自己提供存储,而不是共享。假设有两个卷服务器作为后端,卷服务器A,卷服务器B,那么用户执行createVolume时,这个操作会在哪个卷服务器上执

2013-04-24 22:05:06 445

原创 最后的遗言:虚拟机中的虚拟机

为了毕设,很蛋疼地在mac的vmware fusion里装了一个ubuntu,更蛋疼地在ubuntu里的xen虚拟机中装了一个centOS。像盗梦空间的层层梦境,最后在centOS里的时候,鼠标终于无法正常移动了!主要是为了使用xen的块绑定的操作,可以将从卷服务器上通过iSCSI获取的逻辑卷分配给自己的xen中的虚拟机,很拗口!xen命令行操作表=>xm list:所有已知的虚拟机列

2013-04-23 15:29:45 438

转载 ubuntu xen安装

//转载自http://www.360doc.com/content/12/1122/21/4171006_249630254.shtml#    最近看了些有关虚拟化的东西,几种虚拟化技术中最常用的就是全虚拟化技术和半虚拟化技术。想在Ubuntu下尝试安装一下运用这两种技术的虚拟机。    全虚拟化技术的典型代表就是VMware虚拟机了,VirtualBox也是。这两种虚拟机安全起来非常

2013-04-22 15:51:37 1309 1

原创 毕设学习之iSCSI的使用

lvm的作用以及使用方法:http://linux.vbird.org/linux_basic/0420quota.php#lvm创建一个20G的逻辑卷:首先,利用fdisk进行分区,我将未分配的20G空间转换成LVM格式的逻辑分区,并且使用pvcreate将一创建的分区创建成物理卷,之后,将创建的物理卷添加入新的卷组srgvg,vgcreate -s 16M srgvg /dev

2013-04-22 15:09:34 597

转载 一直不知道__P干嘛用的,这次记录一下

On 2006-06-08 10:45, Saifi saifi at twincling.org> wrote:> Hi:>> Most of the racoon code uses __P macro.>> and the __P macro is defined as ->> #undef __P> #ifndef __P> #if __STDC__> #define

2013-04-19 11:48:01 426

原创 毕业设计学习(2)

iscsi-target提供了磁盘块存储,通过tcp/ip向客户端传送iscsi控制/存储数据,用网络来作为媒介,让客户端像使用本地磁盘一样使用非本地的磁盘,这样的好处就是能够动态地增加磁盘空间,可以通过增添服务器来提供这一操作。iscsi-initiator就是这样一个客户端,它去侦测指定服务器,并且将iscsi-target发布的可用磁盘加载到本地/dev目录下,这样在自己的系统里也可以像

2013-04-13 08:46:13 142

原创 毕业设计学习(1)

不知道自己无知是幸福的,知道自己无知是烦躁的起源。听着林宥嘉的美妙生活,感觉像是在听悲惨世界...基于多卷服务器的云存储管理系统,作为毕业课题,我这么无知的人,真的diao都不懂,网上查了些资料,看了下论文,还是不敢说自己懂,因为没写过... 但是有前辈的java源码在前,总可以学习一下吧,不然就太懒了。但是java 几乎0基础的我,真的是慢慢啃,连基础平台都搭建不起来,更别谈写出

2013-04-13 08:43:43 514

原创 epoll读写事件如何触发?

为了理解一下epoll的读写事件如何触发,自己写了一些测试程序。Example 1:#include #include #include #include #include #include #include #include #include #include #define MAXLINE 10#define OPEN_MAX 100#define LI

2012-12-20 16:49:14 1114

转载 python使用lock

Python定时器是计算机常用的计算机语言,在其广泛的实际应用操作中会涉及到Lock的实际应用,如果你对Python定时器中Lock的实际应用感兴趣的话,你可以通过我们的文章对其有更深的了解。在Python定时器中Lock的实际应用Lock/RLock 和 C# lock 关键字差不多意思。不同的是,Lock/RLock 只需 "锁定" 自己,而 C# lock 还得另外找个引用类

2012-12-20 13:12:53 1483

转载 kqueue && epoll

int kqueue(void);=> 返回一个文件描述符,用来操作新建的kqueue实例int kevent(int kq, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout);=> kq: k

2012-12-15 22:34:10 1887

原创 大杭电OS 文件系统实现 (tab补全乱入)

我大杭电的十年如一日的操作系统课程设计, 内容还是不错的, 手册也够详细, 文件系统这块看的不是太清晰, 按自己想的实现了一下,实现了才知道不易!block为内存块,大小为1024 B,系统由1000个block组成。block 0储存文件系统信息,紧接着2个block为 fat16,用来标记块的分配情况和连续性,它有一个相同大小的备份紧接着, 剩下的995个block是储存目录和文件的区

2012-12-07 21:46:11 317

原创 有多少bug可以重来

那些尝试过的bug、bug 1:   malloc(sizeof(1024))      why always segmentation fault?本着分配1024字节空间的伟大使命,使用这条命令,sizeof(1024),真的不是sizeof(int)的意思吗。。bug 2:  宏=请加括号!#define min(a,b) (a)<(b)?(a):(b

2012-11-25 12:27:25 468

原创 python 元编程

from abc import ABCMeta, abstractmethod, abstractpropertydef method_a(cls): print "method A"def method_b(cls): print "method B"method_dict = { 'ma' : method_a, 'mb' : method_b,}

2012-11-22 22:12:55 127

python 元编程

元编程=> 用代码写代码classes are themselves objects that can be passed around and introspected. 类本身是可传递的对象,能够自省、

2012-11-22 17:34:19 96

原创 python成员访问

import mathclass Circle: def __init__(self): self.radius = 1 def __getattr__(self, item): if item is 'area': print 'area called' return math.pi*self.

2012-11-22 13:46:12 558

原创 笔试面试带来什么?

最早的笔试是大二下半学期的时候支付宝的校园招聘,那时候自己刚看完csapp,终于给了自己一个基本计算机概念,没那么不知所措了。。被marine鼓励了一下,参加了这个笔试,这笔试考的是linux使用的一些基础知识,比如指令,shell脚本的一些编写,还有一些IQ问题、过了几天,alipay让我去面试,人生的第一次面试就这么诞生了,犹记得在那晚等着电话的我,单曲循环曹方姐姐的门这首歌,在微冷的租的

2012-11-17 23:12:35 561

原创 我的第一个解释器--scheme

scheme是这个暑假弄的,实现了一下它的基本框架我的实现比较学术,毕竟是看了编译原理的前5章,之后弄的,所以思路简洁清晰!Q:scheme是什么?A:scheme是MIT人工智能实验室开发的一种lisp方言,一种用括号包围的语言Q:为什么是scheme?A:因为sicp(推荐)Q:我的解释器用的是怎样的分段开发?A:lexer(词法分析) ->

2012-11-11 16:02:43 1241

原创 hdu 2442

#include #include #include using namespace std;int main(int argc, const char * argv[]){ int cas,n,m,t; priority_queue,greater >Q0; priority_queue,less >Q1; int tmp_arr[2001],arr[2001]; cin

2012-11-01 20:14:00 485

原创 hdu 1442

题意:有两种操作,add(x),get()The Black Box algorithm supposes that natural number sequence u(1), u(2), ..., u(N) is sorted in non-descending order, N <= M and for each p (1 <= p <= N) an inequality p <= u(p

2012-11-01 19:20:23 355

原创 java中的static

static可以修饰成员方法,成员变量//:Static.javaimport java.io.*;import java.util.*;class A {A() { System.out.println("A init"); }}class B {static A a = new A();static void f1() { System.ou

2012-10-26 21:41:42 262

原创 usaco之a game

首先,player1和player2都是最聪明的人,他们会选择在他们选择最好的选择玩家如何能做出最好的选择,依赖于他选择array的head端还是tail端,所以最佳选择是best_choice(head,tail)=max(array[head]+sum_from_to[head+1][tail]-best(head+1,end),array[tail]+sum_from_to[head

2012-10-07 22:15:20 381

原创 usaco之camelot

这道题真的有太多小细节要注意了,如果没有usaco的测试数据指引,真的会漏掉非常多的细节1. 首先我本地化了每个骑士(knightr,knightc){1=2. 同样,固化了国王的行路最小步数,当然国王只有一个.3. 分析可能的情况: condition 1:    国王不要骑士带领,直接走到汇合点,则步数为(all knights -> destina

2012-10-07 02:22:03 573

原创 表达式求值-二叉树实现

本来用栈实现表达式求值,这次用二叉树来实现,DRY`一开始做的时候,脑子里没有一点概念,而没概念是最要命的,所以在网上乱晃,希望有个解释,但可能实在太浮躁了,代码是不想看的,而思路自己也看不大懂,所以本来想TJ, 最终忍住了,直接买了本数据结构(C语言版),慢慢看,它上面的思路很连续,看了之后终于懂了。为了连续性,我先把后缀表达式的栈实现描述一下,因为栈实现

2012-03-21 16:50:29 3172 3

原创 thread

#include #include #include #define NTCB 1000#define FINISHED 0#define RUNNING 1#define READY 2#define BLOCKED 3typedef struct thread {  char name[10];  unsigned ss;  unsigned sp;

2011-11-07 14:55:45 179

原创 ratios

/*ID:songrgg1PROG:ratiosLANG:C*/#include typedef struct feed { int one; int two; int three;} feed;void get_feed(FILE *

2011-10-18 20:05:27 203

原创 FAT表寻址 取数据

于渊的Orange‘s将boot设置为dos可识别,而要做的工作中,除了将在软盘中的部分提到内存中,还存在将内存中的FAT表中的地址取出,我一开始非常吃力,这内存存储方式真是恶心,什么小端法的存储模式,你最好把他们在脑海里用栈的模型来想象,这样就很轻松的能够对数据的组织方式有所了

2011-08-10 05:58:49 280

原创 ldt in gdt

由于ldt是在gdt里的, 所以必须先从RM跳到PM下,将gdt中的ldt装载, 才能跳到ldt段里,实际上要将ldt看成一个中转段,只是一个拐角,到了那里,然后转到ldt真正的段...至于ldt中的选择子, 则是LABEL_LDT_DESC_A - LABEL_LDT+SA

2011-08-04 15:21:20 92

原创 GDT的始末缘由

<br />1. What is GDT<br />在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。<br />为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型:<br />在Real Mode下,我们对一个内存地址的访问是通过Segment:Offset的方式来进行的,其中Segment是一个段的Base Address,一个Segment的最大长度是64 KB,这是16-bit系统所能表示的最大长度。而Offs

2011-04-29 10:41:00 141

原创 hdu 1003

<br />求最大连续和,想了一下,觉得这还必须考虑所有的情况,至少需要把所有的都试一下<br /> <br />于是我就想到,考虑1个,2个...N个元素各自的最大值,然后取里面最长的最先出现的...<br /> <br />我先去试试靠谱不靠谱...<br /> <br />试过了,思想是正确的,可是也是愚蠢的,潮湿了<br /> <br />还是典型的dp,就是列出了状态转移方程:<br />sum[i]=sum[i-1]>0?sum[i-1]+a[i]:a[i]<br />基于前面的情况,只要判断前

2011-04-12 22:52:00 96

原创 orange‘s 中的寻址

<br />     寻址是我觉得入门时遇到的最难的最大的问题, 因为这是有许多年轻人不知道的历史典故的, 必须有历史的积淀<br /> <br />     看orange‘s的时候, 寻址是最先的一个坎, 8086的历史告诉我们, 20位地址线  16位的寄存器  所产生的是无法直接寻址的痛苦, 这里的直接是  单用一个16位的寄存器来提交给cpu  因为毕竟还有4位的空间告诉我们  可以寻址1MB=1024KB=2^20B的内存地址空间  而非仅仅2^16B<br />(当然那时候的寄存器没有32位,

2011-04-03 22:03:00 122

空空如也

空空如也

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

TA关注的人

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