自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(289)
  • 资源 (8)
  • 收藏
  • 关注

原创 大学应让我们相信各种可能性

记得刚来学校的时候,导员们便告诉我们今年的学长学姐们找的工作工资有多高,他们保研保上了多么好的学校,有多少人竞赛怎么样怎么样,于是一开始,我们心中的价值取向便成了这些,而我们竟然还很激动,因为我们将来或许也能取得同样的工资,同样的成就。其实,我们所不知的是,自从这种价值取向开始在我们心中发芽生根,其后,我们的理想主义,我们的社会责任感便一步一步离我们远了。这些只是一个开端而已,然而这个环境,便从此

2014-11-24 11:27:49 943 1

转载 FIQ和IRQ比较

FIQ和IRQ是两种不同类型的中断,ARM为了支持这两种不同的中断,提供了对应的叫做FIQ和IRQ处理器模式(ARM有7种处理模式)。一般的中断控制器里我们可以配置与控制器相连的某个中断输入是FIQ还是IRQ,所以一个中断是可以指定为FIQ或者IRQ的,为了合理,要求系统更快响应,自身处理所耗时间也很短的中断设置为FIQ,否则就设置了IRQ。如果该中断设置为了IRQ,那么当该中断产生的

2014-09-20 00:19:42 1616

转载 Linux的input输入子系统:总体框架

一、input输入子系统总体框架Linux输入子系统将输入驱动抽象为三层:设备驱动层、核心层、事件处理层。 设备驱动层:将底层的硬件输入事件转化为统一事件形式,向输入核心(Input Core)汇报。核心层:承上启下。为驱动提供设备和驱动注册等操作的函数接口。事件处理层:和用户层交互,提供设备的read和write等函数。二、输入子系

2014-09-19 23:44:58 660

转载 c++之explicit

C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。

2014-09-15 11:34:36 573

转载 阿里HR筛选简历

上周发了一个阿里内推的帖子,没想到短时间内就收到了成百上千封简历。我仔仔细细地看了每一封简历,附带有Github地址的我也点进去仔细看了代码。最终我留下了30%的简历,而且这30%中只有10%的本科生。所有通过内推初步筛选的小伙伴会在8月30号收到邮件通知。筛选标准满足以下条件中的任何一个,直接通过筛选:* ACM, Topcoder, Google Code Jam、Ya

2014-09-15 11:16:29 3912

原创 竞态条件(多线程)

可以想像一下,如果在一个线程正在创建的同时另一线程正在退出,那么会发生什么情况呢?如果线程调度器正巧在它们之间切换,程序会莫名其妙地关闭。线程 1 正在执行i = i + 1; 这样的代码,线程 2 则在执行i = i - 1; 这样的代码。为了讨论的方便,假定变量 i 的初始值是 2。 线程 1:取出 i 的值(2)。 线程 1: i

2014-09-14 22:35:54 1063

转载 linux生产者消费者(解释得非常好)

摘要:同步和互斥是进程间很重要的交互模式,而生产者和消费者问题则是同步和互斥的一个景点模型。我认为理解概念应该结合实际来进行,所以本文以实现生产者和消费者模型的形式来讲述同步和互斥。本文先简单谈了个人对同步和互斥的概念的理解,然后用伪码的形式给出了各类生产者和消费者的解决方法,最后用C程序的形式实现了进程版的生产者和消费者模型。PS:C程序的运行平台是linux2.4.8,编译器为gcc4.1.1

2014-09-14 21:49:17 2626

转载 简单Linux C线程池

大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服

2014-09-14 21:04:30 420

转载 ARM的一些架构常识

ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权

2014-09-11 20:20:53 578

转载 嵌入式动态内存分配过程

参考:http://blog.chinaunix.net/space.php?uid=20312618&do=blog&cuid=1815216 一、概述:     动态内存分配,特别是开发者经常接触的Malloc/Free接口的实现,对许多开发者来说,是一个永远的话题,而且有时候也是一个比较迷惑的问题,本文根据自己的理解,尝试简单的探究一下在嵌入式系统中,两类典型系统中动态内

2014-09-09 22:23:00 2965

