Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

B-Tree的C++实现

B-Tree的C++实现

简要说明下B树的性质。用M表示B树的阶数,L表示叶子节点的最大元素个(性质说明来自于《数据结构与问题求解(C++版)》第19章)1、数据项保存在叶子中2、非叶子节点具有M-1个键指导查找的进行;键i代表子树i+1中最小的键3、根要么是叶子,要么就有2~M个孩子4、所有非叶子节点,(根除外)都具有[M/2]~M个孩子5、所有叶子都在同一深度,并且对某一叶子,具有[L/2]~L个数据项在对B树进行插入操作时,如果某个叶子中的元素个数已经达到L个,那么这时就需要...
Linux系统的中断、系统调用和调度概述

Linux系统的中断、系统调用和调度概述

最近学习Linux操作系统,关于中断系统调用和进程的级别总是感觉有些模糊的地方,特在此做个小结,整理下思路。所谓的中断就是在计算机执行程序的过程中,由于出现了某些特殊事情,使得CPU暂停对程序的执行,转而去执行处理这一事件的程序。等这些特殊事情处理完之后再回去执行之前的程序。中断一般分为三类:1、由计算机硬件异常或故障引起的中断,称为内部异常中断;2、由程序中执行了引起中断的指令而造成的中断,称为软中断(这也是和我们将要说明的系统调用相关的中断);3、由外...
Linux中断详解

Linux中断详解

这里以linux-kernel 0.11版本为基础整理中断相关知识,目的在于对于中断有一个全面、清晰和简洁的认识1、Linux的中断类型Linux的各种中断都是由系统负责统一处理的。在响应一个特定的中断的时候,内核会执行一个函数,该函数叫做中断处理函数或中断服务例程。CPU执行完一条指令后,下一条指令的逻辑地址会被放在相应的寄存器中(CS和EIP),在执行新指令之前,系统会检查是否有中断产生(有相应的寄存器来表示状态),如果有,就对中断进行处理。Linux...
C++虚继承小结

C++虚继承小结

虚拟继承是C++语言中一个非常重要但是又比较生僻的存在,它的定义非常简单,但是对于理解C++的继承机制却是非常有用的。笔者最近学习过程中发现对C++的虚拟继承不是很明朗,故在这里对虚继承做个小结。首先说下遇到的问题吧。代码如下(代码来自于何海涛《程序员面试精选100题第32题)。意图是要设计一个不能被继承的类,类似java中的final。但是又可以生成栈对象,可以像一般的C++类一样使用。#include<iostream>using std:...
SSH2环境搭建的asm和cglib包冲突的解决

SSH2环境搭建的asm和cglib包冲突的解决

在搭建ssh2的开发环境时,经常会遇到包冲突的问题,原因是struts, hibernate 和spring 引入了各自的开发包,这些开发包有些互相冲突,导致了各个版本的集成,常常不是一番风顺。其中asm 和 cglib 的冲突在使用annotation时经常出现,我使用的环境是struts2.3.4 + hibernate 4 + spring 3.1, 全部通过Annotation的方式集成,在集成的过程中出现了以下问题。严重: Exception s...
Linux下AutoTools工具集使用教程

Linux下AutoTools工具集使用教程

编写makefile 确实不是一件轻松的事,尤其对于一个较大的项目而言更是如此。那么,有没有一种轻松的手段生成makefile而同时又能让用户享受make 的优越性呢?本节要讲的autoTools系列工具正是为此而设的,它只需用户输入简单的目标文件、依赖文件、文件目录等就可以轻松地生成makefile了。另外,这些工具还可以完成系统配置信息的收集,从而可以方便地处理各种移植性的问题。也正是基于此,现在Linux上的软件开发一般都用autoTools 来生成...
用户空间缺页异常pte_handle_fault()分析

用户空间缺页异常pte_handle_fault()分析

前面简单的分析了内核处理用户空间缺页异常的流程,进入到了handle_mm_fault()函数,该函数为触发缺页异常的地址address分配各级的页目录,也就是说现在已经拥有了一个和address配对的pte了,但是这个pte如何去映射物理页框,内核又得根据pte的状态进行分类和判断,而这个过程又会牵扯出一些其他的概念……这也是初读linux内核源码的最大障碍吧,在一些复杂的处理中,一个点往往可以延伸出一个面,容易让人迷失方向&...
Java自动装箱解箱问题&&int和Integer类型==比较问题

Java自动装箱解箱问题&amp;&amp;int和Integer类型==比较问题

java在5.0开始,基本类型和封装类型之间有了自动的转换。Integer i1=1;//1转变为new Integer(1),叫自动装箱Integer i2=1; int i3=i1+i2;//i1 i2自动转化为int类型,叫自动解箱System.out.println(i1==i2);//true这里我们可以看到,Integer的构造方法可以不用了。自动装箱时,-128--127有缓冲池,是同一个对象,如果不在这个范围内,将会新建对象,所以对象会不同...
Linux shell编程之文件内容写入和日志记录

Linux shell编程之文件内容写入和日志记录

最近在学习linux的shell编程,由于在初级阶段,所以把平时写的些练习代码记录下来,也和大家共享下,希望和大家day day up,哈哈,这句中国式英语相信读者能明白吧,今天这个代码比前面的2次的稍微长点,功能还是比较简单的,老鸟高手们可以飘过。。。下面是源代码,菜菜们可以和我一起学习看下源代码:#!/bin/bash#****************************#****************************#this chap...
ARM嵌入式开发中的GCC内联汇编简介

ARM嵌入式开发中的GCC内联汇编简介

在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,C语言内嵌汇编的方式倒是一个不错的选择。然而,使用内联汇编的一个主要问题是,内联汇编的语法格式与使用的编译器直接相关,也就是说,使用不同的C编译器内联汇编代码时,它们的写法是各不相同的。下面介绍在ARM体系结构下GCC的内联汇编。GCC内联汇编的一般格式:asm( 代码列...
<< 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 >>