摘要:
http://www.cppblog.com/superKiki/archive/2010/10/18/130328.html http://www.doc88.com/p-977311895786.html本文将总结一种数据结构:跳跃表。前半部分跳跃表性质和操作的介绍直接摘自《让算法的效率跳起来--浅谈“跳跃表”的相关操作及其应用》上海市华东师范大学第二附属中学 魏冉。之后将附上跳跃表的源代码,以及本人对其的了解。难免有错误之处,希望指正,共同进步。谢谢。 跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间复杂度均为O(logn.. 阅读全文
摘要:
当一个进程从用户态进入内核态,CPU自动设置该进程的内核栈,这个栈位于内核数据段上。同时,为节省空间,Linux把内核栈和一个紧挨近PCB的小数据结构thread-info放在一起,占用8KB的内存区。 在Intel系统中,栈起始于末端,并朝这个内存区开始的方向“增长”。刚切换过来,内核栈是空的,堆栈寄存器ESP直接指向此内存区的顶端。通过找到thread-info来找到当前运行的task-struct(PCB)(,那么是怎样找到的呢?下边介绍)。 但是要注意,实际上进程的PCB所占内存是由内核动态分配的,更确切的说,内核根本不给PCB分配内存,而仅仅给内核栈分配8KB的内存,并把其中的一.. 阅读全文
摘要:
操作系统的功能: 1 操作系统接口 2 CPU管理 3 内存管理 4 设备管理 5 文件管理 操作系统的设计采用分层结构,越是上层,越接近用户 操作系统=内核+系统程序 系统程序=编译环境+API+AUI 编译环境=编译程序+连接程序+装载程序 Linux内核是单内核结构,即把内核作为一个大整体来实现,而各模块之间可以直接调用相关函数 延迟执行机制----下半部分,软中断,Tasklet,工作队列等qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。 函数原型: void q... 阅读全文