自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

在雨一方

万里寻山历百艰而无悔,一朝见井纵九死以何辞。

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

转载 说说Makefile那些事儿

工作至今,一直对Makefile半知半解。突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不如烂笔头,便来说说Makefile那些事儿。

2016-10-17 17:36:10 3677 1

原创 32位保护模式学习小结(4)---分页机制概述

简单的分页模型分页的内存管理模式是我们再熟悉不过的了,因为这是我们一贯的工作方式.在处理器中有负责分段管理的段部件.每个程序或任务都有自己的段,这些段都用段描述符定义.随着程序的执行,当要访问内存时,就用段地址上偏移量,段部件就会输出一个线性地址.在单纯的分段模式下,线性地址就是物理地址.然而一旦决定采用页式内存管理,就应当把4GB内存分为大小相同的页.但是,页在物理内存中位置是有讲究的,并不是在内

2016-08-31 19:00:52 1239 1

原创 c++11实现一个半同步半异步线程池

在处理大量并发任务的时候,如果按照传统的方式,一个请求一个线程来处理请求任务,大量的线程创建和销毁将消耗过多的系统资源,还增加了线程上下文切换的开销,而通过线程池技术就可以很好的解决这些问题,线程池技术通过在系统中预先创建一定数量的线程,当任务请求到来时从线程池中分配一个预先创建的线程去处理任务,线程在完成任务之后还可以重用,不会销毁,而是等待下次任务的到来.

2016-08-18 15:15:05 1460 1

原创 C++11多线程基本使用

C++11增加了线程及线程相关的累,很方便的支持了并发编程,使得编写的多线程程序的可移植性得到了很大的提高.

2016-08-13 11:31:14 13348 1

原创 32位保护模式学习小结(3)---任务切换

两种基本的任务切换方式协同式和抢占式

2016-08-03 22:55:24 1931

原创 32位保护模式学习小结(2)---任务的隔离和特权级保护

任务,任务的LDT和TSS 程序是记录在载体上的指令和数据,其正在执行中的一个副本,叫做任务(Task)。而用户程序就是任务,内核程序就是操作系统的缩影。LDT我们把所有的段描述符都放在GDT中。

2016-08-02 23:05:36 1256

原创 32位保护模式学习小结(1)

在最近的学习中,我试着把自己学习的知识点先记录在本子上,然后总结所学。1.由实模式进入保护模式2.程序的动态加载和执行

2016-07-28 17:37:09 1189

转载 GDT(全居描述符表)和LDT(局部描述符表)

GDT的由来:在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。为什么要有GDT?

2016-07-28 16:59:28 13780 4

转载 x86 实模式与保护模式

0386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为

2016-07-26 16:25:47 6625 1

原创 Python中向excel中写入数据

今天看到了一个关于使用python向execl中写入数据的小demo

2016-07-22 17:45:33 55012 6

原创 python入门学习

最近学习了python学习入门,所以想把简单的东西总结出来。

2016-07-22 08:14:38 1137

转载 思维拓展

在257瓶水中有1瓶有毒,毒发时间为2小时,在两小时中要用多少只小白鼠才能找出有毒的水。

2016-07-21 15:33:09 1613 3

原创 TCP协议详解

TCP协议是TCP/IP协议族中一个重要的协议。和IP协议相比,TCP协议更靠近应用层,因此在应用程序中具有更强的可操作性。一些重要的socket选项都和TCP协议相关。

2016-07-21 08:25:53 743

原创 IP协议详解

IP协议是TCP/IP协议族的核心协议,也是socket网络编程的基础之一。我们将从以下两个方面较为深入的了解IP协议:

2016-07-20 19:32:25 1213

原创 DNS 工作原理

我们通常使用机器的域名来访问这台机器,而不是直接使用其IP地址。那么如何将机器的域名转换成IP地址呢?这就需要使用域名查询服务。

2016-07-20 16:18:28 1471

原创 sed常用的用法

sed 常用用法总结sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。

2016-07-20 10:59:42 1599

原创 正则表达式

从根本来看,正则表达式是由两个基本组成部分所建:一般字符与特殊字符。一般字符指的是任何没有特殊意义的字符,正如下表中所定义的。在某些情况下,特殊字符也可以视为一般字符。特殊字符常称为源字符。 字符 模式含义 \ 通常用以关闭后续字符的特殊意义。有时则是相反地打开后续字符的特殊意义,例如\(...\)与{...\}。 . 匹配任何单个字符,但NULL除外。独立程序也可以不允许匹配

2016-07-20 08:33:51 1049

原创 shell学习

一个简单的shell脚本

2016-07-19 10:11:25 344

原创 x86保护模式

处理器架构实际上是不断扩展的,新处理器必须延续旧的设计思路,并保持兼容性和一致性;同时还会有所扩充和增强。

2016-07-18 16:27:15 2662

原创 编写主引导扇区

在看《x86汇编语言从实模式到保护模式》这本书时,因为我是用fedora进行学习的,所以书上的很多工具是用不了的,只能用另外的方法来创建硬盘了:nasm mbr.asmqemu-img create -f qcow disk.img 128Mdd if=mbr of=./disk.imgqemu disk.img我们知道处理器加电或复位之后,如果硬盘是首选的启动设备,那么,ROM

