尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 <asm/current.h> 中定义, 它产生一个指针指向结构 task_struct, 在 <Linux/sched.h> 定义. current 指针指向当前在运行的进程. 在一个系统调用执行期间, 例如 open 或者 read, 当前进程是发出调用的进程. 内核代码可以通过使用 current 来使用进程特定的信息, 如果它
linux驱动current,引用当前进程,及task_struct(转)
结对编程任务总结
一.结对编程的优点: 1.结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力. 2.结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动.因为一个人的知识已经被其他人共享. 3.二人合作能互相督促避免时间浪费 二.结对编程的缺点: 1.1+1未必大于二,两个人只产出一份代码,时间效率上会降低 2.当二人水平差距较大时结对编程对水平较高的那一方不公平 三.信息隐藏,接口设计,松耦合 (1). 信息隐藏体现了面向对象编程中的封装原则,在具体的实现过程中可以用以下方式实现
BZOJ4001 [TJOI2015]概率论
Description Input 输入一个正整数N,代表有根树的结点数 Output 输出这棵树期望的叶子节点数.要求误差小于1e-9 Sample Input 1 Sample Output 1.000000000 HINT 1<=N<=10^9 题解 令$f_i$表示n个点无标号二叉树个数,那么枚举根的左子树的点数,可以得到 $$f_n = [n=0] + \sum_{i = 0}^{n - 1} f_if_{n-i-1}$$ (一眼看过去就是卡特兰数,但是现在暂时用不到) 再令$g_i
与我一起extjs5(09--其定义菜单2)
跟我一起学extjs5(09--自己定义菜单2) 这一节来定义另外三种类型的菜单类. 首先定义菜单button类.文件放于app/view/main/region文件夹以下,文件名称为ButtonMainMenu.js. /** * 显示在顶部的按钮菜单.能够切换至标准菜单,菜单树 */ Ext.define('app.view.main.region.ButtonMainMenu', { extend : 'app.ux.ButtonTransparent', alias : 'widget.
iOS GCD多线程介绍
GCD:是纯C语言写的,是苹果公司为多核的并行运算提出的解决方案. GCD的两个核心概念: - 任务 - 队列 将任务添加到队列中 GCD会自动将队列中的任务取出,放到对应的线程中执行 任务的取出遵循队列的FIFO原则:先进先出,后进后出 - 创建串行队列 // "WE" 为线程的名称 // DISPATCH_QUEUE_SERIAL 串行 dispatch_queue_t queue = dispatch_queue_create("WE",DISPATCH_QU
ZooKeeper(一):数据文件
在ZK里面有两个数据文件目录可以配置, dataDir, The location where ZooKeeper will store the in-memory database snapshots. dataLogDir, This option will direct the machine to write the transaction log to the dataLogDir rather than the dataDir. dataDir用来存储ZKDatabase的快照文件(
唯一分解定理
紫薯上的两个例题都提到了唯一分解定理 算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式. 证明见wiki:http://zh.wikipedia.org/wiki/%E7%AE%97%E6%9C%AF%E5%9F%BA%E6%9C%AC%E5%AE%9A%E7%90%86 下面给出计算唯一分解式的代码 int v[100];//唯一分解式中的各个素数 int vtop=0;//素数的种类 int e[100];//每
WCF学习日记
图书馆借阅了<WCF高级编程>,从6.11开始学习wcf,希望尽快熟悉原理和编程模型以及常用编程方法. WCF是一个平台,也是一个框架,从Net.3.0 就在Net framework(无需安装) .WCF将服务以SOA架构对外使用.SOA的宗旨就是让应用程序成为一个接口可以供其余程序使用.比如图书订单管理系统,订单履约系统,ship系统,会计系统,以及其它系统,每个都是一个独立的系统,但是彼此系统应该作为接口供别人使用,这样即使扩展了服务或者改善了服务也不会影响原先的体系架构和业务规则. W
《征服 C 指针》摘录2:C变量的 作用域 和 生命周期(存储期)
在开发一些小程序的时候,也许我们并不在意作用域的必要性.可是,当你书写几万行,甚至几十万行的代码的时候,没有作用域肯定是不能忍受的. C 语言有如下 3 种作用域. 1.全局变量 在函数之外声明的变量,默认地会成为全局变量.全局变量在任何地方都是可见的.当程序被分割为多个源代码文件进行编译时,声明为全局变量的变量也是可以从其他源代码文件中引用的. 2.文件内部的静态变量 就算对于像全局变量那样被定义在函数外面的变量,一旦添加了 static,作用域就只限定在当前所在的源代码文件中.通过 stat
缓冲区
一个缓冲区对象是固定数量的数据的容器.其作用就是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索.对于每个非布尔数据类型都有一个缓冲区类,尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节,非字节缓冲区可以在后台 执行从字节或到字节的转换,取决与缓冲区是如何创建的. 缓冲区的工作与通道紧密联系.通道是io传输发生时通过的入口,而缓冲区是这些数据传输的来源或目标.对于离开缓冲区的传输,待传递出去的数据被置于一个缓冲区,被传送到通道.待传回缓冲区的传输,一个通道将数据放
当鼠标经过换一张相片
<head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>当鼠标经过换一张相片</title> <meta name="keywords" content="关键字列表" /> <meta name="description" cont
zynq ALSA
设计参考的代码PS和PL端的下载链接如下,linuxkernel版本号4.4,基于Zedboard 的ADAU1761功放芯片 ADI公司kernel和hdlgit链接地址 ??Took Linux (device tree is included) from here https://github.com/analogdevicesinc/linux And HDL from here https://github.com/analogdevicesinc/hdl 先说一下为什么会写这篇文章,
python json用法
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这
Javascript的历史
阅读了JavaScript dom简史,从网上看了下,学问很深啊. 首先简单说下网景公司(Netscape)的发展史:1993年,美国国家超级计算机应用中心(NCSA),发表了一个浏览器,命名为“Mosaic”(拼接,镶嵌),全球最早一款可以显示图片的浏览器,互联网历史上第一个获普遍使用的网页浏览器,在当时人气爆发的大受欢迎,Mosaic的出现,算是点燃后来因特网热潮的火种之一. 1994年4月4日,MOSAIC开发的中心人物马克·安德森和Silicon Graphic(SGI,“视算科技”或“
STL - Unorderedset - 自定义哈希函数
1. hash工具类 hashval.hpp #ifndef _Core_HashVal_H_ #define _Core_HashVal_H_ #include <functional> // from boost (functional/hash): // see http://www.boost.org/doc/libs/1_35_0/doc/html/hash/combine.html template <typename T> inline void hash_combi
JSF request参数传递
转载自:http://blog.csdn.net/duankaige/article/details/6711044 1:JSF页面之间传参 方法1: <h:outputLink value="param2.jsf"> <h:outputText value="Test4"></h:outputText> <f:param name="name" value="chen"><
Node.js用ES6原生Promise对异步函数进行封装
版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.转载请注明来源http://blog.csdn.net/azureternite 目录(?)[+] Promise的概念 Promise 对象用于异步(asynchronous)计算..一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise的几种状态: pending:初始状态,即等待操作的执行 fulfilled:成功的操作 rejected:失败的操作 pending的状态
《软件性能测试过程详解与案例剖析》读书笔记
1.软件测试基本概念 响应时间 定义:对请求作出响应所需要的时间.是用户视角的软件性能的主要体现,带有主观色彩,没有绝对的长短. “web页面合理响应时间标准”:2/5/10秒,10秒为上限 上图将响应时间划分为“呈现时间”和“系统响应时间”.“呈现时间”取决于数据在客户端收到数据后呈现页面所消耗时间,一般性能测试中不关注“呈现时间”,因为其很大程度上取决于客户端表现.因此此处响应时间多为“系统响应时间”. 页面响应时间可被进一步分解为:“网络传输时间”.“数据库延迟时间”和“应用服务器延迟时间
个人数据管理的思路
个人的代码,照片视频,常用文件,文档的管理,一直都是老大难问题.从最早的dropbox,到金山快盘,360云盘,到现在的坚果云.最麻烦的是代码,任何云盘都无法直接管理.我一直以来的做法,是用svn管理,但把svn整个版本库文件用云盘同步.在每个客户端上装svnserver,就可以实现代码云同步了.但问题也多: 1.只能每次操作一个版本库,且必须要先同步,提交后再同步.否则冲突.为此损失了两个版本库. 2.server.pid冲突极多. 最近用云服务器比较多,感觉好用,试着在服务器上建svn.但对
马哥linux作业第9周
1.详细描述一次加密通讯的过程,结合图示最佳. SSL安全套接层协议,使用公钥和私钥组合,加密网页和服务器之间传输的数据. OIS模型中介于应用层和传输层之间, 表示层:SSL握手协议(协商密钥) 会话层:SSL记录协议(定义传输格式) 握手过程如下: (1)SSL客户端通过Client Hello消息将它支持的SSL版本.加密算法.密钥交换算法.MAC算法等信息发送给SSL 服务器. (2)SSL服务器确定本次通信采用的SSL版本和加密套件,并通过Server Hello消息通知给SSL客户端