操作系统
文章平均质量分 65
大海梦想
为软件事业奋斗!
展开
-
计算机的时间魔法(定时器)
5月组内月度分享的时候,大家讨论到了在Java里时间轮是靠什么驱动运作的。这引发了我对时间驱动力的探索。这个世界本质上就是时间驱动的,这是自然的真实反映。试想如果时间停滞,所有的动作也都会暂停。计算机系统本质上也是时间驱动的。计算机系统的时间概念是由电子振荡器的反复振荡产生的。我们从计算机最底层的硬件讲起,再到操作系统,再到Java,一步一步探究时间驱动力的奥秘。由于篇幅太长…………所以我们分几篇来讲。链接链接链接链接链接...原创 2021-06-28 18:02:34 · 352 阅读 · 0 评论 -
计算机的时间魔法(定时器)——总结
从硬件层面到Java层面,理顺整个流程是一件很爽的事情,阅读这些源码让你有一种醍醐灌顶的感觉。心中有数仿佛自己也能写个操作系统了的自信(错觉)。为了大家更好的回顾整个流程,我用图示的方式从头到尾整理了一遍,希望能够对大家有所帮助。整篇文章都是基于我自己的理解来做的,难免有些错误、疏漏,还请大家指正。最后的最后,还有一个相对哲学的问题,振荡器是通过电来驱动的。如果时间停止,振荡器还能工作吗?...原创 2021-06-28 18:01:04 · 151 阅读 · 1 评论 -
从Java Thread到OS Thread
我们从Java的线程开始,分析一些多年以来的疑问,到底Java的Thread和系统的Thread有什么关系呢?一、线程的表现形式1. 从Thread开始我们从Thread类看起。在Java里,Thread类就用来表示一条线程。但很明显,Java的Thread只是在应用层面的表象,如何真正创建一条线程,是在JVM中完成的。public class Thread implements Runnable { // ... public synchronized void star原创 2021-06-28 17:49:31 · 537 阅读 · 0 评论 -
操作系统对定时器的应用
到了在操作系统层面,可以依靠硬件产生的定时器中断做很多事情,同时,操作系统的定时器怎么实现呢?我们来分析一下。1. 硬件定时器现在的Linux对时间的管理是很复杂的,大体可以分为高精度时钟和低精度时钟。两者互不兼容。在 Linux 2.6.16 之前,内核只支持低精度时钟。内核围绕着 tick 时钟来实现所有的时间相关功能。tick 是一个定期触发的中断,一般由 PIT 提供,大概 10ms 触发一次 (100HZ),精度比较低。如果频率设置的太高,就会严重影响系统性能。(1) tick以 x86原创 2021-06-28 17:40:33 · 1690 阅读 · 0 评论