work

Linux设备驱动程序学习(10) -时间、延迟及延缓操作

僤鯓⒐⒋嵵緔 提交于 2020-03-06 08:46:15
度量时间差 时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 <linux/param.h>中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核开发者,他们已经选择了最适合的HZ值,最好保持 HZ 的默认值。 对用户空间,内核HZ几乎完全隐藏,用户 HZ 始终扩展为 100。当用户空间程序包含 param.h,且每个报告给用户空间的计数器都做了相应转换。对用户来说确切的 HZ 值只能通过 /proc/interrupts 获得:/proc/interrupts 的计数值除以 /proc/uptime 中报告的系统运行时间。 对于ARM体系结构:在<linux/param.h>文件中的定义如下: #ifdef __KERNEL__ # define HZ CONFIG_HZ /* Internal kernel timer frequency */ # define USER_HZ 100 /* 用户空间使用的HZ,User interfaces are in "ticks" */ # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ #else # define

Linux下查看文件和文件夹大小

无人久伴 提交于 2020-03-05 17:54:18
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令可以显示目前所有文件系统的可用空间及使用情形 ,请看下列这个例子: 以下是代码片段: [yayug@yayu ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 3.9G 300M 3.4G 8% / /dev/sda7 100G 188M 95G 1% /data0 /dev/sdb1 133G 80G 47G 64% /data1 /dev/sda6 7.8G 218M 7.2G 3% /var /dev/sda5 7.8G 166M 7.2G 3% /tmp /dev/sda3 9.7G 2.5G 6.8G 27% /usr tmpfs 2.0G 0 2.0G 0% /dev/shm 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted

【译】RabbitMQ:工作队列(Work Queue)

独自空忆成欢 提交于 2020-03-05 03:34:36
在第一篇我们写了两个程序通过一个命名的队列分别发送和接收消息。在这一篇,我们将创建一个工作队列在多个工作线程间分发耗时的工作任务。 工作队列的核心思想是避免立刻处理资源密集型任务导致必须等待其执行完成。相反的,我们安排这些任务在稍晚的时间完成。我们将一个任务封装为一个消息并把它发送到队列中。一个后台的工作线程将从队列中取出任务并最终执行。当你运行多个工作线程,这些任务将在这些工作线程间共享。 这个概念对于在一个 HTTP 请求中处理复杂任务的 Web 应用尤其有用。 准备工作 在前一篇中,我们发送了一条内容为“ Hello World !”的消息。现在,我们将要发送一些代表复杂任务的字符串。我们并没有诸如改变图片大小或者渲染 PDF 文件这样的真实的任务,所以假设任务会导致系统的繁忙 -- 通过使用 Threed.Sleep() 函数。我们会采用许多的点( . )在字符串中来表达他的复杂性,每一个点将消耗一秒钟的工作时间。例如,假设有一个任务“ Hello... ”将消耗 3 秒钟。 我们会把上一个例子中的 Send.cs 文件中的代码稍微调整一下,使得对任意的消息都能通过命令行发送。这个程序将调度任务到我们的工作队列中,所以让我们将它命名为 NewTask.cs: 1 var message = GetMessage(args); 2 var body = Encoding

tomcat清除缓存

梦想与她 提交于 2020-03-04 02:52:21
方案一:点击进入解压后的tomcat,找到work文件夹,。此文件下有个catalina目录(tomcat小名叫catalina),work目录下的文件都可以删除。如果我们先前发布的一个项目有错,大家都知道,tomcat发布的项目在webapps下,如果以前的项目有错那么运行新的项目肯定还是会有错的。以前的项目遗留的错误,这时,只要将以前的项目删除掉就行了。但是,注意:不能把work整个目录删除,不然重启tomcat时,会把conf/web.xml删除掉,这样在启动时,日志会提示:No Default web.xml,且访问页面会显示404错误; 来源: https://www.cnblogs.com/tjlgdx/p/5913882.html

Python_线程

三世轮回 提交于 2020-03-02 22:26:52
线程概念的引入背景 进程   之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 有了进程为什么要有线程   进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观察就会发现进程还是有很多缺陷的,主要体现在两点上: 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖于输入的数据,也将无法执行。   如果这两个缺点理解比较困难的话,举个现实的例子也许你就清楚了:如果把我们上课的过程看成一个进程的话,那么我们要做的是耳朵听老师讲课,手上还要记笔记,脑子还要思考问题,这样才能高效的完成听课的任务。而如果只提供进程这个机制的话

(一)移动GPU初探

我是研究僧i 提交于 2020-03-02 20:14:58
原文链接: https://www.sohu.com/a/252890063_505795 人工智能的飞速发展,需要强大的算力作为支撑,这背后NIVIDIA可谓是当之无愧的功臣。NIVIDIA先进的GPU技术和优异的软件生态,使其在竞争中脱颖而出,成为市场霸主。目前人工智能在图像处理及语音识别领域的研究取得了很好的发展,在手机和安防领域也有很多产品落地。在落地过程中,依然会面临设备算力的问题,而移动端GPU则自然而然的进入了人们的视野。 移动端GPU厂商的发展史 在移动端GPU市场中,没有形成一家独大的竞争格局。目前主要的移动端GPU厂商有高通,arm和imaginaton。高通的adreno来自ATI的imageon,ATI最早被AMD收购,后来高通收购了AMD的移动设备资产,取得了AMD的矢量绘图与3D绘图技术和相关知识产权。后来高通结合AMD的手机图形技术发展为自家的Adreno图形处理器。另一家移动计算的巨头ARM,ARM在移动CPU的市场地位可谓遥不可及,但是在GPU领域,它确是诸多厂商中的一家,他的GPU业务也并非一开始就拥有,而是后来组建的。其GPU技术来自一家名为Falanx的公司,这家公司是早起从挪威大学脱离出来的一个名为mali的研究小组的成员组建的,最早定位于PC领域,失利后转向SoC GPU设计。随着SoC市场的不断壮大,以及移动计算的发展

O2OA教程-业务开发与设计-定时任务与服务接口

天涯浪子 提交于 2020-03-02 10:36:42
服务管理包括代理和接口,都是在服务端运行。O2OA中代理就是定时任务。接口可以提供Http服务让外部程序调用。 代理和接口运行的都是后端脚本。在O2OA中,后端脚本也是Javascript,基于JDK8标准的Nashorn,遵循ECMAScript 5.1规范。如果您需要了解Nashorn,可以 点击此查看 。 前后端脚本的差异 O2OA中复杂的应用通常需要通过Javascript来实现。根据运行环境的差异,分为前后端脚本。 前端脚本是运行在浏览器上的,本系统的前端脚本基于 mootools 来构建,遵循ECMAScript 5.1规范。 后端脚本运行在服务器上,基于JDK8标准的 Nashorn ,遵循ECMAScript 5.1规范。 前端脚本在本系统的 AP I中有详细介绍,这里不再过多介绍。后端脚本在视图列脚本、流程事件、接口 和代理中都有使用,并且这些地方的上下文都有不同。 前端脚本 视图列 流程事件 接口和代理 运行环境 浏览器 服务器端 服务器端 服务器端 访问DOM对象 允许 不允许 不允许 不允许 API方法 查看 this.value(本列的列值)、this.entry.data(本行的数据) this.data、this.workContext、this.org this.org 允许使用“脚本组件” 可以使用this.include()跨应用调用

PostgresSQL-内存分配

丶灬走出姿态 提交于 2020-03-02 00:11:34
postgresql的内存分配主要由 shared_buffers、temp_buffers、work_mem、maintenance_work_mem 参数控制。 shared_buffers 又可以叫做共享缓冲区, postgresql对数据操作时都要先将数据从磁盘读取到内存中,然后进行更新,最后再将数据写回磁盘。shared_buffers的功能就是用于存放从磁盘读取的数据。根据文档参数的设置范围一般在25%~40%之间 。windows与linux对内存的管理方式不同,在linux中需要注意共享段大小的设置(kernel.shmmax)。 temp_buffers 称之为临时缓冲区,用于数据库会话访问临时表数据,系统默认值为8M。可以在单独的session中对该参数进行设置,尤其是需要访问比较大的临时表时,将会有显著的性能提升。 work_mem 可以称之为工作内存或者操作内存。其负责内部的sort和hash操作,合适的work_mem大小能够保证这些操作在内存中进行。定义太小的话,sort或者hash操作将需要与硬盘进行swap,这样会极大的降低系统的性能;太大的话致使在能够在内存中完成的操作数量减少,其他的部分需要与磁盘进行swap操作,增加IO降低性能 。系统提供的默认值是1M,在实际的生产环境中,要对系统监控数据进行分析,作出最好的选择。 大致有两种方式

'var that = this;'是什么? 在JavaScript中意味着什么?

。_饼干妹妹 提交于 2020-02-29 16:57:36
在一个JavaScript文件中,我看到了: function Somefunction(){ var that = this; ... } 什么是声明的目的 that 和分配 this 本呢? #1楼 这是使内部功能(在其他功能内定义的功能)更按需工作的一种技巧。 在JavaScript中,当你定义里面另外一个功能, this 将自动被设置为全局范围。 这可能会造成混淆,因为您希望 this 具有与外部函数相同的值。 var car = {}; car.starter = {}; car.start = function(){ var that = this; // you can access car.starter inside this method with 'this' this.starter.active = false; var activateStarter = function(){ // 'this' now points to the global scope // 'this.starter' is undefined, so we use 'that' instead. that.starter.active = true; // you could also use car.starter, but using 'that' gives // us

又是周六了-MySQL特训

不羁岁月 提交于 2020-02-29 15:34:11
  hi 又是周六,又是磨蹭个一上午~午饭后开始吧 1、MySQL -----子查询与连接(三)----- ----使用INSERT...SELECT插入记录 --数据库内容的英文版本 由于我的WAMP中的MYSQL控制台显示中文无力,在更改过程中心力交瘁,遂改变战术,把数据改为了全英文的,现分享出来 -- 创建数据表 CREATE TABLE IF NOT EXISTS goods( goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, goods_name VARCHAR(150) NOT NULL, goods_cate VARCHAR(40) NOT NULL, brand_name VARCHAR(40) NOT NULL, goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0, is_show BOOLEAN NOT NULL DEFAULT 1, is_saleoff BOOLEAN NOT NULL DEFAULT 0 ); -- 写入记录 INSERT goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6Inches