V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zwhfly  ›  全部回复第 1 页 / 共 3 页
回复总数  56
1  2  3  
2021-01-10 18:58:13 +08:00
回复了 clemente0620 创建的主题 程序员 家里盒子坏了 求推荐电视盒子 2G RAM
@wangshushu 请问 S905X4 的外贸盒子哪里能买到啊?搜了一圈没找到。
2020-02-16 19:13:47 +08:00
回复了 frankcreen 创建的主题 Linux 双系统如何修改启动项
2019-12-26 14:31:32 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher “震荡周期和指令周期类似吗?”
类似的。
但 CPU 内部有倍频电路,所以指令周期短得多,纳秒级。
8253 的工作频率是 1.2MHz 左右。
2019-12-26 14:16:31 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
对于这些外设硬件芯片来说,受高频时钟信号驱动不停工作是它的常态,是很正常的,功耗寿命等都是设计时保证的。不需要担心。
2019-12-26 14:11:23 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher “就算硬件时钟给 CPU 发中断信号,硬件时钟同样得做时间判断,所以一句话就是能不能不通过循环,机器周期这些方法,有特殊的算法实现”
时序逻辑电路是计算机的基石,可以说一切都是晶振驱动的。
2019-12-26 14:04:02 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@zwhfly 更正一下,早期 PC 的 PIT 芯片是 8253,不是 MC146818。
2019-12-26 13:57:19 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
“但是另一个人开始工作,要么一分钟看下时间,要么五分钟看下时间,时间差不多了就唤醒。”这个事不需要 CPU 上跑代码去做。有外部硬件时钟在做,比如最早的 PC 机用的是 MC146818 芯片,可编程,在规定时间向 CPU 发硬件中断信号。
2019-12-26 13:37:24 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
对于 CPU 来说,中断是跳到另一段程序执行,而不是等待。但对中断前那段代码来说,由于被跳走了,所以逻辑上这段程序在等待,等待操作系统什么时候操纵 CPU 再跳回来。但 CPU 一直是有事干的,从来不闲着,最闲的时候也是循环执行 pause 指令(x86)。
2019-12-26 13:31:36 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
中断是 CPU 的一个动作,而不是一个状态。中断是“状态转换”这个动作。
2019-12-26 13:29:55 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 你对“中断”的理解是错误的。
2019-12-26 13:26:30 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 算出目标时间点发给硬件时钟,硬件时钟到时间给 CPU 发中断信号啊。
2019-12-26 13:15:35 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 什么是中断?中断是指 CPU 停止执行一段程序,转而执行另一段程序。注意后一句同样重要,中断不仅可以是一个结束,还可以是一个开始。

比如读文件,一个典型的阻塞操作,从用户层到文件系统到驱动,一路会注册等待链,到最后给到 比如 AHCI 控制器,AHCI 控制器是硬件外设,在背后和硬盘间一通骚操作交换数据,这个过程和 CPU 无关,从用户线程到文件系统到驱动啥都不用干(死循环都不用),AHCI 控制器把数据准备好后给 CPU 发中断信号,CPU 收到中断信号就能执行“中断处理程序”,这时候这个中断处理程序就能异步恢复一些东西了,刚才注册的等待链就是响应链,一层一层最终让用户态代码继续执行。
2019-12-26 12:51:21 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 让中断源达到条件时中断啊
@everlost 理论上,可以共用一个函数体,然后用 jmp 指令跳转到函数体,每个 jmp 指令的地址都不一样呀,嘿嘿
另外如果外面取这个函数的指针的话,as if 规则要确保两个版本的函数地址不一样,可能会阻碍这类优化。
而且模板展开前进行这个分析的话,T *大小也不一定固定,比如 using T = void (Class::)(void),咦,我 syntax 没错吧?(成员函数指针)
(这条没仔细分析,可能没这回事。。。)
对于主流编译器实现来说,只能说有时候有这个优化,很多时候没有。
优化方面,万事皆可能,只要遵守 as if 规则。
2019-09-16 11:13:21 +08:00
回复了 cfcfcfcf 创建的主题 硬件 预算 8000 左右买个笔记本,求老哥们推荐
我自己的 G7 7590 死沉,真有冲动换 Z2。
2019-09-16 11:12:03 +08:00
回复了 cfcfcfcf 创建的主题 硬件 预算 8000 左右买个笔记本,求老哥们推荐
强推革命 Z2。给别人买过一台这个,自己是美戴 G7,一对比真的对国产刮目相看。够轻够窄(当然和轻薄本没得比),各方面都还可以。缺点有:所谓机械键盘太吵还容易误触;触摸板有点偏左;两个 USB 口离太近;没有雷电口。
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1085 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 23:32 · PVG 07:32 · LAX 15:32 · JFK 18:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.