与Andrew S. Tanenbaum 的一次谈话
函授大专本科各学科课后习题及答案大全

3500份课后答案,很值得收藏,这里只介绍了一部分。
还有很多,可以去课后答案网(/bbs)查找。
##################【公共基础课-答案】####################新视野大学英语读写教程答案(全)【khdaw】/bbs/viewthread.php?tid=108&fromuid=837689概率论与数理统计教程(茆诗松著) 高等教育出版社课后答案/bbs/viewthread.php?tid=234&fromuid=837689高等数学(第五版)含上下册高等教育出版社课后答案/bbs/viewthread.php?tid=29&fromuid=837689新视野英语听力原文及答案课后答案【khdaw】/bbs/viewthread.php?tid=586&fromuid=837689线性代数(同济大学应用数学系著) 高等教育出版社课后答案/bbs/viewthread.php?tid=31&fromuid=83768921世纪大学英语第3册(1-4)答案【khdaw】/bbs/viewthread.php?tid=285&fromuid=837689概率与数理统计第二,三版(浙江大学盛骤谢式千潘承毅著) 高等教育出版社课后答案/bbs/viewthread.php?tid=32&fromuid=837689复变函数全解及导学[西安交大第四版]【khdaw】/bbs/viewthread.php?tid=142&fromuid=837689大学英语精读第三版2册课后习题答案/bbs/viewthread.php?tid=411&fromuid=837689线性代数(第二版)习题答案/bbs/viewthread.php?tid=97&fromuid=83768921世纪(第三册)课后答案及课文翻译(5-8)【khdaw】/bbs/viewthread.php?tid=365&fromuid=837689大学英语精读第2册课文翻译(上外)【khdaw】/bbs/viewthread.php?tid=598&fromuid=837689新视野英语视听说教程1-4答案【khdaw】/bbs/viewthread.php?tid=2639&fromuid=837689物理学教程(马文蔚)答案/bbs/viewthread.php?tid=1188&fromuid=837689毛邓三课后思考题答案(高教版)高等教育出版社【khdaw】/bbs/viewthread.php?tid=1263 &fromuid=837689##################【通信/电子/电气/自动化类--答案】####################电路第四版(邱关源著) 高等教育出版社课后答案/bbs/viewthread.php?tid=259&fromuid=837689电路第五版(邱关源罗先觉著) 高等教育出版社课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=4097&fromuid=837689数字电子技术基础第四版(阎石著) 高等教育出版社课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=215&fromuid=837689模拟电子技术基础(第三版华成英主编)习题答案/bbs/viewthread.php?tid=242&fromuid=837689通信原理第5版(樊昌信著) 国防工业出版社课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=34&fromuid=837689电磁场与电磁波西安电子科技大学(第二版)/bbs/viewthread.php?tid=588&fromuid=837689《信号与系统》第二版(郑君里)高等教育出版社课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=994&fromuid=837689电机学(张松林著) 机械工业出版社课后答案【khdaw】/bbs/viewthread.php?tid=356&fromuid=837689《数字信号处理》(第二版)西安电子科技大学(丁玉美)课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=882&fromuid=837689高频电子线路(曾兴雯著) 高等教育出版社课后答案【khdaw_lxywyl】/bbs/viewthread.php?tid=1110&fromuid=837689模拟电子技术基础简明教程第三版(杨素行著) 高等教育出版社课后答案/bbs/viewthread.php?tid=166&fromuid=837689##################【计算机/软件/网络/信息/数学类--答案】#################### C程序设计第三版(谭浩强著) 清华大学出版社课后答案/bbs/viewthread.php?tid=80&fromuid=837689C语言程序设计教程第三版(谭浩强张基温著) 高等教育出版社课后答案/bbs/viewthread.php?tid=79&fromuid=837689复变函数与积分变换第四版(张元林西安交大著) 高等教育出版社课后答案/bbs/viewthread.php?tid=612&fromuid=837689离散数学(第三版)(耿素云屈婉玲张立昂著) 清华大学出版社课后答案/bbs/viewthread.php?tid=293&fromuid=837689谭浩强C++程序设计习题答案/bbs/viewthread.php?tid=420&fromuid=837689《微机原理与接口技术》清华(冯博琴吴宁)版课后答案/bbs/viewthread.php?tid=707&fromuid=837689严蔚敏《数据结构(c语言版)习题集》答案/bbs/viewthread.php?tid=102&fromuid=837689数据库系统概论(王珊萨师煊著) 清华大学出版社课后答案/bbs/viewthread.php?tid=991&fromuid=837689《计算机网络第四版》答案【khdaw】/bbs/viewthread.php?tid=340&fromuid=837689《数学物理方法》(梁昆淼第二版)习题解答/bbs/viewthread.php?tid=334&fromuid=837689谢希仁版《计算机网络教程》课后答案/bbs/viewthread.php?tid=203&fromuid=837689清华大学《数据结构》习题+课后答案/bbs/viewthread.php?tid=249&fromuid=837689数据结构习题集(C版)答案/bbs/viewthread.php?tid=374&fromuid=837689刘绍学版《近世代数基础》课后习题答案/bbs/viewthread.php?tid=177&fromuid=837689计算机组成原理习题&答案唐朔飞高等教育出版社【khdaw】/bbs/viewthread.php?tid=984&fromuid=837689离散数学(左孝凌著) 上海科学技术文献出版社课后答案/bbs/viewthread.php?tid=466&fromuid=837689计算机网络(第4版)清华(Andrew S.Tanenbaum)版答案(中文版)/bbs/viewthread.php?tid=201&fromuid=837689耿国华数据结构课后答案/bbs/viewthread.php?tid=103&fromuid=837689计算机操作系统(汤子赢著) 西安电子科技大学课后答案/bbs/viewthread.php?tid=1083&fromuid=837689《编译原理》课后习题答案/bbs/viewthread.php?tid=175&fromuid=837689《常微分方程》王高雄高等教育出版社课后答案/bbs/viewthread.php?tid=567&fromuid=837689##################【物理/光学/声学/热学/力学类--答案】####################理论力学第六版(哈尔滨工业大学理论力学教研室著) 高等教育出版社课后答案/bbs/viewthread.php?tid=932&fromuid=837689理论力学第六版(哈尔滨工业大学理论力学教研室编著) 高等教育出版社【khdaw】/bbs/viewthread.php?tid=461&fromuid=837689《热力学统计物理》汪志诚(第三版)高教出版社(手抄版)习题答案【khdaw】/bbs/viewthread.php?tid=84&fromuid=837689原子物理学褚圣麟版课后答案【khdaw】/bbs/viewthread.php?tid=368&fromuid=837689《物理学教程》(马文蔚著) 高等教育出版社【khdaw】/bbs/viewthread.php?tid=2782&fromuid=837689《光学》姚启钧第三版高等教育出版社课后答案【khdaw】/bbs/viewthread.php?tid=178&fromuid=837689大学物理实验报告与部分范例陈金太厦门大学【khdaw】/bbs/viewthread.php?tid=2350&fromuid=837689梁昆淼数学物理方法第三版的课后答案/bbs/viewthread.php?tid=2600&fromuid=837689《理论力学教程》周衍柏高等教育出版社完整版课后答案【khdawlxywyl】/bbs/viewthread.php?tid=676&fromuid=837689固体物理(黄昆版) 课后习题答案【khdaw】/bbs/viewthread.php?tid=339&fromuid=837689哈工大《理论力学》第6版(赵诒枢尹长城沈勇著) 华中科技大学出版社课后答案/bbs/viewthread.php?tid=1033&fromuid=837689热力学统计物理汪志诚第三版高等教育出版课后答案【khdaw】/bbs/viewthread.php?tid=289&fromuid=837689《量子力学教程》周习勋课后习题答案【khdaw】/bbs/viewthread.php?tid=388&fromuid=837689《原子物理学》杨福家版部分答案高等教育出版社【khdaw】/bbs/viewthread.php?tid=1065&fromuid=837689热力学·统计物理汪志诚高等教育出版社课后答案【khdaw】/bbs/viewthread.php?tid=566&fromuid=837689《固体物理教程》王矜奉山东大学出版社课后答案【khdaw】/bbs/viewthread.php?tid=1645&fromuid=837689##################【化学/环境/生物/医学/制药类--答案】#################### 物理化学(董元彦著) 科学出版社课后答案/bbs/viewthread.php?tid=412&fromuid=837689化工原理(陈敏恒著) 化学工业出版社课后答案【khdaw】/bbs/viewthread.php?tid=704&fromuid=837689生物化学第三版(王镜岩朱圣庚著) 高等教育出版社课后答案/bbs/viewthread.php?tid=241&fromuid=837689遗传学第三版(朱军著) 农业大学出版社课后答案/bbs/viewthread.php?tid=39&fromuid=837689有机化学(汪小兰著) 高等教育出版社课后答案/bbs/viewthread.php?tid=841&fromuid=837689武汉大学版《无机化学》(第三版) 上册【khdaw】/bbs/viewthread.php?tid=196&fromuid=837689有机化学(徐寿昌著) 高教出版社课后答案/bbs/viewthread.php?tid=1752&fromuid=837689物理化学习题及答案【khdaw】/bbs/viewthread.php?tid=965&fromuid=837689有机化学第二版(胡宏纹著) 高等教育出版社课后答案/bbs/viewthread.php?tid=41&fromuid=837689分析化学第三版武汉大学课后答案/bbs/viewthread.php?tid=199&fromuid=837689武汉大学版<无机化学>(第三版) 下册【khdaw】/bbs/viewthread.php?tid=200&fromuid=837689物理化学第四版(傅献彩著) 高等教育出版社课后答案/bbs/viewthread.php?tid=3611&fromuid=837689##################【土建/机械/车辆/制造/材料类--答案】#################### 西工大机械原理配套作业题答案/bbs/viewthread.php?tid=570&fromuid=837689机械设计基础(第五版) 杨可桢程光蕴李仲生高教版课后答案/bbs/viewthread.php?tid=2316&fromuid=837689材料力学第4版(刘鸿文)答案(有附件)/bbs/viewthread.php?tid=1931&fromuid=837689材料力学课后答案/bbs/viewthread.php?tid=96&fromuid=837689材料力学(范钦珊主编著) 高等教育出版社课后答案/bbs/viewthread.php?tid=120&fromuid=837689机械设计基础(第五版) 答案7-18章杨可桢程光蕴李仲生/bbs/viewthread.php?tid=2570&fromuid=837689《结构力学习题集》课后答案【khdaw】/bbs/viewthread.php?tid=3016&fromuid=837689电工学第六版秦曾煌高等教育出版社课后答案/bbs/viewthread.php?tid=2986&fromuid=837689机械原理学习指南(第二版)(孙恒著) 课后答案/bbs/viewthread.php?tid=569&fromuid=837689机械原理高等教育出版社课后答案【khdaw_cola】/bbs/viewthread.php?tid=664&fromuid=837689电力电子技术试题习题考题及答案题解【khdaw】/bbs/viewthread.php?tid=1169&fromuid=837689机械原理习题+答案【khdaw_cola】/bbs/viewthread.php?tid=1210&fromuid=837689材料力学第四版(刘鸿文著) 高等教育出版社课后答案/bbs/viewthread.php?tid=2461&fromuid=837689机械设计及答案【khdaw_cola】/bbs/viewthread.php?tid=1172&fromuid=837689材料力学(I)第四版(孙训方)高等教育出版社课后答案/bbs/viewthread.php?tid=5342&fromuid=837689##################【经济/金融/营销/管理/电子商务类--答案】####################高鸿业版西方经济学习题答案(微观.宏观)【khdaw】/bbs/viewthread.php?tid=92&fromuid=837689西方经济学(微观部分) (高鸿业著) 中国人民大学出版社课后答案/bbs/viewthread.php?tid=2817&fromuid=837689袁卫统计学(第二版)习题答案【khdaw】/bbs/viewthread.php?tid=98&fromuid=837689曼昆《经济学原理》题目及课后答案/bbs/viewthread.php?tid=162&fromuid=837689统计学(贾俊平第二版)中国人民大学出版社课后答案/bbs/viewthread.php?tid=42&fromuid=837689运筹学教程第三版(甘应爱胡运权等著) 清华大学出版社课后答案/bbs/viewthread.php?tid=7016&fromuid=837689高鸿业版西方经济学习题答案(第三版)/bbs/viewthread.php?tid=1277&fromuid=837689西方经济学(宏观部分)第四版(高鸿业著) 中国人民大学出版社课后答案/bbs/viewthread.php?tid=7171&fromuid=837689财务管理学课后答案荆新王化成中国人民大学出版社/bbs/viewthread.php?tid=3433&fromuid=837689西方经济学课后答案(高鸿业著) 人民大学出版社/bbs/viewthread.php?tid=6189&fromuid=837689克鲁格曼_国际经济学(第六版)的教师手册(含习题答案)/bbs/viewthread.php?tid=237&fromuid=837689微观经济学第二版(高鸿业著) 西方经济学课后答案/bbs/viewthread.php?tid=577&fromuid=837689罗宾斯《管理学(第7版)》课后习题答案【khdaw】/bbs/viewthread.php?tid=513&fromuid=837689曼昆宏观经济学习题答案及讲义【khdaw】/bbs/viewthread.php?tid=115&fromuid=837689##################【法学/哲学/心理学/政治学类--答案】####################毛邓三课后答案(高教版) 课后答案【khdaw】/bbs/viewthread.php?tid=1184&fromuid=837689《马克思主义基本原理概论》最新版课后题答案(部分)及复习资料【khdaw】/bbs/viewthread.php?tid=1406&fromuid=837689马克思主义哲学原理课后习题答案【khdaw】/bbs/viewthread.php?tid=512&fromuid=837689马克思主义基本原理概论课后思考题答案【khdaw】/bbs/viewthread.php?tid=1145&fromuid=837689马基(马克思主义基本原理概论)课后思考题答案【khdaw】/bbs/viewthread.php?tid=1371&fromuid=837689《逻辑学》课后练习题及参考答案【khdaw】/bbs/viewthread.php?tid=2980&fromuid=837689##################【文学/史学/外语/教育类--答案】#################### 《中国近现代史纲要》课后答案(高教版)【khdaw】/bbs/viewthread.php?tid=1154&fromuid=837689《中国教育史》孙培青主编(华东师范大学出版社)习题答案【khdaw】/bbs/viewthread.php?tid=89&fromuid=837689《大学日语》汉译日标准答案【khdaw】/bbs/viewthread.php?tid=2954&fromuid=837689俄语模拟真题下载【khdaw】/bbs/viewthread.php?tid=859&fromuid=837689。
andrew s. tanenbaum 《computer networks》fourth edition习题答案

