| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 第二十八章 -> 正文阅读 |
|
[嵌入式]第二十八章 |
1.首先用标志-p flag.s 运行 x86.py。该代码通过一个内存标志“实现”锁。你能理解 汇编代码试图做什么吗?
3.使用-a 标志更改寄存器%bx 的值(例如,如果只运行两个线程,就用-a bx = 2,bx = 2)。代码是做什么的?对这段代码问上面的问题,答案如何? 由于bx的值变成了2,由之前的汇编代码分析可以知道每个线程都可以执行两次,ax总共可以得到4次加一的操作,所以最终答案是4. 用-c来查看答案:
4.对每个线程将 bx 设置为高值,然后使用-i 标志生成不同的中断频率。什么值导致产 生不好的结果?什么值导致产生良好的结果? bx为高值说明要进行的循环次数很多,这是如果中断的频率很高,就很容易出问题,所以我认为i的值越小(中断频率越高)会导致产生不好的结果;i的值越大(中断频率越低)会导致产生好的结果。 下面运行程序来验证猜想(以中断频率为4举例):
运行结果与猜想一致! 5.现在让我们看看程序 test-and-set.s。首先,尝试理解使用 xchg 指令构建简单锁原语 的代码。获取锁怎么写?释放锁如何写?
还是以中断为4来验证答案: ./x86.py -p test-and-set.s -i 7 -R ax,bx -M mutex,count -a bx=5 -c
7.使用-P 标志生成锁相关代码的特定测试。例如,执行一个测试计划,在第一个线程 中获取锁,但随后尝试在第二个线程中获取锁。正确的事情发生了吗?你还应该测试什么? 输入命令验证:
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 2:39:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |