摘要:
感觉之前对于软中断一直有一些误解。软中断的定义:软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和“信号”类似。同时,软中断又是和硬中断相对应的,“硬中断是外部设备对CPU的中断”,“软中断通常是硬件中断服务程序对内核的中断”作为系统调用而言,对于i386则是通过软中断int80实现对于其它的软中断,则是在硬件中断之后触发的软中断。系统调用在Linux2.6中的实现set_system_trap_gate(SYSCALL_VECTOR, &system_call);# define SYSCALL_VECTOR 0x80ENTRY(syste 阅读全文
摘要:
阅读前准备这是一篇相对入门的文章。文中会涉及到少许NDK的知识,但个人认为对初学者来说都相对比较实用,因为都是在平时项目中遇到的(目前自己也是初学者)。一些其他高深的技术不再本文探讨范围之内(因为我不懂)。文章中可能会存在一些啰里八嗦的地方,抱歉,目前的行文风格如此,考虑以后变得牛逼点儿再改改文风,毕竟现在的阶段还是自嘲的情感因素占上风。你要知道什么是NDK,我是用cocos2dx的,所以平日里还算经常有接触,如果不知道,那就skip这篇文章吧,否则你也看不懂,要不就自己google去。这里只会展开和Android相关的部分,iOS点到为止,详细不讨论。我使用NDK的目的cocos2dx之所以 阅读全文
摘要:
其实很简单,就是用命令即可:apt-get install clang-3.2 clang-3.2-doc主要说明一点,/usr/bin/c++链接原来指向g++,现在被改变了。$ ls /usr/bin/c++ -alhlrwxrwxrwx 1 root root 21 8月 19 20:38 /usr/bin/c++ -> /etc/alternatives/c++$ ls /etc/alternatives/c++ -alhlrwxrwxrwx 1 root root 16 9月 12 23:35 /etc/alternatives/c++ -> /usr/bin/clang 阅读全文
摘要:
今天遇到一道TOP k的变形题,题目大概意思是有10W个随机整数,然后对这些数进行如下操作:1.当能被3整除时,将此数替换为此数和其它数两两相加的数,包括数本身2.当不能被3整除时,将此数替换为原数的两倍问当变换后的数中,输出最小的K个数,复杂度尽可能低解: 此题可以先对10W个数用partition的思想,找出最小的K个数,然后对K个数进行排序,接着开始遍历K个数 假设k个数分别是 a1, a2, a3, a4,.........ak,若此时k个数都不能被3整除,则最小的k个数为 2a1,2a2,2a3,2a4,.........2ak,此时这即为最小的K个数,如果其中ai是第一个能被3整除 阅读全文
摘要:
在进行数据库导入导出使用命令exp、imp经常出现exp-00091 这样的错误的时候,我们需要做的是对于环境变量NLS_LANG设置正确首先,我们先查看需要导出的数据库的字符编码 select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; NLS_CHARACTERSETUTF8 或者 select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; NLS_CHARACTERSETUTF8 然后我 阅读全文
摘要:
上一笔记讲了同步机制中的临界区域(Critical Sections)、互斥器(Mutexes),下面介绍同步机制中的另外两种。 信号量(Semaphores) 举个例子: 现在有人要租车,接待他的代理人发现还有3辆车可以用,但正在给他办理手续的时候发现还有三个人也在做同样的动作。现在,就是有四个人想租三辆车。 我们写个程序解决租车问题,方法一就是为每辆车都加一个mutex保护,问题是如果是一家大型出租车公司就需要有成百上千的mutexes了。方法二使用单一的mutex为所有的车辆服务,但一次只能有一个店员出租,这样问题就是客户会减少。解决: 现在我们将所有的车视为相同,车交到... 阅读全文
摘要:
强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1 说白了,索引问题就是一个查找问题。。。 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。 上图展示了一种可能的索引方式。左边是数据表,一 阅读全文
摘要:
前言:整理了一份linux常用命令手册,与大家分享。这是一些比较常用的命令。我已经整理成一份PDF带书签的手册,可以到CSDN免费下载。 下载地址:http://download.csdn.net/detail/lianggzone/6266467 第一章 注销、重启、关机1、注销输入“exit”命令或者使用Ctrl+D组合键2、重启输入“reboot”命令或“shutdown –r now”命令3、关机输入“halt”命令或“shutdown –h now”命令4、shutdown4.1、语法shutdown [-akrhHPfnc] [-t secs] time[warning mess. 阅读全文
摘要:
在学习ZigBee设备CC2530模块时,编程后程序无法运行,但又十分确定程序的真确性的情况下,看看是不是project栏下的option选项配置的有问题,我是经常在这里出问题,一开始找不到原因,特此记下。例如我就碰到下面这个问题:原本下面是这么配置的,编译是通过的,但是下载调试的时候有个警告,好像是说XDataStack空间只分配了90%。 后来改成下面的这种配置或其他配置可行: 可能的原因我推测是因为芯片内部的ram空间不足,如果给code段、data段、stack段分配的空间对于程序而言不协调,就很可能会出现这种情况。每个程序在ram空间中的结构分布不同,有的是data区多些,有的是s. 阅读全文
摘要:
[1]描述了firefox,safari 有一个bug和DOM 3 规范不一致:在event.currentTarget等于event.target的时候(即event flow处于target phase时),会调用添加到currentTarget上的useCapture为true的listener。 我最近调netsurf也遇到一个相关的bug : alert() 被调了两次。html 代码:alert onclick exampleFirst line of paragraph.add another textNode. 通过gdb, 定位到是_dom_node_dispatch_eve 阅读全文