1.
答;本题是求周期性函数的傅立叶系数。而题面中所给出的为信号在一个周期内的解析式。
即;
2.答:无噪声信道最大数据传输率公式:最大数据传输率=2hlog2v b/s。因此最大数据传输率决定于每次采样所产生的比特数,如果每次采样产生16bits,那么数据传输率可达128kbps;如果每次采样产生1024bits,那么可达8.2mbps。注意这是对无噪声信道而言的,实际信道总是有噪声的,其最大数据传输率由香农定律给出。
21.通常在物理层对于在线路上发送的比特不采取任何差错纠正措施。在每个调制解调器中都包括一个cpu使得有可能在第一层中包含错误纠正码,从而大大减少第二层所看到的错误率。由调制解调器做的错误处理可以对第二层完全透明。现在许多调制解调器都有内建的错误处理功能。
22.每个波特有4个合法值,因此比特率是波特率的两倍。对应于1200波特,数据速率是2400bps。
22. tcp与udp之间最主要的区别是什么。
答:tcp是面向连接的,而udp是一种数据报服务。
23.如果3枚炸弹炸毁与右上角那2个节点连接的3个节点,可将那2个节点与其余的节点拆开。系统能经得住任何两个节点的损失。
25.如果网络容易丢失分组,那么对每一个分组逐一进行确认较好,此时仅重传丢失的分组。而在另一方面,如果网络高度可靠,那么在不发差错的情况下,仅在整个文件传送的结尾发送一次确认,从而减少了确认的次数,节省了带宽;不过,即使有单个分组丢失,也需要重传整个文件。
10.区分n-2事件。事件1到n由主机成功地、没有冲突地使用这条信道的事件组成。这些可能性的事件的概率为p(1-p)n -1。事件n+1是一个空闲的信道,其概率为(1- p)n。事件n+2是一个冲突。由于事件n+2互斥,它们可能发生的事件必须统一合计。冲突的可能性等于那些小部分的槽的浪费,只是
计算机网络(双语)Andrew S.Tanenbaum第五版(第一章)CN-chapter1

