自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (7)
  • 收藏
  • 关注

转载 交换机MAC地址学习

1:交换机MAC地址学习sw1.JPG (24.76 KB)2012-5-15 09:42在交换机初始化的,也就是刚启动的时候,交换机的MAC地址表是没有任何MAC地址和端口的映射条目的sw2.JPG (28.08 KB)2012-5-15 09:42当PCA要想和PCC,PCB,PCD进行通信时,当该二层数据帧通过端

2015-07-31 11:10:14 5067

转载 交换机和路由器的数据包转发流程简述

网络设备之间通信经过以下几个步骤:1.发送端的数据向外发送一个数据包;2.系统判断这个数据包的目标地址是否在同一个网段;3.若与发送机属于同一网段,系统直接将数据包封装成帧,通过二层设备发送到本网段内的目标地址;4.若不在同一网段,系统将数据包转发到网关,重新封装;5.网关查看数据包送达的目标ip地址;6.系统根据目标ip地址查找路由表,决定转发端口

2015-07-31 09:44:40 9594 1

原创 Unix网络编程-----阅读笔记(1)

一、常见socket函数1.     函数原型:int socket(int family,int type,int protocol),若成功返回非负描述符。例子:         listenfds=socket(AF_INET,SOCK_STREAM,0);family:表示协议族,ipv4,ipv6type:表示套接字类型,字节流套接字,数据报套接字protocol:传

2015-07-30 21:16:28 406

原创 字节存储排序:大端和小端的判别及转换

当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。字节排序按分为大端和小端,概念如下大端(big endian):低地址存放高有效字节小端(little endian):低字节存放

2015-07-30 15:25:45 638

转载 STL-----线程安全

由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作.  读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改!所以(下面来自> 条款十二): 1)在每次调用容器的成员函数期间都要锁定该容器。 2)在每个容器返回的迭代器(例如通过调用begin或end)的生存期之内都要锁定该容器。 3)在每

2015-07-30 09:19:47 1450

转载 Linux/Unix----线程安全和可重入

在目前的计算机科学中,线程是操作系统调度的最小单元,进程是资源分配的最小单元。在大多数操作系统中,一个进程可以同时派生出多个线程。这些线程独立执行,共享进程的资源。在单处理器系统中,多线程通过分时复用技术来技术,处理器在不同的线程间切换,从而更高效地利用系统CPU资源。在多处理器和多核系统中,线程实际上可以同时运行,每个处理器或者核可以运行一个线程,系统的运算能力相对于单线程或者单进程大幅增强

2015-07-30 09:15:18 420

原创 项目常用的linux命令

ifconfig:   显示和设置网络的接口,可以打开或者关闭某一个网络接口。ex:::::ifconfig up /down eth0netstat: 显示网络状态,整个网络情况,显示socket,tcp,udp等的连接情况。ps -aus:显示瞬间进程的动态top:实时显示process的动态free: 显示内存的使用情况,包括实体内存,虚拟内存,共享内存区段route:查

2015-07-29 22:57:30 350

转载 linux 0号进程 1号进程 区别(转)

系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,它是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,

2015-07-29 15:06:43 554

转载 fork与vfork的区别

fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1.  fork  ():子进程拷贝父进程的数据段,代码段     vfork ( ):子进程与父进程共享数据段 2.  fork ()父子进程的执行次序不确定     vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec     或e

2015-07-28 17:14:34 316

原创 linux内核-----内存管理相关技术

一.内部碎片和外部碎片内部碎片:是指已经分配给进程的存储块,但是由于多的并不使用它,而在进程占有这块存储块时,系统无法利用它,直到进程释放它。外部碎片:处于任何两个已分配区域或页面之间的空闲存储块,这些存储块的总和可以满足要求,但是由于它们地址不连续或其他原因,使得系统无法满足当前申请。伙伴系统:减轻外部碎片问题linux内核的伙伴算法最大限度的减少了内存的碎片,其实应该说成是尽自

2015-07-28 16:25:24 602

转载 Linux内核抢占实现机制分析

