摘要:
Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数个4k(在i386体系结构中)大小的页,从而分配和回收内存的基本单位便是内存页了。系统在分配内存时不再要求大块的连续内存,但是实际上系统使用内存时还是倾向于分配连续的内存块。为了尽量减少不连续情况,内核采用了“伙伴”关系来管理... 阅读全文
摘要:
1.netstat 用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 常见参数:-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp... 阅读全文
摘要:
以UNIX为例来分析进程间通信的各种实现技术。在UNIX中,文件(File)、信号(Signal)、无名管道(Unnamed Pipes)、有名管道(FIFOs)是传统IPC功能;新的IPC功能包括消息队列(Message queues)、共享存储段(Shared memory segment)和信... 阅读全文
摘要:
1.临界区(Critical Section) 我们需要某种手段(互斥)确保当一个进程在使用一个共享变量或文件时,其他进程不能做同样的事情。或者描述为一个进程的一部分时间做内部计算或一些不会引发竞争条件的操作。 我们把对共享内存进行访问的程序片段成为临界区。2.忙等待互斥屏蔽中断单处理器系统中,... 阅读全文
摘要:
条款18:让接口容易被正确使用,不易被误用 条款19:设计class犹如设计type条款20:宁以pass-by-value-to-const替换pass-by-value 缺省情况下C++以by value方法给对象传递参数,函数参数都是对象的副本,这些副本是由对象的copy构造函数产出,这可... 阅读全文
摘要:
Effective C++的条款13:以对象管理资源智能指针就是一种用类模拟普通指针,实现以对象管理资源的方法。先看一下智能指针的用法:#include #include // 有auto_ptr这个类模板using namespace std;int main(){ auto_pt... 阅读全文
摘要:
条款13:以对象管理资源 平常我们的写法可能是这样的:void function() { Object* object = new Object(); //new一个object对象 ... delete object; //释放o所指... 阅读全文
摘要:
条款05:了解C++默默编写并调用哪些函数 如果我们写了一个空类:class Empty { }; 编译器会为这个类添加一些default的函数,相当于:class Empty {public: Empty() { ... } ... 阅读全文
摘要:
快速排序QuickSorttemplate void quickSort (Item a[], int l, int r) { if (rint partition (Item a[], int l, int r) { int i = l -1, j = r; Item v = a... 阅读全文
摘要:
KMP算法KMP算法主要包括两个过程,一个是针对子串生成相应的“索引表”,用来保存部分匹配值,第二个步骤是子串匹配。部分匹配值是指字符串的“前缀”和“后缀”的最长的共有元素的长度。以“ABCDABD”为例:“A”的前缀和后缀都是空,共有元素长度为0;“AB”的前缀为{A},后缀为{B},共有元素长度... 阅读全文