2.2 Network hardware-scale
2.2.1 Network hardware-scale
Personal Area Networks
2.2.2 Network hardware-scale
Local Area Networks
2.2.3 Network hardware-scale
applicatictions
Home applications
• • • •
Twitter Youtube Facebook Ubiquitous computing
• • • •
Smart phone GPS M-commerce Wearable computer
Mobile users
Social issues
Since computer scientists like to have their cake and eat it, too, we will use the hybrid model of Fig. 1-23 as the framework for this book.
4.1 Reference models-OSI
4.1 Reference models-OSI
4.2 Reference models-TCP/IP
4.3 Reference models- Used in This Book
目前在计算机网络领域有影响的标准化组织: 1、国际电信联盟(ITU) 2、国际标准化组织(ISO) 3、电子工业协会(EIA) 4、电气与电子工程师协会(IEEE) 5、ATM论坛
Network hardware Network software
Reference models
《计算机网络的应用》教案

《计算机网络的应用》教案计算机网络的应用教案一、教学目标1. 了解计算机网络的基本概念和分类。
2. 掌握计算机网络的协议体系和网络层次结构。
3. 熟悉计算机网络的常见应用场景和技术。
4. 能够分析和解决计算机网络相关的问题。
二、教学内容1. 计算机网络基础- 计算机网络的定义和特点。
- 计算机网络的分类和拓扑结构。
- 计算机网络的基本组成部分。
2. 计算机网络协议- OSI七层模型和TCP/IP协议族。
- 网络协议的作用和功能。
- 常见网络协议的介绍和使用。
3. 网络层次结构- 网络的物理层、数据链路层、网络层、传输层、应用层。
- 各层次结构的作用和协议。
4. 计算机网络的应用- 网络通信和数据传输。
- 网络安全和数据加密。
- 网络管理和性能优化。
- 云计算和分布式系统。
- 物联网和无线传感器网络。
三、教学方法1. 教师讲授:通过讲解的方式介绍计算机网络的基本概念和分类,并重点解析网络协议和网络层次结构。
2. 实例演示:通过实际案例和场景演示计算机网络的应用,引导学生理解和掌握相关技术和方法。
3. 互动讨论:组织学生讨论和分享计算机网络相关的问题和经验,促进学生的思考和交流。
四、教学评估1. 随堂测验:定期进行小测验,检验学生对计算机网络基础知识的掌握程度。
2. 课堂作业:布置与计算机网络应用相关的实践作业,评估学生应用知识的能力。
3. 期末考试:考察学生对计算机网络的整体理解和综合运用能力。
五、教学资源1. 教材:《计算机网络教程》2. 教具:计算机、投影仪、实验设备等3. 网络资源:在线研究平台、计算机网络模拟软件等六、参考文献1. 谢希仁. 计算机网络[M]. 电子工业出版社, 2018.2. Andrew S. Tanenbaum, David J. Wetherall. 计算机网络[M]. 人民邮电出版社, 2014.以上是《计算机网络的应用》教案的基本框架,具体细节和教学安排可以根据实际情况进行调整和完善。
现代操作系统(第三版)答案

