跪求 图书一本

iriscat 2002-10-12 07:59:20
跪求 < How Debuggers Work > 电子版或将原书借阅(我有数码相机)

ISBN 0471149667

Jonathan Rosenberg Wiley 1996

fsstudio@263.net

万分感谢!!!
...全文
42 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
码定乾坤 2002-10-12
不用这么客气吧!
  • 打赏
  • 举报
回复
iriscat 2002-10-12
up
  • 打赏
  • 举报
回复
iriscat 2002-10-12
我现在只在国家图书馆检索到了

清华大学,北京大学,北京航天航空大学,北京科技大学图书馆均没有……

超星图书更没戏了
  • 打赏
  • 举报
回复
ssjc 2002-10-12
去 超星图书 看看!!!
  • 打赏
  • 举报
回复
iriscat 2002-10-12
up
  • 打赏
  • 举报
回复
iriscat 2002-10-12
本人正在做一个 win32 ring3 调试器,

苦于没有资料,进度缓慢

qq 83478167
  • 打赏
  • 举报
回复
D_Q 2002-10-12
http://images-eu.amazon.com/images/P/0471149667.01.LZZZZZZZ.gif
  • 打赏
  • 举报
回复
iriscat 2002-10-12
<Linkers and Loaders > 也要……

关于本书请见:

http://www.amazon.com/exec/obidos/ASIN/0471149667/qid%3D1024938176/ref%3Dsr%5F11/102-7183704-6176168
  • 打赏
  • 举报
回复
michaelpeng7799 2002-10-12
这是什么书,竟然要跪求,一定不同凡响,up
  • 打赏
  • 举报
