随笔分类 -  面试

面经 cisco 2
摘要:1. cpu中的cache结构及cache一致性 一. 引子 在多线程环境中,经常会有一些计数操作,用来统计线上服务的一些qps、平均延时、error等。为了完成这些统计,可以实现一个多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值。在实现这个计数器类库时,可以利用thread loca 阅读全文

posted @ 2018-06-27 22:34 AlanTu 阅读(1235) 评论(0) 推荐(0) 编辑

面经 cisco
摘要:1. 优先级反转问题及解决方法 (1)什么是优先级反转 简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢? 假设三个任务准备执行,A,B,C,优先级依次是A>B>C; 首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源; 其次:A进入 阅读全文

posted @ 2018-06-27 22:27 AlanTu 阅读(1928) 评论(0) 推荐(0) 编辑

Linux内核同步
摘要:主要内容 1、内核请求何时以交错(interleave)的方式执行以及交错程度如何。 2、内核所实现的基本同步机制。 3、通常情况下如何使用内核提供的同步机制。 内核如何为不同的请求服务 哪些服务? >>> 为了更好地理解内核是如何执行的,我们把内核看做必须满足两种请求的侍者:一种请求来自顾客,另一 阅读全文

posted @ 2018-05-06 09:48 AlanTu 阅读(3987) 评论(0) 推荐(0) 编辑

linux驱动(续)
摘要:网络通信 --> IO多路复用之select、poll、epoll详解 IO多路复用之select、poll、epoll详解 目前支持I/O多路复用的系统调用有 select,pselect,poll,epoll,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是 阅读全文

posted @ 2018-05-06 09:03 AlanTu 阅读(1063) 评论(0) 推荐(0) 编辑

Linux 驱动开发
摘要:基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, 驱动开发中设计到的硬件: * 数字电路知识 * ARM硬件知识 * 熟练使用万用表和示波器 * 看懂芯片手册和原理图 4, lin 阅读全文

posted @ 2018-05-06 07:46 AlanTu 阅读(4531) 评论(0) 推荐(0) 编辑

linux 设备驱动概述
摘要:目前,Linux软件工程师大致可分为两个层次: (1)Linux应用软件工程师(Application Software Engineer): 主要利用C库函数和Linux API进行应用软件的编写; 从事这方面的开发工作,主要需要学习:符合linux posix标准的API函数及系统调用,linu 阅读全文

posted @ 2018-05-06 06:27 AlanTu 阅读(3312) 评论(0) 推荐(1) 编辑

调试器工作原理
摘要:调试器工作原理(1):基础篇 本文是一系列探究调试器工作原理的文章的第一篇。我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起。 关于本文 我打算在这篇文章中介绍关于Linux下的调试器实现的主要组成部分——ptrace系统调用。本文中出现的代码都在32位的Ubun 阅读全文

posted @ 2018-05-06 05:45 AlanTu 阅读(9744) 评论(0) 推荐(0) 编辑

Linux内核调试方法总结
摘要:一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_stack() 五 printk() 1 printk函数的健壮性 2 printk函数脆弱之处 3 LOG等级 4 记录缓冲区 5 阅读全文

posted @ 2018-05-06 05:15 AlanTu 阅读(20847) 评论(0) 推荐(0) 编辑

对 IIC 总线的理解、调用函数以及常见面试问题
摘要:一、IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由 阅读全文

posted @ 2018-05-05 14:51 AlanTu 阅读(16412) 评论(0) 推荐(2) 编辑

linux驱动工程面试必问知识点
摘要:linux内核原理面试必问(由易到难) 简单型 1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? 2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念? 3:linux中中断的实现机制,tasklet与workqueue的区别及底层实现区 阅读全文

posted @ 2018-05-05 14:37 AlanTu 阅读(2348) 评论(0) 推荐(0) 编辑

linux驱动面试题整理
摘要:1、字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件? 答:mknod命令结合设备的主设备号和次设备号,可创建一个设备文件。 评:这只是其中一种方式,也叫手动创建设备文件。还有UDEV/MDEV自动创建设备文件的方式,UDEV/MDEV是运行在用户态的 阅读全文

posted @ 2018-05-05 14:16 AlanTu 阅读(10909) 评论(0) 推荐(0) 编辑

