不舍驽马
码龄11年
  • 123,742
    被访问
  • 16
    原创
  • 1,662,823
    排名
  • 37
    粉丝
  • 0
    铁粉
关注
提问 私信

个人简介:在校学生

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2011-05-10
博客简介:

不舍驽马

博客描述:
不积跬步,无以至千里;不积小流,无以成江海。
查看详细资料
个人成就
  • 获得34次点赞
  • 内容获得12次评论
  • 获得130次收藏
创作历程
  • 73篇
    2015年
成就勋章
TA的专栏
  • C/C++
    24篇
  • Linux
    10篇
  • 操作系统
    14篇
  • 数据结构与算法
    10篇
  • Leetcode
  • 网络
    4篇
  • 面试
    4篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

用户空间与内核空间数据交换之mmap

在阅读以下测试程序之前先要搞清楚驱动程序中__get_free_pages的用法:unsigned long __get_free_pages(unsigned int gfp_mask, unsigned int order)This function works the same as alloc_pages(), except that it directly retur
原创
发布博客 2015.10.15 ·
521 阅读 ·
2 点赞 ·
0 评论

生成最长递增子序列

思路参考:http://blog.csdn.net/joylnwang/article/details/6766317 #include #include #include #include using namespace std; int main(){ int m,n; vector v; cin >> m; int num;
原创
发布博客 2015.09.26 ·
403 阅读 ·
0 点赞 ·
0 评论

Linux内存管理之mmap详解

一. mmap系统调用1. mmap系统调用        mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.
转载
发布博客 2015.09.17 ·
380 阅读 ·
0 点赞 ·
0 评论

Linux启动过程详解

http://blog.chinaunix.net/uid-26495963-id-3066282.html启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱
转载
发布博客 2015.09.14 ·
342 阅读 ·
0 点赞 ·
0 评论

正向代理与反向代理的区别【Nginx读书笔记】

http://blog.csdn.net/m13666368773/article/details/8060481正向代理的概念正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代理服务器,告诉他我需要那个无法访问网站的
转载
发布博客 2015.09.14 ·
320 阅读 ·
0 点赞 ·
0 评论

epoll模型中LT、ET模式分析

水平触发(level-triggered,也被称为条件触发)LT: 只要满足条件,就触发一个事件(只要有数据没有被获取,内核就不断通知你)边缘触发(edge-triggered)ET: 每当状态变化时,触发一个事件ET模式仅当状态发生变化的时候才获得通知,这里所谓的状态的变化并不包括缓冲区中还有未处理的数据,也就是说,如果要采用ET模式,需要一直read/write直到出错为止,很多人
转载
发布博客 2015.09.11 ·
691 阅读 ·
0 点赞 ·
1 评论

两种高性能I/O设计模式(Reactor/Proactor)的比较

这篇文章探讨并比较两种用于TCP服务器的高性能设计模式. 除了介绍现有的解决方案, 还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例), 以及其在不同平台上的微调. 此文还比较了java,c#,c++对各自现有以及提到的解决方案的实现性能.系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步型[1, 2]. 阻塞型I/O意味着控制权只到调用操作结束了才会回到
转载
发布博客 2015.09.09 ·
326 阅读 ·
0 点赞 ·
0 评论

最短路径—Dijkstra算法和Floyd算法

http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.htmlDijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,
转载
发布博客 2015.09.09 ·
316 阅读 ·
0 点赞 ·
0 评论

高效编程之互斥锁和自旋锁的一些知识

两种锁的加锁原理互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。两种锁的区别互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区持锁时间的大小并不会对互斥锁的开销造成影响,而自旋锁是死循环检测,加锁全
转载
发布博客 2015.09.09 ·
279 阅读 ·
0 点赞 ·
0 评论

设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

http://blog.csdn.net/superbeck/article/details/4446177简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式
转载
发布博客 2015.09.08 ·
285 阅读 ·
0 点赞 ·
0 评论

C++函数声明和定义深度解析(转)

