操作系统基础教程.ppt

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

(4) 存贮保护: 越界保护-范围 存贮键保护-存贮权限 (5) 主存扩充:逻辑存贮区扩充 (利用辅存) (6) 存贮管理功能: (a) 映射逻辑地址为存贮地址-地址映射 (b) 在多个用户间分配主存-主存分配? 算法+数据结构=程序 研究主存分配算法,以及算法的性能 (c) 对主存中信息提供保护-存贮保护 (d) 扩充逻辑存区-主存扩充(这里指的扩充并非指硬件设备上的扩充,而是用存储管理软件来实现逻辑上的扩充-即所谓的虚拟存贮技术) (1)单一连续区分配 (a)概要:存区分为o.s连续区和用户连续区 o.s区 用户区 越界R 受保护 o.s存取区特权 管态 目态 §7.2 实存管理 (b) 简单、低效、单一用户 单用户o.s的内存管理十分简单,因为存贮器在任何时候都只保存一个用户进程,除o.s本身占据的内存外都可分配给用户使用。 方案: ? o.s可以占据RAM的底部(a)或顶部(b) ? 也可以部分在内存顶部的Rom中,另一部分存放RAM底部(c) 例如: IBM PC在MS/DOS下,其内存分配情况如(c) 其装有设备驱动程序的8kRom占据1M地址空间的最高区,通常称Rom中的这些设备驱动程序为BIOS 用户 程序 o.s (a) 用户 程序 o.s (b) Rom设备 驱动程序 o.s 用户程序 (c) (2) 固定分区:把主存分成若干个固定大小的存储区(存储块) (a) 概要:主存被划分为多个分区,每个分区分给某一作业使用,并由分区说明表指明作业按区分配直到该作业完成后才把该存储区归返系统。 type N=integer; Entry= record Size: integer Location: integer Status: boolean end Var MBT: array [1..N] of entry o.s区 20k 28k 60k 90k 128k 256k 0区 1区 2区 3区 4区 区号 大小 起址 状态 1 2 3 4 20k 28k 60k 128k in using NuL 8k 32k 68k 128k in using NuL (存贮分块表MBT) 固定分区分配算法大区图 要求xk大小的分区 取分区说明表的 第一项 该分区空闲吗? 分区大小?xk 表结束吗? 返回分区号 状态位置1 无法分配 取下一项 N N N Y Y Y (b) 特点 由操作员划分分区MBT应放在操作系统区内,填分区表 多道程序 零头 缺点:不允许两个作业同时放于同一个分区中剩下的空闲部分称为内存碎片,降低了主存利用率。 (3) 可变分区 (a) 概要: 存贮空间的划分在作业装入时进行(事先并未划分成一块块分区),且使分区大小与作业大小一致(按作业大小建立)分区大小、个数,不固定的(系统启动时,整个主存除o.s块外,其余主存区可看成是整个一个分区)。 O.S 自 由 分 区 0 512k 1536k 序号 大小 起址 状态 1 2 3 4 312k 320k - 384k 已分 已分 8k 32k - 120k 空表目 已分 5 - - 空表目 大小 起址 状态 352k 504k 自由 空表目 32k 520k 自由 空表目 - - 空表目 - - - - 已分配分区表 UBT表 自由分区表FBT 例: 20k 28k 94k 232k 248k o.s区 Job1(8k) Job2(16k) Job4(50k) Job3(124k) Job5(16k) 44k 108k 256k 分裂 分裂 ? 来了job4(50k), job5(16k) 未分配分区表(自由分区表)FBT的变化 序号 大小 起址 状态 1 2 64k?14k 24k?8k 44k?94k 232k?248k 自由 自由 ? job2, job3完成后、释放(如下图) o.s区 Job1 Job2 Job4 Job3 Job5 合并 空 (i) 分配算法 申请分配一个xk大小的分区 置空白区号F=1 (F)的状态=可用? 空白区F大小?xk? loc?(F)的始址 否 是 请求-主存块程序框图 F=未分配表的结尾? 置空白区F,F的状态=空表目 (F)的大小-xk? (F)的大小 loc+xk ?(F)的始边 在分配表中找一个状 态=空表目的分区P 置P分区的大小=xk 置P分区的地址=loc 置状态=已分配 返回一个分区号P 本次无法分配 一个分区 F+1?F > < = 是 否 (是自由还是空表目) 空表目 (b) 分配与回收 ? 寻找一个容纳作业的空白区 ? 分裂该区, (分配区和空白区)修改两个表 ? 返回分配区序号和始址 有:首次适应、循环首次适应、最佳适应、最坏适应算法。 ? 检查是否与空白区相邻,是则合并成一个大空白区

文档评论(0)

各行业精品文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档