本文基于linux版本:4.14.111 简单的总结下 softirq.work_queue.tasklet 三种中断下半部的工作原理及区别,并附上三种形式的简单实例. 一.运行原理① softirq: void __do_softirq(void) { int max_restart = MAX_SOFTIRQ_RESTART; ///< 10 struct softirq_action *h; ... pending = local_softirq_pending(); ///< 获取到当…
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 概述 中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中…
16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错,虽然一和二可以结合在一起,内容并不多 且给新手更容易带来学习信心:安装建议参照我的另一篇安装博客,因为当时我是按照这种方式失败的,文中提及网 络原因导致失败,我当时显示的是安装的某个路径似乎没有维护了,那个url已经不存 在了(所以我也不知道是网络原因还是真的那个路径不存在了)(PHP教程:PHP…
***************************** 这部电影看简介是真实事件改编的,当时除了电影本身的精彩和主角宠妻狂魔之外,印象最深的就是感觉到主角的创业者心态是一步步在生活中被培养的.特别是电影时长前段,心里还为他紧张,因为一开始男主的尝试,无论放在什么行业肯定会失败.男主自己做的卫生巾首先在自己手里需要过实验关,首先不能仅仅靠眼睛,要想办法收集资料(当然主角也撕开卫生巾研究,不过得出的结论是棉花材质这样失望的结果)至少要模拟相似环境,让产品能够合理的工作,然后才在真实情况下,小范围…
原文:学习javascript 的一点感想 //动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:var obj=new object();obj.name="myname";obj.say=function(){    alert("hello");}obj.say();//Javascript是弱类型的,它的数据类型无需在声明时指定,解释器会根据上下文对变量进行实例化,比如:var…
1. 引言 Java后端学习路线 <吐血整理>顶级程序员工具集 https://github.com/AobingJava/JavaFamily 跟上Java8 经历阿里.头条.腾讯等知名企业面试后总结:高级Java后台开发面试指-必备基础知识.Java学习指南.架构师学习书单推荐,纯净干货无废话,针对高频面试点 链接:https://pan.baidu.com/s/176Bmr5OB-Ba07FBmQkypyg提取码: 66x5 GitHub上最牛逼的计算机自学教程 2. 存储 这是我见过最…
关于SpringCloud + Docker 学习地址: (1) https://yq.aliyun.com/articles/57265 (2) https://yq.aliyun.com/teams/11 (3) http://blog.didispace.com/microservice-framework/ (4) https://pivotal.io/platform/migrating-to-cloud-native-application-architectures-ebook 分…
最近对印度电影颇有兴趣,周末在家看了<印度合伙人 Padman>.本文试着从一名创业者视角,谈谈个人的一点看法. 0.故事简介 引用自 https://movie.douban.com/subject/27198855/: 根据印度草根企业家Muruganantham真实事迹改编.因为女性卫生用品关税高昂,在2012年印度仍有80%以上的女性无法使用卫生用品,初中文化程度的主人公拉克希米为了妻子的健康,寻找低成本的卫生用品的生产方法,却被全村人视为变态.疯子:最后他远走大城市德里,遇到了生命中…
一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Git的常用命令. 二:学习Git中远程仓库的问题: Git的远程仓库:就是管理你代码的地方,这个是Github中提供的有,只要你在Github中注册一下你就可以获得无限个Git的远程仓库. 我的Github中的远程仓库如下图所示: 对远程仓库我首先理解为:在Gitbash中敲一个命令:Git init…
1.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于“数据”方面的人才需求也在不断增大.因此了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?不管是对于在校生,还是对于求职者来说,都显得很有必要. 本文基于这个问题,针对51job招聘网站,爬取了全国范围内大数据.数据分析.数据挖掘.机器学习.人工智能等相关岗位的招聘信息.分析比较了不同岗位的薪资.学历要求:分析比较了不同区域.行业对相关人才的需求情况:分析比较了不同岗位的知识.技能要求等. 做完以…
Ado.Net,用了N多年,Entity Framework也关注了很多年. 每当项目转型的时候,就花费大巴的时间,学习一番,潮流的东西. 这个Orm很多,这个EF很火,这么多年了,我还是不敢用,虽然比当年好多了. 当年也就是12年的时候,实体类是乱七八糟的一大堆,属性里是带功能的,不是单纯的实体类.而且,其他数据库支持的不是特别好.现在,实体类清丽了 很多,想着,用一下吧,却又把我吓到了,其实也没有特别的不好,只是太乱了. EF 官方的增删该查,最好的就是查询,剩下的三个,不敢恭维,基本的功能…
随着Xcode 8的发布,swift 3.0终于来了.又有一大批api名字发生了变化.但是感觉3.0之后的变化应该会小些,因此再重新仔细学习一下. 1. 关于swift引入的Computed Properties概念. 今天看了Salesforce的sdk,发现了如下的demo代码: #import "SObjectData.h" @interface SampleRequestSObjectData : SObjectData @property (nonatomic, copy)…
我们目前对.NET的理解大部分可以归纳为:起初它是Java平台(注意是平台,不要跟Java语言搞混淆)的一个克隆品,后来慢慢演变,有了自己的特性.由于Java平台最显著的特点就是“平台独立性”(或者说不知道谁发明的Write once,Run anywhere这个话).理论上,你可以写一个程序编译完后,跑在任何一个安装有JVM的操作系统上.大部分人认为.NET的出现是效仿Sun公司的这个伟大的概念——平台独立性,从而与Java抗衡.再后来又有一些人不知道从哪得出的结论说,就算有像Mono这样的非…
继学些了java后,接触php的项目后发现 php真的也是很强大的一门语言,这只是一篇回想,想到什么就写什么把,大家随便看看. 1.php其实无需等待,一般的改完代码后直接刷新页面即可,不需要像java 重启服务, 一般我们在调试的时候用的最多的 就是 var_dump(变量名);die;  当然了 die 不 die 取决于你. 看你实际情况. 而在调试SQL问的时候  一般都会用到getLastSql(); 然后跟上面一样 dump出来.初学者在导入php项目的时候可以这样 点击import…
http://www.cnblogs.com/liuling/p/2013-8-4-01.htmlhttp://www.cnblogs.com/stephen-liu74/category/326653.html http://blog.csdn.net/varistor/article/details/8160585 给用户一个读与执行的权限(chmod u+rx  aa.sh),就可以用./aa.sh来执行脚本(这样执行是开启一个子shell来执行的) #!(读音:sha-bang)实际是一…
1.定位行: sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行) sed -n '12,+4p' pass #从第12行开始,连续4行(12-16行) sed -n '12~3p' pass #从第12行开始,间隔3行输出一次(12,15,18,21...) sed -n '10,$p' pass   #从第10行至结尾 sed -n '4!p' pass   #除去第4行 2.正则:'/正则式/' sed -n '/root/p' /etc/pas…
在这几天的做实验.读书.写笔记的过程中我发现一个问题,就是我的知识面太窄,就比如说,学的知识都是一块一块的,没有能力去把它串起来,虽然学的很快,也写笔记总结,但马上就忘了,我想java是一个体系,需要循序渐进,不是一口就能吃成胖子的,首先是兴趣,关键是坚持,脚踏实地才能学好.还有就是在学习的过程中,最好不要仅仅停留在java表层,不是抄书上的例子运行出结果就可以.即便对一个简单的例子也要有耐心去琢磨.调试.改动.我觉得动手很关键,一定要动手做.试着写代码,而不是抱一本书看看就行.很多东西和体会必…
在实验室折腾附加题折腾了一个多钟没做出来……晚上回到宿舍决定再试一试,按原来的思路居然行了,目测在实验室的时候什么地方打错字了吧(心在流血) 实现晃过元素后出现跟随鼠标的悬浮窗,只有几行代码给我折腾了好久,前端的JS果然debug困难 打错字都没提示OTZ 下次试试strict mode好了…… 简而言之就是mouseover的时候show,mouseout的时候hide,mousemove的时候跟着改坐标 // tweet.js $('#avatar').mouseover(function(…
以前读<黑客与画家>,其中对Lisp语言的赞美和推崇,让我燃起学习Lisp语言的强烈冲动,但很快发现在实际工作中应用的场景很少,出于功利心最终放弃了.直到上周未在家里读完了<大教堂与集市>,此书再次建议学习Lisp.我不能再视若无睹了.打算放下功利心,将Lisp视为营养丰富的土壤,从中汲取宝贵的思想(虽然很多年前就存在了)来充实自已.就像我以前学习erlang一样,给我受益良多.   写一个Lisp的Hello word, 作为纪念.       为什么Lisp语言如此先进? ht…
作为一名电子信息工程的学生,嵌入式似乎是不二的选择,然后我便学习了一下在嵌入式广泛应用的QT软件,刚开始就是学学控件,觉得还是简单,也觉得比较新颖,可是到了做一些具体的小东西就会发现学的东西远远不够,发现学习不能够老是专注一些局部的东西,更多的应该从宏观到微观的学习.比如QT我们就应该更多的关注它的框架而不是具体的某一个函数.我们应该更多的关注它的机制而不是去故意背一些虚函数.…
目录 MyBatis 如何获取数据库源? MyBatis 如何获取 sql 语句? MyBatis 如何执行 sql 语句? MyBatis 如何实现不同类型数据之间的转换? 在过去程序员使用 JDBC 连接数据库,总会带来诸多不便.MyBatis 是一款优秀的持久层框架,可以替代 JDBC 帮助我们更好的进行开发.要了解 MyBatis 的实现原理,首先我们要明白 MyBatis 的大致操作步骤. 数据库源告诉我们连接哪个数据库,获得要执行的SQL语句,再进行操作,这点者缺一不可.接下来要看的…
0x00 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 0x01 在ubuntu上安装docker 第一步: sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-pro…
一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本功能 1.部署多个虚拟主机 多个虚拟机就是指在nginx目录下建立多个文件夹,作为虚拟工作目录.使多个虚拟空间可以使用不同的地址访问. 在配置文件中设置如下: server { listen 8001; server_name localhost; location / { root html800…
用CI好几天了,最终还是放弃用CI做完整的项目,感觉CI在前后端的交互上还比较差,比如说用户表单验证,仍然是需要把数据提交给服务器之后才能显示逻辑判断的结果.而这一点明显是相对落后了. 但不可否认CI的模型和方法在数据访问上的优势.把CI框架单独隔为一层,仅作为数据传递的接口,配合前端框架,还是很不错的.而且CI也足够小巧强悍.…
MMU的一个主要服务是能把各个人物作为各自独立的程序在其自己的虚拟存储空间中运行. 虚拟存储器系统的一个重要特征是地址重定位.地址重定位是将处理器核产生的地址转换到主存的不同地址,转换由MMU硬件完成. 在一个虚拟存储器系统中,虚拟内存通常作为固定的空间或动态的空间被划分成多个部分,在固定的空间里面,映射在页表中的转换数据在普通操作中步伐发生变化,在动态空间内,虚拟内存到物理存储器之间的映射关系频繁发生变化. 页表包含了虚拟页表的描述信息.一个页表项PTE将虚拟内存中的一页转换成物理存储器中的一…
java中没有将指针暴露给用户(以前做过看过一篇文章写有java中是有指针的,只是被藏起来了),所以得使用引用的方式. 何为引用请看下面这篇文章(写的很不错,当然肯定比我写的好): https://www.cnblogs.com/huajiezh/p/5835618.html 链表中内部类和嵌套类的区别: https://blog.csdn.net/WelcomeSpring/article/details/79430546 以下代码采用内部类. /** * 内部类 * @param <E>…
<!DOCTYPE html> <html> <head> <style> canvas { border: 1px dashed black; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script> &l…
今天写一个连连看的游戏的时候,接触到了一些寻路算法,我就大概讲讲其中的A*算法. 这个是我学习后的一点个人理解,有错误欢迎各位看官指正. 寻路模式主要有三种:广度游戏搜索.深度优先搜索和启发式搜索. 广度优先搜索(Breadth First Search):又称为"宽度优先搜索"或"横向优先搜索",简称BFS. BFS的搜索模式是:从图中某节点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使得先被访问的节点…
返回目录:<ARM-Linux中断系统>. 总结:中断分为上半部和下半部,上半部关中断:下半部开中断,处理可以延迟的事情.下半部有workqueue/softirq/tasklet三种方式. 二介绍了为何要分top half和bottom half?workqueue/softirq/tasklet区别? 三重点分析了preempt_count,以及据此判断当前task所处的上下文. 四详细分析了softirq机制,softirq静态数组?softirq_action?如何注册softirq?…