首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux内存机制以及手动释放swap和内存

我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。 Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。

04

WatchDog的几种用法

死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应,显示凝固。单片机死机后,只有复全才能走出死循环,执行正常的程序流程。众所属知,克服死机的最有效手段是加看门狗(WatchDog)。 目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTimer按固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在DogTimer溢出前强行让DogTimer清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机程序中每隔一段语句放一个清DogTimer的语句--FeedDog语句,以保证程序正常运行时DogTimer不会溢出。一旦程序进入一个不含FeedDog语句的死循环,DogTimer将溢出,导致单片机复位,跳出这个死循环。本文称这种看门狗为典型看门狗,典型看门狗已被集成比,如MAX706、MAX791等;还有许多单片机本身集成了这种看门狗。有一个错误观点:加了看门狗,单片机就不会死机。实际上,看门狗有时间会完全失效。当程序进入某个死循环,而这个死循环中又包含FeedDog语句,这时DogTimer始终不会溢出,单片机始终得不到复位信号,程序也就始终跳不出这个死循环。针对这一弊端,笔者设计了双对限看门狗和定时复位看门狗。 双时限看门狗有两个定时器;一个为短定时器,一个为长定时器。短定时器定时为T1,长定时器定时为T2,0 这样,当程序进入某个死循环,如果这个死循环包含短定时器FeedDog语句而不包含长定时器FeedDog语句,那么长定时顺终将溢出,使单片机复位。巧妙安排长定时器FeedDog语句的位置,可保证出现死机的概率根低。 目前几乎所有的看门狗都是依赖于CPU(依赖于CPU FeedDog)。这可以比作:一个保险设备能否起到保险作用还依赖于被它保护的对象的行为。显然,依赖于CPU的看门狗是不能保证单片机在分之百不死机的。 在绝对不允许死机的装置中,有人设计了一种完全不依赖于CPU的看门狗--定时复位看门狗。定时复位看门狗的主体也是一个定时器,到预定时间就发出溢出脉冲,此溢出脉冲使单片机强行复位。定时复位看门狗不需要CPU FeedDog。 简言之,定时复位看门狗就是定时地让单片机强行复位。这样,即使装置死机,其最大死机时间也不会大于定时器定时时间。显然,只要硬件完好,这种看门狗百分之百地保证了单片机不会长时间死机。

02

一种APP容错能力的测试方法

APP容错能力测试主要针对软件的程序运行和数据保存进行模拟,对软件的性能、稳定性、可用性等进行全方位的检测。本文介绍了 APP容错能力测试的具体操作方法,在测试中需要注意控制好软件运行和数据保存间的时间间隔。因为 APP容错能力测试涉及到软件开发人员很大一部分知识层面,对数据资料和数据文件都有较高要求的计算机设备进行测试时可能会出现操作错误,如果处理不当会给计算机造成不必要的损坏等问题。所以为了能够让您更好地了解 APP容错能力,本文介绍了关于 APP容错能力测试中一些常见故障案例分析。如果您想了解更多关于 APP容错能力测试方面的知识或者是软件升级等相关方面知识,请继续往下阅读~

03

最新慧联A6六轴陀螺仪(阿u)

V1.2与V1.3固件的背景和联系: V1.3分支是基于V1.2分支厂商平台版本的一次大升级,V1.3在V1.2的基础上新增 蓝牙,超低功耗,SIM卡自动切换功能。V3XXX为V1.3的LUAT版本,V0XXX为V1.2的LUAT版本,如V3027是V1.3的固件,V0030是V1.2的固件。 Q1: V1.2固件出货的模块能升级到V1.3的版本吗? A: V1.3完全兼容V1.2,故V1.2的版本可以升级到V1.3的版本。(特别注意!!)只支持USB线刷,不能远程升级到V1.3。 Q2: V1.3固件出货的模块能降级到V1.2的版本吗? A: V1.2版本不支持V1.3版本的校准参数,故V1.3的版本不能降级到V1.2的版本,否则会开不了机。 首推1.3基线版本,支持相同基线版本之间空中升级,不支持跨基线版本间空中升级

01
领券