回复
相关推荐
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle性能诊断艺术(Oracle数据库优化的里程碑式著作) 基本信息 原书名: Troubleshooting Oracle Performance 原出版社: Apress 作者: (瑞)Christian Antognini 译者: 童家旺 胡怡文 冯大辉 丛书名: 图灵程序设计丛书 数据库 出版社:人民邮电出版社 ISBN:9787115215147 上架时间:2009-10-30 出版日期:2009 年10月 开本:16开 页码:451 版次:1-1 所属分类: 计算机 > 数据库 > Oracle 编辑推荐   Oracle数据库优化的里程碑式著作.    涵盖Oracle各版本..    源自实战的真知灼见... 内容简介   前端业务应用炙手可热之日,便是优化后端数据库性能之时。当此之际,身怀数据库优化的绝技,可以让你平步职场,傲视群英。.    本书是oracle数据库优化专家christian antognini的一部继往开来的里程碑式著作。书中的最佳实践和诸多建议全部来源于作者在实战一线的丰富积累。不仅简单实用,而且发人深省,堪称一座“宝库”,适合各层次读者研读和发掘。..    与其他同类图书不同,本书不仅涵盖了市面上常见的各种oracle版本,还指明了各个版本独有的性能优化特性。全书以崭新的视角开篇立论,围绕查明问题真相和搜寻有效方略,透彻讲解了查询优化器的配置,表访问、连接和物理表布局的优化,以及加速sql执行计划等重要主题,被读者誉为“最透彻,但又最通俗的性能优化好书”。值得拥有!... 作译者   Christian Antognini 瑞士苏黎世Trivadis公司首席顾问和讲师,从1995年就开始致力于探究Oracle数据库引擎的工作机制。他最热衷的是逻辑与物理数据库的设计、 数据库与Java应用程序的集成、查询优化器,以及与性能管理和优化相关的所有方面。他还是Trivadis性能团队和OakTable 网站的核心成员。.   童家旺 安徽芜湖人。毕业于上海电力学院工商管理专业,现供职于阿里巴巴,负责产品数据库的维护工作。主要关注Oracle数据库以及Unix(Linux)操作系统,尤其关注这些产品的设计思路、理念,不止于满足知其然,更想了解其所以然.空闲时喜读各种闲书,涉及经济、历史、政治、文学等...   胡怡文 江苏淮安人.现供职于支付宝(中国)网络技术有限公司,担任商业智能部门的数据仓库工程师.关注BI架构与设计、数据库和操作系统技术,常沉浸其中,偶有所得亦欣然自喜.平时好读书,爬山,骑车,四处走走.愿行万里路,交天下朋友.   冯大辉 就职于支付宝(中国)网络科技有限公司(Alipay.com),担任过DBA、数据架构师,现负责领导支付宝数据库团队.过去几年间,他的工作集中在数据库管理、优化、数据架构规划、解决方案等方面.2007年国内首批OraclecACE,网络ID“Fenng”,长期关注Webc2.0网站架构技术.个人技术Blog:http://dbanotes.net.... 目录 封面 -19 封底 -18 书名 -17 版权声明 -16 致中国读者 -15 译者序 -14 序 -12 致谢 -10 关于本书 -9 关于OakTable Network -7 目录 -4 第一部分 基  础 1 第1章 性能问题 2 1.1 需要为性能做规划吗 2 1.1.1 需求分析 2 1.1.2 分析和设计 4 1.1.3 编码和单元测试 4 1.1.4 集成和验收测试 5 1.2 什么是性能问题 5 1.2.1 系统监控 6 1.2.2 响应时间监控 6 1.2.3 强迫调优失调症 6 1.3 如何解决性能问题 7 1.3.1 业务角度与系统角度 7 1.3.2 把问题分类 8 1.3.3 解决问题 8 1.4 小结 9 第2章 关键概念 10 2.1 选择性和基数 10 2.2 游标的生命周期 11 2.3 解析的过程 13 2.3.1 共享游标 15 2.3.2 绑定变量 17 2.4 读写数据块 24 2.5 小结 25 第二部分 找出问题 27 第3章 找出性能问题 28 3.1 分而治之 28 3.2 分析路线图 29 3.3 性能测量与剖析分析 32 3.4 性能测量 32 3.4.1 应用程序代码 33 3.4.2 数据库调用 35 3.5 剖析应用程序代码 38 3.5.1 简明的性能剖析 38 3.5.2 细节化性能剖析 43 3.6 跟踪数据库调用 46 3.6.1 sql跟踪 46 3.6.2 跟踪文件的结构 58 3.6.3 使用trcsess 60 3.6.4 剖析工具 61 3.6.5 使用tkprof 62 3.6.6 使用tvd$xtat 71 3.7 剖析pl/sql代码 79 3.7.1 安装剖析工具 80 3.7.2 安装输出表 80 3.7.3 收集剖析数据 81 3.7.4 报告剖析数据 82 3.7.5 gui方式 83 3.8 小结 84 第三部分 查询优化器 85 第4章 系统和对象统计信息 86 4.1 工具包dbms_stats简介 86 4.2 系统统计 87 4.2.1 数据字典 88 4.2.2 非工作量统计信息 89 4.2.3 工作量统计信息 90 4.2.4 对查询优化器的影响 92 4.3 对象统计信息 94 4.3.1 有哪些对象统计信息可用 95 4.3.2 收集对象统计信息 108 4.3.3 锁定对象统计信息 123 4.3.4 比较对象统计信息 125 4.3.5 删除对象统计信息 127 4.3.6 保持统计信息时效性的策略 129 4.4 通用服务 130 4.4.1 统计信息历史 130 4.4.2 创建和删除备份表 131 4.4.3 导出、导入、获取和设置操作 132 4.4.4 日志 132 4.5 小结 133 第5章 配置查询优化器 134 5.1 配置还是不配置 134 5.2 配置路线图 135 5.3 设置正确的参数 136 5.3.1 查询优化器参数 137 5.3.2 pga管理 150 5.4 小结 153 第6章 执行计划 154 6.1 获取执行计划 154 6.1.1 sql语句explain plan 154 6.1.2 动态性能视图 157 6.1.3 awr和statspack 161 6.1.4 跟踪功能 163 6.1.5 dbms_xplan包 165 6.2 解释执行计划 175 6.2.1 父子关系 176 6.2.2 操作类型 177 6.2.3 单独型操作 177 6.2.4 非相关联合型操作 179 6.2.5 相关联合型操作 180 6.2.6 分而治之 186 6.2.7 特殊的例子 188 6.3 识别低效的执行计划 190 6.3.1 错误的评估 190 6.3.2 未识别约束 192 6.4 小结 193 第7章 sql优化技术 194 7.1 改变访问结构 195 7.1.1 运行机制 195 7.1.2 何时使用 196 7.1.3 缺陷和谬误 196 7.2 修改sql语句.. 196 7.2.1 运行机制 196 7.2.2 何时使用 198 7.2.3 缺陷和谬误 198 7.3 提示 198 7.3.1 运行机制 198 7.3.2 何时使用 204 7.3.3 缺陷和谬误 204 7.4 改变执行环境 205 7.4.1 工作机制 206 7.4.2 何时使用 208 7.4.3 缺陷和谬误 208 7.5 sql概要 208 7.5.1 工作机制 209 7.5.2 何时使用 219 7.5.3 缺陷和谬误 219 7.6 存储提纲 220 7.6.1 工作机制 221 7.6.2 何时使用 227 7.6.3 缺陷和谬误 227 7.7 sql计划基线 229 7.7.1 工作机制 229 7.7.2 何时使用 240 7.7.3 缺陷和谬误 240 7.8 小结 241 第四部分 优化器 243 第8章 解析 244 8.1 识别解析问题 244 8.1.1 快速解析 245 8.1.2 长解析 248 8.2 解决解析问题 250 8.2.1 快速解析 251 8.2.2 长解析 256 8.3 应对解析问题 256 8.3.1 游标共享 257 8.3.2 服务器端语句缓存 258 8.4 使用应用编程接口 260 8.4.1 pl/sql 261 8.4.2 oci 264 8.4.3 jdbc 265 8.4.4 odp.net 266 8.5 小结 268 第9章 优化数据访问 269 9.1 找出不理想的访问路径 269 9.1.1 识别 269 9.1.2 陷阱 271 9.1.3 原因 273 9.1.4 解决办法 274 9.2 具有弱选择性的sql语句 277 9.2.1 全表扫描 277 9.2.2 全分区扫描 279 9.2.3 范围分区 279 9.2.4 哈希与列表分区 289 9.2.5 组合分区 289 9.2.6 设计考虑 291 9.2.7 全索引扫描 293 9.3 具有强选择性的sql语句 295 9.3.1 rowid访问 296 9.3.2 索引访问 297 9.3.3 单表哈希聚簇访问 324 9.4 小结 325 第10章 表连接优化 326 10.1 定义 326 10.1.1 连接树 326 10.1.2 连接的类型 329 10.1.3 限制条件与连接条件 332 10.2 嵌套循环连接 333 10.2.1 概念 333 10.2.2 两表连接 334 10.2.3 四表连接 335 10.2.4 块预取 336 10.2.5 其他可选的执行计划 337 10.3 合并连接 338 10.3.1 概念 338 10.3.2 两表连接 339 10.3.3 四表连接 341 10.3.4 工作区 342 10.4 哈希连接 346 10.4.1 概念 346 10.4.2 两表连接 347 10.4.3 四表连接 348 10.4.4 工作区 350 10.4.5 索引连接 350 10.5 外连接 350 10.6 选择连接方法 351 10.6.1 first_rows优化目标 352 10.6.2 all_rows优化目标 352 10.6.3 支持的连接方法 352 10.6.4 并行连接 352 10.7 分区智能连接 353 10.7.1 完全分区智能连接 353 10.7.2 部分智能分区连接 355 10.8 转换 357 10.8.1 连接去除 357 10.8.2 外连接转换为内连接 358 10.8.3 子查询非嵌套化 359 10.8.4 星形转换 360 10.9 小结 365 第11章 高级优化技术 366 11.1 物化视图 366 11.1.1 运行机制 366 11.1.2 何时使用 384 11.1.3 缺陷与谬误 385 11.2 结果缓存 385 11.2.1 运行机制 386 11.2.2 何时使用 391 11.2.3 缺陷与谬误 391 11.3 并行处理 392 11.3.1 运行机制 392 11.3.2 何时使用 408 11.3.3 缺陷与谬误 408 11.4 直接路径插入 412 11.4.1 运行机制 412 11.4.2 何时使用 414 11.4.3 缺陷与谬误 414 11.5 行预取 415 11.5.1 运行机制 415 11.5.2 何时使用 419 11.5.3 缺陷与谬误 419 11.6 数组接口 419 11.6.1 运行机制 419 11.6.2 何时使用 422 11.6.3 缺陷与谬误 422 11.7 小结 422 第12章 优化物理设计 424 12.1 最佳字段顺序 424 12.2 最优数据类型 426 12.2.1 数据类型选择方面的陷阱 426 12.2.2 选择数据类型的最佳实践 429 12.3 行迁移与行链接 430 12.3.1 迁移与链接 431 12.3.2 问题描述 433 12.3.3 找出问题 433 12.3.4 解决方案 433 12.4 数据块争用 434 12.4.1 问题描述 434 12.4.2 找出问题 435 12.4.3 解决方案 437 12.5 数据压缩 440 第五部分 附  录 443 附录A 可下载文件 444 译者序   还是在2008年7月的时候,一次在线闲聊中,我和阿里巴巴B2B的童家旺谈及写本数据库方面的技术图书的想法。我曾与他在一个DBA团队共事,深知他的技术功力。不过相对于图书创作来说,他更倾向于翻译一本质量过硬的作品。家旺慧眼识珠,在饶有兴趣地阅读了Troubleshooting Oracle Performance的部分样章之后,终于按耐不住内心的冲动,决定要把这本书翻译出来。我们很快联系到了人民邮电出版社图灵公司并达成意向。这本书原作厚达600多页,一人翻译在时间上肯定有些吃紧,加上我也很认可这本书,所以也加入到了翻译团队。考虑到各自工作也比较繁重,所以我又拉来在支付宝数据仓库团队的同事胡怡文,一起来翻译。翻译图书是件吃力不讨好的活,时间紧、任务急、酬劳低,质量不过关还会遭受读者质疑,唯愿我们此次翻译能够换来读者的好评。能够看到此书中文版面市,我们这些译者倍感荣幸。.   关于Oracle优化的书在图书市场上并不少见,但有些图书内容陈旧,或是主要提供一些脚本风格的案例展示,系统化且有深度的优化图书并不多。这本Troubleshooting Oracle Performance(TOP)是从2008年到现在国外Oracle相关书籍中最值得关注的一部大作。   本书第1、3、4、9章由冯大辉翻译。感谢张磊(BlogKid)对第1章初稿所做的辛苦工作;感谢美国Amazon架构师朱一对第4章初稿所做的辛苦工作。第2、10、11、12章由童家旺翻译。感谢阿里巴巴同事郑勇斌对第12章校稿所做的工作。第5、6、7、8章以及附录A由胡怡文翻译。全书校稿以及前言部分的翻译由童家旺、胡怡文、冯大辉共同协作完成。读者在阅读本书的过程中如果遇到问题或者有意见建议,请发送邮件到这个Google群组:troubleshooting-oracle-performance@googlegroups.com。另外请关注http://dbanotes.net/top,我们将在这里第一时间发布勘误信息。..   感谢人民邮电出版社图灵公司的编辑傅志红以及其他未曾谋面的编辑的倾力协作。感谢刘江总编给予的大力支持。   ——冯大辉   2009年8月   感谢阿里巴巴B2B DBA团队给予的支持与协助。感谢妻子苏红以及母亲在这段时间对孩子的照顾,使得我可以腾出时间专心翻译这本书。另外要特别感谢郑勇斌帮助我审查我翻译的部分章节,并提出很多翻译意见。   ——童家旺   感谢所有支付宝数据仓库同事给予的支持与帮助。感谢父母的关心,也祝他们健康。感谢冯大辉、樊亚飞一直以来对我的帮助和解惑,感谢女友张茜的照顾和亲手做的美味食物。感谢所有朋友、同学和亲人在此期间给我的鼓励和宝贵意见。   ——胡怡文   感谢在支付宝的架构师团队的同事以及支付宝各位领导的支持。感谢妻子姚湘怡的照顾。感谢广大热心网友在我的个人网站(dbanotes.net)上针对译稿初稿提出的建议与宝贵意见。感谢朱一、张磊两位朋友的大力协助。...   ——冯大辉 序言   与过去的10年相比,现在在书店买到的Oracle性能方面的图书,其内容和质量上有了极大提升。我认为这对大家充分挖掘Oracle的性能无疑是最好的事情。.   我们以前能买到的关于Oracle性能的图书都千篇一律。那些书暗示 Oracle系统必然承载过多的I/O(实际上不一定)或是内存不足(这和他们描述的I/O过多其实是一回事,但却不是事实)。那些书向你展示可能运行的数不清的SQL脚本,告诉你要优化SQL,并且扬言这样就能搞定一切。   真是不堪回首的漫漫长夜啊!   Chris的这本书是给我们带来光明的一本书。光明与黑暗的界线,在于能否体现出一个简单的概念,这个概念是你从10岁开始数学老师就让你反复练习的——展现你的思路(show your work)。   我的意思不是指上台说故事,就像有些人说他们在数百个客户的站点提升了若干倍性能,并自诩为专家那样。我是说,展现你的思路,这意味着记录一个起点度量,构建可控的实验,然后记录下一个度量,并坦诚地公布结果,让读者能够完全理解,如果他们愿意甚至可以重现你的测试。   这是个了不起的事情。当作者开始这样做的时候,Oracle读者已比从前更加明智。从2000年开始, Oracle社区的人数已经有很大增长,他们能提出具有深度的性能问题并需要有价值的答案。过去人们相信过的那些错误观念很快就被一一摒弃了。   在本书中,Chris遵循切实可行的模式,讲述了有用的信息。但是,他并不止于此。他展示给读者他是如何探索得知的,也就是说,他告诉你如何找到自己需要的东西。他在本书中展现了他的思路。   这带来了两个益处。首先,展示他的思路有助于读者加深理解他阐述的内容,这使得他的经验对你来说容易记忆并应用。其次,通过理解他的例子,你不仅能够掌握Chris阐述的内容,还能够举一反三,回答Chris没有讲到的其他好问题,比如在这本书付梓之后下一个版本的Oracle将会有什么特性这样的问题。   此书对我来说是一本技术与理念并重的参考书,不仅包含了大量完备的可重用的实例,而且包含了一些富有说服力的新观点,让我能分享Chris的观点与激情。我可以用他的观点去说服更多的人做正确的事。   Chris睿智而精力充沛,他站在诸多精英的肩膀上,吸取了Dave Ensor、Lex de Haan、Anjo Kolk、Steven Adams、Jonathan Lewis、Tom Kyte等许多人的智慧,他们为这个领域带来了严谨之风,在我眼中他们都是英雄。现在,我们可以站在Chris 的肩膀上了。   Cary Millsap   Cary Millsap是Method R公司的CEO。Method R是一家致力于提升软件性能的公司。..   Cary Millsap与Jeff Holt在2003年合著了Optimizing Oracle Performance,   这本书使得Cary与Jeff勇夺《Oracle杂志》2004年最佳作者奖。   可以通过http://method-r.com或http://carymillsap.blogspot.com联系Cary。   大约在20年前我开始使用Oracle关系数据库,摸索了大约3年时间我发现问题排查和优化真的是神秘莫测啊。   有一个开发者的查询语句跑得不是很好,因此把它发送给DBA组。我在检查了执行计划、数据样本后,告诉他可以对其中一个表添加一个索引,而使大多数开销消于无形。开发者的反应却是:“这是个小表,不需要索引。”(这种事情发生在使用Oracle RDBMS 6.0.36版本的那个时代,顺便提一下,那时候“短”表意味着不超过四个数据块长。)不管怎样,我还是创建了索引,查询快了30倍——接下来的解释环节当然必不可少了。   性能排查并不需要魔法、魔术或是神话,而是依赖于理解、观察与解释。理查德?费曼曾说过,“理论再完美也没用,也和你多聪明无关。如果理论与实验不符,就是错的。”关于 Oracle 性能有太多的“理论”是错的,早就应该从你的大脑中清除出去了,Christian Antognini 就是帮你做这个事情的人。   在本书的开始,Christian Antognini描述了事物运行机制,该观察什么类型的症状,这些症状代表了什么含义。尤其是,他还鼓励你在观察与分析的时候要有条理并依据相关的细节。只要采纳了这些建议,一旦出现性能问题,你应该能够找出真正的问题,并用最合适的方式解决它。   虽然这本书的每一页都值得仔细阅读,但我还是认为读者会以不同的方式从中受益。有些读者可能通过不时翻阅而获取某些特别的洞察力。比如我多年来一直试图理解等高直方图这样的命名原因,我读到第4章的时侯,Christian的描述让我豁然开朗。 .  有些读者依据某些特性的简短描述,就能理解Oracle实现该特性的缘由,并联系例子理解自己的应用场景。第5章中的“安全视图融合(Secure View Merging)”对我而言就是一例。   还有读者可能会反复阅读某一章节,以便透彻理解他们正在使用的一些特别重要的特性。我相信第9章关于分区的深入讨论会让很多人手不释卷,读而再读。...   这本书很有料,很值得阅读。谢谢你,Christian。   Jonathan Lewis   Jonathan Lewis著有Cost-Based Oracle: Fundamentals,   同样由Apress出版社出版。从他的Blog   http://jonathanlewis.wordpress.com   上能找到更多的实际案例。 媒体评论   本书对我来说是一本技术与理念并重的参考书,不仅包含了大量完备的可重用的实例,而且包含了一些富有说服力的新观点。我可以用他的观点去说服更多的人做正确的事。.   ——Cary Millsap,Oracle公司系统性能集团前副总裁,数据库性能技术大师   关于Oracle性能有太多的“理论”是错的,早就应该从你的大脑中清除出了,Christian Antognini就是帮你做这个事情的人。...   ——Jonathan Lewis,英国Oracle用户组织总监,Oracle数据库技术大师   
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《UNIX网络编程.卷2,进程间通信(第2版)(中文版)》的随书源代码 UNIX网络编程.卷2,进程间通信(第2版)(中文版)(已故著名技术作家Stevens的传世之作) 基本信息 原书名: UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) 原出版社: Prentice Hall 作者: (美)W. Richard Stevens 丛书名: 图灵程序设计丛书 操作系统 出版社:人民邮电出版社 ISBN:9787115230287 上架时间:2010-7-9 出版日期:2010 年7月 开本:16开 页码:454 版次:2-1 所属分类:计算机 > 操作系统 > UNIX 计算机 > 软件与程序设计 > 网络编程 > 综合 内容简介   两卷本的《unix网络编程》是已故著名技术作家w. richard stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(ipc)机制是提高unix程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(rpc)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代码可以从图灵网站本书网页免费注册下载。    本书是网络研究和开发人员公认的权威参考书,深入理解本书内容,方能设计出良好的unix软件。 作译者   W. Richard Stevens 国际知名的UNIX和网络专家,备受赞誉的技术作家。他1951年2月5日出生于赞比亚,后随父母回到美国。中学时就读于弗吉尼亚菲什伯恩军事学校,1973年获得密歇根大学航空和航天工程学士学位。1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练。这期间他分别在1978年和1982年获得亚利桑那大学系统工程硕士和博士学位。此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁。1990年他回到图森,从事专业技术写作和咨询工作.写下了多种经典的传世之作,包括《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷).Stevens于1999年9月1日去世,年仅48岁.2000年他被国际权威机构USENIX追授“终身成就奖”. 目录 封面 -12 封底 -11 扉页 -10 版权 -9 版权声明 -8 前言 -7 目录 -3 第一部分 简介 1 第1章 简介 2 1.1 概述 2 1.2 进程、线程与信息共享 3 1.3 IPC对象的持续性 4 1.4 名字空间 5 1.5 fork、exec和exit对IPC对象的影响 7 1.6 出错处理:包裹函数 8 1.7 Unix标准 9 1.8 书中IPC例子索引表 11 1.9 小结 13 习题 13 第2章 Posix IPC 14 2.1 概述 14 2.2 IPC名字 14 2.3 创建与打开IPC通道 16 2.4 IPC权限 18 2.5 小结 19 习题 19 第3章 System V IPC 20 3.1 概述 20 3.2 key_t键和ftok函数 20 3.3 ipc_perm结构 22 3.4 创建与打开IPC通道 22 3.5 IPC权限 24 3.6 标识符重用 25 3.7 ipcs和ipcrm程序 27 3.8 内核限制 27 3.9 小结 28 习题 29 第二部分 消息传递 31 第4章 管道和FIFO 32 4.1 概述 32 4.2 一个简单的客户-服务器例子 32 4.3 管道 32 4.4 全双工管道 37 4.5 popen和pclose函数 39 4.6 FIFO 40 4.7 管道和FIFO的额外属性 44 4.8 单个服务器,多个客户 46 4.9 对比迭代服务器与并发服务器 50 4.10 字节流与消息 51 4.11 管道和FIFO限制 55 4.12 小结 56 习题 57 第5章 Posix消息队列 58 5.1 概述 58 5.2 mq_open、mq_close和mq_unlink函数 59 5.3 mq_getattr和mq_setattr函数 61 5.4 mq_send和mq_
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 UNIX网络编程.卷2,进程间通信(第2版)(中文版)(已故著名技术作家Stevens的传世之作) 基本信息 原书名: UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) 原出版社: Prentice Hall 作者: (美)W. Richard Stevens 丛书名: 图灵程序设计丛书 操作系统 出版社:人民邮电出版社 ISBN:9787115230287 上架时间:2010-7-9 出版日期:2010 年7月 开本:16开 页码:454 版次:2-1 所属分类:计算机 > 操作系统 > UNIX 计算机 > 软件与程序设计 > 网络编程 > 综合 内容简介   两卷本的《unix网络编程》是已故著名技术作家w. richard stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(ipc)机制是提 高unix程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(rpc)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代 码可以从图灵网站本书网页免费注册下载。    本书是网络研究和开发人员公认的权威参考书,深入理解本书内容,方能设计出良好的unix软件。 作译者   W. Richard Stevens 国际知名的UNIX和网络专家,备受赞誉的技术作家。他1951年2月5日出生于赞比亚,后随父母回到美国。中学时就读于弗吉尼亚菲什伯恩军事学校,1973年获得密歇 根大学航空和航天工程学士学位。1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练。这期间他分别在1978年和 1982年获得亚利桑那大学系统工程硕士和博士学位。此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁。1990年他回到图森,从事专业技术写作和咨询工作.写下了多 种经典的传世之作,包括《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷).Stevens于1999年9月1日去世,年仅48岁.2000年他被国际权威机构USENIX追授“终身成 就奖”. 目录 封面 -12 封底 -11 扉页 -10 版权 -9 版权声明 -8 前言 -7 目录 -3 第一部分 简介 1 第1章 简介 2 1.1 概述 2 1.2 进程、线程与信息共享 3 1.3 IPC对象的持续性 4 1.4 名字空间 5 1.5 fork、exec和exit对IPC对象的影响 7 1.6 出错处理:包裹函数 8 1.7 Unix标准 9 1.8 书中IPC例子索引表 11 1.9 小结 13 习题 13 第2章 Posix IPC 14 2.1 概述 14 2.2 IPC名字 14 2.3 创建与打开IPC通道 16 2.4 IPC权限 18 2.5 小结 19 习题 19 第3章 System V IPC 20 3.1 概述 20 3.2 key_t键和ftok函数 20 3.3 ipc_perm结构 22 3.4 创建与打开IPC通道 22 3.5 IPC权限 24 3.6 标识符重用 25 3.7 ipcs和ipcrm程序 27 3.8 内核限制 27 3.9 小结 28 习题 29 第二部分 消息传递 31 第4章 管道和FIFO 32 4.1 概述 32 4.2 一个简单的客户-服务器例子 32 4.3 管道 32 4.4 全双工管道 37 4.5 popen和pclose函数 39 4.6 FIFO 40 4.7 管道和FIFO的额外属性 44 4.8 单个服务器,多个客户 46 4.9 对比迭代服务器与并发服务器 50 4.10 字节流与消息 51 4.11 管道和FIFO限制 55 4.12 小结 56 习题 57 第5章 Posix消息队列 58 5.1 概述 58 5.2 mq_open、mq_close和mq_unlink函数 59 5.3 mq_getattr和mq_setattr函数 61 5.4 mq_send和mq_receive函数 64 5.5 消息队列限制 67 5.6 mq_notify函数 68 5.7 Posix实时信号 78 5.8 使用内存映射I/O实现Posix消息队列 85 5.9 小结 101 习题 101 第6章 System V消息队列 103 6.1 概述 103 6.2 msgget函数 104 6.3 msgsnd函数 104 6.4 msgrcv函数 105 6.5 msgctl函数 106 6.6 简单的程序 107 6.7 客户-服务器例子 112 6.8 复用消息 113 6.9 消息队列上使用select和poll 121 6.10 消息队列限制 122 6.11 小结 124 习题 124 第三部分 同步 125 第7章 互斥锁和条件变量 126 7.1 概述 126 7.2 互斥锁:上锁与解锁 126 7.3 生产者-消费者问题 127 7.4 对比上锁与等待 131 7.5 条件变量:等待与信号发送 132 7.6 条件变量:定时等待和广播 136 7.7 互斥锁和条件变量的属性 136 7.8 小结 139 习题 139 第8章 读写锁 140 8.1 概述 140 8.2 获取与释放读写锁 140 8.3 读写锁属性 141 8.4 使用互斥锁和条件变量实现读写锁 142 8.5 线程取消 148 8.6 小结 153 习题 153 第9章 记录上锁 154 9.1 概述 154 9.2 对比记录上锁与文件上锁 157 9.3 Posix fcntl记录上锁 158 9.4 劝告性上锁 162 9.5 强制性上锁 164 9.6 读出者和写入者的优先级 166 9.7 启动一个守护进程的唯一副本 170 9.8 文件作锁用 171 9.9 NFS上锁 173 9.10 小结 173 习题 174 第10章 Posix信号量 175 10.1 概述 175 10.2 sem_open、sem_close和sem_unlink函数 179 10.3 sem_wait和sem_trywait函数 180 10.4 sem_post和sem_getvalue函数 180 10.5 简单的程序 181 10.6 生产者-消费者问题 186 10.7 文件上锁 190 10.8 sem_init和sem_destroy函数 191 10.9 多个生产者,单个消费者 193 10.10 多个生产者,多个消费者 196 10.11 多个缓冲区 199 10.12 进程间共享信号量 205 10.13 信号量限制 206 10.14 使用FIFO实现信号量 206 10.15 使用内存映射I/O实现信号量 210 10.16 使用System V信号量实现Posix信号量 218 10.17 小结 224 习题 225 第11章 System V信号量 226 11.1 概述 226 11.2 semget函数 227 11.3 semop函数 229 11.4 semctl函数 231 11.5 简单的程序 232 11.6 文件上锁 237 11.7 信号量限制 238 11.8 小结 242 习题 242 第四部分 共享内存区 243 第12章 共享内存区介绍 244 12.1 概述 244 12.2 mmap、munmap和msync函数 247 12.3 在内存映射文件中给计数器持续加1 250 12.4 4.4BSD匿名内存映射 254 12.5 SVR4/dev/zero内存映射 255 12.6 访问内存映射的对象 255 12.7 小结 259 习题 260 第13章 Posix共享内存区 261 13.1 概述 261 13.2 shm_open和shm_unlink函数 261 13.3 ftruncate和fstat函数 262 13.4 简单的程序 263 13.5 给一个共享的计数器持续加1 267 13.6 向一个服务器发送消息 270 13.7 小结 275 习题 275 第14章 System V共享内存区 276 14.1 概述 276 14.2 shmget函数 276 14.3 shmat函数 277 14.4 shmdt函数 277 14.5 shmctl函数 277 14.6 简单的程序 278 14.7 共享内存区限制 281 14.8 小结 282 习题 283 第五部分 远程过程调用 285 第15章 门 286 15.1 概述 286 15.2 door_call函数 291 15.3 door_create函数 292 15.4 door_return函数 293 15.5 door_cred函数 294 15.6 door_info函数 294 15.7 例子 295 15.8 描述符传递 306 15.9 door_sever_create函数 310 15.10 door_bind、door_unbind和door_revoke函数 315 15.11 客户或服务器的过早终止 315 15.12 小结 321 习题 322 第16章 Sun RPC 323 16.1 概述 323 16.2 多线程化 330 16.3 服务器捆绑 333 16.4 认证 336 16.5 超时和重传 338 16.6 调用语义 342 16.7 客户或服务器的过早终止 343 16.8 XDR:外部数据表示 345 16.9 RPC分组格式 361 16.10 小结 365 习题 366 后记 368 附录A 性能测量 371 附录B 线程入门 406 附录C 杂凑的源代码 409 附录D 精选习题解答 417 参考文献 433 索引 435 前言   概述   大多数重要的程序都涉及进程间通信(Interprocess Communication, IPC)。这是受下述设计原则影响的自然结果:把应用程序设计为一组相互通信的小片断比将其设计为单个庞大的程 序更好。从历史角度看,应用程序有如下几种构建方法。   (1) 用一个庞大的程序完成全部工作。程序的各部分可以实现为函数,函数之间通过参数、返回值和全局变量来交换信息。   (2) 使用多个程序,程序之间用某种形式的IPC进行通信。许多标准的Unix工具都是按这种风格设计的,它们使用shell管道(IPC的一种形式)在程序之间传递信息。   (3) 使用一个包含多个线程的程序,线程之间使用某种IPC。这里仍然使用术语IPC,尽管通信是在线程之间而不是在进程之间进行的。   还可以把后两种设计形式结合起来:用多个进程来实现,其中每个进程包含几个线程。在这种情况下,进程内部的线程之间可以通信,不同的进程之间也可以通信。   上面讲述了可以把完成给定任务所需的工作分到多个进程中,或许还可以进一步分到进程内的多个线程中。在包含多个处理器(CPU)的系统中,多个进程也许可以(在不同的CPU上)同 时运行,或许给定进程内的多个线程也能同时运行。因此,把任务分到多个进程或线程中有望减少完成指定任务的时间。   本书详细描述了以下4种不同的IPC形式:   (1) 消息传递(管道、FIFO和消息队列);   (2) 同步(互斥量、条件变量、读写锁、文件和记录锁、信号量);   (3) 共享内存(匿名的和具名的);   (4) 远程过程调用(Solaris门和Sun RPC)。   本书不讨论如何编写通过计算机网络通信的程序。这种通信通常涉及使用TCP/IP协议族的套接字API,相关主题在第1卷[Stevens 1998]中有详细讨论。   有人可能会提出质疑:不应该使用单主机或非网络IPC(本卷的主题),所有程序都应该在网络上的多台主机上同时运行。但在日常实践中,单主机IPC往往比网络通信快得多,而且有时 还简单些。共享内存、同步等方法通常也只能用于单主机,跨网络时可能无法使用。经验和历史表明,非网络IPC(本卷)与跨网络IPC(第1卷)都是需要的。   本卷建立在第1卷和我写的另外4本书的基础上,这5本书在本书中简记如下:   UNPv1:UNIX Network Programming, Volume 1 [Stevens 1998];   APUE:Advanced Programming in the UNIX Environment [Stevens 1992];   TCPv1:TCP/IP Illustrated, Volume 1 [Stevens 1994];   TCPv2:TCP/IP Illustrated, Volume 2 [Wright and Stevens 1995];   TCPv3:TCP/IP Illustrated, Volume 3 [Stevens 1996]。 .  在一本以“网络编程”为书名一部分的书中讨论IPC看似有点奇怪,但事实上IPC经常用于网络应用程序。我在《UNIX网络编程》1990年版的前言里就指出:“想知道如何为网络开发软件 ,必须先理解进程间通信(IPC)。”   与第1版的区别   本书完全重写并扩充了1990年版《UNIX网络编程》的第3章和第18章。字数统计表明,现在的内容是第1版的5倍。新版的主要改动归纳如下。   不仅讨论了“System V IPC”的三种形式(消息队列、信号量以及共享内存),还对实现了这些IPC的新的Posix函数进行了介绍。(1.7节将详细介绍Posix标准族。)我认为使用Posix IPC函数是大势所趋,因为它们比System V中的相应部分更具优势。   讨论了用于同步的Posix函数:互斥锁、条件变量以及读写锁。它们可用于线程或进程的同步,而且往往在访问共享内存时使用。   本卷假定使用Posix线程环境(称为“Pthreads”),许多示例都是用多线程而不是多进程构建的。   对管道、FIFO和记录锁的讨论侧重于从它们的Posix定义出发。   本卷不仅描述了IPC机制及其使用方法,还实现了Posix消息队列、读写锁与Posix信号量(都可以实现为用户库)。这些实现可以把多种不同的特性捆绑起来(例如,Posix信号量的一种 实现用到了互斥量、条件变量和内存映射I/O),还强调了我们在应用程序中经常要处理的一些问题(如竞争状态、错误处理、内存泄漏和变长参数列表)。理解某种特性的实现通常有助于了 解如何使用该特性。   对RPC的讨论侧重于Sun的RPC包。在此之前讲述了新的Solaris门API,它类似于RPC但用于单主机。这么一来我们就介绍了许多在调用其他进程中的过程时需要考虑的特性,而不用关心网 络方面的细节。   读者对象   本书既可以用作IPC的教程,也可以用作有经验的程序员的参考书。全书划分为以下4个主要部分:   消息传递;   同步;   共享内存;   远程过程调用。   但许多读者可能只对特定的部分感兴趣。第2章总结了所有Posix IPC函数共有的特性,第3章归纳了所有System V IPC函数共有的特性,第12章介绍了Posix和System V的共享内存,但书 中多数章节都可以独立于其他章节阅读。所有读者都应该阅读第1章,尤其是1.6节,该节介绍了一些贯穿全书的包装函数。讨论Posix IPC的各章与讨论System V IPC的各章彼此独立,有关管 道、FIFO和记录锁的几章不属于上述两个阵营,关于RPC的两章也独立于其他IPC方法。   为了方便读者把本书作为参考书,本书提供了完整的全文索引,并在最后几页总结了每个函数和结构的详细描述在正文中的哪里可以找到。为了给不按顺序阅读本书的读者提供方便,我 们在书中为各个主题提供了大量的交叉引用。   源代码与勘误   书中所有示例的源代码可以从作者主页(列在前言的最后)获得 。学习本书讲述的IPC技术的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有 关概念和方法。每章末尾提供了大量的习题,大部分在附录D中给出答案。   本书的最新勘误表也可以从作者主页获取。   致谢   尽管封面上只出现了作者一个人的名字,但一本高质量的书的出版需要许多人的共同努力。首先要感谢我的家人,他们在我写书的那段时间里承担了一切。再次感谢你们:Sally、Bill、 Ellen和David。   感谢技术审稿人给出的宝贵的反馈意见(打印出来有135页)。他们发现了许多错误,指出了需要更多解释的地方,并对表达、用词和代码提出了许多修改建议,他们是Gavin Bowe、 Allen Briggs、Dave Butenhof、Wan-Teh Chang、Chris Cleeland、Bob Friesenhahn、Andrew Gierth、Scott Johnson、Marty Leisner、Larry McVoy、Craig Metz、Bob Nelson、Steve Rago、Jim Reid、Swamy K. Sitarama、Jon C. Snader、Ian Lance Taylor、Rich Teer和Andy Tucker。   下列诸位通过电子邮件回答过我的问题,有人甚至回答过很多问题。澄清这些问题提高了本书的准确性并改进了语言表达,他们是David Bausum、Dave Butenhof、Bill Gallmeister、 Mukesh Kacker、Brian Kernighan、Larry McVoy、Steve Rago、Keith Skowran、Bart Smaalders、Andy Tucker和John Wait。   特别感谢GSquared的Larry Rafsky提供了很多帮助。像以往一样,感谢国家光学天文台(NOAO)、Sidney Wolff、Richard Wolff和Steve Grandi,他们为我提供了网络与主机的访问权限 。DEC公司的Jim Bound、Matt Thomas、Mary Clouter和Barb Glover提供了用于本书多数示例的Alpha系统。书中的一部分代码是在其他Unix系统上测试的:感谢Red Hat软件公司的Michael Johnson提供了最新版本的Red Hat Linux,感谢IBM奥斯汀实验室的Dave Marquardt和Jessie Haug提供了RS/6000系统以及最新版本的AIX的访问权限。   最后还要感谢Prentice Hall的优秀员工(本书的编辑Mary Franz,还有Noreen Regina、Sophie Papanikolaou和Patti Guerrieri)给予的帮助,尤其是在很紧的时间内完成一切所付出 的努力。   版权说明   我制作了本书的最终电子版(PostScript格式),最后排版成现在的书。我用James Clark编写的优秀的groff包为本书排版,该软件包安装在一台运行Solaris 2.6的SparcStation工作站 上。(认为troff已经过时的报导显然太夸张了。)我使用vi编辑器键入了所有的138 897个单词,用gpic程序绘制了72幅插图(其中用到了许多由Gary Wright编写的宏),用gtbl程序生成了 35张表格,为全书添加了索引(用到了Jon Bentley与Brian Kernighan编写的一组awk脚本),并设计了最终的版式。我录入书中的8 046行C语言源代码,使用的是Dave Hanson的loom程序、 GNU的indent程序和Gary Wright写的一些脚本。   欢迎读者以电子邮件的方式反馈意见、提出建议或订正错误。   W. Richard Stevens   1998年7月于亚利桑那州图森市   http://www.kohala.com/~rstevens    媒体评论   “我做专业程序员已经二十余年了,每当要写新程序的时候,我都要参考这本书。Stevens的书是我进入VoIP和音频CODEC网络编程领域的敲门砖。”   ——C. T. Vanderdecken   “在我做过的项目中,已经记不清楚有多少次靠这套书挽狂澜于既倒……每位真正的UNIX系统程序员都应该买一套。”   ——David Sharpe   “对每位UNIX平台的程序员而言,这本书都是必备的。它深入阐释了UNIX平台上的各种IPC API。既涵盖System V也涉及POSIX标准,对于IPC的论述无可匹敌。书末的附录对各种管道、 FIFO、Posix消息队列、System V消息队列、门、Sun RPC的性能进行了比较,我从来没有看到任何书能如此广泛而深入地介绍这一主题。更何况,它出自权威人物之手。”   ——asingh   “Stevens是UNIX网络编程的‘神’,至少是我的‘神’。”   ——Matthew MacGibbon
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2002-10-12 07:59
社区公告
暂无公告