一. 多核编程的挑战
1. 软件分解
1> WBS: 工作分解结构(任务)
2> AA: 架构制品(事物/对象)
2. 任务间通信
3. 多个任务或agent对数据或资源的并发访问
1> 数据竞争
2> 死锁
3> 无限延期
4. 识别并发执行的任务之间的关系
1> 基本的同步关系
start-to-start;
finish-to-start;
start-to-finish;
finish-to-finish
2> 计时考虑
5. 控制进程之间的资源争夺
6. 需要多少个进程或线程
临界点
7. 寻找可靠的、可重现的调试和测试
1> 多核运行上下文的不确定性,重现的不确定性
2> 寻找正确的调试器和分析器,支持多核
8. 与拥有多线程组件的设计的相关人员进行沟通