JoeChenzzz

导航

2019年3月22日 #

进程的虚拟地址空间分布

摘要: 1)在linux下内存分配是以页为单位的,而页是通过段管理 2)一个linux进程的虚拟地址空间分布如上图所示,分为用户空间和内核空间,对于一个32位操作系统来说,4GB的空间分成两部分,低地址的0~3G给用户空间,高地址的3G~4G给内核空间 1.用户空间 1.1只读数据段(也叫常量段,.roda 阅读全文

posted @ 2019-03-22 13:35 JoeChenzzz 阅读(4224) 评论(0) 推荐(0) 编辑

linux五种I/O模型

摘要: 1.基本概念 1.1同步和异步 同步和异步关注的是消息通信机制 1.1.1同步 所谓同步,就是在发出一个调用时,在没有得到结果之前,调用就不返回,一直在等,但是一旦调用返回,就能得到返回值。 1.1.2异步 异步与同步相反,调用在发出之后,这个调用就直接返回了,调用者不能立刻得到结果,而是在调用彻底 阅读全文

posted @ 2019-03-22 13:34 JoeChenzzz 阅读(214) 评论(0) 推荐(0) 编辑

顺序容器

摘要: 1.vector 1.1概念 1)vector是线性容器,其元素保存在一块连续的内存空间,所以可以使用下标运算符对元素进行随机访问 2)vector是变长容器,允许元素的插入和删除 1.2空间配置策略 1)为了提高效率,vector实际配置的空间大小可能比用户需求的大一些(定义时大小是一样的),以便 阅读全文

posted @ 2019-03-22 08:36 JoeChenzzz 阅读(234) 评论(0) 推荐(0) 编辑

select、poll、epoll

摘要: 1.概念 select、poll、epoll都是事件触发机制,当等待的事件发生就触发进行处理,用于I/O复用 2.简单例子理解 3.select函数 3.1函数详解 1)第一个参数maxfdp1指定待测试的描述符个数,它的值是待测试的最大描述符加1(因此把该参数命名为maxfdp1),描述字0、1、 阅读全文

posted @ 2019-03-22 08:36 JoeChenzzz 阅读(289) 评论(0) 推荐(0) 编辑

指针和引用

摘要: 1.复合类型 复合类型是指基于其他类型定义的类型,指针和引用就是复合类型 2.指针 2.1概念 指针是一种复合类型,它指向某个对象,它本身也是一个对象,指针的值是它指向对象的地址,同时指针也有它自己的地址 2.2sizeof指针 sizeof指针得到是指针本身的大小(字节数),sizeof引用得到的 阅读全文

posted @ 2019-03-22 08:35 JoeChenzzz 阅读(337) 评论(0) 推荐(0) 编辑

空间配置器

摘要: 1.为什么需要空间配置器 1.1内存碎片 从内存分配的角度来看,我们不免因为程序需求频繁申请、释放小块内存,从而在堆中造成外碎片,外碎片是指系统中空闲内存总量足够,但是不连续,所以无法分配给用户使用 注:内碎片是指已经分配给用户,用户却不利用的内存。如用户需要3字节,实际却得到了4字节,其中的1字节 阅读全文

posted @ 2019-03-22 08:34 JoeChenzzz 阅读(269) 评论(0) 推荐(0) 编辑

面向对象程序设计

摘要: 1.面向对象程序设计核心思想 封装、继承、多态 2.继承 2.1 概念 继承是一种类的层次关系,层次关系的根部叫基类,其他类由基类直接继承或间接继承而来,继承而来的类叫派生类 2.2 继承与访问控制 1)public公有继承:基类的公有成员成为派生类的公有成员,基类的保护成员成为派生类的保护成员 2 阅读全文

posted @ 2019-03-22 08:34 JoeChenzzz 阅读(354) 评论(0) 推荐(0) 编辑

c++变量的存储方式

摘要: 1.名字的作用域 作用域是从空间的角度来分析的,c++的作用域以花括号分隔,定于于所有{ }以外的名字具有全局作用域,定义于{ }以内的名字具有块作用域 2.变量的生命周期 生命周期是从变量存在的时间角度来分析的,生命周期可以分为静态存储期和动态存储期,这是由变量的静态存储方式和动态存储方式决定的 阅读全文

posted @ 2019-03-22 08:33 JoeChenzzz 阅读(711) 评论(0) 推荐(0) 编辑

信号(signal)

摘要: 1.信号本质 1)信号是一种软件中断,是在软件层次上对中断的模拟; 2)、在日常生活中也有很多信号,比如常见的红绿灯信号,我们看见红灯就停下,linux中的信号也是类似的,它提供一种机制告诉某个进程在某个时刻该怎样做 2.信号产生(来源) 1)硬件来源:比如我们按下了键盘或者其它硬件故障; 2)软件 阅读全文

posted @ 2019-03-22 08:28 JoeChenzzz 阅读(1367) 评论(0) 推荐(0) 编辑

2019年3月2日 #

编译

摘要: 1.编译过程 1.1预编译 将程序中的头文件包含进代码中,并进行一些宏替换 1.2编译和优化 将用户写的代码翻译成汇编代码,生成汇编代码文件,汇编代码和机器操作码之间是一对一的关系 1.3汇编 1)GNU使用汇编器as将汇编代码汇编成CPU可识别的二进制代码,生成目标文件,默认后缀为.o(windo 阅读全文

posted @ 2019-03-02 12:16 JoeChenzzz 阅读(337) 评论(0) 推荐(0) 编辑