浏览本商品所属分类:首页 > 计算机 > 操作系统 > 操作系统实例 > UNIX
《UNIX系统编程》
UNIX系统编程
作者:(美)Kay A.Robbins, Steve Robbins
译者:陈涓 赵振平
开本:
ISBN:711116190
出版社:机械工业出版社
出版日期:2005-05-01
装帧:
书夫曼编号:625072
原价: 78
普通会员:72.93  一星会员:70.74
二星会员:69.28  三星会员:67.82

内容简介

本书是UNIX系统编程的经典教材,并基于最新的UNIX标准进行了更新,其内容完全覆盖文件、信号、POSIX线程、UDP、Web和客户机-服务器等相关内容,并对通信、并发和多线程问题进行了透彻的研究,对复杂的概念进行了全面、完善以及明晰的解释,并以此而闻名。本书不仅提供了大量实例和练习,还专门设计了有针对性的项目,并给出了参考答案,帮助读者理解相关的概念,增强应用能力。本书适合作为高等院校计算机专业教材,也可供软件开发人员参考。        本书深入阐述了能使UNIX操作系统发挥出最大功效的软件设计方法,对UNIX编程的精髓进行了清晰易懂的介绍。两位作者具有多年教学与科研经验,匠心独运,精耕细做,以一些用来说明如何使用系统调用的短小代码段开始,巧妙地过渡到实际项目中,逐渐地拓展了读者的技术水平。本书对通信、并发和多线程问题进行了透彻的研究;对复杂的概念,比如信号和并发,进行了全面、明晰的解释,并以此闻名。本书的特色还在于它提供了大量实例、练习、可重用的代码以及用于网络通信程序的简化了的库。        本书同时也是一本基于最新的UNIX标准的完备的参考书,它完全地覆盖了与文件、信号、信号量、POSIX线程和客户机—服务器通信相关的内容。此外,本版书中新增的关于Web、UDP和服务器性能的章节也为本书增色不少。书中包含大量有趣的项目设计及其参考答案,例如命令解释程序、WWW重定向、因特网音频广播、服务器性能等,这些项目设计稍加完善就可以成为可用的程序,可供软件开发人员参考。        本书的Web站点http://usp.cs.utsa.edu/usp为读者提供了大量的资源,内容包括所有可下载的程序,这些程序可以免费使用。此外,这个站点中还包含到模拟器、测试工具、作者准备的课程资料以及勘误表的链接。

顾客评论
>>浏览该商品的全部评论 >>我要发表评论

目录