MODERNOPERATINGSYSTEMSTHIRD EDITION PROBLEM SOLUTIONSANDREW S.TANENBAUMVrije UniversiteitAmsterdam,The NetherlandsPRENTICE HALLUPPER SADDLE RIVER,NJ07458Copyright Pearson Education,Inc.2008SOLUTIONS TO CHAPTER1PROBLEMS1.Multiprogramming is the rapid switching of the CPU between multiple proc-esses in memory.It is commonly used to keep the CPU busy while one or more processes are doing I/O.2.Input spooling is the technique of reading in jobs,for example,from cards,onto the disk,so that when the currently executing processes arefinished, there will be work waiting for the CPU.Output spooling consists offirst copying printablefiles to disk before printing them,rather than printing di-rectly as the output is generated.Input spooling on a personal computer is not very likely,but output spooling is.3.The prime reason for multiprogramming is to give the CPU something to dowhile waiting for I/O to complete.If there is no DMA,the CPU is fully occu-pied doing I/O,so there is nothing to be gained(at least in terms of CPU utili-zation)by multiprogramming.No matter how much I/O a program does,the CPU will be100%busy.This of course assumes the major delay is the wait while data are copied.A CPU could do other work if the I/O were slow for other reasons(arriving on a serial line,for instance).4.It is still alive.For example,Intel makes Pentium I,II,and III,and4CPUswith a variety of different properties including speed and power consumption.All of these machines are architecturally compatible.They differ only in price and performance,which is the essence of the family idea.5.A25×80character monochrome text screen requires a2000-byte buffer.The1024×768pixel24-bit color bitmap requires2,359,296bytes.In1980these two options would have cost$10and$11,520,respectively.For current prices,check on how much RAM currently costs,probably less than$1/MB.6.Consider fairness and real time.Fairness requires that each process be allo-cated its resources in a fair way,with no process getting more than its fair share.On the other hand,real time requires that resources be allocated based on the times when different processes must complete their execution.A real-time process may get a disproportionate share of the resources.7.Choices(a),(c),and(d)should be restricted to kernel mode.8.It may take20,25or30msec to complete the execution of these programsdepending on how the operating system schedules them.If P0and P1are scheduled on the same CPU and P2is scheduled on the other CPU,it will take20mses.If P0and P2are scheduled on the same CPU and P1is scheduled on the other CPU,it will take25msec.If P1and P2are scheduled on the same CPU and P0is scheduled on the other CPU,it will take30msec.If all three are on the same CPU,it will take35msec.2PROBLEM SOLUTIONS FOR CHAPTER19.Every nanosecond one instruction emerges from the pipeline.This means themachine is executing1billion instructions per second.It does not matter at all how many stages the pipeline has.A10-stage pipeline with1nsec per stage would also execute1billion instructions per second.All that matters is how often afinished instruction pops out the end of the pipeline.10.Average access time=0.95×2nsec(word is cache)+0.05×0.99×10nsec(word is in RAM,but not in cache)+0.05×0.01×10,000,000nsec(word on disk only)=5002.395nsec=5.002395μsec11.The manuscript contains80×50×700=2.8million characters.This is,ofcourse,impossible tofit into the registers of any currently available CPU and is too big for a1-MB cache,but if such hardware were available,the manuscript could be scanned in2.8msec from the registers or5.8msec from the cache.There are approximately27001024-byte blocks of data,so scan-ning from the disk would require about27seconds,and from tape2minutes7 seconds.Of course,these times are just to read the data.Processing and rewriting the data would increase the time.12.Maybe.If the caller gets control back and immediately overwrites the data,when the writefinally occurs,the wrong data will be written.However,if the driverfirst copies the data to a private buffer before returning,then the caller can be allowed to continue immediately.Another possibility is to allow the caller to continue and give it a signal when the buffer may be reused,but this is tricky and error prone.13.A trap instruction switches the execution mode of a CPU from the user modeto the kernel mode.This instruction allows a user program to invoke func-tions in the operating system kernel.14.A trap is caused by the program and is synchronous with it.If the program isrun again and again,the trap will always occur at exactly the same position in the instruction stream.An interrupt is caused by an external event and its timing is not reproducible.15.The process table is needed to store the state of a process that is currentlysuspended,either ready or blocked.It is not needed in a single process sys-tem because the single process is never suspended.16.Mounting afile system makes anyfiles already in the mount point directoryinaccessible,so mount points are normally empty.However,a system admin-istrator might want to copy some of the most importantfiles normally located in the mounted directory to the mount point so they could be found in their normal path in an emergency when the mounted device was being repaired.PROBLEM SOLUTIONS FOR CHAPTER13 17.A system call allows a user process to access and execute operating systemfunctions inside the er programs use system calls to invoke operat-ing system services.18.Fork can fail if there are no free slots left in the process table(and possibly ifthere is no memory or swap space left).Exec can fail if thefile name given does not exist or is not a valid executablefile.Unlink can fail if thefile to be unlinked does not exist or the calling process does not have the authority to unlink it.19.If the call fails,for example because fd is incorrect,it can return−1.It canalso fail because the disk is full and it is not possible to write the number of bytes requested.On a correct termination,it always returns nbytes.20.It contains the bytes:1,5,9,2.21.Time to retrieve thefile=1*50ms(Time to move the arm over track#50)+5ms(Time for thefirst sector to rotate under the head)+10/100*1000ms(Read10MB)=155ms22.Block specialfiles consist of numbered blocks,each of which can be read orwritten independently of all the other ones.It is possible to seek to any block and start reading or writing.This is not possible with character specialfiles.23.System calls do not really have names,other than in a documentation sense.When the library procedure read traps to the kernel,it puts the number of the system call in a register or on the stack.This number is used to index into a table.There is really no name used anywhere.On the other hand,the name of the library procedure is very important,since that is what appears in the program.24.Yes it can,especially if the kernel is a message-passing system.25.As far as program logic is concerned it does not matter whether a call to a li-brary procedure results in a system call.But if performance is an issue,if a task can be accomplished without a system call the program will run faster.Every system call involves overhead time in switching from the user context to the kernel context.Furthermore,on a multiuser system the operating sys-tem may schedule another process to run when a system call completes, further slowing the progress in real time of a calling process.26.Several UNIX calls have no counterpart in the Win32API:Link:a Win32program cannot refer to afile by an alternative name or see it in more than one directory.Also,attempting to create a link is a convenient way to test for and create a lock on afile.4PROBLEM SOLUTIONS FOR CHAPTER1Mount and umount:a Windows program cannot make assumptions about standard path names because on systems with multiple disk drives the drive name part of the path may be different.Chmod:Windows uses access control listsKill:Windows programmers cannot kill a misbehaving program that is not cooperating.27.Every system architecture has its own set of instructions that it can execute.Thus a Pentium cannot execute SPARC programs and a SPARC cannot exe-cute Pentium programs.Also,different architectures differ in bus architecture used(such as VME,ISA,PCI,MCA,SBus,...)as well as the word size of the CPU(usually32or64bit).Because of these differences in hardware,it is not feasible to build an operating system that is completely portable.A highly portable operating system will consist of two high-level layers---a machine-dependent layer and a machine independent layer.The machine-dependent layer addresses the specifics of the hardware,and must be implemented sepa-rately for every architecture.This layer provides a uniform interface on which the machine-independent layer is built.The machine-independent layer has to be implemented only once.To be highly portable,the size of the machine-dependent layer must be kept as small as possible.28.Separation of policy and mechanism allows OS designers to implement asmall number of basic primitives in the kernel.These primitives are sim-plified,because they are not dependent of any specific policy.They can then be used to implement more complex mechanisms and policies at the user level.29.The conversions are straightforward:(a)A micro year is10−6×365×24×3600=31.536sec.(b)1000meters or1km.(c)There are240bytes,which is1,099,511,627,776bytes.(d)It is6×1024kg.SOLUTIONS TO CHAPTER2PROBLEMS1.The transition from blocked to running is conceivable.Suppose that a processis blocked on I/O and the I/Ofinishes.If the CPU is otherwise idle,the proc-ess could go directly from blocked to running.The other missing transition, from ready to blocked,is impossible.A ready process cannot do I/O or any-thing else that might block it.Only a running process can block.PROBLEM SOLUTIONS FOR CHAPTER25 2.You could have a register containing a pointer to the current process tableentry.When I/O completed,the CPU would store the current machine state in the current process table entry.Then it would go to the interrupt vector for the interrupting device and fetch a pointer to another process table entry(the ser-vice procedure).This process would then be started up.3.Generally,high-level languages do not allow the kind of access to CPU hard-ware that is required.For instance,an interrupt handler may be required to enable and disable the interrupt servicing a particular device,or to manipulate data within a process’stack area.Also,interrupt service routines must exe-cute as rapidly as possible.4.There are several reasons for using a separate stack for the kernel.Two ofthem are as follows.First,you do not want the operating system to crash be-cause a poorly written user program does not allow for enough stack space.Second,if the kernel leaves stack data in a user program’s memory space upon return from a system call,a malicious user might be able to use this data tofind out information about other processes.5.If each job has50%I/O wait,then it will take20minutes to complete in theabsence of competition.If run sequentially,the second one willfinish40 minutes after thefirst one starts.With two jobs,the approximate CPU utiliza-tion is1−0.52.Thus each one gets0.375CPU minute per minute of real time.To accumulate10minutes of CPU time,a job must run for10/0.375 minutes,or about26.67minutes.Thus running sequentially the jobsfinish after40minutes,but running in parallel theyfinish after26.67minutes.6.It would be difficult,if not impossible,to keep thefile system consistent.Sup-pose that a client process sends a request to server process1to update afile.This process updates the cache entry in its memory.Shortly thereafter,anoth-er client process sends a request to server2to read thatfile.Unfortunately,if thefile is also cached there,server2,in its innocence,will return obsolete data.If thefirst process writes thefile through to the disk after caching it, and server2checks the disk on every read to see if its cached copy is up-to-date,the system can be made to work,but it is precisely all these disk ac-cesses that the caching system is trying to avoid.7.No.If a single-threaded process is blocked on the keyboard,it cannot fork.8.A worker thread will block when it has to read a Web page from the disk.Ifuser-level threads are being used,this action will block the entire process, destroying the value of multithreading.Thus it is essential that kernel threads are used to permit some threads to block without affecting the others.9.Yes.If the server is entirely CPU bound,there is no need to have multiplethreads.It just adds unnecessary complexity.As an example,consider a tele-phone directory assistance number(like555-1212)for an area with1million6PROBLEM SOLUTIONS FOR CHAPTER2people.If each(name,telephone number)record is,say,64characters,the entire database takes64megabytes,and can easily be kept in the server’s memory to provide fast lookup.10.When a thread is stopped,it has values in the registers.They must be saved,just as when the process is stopped the registers must be saved.Multipro-gramming threads is no different than multiprogramming processes,so each thread needs its own register save area.11.Threads in a process cooperate.They are not hostile to one another.If yield-ing is needed for the good of the application,then a thread will yield.After all,it is usually the same programmer who writes the code for all of them. er-level threads cannot be preempted by the clock unless the whole proc-ess’quantum has been used up.Kernel-level threads can be preempted indivi-dually.In the latter case,if a thread runs too long,the clock will interrupt the current process and thus the current thread.The kernel is free to pick a dif-ferent thread from the same process to run next if it so desires.13.In the single-threaded case,the cache hits take15msec and cache misses take90msec.The weighted average is2/3×15+1/3×90.Thus the mean re-quest takes40msec and the server can do25per second.For a multithreaded server,all the waiting for the disk is overlapped,so every request takes15 msec,and the server can handle662/3requests per second.14.The biggest advantage is the efficiency.No traps to the kernel are needed toswitch threads.The biggest disadvantage is that if one thread blocks,the en-tire process blocks.15.Yes,it can be done.After each call to pthread create,the main programcould do a pthread join to wait until the thread just created has exited before creating the next thread.16.The pointers are really necessary because the size of the global variable isunknown.It could be anything from a character to an array offloating-point numbers.If the value were stored,one would have to give the size to create global,which is all right,but what type should the second parameter of set global be,and what type should the value of read global be?17.It could happen that the runtime system is precisely at the point of blocking orunblocking a thread,and is busy manipulating the scheduling queues.This would be a very inopportune moment for the clock interrupt handler to begin inspecting those queues to see if it was time to do thread switching,since they might be in an inconsistent state.One solution is to set aflag when the run-time system is entered.The clock handler would see this and set its ownflag, then return.When the runtime systemfinished,it would check the clockflag, see that a clock interrupt occurred,and now run the clock handler.PROBLEM SOLUTIONS FOR CHAPTER27 18.Yes it is possible,but inefficient.A thread wanting to do a system callfirstsets an alarm timer,then does the call.If the call blocks,the timer returns control to the threads package.Of course,most of the time the call will not block,and the timer has to be cleared.Thus each system call that might block has to be executed as three system calls.If timers go off prematurely,all kinds of problems can develop.This is not an attractive way to build a threads package.19.The priority inversion problem occurs when a low-priority process is in itscritical region and suddenly a high-priority process becomes ready and is scheduled.If it uses busy waiting,it will run forever.With user-level threads,it cannot happen that a low-priority thread is suddenly preempted to allow a high-priority thread run.There is no preemption.With kernel-level threads this problem can arise.20.With round-robin scheduling it works.Sooner or later L will run,and eventu-ally it will leave its critical region.The point is,with priority scheduling,L never gets to run at all;with round robin,it gets a normal time slice periodi-cally,so it has the chance to leave its critical region.21.Each thread calls procedures on its own,so it must have its own stack for thelocal variables,return addresses,and so on.This is equally true for user-level threads as for kernel-level threads.22.Yes.The simulated computer could be multiprogrammed.For example,while process A is running,it reads out some shared variable.Then a simula-ted clock tick happens and process B runs.It also reads out the same vari-able.Then it adds1to the variable.When process A runs,if it also adds one to the variable,we have a race condition.23.Yes,it still works,but it still is busy waiting,of course.24.It certainly works with preemptive scheduling.In fact,it was designed forthat case.When scheduling is nonpreemptive,it might fail.Consider the case in which turn is initially0but process1runsfirst.It will just loop forever and never release the CPU.25.To do a semaphore operation,the operating systemfirst disables interrupts.Then it reads the value of the semaphore.If it is doing a down and the sema-phore is equal to zero,it puts the calling process on a list of blocked processes associated with the semaphore.If it is doing an up,it must check to see if any processes are blocked on the semaphore.If one or more processes are block-ed,one of them is removed from the list of blocked processes and made run-nable.When all these operations have been completed,interrupts can be enabled again.8PROBLEM SOLUTIONS FOR CHAPTER226.Associated with each counting semaphore are two binary semaphores,M,used for mutual exclusion,and B,used for blocking.Also associated with each counting semaphore is a counter that holds the number of up s minus the number of down s,and a list of processes blocked on that semaphore.To im-plement down,a processfirst gains exclusive access to the semaphores, counter,and list by doing a down on M.It then decrements the counter.If it is zero or more,it just does an up on M and exits.If M is negative,the proc-ess is put on the list of blocked processes.Then an up is done on M and a down is done on B to block the process.To implement up,first M is down ed to get mutual exclusion,and then the counter is incremented.If it is more than zero,no one was blocked,so all that needs to be done is to up M.If, however,the counter is now negative or zero,some process must be removed from the list.Finally,an up is done on B and M in that order.27.If the program operates in phases and neither process may enter the nextphase until both arefinished with the current phase,it makes perfect sense to use a barrier.28.With kernel threads,a thread can block on a semaphore and the kernel canrun some other thread in the same process.Consequently,there is no problem using semaphores.With user-level threads,when one thread blocks on a semaphore,the kernel thinks the entire process is blocked and does not run it ever again.Consequently,the process fails.29.It is very expensive to implement.Each time any variable that appears in apredicate on which some process is waiting changes,the run-time system must re-evaluate the predicate to see if the process can be unblocked.With the Hoare and Brinch Hansen monitors,processes can only be awakened on a signal primitive.30.The employees communicate by passing messages:orders,food,and bags inthis case.In UNIX terms,the four processes are connected by pipes.31.It does not lead to race conditions(nothing is ever lost),but it is effectivelybusy waiting.32.It will take nT sec.33.In simple cases it may be possible to determine whether I/O will be limitingby looking at source code.For instance a program that reads all its inputfiles into buffers at the start will probably not be I/O bound,but a problem that reads and writes incrementally to a number of differentfiles(such as a compi-ler)is likely to be I/O bound.If the operating system provides a facility such as the UNIX ps command that can tell you the amount of CPU time used by a program,you can compare this with the total time to complete execution of the program.This is,of course,most meaningful on a system where you are the only user.34.For multiple processes in a pipeline,the common parent could pass to the op-erating system information about the flow of data.With this information the OS could,for instance,determine which process could supply output to a process blocking on a call for input.35.The CPU efficiency is the useful CPU time divided by the total CPU time.When Q ≥T ,the basic cycle is for the process to run for T and undergo a process switch for S .Thus (a)and (b)have an efficiency of T /(S +T ).When the quantum is shorter than T ,each run of T will require T /Q process switches,wasting a time ST /Q .The efficiency here is thenT +ST /QT which reduces to Q /(Q +S ),which is the answer to (c).For (d),we just sub-stitute Q for S and find that the efficiency is 50%.Finally,for (e),as Q →0the efficiency goes to 0.36.Shortest job first is the way to minimize average response time.0<X ≤3:X ,3,5,6,9.3<X ≤5:3,X ,5,6,9.5<X ≤6:3,5,X ,6,9.6<X ≤9:3,5,6,X ,9.X >9:3,5,6,9,X.37.For round robin,during the first 10minutes each job gets 1/5of the CPU.Atthe end of 10minutes,C finishes.During the next 8minutes,each job gets 1/4of the CPU,after which time D finishes.Then each of the three remaining jobs gets 1/3of the CPU for 6minutes,until B finishes,and so on.The fin-ishing times for the five jobs are 10,18,24,28,and 30,for an average of 22minutes.For priority scheduling,B is run first.After 6minutes it is finished.The other jobs finish at 14,24,26,and 30,for an average of 18.8minutes.If the jobs run in the order A through E ,they finish at 10,16,18,22,and 30,for an average of 19.2minutes.Finally,shortest job first yields finishing times of 2,6,12,20,and 30,for an average of 14minutes.38.The first time it gets 1quantum.On succeeding runs it gets 2,4,8,and 15,soit must be swapped in 5times.39.A check could be made to see if the program was expecting input and didanything with it.A program that was not expecting input and did not process it would not get any special priority boost.40.The sequence of predictions is 40,30,35,and now 25.41.The fraction of the CPU used is35/50+20/100+10/200+x/250.To beschedulable,this must be less than1.Thus x must be less than12.5msec. 42.Two-level scheduling is needed when memory is too small to hold all theready processes.Some set of them is put into memory,and a choice is made from that set.From time to time,the set of in-core processes is adjusted.This algorithm is easy to implement and reasonably efficient,certainly a lot better than,say,round robin without regard to whether a process was in memory or not.43.Each voice call runs200times/second and uses up1msec per burst,so eachvoice call needs200msec per second or400msec for the two of them.The video runs25times a second and uses up20msec each time,for a total of 500msec per second.Together they consume900msec per second,so there is time left over and the system is schedulable.44.The kernel could schedule processes by any means it wishes,but within eachprocess it runs threads strictly in priority order.By letting the user process set the priority of its own threads,the user controls the policy but the kernel handles the mechanism.45.The change would mean that after a philosopher stopped eating,neither of hisneighbors could be chosen next.In fact,they would never be chosen.Sup-pose that philosopher2finished eating.He would run test for philosophers1 and3,and neither would be started,even though both were hungry and both forks were available.Similarly,if philosopher4finished eating,philosopher3 would not be started.Nothing would start him.46.If a philosopher blocks,neighbors can later see that she is hungry by checkinghis state,in test,so he can be awakened when the forks are available.47.Variation1:readers have priority.No writer may start when a reader is ac-tive.When a new reader appears,it may start immediately unless a writer is currently active.When a writerfinishes,if readers are waiting,they are all started,regardless of the presence of waiting writers.Variation2:Writers have priority.No reader may start when a writer is waiting.When the last ac-tive processfinishes,a writer is started,if there is one;otherwise,all the readers(if any)are started.Variation3:symmetric version.When a reader is active,new readers may start immediately.When a writerfinishes,a new writer has priority,if one is waiting.In other words,once we have started reading,we keep reading until there are no readers left.Similarly,once we have started writing,all pending writers are allowed to run.48.A possible shell script might beif[!–f numbers];then echo0>numbers;ficount=0while(test$count!=200)docount=‘expr$count+1‘n=‘tail–1numbers‘expr$n+1>>numbersdoneRun the script twice simultaneously,by starting it once in the background (using&)and again in the foreground.Then examine thefile numbers.It will probably start out looking like an orderly list of numbers,but at some point it will lose its orderliness,due to the race condition created by running two cop-ies of the script.The race can be avoided by having each copy of the script test for and set a lock on thefile before entering the critical area,and unlock-ing it upon leaving the critical area.This can be done like this:if ln numbers numbers.lockthenn=‘tail–1numbers‘expr$n+1>>numbersrm numbers.lockfiThis version will just skip a turn when thefile is inaccessible,variant solu-tions could put the process to sleep,do busy waiting,or count only loops in which the operation is successful.SOLUTIONS TO CHAPTER3PROBLEMS1.It is an accident.The base register is16,384because the program happened tobe loaded at address16,384.It could have been loaded anywhere.The limit register is16,384because the program contains16,384bytes.It could have been any length.That the load address happens to exactly match the program length is pure coincidence.2.Almost the entire memory has to be copied,which requires each word to beread and then rewritten at a different location.Reading4bytes takes10nsec, so reading1byte takes2.5nsec and writing it takes another2.5nsec,for a total of5nsec per byte compacted.This is a rate of200,000,000bytes/sec.To copy128MB(227bytes,which is about1.34×108bytes),the computer needs227/200,000,000sec,which is about671msec.This number is slightly pessimistic because if the initial hole at the bottom of memory is k bytes, those k bytes do not need to be copied.However,if there are many holes andmany data segments,the holes will be small,so k will be small and the error in the calculation will also be small.3.The bitmap needs1bit per allocation unit.With227/n allocation units,this is224/n bytes.The linked list has227/216or211nodes,each of8bytes,for a total of214bytes.For small n,the linked list is better.For large n,the bitmap is better.The crossover point can be calculated by equating these two formu-las and solving for n.The result is1KB.For n smaller than1KB,a linked list is better.For n larger than1KB,a bitmap is better.Of course,the assumption of segments and holes alternating every64KB is very unrealistic.Also,we need n<=64KB if the segments and holes are64KB.4.Firstfit takes20KB,10KB,18KB.Bestfit takes12KB,10KB,and9KB.Worstfit takes20KB,18KB,and15KB.Nextfit takes20KB,18KB,and9 KB.5.For a4-KB page size the(page,offset)pairs are(4,3616),(8,0),and(14,2656).For an8-KB page size they are(2,3616),(4,0),and(7,2656).6.They built an MMU and inserted it between the8086and the bus.Thus all8086physical addresses went into the MMU as virtual addresses.The MMU then mapped them onto physical addresses,which went to the bus.7.(a)M has to be at least4,096to ensure a TLB miss for every access to an ele-ment of X.Since N only affects how many times X is accessed,any value of N will do.(b)M should still be atleast4,096to ensure a TLB miss for every access to anelement of X.But now N should be greater than64K to thrash the TLB, that is,X should exceed256KB.8.The total virtual address space for all the processes combined is nv,so thismuch storage is needed for pages.However,an amount r can be in RAM,so the amount of disk storage required is only nv−r.This amount is far more than is ever needed in practice because rarely will there be n processes ac-tually running and even more rarely will all of them need the maximum al-lowed virtual memory.9.The page table contains232/213entries,which is524,288.Loading the pagetable takes52msec.If a process gets100msec,this consists of52msec for loading the page table and48msec for running.Thus52%of the time is spent loading page tables.10.(a)We need one entry for each page,or224=16×1024×1024entries,sincethere are36=48−12bits in the page numberfield.。
Linus的十大名言

Linus的⼗⼤名⾔Linus Torvalds,Linux核⼼的创作者,于1969 年12⽉28 ⽇出⽣在芬兰的赫尔⾟基。
“有些⼈⽣来就具有统率百万⼈的领袖风范;另⼀些⼈则是为写出颠覆世界的软件⽽⽣。
唯⼀⼀个能同时做 linus到这两者的⼈,就是托⽡兹。
”美国《时代》周刊对Linux之⽗李纳斯·托⽡兹(Linus Torvalds)给出了极⾼的评价。
甚⾄,在《时代》周刊根据读者投票评选出的⼆⼗世纪100位最重要⼈物中,李纳斯居然排到了第15位,⽽从20世纪的最后⼏年就开始霸占全球⾸富称号的盖茨不过才是第17位。
当Linus⼗岁时,他的祖⽗,赫尔⾟基⼤学的⼀位统计教授,购买了⼀台Commodore VIC-20计算机。
Linus帮助他祖⽗把数据输⼊到他的可编程计算器⾥,做这些仅仅是为了好玩,他还通过阅读计算机⾥的指令集来⾃学⼀些简单的BASIC程序。
当他成为赫尔⾟基⼤学的计算机科学系的学⽣的时候,Linus Torvalds 已经是⼀位成功的程序员了。
Linux的最初研发 1991年4⽉,芬兰赫尔⾟基⼤学学⽣Torvalds开始对 Minix(⼀个Andrew S. Tanenbaum开发的以教学⽬的的类似Unix的操作系统)感兴趣起来,但不满意Minix这个教学⽤的操作系统。
出于爱好,他根据可在低档机上使⽤的MINIX设计了⼀个系统核⼼Linux 0.01,但没有使⽤任何MINIX或UNIX的源代码。
他通过USENET(就是新闻组)宣布这是⼀个免费的系统,主要在x86电脑上使⽤,希望⼤家⼀起来将它完善,并将源代码放到了芬兰的FTP站点上代⼈免费下载。
本来他想把这个系统称为freax,意思是⾃由( free)和奇异(freak)的结合字,并且附上了"X"这个常⽤的字母,以配合所谓的Unix-like的系统。
可是FTP的⼯作⼈员认为这是Linus的MINIX,嫌原来的命名“Freax”的名称不好听,就⽤Linux这个⼦⽬录来存放,于是它就成了“Linux”。
操作系统书籍推荐

操作系统书籍推荐简介在计算机领域中,操作系统是一种关键的软件。
它作为计算机硬件和应用程序之间的连接桥梁,负责管理资源、协调任务以及提供用户与计算机之间的接口。
学习和理解操作系统的基本原理和概念对于计算机科学专业的学生和从业人员来说是至关重要的。
本文为大家推荐几本深入浅出、适合不同阶段学习者的操作系统书籍。
1. 《操作系统概念》《操作系统概念》是由Silberschatz、Galvin和Gagne合著的经典教材。
这本书通俗易懂,适合刚接触操作系统的初学者。
它从操作系统的基本概念、原理和功能开始,然后深入探讨进程管理、内存管理、文件系统和输入输出等核心模块。
书中配有丰富的案例和实例,帮助读者更好地理解各种概念和机制。
此外,书中还介绍了一些实际应用的案例,展示操作系统在现实世界中的应用。
2. 《现代操作系统》《现代操作系统》是由Andrew S. Tanenbaum和Herbert Bos合著的经典著作。
这本书对操作系统的基本概念和原理进行了全面而深入的讲解。
它从进程管理、内存管理、文件系统、输入输出和多处理器等方面对操作系统进行了系统性的介绍。
书中还着重强调了分布式系统和虚拟化技术的重要性。
此外,书中还提供了大量的实际案例和讨论,帮助读者更好地理解和应用所学的知识。
3. 《深入理解计算机系统》《深入理解计算机系统》是由Randal E. Bryant和David R. O’Hallaron合著的经典教材。
这本书深入探讨了计算机系统的底层结构和原理,不仅包括操作系统,还包括编译器、体系结构和存储器等方面。
书中从硬件和软件的角度出发,详细介绍了计算机系统的层次结构、指令集体系、存储器层次结构和输入输出系统等方面的知识。
本书对于了解计算机系统的工作原理、优化程序性能以及调试问题等方面非常有帮助。
4. 《Linux内核设计与实现》《Linux内核设计与实现》是由Robert Love编写的经典著作。
这本书主要介绍了Linux内核的设计原理和实现技巧。
计算机网络实训参考文献

计算机网络实训参考文献
1、《计算机网络》(第 4 版)英文影印版 Andrew S. Tanenbaum
著清华大学出版社
2、《计算机网络》(第 4 版) Andrew S. Tanenbaum 著,潘爱民译清华大学出版社
3、《计算机网络》(第 5 版)谢希仁编著电子工业出版社
4、《计算机网络》(第 2 版) /21 世纪大学本科计算机专业系列教材吴功宜编著清华大学出版社
5、计算机网络:系统方法:(美)彼德森,戴维著,叶新铭等译机械工业出版社
6、计算机网络操作系统原理与应用——全国高等工科教育计算机类规划教材机械工业出版社
7、计算机网络:原理、应用和实现/ 高等学校教材计算机科学与技术王卫亚等主编,李晓莉等编著清华大学出版社
8、计算机网络安全——大学本科计算机专业应用型规划教材顾巧论等编著
9、计算机网络技术与应用董吉文,徐龙玺主编电子工业出版社
10、计算机网络基础应用教程张连永等编著清华大学出版社。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Andrew S. Tanenbaum访谈录【计算机领域著名专家】Andrew S. Tanenbaum访谈录Andrew S. Tanenbaum简介:著名的技术作家、教育家和研究者,IEEE高级会员、ACM高级会员、荷兰皇家艺术和科学院院士、1994年ACM Karl V. Karlstrom杰出教育奖、1997年ACM计算机科学教育杰出贡献奖、2002年Texty卓越教材奖、第10届ACM操作系统原理研讨会杰出论文奖、被列入“Who's Who in the World”人物目录。
Q:你有个德文名字;你住在荷兰;可你英文却写得和土生土长的美英人士一样好,这是怎么回事啊?A:哦,是这样的。
我祖父出生在Chorostkow(这个城市在奥匈帝国统治时期属于波兰,现在在乌克兰境内),[译补:所以我有了个德国名字。
]他在1914年去了美国。
我出生在纽约,在纽约州的White Plains长大。
[译补:所以我英文程度和美国人无异。
]我到阿姆斯特丹来做博士后研究,从此就逗留在这儿了。
Q:你在那里上学呢?A:我在当地的White Plains高中毕业后去了麻省理工,取得学士学位后到加州伯克利大学攻读博士学位。
Q:哦,那你最喜欢哪个学校?A:嗯,高中生活挺好的,但我最喜欢的还是在舞台上当电工的那段时光。
至于麻省理工,虽然大家都很尊敬它,我也很尊敬,但我想没有人会喜欢它。
毕竟,谁会喜欢凑在消防龙头上喝水呢……[译注:Tanenbaum将在麻省理工“痛饮知识的圣泉”比作“凑在压力强劲,水流湍急的消防笼头上喝水”] 现在提到那个地方我仍然觉得后怕。
伯克利,我喜欢!还有那难忘的迷人海湾……[译注:伯克利在四季如春的加州硅谷地区,美丽的校园离旧金山海湾很近。
]Q:那你从麻省理工到伯克利,有没有感受到一种“文化上的冲击”?A:哦,上帝!确实如此。
你知道,置身于这样一个地方,忽然发现居然有人智商在150以下,而且人们不必每周学习7天每天学习14小时也能跟得上教授上课的节奏,真的感觉太奇怪了![译注:这是在调侃麻省理工了,那是一群智商奇高的工作狂所在的地方,伯克利是和麻省理工齐名的著名学府,尤其是在自然科学和计算机工程等学术领域是全美最好的。
斯坦福,伯克利,麻省理工,卡耐基梅隆大学的计算机系都曾多次被评为全美第一或并列第一,但从Tanenbaum的回答可以看出,两所学校教学风格迥异。
]Q:那你在每天多出来的时间里都做些什么呢?A:我花许多时间为Sierra俱乐部工作,还在Sacramento[译注:地名,为加州首府]游说议会,以促使一项保护旧金山湾的议案能被通过。
我现在仍然是Sierra俱乐部的成员,我为此而自豪。
Q:你有些什么兴趣爱好吗?A:呵呵,我夫人说“玩电脑”就是我的爱好。
当然,我还喜欢旅游,研究菜谱,摄影。
Q:你都去过那些国家呢?A:哦,这难说了。
我现在就像苍蝇那样在各国间飞来飞去。
这样吧,按照我去过的国家当时的名字(比如俄国,在我去的时候叫苏联)来记,只算我经海关入境的,仅飞过领空或者我仅在机场逗留的国家不算(这样一来,巴基斯坦就不算了,尽管卡拉奇国际机场的卫生间是全世界机场中最好的^_^),那么,包括度假和出差(指演讲,开会),我去过这些国家:阿尔及利亚,澳大利亚,奥地利,比利时,加拿大,捷克斯洛伐克,丹麦,英国,埃及,芬兰,法国,德国,希腊,以色列,意大利,日本,约旦,肯尼亚,卢森堡,马耳他,墨西哥,摩洛哥,荷兰,新西兰,挪威,波兰,葡萄牙,南非,西班牙,斯里兰卡,瑞典,瑞士,坦桑尼亚,塞舌尔,突尼斯,土耳其,苏联,美国。
Q:你在这些地方都做游记了吗?A:是啊,内容丰富而广泛的游记。
事实上,我写了一本讲旅游的书,但由于“政治倾向”问题而还没能出版。
“政治倾向”近来成了学术界的禁忌,什么左倾呀,麦卡锡主义呀……Q:你对阿姆斯特丹看法如何?A:哦,这是个平静宜人的城市,不大也不小,刚刚好。
而且我很喜欢这里的天气--单调的灰色天空,一年大部分时间都细雨蒙蒙……这样的天气真是太适合于呆在家里“温暖”的电脑前面了!Q:到底是什么是你产生了写这样一份FAQ的念头呢?A:参见我的《计算机网络》一书,第3版,663页。
Q:你平时要收到多少封email?A:太多太多了。
虽然我很乐意帮忙,但我确实没这个能力帮助全世界的本科生来完成他们的作业,或者帮助所有研究生来选择他们的论文题目,或者是为我从未听说的助理教授写“转正”的保荐信,或者是推广产品,指导你如何建设网络,帮助你找到感兴趣的论文,帮助你找工作,陪你聊你喜欢的话题……尽管如此,我还是常被要求做这些事,这样的email堆积如山。
Q:你会说荷兰话吗?A:这个嘛,嘿嘿,我对名词,形容词和动词还是掌握得蛮好的,但对介词,关系连词掌握一般,而对于冠词,呃,简直是没希望了!拜托谁能告诉我,为何荷兰语中ezel(驴子)的词性是“公的”;paard(马)是中性的;而antilope(羚羊)是“母的”???Q:你干吗要在大学工作呢?A:我念大学时,有一个暑假在IBM工作,当然,是为了赚钱。
一天,我穿了件颜色“不合适”的衬衫上班,我的同事告诉我不应该这样穿,并提出了“改进建议”。
从那时我就开始感到,我可能不合适在企业界做事。
Q:你教书吗?A:当然,我教《计算机体系结构》,《计算机网络》和《操作系统》。
Q:你也做研究吗?A:我是很想啊,但学校希望把我变成行政官僚。
我现在参与Amoeba[译注:一个高性能微内核分布式操作系统。
Amoeba直译是“变形虫”]和Paramecium[译注:直译为“草履虫”]项目,还和我的研究生们一起从事Globe项目。
这比我期望的研究量要少。
[译注:对Tanenbaum研究项目的一些介绍:Tanenbaum研究兴趣主要集中在分布式操作系统方面。
当然,因为分布式操作系统的复杂性,他同时对计算机体系结构和计算机网络(这两个领域的知识在分布式操作系统设计中都是必须的)也有深厚了解。
早期他还设计过ACK编译器开发包,所以对编译原理也有较多研究。
Tanenbaum设计的3个操作系统包括:MINIX,Tanenbaum早年开发的一个微内核教学操作系统。
大家熟悉的Linux就成长自MINIX播下的种子。
Amoeba,一个微内核分布式操作系统,它提供了一个具有透明性的分布式平台(透明性意即对本地对象和远程对象的调用具有同样的语法)。
Paramecium,一个简单而易扩展的试验操作系统,支持并行程序设计。
Paramecium采用面向对象技术(例如namespace),力图在用户进程和内核间的“任务平衡”方面达到最佳。
我们知道,把所有功能都加进内核会导致模块性和扩展性极差;但把太多的功能移出内核,作为用户线程提供,又会导致性能的下降。
目前实作的所谓微内核操作系统实际上都是将性能的考虑和设计的优雅性所折衷得到的产物,比如Windows 2000/XP号称微内核,但实则为了图像性能,将GDI放入了内核。
Paramecium是对操作系统设计中“鱼和熊掌能否兼得”问题的一个探索。
事实上,研究已经表明纯微内核系统的性能完全可以不比同样功能的宏内核系统差,剩下的事情就是实作的检验了。
Paramecium项目和SPIN,Oberon,Exo,Spring等项目类似,不过采用具有多保护域的微内核,不虚拟化硬件。
]Q:你为你的博士生们骄傲吗?A:那当然,他们都很聪明好学。
我是在扮演下蛋的老母鸡的角色,呵呵。
在我的主页上有他们的名单。
Q:我能成为你的研究生吗?A:恐怕不能,这里的制度[译注:指荷兰Vrije大学]和美国不同,这里研究生是大学的雇员,不是学生。
而且我的研究生名额有限,我一般只从本校的本科生中按学习成绩好坏来选拔研究生。
这种“近亲通婚”的做法是我从麻省理工学来的“坏作风”之一。
Q:那我能成为Vrije大学的本科生吗?A:也许可以吧,不过要注意,我们是用荷兰语授课的……Q:你白天都忙些什么?A:开会:(Q:那晚上呢?A:在家里写书,写软件。
Q:你写了多少书了?A:呵呵,计算这个,麻烦可不比计算“我去过多少国家”少。
如果按有几本教材算:5本;如果修订本也算在内:12本;如果把那本486页的MINIX手册也算在内:13本;如果其他语言的译本也算,再加一大捆:)[译注:Tanenbaum的著作Structured Computer Organization 4th ed (《结构化计算机组成》)Computer Networks 3rd ed (《计算机网络》)Modern Operating Systems 2nd ed (《现代操作系统》)Operating Systems :Design and Implementation 3nd ed (《操作系统:设计与实现》)Distributed Systems :Principles and Paradigms (《分布式系统:原理和范例》)这些经典之作分别由机械工业出版社、电子工业出版社、清华大学出版社引入国内,均有中译版和影印版。
Tanenbaum的书有一个特点:封面(指原版)都很活泼]Q:那你的作品都被译成哪几国文字?A:巴斯克语,保加利亚语,卡斯蒂利亚西班牙语,中文,荷兰语,法语,德语,希腊语,匈牙利语,意大利语,日语,朝鲜语,墨西哥语,西班牙语,波兰语,葡萄牙语,罗马尼亚语,俄语。
Q:除了计算机技术书,你还写些其他书吗?A:是的。
我写过一本菜谱。
当然,还有前面提过的那本还没出版的旅游书。
Q:你使用什么电脑?A:在学校,我用UltraSPARC工作站。
我的研究组使用有144个1-GHz Pentium III CPU 的DAS-2机群,每个CPU分配256MB内存和2。
56Gbps的网络接口。
这个机群是用来研究分布式和并行计算的,和荷兰另外四所大学的机群宽带联网。
不过,我在家用一台便宜的Pentium兼容机写作。
Q:你用什么编辑软件写作?A:我以前用elle,这是一个简化的emacs的克隆,但我最后还是决定使用完整的emacs。
Q:你喜欢“所见即所得”的编辑系统吗?A:当然不,我打字要比用鼠标指点快。
而且妈妈告诉我,“指点”是不礼貌的:)Q:你对MS-DOS怎么看?A:要比Windows好,至少它还有个命令行界面--虽然是个虚弱无力的界面。
Q:你对Linux评价如何?A:我想借这个机会向Linus说声谢谢,谢谢他为我们带来了Linux。
在有Linux之前,我们有MINIX,有个40000人的新闻组在支持它。
许多人每天给我发email,不断地把可以加入MINIX的新功能部件发给我,我都快被他们逼疯了!对这些提交新功能的要求,我的答复永远是“NO”,因为我想保持MINIX足够小,以使我的学生们可以在一个学期内理解它,而这正是促使Linus写Linux的原因。