概述:声明是将一个名称引入一个程序.定义提供了一个实体在程序中的唯一描述.声明在单个作用域内可以重复多次(类成员除外),定义在一个给定的作用域内只能出现一次. 一个定义就是一个声明,除非:它定义了类的一个静态数据成员.它定义了类的非内联成员函数. 声明是告诉编译器一些信息,以协助编译器进行语法分析,避免编译器报错。而定义是告诉编译器生成一些代
转载
发布博客 2015.09.06 ·
1642 阅读 ·
1 点赞 ·
0 评论

腾讯后台开发面试题--整理3

1.C++模板的作用。 将算法与具体对象分离,与类型无关,通用,节省精力2.socket编程,如果client断电了,服务器如何快速知道???有以下几个技术:使用定时器(适合有数据流动的情况); 使用socket选项SO_KEEPALIVE(适合没有数据流动的情况); 3.fork()一子进程程后 父进程癿全局发量子迍程能不能
转载
发布博客 2015.09.06 ·
897 阅读 ·
0 点赞 ·
0 评论

腾讯后台开发面试题--整理2

1)tcp三次握手的过程,accept发生在三次握手哪个阶段?2)Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?3)const的含义及实现机制,比如:const int i,是怎么做到i只可读的?4) valitale的含义。5)OFFSETOF(s, m)的宏定义,s是结构类型,m是s的成员,求m在s中的偏移量。
原创
发布博客 2015.09.05 ·
671 阅读 ·
1 点赞 ·
0 评论

C++中const的实现细节

1、什么是const?  常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)  2、为什么引入const?  const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。  3、cons有什么主要的作用?  (1)可以定义const常量,具有不可变性。 例如:  const
转载
发布博客 2015.09.03 ·
512 阅读 ·
0 点赞 ·
0 评论

sizeof在32位和64位机器上的运行结果

机器平台:X86_64 处理器操作系统:Red Hat 4.1.2-14编译器: gcc version 4.1.2 20070626  Size of char is:                                   1Size of unsigned char is:                     1Si
转载
发布博客 2015.09.03 ·
1787 阅读 ·
0 点赞 ·
0 评论

警惕缓冲区溢出(C中那些不安全的库函数)

http://blog.csdn.net/yang_yulei/article/details/45314177C 和 C++ 不能够自动地做边界检查,边界检查的代价是效率。一般来讲,C 在大多数情况下注重效率。然而,获得效率的代价是,C 程序员必须十分警觉以避免缓冲区溢出问题。C语言标准库中的许多字符串处理和IO流读取函数是导致缓冲区溢出的罪魁祸首。我们有必要了解这些
转载
发布博客 2015.09.03 ·
881 阅读 ·
0 点赞 ·
0 评论

Linux系统中valgrind检查内存泄露

Valgrind 安装1. 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz22. 解压安装包:tar –jxvf valgrind-3.2.3.tar.bz23. 解压后生成目录valgrind-3.2.34. cd valgrind-3.2.35. 运行./autogen.sh设置环境(需要标准的autoconf工具)(可选)6.
转载
发布博客 2015.09.03 ·
1462 阅读 ·
0 点赞 ·
0 评论

腾讯后台开发面试题--整理1

linux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小 ^_^ ,这四个命令的熟练掌握程度基本上能体现面试者实际开发和调试程序的经验)cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握awk se
原创
发布博客 2015.09.03 ·
4354 阅读 ·
1 点赞 ·
0 评论

后台开发面试准备2:linux共享内存

共享内存定义:共享内存是最快的可用IPC(进程间通信)形式。它允许多个不相关的进程去访问同一部分逻辑内存。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。所有进程都可以访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会立刻被有访问同一段共享内存的其他进程看到。因此共享内存对于数据的
原创
发布博客 2015.09.03 ·
2438 阅读 ·
0 点赞 ·
1 评论

后台开发面试准备1:Linux命令

1.netstat :《effective TCP/IP》条款382.tcpdump:《effective TCP/IP》条款343. ipcs :ipcs -a  是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息ipcs -m  打印出使用共享内存进行进程间通信的信息ipcs -q   打印出使用消息队列进行进程间通信的信息ipcs -s  打印出使用信号
原创
发布博客 2015.09.03 ·
1932 阅读 ·
0 点赞 ·
0 评论
加载更多