1.1 内核抢占    2.6新的可抢占式内核是指内核抢占,即当进程位于内核空间时,有一个更高优先级的任务出现时,如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的进程。在2.5.4版本之前,Linux内核是不可抢占的,高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否

2015-07-28 10:27:04 497

转载 Linux进程调度-------O(1)调度和CFS调度器

1. 概述    对于分时操作系统而言,表面上看起来是多个进程同时在执行,而在系统内部则进行着从一个进程到另一个进程的切换动作。这样的进程并发执行涉及到进程切换(process switch)和进程调度(process scheduling)两大问题。其中进程调度是操作系统的核心功能,它是一个非常复杂的过程,需要多个系统协同工作完成。Linux作为一个通用操作系统,其调度器的设计一直是一个

2015-07-28 10:25:00 10365 4

转载 linux内核分析——CFS调度器

CFS调度器【摘要】本系列博文主要介绍linux内核几个重要概念和技术原理,部分来自于网上总结、部分来自于自己对《linux内核设计与实现》和《深入理解linux内核》的总结。目的是让一些刚接触linux内核的人对linux内核的一些实现技术有一个大概了解.1.1 CFS原理    cfs定义了一种新的模型,它给cfs_rq(cfs的run queue)中的每一

2015-07-28 09:52:46 1005

转载 关于寄存器ESP和EBP

原文: http://blog.csdn.net/zsJum/article/details/6117043一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码假设执行函数前堆

2015-07-27 17:03:43 392

转载 Linux内核进程切换

Linux内核进程切换 本文主要参考了Understanding The LinuxKernel 和水木精华区的分析进程切换宏 switch_to 。感谢相关的作者!本文中有部分内容直接从上面提到的文章中重复,仅仅是为了方便大家阅读。本文中提到的所有内核代码可以到LinuxCross Reference上查阅。欢迎转载本文,转载请保留这份声明。     本文仅讨论内核进程的切换,而不涉及进

2015-07-27 16:55:29 426

转载 深入理解Linux内核---进程

1.进程、轻量级进程和线程进程:是程序执行时的一个实例,可以看作充分描述程序已经执行到何种程度的数据结构的汇集。从内核观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的实体。当一个进程创建时,它获得一个父进程地址空间的副本。共享正文段(代码段),但并不执行一个父进程数据段、栈和堆的完全拷贝,而是采用写时复制技术。Linux使用轻量级进程对多线程应用程序提供更好的支持

2015-07-27 10:54:21 535

转载 Linux内核线程

内核线程是直接由内核本身启动的进程。内核线程实际上是将内核函数委托给独立的进程,与系统中其他进程“并行”执行(实际上,也并行于内核自身的执行),内核线程经常被称为内核“守护进程”。它们主要用于执行下列任务:l  周期性地将修改的内存页与页来源块设备同步。l  如果内存页很少使用,则写入交换区。l  管理延时动作l  实现文件系统的事务日志。 内核线程主要有两种类型:

2015-07-27 10:33:07 312

转载 Linux内核下进程切换

Linux内核进程切换 本文主要参考了Understanding The LinuxKernel 和水木精华区的分析进程切换宏 switch_to 。感谢相关的作者!本文中有部分内容直接从上面提到的文章中重复,仅仅是为了方便大家阅读。本文中提到的所有内核代码可以到LinuxCross Reference上查阅。欢迎转载本文,转载请保留这份声明。     本文仅讨论内核进程的切换,而

2015-07-24 19:42:00 517

转载 孤儿进程与僵尸进程

1、前言  之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的

2015-07-24 16:30:56 298

转载 GDB调试命令详解

用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更

2015-07-24 11:07:13 416

转载 C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区  栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。  堆,就是那些由 new 分配的内存块,他们的释放编译器不去

2015-07-21 11:03:47 319

转载 进程与线程的区别

1、进程与线程进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥

2015-07-20 17:15:29 321

原创 c++------virtual const static

