上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 132 下一页
摘要: 目录P516P518P519P523操作系统如何实现 execve错误处理总结1. 核心思想:写时复制(Copy-on-Write, COW)与惰性计算2. 实际操作:如何构建新地址空间3. 出错怎么办:优雅地清理4. 成功怎么办:原子性的切换比喻总结 P516 第一个ps就显示了子进程是一个僵尸进 阅读全文
posted @ 2025-08-11 00:23 最爱丁珰 阅读(4) 评论(0) 推荐(0)
摘要: 目录P514P515 P514 这里说的返回两次就是说,现在父进程和子进程有一模一样的代码,假设同时从第3行开始执行,但是父进程执行到第6行的时候,pid是子进程的pid,而子进程执行到第6行的时候,Fork()不会创建新的子进程而是返回0,于是子进程就进入选择分支,父进程不会进入选择分支 注意,子 阅读全文
posted @ 2025-08-10 22:49 最爱丁珰 阅读(6) 评论(0) 推荐(0)
摘要: 一个示例图如下 这里的System ...就是图7-15内核内存里面的东西 阅读全文
posted @ 2025-08-09 11:45 最爱丁珰 阅读(5) 评论(0) 推荐(0)
摘要: 节头目表是 ELF 可重定位目标文件中的一个重要部分。它记录了每个节的相关信息,包括节的类型、大小、文件中的偏移位置等。节头目表实际上就是一个表格,每一项(条目)对应一个节 文件偏移就是文件位置的偏移量,相当于是一个定位信息 节头目表中的每一项就是一个条目,每个条目描述一个节的相关信息(如节的名称、 阅读全文
posted @ 2025-08-09 09:50 最爱丁珰 阅读(17) 评论(0) 推荐(0)
摘要: 目录P481 P481 重定位条目的四个字段由汇编器指示好了,见图7-11 ADDR(.text)就是指令在内存中真正的地址 refaddr就是要修改的指令的起始地址在内存中真正的位置 refptr是可重定位目标文件中要修改的指令的位置,*refptr就是将这个位置修改成对应的内容。比如书上:ref 阅读全文
posted @ 2025-08-05 18:28 最爱丁珰 阅读(8) 评论(0) 推荐(0)
摘要: 要解释第一段,先解释一下图7-11 每个冒号前面的数字计算如下(除了两个重定位条目): 0: 第一条指令起始偏移 4: 第一条指令占4字节,下一条指令偏移为4 9: 第二条指令占5字节,下一条指令偏移为9 e: 第三条指令占5字节,下一条指令偏移为e(十六进制14) 13: 第四条指令占5字节,下一 阅读全文
posted @ 2025-08-05 18:19 最爱丁珰 阅读(15) 评论(0) 推荐(0)
摘要: 目录P474 P474 为啥-0.0不会被强制转换成int呢?因为转换成机器代码是编译器的事情,编译器只能看到当前文件,而当前文件中x是double,所以生成机器代码的时候,-0.0是double类型的二进制表示,而链接器虽然知道x是int,但是链接器能干的事情非常有限,不会去改变已有的机器代码 这 阅读全文
posted @ 2025-08-05 11:45 最爱丁珰 阅读(6) 评论(0) 推荐(0)
摘要: 目录P468P469P470 P468 这里说的本地...变量区别于全局变量,也就是局部变量;不带static的本地变量在栈里面管理,带static的本地变量在.bss或者.data里面管理(虽然这个本地变量带了static,但是还是只能在其所在的作用域里面使用) P469 name是一个整数,所以 阅读全文
posted @ 2025-08-05 11:41 最爱丁珰 阅读(23) 评论(0) 推荐(0)
摘要: 一些符号如下 重定位的意思就是,经过编译器和汇编器生成的可重定位目标文件的指令的起始地址都是0,而链接器就会将其变为内存中的某一个地址,从而可以直接运行 阅读全文
posted @ 2025-08-05 00:24 最爱丁珰 阅读(4) 评论(0) 推荐(0)
摘要: 目录P445 P445 size越小,时间局部性越好指的是能够更快地完成一次遍历开始下一次遍历,于是就可以在更短的时间内访问重复的变量 然后我感觉存储器山说的山脊和斜坡都是一样的,下图更清晰 老师在讲的时候,鼠标就是从左到右走的一个斜坡坡 四个白色方框标出来的东西,书上说的是工作集位于的地方,其实就 阅读全文
posted @ 2025-08-04 09:56 最爱丁珰 阅读(7) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 132 下一页