{"version":1,"pages":[{"id":"-MHt_vmcmFoeZDq0S2n6","title":"本电子书信息","pathname":"/csapp","siteSpaceId":"sitesp_NqMuT","description":""},{"id":"-MHzRwxSXDubfEHLwJ8G","title":"出版者的话","pathname":"/csapp/publish-info/publisher-words","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MI-8R8zmEytv0pinv6J","title":"中文版序一","pathname":"/csapp/publish-info/chinese-preface-1","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MI-9j_D-PeryuM6Oxkn","title":"中文版序二","pathname":"/csapp/publish-info/chinese-preface-2","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MI-C0Jxw1SKmv6Zr-QX","title":"译者序","pathname":"/csapp/publish-info/translators-preface","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MHttFWSSPp1UuQk6_qf","title":"前言","pathname":"/csapp/publish-info/preface","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MI-UR-fxR6r30A3lE4L","title":"关于作者","pathname":"/csapp/publish-info/about-authors","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"出版信息"}]},{"id":"-MHtst9AgieXEzyzkiJQ","title":"第 1 章：计算机系统漫游","pathname":"/csapp/ch01-a-tour-of-computer-systems","siteSpaceId":"sitesp_NqMuT","description":""},{"id":"-MHtzzXXQEYa16NelWUQ","title":"1.1 信息就是位 + 上下文","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.1","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHu37XWxF__1ffKMDWk","title":"1.2 程序被其他程序翻译成不同的格式","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.2","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHufOlKLIxhkV4iy9SD","title":"1.3 了解编译系统如何工作是大有益处的","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.3","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHug8eLpua6DuZahhGy","title":"1.4 处理器读并解释储存在内存中的指令","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.4","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHuirWhfvdJ97JX4A5z","title":"1.5 高速缓存至关重要","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.5","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHukCKlj-_sCl8SiiJV","title":"1.6 存储设备形成层次结构","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.6","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHuka_FMxOWCOqKVEWg","title":"1.7 操作系统管理硬件","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.7","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHvC9PL4d5MTLLT1nzE","title":"1.8 系统之间利用网络通信","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.8","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHw9w5kvF_cleJYmIdv","title":"1.9 重要主题","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.9","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHzLM15sghtgy023k8H","title":"1.10 小结","pathname":"/csapp/ch01-a-tour-of-computer-systems/1.10-xiao-jie","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第 1 章：计算机系统漫游"}]},{"id":"-MHtw5AFwI10tXhbKnDm","title":"第 2 章：信息的表示和处理","pathname":"/csapp/part1/ch02-representing-and-manipulating-information","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"}]},{"id":"-MI-Z2cOWhUFwKviUk5C","title":"2.1 信息存储","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/2.1-xin-xi-cun-chu","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MI-Z81uFUZvqLpO8uJn","title":"2.2 整数表示","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/2.2-zheng-shu-biao-shi","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MI-ZC-do7wHct282cFE","title":"2.3 整数运算","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/2.3-zheng-shu-yun-suan","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MI-ZF-Av-b2D8IXzdwE","title":"2.4 浮点数","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/2.4-fu-dian-shu","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MI-ZHAGvU-mExdxsQMX","title":"2.5 小结","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/2.5-xiao-jie","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MI-ZJS9BaKodAvLdNml","title":"家庭作业","pathname":"/csapp/part1/ch02-representing-and-manipulating-information/jia-ting-zuo-ye","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 2 章：信息的表示和处理"}]},{"id":"-MHtwBL3XlLkVKxRHbx2","title":"第 3 章：程序的机器级表示","pathname":"/csapp/part1/ch03-machine-level-representing-of-programs","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"}]},{"id":"-MJ1cb1Sx01HYrnR7DRW","title":"3.1 历史观点","pathname":"/csapp/part1/ch03-machine-level-representing-of-programs/3.1-a-historial-perspective","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 3 章：程序的机器级表示"}]},{"id":"-MJ1zdOo_mIwJdbuX-Hh","title":"3.2 程序编码","pathname":"/csapp/part1/ch03-machine-level-representing-of-programs/3.2-program-encodings","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 3 章：程序的机器级表示"}]},{"id":"-MJ2KMYfYq-cpu29vk-_","title":"3.3 数据格式","pathname":"/csapp/part1/ch03-machine-level-representing-of-programs/3.3-data-formats","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 3 章：程序的机器级表示"}]},{"id":"-MJ2OJSaGlgOkvvV-HpM","title":"3.4 访问信息","pathname":"/csapp/part1/ch03-machine-level-representing-of-programs/3.4-accessing-information","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"},{"label":"第 3 章：程序的机器级表示"}]},{"id":"-MHtwFYQaej9N7ts30ka","title":"第 4 章：处理器体系结构","pathname":"/csapp/part1/ch04-processor-architecture","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"}]},{"id":"-MHtwK59hMTwD37c1GvH","title":"第 5 章：优化程序性能","pathname":"/csapp/part1/ch05-optimizing-program-performance","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"}]},{"id":"-MHtwNYeIr5Y_mUT1BXb","title":"第 6 章：存储器层次结构","pathname":"/csapp/part1/ch06-the-memory-hierarchy","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第一部分：程序结构和执行"}]},{"id":"-MHtwUHBiC7mrK9C5qNh","title":"第 7 章：链接","pathname":"/csapp/part2/ch07-linking","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"}]},{"id":"-MI3JhjE3_mvbEzEPfXH","title":"7.1 编译器驱动程序","pathname":"/csapp/part2/ch07-linking/7.1-compiler-drviers","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI3JltOhWukwqHtm7HO","title":"7.2 静态链接","pathname":"/csapp/part2/ch07-linking/7.2-static-linking","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI3Jpl5dBzys0wcrnUQ","title":"7.3 目标文件","pathname":"/csapp/part2/ch07-linking/7.3-object-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI3JvS_MkJMI_io9m6s","title":"7.4 可重定位目标文件","pathname":"/csapp/part2/ch07-linking/7.4-relocatable-object-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI3KCGhyRObH4VgHgDg","title":"7.5 符号和符号表","pathname":"/csapp/part2/ch07-linking/7.5-symbols-and-symbol-tables","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI3KCr_yZD-KoDe-6yj","title":"7.6 符号解析","pathname":"/csapp/part2/ch07-linking/7.6-symbol-resolution","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI4Qhvv3xSYyQh16j7h","title":"7.7 重定位","pathname":"/csapp/part2/ch07-linking/7.7-relocation","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI4e_JVQDkcqqUnSokh","title":"7.8 可执行目标文件","pathname":"/csapp/part2/ch07-linking/7.8-executable-object-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI4hbXs_mMzXCyeq-Yr","title":"7.9 加载可执行目标文件","pathname":"/csapp/part2/ch07-linking/7.9-loading-executable-object-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI4jKhra8XfhPZ_Y-Vo","title":"7.10 动态链接共享库","pathname":"/csapp/part2/ch07-linking/7.10-dynamic-linking-with-shared-libraries","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI7s1_LIHNKa_UFyUlf","title":"7.11 从应用程序中加载和链接共享库","pathname":"/csapp/part2/ch07-linking/7.11-loading-and-linking-shared-libraries-from-applications","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI7wkw3YAIT5C2e3_ZS","title":"7.12 位置无关代码","pathname":"/csapp/part2/ch07-linking/7.12-position-independent-code","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI7yMYAr-5dh03bfZ3b","title":"7.13 库打桩机制","pathname":"/csapp/part2/ch07-linking/7.13-library-interpositioning","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI85gAk9jN1sJpCUnAK","title":"7.14 处理目标文件的工具","pathname":"/csapp/part2/ch07-linking/7.14-tools-for-manipulating-object-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI85nFjaEyvxKf9Gq_p","title":"7.15 小结","pathname":"/csapp/part2/ch07-linking/7.15-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MI86-wO00DztO36jymL","title":"家庭作业","pathname":"/csapp/part2/ch07-linking/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 7 章：链接"}]},{"id":"-MHtwZy939VYPBWU3fvJ","title":"第 8 章：异常控制流","pathname":"/csapp/part2/ch08-exceptional-control-flow","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"}]},{"id":"-MI9M5cL25an4ZU--o_H","title":"8.1 异常","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.1-exceptions","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MI9R0cAy6vEcPUnWcjN","title":"8.2 进程","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.2-processes","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MI9i6DZJOTrcyC8JmYQ","title":"8.3 系统调用错误处理","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.3-system-call-error-handling","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MI9j8MpaxAQfRaqbFfL","title":"8.4 进程控制","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.4-process-control","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MIDTkz8fhhlctiI2OpI","title":"8.5 信号","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.5-signals","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MIEEWCI5XpPb2Lo-7jH","title":"8.6 非本地跳转","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.6-nonlocal-jumps","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MIF4EYBbiuMQDaSffGz","title":"8.7 操作进程的工具","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.7-tools-for-manipulating-processes","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MIF4Y35iqV6yhd5Jdz6","title":"8.8 小结","pathname":"/csapp/part2/ch08-exceptional-control-flow/8.8-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MIF4y7_nmOXeZgrm78C","title":"家庭作业","pathname":"/csapp/part2/ch08-exceptional-control-flow/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 8 章：异常控制流"}]},{"id":"-MHtwd4Of_KxCscZUKSH","title":"第 9 章：虚拟内存","pathname":"/csapp/part2/ch09-virtual-memory","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"}]},{"id":"-MIOCU-o_5YX8eRvdADB","title":"9.1 物理和虚拟寻址","pathname":"/csapp/part2/ch09-virtual-memory/9.1-physical-and-virtual-addressing","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIOfrd87mqo037lqZ4_","title":"9.2 地址空间","pathname":"/csapp/part2/ch09-virtual-memory/9.2-address-spaces","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIOin9GmEj_fyHlyHtf","title":"9.3 虚拟内存作为缓存的工具","pathname":"/csapp/part2/ch09-virtual-memory/9.3-vm-as-a-tool-for-caching","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIOmilXFX3PwqQTUr22","title":"9.4 虚拟内存作为内存管理的工具","pathname":"/csapp/part2/ch09-virtual-memory/9.4-vm-as-a-tool-for-memory-management","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIOnXUzqd-EJvpwok-v","title":"9.5 虚拟内存作为内存保护的工具","pathname":"/csapp/part2/ch09-virtual-memory/9.5-vm-as-a-tool-for-memory-protection","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIOnvV6e8dhqfdwT_DO","title":"9.6 地址翻译","pathname":"/csapp/part2/ch09-virtual-memory/9.6-address-translation","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIPE4J8zeT7PYr1o1V5","title":"9.7 案例研究：Intel Core i7 / Linux 内存系统","pathname":"/csapp/part2/ch09-virtual-memory/9.7-case-study-the-intel-core-i7-linux-memory-system","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIPI7j0DGIBvAABTYap","title":"9.8 内存映射","pathname":"/csapp/part2/ch09-virtual-memory/9.8-memory-mapping","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIPLiEcO94OIgMgBcUP","title":"9.9 动态内存分配","pathname":"/csapp/part2/ch09-virtual-memory/9.9-dynamic-memory-allocation","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIY10HrfUPU8kopl5zK","title":"9.10 垃圾收集","pathname":"/csapp/part2/ch09-virtual-memory/9.10-garbage-collection","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIY3NjTXR9eKoF6jEcz","title":"9.11 C 程序中常见的与内存有关的错误","pathname":"/csapp/part2/ch09-virtual-memory/9.11-common-memoory-related-bugs-in-c-programs","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIY6KrjI0RdHw0XDfEF","title":"9.12 小结","pathname":"/csapp/part2/ch09-virtual-memory/9.12-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MIY7Pwy_8nroWRS0jQw","title":"家庭作业","pathname":"/csapp/part2/ch09-virtual-memory/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第二部分：在系统上运行程序"},{"label":"第 9 章：虚拟内存"}]},{"id":"-MHtwjrxyjp3-xwCLhv7","title":"第 10 章：系统级 I/O","pathname":"/csapp/part3/ch10-system-level-io","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"}]},{"id":"-MIZ7zqaxQDRQPz-Cokg","title":"10.1 Unix I/O","pathname":"/csapp/part3/ch10-system-level-io/10.1-unix-io","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZC57D2h-w12nf3lch","title":"10.2 文件","pathname":"/csapp/part3/ch10-system-level-io/10.2-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZCkDMm2RQrUPlDpgj","title":"10.3 打开和关闭文件","pathname":"/csapp/part3/ch10-system-level-io/10.3-opening-and-closing-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZFwZoZKkFNQW-S5RB","title":"10.4 读和写文件","pathname":"/csapp/part3/ch10-system-level-io/10.4-reading-and-writing-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZHKSZbNYheV6Jpy8Y","title":"10.5 用 RIO 包健壮地读写","pathname":"/csapp/part3/ch10-system-level-io/10.5-robust-reading-and-writing-with-the-rio-package","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZL_5oJEvXDtJB1gRE","title":"10.6 读取文件元数据","pathname":"/csapp/part3/ch10-system-level-io/10.6-reading-file-metadata","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZTNFYiNCSnl--hoZ8","title":"10.7 读取目录内容","pathname":"/csapp/part3/ch10-system-level-io/10.7-reading-directory-contents","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZURLQO-q2tg4JStKZ","title":"10.8 共享文件","pathname":"/csapp/part3/ch10-system-level-io/10.8-sharing-files","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZVVCo2tXxjuEJ9y6x","title":"10.9 I/O 重定向","pathname":"/csapp/part3/ch10-system-level-io/10.9-io-redirection","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZWo6fOyEMQBZOq_G8","title":"10.10 标准 I/O","pathname":"/csapp/part3/ch10-system-level-io/10.10-standard-io","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZXM-nAdcjmsw8KaCE","title":"10.11 综合：我该使用哪些 I/O 函数？","pathname":"/csapp/part3/ch10-system-level-io/10.11-putting-it-together-which-io-functions-should-i-use","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZYV7Wm6HHZEd3oHp_","title":"10.12 小结","pathname":"/csapp/part3/ch10-system-level-io/10.12-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MIZYwj22NsX2hDDpitl","title":"家庭作业","pathname":"/csapp/part3/ch10-system-level-io/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 10 章：系统级 I/O"}]},{"id":"-MHtwplWUzr-z9Ob8vwI","title":"第 11 章：网络编程","pathname":"/csapp/part3/ch11-network-programming","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"}]},{"id":"-MIZdw4vnSTDz4ateVxI","title":"11.1 客户端—服务器编程模型","pathname":"/csapp/part3/ch11-network-programming/11.1-the-client-server-programming-model","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIZejVJsYiRf0fx424x","title":"11.2 网络","pathname":"/csapp/part3/ch11-network-programming/11.2-networks","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIZnBzdGtd5ETmviGiD","title":"11.3 全球 IP 因特网","pathname":"/csapp/part3/ch11-network-programming/11.3-the-global-ip-internet","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIZty_NxXO6aEdIIBqI","title":"11.4 套接字接口","pathname":"/csapp/part3/ch11-network-programming/11.4-the-sockets-interface","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MI_MtU3LmTjsjFlupxg","title":"11.5 Web 服务器","pathname":"/csapp/part3/ch11-network-programming/11.5-web-servers","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIbYMX3T9MNWufhQoWf","title":"11.6 综合：TINY Web 服务器","pathname":"/csapp/part3/ch11-network-programming/11.6-putting-it-together-the-tiny-web-server","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIbbzq_-24h3SkFRDf3","title":"11.7 小结","pathname":"/csapp/part3/ch11-network-programming/11.7-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MIbcelo6qvI934evI6l","title":"家庭作业","pathname":"/csapp/part3/ch11-network-programming/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 11 章：网络编程"}]},{"id":"-MHtwtl8x2BCKkmlgCak","title":"第 12 章：并发编程","pathname":"/csapp/part3/ch12-concurrent-programming","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"}]},{"id":"-MIcMPD_k57AIGI_ZIta","title":"12.1 基于进程的并发编程","pathname":"/csapp/part3/ch12-concurrent-programming/12.1-concurrent-programming-with-processes","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIcNlJw25qTZ60nyBLD","title":"12.2 基于 I/O 多路复用的并发编程","pathname":"/csapp/part3/ch12-concurrent-programming/12.2-concurrent-programming-with-io-multiplexing","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIcUYY93fgivTJOSy2p","title":"12.3 基于线程的并发编程","pathname":"/csapp/part3/ch12-concurrent-programming/12.3-concurrent-programming-with-threads","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIcZj5k67RRAmkbZH2c","title":"12.4 多线程程序中的共享变量","pathname":"/csapp/part3/ch12-concurrent-programming/12.4-shared-variables-in-threaded-programs","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIcwGeVECNEyCAaeVFW","title":"12.5 用信号量同步线程","pathname":"/csapp/part3/ch12-concurrent-programming/12.5-synchronizing-thread-with-semaphores","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIdg-u0zpMvCEw4ekfD","title":"12.6 使用线程提高并行性","pathname":"/csapp/part3/ch12-concurrent-programming/12.6-using-threads-for-parallelism","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIdmNUMn8hJR_6RNHis","title":"12.7 其他并发问题","pathname":"/csapp/part3/ch12-concurrent-programming/12.7-other-concurrency-issues","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIe-kcvBbtTa5T85nbo","title":"12.8 小结","pathname":"/csapp/part3/ch12-concurrent-programming/12.8-summary","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MIe078Ia8fBYxL_9laC","title":"家庭作业","pathname":"/csapp/part3/ch12-concurrent-programming/homework","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"第三部分：程序间的交互和通信"},{"label":"第 12 章：并发编程"}]},{"id":"-MHtxEyzfvdzshBoIUiW","title":"附录 A：错误处理","pathname":"/csapp/appendix-error-handling","siteSpaceId":"sitesp_NqMuT","description":""},{"id":"-MHtxHwrD-1czm4VyZtS","title":"参考文献","pathname":"/csapp/references","siteSpaceId":"sitesp_NqMuT","description":""},{"id":"-MHzWTw_wDbUjBZ2jCfl","title":"实验总览","pathname":"/csapp/labs/labs-overview","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MJ8FO0rXZHe9MN5ZAco","title":"常见问题","pathname":"/csapp/labs/labs-overview/common-problems","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验总览"}]},{"id":"-MIi_DlJbg8ojIFd9jBN","title":"实验 1：Data Lab","pathname":"/csapp/labs/data-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIjVh3zfrK8omsLgJqh","title":"README（讲师版）","pathname":"/csapp/labs/data-lab/readme-instructor","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验 1：Data Lab"}]},{"id":"-MImnGD8uEjvOhNRGjnI","title":"README（学生版）","pathname":"/csapp/labs/data-lab/readme-student","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验 1：Data Lab"}]},{"id":"-MIogwvOp-XKnKUsA0vH","title":"Writeup","pathname":"/csapp/labs/data-lab/writeup","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验 1：Data Lab"}]},{"id":"-MIibIxPDkggLNoJE5qf","title":"实验 2：Bomb Lab","pathname":"/csapp/labs/bomb-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MJCH5cvnhFNIa6YVZLv","title":"README（讲师版）","pathname":"/csapp/labs/bomb-lab/readme-jiang-shi-ban","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验 2：Bomb Lab"}]},{"id":"-MJGCL07bCXaEOm1FG2H","title":"Writeup","pathname":"/csapp/labs/bomb-lab/writeup","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"},{"label":"实验 2：Bomb Lab"}]},{"id":"-MIiem6-3bA7jEUZ4Ki1","title":"实验 3：Attack Lab","pathname":"/csapp/labs/attack-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIinQG55oqlpXgSqJLJ","title":"实验 4：Architechture Lab","pathname":"/csapp/labs/arch-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIj36qtl5a7NQOOc-wk","title":"实验 5：Cache Lab","pathname":"/csapp/labs/cache-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIj5YejlX96OkNSz4a_","title":"实验 6：Performance Lab","pathname":"/csapp/labs/perf-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIj7I9j7fI8dhSrxW7t","title":"实验 7：Shell Lab","pathname":"/csapp/labs/shell-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIj8wxb4SoyJLkho3_p","title":"实验 8：Malloc Lab","pathname":"/csapp/labs/malloc-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]},{"id":"-MIj9hsGFloj6iIfxXE-","title":"实验 9：Proxy Lab","pathname":"/csapp/labs/proxy-lab","siteSpaceId":"sitesp_NqMuT","description":"","breadcrumbs":[{"label":"实验"}]}]}