一、成员变量const int a;必须赋值或者在类的构造函数参数初始化列表中,两者只能取其一。 static int a;不能在类中进行赋值,也不能在参数初始化列表中进行赋值。对于静态变量,在类中只是声明,当在类外进行初始化时,必须先定义,即需要加上int .即 int base::a=10; 二、成员函数void fun()const{}cons

2015-07-17 20:32:16 1012

原创 SDN总结

SDN特点:中心控制可编程网络网络可视化SDN与传统网络相比,将网络的控制平面和数据平面相分离,在传统网络中数据包的控制逻辑和数据转化都由路由器完成,随着网络控制的灵活性越来越复杂,路由器的设计也变得日益复杂。openflow协议是SDN 的众多实现之一,但是由于其良好的灵活性和扩展性,已成为标准。在SDN中,与传统交换机一样,网络设备交换机只负责转发接收到的数据包,但openfl

2015-07-17 12:10:41 2101

转载 new 对象加括号和不加括号的区别

在new对象的时候有加上(),有不加(),不知道这个到底是什么区别?比如:[cpp] view plaincopyprint?CBase *base = new CDerived();  CBase *base = new CDeviced;  CBase *base = new CDerived();CBase *base = new C

2015-07-16 10:40:11 6309 1

转载 c++命名规范

这个编程规范是我们自己做项目时,根据google c++编程规范改写的,适合小型项目使用,给大家分享一下。头文件 通常,每一个.cc文件(C++的源文件)都有一个对应的.h文件(头文件),也有一些例外,如单元测试代码和只包含main()的.cc文件。 1. #define保护 所有头文件都应该使用#define防止头文件被多重包含(multiple inclusion),命

2015-07-15 21:35:05 548

转载 c++三种野指针

野指针,也就是指向不可用内存区域的指针。如果对野指针进行操作,将会使程序发生不可预知的错误,甚至可能直接引起崩溃。        野指针不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是野指针是很危险的,也具有很强的掩蔽性,if语句对它不起作用。       造成野指针的常见原因有三种:        1、指针变量没有被初始化。任何

2015-07-15 18:49:52 9392

转载 TCP/IP-----------tcp粘包问题

一 .两个简单概念长连接与短连接:1.长连接     Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接     Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点 通讯,比如多个Client连接一个Server. 二 .什么时候需要考虑粘包问题?1

2015-07-15 09:43:30 480

原创 STL源码剖析----算法、仿函数、配接器

一、STL中的算法1. sort这个算法接收两个随机存取迭代器,所以vector、deque可以用。而list迭代器属于只双向迭代器。    数据量大时采用QuickSort,分段递归排序,一旦分段后的数据量小于某个门槛,则采用insertSort。  SGI STL用的introSort来替代常规的QuickSort,这两者的区别就是在选择轴值时,introSort选用三点中的中

2015-07-13 16:26:30 657

原创 STL源码剖析-----关联式容器

一、set        所有元素都会根据元素的键值自动排序,set元素不像map那样可以同时拥有key和value,set元素的键值就是实值,set不允许有两个相同元素的键值。二、map       所有元素都会根据元素的键值自动排序,map不允许有两个元素有相同的键值。以红黑树作为底层机制,每一个节点上的内容是一个pair,pair的第一个元素是键值,第二个元素为实值。

2015-07-13 15:05:24 381

原创 STL源码剖析------迭代器失效总结

vector: 为了使vector容器实现快速的内存分配,实际分配的容器会比当前所需的空间多一些,vector容器预留了这些额外的存储区,用来存放新添加的元素,而不需要每次都重新分配新的存储空间。你可以从vector里实现capacity和reserve成员可以看出这种机制。    vector迭代器的几种失效的情况: 1、当插入(push_back)一个元素后,end操作返回的迭代器

2015-07-13 15:03:23 433

原创 STL源码剖析---红黑树原理下

算法导论书上给出的红黑树的性质如下,跟STL源码剖析书上面的4条性质大同小异。      1、每个结点或是红色的,或是黑色的      2、根节点是黑色的      3、每个叶结点(NIL)是黑色的      4、如果一个节点是红色的,则它的两个儿子都是黑色的。      5、对于每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑色结点。      从红黑树上删除一