目      录  出版者的话                                      专家指导委员会                                      译者序                                      前言                                      第一部分    基础知识                                      第1章    技术对程序的冲击                1                                      1.1    变化中的术语                1                                      1.2    时间和速度                2                                      1.3    多道程序设计和分时                3                                      1.4    应用层的并发                5                                      1.4.1    中断                5                                      1.4.2    信号                5                                      1.4.3    输入和输出                6                                      1.4.4    进程.  线程和资源共享                6                                      1.4.5    共享内存的多个处理器                6                                      1.4.6    网络作为计算机                7                                      1.5    安全和容错                7                                      1.6    侵入带来的缓冲区溢出                8                                      1.6.1    缓冲区溢出的后果                9                                      1.6.2    缓冲区溢出与安全                10                                      1.7    UNIX标准                11                                      1.8    扩展阅读                12                                      第2章    程序.  进程和线程                14                                      2.1    程序怎样转换成进程                14                                      2.2    线程和执行线程                15                                      2.3    程序映像的布局                15                                      2.4    库函数调用                17                                      2.5    函数返回值和错误                20                                      2.6    参数数组                21                                      2.6.1    用makeargv创建参数数组                22                                      2.6.2    makeargv的实现                23                                      2.7    线程安全的函数                26                                      2.8    静态变量的使用                28                                      2.9    静态对象的结构                29                                      2.10    进程环境                34                                      2.11    进程终止                36                                      2.12    练习:一个env工具                38                                      2.13    练习:消息日志                39                                      2.14    扩展阅读                40                                      第3章    UNIX系统中的进程                41                                      3.1    进程标识                41                                      3.2    进程状态                42                                      3.3    UNIX进程的创建与fork调用                44                                      3.4    wait函数                49                                      3.5    exec函数                55                                      3.6    后台进程与守护进程                59                                      3.7    临界区                61                                      3.8    练习:进程链                61                                      3.9    练习:进程扇                62                                      3.10    扩展阅读                63                                      第4章    UNIX  I/O                64                                      4.1    设备术语                64                                      4.2    读和写                64                                      4.3    打开和关闭文件                72                                      4.4    select函数                76                                      4.5    poll函数                82                                      4.6    文件表示                84                                      4.6.1    文件描述符                85                                      4.6.2    文件指针和缓冲                87                                      4.6.3    文件描述符的继承                88                                      4.7    过滤器和重定向                92                                      4.8    文件控制                94                                      4.9    练习:原子日志                97                                      4.10    练习:cat工具                102                                      4.11    扩展阅读                103                                      第5章    文件和目录                104                                      5.1    UNIX文件系统导航                104                                      5.1.1    当前工作目录                105                                      5.1.2    搜索路径                108                                      5.2    目录访问                108                                      5.2.1    访问文件状态信息                110                                      5.2.2    确定文件的类型                113                                      5.3    UNIX文件系统的实现                113                                      5.3.1    UNIX文件的实现                114                                      5.3.2    目录的实现                116                                      5.4    硬链接和符号链接                116                                      5.4.1    创建或删除一个链接                117                                      5.4.2    创建和删除符号链接                120                                      5.5    练习:which命令                125                                      5.6    练习:通知程序                125                                      5.7    练习:news  biff程序                127                                      5.8    练习:遍历目录                128                                      5.9    扩展阅读                130                                      第6章    UNIX特殊文件                131                                      6.1    管道                131                                      6.2    流水线                134                                      6.3    FIFO                137                                      6.4    管道与客户机-服务器模型                140                                      6.5    终端控制                146                                      6.6    音频设备                154                                      6.7    练习:音频                158                                      6.8    练习:路障                160                                      6.9    练习:stty命令                161                                      6.10    练习:重温客户机-服务器                162                                      6.11    扩展阅读                162                                      第7章    项目:令牌环                163                                      7.1    环形拓扑                163                                      7.2    环的形成                164                                      7.3    环的研究                169                                      7.4    简单的通信                170                                      7.5    用令牌实现互斥                171                                      7.6    用投票实现互斥                172                                      7.7    匿名环中的领导者选举                173                                      7.8    通信中使用的令牌环                174                                      7.9    应用流水线技术的预处理器                176                                      7.10    并行环算法                177                                      7.10.1    图像过滤                178                                      7.10.2    矩阵乘法                179                                      7.11    弹性环                180                                      7.12    扩展阅读                181                                      第二部分    异步事件                                      第8章    信号                183                                      8.1    信号的基本概念                183                                      8.2    产生信号                184                                      8.3    对信号掩码和信号集进行操作                187                                      8.4    捕捉与忽略信号—sigaction                192                                      8.5    等待信号—pause.  sigsuspend和sigwait                197                                      8.5.1    pause函数                197                                      8.5.2    sigsuspend函数                198                                      8.5.3    sigwait函数                204                                      8.6    信号处理:错误和异步信号安全                205                                      8.7    用siglongjmp和sigsetjmp进行程序控制                207                                      8.8    用异步I/O编程                209                                      8.9    练习:转储统计                218                                      8.10    练习:同时操作慢速设备                218                                      8.11    扩展阅读                219                                      第9章    时间和定时器                220                                      9.1    POSIX时间                220                                      9.1.1    用从Epoch开始的秒数来表示时间                220                                      9.1.2    显示日期和时间                221                                      9.1.3    用struct  timeval来表示时间                223                                      9.1.4    使用实时时钟                225                                      9.1.5    实耗时间和处理器时间的对比                227                                      9.2    睡眠函数                230                                      9.3    POSIX:XSI间隔定时器                231                                      9.4    实时信号                235                                      9.5    POSIX:TMR间隔定时器                238                                      9.6    定时器漂移.  超限和绝对时间                242                                      9.7    扩展阅读                250                                      第10章    项目:虚拟定时器                251                                      10.1    项目概述                251                                      10.2    简单的定时器                253                                      10.3    对五个定时器中的一个进行设置                254                                      10.3.1    virtualtimers对象                254                                      10.3.2    hardwaretimer对象                256                                      10.3.3    主程序的实现                257                                      10.3.4    用show来置入定时器代码                257                                      10.4    使用多个定时器                262                                      10.4.1    设置多个定时器                263                                      10.4.2    用多个定时器进行测试                264                                      10.5    多定时器的健壮实现                266                                      10.6    POSIX:TMR  定时器的实现                268                                      10.7    mycron,  一个小型的任务调度工具                269                                      10.8    扩展阅读                269                                      第11章    项目:破解命令解释程序                270                                      11.1    建造一个简单的命令解释程序                270                                      11.2    重定向                274                                      11.3    流水线                275                                      11.4    前台的信号处理                278                                      11.5    进程组.  会话和控制终端                283                                      11.5.1    进程组                283                                      11.5.2    会话                284                                      11.6    ush中的后台进程                287                                      11.7    作业控制                293                                      11.8    ush的作业控制                295                                      11.8.1    一个作业列表对象                295                                      11.8.2    ush中的作业列表                296                                      11.8.3    ush中的作业控制                297                                      11.8.4    等待流水线时的进程行为                297                                      11.9    扩展阅读                298                                      第三部分    并            发                                      第12章    POSIX线程                299                                      12.1    监视多个文件描述符的方法                299                                      12.2    使用线程来监视多个文件描述符                300                                      12.3    线程管理                302                                      12.3.1    用ID引用线程                303                                      12.3.2    创建一个线程                304                                      12.3.3    分离和连接                305                                      12.3.4    退出和取消                306                                      12.3.5    向线程中传递参数并将值返回                309                                      12.4    线程安全                315                                      12.5    用户线程和内核线程                316                                      12.6    线程的属性                318                                      12.6.1    线程状态                319                                      12.6.2    线程栈                320                                      12.6.3    线程调度                321                                      12.7    练习:并行文件拷贝                324                                      12.8    扩展阅读                325                                      第13章    线程同步                326                                      13.1    POSIX同步函数                326                                      13.2    互斥锁                326                                      13.2.1    创建并初始化一个互斥量                327                                      13.2.2    销毁一个互斥量                328                                      13.2.3    对互斥量的锁定和解锁                329                                      13.2.4    保护不安全的库函数                330                                      13.2.5    对标志符和全局值的同步                331                                      13.2.6    使数据结构成为线程安全的                335                                      13.3    最多一次和至少一次的执行                336                                      13.4    条件变量                340                                      13.4.1    创建和销毁条件变量                341                                      13.4.2    等待并通知条件变量                342                                      13.5    信号处理与线程                345                                      13.5.1    将信号定向到一个特定的线程中去                346                                      13.5.2    为线程屏蔽信号                346                                      13.5.3    为信号处理指定专用线程                347                                      13.6    读者和写者                349                                      13.7    strerror_r的实现                353                                      13.8    死锁和其他比较麻烦的问题                354                                      13.9    练习:多个路障                355                                      13.10    扩展阅读                356                                      第14章    临界区和信号量                357                                      14.1    处理临界区                357                                      14.2    信号量                359                                      14.3    POSIX:SEM  无名信号量                361                                      14.4    POSIX:SEM信号量操作                363                                      14.5    POSIX:SEM命名信号量                368                                      14.5.1    创建并打开命名信号量                368                                      14.5.2    关闭并删除命名信号量                370                                      14.6    练习:许可证管理器                372                                      14.6.1    许可证对象                372                                      14.6.2    runsim主程序                373                                      14.6.3    对许可证管理器的扩展                373                                      14.7    扩展阅读                373                                      第15章    POSIX  IPC                374                                      15.1    POSIX:XSI进程间通信                374                                      15.1.1    标识并访问IPC对象                374                                      15.1.2    从命令解释程序中访问POSIX:XSI  IPC资源                375                                      15.2    POSIX:XSI信号量集                376                                      15.2.1    信号量集的创建                376                                      15.2.2    信号量集控制                378                                      15.2.3    POSIX信号量集操作                380                                      15.3    POSIX:XSI共享内存                384                                      15.3.1    访问一个共享的内存段                385                                      15.3.2    共享内存段的连接和分离                385                                      15.3.3    控制共享内存                386                                      15.3.4    共享内存实例                387                                      15.4    POSIX:XSI消息队列                392                                      15.5    练习:POSIX无名信号量                398                                      15.6    练习:POSIX命名信号量                398                                      15.7    练习:用共享内存实现管道                399                                      15.8    练习:用消息队列实现管道                401                                      15.9    扩展阅读                402                                      第16章    项目:生产者消费者同步                403                                      16.1    生产者-消费者问题                403                                      16.2    受互斥锁保护的有限缓冲区                404                                      16.3    使用信号量的缓冲区实现                406                                      16.4    一个简单的生产者-消费者问题                411                                      16.5    使用条件变量的有限缓冲区实现                414                                      16.6    带有完成条件的缓冲区                414                                      16.7    并行文件拷贝                421                                      16.7.1    执行并行文件拷贝的生产者                421                                      16.7.2    执行并行文件拷贝的消费者                422                                      16.7.3    执行并行文件拷贝的main程序                422                                      16.7.4    对并行文件拷贝的增强                422                                      16.8    线程化打印服务器                423                                      16.8.1    请求缓冲区                424                                      16.8.2    生产者线程                425                                      16.8.3    消费者线程                425                                      16.8.4    打印服务器                425                                      16.8.5    其他的增强功能                425                                      16.9    扩展阅读                426                                      第17章    项目:非完全并行虚拟机                427                                      17.1    PVM的历史.  术语和结构                427                                      17.2    非完全并行虚拟机                429                                      17.3    NTPVM项目概述                430                                      17.3.1    NEWTASK分组                432                                      17.3.2    DATA分组                432                                      17.3.3    DONE分组                433                                      17.4    调度程序的I/O和测试                433                                      17.4.1    用多个窗口进行测试                437                                      17.4.2    用远程日志进行测试                439                                      17.5    没有输入的单任务                440                                      17.6    串行的任务                440                                      17.6.1    输入线程                441                                      17.6.2    输出线程                442                                      17.7    并发的任务                442                                      17.8    分组通信.  广播和路障                443                                      17.9    终止和信号                444                                      17.10    有序的消息传递                444                                      17.11    扩展阅读                444                                      第四部分    通            信                                      第18章    面向连接的通信                445                                      18.1    客户机-服务器模型                445                                      18.2    通信信道                446                                      18.3    面向连接的服务器策略                448                                      18.4    通用因特网通信接口                450                                      18.4.1    错误处理                452                                      18.4.2    读和写                452                                      18.5    不同服务器策略的UICI实现                452                                      18.6    UICI客户机                455                                      18.7    UICI的套接字实现                459                                      18.7.1    socket函数                460                                      18.7.2    bind函数                460                                      18.7.3    listen函数                461                                      18.7.4    u_open的实现                462                                      18.7.5    accept函数                463                                      18.7.6    u_accept的实现                464                                      18.7.7    connect函数                465                                      18.7.8    u_connect的实现                466                                      18.8    主机名和IP地址                468                                      18.9    线程安全的UICI                475                                      18.10    练习:ping服务器                476                                      18.11    练习:音频的传输                478                                      18.12    扩展阅读                479                                      第19章    项目:WWW重定向                480                                      19.1    万维网                480                                      19.2    统一资源定位符                481                                      19.3    HTTP入门                482                                      19.3.1    客户请求                483                                      19.3.2    服务器响应                483                                      19.3.3    HTTP消息交换                484                                      19.4    Web通信模式                485                                      19.4.1    隧道                486                                      19.4.2    代理                487                                      19.4.3    高速缓存和透明性                488                                      19.4.4    网关                489                                      19.5    单连接的通过型监视器                490                                      19.6    隧道服务器的实现                492                                      19.7    用于测试的服务器驱动程序                493                                      19.8    HTTP首部的解析                494                                      19.9    简单的代理服务器                495                                      19.10    代理监视器                496                                      19.11    代理高速缓存                499                                      19.12    门户网关                499                                      19.13    用于负载平衡的网关                500                                      19.14    事后的调查分析                500                                      19.14.1    线程和时序错误                501                                      19.14.2    未捕捉到的错误和错误的退出                501                                      19.14.3    书写风格和表示方法                502                                      19.14.4    拙劣的测试及结果的表示                502                                      19.14.5    编程错误和不好的风格                503                                      19.15    扩展阅读                504                                      第20章    无连接通信和多播                505                                      20.1    无连接通信入门                505                                      20.2    无连接通信的简化接口                506                                      20.2.1    主机名和u_buf_t  结构                507                                      20.2.2    UICI  UDP  的各种返回错误值                508                    &nb