随笔分类 -  OS_2022

摘要:思考题 Thinking 4.1 调用宏函数SAVE_ALL来保存现场,在此过程中,仅仅操作了k0、k1两个寄存器。这两个寄存器专为OS/异常处理保留,程序中不会使用到。由此避免破坏通用寄存器。 可以,因为调用msyscall()时前4个函数参数都存到了a0 a3中,使用syscall陷入内 阅读全文
posted @ 2022-06-02 11:04 tantor 阅读(457) 评论(0) 推荐(0) 编辑
摘要:思考题 Thinking 3.1 env_id = (asid << 11) | (1 << 10) | index,其保证了每一个进程控制块的id唯一。 在进行env_id != envid判断前仅仅只利用了index后10位进行偏移找到进程控制块e,无法保证高6位的asid信息相同。如果不判断, 阅读全文
posted @ 2022-05-20 20:15 tantor 阅读(108) 评论(0) 推荐(0) 编辑
摘要:思考题 Thinking 2.1 C程序中指针变量存储的地址是虚拟地址。 MIPS汇编程序使用的也是虚拟地址。 CPU只会发出虚拟地址,然后完成虚拟地址到物理地址的转换,最后根据物理地址访存。 Thinking 2.2 宏本身就具有可重用性,将一段代码封装成一条语句。 程序运行时存在着大量重复的链表 阅读全文
posted @ 2022-04-29 14:22 tantor 阅读(191) 评论(0) 推荐(0) 编辑
摘要:思考题 Thinking 1.1 参数含义: objdump -D test 反汇编test中的所有section objdump -S test 将代码段反汇编的同时,将反汇编代码和源代码交替显示,编译时需要给出-g,即需要调试信息。 我的link script: SECTIONS { . = 0 阅读全文
posted @ 2022-04-29 14:19 tantor 阅读(75) 评论(0) 推荐(0) 编辑
摘要:思考题 Thinking 0.1 ​ 不一样。通过分析可知: ​ 第一次的 README.txt 没有add,其状态没有被git跟踪,为Untracked即“未被跟踪”; ​ 第二次的状态为文件已入库,但工作区文件已被修改,与版本库中的文件不同,显示为Modified。 ​ 两者主要的区别在于之前是 阅读全文
posted @ 2022-04-29 14:10 tantor 阅读(45) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示