2015-07-13 14:37:34 417

原创 STL源码剖析-----红黑树原理

一、红黑树概述     红黑树和我们以前学过的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。不过自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更高的统计性能。这一点在我们了解了红黑树的实现原理后,就会有更加深切的体会。     红黑树和AVL树的区别在于它使用颜色来标识结点的高度,它所追求的是局部平衡而不是AVL

2015-07-13 14:35:58 483

原创 STL源码剖析----stack、heap、queue

一、 stack     先进后出的特性,deque是双向开口的数据结构,若以deque为底部结构并封闭其头端开口,便轻而易举的形成了一个stack。SGI STL便以deque作为缺省情况下stack的底部结构。这种“修改某物接口,形成另一种风貌”之性质这,称为adapter(配接器)模式。stack没有迭代器。以list作为stack的底层容器。二、queue先进先出的数据

2015-07-13 14:33:31 412

原创 STL源码剖析----deque

一、deque的中控器      deque是连续空间(至少逻辑上看来如此),连续线性空间总令我们联想到array或vector。array无法成长,vector虽可成长,却只能向尾端成长,而且其所谓的成长原是个假象,事实上是(1)另觅更大空间;(2)将原数据复制过去;(3)释放原空间三部曲。如果不是vector每次配置新空间时都有留下一些余裕,其成长假象所带来的代价将是相当高昂。    

2015-07-13 14:31:45 524

原创 STL源码剖析----list

相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。      list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接合操作都不会造成原有的list迭代器失效,这在vecto

2015-07-13 12:04:56 340

原创 STL源码剖析----vector

vector容器概述      vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,

2015-07-13 12:02:38 476

原创 STL源码剖析---迭代器

一、迭代器迭代器五种相应型别:1. valuetype,是指迭代器所指对象的型别。2. differencetype,用来表示迭代器之间的距离,可以用来表示一个容器的最大容量。例如STL中的count()函数,其返回值就是difference type。3. referencetype,在C++中如果要传回左值都是以by reference的方式进行。4. pointertyp

2015-07-13 12:00:54 395

原创 STL源码剖析----空间配置器

对new和delete的理解,分为两步,第一步内存的配置,第二步调用对象构造函数。当申请的空间大于128字节时,调用第一级配置器,第一级配置器没有用operator::new和operator::delete来申请空间,而是直接用malloc/free和realloc,并且实现了c++中类似的new-handler的机制。       当区块小于128字节时,则以内存池管理,此法又称为次层配置

2015-07-13 11:56:45 332

原创 B树、红黑树简单概念

B树:多路查找树,对于m阶的B树来说:1.     根节点如果不是叶子节点至少有2个关键字,除根节点外的节点,至少含有m/2向上取整个关键字,不多于m-1个关键字。每个节点最多有m个子节点。2.     内部节点含有k个有序的关键字,叶子节点不包含任何信息,指向这些叶子节点的指针都为NULL,且所有叶子节点在同一行。3.     n个节点的B树高度是logm/2((n+1)/2)。

2015-07-10 20:31:35 559

C++函数速查

C++函数速查,包含了C++中各类函数的介绍,适合于我们快速查找函数的功能

2014-03-14

JNI技术各类文档

jni详解 JNI设计实践之路 JNI技术手册 Java_JNI_编程进阶 android_jni操作指南

2014-03-14

基于.NET的Google+Earth与地学类精品课程网站的集成

基于.NET的Google+Earth开发,对初学google earth使用的很有帮助

2013-11-14

webservice

AXIS、webservice平台的搭建,以及测例

2013-07-15

c#与sql server远程连接

C# 与SQL server 连接,执行SQL语句 向各种控件导入数据 combobox datagridview listbox等

2013-07-15

R语言入门教程

R语言入门教程,适合R语言初学者的一本教材,普及R的运用好书

2011-11-12

Perl语言入门

适合对perl语言感兴趣的人自学或者作为老师教程

2011-10-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除