转载 多线程中的使用共享变量的问题

一组并发线程运行在一个进程的上下文中,每个线程都有它自己独立的线程上下文,例如:栈、程序计数器、线程ID、条件码等,每个线程和其它的线程一起共享除此之外的进程上下文的剩余部分,包括整个用户的虚拟地址空间,当然也共享同样的打开的文件的集合。,这里有一点要特别注意,就是寄存器是从不共享的,而虚拟存储器总是共享的。有了共享就要防止在对共享变量进行操作的过程中得到一个不可知的值,在Linux内核中

2014-09-09 22:07:47 3613

转载 C/C++的类型安全

什么是类型安全?类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制;有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。类型安全的编程语言与类型安全的程序之间,没有必然联系。好的程序员可以使用类型不那么安全的语言写出类型相当安全的程序,相反的,差一点儿

2014-09-09 18:28:05 442

转载 C++ 初始化列表

青春都一饷,忍把浮名,换了代码轻狂。关注DirectX随笔 - 181, 文章 - 65, 评论 - 1528, 引用 - 0C++ 初始化列表何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯

2014-09-09 16:15:46 374

转载 阿里负责人揭秘面试潜规则【转】

最近负责了公司招聘,发现校园招聘这种事情,真是一个奇葩的工作。能做好校园招聘的人,一定是一个矛盾体。这个人一定是思维缜密,因为流程在这里特别重要,宣讲会、笔试、面试,需要不能出乱子;这个人还需要有创新意识,做好了宣讲会、笔试面试,也就是中规中矩,没啥特色,如果不弄点有新意的东东出来,也很难找到最优秀的人才。有人说,这个不矛盾啊。看上去不矛盾,实际上挺矛盾的。因为如果这个人思维缜密,

2014-09-07 17:19:21 763

转载 Linux下IPC总结

IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。Linux IPC基本上都是从Unix平台上继承而来的。主要包括最初的Unix IPC,System V IPC以及基于Socket的IPC。另外,Linux也支持POSIX IPC。System V,BSD,POSIX    System V是Unix操作系统最早

2014-09-07 10:00:28 561

转载 内核态和用户态的区别

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序

2014-09-06 16:34:59 429

转载 用户级线程和内核级线程的区别

转载于http://col1.blog.163.com/blog/static/1909775192012719114033352/1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内

2014-09-06 16:29:32 551

转载 线程的同步机制

1、  Event用事件(Event)来同步线程是最具弹性的了。一个事件有两种状态:激发状态和未激发状态。也称有信号状态和无信号状态。事件又分两种类型:手动重置事件和自动重置事件。手动重置事件被设置为激发状态后,会唤醒所有等待的线程,而且一直保持为激发状态,直到程序重新把它设置为未激发状态。自动重置事件被设置为激发状态后,会唤醒“一个”等待中的线程,然后自动恢复为未激发状态。所以用自动重置事件

2014-09-06 13:19:15 423

原创 父子进程共享的资源

先来看一个题目:当父进程调用fork()创建子进程之后,下列哪些变量在子进程中修改之后,父进程里也会相应地作出改动?A.全局变量B.局部变量C.静态变量D.文件指针答案为D,解释如下:fork()子进程和父进程共享的资源:打开的文件实际用户ID、实际组ID、有效用户ID、有效组ID添加组ID进程组ID对话期ID控制终端。 设置-用户-ID标志

2014-09-03 19:44:46 6754

转载 建议性锁和强制性锁的区别

所谓建议性锁就是假定人们都会遵守某些规则去干一件事。例如,人与车看到红灯都会停,而看到绿灯才会继续走,我们可以称红绿等为建议锁。但这只是一种规则而已,你并不防止某些人强闯红灯。而强制性锁是你想闯红灯也闯不了。建议性锁只在cooperating processes之间才有用,对cooperating process的理解是最重要的,它指的是会影响其它进程的进程或被别的进程所影响的进程,举两个

2014-09-03 09:00:10 2769

转载 linux多进程下的文件共享(包括每个进程的文件表项的详细介绍)

