社区
汇编语言
帖子详情
关于多核编程的问题
lyramilk
2010-03-12 11:14:14
DOS下的com程序,怎样操作两个CPU分别去做两件不同的事呢?明白的说下思路,有相关代码的给一些也好。
我知道APIC,不过看不明白。
...全文
151
4
打赏
收藏
关于多核编程的问题
DOS下的com程序,怎样操作两个CPU分别去做两件不同的事呢?明白的说下思路,有相关代码的给一些也好。 我知道APIC,不过看不明白。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
budao3
2010-03-22
打赏
举报
回复
local APIC是每个CPU都会有的;而IO APIC是在南桥。在DOS下有一颗CPU是处于活动的状态,这个cpu可以通过自己的local APIC发一个message给其他的CPU来唤醒它,当cpu接收到这个message之后就会醒过来。线程的调度跟这个是两回事吧,线程的调度是由OS来完成的,就算只有一个cpu还是有多线程;它是将cpu的时间分成多个时间片,每个线程有固定的时间片。
lyramilk
2010-03-22
打赏
举报
回复
[Quote=引用 1 楼 budao3 的回复:]
在DOS下面只会有一个cpu(BSP)在运作,其他都是处于睡眠状态;如果你在想要其他的CPU(AP)来做其他事情的话,必须通过BSP的local APIC发message给AP APIC来唤醒它。DOS并不支持多核的情况,不知道这样会不会照成死机。APIC有两个地方有,一个是在CPU中,对于每个CPU都会有一个local APIC负责接收所有的中断(包括CPU内部自身的中断,CPU之间的互相传递……
[/Quote]
localAPIC给CPU的IOAPIC发消息的时候,CPU怎样被唤醒的呢?是进行一个中断响应吗?如果CPU是被这个消息中断的,那么它被中断后是执行线程调度吧?
在多线程工作的时候,是如何切换任务的呢?是所有CPU都去响应时钟中断吗?
大熊猫侯佩
2010-03-12
打赏
举报
回复
从x86硬件底层来说,可以看一下intel的手册的cpu调度部分。
budao3
2010-03-12
打赏
举报
回复
在DOS下面只会有一个cpu(BSP)在运作,其他都是处于睡眠状态;如果你在想要其他的CPU(AP)来做其他事情的话,必须通过BSP的local APIC发message给AP APIC来唤醒它。DOS并不支持多核的情况,不知道这样会不会照成死机。APIC有两个地方有,一个是在CPU中,对于每个CPU都会有一个local APIC负责接收所有的中断(包括CPU内部自身的中断,CPU之间的互相传递的message(IPLs),还有就是外围设备中断),并将中断交给CPU去处理。还有一APIC叫IOAPIC,在南桥内部;负责接收南桥上所有device的传过来的中断,一个有24个接口,不过在DOS下这个是被disable的,DOS用到的是8259A中断接收。现在8259A也是通过local APIC传到CPU去处理。
VxWorksSMP
多核
编程
指南.pdf
VxWorks
多核
编程
SMP amp 介绍非常详细,上手即用。非常适合想要了解VxWorks
多核
编程
的各位;
多核
编程
技术指南
多核
编程
技术指南
多核
编程
技术指南
多核
编程
技术指南
多核
编程
技术指南
多核
编程
模型
多核
编程
模型
多核
编程
模型
多核
编程
模型清华大学计算机科学与技术
多核
编程
之挑战与应对
多核
编程
之挑战与应对
多核
编程
之挑战与应对
多核
编程
艺术中英文版
多核
编程
艺术,作者是荷里希,谢菲特,对于想要了解计算机
多核
之间的协作以及并发
编程
的同学有很大帮助
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章