⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch5.htm

📁 汤子瀛《操作系统》电子教案
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>操作系统-第五章</title>
<style fprolloverstyle>A:hover {color: red; font-weight: bold}
</style>
</head>

<body bgcolor="#0099FF" link="#00FFFF" vlink="#008000">

<center>
<table border="1" width="80%" bgcolor="#0000FF" height="1">
  <tr>
    <td width="100%" align="center" height="53" colspan="2"><font size="5" face="黑体" color="#FFFFFF"><font LANG="ZH-CN">第五章</font> 
      存储器管理 
      </font></td>
  </tr>
  <tr>
    <td width="100%" align="center" height="147" colspan="2">
      <p style="TEXT-ALIGN: center" align="center"> </p>
      <p align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a href="#ch51">5.1 
      程序的装入和链接<o:p>
      </o:p>
      </a></font></span></p>
      <p style="TEXT-ALIGN: center" align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a href="#ch52">5.2<span style="mso-spacerun: yes">&nbsp; 
      </span>连续分配存储管理方式<o:p>
      </o:p>
      </a></font></span></p>
      <p style="TEXT-ALIGN: center" align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a href="#ch53">5.3<span style="mso-spacerun: yes">&nbsp; 
      </span>对换<o:p>
      </o:p>
      </a></font></span></p>
      <p style="TEXT-ALIGN: center" align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a href="#ch54">5.4<span style="mso-spacerun: yes">&nbsp; 
      </span>分页存储管理方式<o:p>
      </o:p>
      </a></font></span></p>
      <p style="TEXT-ALIGN: center" align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a href="#ch55">5.5 
      分段存储管理<o:p>
      </o:p>
      </a></font></span></p>
      <p ALIGN="center" style="margin-top: 10"> </td>
  </tr>
  <tr>
    <td width="18%" align="center" height="39"><font LANG="ZH-CN" color="#FFFFFF">作业:</font></td>
    <td width="96%" align="center" height="39">
      <p align="left"><font color="#FFFFFF"><font LANG="ZH-CN">&nbsp;&nbsp;</font></font></td>
  </tr>
  <tr>
    <td width="114%" align="center" height="39" colspan="2"><a href="index.htm"><font color="#FFFFFF">返回&lt;&lt;</font></a></td>
  </tr>
  <tr>
    <td width="100%" align="left" height="53" colspan="2">
      <p align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a name="ch51"></a>5.1 
      程序的装入和链接<o:p>
      </o:p>
      </font></span></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span lang="EN-US">&nbsp;&nbsp; 
      </span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事,就是要将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序,通常要经过以下几步:</span></font></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">(</span><span lang="EN-US">1</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)编译。由编译程序(</span><span lang="EN-US">Compiler</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)将用户源代码编译成若干个目标模块(</span><span lang="EN-US">Object 
      Module</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">);</span></font></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">(</span><span lang="EN-US">2</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)链接。由链接程序(</span><span lang="EN-US">Linker</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块(</span><span lang="EN-US">Load 
      Module</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">);</span></font></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">(</span><span lang="EN-US">3</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)装入。由装入程序(</span><span lang="EN-US">Loader</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)将装入模块装入内存。</span></font></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span lang="EN-US">&nbsp;</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">5.1.1<span style="mso-spacerun: yes">&nbsp; 
      </span>程序的装入<o:p>
      </o:p>
      </span></font></p>
      <p style="tab-stops: list 26.25pt"><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">一、绝对装入方式(</span><span lang="EN-US">Absolute 
      Loading Mode</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)</span></font></p>
      <p><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">二、可重定位装入方式(</span><span lang="EN-US">Relocatable 
      Loading Mode</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)</span></font></p>
      <p><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">三、动态运行时装入方式(</span><span lang="EN-US">Dynamic 
      Run-Time Loading</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)</span></font></p>
      <p><font color="#FFFFFF"><span lang="EN-US">&nbsp;</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">5.1.2 
      程序的链接<o:p>
      </o:p>
      </span></font></p>
      <p><font color="#FFFFFF"><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">一、静态链接</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><o:p>
      </o:p>
      </span></font></p>
      <p><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF">在将几个目标模块链接装配成一个装入模块时,需要解决以下两个问题:</font></span></p>
      <p><font color="#FFFFFF"><span lang="EN-US">1</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">.对相对地址进行修改</span></font></p>
      <p><font color="#FFFFFF"><span lang="EN-US">2</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">.变换外部调用符号</span></font></p>
      <p><font color="#FFFFFF"><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">二、装入时动态链接(</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">Load-Time 
      Dynamic Linking</span><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><o:p>
      </o:p>
      </span></font></p>
      <p><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF">装入时动态链接方式有以下优点:</font></span></p>
      <p><font color="#FFFFFF"><span lang="EN-US">1</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">.便于软件版本的修改和更新</span></font></p>
      <p><font color="#FFFFFF"><span lang="EN-US">2</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">.便于实现目标模块共享</span></font></p>
      <p><font color="#FFFFFF"><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">三、运行时动态链接(</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">Run-Time 
      Dynamic Linking</span><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><o:p>
      </o:p>
      </span></font></td>
  </tr>
  <tr>
    <td width="100%" align="left" height="53" colspan="2">
    </center>
    <p style="TEXT-ALIGN: center" align="center"><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><font color="#FFFFFF"><a name="ch52"></a>5.2<span style="mso-spacerun: yes">&nbsp; 
    </span>连续分配存储管理方式<o:p>
    </o:p>
    </font></span></p>
    <p><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF">连续分配是指为一个用户程序分配一个连续的内存空间。</font></span></p>
    <p><font color="#FFFFFF"><span lang="EN-US">&nbsp;</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">5.2.1 
    单一连续分配<o:p>
    </o:p>
    </span></font></p>
    <p><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF">这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,内存分为以下两个分区:</font></span></p>
    <p><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">(</span><span lang="EN-US">1</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)系统区。</span></font></p>
    <p><font color="#FFFFFF"><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">(</span><span lang="EN-US">2</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">)用户区。</span></font></p>
    <p><font color="#FFFFFF"><span lang="EN-US">&nbsp;</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt">5.2.2 
    固定分区分配<o:p>
    </o:p>
    </span></font></p>
    <p><font color="#FFFFFF"><span style="mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">一、划分分区的方法</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt"><o:p>
    </o:p>
    </span></font></p>
    <p><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF">将内存空间划分为若干个固定大小的分区,可用下述两种方法:</font></span></p>
    <p><font color="#FFFFFF"><span lang="EN-US">1</span><span style="mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman">.分区大小相等</span></font></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -