操作系统第13次课.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第13次课

第13次课 第五章 存储器管理 内容 程序的装入和链接 连续分配存储管理方式 覆盖与交换 分页存储管理方式 分段存储管理方式 1. 如何将源程序变为在内存中执行的进程? 编辑:形成源文件 编译:形成目标模块 链接:由多个目标模块或程序库生成装入模块 装入:将装入模块装入内存 2. 程序如何装入内存? 程序装入问题的实质就是解决地址映射问题。 3. 程序的链接 链接的实质是将用到的各模块联系在一起,能够找到被调用模块。 2. Load-time Dynamic Linking 这种用法的前提是在编译之前已经明确知道要调用DLL中的哪几个函数,编译时在目标文件中只保留必要的链接信息,而不含DLL函数的代码;当程序执行时,利用链接信息加载DLL函数代码并在内存中将其链接入调用程序的执行空间中,其主要目的是便于代码共享。 3.Run-time Dynamic Linking 这种方式是指在编译之前并不知道将会调用哪些DLL函数,完全是在运行过程中根据需要决定应调用哪个函数,并用LoadLibrary和GetProcAddress动态获得DLL函数的入口地址。 问题1:内存空间是如何使用的? 1.1 连续分配存储管理方式 连续分配是指为一个用户程序分配一个连续的内存空间 1.1.1 单一连续分配 1.1.2 固定分区分配 1.1.3 动态分区分配 1.1.4 动态重定向分区分配 1.1.1 单一连续分配 这是一种最简单的存储管理方式,但只能用于单用户、单 任务的操作系统,如在8位和16位微机上CP/M和MS-DOS操作 系统。它将内存分为两个区: ?系统区:仅供操作系统使用,通常设置在内存的低段; ?用户区:指除系统区以外的全部内存空间,提供给用户使用。 地址重定位时,只要将指令或数据的逻辑地址加上用户区 基地址,就可以形成物理地址。 为了防止操作系统程序受到用户程序有意或无意的破坏, 需要设置内存保护机构,如采用基址寄存器和界限寄存器机制。 1.1.1 单一连续分配 1.1.2 固定分区分配 固定式分区是在作业装入之前,将内存空间划分为若干个 固定大小的区域。划分工作可以由系统管理员完成,也可以由 操作系统实现。然而一旦划分完成,在系统运行期间不再重新 划分,即分区的个数不可变,分区的大小不可变,所以,固定 式分区又称为静态分区。 在每个分区中可以装入一道作业,这样当内存中划分成几 个分区时,便允许几道作业并发运行;当有一个分区空闲时, 便可从外存的后备队列中,选择一个适当大小的作业装入该分 区;当该作业运行结束时,又可从后备队列中找出另一个作业 调入该分区。 5.2.2 固定分区分配 1.1.2 固定分区分配 划分分区的方法 分区大小相等 当程序太小时,会造成内存空间的浪费 当程序太大时,可能不足以装入程序,而使程序无法运行 只适合于多个相同程序的并发执行(处理多个类型相同的对象)。 分区大小不等 将内存的用户区域划分成大小不等的分区,以适应不同大小的作业的需要。 多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 1.1.2 固定分区分配 大小相等 大小不等 1.1.2 固定分区分配 内存分配 为了便于内存分配,通常将这些分区根据它们的大小进行 排队,并为之建立一张分区分配(使用)表。 各表项包括该分区的起始地址、大小及状态(是否已分配) 当有一用户程序要装入时,由内存分配程序检索该表,从 中找出一个能满足要求的、尚未分配的分区,将它分配给该程 序,然后修改分区使用表中的状态;若找不到大小足够的分区 ,则拒绝为该程序分配内存。 1.1.2 固定分区分配 区号 大小 起址 标志 1 16KB 20K 已分配 2 32KB 36K 已分配 3 64KB 68K 已分配 4 124KB 132K 未分配 (a) 分区说明表 内碎片:占用分区之内未被利用的空间 1.1.2 固定分区分配 分区分配操作 1.1.2 固定分区分配 固定分区分配是最简单的多道程序的存储管理方式。实现 技术简单。但由于每个分区的大小固定,必然会造成存储空间 的浪费;而且,程序大小受分区空间大小的限制。 适用于作业的大小和多少事先都比较清楚的系统中。它 用于60年代的IBM-360的MFT操作系统中。 目前多用于控制系统。 1.1.3 动态分区分配 可变式分区中分区的大小和分区的个数都是可变的,而且 是根据作业的大小和多少动态地划分,因此又称为动态式分区 这种存储管理技术是固定

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档