2016-07-17 11:24:57 1091 2

原创 int指令

int指令的格式为:int n(n为类型中断码)它的功能是引发中断过程。

2016-06-20 10:51:28 8288 1

原创 内中断

任何一个通用的的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从cpu外部发来的或内部产生的一种特殊信息,并且可以立即对所接受到的信息进行处理。这种特殊的信息,我们可以称为:中段信息。

2016-06-19 22:06:30 1028

原创 标志寄存器

CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都有可能不同)具有以下三种作用:用来存储相关指令的某些执行结果;用来为CPU执行相关指令提供行为依据;用来控制CPU的相关工作方式。

2016-06-19 16:57:12 759

原创 转移指令的原理

可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括来讲,转移指令就是可以控制CPU执行内存中某处代码的指令。

2016-06-11 15:17:29 3070

原创 寻址方式

在8086CPU中,只有bx,si,di,dp这四个寄存器可以用在”[…]”中来进行内存单元的寻址。

2016-05-31 21:23:53 1926

原创 汇编小结

指令和数据 指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋予不同的意义。

2016-05-25 14:07:41 317

转载 存储器层次结构

我们知道,一个简单的计算机系统模型是CPU执行指令,而存储器为CPU存放指令和数据。 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在常数时间范围内访问每个存储器位置。这样的一个简单模型并不能有效地反映现代系统实际工作的方式。实际上,存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的快速的高速缓存存储器作为一部分

2016-05-15 22:26:29 1731

转载 Glibc 内存管理知识点总结

这几天在看Glibc 内存管理模块的内容,感觉收获颇多,在此做个简单的总结,以便知识点回顾。先介绍一下相关的背景。有个项目组在研发一个类似数据库的NoSql 系统时,遇到了Glibc 内存暴增问题。据此,在经过一系列排查过后,他们提出了几个问题,分别是:1.Glibc 在什么情况下不会将内存归还给操作系统系统?2.Glibc 的内存管理方式有哪些约束?适合什么样的内

2016-05-15 22:24:34 546

原创 Hash_map_pseudo类

FDB_Hash_map.h类的声明与作用伪哈希数据结构的类

2016-04-10 06:47:31 214

原创 Hash_map()类

FDB_Hash_map.h类的声明与作用哈希数据结构的真正实现的类类开发的必要性,唯一性向对于伪哈希,真正的哈希在数据量大的情况下可以更快的进行操作

2016-04-10 06:46:02 309

原创 Hash_node_pseudo类

FDB_Hash_node.h类的声明与作用哈希数据结构的结点类;用于保存哈希的每一个结点(键值对);

2016-04-10 06:44:01 208

转载 vector的内存释放

原文地址:http://www.cnblogs.com/summerRQ/articles/2407974.htmlvector : C++ STL中的顺序容器,封装数组 1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素

2016-04-07 14:59:02 369

原创 实现自己的字符串类String

原因因为string预分配与SDS上比较有些不足,所以重新封装了自己的字符串类String。

2016-03-24 16:12:52 1340 1

原创 C++中string类和Redis中SDS的比较

Redis中SDS与C++中string类的比较

2016-03-23 13:14:07 1685

原创 epoll 函数

epoll是Linux特有的I/O复用函数。它在现实和使用上与select,poll由很大的差异。首先,epoll使用一组函数来完成任务,而不是单个函数。其次,epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而无须像select和poll那样每次调用都要重复传入文件描述符集或事件集。但epoll需要使用一个额外的文件描述符,来唯一标识内核中的这个事件表,这个文件描述符使用使用如

2016-03-17 22:37:51 486

原创 UNIX网络编程 poll函数

poll提供的功能于select类似,不过在处理流设备的时候,它能提供额外的信息.#includeint poll(struct pollfd *fdarray, unsigned long nfds, int timeout);第一个参数:struct pollfd {int fd;  //文件描述符short events;//请求的事件short

2016-03-17 16:32:33 345

原创 unix网络编程 select函数和shutdown函数

select函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或多个事件发生或经历一段指定的时间 去唤醒它。

2016-03-15 12:10:46 387

原创 UNIX网络编程 I/O模型

一个数入操作通常包括两个不同的阶段:(1)等待数据准备。(2)从内核项进程复制数据。对于一个套结字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待的数据从网络中到达。当所等待分组到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。一. I/O模型1.阻塞性I/O模型进程调用recvfrom,其系统调用直到数据报到达且

2016-03-14 17:02:53 320

原创 简单字符驱动程序

mycdev.c:#include#include#include#include#include#include#include#include#include#includeMODULE_LICENSE("GPL");#define MYCDEV_MAJOR 231     //cat /proc/devices查看系统中未使用的字符

2016-01-26 14:46:45 965 1

原创 打印super_block结构中的一些域的值

#include#include#include#include#include#include#define SUPER_BLOCKS_ADDRESS 0xffffffff81c77670#define SB_LOCK_ADDRESS 0xffffffff820137b0 static int __init my_init(void){    st

2016-01-24 23:16:37 881

空空如也

空空如也

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

TA关注的人

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