Blog

FORCE_Targets

Content #

如果某规则没有前导依赖,其目标(target)也不是磁盘上的文件,那么make会认为该规则的target在每次运行时都会被更新。以这样的规则为前导依赖的规则,每次运行时都会被执行。

Makefile一般会作如下使用:

clean: FORCE
        rm $(objects)
FORCE:

其中的"FORCE"只是一个约定而成的名称,可以随便使用其它名称。由于FORCE规则的target每次会被更新,clean规则每次都会被执行。

Viewpoint #

From #

https://www.gnu.org/software/make/manual/html_node/Force-Targets.html

自然的人化与人的对象化

Content #

对使用工具的合规律性的形体感受和在所谓“装饰品”上的自觉加工,两者不但有着漫长的时间距离(数十万年),而且在性质上也是根本不同的。虽然二者都有其实用功利的内容,但前者的内容是现实的,后者则是幻想的;劳动工具和劳动过程中的合规律性的形式要求(节律、均匀、光滑等)和主体感受,是物质生产的产物;“装饰"则是精神生产、意识形态的产物。尽管两者似乎都是“自然的人化”和“人的对象化”,但前者是将人作为超生物存在的社会生活外化和凝冻在物质生产工具上,是真正的物化活动;后者则是将人的观念和幻想外化和凝冻在这些所谓“装饰品”的物质对象上,它们只是犡化的活动。前者是现实的“人的对象化”和“自然的人化”,指天画地得想像中的这种“人化”和“对象化”。前者与种族的系列一起构成原始人类的基础,后者则是包括宗教、艺术、哲学等胚胎在内的上层建筑。

Viewpoint #

From #

美的历程

南北桥芯片

南北桥芯片将CPU与外设连接起来 #

北桥:北桥是CPU和内存、显卡等部件进行数据交换的唯一桥梁,也就是说CPU想和其他任何部分通信必须经过北桥。北桥芯片中通常集成的还有内存控制器等,用来控制与内存的通信。现在的主板上已经看不到北桥了,它的功能已经被集成到CPU当中了。

南桥:主要负责I/O设备之间的通信,CPU要想访问外设必须经过南桥芯片。总线是传输数据用的,它分为地址总线和数据总线。以内存为例,地址总线传输要访问的内存地址,数据总线传输读写的数据。有些总线地址和数据是分离的,有些是同一根总线分时利用。

FSB总线:即前端总线(Front Side Bus),CPU和北桥之间的桥梁,CPU和北桥传递的所有数据必须经过FSB总线,可以这么说FSB总线的频率直接影响到CPU访问内存的速度。

ISA总线:最早出现的标准总线,传输速度低,早期的低速外设会采用ISA总线进行连接,比如声卡。

PCI总线:一种高性能局部总线,构成了CPU和外设之间的高速通道。显卡一般都是用的PCI插槽, PCI总线传输速度快,能够很好地让显卡和CPU进行数据交换。

Viewpoint #

From #

导学(一)| 拆解CPU的基本结构和运行原理

toc:Concurrent

概念 #

获得、释放语义 跨临界区的双重检查 同步原语的三种常见类型 可重入锁 Spurious Wakeup ABA问题 并发与并行

Java #

synchronized代码块的实现 对象级别锁与类级别锁

Coroutine #

内存 #

CPU #

再入锁的公平性

Question #

Java 再入锁可以设置公平性(fairness),我们可在创建再入锁时选择是否是公平的。

ReentrantLock fairLock = new ReentrantLock(true);

所谓的“公平性”指的是什么?与之对比,synchronized的公平性又是怎样的?

Answer #

这里所谓的公平性是指在竞争场景中,当公平性为真时,会倾向于将锁赋予等待时间最久的线程。公平性是减少线程“饥饿”(个别线程长期等待锁,但始终无法获取)情况发生的一个办法。

如果使用 synchronized,我们根本无法进行公平性的选择,其永远是不公平的,这也是主流操作系统线程调度的选择。通用场景中,公平性未必有想象中的那么重要,Java 默认的调度策略很少会导致 “饥饿”发生。与此同时,若要保证公平性则会引入额外开销,自然会导致一定的吞吐量下降。所以,我建议只有当你的程序确实有公平性需要的时候,才有必要指定它。

Viewpoint #

From #

增加资产价值

Question #

一家公司把自己的一项资产卖出去了,过了一个星期,它又把这项资产买回来了。这家公司的老板可没有笨到给自己找麻烦,他显然另有目的。他的目的是什么?

Answer #

这是因为,在历史成本计价体系之下,只要没有新的交易发生,资产的价值只能减少不能增加(按照公允价值计价的金融资产和投资性房地产除外),而这家企业重新买回已经卖掉的资产,就可以按照买回交易中的价格重新记录资产的价值。可见,在历史成本的计价体系下,增加资产价值的唯一途径是发生一个新的交易,这是历史成本原则的第二层含义。