Linux驱动面试题
摘要:1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口 阅读全文

posted @ 2018-05-05 14:12 AlanTu 阅读(7913) 评论(0) 推荐(0) 编辑

Leetcode 编程训练
摘要:Leetcode这个网站上的题都是一些经典的公司用来面试应聘者的面试题,很多人通过刷这些题来应聘一些喜欢面试算法的公司,比如:Google、微软、Facebook、Amazon之类的这些公司,基本上是应试教育的功利主义。 我做这些题目的不是为了要去应聘这些公司,而是为了锻炼一下自己的算法和编程能力。 阅读全文

posted @ 2018-03-03 22:56 AlanTu 阅读(930) 评论(0) 推荐(0) 编辑

内部排序算法小结
摘要:内部排序算法主要分为插入类排序、交换类排序和选择类排序,它们在性能上的差异主要体现在时间复杂度、空间复杂度和稳定性。各种排序算法都会进行元素间的比较和移动,时间复杂度主要由整个排序过程中的比较次数和移动次数决定。空间复杂度体现在除了待排序记录本身所占的空间,排序过程中占用了多少辅助空间。 1.插入类 阅读全文

posted @ 2018-02-28 12:05 AlanTu 阅读(417) 评论(0) 推荐(0) 编辑

一道C语言安全编码题目
摘要:1、前言 最近在网上看到一道C语言题目,用C语言实现一个函数,给定一个int类型的整数,函数输出逆序的整数,例如输入123,则输出字符串"321",,输入-123,则输出字符串"-321"。题目要求,不使用标准库,不得分配内存。当时觉得蛮简单的,这不就是类似字符串逆转嘛,自己尝试做了一下,测试发现, 阅读全文

posted @ 2018-02-24 15:01 AlanTu 阅读(439) 评论(0) 推荐(0) 编辑

寻找最小的k个数
摘要:1 使用从大到小的优先队列保存最小的K个数,每次取出K个数之后的其余数和堆顶元素比较,如果比堆顶元素小,则将堆顶元素删除,将该元素插入 2 使用set的排序功能,以从大到小的顺序排序所有前K个元素,取出其余的元素与第一个元素比较,如果小于第一个元素,则将第一个元素删除,将当前元素插入。 3 使用pa 阅读全文

posted @ 2018-02-23 15:21 AlanTu 阅读(281) 评论(0) 推荐(0) 编辑

程序员面试宝典 - 总结
摘要:1 x=x+1,x+=1,x++,哪个效率最高?为什么? 解析: x=x+1最低,因为它的执行过程如下: 1)读取右x的地址。 2)x+1 3)读取左x的地址 4)将右值传给左边的x(编译器并不左右x的地址相同)。 x+=1其次,其执行过程如下: 1)读取右x的地址 2)x+1 3)将得到的值传给x 阅读全文

posted @ 2018-02-23 10:57 AlanTu 阅读(2397) 评论(0) 推荐(1) 编辑

循环、递归、概率
摘要:递归是程序设计中的一种算法。一个过程或函数直接调用自己本身或通过其他的过程或函数调用语句间接地调用自己的过程或函数,称为递归过程或函数。 例子一:打靶 面试1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种? 解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是 阅读全文

posted @ 2018-02-23 10:53 AlanTu 阅读(438) 评论(0) 推荐(0) 编辑

面向对象总结
摘要:1 structure和class的区别? structure和class的唯一区别就是默认的访问控制不同,structure默认是public,class默认是Private;structure也可以有构造函数、析构函数、成员函数等。 2 继承体系中为什么将析构函数声明为虚函数? 当你可能通过基类 阅读全文

posted @ 2018-02-23 10:50 AlanTu 阅读(258) 评论(0) 推荐(0) 编辑

队列中取最大值操作问题
摘要:题目描述: 假设有这样一个拥有3个操作的队列: 1 Enqueue(v): 将v加入队列 2 DeQueue:使队列中的队首元素删除并返回此元素 3 MaxElement:返回队列中的最大元素 请设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。 队列是遵守“先入先出”原则的 阅读全文

posted @ 2018-02-23 10:49 AlanTu 阅读(3349) 评论(0) 推荐(0) 编辑

导航