1. 文件共享  (1) 每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:      (a) 文件描述符标识(close_on_exec)。     (b)指向一个文件表项的指针。  (2)内核为所有的打开文件维持一张文件表。每个文件表项包含:      (a)文件状态标志(读、写、添加、

2014-09-03 00:04:42 2916

转载 多进程写文件的三种方式

在写程序的时候,往往为了调试方便或者对于莫名的问题的追踪,需要写log记录进行处理,但是有时候会因为出现文件的读写比较慢或者是多进程访问导致出错或者内容混乱,但是如何才能避免呢,这里我有三个想法和大家分享一下,看看大家还有什么好方法,可以一起讨论。      (1)通过文件加锁的方式,在一个进程访问的时候将文件加锁,处理完了再关闭,不过这种方式会造成文件大频繁操作,导致性能比较低。

2014-09-02 23:52:48 992

原创 fork,vfork,clone的区别

fork和clone的区别:  Linux将创建进程和执行所创建的进程分为2个阶段。第一个阶段是创建。父进程首先复制子进程,所复制出来的子进程拥有自己的任务结构体和系统堆栈,除此之外所有资源都与父进程共享。Linux提供两种方式复制子进程:一个是fork(),另外一个是clone()。fork()函数复制时将父进程的所以资源都通过复制数据结构进行了复制,然后传递给子进程,所以fork()函数不

2014-09-02 22:54:33 773

转载 理解互斥量和信号量

互斥量(Mutex) 互斥量表现互斥现象的数据结构,也被当作二元信号灯。一个互斥基本上是一个多任务敏感的二元信号,它能用作同步多任务的行为,它常用作保护从中断来的临界段代码并且在共享同步使用的资源。 Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex主要的作用是用于互斥。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两

2014-09-02 09:24:00 411

转载 linux多进程共享内存

shmget函数原型shmget(得到一个共享内存标识符或创建一个共享内存对象)所需头文件#include #include 函数说明得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标识符函数原型int shmget(key_t key, size_t size, in

2014-09-02 08:58:29 1279

转载 十道海量数据处理面试题与十个方法大总结

第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。      首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几

2014-08-29 16:51:59 783

转载 Mysql数据类型

1、整型MySQL数据类型含义(有符号)tinyint(m)1个字节  范围(-128~127)smallint(m)2个字节  范围(-32768~32767)mediumint(m)3个字节  范围(-8388608~8388607)int(m)4个字节  范围(-214

2014-08-29 10:41:57 402

转载 MySQL 入门教程

目录一、MySQL的相关概念介绍二、Windows下MySQL的配置配置步骤MySQL服务的启动、停止与卸载三、MySQL脚本的基本组成四、MySQL中的数据类型五、使用MySQL数据库登录到MySQL创建一个数据库选择所要操作的数据库创建数据库表六、操作MySQL数据库向表中插入数据查询表中的数据更新表中的数据删除表中的数据七、创建后的修改

2014-08-29 10:41:27 406

转载 C语言调用C++库接口的方法概述

最近需要在由纯c语言编写的代码中调用C++的动态库,在网上找了一些资料,现在总结下解决方法。主要的思想就是将C++的动态库再封装一层,在这一层编写C语言的函数api,这API中使用C++动态库提供的类;具体例子如下:1,假如C++动态库包含如下代码://myclass.h#ifndef _MYCLASS_H#define _MYCLASS_Hclass

2014-08-29 10:13:50 651

转载 C++调用C生成的动态库

看下面这个例子,其中add函数是用c编写的代码,而主函数是用c++编写的代码,将c代码编译成动态库,然后用c++调用。add.h #ifndef  ADD_FILE_HEADER_INC#define  ADD_FILE_HEADER_INC#include #include extern doubleadd (double a, double b)

2014-08-29 10:00:18 620

转载 两个有序数组中找中位数或者第K大的元素

RT,在两个有序数组中找中位数或者第K大的元素.假设两个数组为A, B长度分别为m,n.分别是递增顺序。可以采用的算法有很多:首先想到的是类似MergeSort的方式,合并的同时找第K大元素,这个基本没难度,复杂度O(m + n)。不过此算法并不是最优,还有Log级别复杂度的算法,此算法其实很简单,远没有很多网站的代码那么玄乎,以下一一道来:首先明白几个前提

2014-08-28 22:57:28 862

转载 设计一组N个数,确定其中第k个最大值

今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。      名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。      所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题

2014-08-28 22:40:31 1558

转载 一个研究生毕业后的职业规划 -----我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训

我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对前景也很迷茫,想抛砖引玉,谈谈自己的看法,局限于理工科的学生,我对文科的不懂,身边的朋友也没有这一类型的。  91年研究生毕业,那时出路就是1种:留在北京的国营单位,搞一个北京户口,这是最好的选择。到后来的2~3年内,户口落定了,又

2014-08-28 21:06:29 3247 1

转载 可重入函数的深入理解以及printf的可重入性

这个概念在嵌入式操作系统中比较重要,由于存在任务的调度,它实时系统,可剥夺型内核中是危险的,如同一个安静的水雷。可能会被触发,也可能安然无恙。由于它运行结果的不可预期性,会使系统带来隐患。printf()经常有重入解释不可重入函数不可以在它还没有返回就再次被调用。例如printf,malloc,free等都是不可重入函数。因为中断可能在任何时候发生,例如在printf执行过

2014-08-28 21:05:34 3209

原创 文件系统ext3的文件大小限制

ext3系统对应的单个文件限制为:blocksize  单个文件限制1k         16G2k         256G4k         2T我们怎么知道现在的分区是多大的blocksize呢?一般而言,格式化时会自动选择一个合适的文件大小的,硬盘大则会选4k,很小的则选择1k的。在正常的硬盘(600G)上:[root@aslibra ~]

2014-08-27 14:15:21 4256

原创 linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread_cond_

2014-08-27 11:17:08 505

转载 判断CPU的大小端

下面的两个程序均可判断CPU的大小端问题int i=1;      char *p=(char *)&i;      if(*p==1)               printf("Little_endian");   //Little_endian    else           printf("Big_endian");   //Big_endian

2014-08-27 10:29:56 600

转载 C语言中联合体union的使用

本文编辑整理自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471一、前言“联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最

2014-08-27 10:27:30 395

转载 关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:p

2014-08-26 12:03:35 473

转载 C++析构函数为什么要为虚函数

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html  a.第一段代码  #includeusing namespace std;class

2014-08-26 11:38:11 336

写给大家看的设计书(文字清晰版 全网独有)

《写给大家看的设计书》[1] 出自一位世界级设计师之手。复杂的设计原理在《写给大家看的设计书》中凝炼为亲密性、对齐、重复和对比4个基本原则。作者以其简洁明快的风格,将优秀设计所必须遵循的这4个基本原则及其背后的原理通俗易懂地展现在读者面前。《写给大家看的设计书》包含大量的示例,让你了解怎样才能按照自己的方式设计出美观且内容丰富的产品。

2015-05-08

嵌入式_C语言(自己面试总结的)

嵌入式开发,自己面试整理的,找工作时非常有效,基本上面试官问到的这方面的内容里面都有!

2014-10-20

操作系统方面的知识(找工作自己总结的)

操作系统,自己面试整理的,找工作时非常有效,基本上面试官问到的这方面的内容里面都有!

2014-10-20

linux环境编程(自己面试总结的)

linux环境编程,自己面试整理的,找工作时非常有效,基本上面试官问到的这方面的内容里面都有!

2014-10-20

c++编程(自己面试总结的)

c++编程,自己面试整理的,找工作时非常有效,基本上面试官问到的这方面的内容里面都有!

2014-10-20

linux常用指令(自己面试整理)

linux常用指令,自己面试整理的,找工作时非常有效,基本上面试官问到的这方面的内容里面都有!

2014-10-20

Linux应用编程(自己面试整理)

Linux应用编程方面的资料,自己面试整理的,对找工作非常有效

2014-10-20

stm32 网络远程IAP(支持stm32的网络远程程序烧写,uip协议栈)全网独有

这是全网独有的,可以实现远程stm32的网络远程IAP下载,所移植的是uip协议栈

2014-08-04

空空如也

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

TA关注的人

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