<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0"></div><div class="t m0 x1 h3 y3 ff1 fs0 fc0 sc0 ls0 ws0"></div><div class="t m0 x1 h4 y4 ff2 fs1 fc0 sc0 ls0 ws0">操作系统设计与实现</div><div class="t m0 x1 h4 y5 ff2 fs1 fc0 sc0 ls0 ws0">第二版</div><div class="t m0 x1 h4 y6 ff2 fs1 fc0 sc0 ls0 ws0">安德鲁.坦尼鲍姆(Andrew S. Tanenbaum)</div><div class="t m0 x1 h4 y7 ff2 fs1 fc0 sc0 ls0 ws0">阿尔伯特.伍德豪尔(Albert S. Woodhull)</div><div class="t m0 x1 h5 y8 ff2 fs2 fc0 sc1 ls0 ws0">作者简介</div><div class="t m0 x2 h4 y9 ff2 fs1 fc0 sc0 ls0 ws0">安德鲁.坦尼鲍姆分别在麻省理工学院和加州大学伯克利分校获得学士和博士学位。他现任位于荷兰阿姆</div><div class="t m0 x1 h4 ya ff2 fs1 fc0 sc0 ls0 ws0">斯特丹市的Vrije大学计算机科学教授并领导着一个计算机系统研究小组。同时他还任一个研究并行、分布及图</div><div class="t m0 x1 h4 yb ff2 fs1 fc0 sc0 ls0 ws0">像系统的校际研究生院 - 计算机与图像高级学院的院长。</div><div class="t m0 x2 h4 yc ff2 fs1 fc0 sc0 ls0 ws0">坦尼鲍姆先前的研究领域包括编译器、操作系统、网络和局域分布式系统,他现在的研究主要集中在可</div><div class="t m0 x1 h4 yd ff2 fs1 fc0 sc0 ls0 ws0">扩展到数百万用户的广域分布式系统。对这些课题的研究使他在学报和会议上发表了70余篇论文,并出版了</div><div class="t m0 x1 h4 ye ff2 fs1 fc0 sc0 ls0 ws0">五部专著。</div><div class="t m0 x2 h4 yf ff2 fs1 fc0 sc0 ls0 ws0">坦尼鲍姆教授同时还主持开发了大量的软件。他是Amsterdam编译工具箱的总设计师,该工具箱被广泛</div><div class="t m0 x1 h4 y10 ff2 fs1 fc0 sc0 ls0 ws0">地用来开发可移植的编译器,同时还用于MINIX的开发。他和他的博士研究生及程序员们一起设计了一个基于</div><div class="t m0 x1 h4 y11 ff2 fs1 fc0 sc0 ls0 ws0">微内核的高性能分布式操作系统 - Amoeba。现在,以教学和研究为目的的用户可以从Internet上免费获得MI</div><div class="t m0 x1 h4 y12 ff2 fs1 fc0 sc0 ls0 ws0">NIX 和Amoeba软件。</div><div class="t m0 x2 h4 y13 ff2 fs1 fc0 sc0 ls0 ws0">坦尼鲍姆的许多博士研究生在获得学位后都取得了非常丰硕的成果,这令坦尼鲍姆非常自豪,因为这是</div><div class="t m0 x1 h4 y14 ff2 fs1 fc0 sc0 ls0 ws0">他诲人不倦的结果。</div><div class="t m0 x2 h4 y15 ff2 fs1 fc0 sc0 ls0 ws0">坦尼鲍姆教授同时还是ACM的会士、IEEE高级会员、荷兰皇家艺术和科学院院士,他曾获得1994年ACM </div><div class="t m0 x1 h4 y16 ff2 fs1 fc0 sc0 ls0 ws0">Karl V. Karlstrom 杰出教育奖和1997年ACM/SIGCSE 计算机科学教育杰出贡献奖。他被列入<span class="ff1"></span>上的 </div><div class="t m0 x1 h4 y17 ff1 fs1 fc0 sc0 ls0 ws0"><span class="ff2">名单,他在</span><span class="ff2">上的主页地址为:</span><span class="_ _0"></span><span class="ff2">。</span></div><div class="t m0 x2 h4 y18 ff2 fs1 fc0 sc0 ls0 ws0">阿尔伯特.伍德豪尔分别在麻省理工学院和华盛顿大学获得学士和博士学位。他进麻省理工学院本来是想</div><div class="t m0 x1 h4 y19 ff2 fs1 fc0 sc0 ls0 ws0">成为一名电<span class="ff3">气</span>工程师,可是后来<span class="ff3">却</span>成了生<span class="ff3">物</span>学家。从197<span class="ff3">3</span>年起他开<span class="ff3">始</span>在位于麻省Amherst的<span class="ff3">H</span>am<span class="ff3">p</span>shire自<span class="ff3">然</span>科</div><div class="t m0 x1 h4 y1a ff2 fs1 fc0 sc0 ls0 ws0">学学院工作。<span class="ff3">当</span>微<span class="ff3">型</span>计算机<span class="ff3">慢慢</span>多起来的时<span class="ff3">候</span>,作为使用电<span class="ff3">子检测仪</span>器的生<span class="ff3">物</span>学家,他开<span class="ff3">始</span>使用微<span class="ff3">型</span>计算机。</div><div class="t m0 x1 h4 y1b ff2 fs1 fc0 sc0 ls0 ws0">他<span class="ff3">给</span>学生开设的<span class="ff3">检测仪</span>器<span class="ff3">方面</span>的课程<span class="ff3">逐渐演变</span>为计算机<span class="ff3">接口</span>和实时程序设计。</div><div class="t m0 x2 h4 y1c ff2 fs1 fc0 sc0 ls0 ws0">伍德豪尔博士对教学和科学<span class="ff3">技</span>术的发展<span class="ff3">有浓厚</span>的<span class="ff3">兴趣</span>,在进入研究生院<span class="ff3">之</span>前他曾在尼<span class="ff3">日</span>利<span class="ff3">亚</span>教<span class="ff3">过两</span>年中</div><div class="t m0 x1 h4 y1d ff2 fs1 fc0 sc0 ls0 ws0">学,<span class="ff3">近</span>年来他曾<span class="ff3">几次</span>利用自<span class="ff3">己</span>的<span class="ff3">假期</span>在尼加<span class="ff3">拉瓜</span>教授计算机科学。</div><div class="t m0 x2 h4 y1e ff2 fs1 fc0 sc0 ls0 ws0">他对计算机作为电<span class="ff3">子</span>系统,以及计算机与<span class="ff3">其</span>他电<span class="ff3">子</span>系统的<span class="ff3">相互配合很感兴趣</span>。他<span class="ff3">最喜欢讲</span>授的课程<span class="ff3">有</span>计</div><div class="t m0 x1 h4 y1f ff2 fs1 fc0 sc0 ls0 ws0">算机<span class="ff3">体</span>系结<span class="ff3">构</span>、<span class="ff3">汇</span>编<span class="ff3">语言</span>程序设计、操作系统和计算机<span class="ff3">通信</span>。他还为开发电<span class="ff3">子</span>器件及<span class="ff3">相关</span>软件<span class="ff3">担当顾问</span>。</div><div class="t m0 x2 h4 y20 ff2 fs1 fc0 sc0 ls0 ws0">在学术<span class="ff3">之外</span>,伍德豪尔<span class="ff3">有</span>不<span class="ff3">少兴趣</span>,包括<span class="ff3">各种</span>户<span class="ff3">外运动</span>,<span class="ff3">业</span>余<span class="ff3">无线</span>电<span class="ff3">制</span>作和<span class="ff3">读书</span>。他还<span class="ff3">喜欢旅游</span>和学<span class="ff3">习</span></div><div class="t m0 x1 h4 y21 ff2 fs1 fc0 sc0 ls0 ws0">别<span class="ff3">国语言</span>。他的WWW主页<span class="ff3">就存</span>在一<span class="ff3">台运</span>行MINIX的机器上,地址是:<span class="fc1">htt<span class="ff3">p:</span>//mini<span class="ff3">x</span>1.ham<span class="ff3">p</span>shire.edu/asw/</span>。</div></div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/bg2.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h5 y22 ff2 fs2 fc0 sc1 ls0 ws0">前<span class="ff4 sc0"> </span><span class="ff3">言</span></div><div class="t m0 x2 h4 y23 ff2 fs1 fc0 sc0 ls0 ws0">多数操作系统教<span class="ff3">材</span>都<span class="ff3">重</span>理论<span class="ff3">而轻</span>实<span class="ff3">践</span>,本<span class="ff3">书希望</span>在这二者<span class="ff3">之间求</span>取<span class="ff3">较好</span>的<span class="ff3">平衡</span>。本<span class="ff3">书详细</span>论<span class="ff3">述</span>了操作系</div><div class="t m0 x1 h4 y24 ff2 fs1 fc0 sc0 ls0 ws0">统的<span class="ff3">所有</span>基本<span class="ff3">概念</span>,包括进程、进程<span class="ff3">间通信</span>、<span class="ff3">信号</span>量、<span class="ff3">管</span>程、<span class="ff3">消息传递</span>、<span class="ff3">调度</span>算<span class="ff3">法</span>、<span class="ff3">输</span>入/<span class="ff3">输</span>出、<span class="ff3">死锁</span>、设<span class="ff3">备</span></div><div class="t m0 x1 h4 y25 ff3 fs1 fc0 sc0 ls0 ws0">驱动<span class="ff2">程序、</span>存储<span class="ff2">器</span>管<span class="ff2">理、页</span>面调度<span class="ff2">算</span>法<span class="ff2">、文件系统设计、安</span>全<span class="ff2">与</span>保护<span class="ff2">机</span>制等<span class="ff2">。同时,本</span>书也详细讨<span class="ff2">论了MINIX </span></div><div class="t m0 x1 h4 y26 ff2 fs1 fc0 sc0 ls0 ws0">- 一个与<span class="ff3">U</span>NIX<span class="ff3">兼容</span>的操作系统,并<span class="ff3">提供</span>了<span class="ff3">完整</span>的<span class="ff3">源代码供</span>学<span class="ff3">习之</span>用。这<span class="ff3">样</span>的安<span class="ff3">排</span>使<span class="ff3">读</span>者不<span class="ff3">仅</span>学<span class="ff3">习</span>到理论,<span class="ff3">而</span></div><div class="t m0 x1 h4 y27 ff3 fs1 fc0 sc0 ls0 ws0">且<span class="ff2">能</span>够<span class="ff2">理</span>解它<span class="ff2">们</span>如何应<span class="ff2">用在一个实际的操作系统</span>之<span class="ff2">中。</span></div><div class="t m0 x2 h4 y28 ff2 fs1 fc0 sc0 ls0 ws0">本<span class="ff3">书</span>第一版在19<span class="ff3">8</span>7年出版时,曾<span class="ff3">引</span>发了操作系统课程教学的一<span class="ff3">场</span>小小的<span class="ff3">变革</span>。在<span class="ff3">此之</span>前多数课程都<span class="ff3">只讲</span></div><div class="t m0 x1 h4 y29 ff2 fs1 fc0 sc0 ls0 ws0">理论。<span class="ff3">随</span>着MINIX的出现,许多学校开<span class="ff3">始增</span>加实<span class="ff3">验环节</span>以使学生了<span class="ff3">解</span>实际的操作系统是<span class="ff3">如何运</span>作的。<span class="ff3">我</span>们<span class="ff3">认</span>为</div><div class="t m0 x1 h4 y2a ff2 fs1 fc0 sc0 ls0 ws0">这<span class="ff3">种趋势</span>是可取的,并<span class="ff3">希望通过</span>本<span class="ff3">书</span>第二版能进一<span class="ff3">步</span>加<span class="ff3">强</span>这<span class="ff3">种趋势</span>。</div><div class="t m0 x2 h4 y2b ff2 fs1 fc0 sc0 ls0 ws0">MINIX在<span class="ff3">其</span>出现以来的<span class="ff3">十</span>年<span class="ff3">间</span>发生了许多<span class="ff3">变化</span>,<span class="ff3">最初</span>的<span class="ff3">代码</span>是为基于<span class="ff3">8</span>0<span class="ff3">88芯片</span>、<span class="ff3">256</span>K内<span class="ff3">存</span>和<span class="ff3">两</span>个软<span class="ff3">驱</span>的I</div><div class="t m0 x1 h4 y2c ff3 fs1 fc0 sc0 ls0 ws0">B<span class="ff2">M </span>P<span class="ff2">C机</span>型<span class="ff2">编</span>写<span class="ff2">的,</span>它<span class="ff2">基于</span>U<span class="ff2">NIX 版本7。</span>随<span class="ff2">着时</span>间<span class="ff2">的</span>推<span class="ff2">移,MINIX在许多</span>方面有所<span class="ff2">发展,</span>比如当<span class="ff2">前版本可</span>运<span class="ff2">行</span></div><div class="t m0 x1 h4 y2d ff2 fs1 fc0 sc0 ls0 ws0">在<span class="ff3">众</span>多机<span class="ff3">型</span>上,从1<span class="ff3">6</span>位实<span class="ff3">模</span>式的<span class="ff3">P</span>C机到<span class="ff3">配有</span>大<span class="ff3">容</span>量<span class="ff3">硬盘</span>的<span class="ff3">奔腾</span>机(<span class="ff3">32</span>位<span class="ff3">保护模</span>式),<span class="ff3">而且它</span>不<span class="ff3">再</span>基于<span class="ff3">U</span>NIX版</div><div class="t m0 x1 h4 y2e ff2 fs1 fc0 sc0 ls0 ws0">本7,<span class="ff3">而</span>是基于<span class="ff3">国</span>际上的<span class="ff3">PO</span>SIX<span class="ff3">标准</span>(<span class="ff3">PO</span>SIX 100<span class="ff3">3</span>.1和IS<span class="ff3">O</span>994<span class="ff3">5</span>-1<span class="_ _0"></span>)。与<span class="ff3">此</span>同时,<span class="ff3">有</span>许多<span class="ff3">新</span>特<span class="ff3">征</span>被<span class="ff3">添</span>加到MIN</div><div class="t m0 x1 h4 y2f ff2 fs1 fc0 sc0 ls0 ws0">IX中,在<span class="ff3">我</span>们<span class="ff3">看</span>来,<span class="ff3">所增</span>加的特<span class="ff3">征</span>可能<span class="ff3">已经太</span>多了,<span class="ff3">但有</span>些人<span class="ff3">则认</span>为还不<span class="ff3">够</span>,这<span class="ff3">最终</span>导<span class="ff3">致</span>了<span class="ff3">L</span>IN<span class="ff3">U</span>X的<span class="ff3">诞</span>生。MI</div><div class="t m0 x1 h4 y30 ff2 fs1 fc0 sc0 ls0 ws0">NIX还被移植到许多<span class="ff3">其</span>他<span class="ff3">平台</span>上,包括Ma<span class="ff3">c</span>intosh、Ami<span class="ff3">g</span>a、Atari和S<span class="ff3">P</span>A<span class="ff3">R</span>C。本<span class="ff3">书只涉</span>及MINIX<span class="ff3">2</span>.0,到目前为<span class="ff3">止</span>,</div><div class="t m0 x1 h4 y31 ff2 fs1 fc0 sc0 ls0 ws0">该版本<span class="ff3">只</span>能<span class="ff3">运</span>行于基于<span class="ff3">8</span>0X<span class="ff3">86</span>的机器,<span class="ff3">或</span>者可<span class="ff3">模拟此类</span>C<span class="ff3">PU</span>的机器,以及S<span class="ff3">P</span>A<span class="ff3">R</span>C机器。</div><div class="t m0 x2 h4 y32 ff2 fs1 fc0 sc0 ls0 ws0">与第一版<span class="ff3">相比</span>,第二版<span class="ff3">有</span>许多<span class="ff3">变化</span>,<span class="ff3">原</span>理性部分基本都被<span class="ff3">修改过</span>,同时<span class="ff3">增</span>加了大量<span class="ff3">新</span>内<span class="ff3">容</span>。<span class="ff3">最</span>主要的<span class="ff3">变</span></div><div class="t m0 x1 h4 y33 ff3 fs1 fc0 sc0 ls0 ws0">化<span class="ff2">是</span>新<span class="ff2">的基于</span>PO<span class="ff2">SIX的MINIX,以及对</span>其源代码<span class="ff2">的</span>剖析<span class="ff2">。</span>另外<span class="ff2">,</span>每<span class="ff2">本</span>书<span class="ff2">都</span>附带<span class="ff2">一</span>张<span class="ff2">C</span>D-RO<span class="ff2">M,</span>它<span class="ff2">包</span>含<span class="ff2">了</span>全<span class="ff2">部MINI</span></div><div class="t m0 x1 h4 y34 ff2 fs1 fc0 sc0 ls0 ws0">X<span class="ff3">源代码</span>,以及在<span class="ff3">P</span>C上安<span class="ff3">装</span>MINIX的<span class="ff3">说明</span>(<span class="ff3">见</span>C<span class="ff3">D-RO</span>M主目<span class="ff3">录下</span>的<span class="ff3">R</span>EA<span class="ff3">D</span>ME.TXT文件)。</div><div class="t m0 x2 h4 y35 ff2 fs1 fc0 sc0 ls0 ws0">在一<span class="ff3">台8</span>0X<span class="ff3">86</span> 的<span class="ff3">P</span>C机上安<span class="ff3">装</span>MINIX<span class="ff3">很方便</span>。<span class="ff3">它需</span>要一个<span class="ff3">至少3</span>0M<span class="ff3">B</span>的<span class="ff3">硬盘</span>分<span class="ff3">区</span>,<span class="ff3">然</span>后<span class="ff3">按照</span>C<span class="ff3">D</span>-<span class="ff3">RO</span>M上<span class="ff3">R</span>E</div><div class="t m0 x1 h4 y36 ff2 fs1 fc0 sc0 ls0 ws0">A<span class="ff3">D</span>ME.TXT文件中的<span class="ff3">步骤</span>进行<span class="ff3">即</span>可。在<span class="ff3">打印R</span>EA<span class="ff3">D</span>ME.TXT文件<span class="ff3">之</span>前,先<span class="ff3">启动</span>MS<span class="ff3">-DO</span>S(<span class="ff3">若运</span>行WIN<span class="ff3">DO</span>WS,<span class="ff3">则双</span></div><div class="t m0 x1 h4 y37 ff3 fs1 fc0 sc0 ls0 ws0">击<span class="ff2">MS</span>-DO<span class="ff2">S图</span>标<span class="ff2">),</span>然<span class="ff2">后</span>键<span class="ff2">入</span></div><div class="t m0 x2 h6 y38 ff1 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 y39 ff3 fs1 fc0 sc0 ls0 ws0">即<span class="ff2">可。该文件</span>也<span class="ff2">可以用edit、word</span>p<span class="ff2">ad、note</span>p<span class="ff2">ad</span>等<span class="ff2">任</span>何<span class="ff2">可以</span>处<span class="ff2">理ASCII</span>正<span class="ff2">文的编</span>辑<span class="ff2">器进行</span>浏览<span class="ff2">。</span></div><div class="t m0 x2 h4 y3a ff2 fs1 fc0 sc0 ls0 ws0">对于<span class="ff3">没有P</span>C机的学校和个人,<span class="ff3">有两种解决办法</span>,<span class="ff3">即</span>C<span class="ff3">D</span>-<span class="ff3">RO</span>M上<span class="ff3">提供</span>的<span class="ff3">两</span>个<span class="ff3">模拟</span>程序。一个<span class="ff3">由P</span>aul Ashto</div><div class="t m0 x1 h4 y3b ff2 fs1 fc0 sc0 ls0 ws0">n 为S<span class="ff3">P</span>A<span class="ff3">R</span>C机器编<span class="ff3">写</span>,<span class="ff3">它</span>作为用户程序在Solaris上<span class="ff3">运</span>行,<span class="ff3">此</span>时MINIX被编译成S<span class="ff3">P</span>A<span class="ff3">R</span>C上的可<span class="ff3">执</span>行文件。在这<span class="ff3">种</span></div><div class="t m0 x1 h4 y3c ff3 fs1 fc0 sc0 ls0 ws0">模<span class="ff2">式</span>下<span class="ff2">,MINIX不</span>再<span class="ff2">是一个操作系统,</span>而只<span class="ff2">是一个用户程序,</span>所<span class="ff2">以</span>必须<span class="ff2">对</span>其底<span class="ff5">层<span class="ff2">作一些</span></span>修改<span class="ff2">。</span></div><div class="t m0 x2 h4 y3d ff3 fs1 fc0 sc0 ls0 ws0">另<span class="ff2">一个</span>模拟<span class="ff2">程序</span>由B<span class="ff2">o</span>c<span class="ff2">hs软件<span class="ff5">公司</span>的Ke<span class="ff5">v</span>in.</span>P<span class="ff2">.</span>L<span class="ff2">awton编</span>写<span class="ff2">,</span>它解<span class="ff5">释<span class="ff2">Intel </span></span>8<span class="ff2">0</span>386<span class="ff2">的<span class="ff5">指</span>令集以及<span class="ff5">足</span>以使MINIX</span></div><div class="t m0 x1 h4 y3e ff3 fs1 fc0 sc0 ls0 ws0">运<span class="ff2">行</span>所需<span class="ff2">的I/</span>O<span class="ff5">指<span class="ff2">令。</span>显</span>然<span class="ff2">在</span>解<span class="ff5">释<span class="ff2">器</span>层</span>次<span class="ff2">上</span>运<span class="ff2">行使性能</span>有所下<span class="ff5">降<span class="ff2">,</span></span>但<span class="ff2">这使得学生<span class="ff5">更</span></span>容<span class="ff5">易<span class="ff2">进行</span></span>调<span class="ff5">试<span class="ff2">。该</span></span>模拟<span class="ff2">程序</span></div><div class="t m0 x1 h4 y3f ff3 fs1 fc0 sc0 ls0 ws0">运<span class="ff2">行在</span>所有<span class="ff5">支<span class="ff2">持M.I.T的X</span></span>-<span class="ff2">Window的系统上,<span class="ff5">更</span></span>详细<span class="ff2">的</span>信息<span class="ff5">请参</span>看<span class="ff2">C</span>D<span class="ff2">-</span>RO<span class="ff2">M上的</span>有关<span class="ff2">文件。</span></div><div class="t m0 x2 h4 y40 ff2 fs1 fc0 sc0 ls0 ws0">MINIX<span class="ff5">仍</span>在<span class="ff5">继续</span>发展,本<span class="ff3">书</span>和C<span class="ff3">D</span>-<span class="ff3">RO</span>M中的内<span class="ff3">容仅仅<span class="ff5">反映</span></span>了本<span class="ff3">书</span>出版时的<span class="ff5">情况</span>,<span class="ff3">有关</span>MINIX的<span class="ff3">最新动<span class="ff5">态请</span></span></div><div class="t m0 x1 h4 y41 ff5 fs1 fc0 sc0 ls0 ws0">访<span class="ff3">问<span class="ff2">MINIX的主页:htt</span>p:<span class="ff2">//www.</span>c<span class="ff2">s.</span></span>v<span class="ff2">u.nl/</span>~<span class="ff2">ast/mini<span class="ff3">x</span>.html。MINIX<span class="ff3">也有U<span class="_ _0"></span></span>SENET中的<span class="ff3">新</span></span>闻<span class="ff2">组:<span class="ff3">c</span>om<span class="ff3">p</span>.os.mini<span class="ff3">x</span>,</span></div><div class="t m0 x1 h4 y42 ff3 fs1 fc0 sc0 ls0 ws0">读<span class="ff2">者可以<span class="ff5">订阅</span>该</span>新<span class="ff5">闻<span class="ff2">组。对于</span></span>仅有<span class="ff2">Email的</span>读<span class="ff2">者可</span>通过<span class="ff2">以</span>下步骤<span class="ff2">来加入MINIX的<span class="ff5">邮</span>件用户</span>通信<span class="ff2">组。</span>给<span class="ff2"> listser<span class="ff5">v@</span>li</span></div><div class="t m0 x1 h4 y43 ff2 fs1 fc0 sc0 ls0 ws0">stser<span class="ff5">v</span>.noda<span class="ff5">k</span>.edu 发一<span class="ff5">封<span class="ff3">信</span></span>,<span class="ff3">其</span>中<span class="ff3">只需</span>一行<span class="ff5">字</span>:<span class="ff5">“</span>subs<span class="ff3">c</span>ribe mini<span class="ff3">x-</span>1 <span class="ff5"><您</span>的<span class="ff3">完整</span>用户名<span class="ff5">>”</span>,<span class="ff3">此</span>后<span class="ff5">你<span class="ff3">便</span></span>会<span class="ff3">通过</span>E<span class="ff3">-</span>m</div><div class="t m0 x1 h4 y44 ff2 fs1 fc0 sc0 ls0 ws0">ail获得<span class="ff3">很</span>多的<span class="ff3">信息</span>。</div><div class="t m0 x2 h4 y45 ff3 fs1 fc0 sc0 ls0 ws0">讲<span class="ff2">授本课程的教师可以从</span>P<span class="ff2">renti</span>c<span class="ff2">e </span>H<span class="ff2">all<span class="ff5">公司</span>获得一<span class="ff5">份</span></span>习<span class="ff2">题</span>解<span class="ff5">答手册<span class="ff2">。从WWW地址 htt</span></span>p:<span class="ff2">//www.</span>c<span class="ff2">s.<span class="ff5">v</span>u.nl/<span class="ff5">~</span>a</span></div><div class="t m0 x1 h4 y46 ff2 fs1 fc0 sc0 ls0 ws0">st/<span class="ff5">沿</span>着<span class="ff5">“</span>So<span class="ff5">f</span>tware and su<span class="ff3">pp</span>lementar<span class="ff5">y</span> material<span class="ff5">"链<span class="ff3">接</span></span>可以获得一些<span class="ff3">有</span>用的<span class="ff3">P</span>ostS<span class="ff3">c</span>ri<span class="ff3">p</span>t文件,<span class="ff3">其</span>中包<span class="ff3">含</span>本<span class="ff3">书</span>中<span class="ff3">所有</span></div><div class="t m0 x1 h4 y47 ff2 fs1 fc0 sc0 ls0 ws0">的图表,可<span class="ff3">供需</span>要时使用。</div><div class="t m0 x2 h4 y48 ff2 fs1 fc0 sc0 ls0 ws0">在MINIX的开发<span class="ff5">项</span>目中<span class="ff3">我</span>们<span class="ff3">有<span class="ff5">幸</span></span>得到了许多人的<span class="ff5">帮助</span>。<span class="ff5">首</span>先要<span class="ff3">感<span class="ff5">谢</span></span>Kees <span class="ff3">B</span>ot在MINIX<span class="ff3">标准化</span>和软件发布中</div><div class="t m0 x1 h4 y49 ff3 fs1 fc0 sc0 ls0 ws0">所<span class="ff2">作的大量工作,</span>没有<span class="ff2">他的<span class="ff5">帮助</span>,</span>我<span class="ff2">们不可能</span>完<span class="ff2">成这件工作。他自</span>己<span class="ff2">编</span>写<span class="ff2">了大量的</span>代码<span class="ff2">(</span>如PO<span class="ff2">SIX</span>终<span class="ff5">端<span class="ff2">I/</span></span>O<span class="ff2">)</span></div><div class="t m0 x1 h4 y4a ff2 fs1 fc0 sc0 ls0 ws0">并<span class="ff3">修正</span>了一些数年来一<span class="ff5">直<span class="ff3">存</span></span>在的<span class="ff5">错误</span>,他还<span class="ff3">整</span>理了<span class="ff3">其</span>他的<span class="ff3">代码</span>。</div><div class="t m0 x2 h4 y4b ff2 fs1 fc0 sc0 ls0 ws0">这些年来<span class="ff3">B</span>ru<span class="ff3">c</span>e E<span class="ff5">v</span>ans、 <span class="ff3">P</span>hli<span class="ff3">p</span> <span class="ff3">H</span>ombur<span class="ff3">g</span>、Will <span class="ff3">R</span>ose和Mi<span class="ff3">c</span>hael Temari为MINIX的开发<span class="ff5">做</span>了大量的工作。 <span class="ff3">有</span></div><div class="t m0 x1 h4 y4c ff3 fs1 fc0 sc0 ls0 ws0">几<span class="ff2">百人</span>通过新<span class="ff5">闻<span class="ff2">组对MINIX作出了贡献,他们人数</span></span>众<span class="ff2">多,</span>所<span class="ff2">作出的贡献</span>也各<span class="ff2">不</span>相<span class="ff2">同,在</span>此<span class="ff5">谨向<span class="ff2">他们一并表</span>示</span>感</div><div class="t m0 x1 h4 y4d ff5 fs1 fc0 sc0 ls0 ws0">谢<span class="ff2">。</span></div><div class="t m0 x2 h4 y4e ff5 fs1 fc0 sc0 ls0 ws0">J<span class="ff2">ohn Case</span>y<span class="ff2">、 <span class="ff3">D</span>ale Grit、 </span>F<span class="ff2">rans Kashoe</span>k<span class="ff3">等<span class="ff2">人</span></span>阅<span class="ff3">读<span class="ff2">了本</span>书<span class="ff2">的部分</span></span>手稿<span class="ff2">并<span class="ff3">提</span>出了</span>宝贵建<span class="ff2">议,在<span class="ff3">此</span></span>向<span class="ff2">他们表</span></div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/bg3.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h4 y4f ff5 fs1 fc0 sc0 ls0 ws0">示谢意<span class="ff2">。</span></div><div class="t m0 x2 h4 y50 ff2 fs1 fc0 sc0 ls0 ws0">Vrije大学的许多学生<span class="ff3">测<span class="ff5">试</span></span>了C<span class="ff3">D</span>-<span class="ff3">RO</span>M中MINIX的 <span class="ff5 fs0">β</span>版本,他们是:Ahmed <span class="ff3">B</span>atou<span class="ff5">,</span> Goran <span class="ff3">D</span>o<span class="ff5">k</span>i<span class="ff3">c<span class="ff5">,</span></span> <span class="ff3">P</span>eter Gij<span class="ff5">z</span>e</div><div class="t m0 x1 h4 y51 ff2 fs1 fc0 sc0 ls0 ws0">l<span class="ff5">,</span> Thomer Gil<span class="ff5">,</span> <span class="ff3">D</span>ennis Grimber<span class="ff3">g</span>en<span class="ff5">,</span> <span class="ff3">R</span>oderi<span class="ff3">c<span class="ff5">k</span></span> Groesbee<span class="ff5">k,</span> Wouter harin<span class="ff3">g<span class="ff5">,</span></span> Guido Kollerie<span class="ff5">,<span class="_ _0"></span></span> Mar<span class="ff5">k</span> <span class="ff3">L</span>ass<span class="ff3">c</span>he<span class="ff5">,</span> <span class="ff3">R</span>a<span class="ff5">y</span>mon</div><div class="t m0 x1 h4 y52 ff2 fs1 fc0 sc0 ls0 ws0">d <span class="ff3">R</span>is<span class="ff5">,</span> <span class="ff5">F</span>rans ter <span class="ff3">B</span>or<span class="ff3">g<span class="ff5">,</span></span> Ale<span class="ff3">x</span> <span class="ff5">v</span>an <span class="ff3">B</span>alle<span class="ff3">g</span>oo<span class="ff5">y,</span> <span class="ff3">R</span>ies <span class="ff5">v</span>an der Velden<span class="ff5">,</span> Ale<span class="ff3">x</span>ander Wels以及Thomas <span class="ff5">Z<span class="_ _0"></span></span>eeman。<span class="ff3">我</span>们对</div><div class="t m0 x1 h4 y53 ff2 fs1 fc0 sc0 ls0 ws0">他们<span class="ff3">细致</span>的工作和<span class="ff3">详<span class="ff5">尽</span></span>的报<span class="ff5">告<span class="ff3">致</span></span>以<span class="ff5">衷心</span>的<span class="ff3">感<span class="ff5">谢</span></span>。</div><div class="t m0 x2 h4 y54 ff2 fs1 fc0 sc0 ls0 ws0">阿尔伯特<span class="ff5">·</span>S<span class="ff5">·</span>伍德豪尔<span class="ff5">向</span>他从前的<span class="ff3">几</span>位学生表<span class="ff5">示<span class="ff3">感</span>谢</span>,特别是<span class="ff3">H</span>am<span class="ff3">p</span>shire学院的<span class="ff3">P</span>eter W. <span class="ff5">Y</span>oun<span class="ff3">g</span> ,Na<span class="ff3">c</span>ional</div><div class="t m0 x1 h4 y55 ff2 fs1 fc0 sc0 ls0 ws0">Autonoma de Ni<span class="ff3">c</span>ara<span class="ff3">g</span>ua大学的Maria Isabel San<span class="ff3">c</span>he<span class="ff5">z</span> 和William <span class="ff3">P</span>udd<span class="ff5">y</span> Var<span class="ff3">g</span>as。</div><div class="t m0 x2 h4 y56 ff3 fs1 fc0 sc0 ls0 ws0">最<span class="ff2">后要<span class="ff5">向</span></span>我<span class="ff2">们的家<span class="ff5">庭</span>成员表<span class="ff5">示</span></span>感<span class="ff5">谢<span class="ff2">。Su</span>z<span class="ff2">anne </span></span>已<span class="ff2">是第</span>十次<span class="ff2">在</span>我<span class="ff5">埋头</span>写<span class="ff2">作时</span>给我<span class="ff5">支<span class="ff2">持,对</span></span>B<span class="ff2">arbara是第<span class="ff5">九</span></span>次<span class="ff2">,</span></div><div class="t m0 x1 h4 y57 ff2 fs1 fc0 sc0 ls0 ws0">Mar<span class="ff5">v</span>in是第<span class="ff5">八<span class="ff3">次</span></span>,<span class="ff5">甚<span class="ff3">至</span></span>小<span class="ff3">B</span>ram<span class="ff3">也</span>是第<span class="ff5">四<span class="ff3">次</span></span>了。他们的<span class="ff5">支</span>持和<span class="ff5">爱心</span>对<span class="ff3">我</span>非常<span class="ff3">重</span>要。(坦尼鲍姆)</div><div class="t m0 x2 h4 y58 ff3 fs1 fc0 sc0 ls0 ws0">至<span class="ff2">于阿尔伯特的</span>B<span class="ff2">arbara,这<span class="ff5">倒</span>是第一</span>次<span class="ff2">,</span>假如没有<span class="ff5">她<span class="ff2">的</span>支<span class="ff2">持,</span>耐心<span class="ff2">和</span>幽默<span class="ff2">,</span></span>我<span class="ff2">们是不可能</span>完<span class="ff2">成这一工作</span></div><div class="t m0 x1 h4 y59 ff2 fs1 fc0 sc0 ls0 ws0">的,对<span class="ff3">我</span>的<span class="ff5">儿<span class="ff3">子</span></span>Gordon<span class="ff3">而言</span>,<span class="ff3">由</span>于在编<span class="ff3">写</span>本<span class="ff3">书</span>时,他大部分时<span class="ff3">间</span>都不在家中,<span class="ff3">而</span>是在大学学<span class="ff3">习</span>,因<span class="ff3">此</span>是非常</div><div class="t m0 x1 h4 y5a ff5 fs1 fc0 sc0 ls0 ws0">幸<span class="ff3">运<span class="ff2">的。</span>但<span class="ff2">是他的理</span>解<span class="ff2">和</span>关</span>心深深吸<span class="ff3">引<span class="ff2">着</span>我<span class="ff2">从</span></span>事<span class="ff2">本<span class="ff3">书</span>的编<span class="ff3">写</span>工作,<span class="ff3">有</span>这<span class="ff3">样</span>一个</span>儿<span class="ff3">子<span class="ff2">是令人非常</span></span>愉快<span class="ff2">的。(伍德</span></div><div class="t m0 x1 h4 y5b ff2 fs1 fc0 sc0 ls0 ws0">豪尔)</div><div class="t m0 x3 h4 y5c ff2 fs1 fc0 sc0 ls0 ws0">安德鲁.S.坦尼鲍姆</div><div class="t m0 x1 h4 y5d ff2 fs1 fc0 sc0 ls0 ws0">阿尔伯特.S.伍德豪尔</div><div class="t m0 x1 h4 y5e ff2 fs1 fc0 sc0 ls0 ws0">译 序</div><div class="t m0 x2 h4 y5f ff2 fs1 fc0 sc0 ls0 ws0">坦尼鲍姆教授是<span class="ff3">国</span>际<span class="ff5">知</span>名的计算机科学家和教育家。他在操作系统、分布式系统以及计算机网络领域都</div><div class="t m0 x1 h4 y60 ff3 fs1 fc0 sc0 ls0 ws0">有很<span class="ff5">深<span class="ff2">的</span>造诣<span class="ff2">。自</span>八</span>十<span class="ff2">年</span>代<span class="ff2">以来,他</span>已<span class="ff2">先后出版了一系列</span>面<span class="ff5">向<span class="ff2">大学生和研究生的教</span></span>材<span class="ff2">性<span class="ff5">质</span>的专著,并被<span class="ff5">世界</span></span>各</div><div class="t m0 x1 h4 y61 ff3 fs1 fc0 sc0 ls0 ws0">国<span class="ff2">的许多大学广泛<span class="ff5">采</span>用。这本</span>书就<span class="ff2">是他的</span>最新<span class="ff2">专著</span>之<span class="ff2">一。</span></div><div class="t m0 x2 h4 y62 ff2 fs1 fc0 sc0 ls0 ws0">操作系统是计算机系统中<span class="ff3">最</span>核<span class="ff5">心</span>和<span class="ff3">最底<span class="ff5">层</span></span>的软件,对操作系统的<span class="ff5">深</span>入学<span class="ff3">习关</span>系到对<span class="ff3">整</span>个系统<span class="ff3">运</span>作机<span class="ff3">制</span>的</div><div class="t m0 x1 h4 y63 ff3 fs1 fc0 sc0 ls0 ws0">全面<span class="ff2">理</span>解<span class="ff2">,因</span>此<span class="ff2">一本</span>好<span class="ff2">教</span>材也<span class="ff5">显<span class="ff2">得</span>愈<span class="ff2">发</span></span>重<span class="ff2">要。本</span>书<span class="ff2">的<span class="ff5">英</span>文版出版于1997年,</span>其<span class="ff2">中<span class="ff5">涵盖</span>了操作系统课程的</span>所有</div><div class="t m0 x1 h4 y64 ff2 fs1 fc0 sc0 ls0 ws0">内<span class="ff3">容</span>,<span class="ff3">即传</span>统上的进程<span class="ff3">管</span>理、<span class="ff3">存储</span>器<span class="ff3">管</span>理、文件<span class="ff3">管</span>理和设<span class="ff3">备管</span>理。同时<span class="ff3">其</span>中<span class="ff5">又</span>包<span class="ff3">含</span>了许多<span class="ff3">新</span>内<span class="ff3">容</span>,<span class="ff3">如线</span>程、基</div><div class="t m0 x1 h4 y65 ff2 fs1 fc0 sc0 ls0 ws0">于<span class="ff3">消息传递</span>的系统<span class="ff3">构<span class="ff5">造</span>模型</span>、<span class="ff3">日<span class="ff5">志</span></span>结<span class="ff3">构</span>文件系统、安<span class="ff3">全</span>和<span class="ff3">保护</span>机<span class="ff3">制</span>、<span class="ff3">R</span>AM<span class="ff3">盘</span>及C<span class="ff3">D</span>-<span class="ff3">RO</span>M设<span class="ff3">备等</span>,<span class="ff3">而</span>用作<span class="ff5">例<span class="ff3">子</span></span></div><div class="t m0 x1 h4 y66 ff2 fs1 fc0 sc0 ls0 ws0">的C<span class="ff3">PU则</span>为Interl <span class="ff3">P</span>entium。这使得<span class="ff3">读</span>者一<span class="ff3">方面</span>能<span class="ff3">够</span>学<span class="ff3">习</span>操作系统的<span class="ff3">经<span class="ff5">典</span></span>内<span class="ff3">容</span>,<span class="ff3">另</span>一<span class="ff3">方面<span class="ff5">又</span></span>能<span class="ff3">够</span>了<span class="ff3">解</span>和<span class="ff5">跟踪<span class="ff3">当</span></span>前</div><div class="t m0 x1 h4 y67 ff2 fs1 fc0 sc0 ls0 ws0">的<span class="ff3">最新技</span>术和研究成果。</div><div class="t m0 x2 h4 y68 ff2 fs1 fc0 sc0 ls0 ws0">本<span class="ff3">书</span>的<span class="ff3">另</span>一个特<span class="ff5">点</span>是基本<span class="ff3">原</span>理与具<span class="ff3">体</span>实<span class="ff5">例</span>,<span class="ff3">即</span>MINIX<span class="ff5">紧密</span>结<span class="ff3">合</span>。第<span class="ff3">2</span>到第<span class="ff3">5<span class="ff5">章</span></span>的前<span class="ff5">半</span>部分<span class="ff3">讲述原</span>理,后<span class="ff5">半</span></div><div class="t m0 x1 h4 y69 ff2 fs1 fc0 sc0 ls0 ws0">部分<span class="ff3">则详细</span>地<span class="ff3">解<span class="ff5">释</span></span>这些<span class="ff3">原</span>理在MINIX的设计和实现中的<span class="ff3">应</span>用。<span class="ff3">通过<span class="ff5">阅</span>读</span>这些部分能<span class="ff3">够<span class="ff5">把握</span></span>MINIX<span class="ff3">源代码</span>的组<span class="ff5">织</span></div><div class="t m0 x1 h4 y6a ff3 fs1 fc0 sc0 ls0 ws0">方<span class="ff2">式,并理</span>解<span class="ff5">那<span class="ff2">些</span></span>很关键或<span class="ff2">者</span>很<span class="ff5">难懂<span class="ff2">的</span></span>代码<span class="ff2">。这部分内</span>容<span class="ff2">非常<span class="ff5">翔</span>实,</span>有<span class="ff2">时<span class="ff5">甚</span></span>至逐<span class="ff2">行地</span>解<span class="ff5">释</span>附录<span class="ff2">中</span>所<span class="ff2">列的</span>源<span class="ff2">程序。</span></div><div class="t m0 x1 h4 y6b ff2 fs1 fc0 sc0 ls0 ws0">对操作系统课程多年的授课<span class="ff3">经验</span>以及<span class="ff3">相关</span>的科研工作使<span class="ff3">我</span>们<span class="ff3">认<span class="ff5">识</span></span>到:<span class="ff3">详细</span>地<span class="ff3">剖析</span>一个<span class="ff5">象</span>MINIX这<span class="ff3">样</span>的操作系统</div><div class="t m0 x1 h4 y6c ff2 fs1 fc0 sc0 ls0 ws0">对于<span class="ff5">掌握</span>操作系统设计与实现的<span class="ff5">精髓</span>是大<span class="ff3">有<span class="ff5">裨益</span></span>的。</div><div class="t m0 x2 h4 y6d ff3 fs1 fc0 sc0 ls0 ws0">正<span class="ff2">因为上</span>述原<span class="ff2">因,</span>我<span class="ff2">们<span class="ff5">真切</span>地</span>感<span class="ff5">受<span class="ff2">到</span>将<span class="ff2">这本</span></span>书<span class="ff5">翻<span class="ff2">译、介</span>绍</span>给国<span class="ff2">内</span>读<span class="ff2">者<span class="ff5">将</span>是一件非常</span>有<span class="ff5">意义<span class="ff2">的</span>事<span class="ff2">,</span>衷心</span>希</div><div class="t m0 x1 h4 y6e ff3 fs1 fc0 sc0 ls0 ws0">望我<span class="ff2">们<span class="ff5">付</span>出的<span class="ff5">劳</span></span>动<span class="ff2">能对</span>国<span class="ff2">内的操作系统教学和实</span>践有所<span class="ff5">帮助<span class="ff2">和</span>促<span class="ff2">进。</span></span></div><div class="t m0 x2 h4 y6f ff2 fs1 fc0 sc0 ls0 ws0">本<span class="ff3">书</span>的第一<span class="ff5">章</span>,第二<span class="ff5">章</span>,第<span class="ff5">三章<span class="ff3">由</span>王鹏翻</span>译,<span class="ff5">刘福岩</span>和<span class="ff5">陆宁<span class="ff3">也</span>参</span>加了部分工作<span class="ff5">;</span>第<span class="ff5">四章<span class="ff3">由</span>朱鹏翻</span>译<span class="ff5">;</span>第</div><div class="t m0 x1 h4 y70 ff2 fs1 fc0 sc0 ls0 ws0">五<span class="ff5">章<span class="ff3">由</span>敖青云翻</span>译。<span class="ff3">全书由<span class="ff5">尤晋元</span></span>教授<span class="ff5">审</span>校并统<span class="ff5">稿</span>。</div><div class="t m0 x2 h4 y71 ff2 fs1 fc0 sc0 ls0 ws0">在<span class="ff3">整</span>个<span class="ff5">翻</span>译<span class="ff3">过</span>程中,上<span class="ff5">海交<span class="ff3">通</span></span>大学计算机系系统软件研究<span class="ff5">室</span>的师生<span class="ff3">给<span class="ff5">予</span></span>了许多<span class="ff5">帮助</span>。并<span class="ff3">且</span>在计算机系9<span class="ff3">5</span></div><div class="t m0 x1 h4 y72 ff2 fs1 fc0 sc0 ls0 ws0">级本科生的操作系统课程中进行了<span class="ff5">试</span>用,许多学生<span class="ff3">提</span>出了<span class="ff3">很好</span>的<span class="ff5">建</span>议,在<span class="ff3">此<span class="ff5">向</span></span>他们表<span class="ff5">示衷心</span>的<span class="ff3">感<span class="ff5">谢</span></span>。</div><div class="t m0 x2 h4 y73 ff2 fs1 fc0 sc0 ls0 ws0">特别要<span class="ff3">感<span class="ff5">谢</span></span>本<span class="ff3">书</span>的<span class="ff5">责</span>任编<span class="ff3">辑<span class="ff5">邓又</span>强</span>先生,本<span class="ff3">书</span>的<span class="ff5">顺</span>利出版与他的<span class="ff5">辛勤劳<span class="ff3">动</span></span>和<span class="ff5">热情支</span>持是分不开的。</div><div class="t m0 x2 h4 y74 ff5 fs1 fc0 sc0 ls0 ws0">虽<span class="ff3">然<span class="ff2">在</span></span>翻<span class="ff2">译<span class="ff3">过</span>程中<span class="ff3">我</span>们</span>尽力恪守“<span class="ff3">信<span class="ff2">,</span></span>达<span class="ff2">,</span>雅”<span class="ff2">的<span class="ff3">准则</span>,<span class="ff3">但</span>不<span class="ff3">当</span>和</span>疏漏<span class="ff3">之处<span class="ff2">在</span>所</span>难<span class="ff2">免,</span>敬请<span class="ff3">读<span class="ff2">者</span>提<span class="ff2">出</span></span>宝贵建</div><div class="t m0 x1 h4 y75 ff2 fs1 fc0 sc0 ls0 ws0">议。</div><div class="t m0 x4 h4 y76 ff2 fs1 fc0 sc0 ls0 ws0">译 者</div><div class="t m0 x4 h4 y77 ff2 fs1 fc0 sc0 ls0 ws0">199<span class="ff3">8</span>年4<span class="ff5">月</span>于上<span class="ff5">海交<span class="ff3">通</span></span>大学</div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/bg4.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h5 y78 ff2 fs2 fc0 sc1 ls0 ws0">第一<span class="ff5">章<span class="ff4 sc0"> </span><span class="ff3">引<span class="ff4 sc0"> </span>言</span></span></div><div class="t m0 x2 h4 y24 ff2 fs1 fc0 sc0 ls0 ws0">计算机<span class="ff3">如</span>果<span class="ff5">离</span>开了软件<span class="ff5">将</span>成为一<span class="ff5">堆废铜烂铁</span>。<span class="ff3">有</span>了软件,计算机可以对<span class="ff3">信息</span>进行<span class="ff3">存储</span>、<span class="ff3">处</span>理和<span class="ff3">检<span class="ff5">索</span></span>,可</div><div class="t m0 x1 h4 y25 ff2 fs1 fc0 sc0 ls0 ws0">以<span class="ff5">显示</span>多<span class="ff5">媒<span class="ff3">体</span></span>文<span class="ff5">档</span>、<span class="ff5">搜索</span>Internet并<span class="ff3">完</span>成<span class="ff3">其</span>他工作。计算机软件大<span class="ff3">致</span>分为<span class="ff3">两类</span>:系统软件和<span class="ff3">应</span>用软件。系统软</div><div class="t m0 x1 h4 y26 ff2 fs1 fc0 sc0 ls0 ws0">件<span class="ff3">管</span>理计算机本<span class="ff5">身</span>及<span class="ff3">应</span>用程序<span class="ff5">;<span class="ff3">应</span></span>用软件<span class="ff3">执</span>行用户<span class="ff3">最终所需</span>要的<span class="ff5">功</span>能。<span class="ff3">最</span>基本的系统软件是操作系统(o<span class="ff3">p</span>erat</div><div class="t m0 x1 h4 y27 ff2 fs1 fc0 sc0 ls0 ws0">in<span class="ff3">g</span> s<span class="ff5">y</span>stem),<span class="ff3">它<span class="ff5">控</span>制</span>计算机的<span class="ff3">所有<span class="ff5">资</span>源</span>并<span class="ff3">提供</span>开发<span class="ff3">应</span>用程序的基<span class="ff5">础</span>。</div><div class="t m0 x2 h4 y28 ff2 fs1 fc0 sc0 ls0 ws0">现<span class="ff3">代</span>计算机系统包<span class="ff3">含</span>一个<span class="ff3">或</span>多个<span class="ff3">处</span>理器、<span class="ff3">若<span class="ff5">干</span></span>内<span class="ff3">存</span>(常<span class="ff5">称</span>为<span class="ff3">R</span>AM-<span class="ff3">随</span>机<span class="ff3">存</span>取<span class="ff3">存储</span>器)、<span class="ff5">磁<span class="ff3">盘</span></span>、<span class="ff3">打印</span>机、</div><div class="t m0 x1 h4 y29 ff2 fs1 fc0 sc0 ls0 ws0">网络<span class="ff3">接口</span>及<span class="ff3">其</span>他<span class="ff3">输</span>入/<span class="ff3">输</span>出设<span class="ff3">备</span>。编<span class="ff3">写</span>一个程序来<span class="ff3">管</span>理<span class="ff3">所有</span>这些器件以<span class="ff3">正<span class="ff5">确</span></span>地使用<span class="ff3">它</span>们,<span class="ff3">即</span>使不<span class="ff5">考虑优<span class="ff3">化也</span></span>是</div><div class="t m0 x1 h4 y2a ff2 fs1 fc0 sc0 ls0 ws0">一件<span class="ff3">很<span class="ff5">困难</span></span>的<span class="ff5">事情</span>。<span class="ff3">如</span>果<span class="ff3">每</span>个程序员都<span class="ff3">必须处</span>理<span class="ff5">磁<span class="ff3">盘如何</span></span>工作,<span class="ff3">再</span>加上<span class="ff3">每读</span>一个<span class="ff5">磁<span class="ff3">盘</span>块</span>都<span class="ff3">有几十种</span>因<span class="ff5">素</span>可能导</div><div class="t m0 x1 h4 y2b ff3 fs1 fc0 sc0 ls0 ws0">致<span class="ff2">操作出<span class="ff5">错</span>,<span class="ff5">那么</span></span>很<span class="ff2">多程序简<span class="ff5">直</span></span>没法写<span class="ff2">。</span></div><div class="t m0 x2 h4 y2c ff2 fs1 fc0 sc0 ls0 ws0">许多年以前人们<span class="ff3">就认<span class="ff5">识</span></span>到<span class="ff3">必须<span class="ff5">找</span></span>到<span class="ff5">某<span class="ff3">种方法</span>将<span class="ff3">硬</span></span>件的<span class="ff5">复杂</span>性同程序员分<span class="ff5">离</span>开来。<span class="ff3">经过</span>不<span class="ff5">断探索</span>和<span class="ff3">改</span>进,</div><div class="t m0 x1 h4 y2d ff2 fs1 fc0 sc0 ls0 ws0">目前<span class="ff5">采</span>用的<span class="ff3">方法</span>是在<span class="ff5">裸</span>机上加<span class="ff5">载</span>一<span class="ff5">层</span>软件来<span class="ff3">管</span>理<span class="ff3">整</span>个系统,同时<span class="ff3">给</span>用户<span class="ff3">提供</span>一个<span class="ff5">更<span class="ff3">容</span>易</span>理<span class="ff3">解</span>和进行程序设计的</div><div class="t m0 x1 h4 y2e ff3 fs1 fc0 sc0 ls0 ws0">接口<span class="ff2">,这被<span class="ff5">称</span>为<span class="ff5">虚</span></span>拟<span class="ff2">机(<span class="ff5">v</span>irtual ma</span>c<span class="ff2">hine)。这</span>样<span class="ff2">一<span class="ff5">层</span>软件</span>就<span class="ff2">是操作系统。</span></div><div class="t m0 x2 h4 y2f ff2 fs1 fc0 sc0 ls0 ws0">这<span class="ff3">种处</span>理<span class="ff3">方</span>式<span class="ff3">如</span>图1-1<span class="ff3">所<span class="ff5">示</span></span>。<span class="ff3">底<span class="ff5">层</span></span>是<span class="ff3">硬</span>件,<span class="ff3">它</span>本<span class="ff5">身</span>可能包括<span class="ff3">两<span class="ff5">层</span>或</span>多<span class="ff5">层</span>。<span class="ff3">最<span class="ff5">低</span></span>一<span class="ff5">层</span>是<span class="ff3">物</span>理器件,包括集</div><div class="t m0 x1 h4 y30 ff2 fs1 fc0 sc0 ls0 ws0">成电<span class="ff5">路<span class="ff3">芯片</span></span>、<span class="ff5">连<span class="ff3">线</span></span>、电<span class="ff3">源</span>、<span class="ff5">监视</span>器<span class="ff3">等</span>,<span class="ff3">它</span>们的<span class="ff3">构<span class="ff5">造</span></span>和工作<span class="ff3">方</span>式<span class="ff5">属</span>于电<span class="ff3">气</span>工程师的<span class="ff5">范围</span>。</div><div class="t m0 x5 h4 y79 ff2 fs1 fc0 sc0 ls0 ws0">图 1<span class="ff3">-</span>1 计算机系统<span class="ff3">由硬</span>件、系统程序和<span class="ff3">应</span>用程序组成。</div><div class="t m0 x2 h4 y7a ff3 fs1 fc0 sc0 ls0 ws0">接<span class="ff2">着是<span class="fc1">微程序(mi<span class="ff3">c</span>ro<span class="ff3">p</span>ro<span class="ff3">g</span>ram),<span class="ff3">通</span>常<span class="ff3">存<span class="ff5">放</span></span>在<span class="ff3">只读存储</span>器中</span>,</span>它<span class="ff2">是一<span class="ff5">层</span></span>很原始<span class="ff2">的软件,用来<span class="ff5">控</span></span>制<span class="ff2">设</span>备<span class="ff2">并</span></div><div class="t m0 x1 h4 y7b ff5 fs1 fc0 sc0 ls0 ws0">向<span class="ff2">上一</span>层<span class="ff3">提供<span class="ff2">一个</span></span>更清晰<span class="ff2">的<span class="ff3">接口</span>。<span class="fc1">微程序实际上是一个<span class="ff3">解<span class="ff5">释</span></span>器</span>,<span class="ff3">它</span>先取得机器<span class="ff3">语言</span></span>指<span class="ff2">令,<span class="ff3">如</span>A<span class="ff3">DD</span>, M<span class="ff3">O</span>VE和</span>J<span class="ff3">U</span></div><div class="t m0 x1 h4 y7c ff2 fs1 fc0 sc0 ls0 ws0">M<span class="ff3">P等</span>,<span class="ff3">然</span>后<span class="ff3">通过</span>一个<span class="ff3">动</span>作序列来<span class="ff3">执</span>行这些<span class="ff5">指</span>令。<span class="ff5">例<span class="ff3">如</span></span>为了<span class="ff3">执</span>行一<span class="ff5">条</span>A<span class="ff3">DD<span class="ff5">指</span></span>令,微程序<span class="ff3">必须</span>先<span class="ff5">确定<span class="ff3">运</span></span>算数<span class="ff5">据</span>的</div><div class="t m0 x1 h4 y7d ff2 fs1 fc0 sc0 ls0 ws0">位<span class="ff5">置</span>,<span class="ff3">然</span>后取数,<span class="ff3">相</span>加,<span class="ff3">最</span>后<span class="ff3">存<span class="ff5">放</span></span>得数。<span class="ff3">由</span>微程序<span class="ff3">解<span class="ff5">释</span>执</span>行的这一<span class="ff5">套指</span>令<span class="ff5">称</span>为机器<span class="ff3">语言</span>。机器<span class="ff3">语言</span>并不是<span class="ff3">硬</span>件</div><div class="t m0 x1 h4 y7e ff2 fs1 fc0 sc0 ls0 ws0">的组成部分,<span class="ff3">但硬</span>件<span class="ff3">制<span class="ff5">造商</span>通</span>常在<span class="ff5">手册</span>中<span class="ff3">给</span>出机器<span class="ff3">语言</span>的<span class="ff3">完整<span class="ff5">描</span>述</span>,<span class="ff3">所</span>以许多人<span class="ff5">将<span class="ff3">它认</span></span>作<span class="ff5">真<span class="ff3">正</span></span>的<span class="ff5">“</span>计算机<span class="ff5">”</span>。</div><div class="t m0 x2 h4 y7f ff5 fs1 fc0 sc0 ls0 ws0">采<span class="ff2">用</span>精<span class="ff2">简</span>指<span class="ff2">令集计算机(<span class="ff3">R</span>ISC)<span class="ff3">技</span>术的计算机<span class="ff3">没有</span>微程序</span>层<span class="ff2">,<span class="ff3">其</span>机器</span>指<span class="ff2">令<span class="ff3">通过硬</span>件</span>逻<span class="ff3">辑</span>直<span class="ff3">接执<span class="ff2">行。</span></span>例<span class="ff3">如</span></div><div class="t m0 x1 h4 y80 ff2 fs1 fc0 sc0 ls0 ws0">Motorola <span class="ff3">68</span>0X0<span class="ff3">有</span>微程序,<span class="ff3">而</span>I<span class="ff3">B</span>M <span class="ff3">P</span>ower<span class="ff3">P</span>C <span class="ff3">则没有</span>。</div><div class="t m0 x2 h4 y81 ff2 fs1 fc0 sc0 ls0 ws0">机器<span class="ff3">语言<span class="ff5">典</span>型</span>地<span class="ff3">有5</span>0到100<span class="ff5">条指</span>令,大多数用来<span class="ff3">完</span>成数<span class="ff5">据<span class="ff3">传</span>送</span>、算术<span class="ff3">运</span>算和数<span class="ff5">值<span class="ff3">比较等</span></span>操作。在这个<span class="ff5">层</span></div><div class="t m0 x1 h4 y82 ff3 fs1 fc0 sc0 ls0 ws0">次<span class="ff2">上,</span>通过<span class="ff5">向<span class="ff2">特</span>殊<span class="ff2">的设</span></span>备<span class="ff5">寄</span>存<span class="ff2">器</span>写<span class="ff2">特<span class="ff5">定</span>的数<span class="ff5">值</span>来<span class="ff5">控</span></span>制输<span class="ff2">入/</span>输<span class="ff2">出设</span>备<span class="ff2">。<span class="ff5">例</span></span>如<span class="ff5">将磁</span>盘<span class="ff2">地址、内</span>存<span class="ff2">地址、</span>读<span class="ff5">字</span>节<span class="ff2">数</span></div><div class="t m0 x1 h4 y83 ff2 fs1 fc0 sc0 ls0 ws0">和操作<span class="ff3">类型</span>(<span class="ff3">读</span>/<span class="ff3">写</span>)<span class="ff3">等<span class="ff5">值</span>写</span>入特<span class="ff5">定</span>的<span class="ff5">寄<span class="ff3">存</span></span>器<span class="ff3">便</span>可<span class="ff3">完</span>成<span class="ff3">硬盘读</span>操作。实际操作<span class="ff5">往往<span class="ff3">需</span></span>要<span class="ff5">更</span>多的<span class="ff5">参</span>数,<span class="ff3">而</span>操作<span class="ff3">完</span></div><div class="t m0 x1 h4 y84 ff2 fs1 fc0 sc0 ls0 ws0">成后的<span class="ff5">返回状态<span class="ff3">也</span></span>非常<span class="ff5">复杂</span>。进一<span class="ff3">步而言</span>,对于许多I/<span class="ff3">O</span>设<span class="ff3">备</span>,时序在程序设计中的作用非常<span class="ff3">重</span>要。</div><div class="t m0 x2 h4 y85 ff2 fs1 fc0 sc0 ls0 ws0">操作系统的主要<span class="ff5">功</span>能<span class="ff3">之</span>一<span class="ff3">就</span>是<span class="ff5">将<span class="ff3">所有</span></span>这些<span class="ff5">复杂</span>性<span class="ff5">隐藏</span>起来,同时为程序员<span class="ff3">提供</span>一<span class="ff5">套更</span>加<span class="ff3">方便</span>的<span class="ff5">指</span>令,<span class="ff3">比</span></div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626db89d7b37011214e0ef70/bg5.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h4 y4f ff3 fs1 fc0 sc0 ls0 ws0">如<span class="ff2">,<span class="ff5">“</span>从文件中</span>读<span class="ff2">一个数<span class="ff5">据块”</span>在</span>概念<span class="ff2">上</span>比<span class="ff5">低层<span class="ff2">的</span>“<span class="ff2">移</span></span>动<span class="ff5">磁头臂<span class="ff2">,</span></span>等<span class="ff5">待旋转延迟”</span>之类<span class="ff2">的</span>细节<span class="ff2">来得简单、</span>方便<span class="ff2">。</span></div><div class="t m0 x2 h4 y50 ff2 fs1 fc0 sc0 ls0 ws0">在操作系统<span class="ff3">之</span>上是<span class="ff3">其</span>他系统软件,包括<span class="ff5">命</span>令<span class="ff3">解<span class="ff5">释</span></span>器(shell)、<span class="ff5">窗<span class="ff3">口</span></span>系统、编译器、编<span class="ff3">辑</span>器及<span class="ff3">类<span class="ff5">似</span></span>的<span class="ff5">独<span class="ff6">立</span></span></div><div class="t m0 x1 h4 y51 ff2 fs1 fc0 sc0 ls0 ws0">于<span class="ff3">应</span>用的程序。要<span class="ff6">注<span class="ff5">意<span class="ff3">它</span></span></span>们本<span class="ff5">身</span>并不是操作系统的组成部分,<span class="ff5">尽<span class="ff3">管它</span></span>们<span class="ff3">通</span>常<span class="ff3">由</span>计算机<span class="ff6">厂<span class="ff5">商<span class="ff3">提供</span></span></span>。这一<span class="ff5">点<span class="ff3">很重</span></span>要,</div><div class="t m0 x1 h4 y52 ff2 fs1 fc1 sc0 ls0 ws0">操作系统专<span class="ff5">指</span>在核<span class="ff5">心态</span>(<span class="ff5">k</span>ernel mode),<span class="ff3">或<span class="ff5">称</span>管<span class="ff5">态</span></span>(su<span class="ff3">p</span>er<span class="ff5">v</span>isor mode)<span class="ff3">下运</span>行的软件,<span class="ff3">它<span class="ff5">受</span>硬</span>件<span class="ff3">保护而</span>免<span class="ff6">遭</span></div><div class="t m0 x1 h4 y53 ff2 fs1 fc1 sc0 ls0 ws0">用户的<span class="ff6">篡<span class="ff3">改</span></span>。<span class="fc0">编译器和编<span class="ff3">辑</span>器<span class="ff3">运</span>行在用户<span class="ff5">态</span>(user mode)。<span class="ff3">如</span>果用户不<span class="ff3">喜欢<span class="ff5">某</span></span>一个编译器,他可以自<span class="ff3">己重写</span></span></div><div class="t m0 x1 h4 y54 ff2 fs1 fc0 sc0 ls0 ws0">一个,<span class="ff3">但</span>他<span class="ff3">却</span>不可以<span class="ff3">写</span>一个<span class="ff5">磁<span class="ff3">盘</span></span>中<span class="ff5">断<span class="ff3">处</span></span>理程序 - 因为这是操作系统的一部分,<span class="ff3">而且硬</span>件<span class="ff6">阻<span class="ff3">止</span></span>用户对<span class="ff3">它</span>进行<span class="ff3">修</span></div><div class="t m0 x1 h4 y55 ff3 fs1 fc0 sc0 ls0 ws0">改<span class="ff2">。</span></div><div class="t m0 x2 h4 y56 ff2 fs1 fc0 sc0 ls0 ws0">系统软件<span class="ff3">之</span>上是<span class="ff3">应</span>用软件,这些软件可以是<span class="ff6">购买</span>的<span class="ff3">或</span>者是用户自行开发的,<span class="ff3">它</span>们用来<span class="ff3">解决</span>特<span class="ff5">定</span>的<span class="ff3">问</span>题,</div><div class="t m0 x1 h4 y57 ff3 fs1 fc0 sc0 ls0 ws0">如<span class="ff5">字</span>处<span class="ff2">理、表<span class="ff6">格</span></span>处<span class="ff2">理、工程计算</span>或<span class="ff2">者电</span>子游<span class="ff6">戏</span>等<span class="ff2">。</span></div><div class="t m0 x1 h7 y86 ff7 fs3 fc0 sc0 ls0 ws0">1.1 <span class="ff6 sc1">什<span class="ff5">么<span class="ff2">是操作系统</span></span></span></div><div class="t m0 x2 h4 y87 ff2 fs1 fc0 sc0 ls0 ws0">多数计算机用户都使用<span class="ff3">过</span>操作系统,<span class="ff3">但</span>要<span class="ff5">精确</span>地<span class="ff3">给</span>出操作系统的<span class="ff5">定义<span class="ff3">却很</span>困难</span>,部分<span class="ff3">原</span>因是操作系统<span class="ff3">完</span></div><div class="t m0 x1 h4 y88 ff2 fs1 fc0 sc0 ls0 ws0">成<span class="ff3">两<span class="ff5">项</span>相</span>对<span class="ff5">独<span class="ff6">立</span></span>的任<span class="ff6">务</span>,<span class="ff3">下面我</span>们<span class="ff3">逐<span class="ff5">项</span></span>进行<span class="ff3">讨</span>论。</div><div class="t m0 x1 h7 y89 ff4 fs3 fc0 sc0 ls0 ws0">1.1.1 <span class="ff2 sc1">操作系统作为<span class="ff5">虚<span class="ff3">拟</span></span>机</span></div><div class="t m0 x2 h4 y8a ff2 fs1 fc0 sc0 ls0 ws0">对多数计算机<span class="ff3">而言</span>,在机器<span class="ff3">语言</span>一级的<span class="ff3">体</span>系结<span class="ff3">构</span>(<span class="ff5">指</span>令集、<span class="ff3">存储</span>组<span class="ff5">织</span>、I/<span class="ff3">O</span>和总<span class="ff3">线</span>结<span class="ff3">构</span>)上编程是<span class="ff3">很<span class="ff5">困难</span></span></div><div class="t m0 x1 h4 y8b ff2 fs1 fc0 sc0 ls0 ws0">的,<span class="ff5">尤<span class="ff3">其</span></span>是<span class="ff3">输</span>入<span class="ff3">输</span>出操作。<span class="ff5">例<span class="ff3">如</span>考虑</span>使用多数<span class="ff3">P</span>C机<span class="ff5">采</span>用的NEC <span class="ff3">PD</span>7<span class="ff3">65<span class="ff5">控</span>制</span>器<span class="ff3">芯片</span>(<span class="ff3">或<span class="ff5">功</span></span>能<span class="ff3">等<span class="ff6">价</span></span>的<span class="ff3">芯片</span>)来进</div><div class="t m0 x1 h4 y8c ff2 fs1 fc0 sc0 ls0 ws0">行软<span class="ff3">盘</span>I/<span class="ff3">O</span>操作。<span class="ff3">PD</span>7<span class="ff3">65有</span>1<span class="ff3">6<span class="ff5">条命</span></span>令,<span class="ff3">它通过<span class="ff5">向</span></span>一个设<span class="ff3">备<span class="ff5">寄</span>存</span>器<span class="ff3">装</span>入特<span class="ff5">定</span>的数<span class="ff5">据</span>来<span class="ff3">执</span>行这些<span class="ff5">命</span>令,<span class="ff5">命</span>令数<span class="ff5">据</span>长</div><div class="t m0 x1 h4 y8d ff3 fs1 fc0 sc0 ls0 ws0">度<span class="ff2">从1到9<span class="ff5">字</span></span>节<span class="ff2">不</span>等<span class="ff2">,</span>其<span class="ff2">中包括:</span>读写<span class="ff2">数<span class="ff5">据</span>、移</span>动<span class="ff5">磁头臂<span class="ff2">、<span class="ff6">格</span>式</span></span>化<span class="ff5">磁<span class="ff6">道<span class="ff2">、</span></span></span>初始化<span class="ff2">、</span>检测<span class="ff5">磁</span>盘<span class="ff5">状态<span class="ff2">、</span>复<span class="ff2">位、校</span></span>准</div><div class="t m0 x1 h4 y8e ff5 fs1 fc0 sc0 ls0 ws0">控<span class="ff3">制<span class="ff2">器及设</span>备等<span class="ff2">。</span></span></div><div class="t m0 x2 h4 y8f ff3 fs1 fc0 sc0 ls0 ws0">最<span class="ff2">基本的<span class="ff5">命</span>令是</span>读<span class="ff2">数<span class="ff5">据</span>和</span>写<span class="ff2">数<span class="ff5">据</span>。</span>它<span class="ff2">们<span class="ff6">均</span></span>需<span class="ff2">要1</span>3<span class="ff2">个<span class="ff5">参</span>数,</span>所有<span class="ff2">这1</span>3<span class="ff2">个<span class="ff5">参</span>数被<span class="ff5">封</span></span>装<span class="ff2">在9个<span class="ff5">字</span></span>节<span class="ff2">中。这些<span class="ff5">参</span></span></div><div class="t m0 x1 h4 y90 ff2 fs1 fc0 sc0 ls0 ws0">数<span class="ff5">指定</span>的<span class="ff3">信息有</span>:<span class="ff6">欲<span class="ff3">读</span></span>取的<span class="ff5">磁<span class="ff3">盘</span>块</span>地址、<span class="ff3">每<span class="ff5">条磁<span class="ff6">道</span></span></span>的<span class="ff6">扇<span class="ff3">区</span></span>数、<span class="ff3">物</span>理介<span class="ff5">质</span>的数<span class="ff5">据<span class="ff6">记<span class="ff3">录</span>格</span></span>式、<span class="ff6">扇<span class="ff3">区间</span>隙</span>、以及对<span class="ff3">已</span></div><div class="t m0 x1 h4 y91 ff6 fs1 fc0 sc0 ls0 ws0">删除<span class="ff2">数<span class="ff5">据</span>地址<span class="ff3">标<span class="ff5">识</span></span>的<span class="ff3">处</span>理<span class="ff3">方法等</span>。<span class="ff3">当<span class="ff5">磁</span>盘</span>操作结</span>束<span class="ff2">时,<span class="ff5">控<span class="ff3">制</span></span>器<span class="ff3">芯片<span class="ff5">返回</span>23</span>个<span class="ff5">状态</span>及出<span class="ff5">错<span class="ff3">信息</span></span>,<span class="ff3">它</span>们被<span class="ff5">封<span class="ff3">装</span></span>在7</span></div><div class="t m0 x1 h4 y92 ff2 fs1 fc0 sc0 ls0 ws0">个<span class="ff5">字<span class="ff3">节</span></span>中。<span class="ff3">此外</span>,程序员还要<span class="ff6">注<span class="ff5">意<span class="ff3">步</span></span></span>进电机的开<span class="ff3">关<span class="ff5">状态</span></span>。<span class="ff3">如</span>果电机<span class="ff3">关<span class="ff6">闭</span></span>,<span class="ff3">则</span>在<span class="ff3">读写</span>数<span class="ff5">据</span>前要先<span class="ff3">启动它</span>(<span class="ff3">有</span>一<span class="ff6">段</span></div><div class="t m0 x1 h4 y93 ff3 fs1 fc0 sc0 ls0 ws0">较<span class="ff2">长的加<span class="ff6">速</span>时</span>间<span class="ff2">)。还要<span class="ff6">注<span class="ff5">意</span></span>电机不能长时</span>间处<span class="ff2">于开</span>启<span class="ff5">状态<span class="ff2">,<span class="ff6">否</span></span></span>则<span class="ff5">将<span class="ff6">损坏<span class="ff2">软</span></span></span>盘<span class="ff2">,</span>所<span class="ff2">以程序员</span>必须<span class="ff2">在</span>较<span class="ff2">长的</span>启动</div><div class="t m0 x1 h4 y94 ff5 fs1 fc0 sc0 ls0 ws0">延迟<span class="ff2">和可能对软<span class="ff3">盘</span></span>造<span class="ff2">成<span class="ff6">损坏<span class="ff3">之间</span></span>作出<span class="ff6">折</span></span>衷<span class="ff2">。</span></div><div class="t m0 x2 h4 y95 ff5 fs1 fc0 sc0 ls0 ws0">显<span class="ff3">然<span class="ff2">,程序员不想</span>涉<span class="ff2">及</span>硬<span class="ff2">件的这些具</span>体细节<span class="ff2">(</span>也<span class="ff2">包括</span>硬盘<span class="ff2">,</span>它<span class="ff2">与软</span>盘<span class="ff2">不同,</span>但<span class="ff2">同</span>样很</span>复杂<span class="ff2">)。他<span class="ff3">需</span>要的</span></div><div class="t m0 x1 h4 y96 ff2 fs1 fc0 sc0 ls0 ws0">是一<span class="ff3">种</span>简单的高<span class="ff3">度<span class="ff6">抽<span class="ff5">象</span></span></span>的设<span class="ff3">备</span>。一<span class="ff3">种<span class="ff5">典</span>型</span>的<span class="ff6">抽<span class="ff5">象</span></span>是一<span class="ff3">张<span class="ff5">磁</span>盘</span>包<span class="ff3">含</span>了一组<span class="ff5">命</span>名的文件,<span class="ff3">每</span>个文件可以被<span class="ff3">打</span>开,<span class="ff3">然</span></div><div class="t m0 x1 h4 y97 ff2 fs1 fc0 sc0 ls0 ws0">后进行<span class="ff3">读写</span>,<span class="ff3">最</span>后被<span class="ff3">关<span class="ff6">闭</span></span>。<span class="ff3">其</span>中的一些<span class="ff3">细节如</span>数<span class="ff5">据<span class="ff6">记<span class="ff3">录</span>格</span></span>式、<span class="ff3">当</span>前<span class="ff3">步</span>进电机的开<span class="ff3">启<span class="ff5">状态</span>等则</span>对用户<span class="ff5">隐藏</span>。</div><div class="t m0 x2 h4 y98 ff2 fs1 fc1 sc0 ls0 ws0">这<span class="ff3">种<span class="ff5">将</span>硬</span>件<span class="ff3">细节</span>与程序员<span class="ff6">隔<span class="ff5">离</span></span>开来、同时<span class="ff3">提供</span>一个简<span class="ff6">洁</span>的<span class="ff5">命</span>名文件<span class="ff3">方</span>式的程序,<span class="ff3">就</span>是操作系统。<span class="fc0">与<span class="ff5">磁<span class="ff3">盘</span></span></span></div><div class="t m0 x1 h4 y99 ff6 fs1 fc0 sc0 ls0 ws0">抽<span class="ff5">象<span class="ff3">类</span>似<span class="ff2">,<span class="ff3">它</span>还</span>隐藏<span class="ff2">了<span class="ff3">其</span>他许多</span>低层<span class="ff3">硬<span class="ff2">件的特性,包括中</span></span>断<span class="ff2">、时</span></span>钟<span class="ff2">、<span class="ff3">存储</span>器<span class="ff3">等</span>。总<span class="ff3">之</span>,操作系统<span class="ff3">提供</span>的<span class="ff3">每</span>一<span class="ff3">种</span></span></div><div class="t m0 x1 h4 y9a ff6 fs1 fc0 sc0 ls0 ws0">抽<span class="ff5">象<span class="ff2">都<span class="ff3">较</span></span>低层<span class="ff3">硬<span class="ff2">件本</span></span>身更<span class="ff2">简单、</span>更易<span class="ff2">用。</span></span></div><div class="t m0 x2 h4 y9b ff2 fs1 fc0 sc0 ls0 ws0">从这个<span class="ff6">角<span class="ff3">度看</span></span>,<span class="fc1">操作系统的作用是为用户<span class="ff3">提供</span>一<span class="ff3">台等<span class="ff6">价</span></span>的扩展计算机,<span class="ff3">或<span class="ff5">称虚</span>拟</span>机,<span class="ff3">它比<span class="ff5">低层</span>硬</span>件<span class="ff5">更<span class="ff3">容</span></span></span></div><div class="t m0 x1 h4 y9c ff5 fs1 fc1 sc0 ls0 ws0">易<span class="ff2">编程<span class="fc0">。本<span class="ff3">书</span>的内<span class="ff3">容正</span>是<span class="ff3">详细说明</span>操作系统<span class="ff3">如何<span class="ff5">做</span></span>到这一<span class="ff5">点</span>。</span></span></div><div class="t m0 x1 h7 y9d ff4 fs3 fc0 sc0 ls0 ws0">1.1.2 <span class="ff2 sc1">操作系统作为<span class="ff5">资<span class="ff3">源管</span></span>理器</span></div><div class="t m0 x2 h4 y9e ff2 fs1 fc0 sc0 ls0 ws0">上<span class="ff3">述<span class="ff5">虚</span>拟</span>机<span class="ff3">模型</span>是一<span class="ff3">种</span>自<span class="ff6">顶<span class="ff5">向<span class="ff3">下</span></span></span>的<span class="ff6">观<span class="ff5">点</span></span>。<span class="ff3">按照</span>自<span class="ff3">底<span class="ff5">向</span></span>上的<span class="ff6">观<span class="ff5">点</span></span>,操作系统<span class="ff3">则</span>用来<span class="ff3">管</span>理一个<span class="ff5">复杂</span>系统的<span class="ff3">各</span></div><div class="t m0 x1 h4 y9f ff2 fs1 fc0 sc0 ls0 ws0">个部分。现<span class="ff3">代</span>计算机都包<span class="ff3">含处</span>理器、<span class="ff3">存储</span>器、时<span class="ff6">钟</span>、<span class="ff5">磁<span class="ff3">盘</span></span>、<span class="ff6">鼠<span class="ff3">标</span></span>、网络<span class="ff3">接口</span>、<span class="ff6">激光<span class="ff3">打印</span></span>机以及<span class="ff3">其</span>他许多设<span class="ff3">备</span>,</div><div class="t m0 x1 h4 ya0 ff2 fs1 fc0 sc0 ls0 ws0">从这个<span class="ff6">角<span class="ff3">度看</span></span>,操作系统的任<span class="ff6">务</span>是在<span class="ff3">相互<span class="ff6">竞争</span></span>的程序<span class="ff3">间有</span>序地<span class="ff5">控<span class="ff3">制</span></span>这些设<span class="ff3">备</span>的分<span class="ff3">配</span>。</div><div class="t m0 x2 h4 ya1 ff2 fs1 fc0 sc0 ls0 ws0">设想在一<span class="ff3">台</span>计算机上<span class="ff3">运</span>行的<span class="ff5">三</span>个程序同时<span class="ff5">试</span>图在一<span class="ff3">台打印</span>机上<span class="ff3">输</span>出计算结果,<span class="ff5">那么</span>可能<span class="ff5">头<span class="ff3">几</span></span>行是程序1的</div><div class="t m0 x1 h4 ya2 ff3 fs1 fc0 sc0 ls0 ws0">输<span class="ff2">出,</span>接下<span class="ff2">来</span>几<span class="ff2">行是程序</span>2<span class="ff2">的</span>输<span class="ff2">出,</span>然<span class="ff2">后<span class="ff5">又</span>是程序</span>3<span class="ff2">的</span>输<span class="ff2">出</span>等等<span class="ff2">,</span>最终打印<span class="ff2">结果<span class="ff5">将</span>是一<span class="ff6">团糟</span>。操作系统<span class="ff5">采</span>用<span class="ff5">将</span></span></div><div class="t m0 x1 h4 ya3 ff3 fs1 fc0 sc0 ls0 ws0">打印输<span class="ff2">出<span class="ff6">缓冲</span>到<span class="ff5">磁</span></span>盘<span class="ff2">上的</span>方法<span class="ff2">可以<span class="ff6">避</span>免这</span>种<span class="ff6">混乱<span class="ff2">。</span></span>当<span class="ff2">一个程序结<span class="ff6">束</span>后,操作系统<span class="ff5">将<span class="ff6">暂</span></span></span>存<span class="ff2">在<span class="ff5">磁</span></span>盘<span class="ff2">文件上的</span>输<span class="ff2">出结</span></div><div class="t m0 x1 h4 ya4 ff2 fs1 fc0 sc0 ls0 ws0">果<span class="ff5">送</span>到<span class="ff3">打印</span>机,同时<span class="ff3">其</span>他程序可以<span class="ff5">继续<span class="ff3">运</span></span>行<span class="ff6">产</span>生<span class="ff3">新</span>的<span class="ff3">输</span>出结果,<span class="ff3">而</span>这些程序并不<span class="ff5">知<span class="ff6">道</span></span>这些<span class="ff3">输</span>出<span class="ff3">没有<span class="ff6">立</span>即<span class="ff5">送</span>至打</span></div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>