w1100n
This site is best viewed in Google Chrome
4/15/2012 22:42

https://github.com/Stanko/ThinkPad-Fan-Control OS: Debian 6 /etc/modprobe.d/alsa-base.conf options thinkpad_acpi fan_control=1 修改配置文件: /etc/modprobe.d/thinkpad_acpi.conf options thinkpad_acpi fan_control=1 experimental=1 add the following to /etc/modprobe.d/options options thinkpad_acpi fan_control= 重新加载模块: sudo modprobe -r thinkpad_acpi && sudo modprobe thinkpad_acpi 然后就可以控制风扇了: # (maximum speed) echo level 7 | sudo tee /proc/acpi/ibm/fan 自动控制脚本: http://www.thinkwiki.org/wiki/Talk:Code/tp-fancontrol 第292行报错, 被我改成了 #echo … Continue reading

7/11/2011 13:10

  所谓优先级翻转问题(priority inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到保证。   例如:有优先级为A、B和C三个任务,优先级A>B>C,任务A,B处于挂起状态,等待某一事件发生,任务C正在运行,此时任务C开始使用某一共享资源S。在使用中,任务A等待事件到来,任务A转为就绪态,因为它比任务C优先级高,所以立即执行。当任务A要使用共享资源S时,由于其正在被任务C使用,因此任务A被挂起,任务C开始运行。如果此时任务B等待事件到来,则任务B转为就绪态。由于任务B优先级比任务C高,因此任务B开始运行,直到其运行完毕,任务C才开始运行。直到任务C释放共享资源S后,任务A才得以执行。在这种情况下,优先级发生了翻转,任务B先于任务A运行。   解决优先级翻转问题有优先级天花板(priority ceiling)和优先级继承(priority inheritance)两种办法。   优先级天花板是当任务申请某资源时, 把该任务的优先级提升到可访问这个资源的所有任务中的最高优先级, 这个优先级称为该资源的优先级天花板。这种方法简单易行, 不必进行复杂的判断, 不管任务是否阻塞了高优先级任务的运行, 只要任务访问共享资源都会提升任务的优先级。   优先级继承是当任务A 申请共享资源S 时, 如果S正在被任务C 使用,通过比较任务C 与自身的优先级,如发现任务C 的优先级小于自身的优先级, 则将任务C的优先级提升到自身的优先级, 任务C 释放资源S 后,再恢复任务C 的原优先级。这种方法只在占有资源的低优先级任务阻塞了高优先级任务时才动态的改变任务的优先级,如果过程较复杂, 则需要进行判断。

7/3/2011 8:16

 计算机中机器零是指:   1、如果一个浮点数的尾数全为0,则不论其阶码为何值,计算机在处理时都把这种浮点数当作零看待;   2、如果一个浮点数的阶码小于它所表示范围的最小值,则不论其尾数为何值,计算机在处理时都把这种浮点数当作零看待。   计算机保存数字的位有限,所能表示最小的数也有范围,当一个表示方式比它所能表示的数更小时,计算机无法表示,就作为0处理,实际上,这个数也很接近0了. — 浮点数定义其实就是0.XXXXX * 2^XXXX 零点多少乘以2的多少次方 其中零点多少就是尾数,2的多少次方就是阶码,不管计算机用几位表示阶码,肯定有个表示的范围,一共有负的最大值,负的最小值,正的最大值,正的最小值4种限制. 当一个表示方式中的阶码是负数,而且这个负数小于计算机所能表示的阶码 如以上2的XXX次方中,XXX是负数(绝对值很大),非常小,在数学上这个值就非常接近于零,在计算机上,因为无法表示比这个值更小了,所以就把这个浮点数作为零处理 补充:不用管位数,先看阶码 假设一个10进制的数,0.9999*10^-9999999999999999999999999, 10的-99999999999999999999999次方,那么这个数是不是很接近0, 不管前面的0.9999是正还是负 对于2进制也一样,0.1111*2^-111111111111111111111111111111 计算机保存数字的位有限,所能表示最小的数也有范围,当一个表示方式比它所能表示的数更小时,计算机无法表示,就作为0处理,实际上,这个数也很接近0了.

7/3/2011 7:49

一、机器数和真值 1、机器数 数在计算机中的二进制表示形式就称为机器数。机器数是带符号的,在计算机用一个数的最高位存放符号(0为正,1为负),将数的符号数值化。 十进制中的数 +5 ,计算机字长为8bits,转换成二进制就是00000101。如果是 -5 ,就是 10000101 。 00000101 和 10000101 就是机器数。 2、真值 因为符号占据一位,机器数的形式值就不等于真正的数值。例如上面的有符号数 10000101,其最高位1代表负,其真正数值是 -5 而不是形式值133(10000101转换成十进制等于133)。所以,为区别起见,带符号位的机器数对应的真正数值称机器数的真值。 例:00100001的真值 = 0 0100001 = +33,10100011的真值 = 1 0100011 = -35 二、计算机符号数的表示方法 符号数值化后,为了方便地对机器数进行算术运算,提高运算速度,人们设计了符号数的各种编码方法,最常见的有原码、反码和补码。 1、原码 原码就是符号位加上真值的绝对值。简单说,就是符号位加上数的二进制表示。比如,+3(以8bit为例),符号位为0,3转化为二进制就是11,那么 +3 的原码就是00000011(不足部分补0)。同理, -3,符号位为1,3转化为二进制就是11,那么 -3 的原码就是10000011(不足部分补0)。即: [+3] … Continue reading

7/3/2011 7:46

前言:随着学习计算机知识的加深,许多地方都遇到原码、反码、补码。很多关于计算机的书籍都介绍原码、反码、补码的表示方法,但是为什么要用到原码、反码、补码却没详细说。为什么要使用?它们的原理是什么呢?我搜索了许多资料,也查找了许多书籍,终于弄明白了这个问题,收集整理如下。 我们知道数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制。而在日常生活中人们使用的是十进制,并且我们用的数值有正负之分。于是在计算机中就用一个数的最高位存放符号(0为正,1为负)。这就是机器数的原码了。 有了数值的表示方法就可以对数进行算术运算,但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下:假设字长为8bits (1) 10 – (1)10 = (1)10 + (-1)10 = (0)10 (0 0000001)原 + (1 0000001)原 = (1 0000010)原 = ( -2 ) 显然不正确。 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上。对除符号位外的其余各位逐位取反就产生了反码。反码的取值空间和原码相同且一一对应。下面是反码的减法运算: (1)10 – (1)10 = (1)10 + (-1)10 = (0)10 (0 0000001)反 + (1 1111110)反 = … Continue reading

7/3/2011 4:20

计算机中的移码   移码(又叫增码)是符号位取反的补码,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。   ①移码的定义:设由1位符号位和n位数值位组成的阶码,则 [X]移=2En + X -2n≤X ≤ 2n   例如: X=+1011 [X]移=11011 符号位“1”表示 正 号   X=-1011 [X]移=00101 符号位“0”表示 负 号   ②移码与补码的关系: [X]移与[X]补的关系是符号位互为相反数(仅符号位不同),   例如: X=+1011 [X]补=01011 [X]移=11011   X=-1011 [X]补=10101 [X]移=00101   ③移码运算应注意的问题:   ◎对移码运算的结果需要加以修正,修正量为2En ,即对结果的符号位取反后才是移码形式的正确结果。   ◎移码表示中,0有唯一的编码——1000…00,当出现000…00时(表示-2En),属于浮点数下溢。   浮点数的运算规则   1、浮点加减法的运算步骤   设两个浮点数 X=Mx※2Ex Y=My※2Ey   实现X±Y要用如下5步完成:   ①对阶操作:小阶向大阶看齐 … Continue reading

辽ICP备14012896