自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伤心小鸵鸟的专栏

伤心动物园

  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 OpenStack Swift发展历程

Swift也是一个提供RESTful HTTP接口的对象存储系统,最初起源于Rackspace的Cloud Files,目的是为了提供一个和AWS S3竞争的服务。Swift于2010年开源,是OpenStack最初的两个项目之一。早在2010年,Swift就迎来了第一个Rackspace之外的商用案例——韩国电信,大家很熟悉的维基百科、ebay等也是Swift的用户。Swift在一些

2017-04-13 01:31:36 932

原创 对象存储Amazon S3的诞生

2006年亚马逊推出S3(Simple Storage Service)服务,其具有划时代的意义,奠定了未来存储的发展方向。S3定义了对象存储,是对象存储事实上的标准,从某种意义上说,S3就是对象存储,对象存储就是S3。亚马逊S3服务是对象存储市场的霸主,后续其他公司的对象存储都是对S3的模仿。

2017-04-13 01:24:17 3432

原创 对象存储定义

什么是对象存储?对象存储定义如下:对象存储是采用扁平数据组织形式并通过基于http协议的RESTful接口访问的分布式存储系统对象存储不支持随机读写操作,只能全读全写,其面向的是一次写入,多次读取的非结构化数据存储的需求场景对象存储支持海量用户并发访问,并对外提供高扩展(Scalability)、高持久(Durability)和高可用(Availab

2017-04-13 01:19:13 3156

原创 linux中shell如何实现毫秒级别的sleep

有两种方法:假设目标为 10ms:方法1. sleep 0.01方法2.usleep 10000 (usleep为十的负六次方秒,详细见man usleep)

2014-07-07 17:43:11 20185

转载 别的程序员是怎么读你的简历的

人事部门是这样阅读简历的(+15分)如果简历中说到了和工作职位相符的技能超过5次以上。 (+8分)如果简历中说到了和工作职位相符的技能3次到5次。 (+4分)如果简历中说到了和工作职位相符的技能1次到2次。 (+4分)Cover Letter(“求职信”或“自荐信”)提到了招聘人员。 (+2分)简历中有Cover Letter(求职信)。 (-10分)没有提到和职位描述相关

2014-07-07 17:42:00 674

原创 在vim中如何强制输入tab键

今天新写的makefile编译的时候一直报makefile:29: *** missing separator错误。。最后定位到是语法错了。。 命令:tab键 内容  输入的tab键被编辑器自动替换成4个空格了,导致一直报错,呵呵vim下可以这样写入tab键:ctr+v+i,会写入一个tab键

2014-07-07 17:40:26 17686

原创 目标文件和库文件的链接顺序

在Unix类型的系统中,编译器和链接器有个传统的行为方式:当命令行指定了多个目标文件,连接时按照自左向右的顺序搜索外部函数的定义。也就是说,当所有调用这个函数的目标文件名列出后,再出现包含这个函数定义的目标文件或库文件。(否则就会出现找不到函数的错误,链接时必须将库文件放在引用它的所有的目标文件之后链接??)当前的大多数编译器和连接器会自动搜索所有的目标文件,不考虑它们的顺序,但是

2014-07-07 17:28:59 1151 1

原创 多线程编程注意事项

在多线程编程中,在一个线程里面若有while或者for之类的循环,则线程会不断的占用CPU运行,这种情况下一般要调用sleep来使线程休眠一段时间,以让出CPU,这样其他线程才有机会占用CPU运行。

2014-04-25 21:04:07 565

转载 C++ 虚函数表解析

前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。  

2013-09-24 04:08:53 547

原创 Linux用户态切换内核态介绍

在Linux系统中,所有中断服务程序都属于内核代码。如果一个中断产生时任务正在用户代码中执行,那么该中断就会引起CPU特权级从3级到0级的变化,此时CPU就会进行用户态堆栈到内核态堆栈的切换操作。CPU会从当前任务的任务状态段TSS中取得新堆栈的段选择符和偏移值。因为中断服务程序在内核中,属于0级特权级代码,所以48位的内核态堆栈指针会从TSS的ss0和esp0字段中获得。在定位了新堆栈(内核态堆

2013-09-21 03:07:49 881

原创 从用户态向内核态切换的三种情况

从用户态向内核态切换可以分为3种情况:1、发生系统调用时      这是处于用户态的进程主动请求切换到内核态的一种方式。用户态的进程通过系统调用申请使用操作系统提供的系统调用服务例程来处理任务。而系统调用的机制,其核心仍是使用了操作系统为用户特别开发的一个中断机制来实现的,即软中断。2、产生异常时      当CPU执行运行在用户态下的程序时,发生了某些事先不可知的

2013-09-21 03:05:50 3387

原创 esp寄存器与ebp寄存器介绍

espESP(Extended stack pointer)是指针寄存器的一种(另一种为EBP)。用于堆栈指针。ESP为栈指针,用于指向栈的栈顶(下一个压入栈的活动记录的顶部),而EBP为帧指针,指向当前活动记录的顶部。栈指针与帧指针标识出了当前活动记录的位置。当函数被调用的时候,执行如下操作:⒈将帧指针压入栈中:push ebp⒉用ebp保存当前栈指针:mov ebp

2013-09-21 03:04:15 2345

原创 在从用户态到内核态的切换过程中,Linux主要做的事情

在进程从用户态到内核态切换过程中,Linux主要做的事:  1:读取tr寄存器,访问TSS段  2:从TSS段中的sp0获取进程内核栈的栈顶指针  3:  由控制单元在内核栈中保存当前eflags,cs,ss,eip,esp寄存器的值。  4:由SAVE_ALL保存其寄存器的值到内核栈  5:把内核代码选择符写入CS寄存器,内核栈指针写入ESP寄存器,把内核入口点的线性地址写入

2013-09-21 02:59:39 1977

操作系统之PV经典 王昭礼

这个是有关于操作系统的,介绍PV经典,作者王昭礼。

2011-04-02

空空如也

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

TA关注的人

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