1 2 3、 3.1 计算1+2+3+……+N 3.2 删除链表中倒数第K个点 3.3 判断两个链表是否相交 3.4 求数组中最大最小值 3.5 用COPY-ON-WRITE写STRING类 ...
分类:
编程语言 时间:
2017-09-22 13:15:11
阅读次数:
154
1.传统的fork()函数创建一个子进程,子进程和父进程共享正文段,复制数据段,堆,栈到子进程示意图如下: 2.Linux的fork()函数-写时复制(copy-on-write)创建一个子进程,内核只为子进程创建虚拟空间,不分配物理内存,和父进程共享物理空间,当父进程中有更改相应段的行为发生时,才 ...
分类:
系统相关 时间:
2017-09-09 22:27:09
阅读次数:
179
写时拷贝技术是通过"引用计数"实现的,在分配空间的时候多分配4个字节,用来记录有多少个指针指向块空间,当有新的指针指向这块空间时,引用计数加一,当要释放这块空间时,引用计数减一(假装释放),直到引用计数减为0时才真的释放掉这块空间。当有的指针要改变这块空间的值时,再为这个指针分配自己的空间(注意这时... ...
分类:
其他好文 时间:
2017-09-04 14:55:31
阅读次数:
170
//reference count, copy-on-write #include #include #include #include using namespace std; class Dog { string nm; int refcount; Dog(const string& name)... ...
分类:
编程语言 时间:
2017-07-29 15:18:57
阅读次数:
254
结构型设计模式之门面模式: 一、含义 门面模式也叫做外观模式,是一种比较常用的封装模式,其定义如下: 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用。 通俗来说,门面模式注重"统一的对象",也就是提供一个访问子系统的接口,除了这个接口 ...
分类:
其他好文 时间:
2017-07-28 20:08:32
阅读次数:
259
Copy_on_write即写时复制,它的原理是通过引用计数来实现的. 即在分配空间时多分配额外的空间,用来记录有多少个指针指向该空间.当有新的指针指向该空间,引用计数则加一,当要释放该空间时,引用计数则减一,直到引用计数减为0时,才真正释放该空间.当有指针要改变该空间的值时,再为这个指针分配自己的 ...
分类:
其他好文 时间:
2017-06-17 18:32:32
阅读次数:
128
该笔记出自陈硕的《Linux多线程服务端编程》,作者比较注重版权问题,写个读后笔记应该没什么问题吧,如果有,会及时删除,没有的话继续写点笔记 该书在2.8章介绍了copy-on-write的一种做法实例,解决了前文提到的几个需要解决的问题。 第一版本的代码: 改版本代码问题在于,如果在Foo::do ...
分类:
其他好文 时间:
2017-06-03 22:39:25
阅读次数:
272
COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去取指令执行 ...
分类:
系统相关 时间:
2017-06-01 15:14:48
阅读次数:
276
数据写入方式 1. update-in-place原地更新 2. append-only btree/copy on write tree顺序文件末尾追加 数据被按照特定方式放置,提升读性能,但写性能下降,对b+树和hash更新时需要随机读写: 1. 二分查找,将文件数据有序保存,使用二分查找来完成 ...
分类:
数据库 时间:
2017-05-11 14:36:58
阅读次数:
217
###########################################################################################Btrfs(通常念成ButterFS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总..
分类:
其他好文 时间:
2017-04-29 16:10:38
阅读次数:
204