6 linuxjourney

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 14w+

uthash

一、哈希表的概念及作用        在一般的线性表或者树中,我们所储存的值写它的存储位置的关系是随机的。因此,在查找过程中,需要一系列的与关键字的比较。算法的时间复杂度与比较的次数有关。线性表查找的时间复杂度为O(n)而平衡二叉树的查找的时间复杂度为O(log(n))。无论是采用线程表或是树进行存储,都面临面随着数据量的增大,查找速度将不同程度变慢的问题。而哈希表正好解决了这个问题。它的主要

2016-07-29 18:09:27

哈希表例子2

数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。hash表可以解决以上两个不足之处。           假如你要在图书馆里找一本《电路原理》,这本书首先它在工科类下面,再在工科类的电子信息这个分类里面,你首先要找到工科,再找到电子信息类,然后再找《电路原理》。好了,hashEntry_s相当于这个分类表,它的key就是你要查的类别,data就是你要查的书本,

2016-07-29 10:59:15

哈希表例子1

1:问题描述        针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。2:基本要求          假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列发处理冲突。3:数据结构设计#define NAME_NO 30#de

2016-07-29 10:42:09

Hash表

Hash表  Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。1.Hash表的设计思想  对于一般的线性表,

2016-07-29 10:30:34

常用wifi 加密方式区别

目前无线路由器里带有的加密模式主要有:WEP,WPA-PSK(TKIP),WPA2-PSK(AES)和WPA-PSK(TKIP)+WPA2-PSK(AES)。WEP(有线等效加密)WEP是WiredEquivalentPrivacy的简称,802.11b标准里定义的一个用于无线局域网(WLAN)的安全性协议。WEP被用来提供和有线lan同级的安全性。LAN天生比WLAN安全,因为L

2015-10-10 11:29:06

checksum校验

原理        P/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,采用的都是将数据流视为16位整数流进行重复叠加计算。为了计算检验和,首先把检验和字段置为0。然后,对有效数据范围内中每个16位进行二进制反码求和,结果存在检验和字段中,如果数据长度为奇数则补一字节0。当收到数据后,同样对有效数据范围中每个16位数进行二进制反码的求和。由于接收方在计算过程中包含了发送方存

2015-06-26 17:19:10

详解C中volatile关键字

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo

2015-02-12 15:09:52

mini2440按键驱动

/********************************************////                     书写规范                 ////结构体定义:一律大写字母,中间可用"_"区分     ////全局变量 :全部用小写字母,加前缀"g_"         ////局部变量 :全部用小写字母组合,无其他前后缀 /

2015-02-01 10:41:18

自旋锁(spinlock)

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。  由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。  信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_tryl

2015-01-24 15:19:20

linux内核抢占与spinlock

一、抢占进程调度的原则 ●时间片原则。各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。时间片原则适用于分时系统和大多数实时信息处理系统。  ●优先级原则。每个进程均赋于一个调度优先级,当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状态变成就绪状态的时,如果该进程的优先级比当前进程的优先级高,OS就停止

2015-01-23 23:03:00

[5]ARM-Linux S5PV210 UART驱动----串口的open操作(tty_open、uart_open)

串口驱动初始化后,串口作为字符驱动也已经注册到系统了,/dev目录下也有设备文件节点了。那接下来uart的操作是如何进行的呢?操作硬件之前都是要先open设备,先来分析下这里的open函数具体做了那些工作。s3c24xx_serial_modinit -->uart_register_driver -->tty_register_driver 中有如下语句:

2015-01-04 23:36:57

[4]ARM-Linux S5PV210 UART驱动----串口驱动初始化过程

对于S5PV210 UART驱动来说,主要关心的就是drivers/serial下的samsung.c和s5pv210.c连个文件。由drivers/serial/Kconfig:  config SERIAL_SAMSUNG    depends on ARM && PLAT_SAMSUNG  config SERIAL_S5PV210    depends on

2015-01-04 23:33:07

[3]ARM-Linux S5PV210 UART驱动----串口核心层、关键结构体、接口关系

尽管一个特定的UART设备驱动完全可以按照tty驱动的设计方法来设计,即定义tty_driver并实现tty_operations其中的成员函数,但是Linux已经在文件serial_core.c中实现了UART设备的通用tty驱动层,称为串口核心层,这样,UART驱动的主要任务变成了实现serial_core.c中定义的一组uart_xxx接口而非tty_xxx接口。      uart

2015-01-04 23:22:07

[2]tty驱动列子

#include #include #include #include #include #include #include #include #include #define TTY_TEST_MINORS_NUM 4#define TTY_TEST_MAJOR 0 //系统分配majorstatic struct tty_driver *t

2015-01-04 23:17:29

[1]ARM-Linux S5PV210 UART驱动

在Linux中,UART串口驱动完全遵循tty驱动的框架结构,但是进行了底层操作的再次封装,所以先介绍tty终端设备驱动。一、终端设备  1.串行端口终端(/dev/ttySACn)  2.伪终端(/dev/pty/)  3.控制台终端(/dev/ttyn,/dev/console)二、驱动结构  1.tty分层结构如下图所示: 

2015-01-04 23:04:15

[0]uart platform_device 初始化过程

mach-smdkv210.c:static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = { [0] = { .hwport = 0, .flags = 0, .ucon = S5PV210_UCON_DEFAULT, //FIFO水平触发,中断模式,Rx超时中断,使能Rx异常中断 .ulcon =

2015-01-04 21:34:13

区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn

通常我们在linux下看到的控制台(console)是由几个设备完成的。分别是/dev/ttyN(其中tty0就是/dev/console,tty1,tty2就是不同的虚拟终端(virtual console)).通常使用热键alt+Fn来在这些虚拟终端之间进行切换。所有的这些tty设备都是由linux/drivers/char/console.c和vt.c对应。  /dev/pts是远程

2014-11-14 12:04:06

为什么WiFi自动信道选到的信道多数在1/6/11

为什么小极的自动信道选择选到的信道只会在1、6、11这三个信道呢?WiFi不是一共有10几个信道吗?其他信道岂不是浪费了?这个问题是个非常典型的问题,问100个人,几乎100个人不知道答案的。为了回答这个问题,我准备不少基础知识,但是,既解释原理,又让它不是那么深涩,是有难度的,所以,如果读不懂的朋友,请多看几遍,欢迎在此话题下讨论,我看到了给你讲的更细一点。首先,需要肯定的一点,

2014-10-06 14:46:28

从一个简单的宏定义看linux内核的严谨

最近闲来无事,分析下linux kernel里面一些函数都是怎样定义使用的,它们都是怎样避免风险的,从include/linux/kernel.h中挑出一个经典的min宏进行分析一下 从我们最先认识的min函数开始看看,这个函数的作用就是求两个数中小一点的那个#define min(x, y) ({                                \typeof(x)

2014-08-18 23:24:29

在应用层使用内核链表

linux内核中的shuang

2014-08-12 23:06:52

查看更多

勋章 我的勋章
    暂无奖章