(一)课程导入(5分钟)
1. 问题引导:展示计算机运行多个程序时的内存使用情况图,提问学生“计算机如何合理分配内存空间给这些程序,确保它们高效运行?当程序所需内存超过实际物理内存时又该如何处理?”引发学生思考,引出存储管理的概念。
2. 知识回顾:简要回顾计算机系统的组成,强调存储部件在计算机系统中的重要性,为后续讲解存储管理知识做好铺垫。
(二)知识讲解(30分钟)
1. 存储管理概述(5分钟)
存储体系:讲解计算机存储体系由寄存器、高速缓存、内存、外存和云存储组成,通过PPT展示存储体系结构示意图,详细介绍各存储部件的特点(速度、容量、成本、易失性等)。以超市货物存储为例,寄存器和高速缓存类比为超市收银台附近的临时货架,存放常用物品,存取速度快但容量小;内存如同超市的普通货架,容量和速度适中;外存则像超市的大型仓库,容量大但存取速度慢;云存储类似租用的外部大型存储中心,通过网络连接使用。强调存储管理的作用是协调这些存储部件,满足计算机系统对存储的需求。
存储管理的任务:介绍存储管理的任务包括内存分配与回收、内存共享、内存保护、“扩充”内存容量等。通过实际的程序运行场景,如多个程序同时运行时的内存分配,讲解内存分配与回收的概念和重要性;以多个进程共享程序代码为例,说明内存共享的实现和意义;结合多道程序系统中程序相互干扰的问题,讲解内存保护的必要性和方法,如地址越界保护和权限保护;通过虚拟存储技术的概念,解释“扩充”内存容量的目的和实现方式。
地址转换:讲解逻辑地址和物理地址的概念,以及地址重定位的必要性。通过举例,如用户编写程序时使用的地址和程序在内存中实际存放的地址不同,说明逻辑地址和物理地址的区别。详细介绍静态重定位和动态重定位的定义、实现方式和特点。以搬家为例,静态重定位好比在搬家前就把所有物品的新位置都确定好并标记(程序装入前完成地址转换);动态重定位则像在搬家过程中,每使用一件物品时再确定它的新位置(程序执行过程中进行地址转换)。通过具体案例,如给定一个程序的逻辑地址和分配的内存空间,演示静态重定位和动态重定位的过程,帮助学生理解两种重定位方式的差异。
2. 分区管理方案(8分钟)
固定分区:讲解固定分区的基本思想,即把内存划分成若干个大小固定的分区,每个分区装入一个运行程序。展示固定分区的分区说明表示例,介绍分区说明表的内容(分区序号、大小、起始地址、使用状态)。通过实例,如给定几个程序的大小和内存分区情况,演示如何根据程序需求在分区说明表中查找空闲分区进行分配,以及程序结束后如何回收分区。分析固定分区的优缺点,优点是管理简单,缺点是内存利用率低,存在内碎片问题,可接纳程序的大小受分区大小限制。以宿舍分配房间为例,固定分区就像把宿舍房间固定划分给不同的人,无论这个人是否住满,其他人也不能使用该房间剩余空间,导致空间浪费(内碎片)。可变分区:讲解可变分区的基本思想,即系统不预先划分固定分区,装入程序时根据程序需求量划分内存分区。通过PPT展示可变分区的内存分配和回收过程示例,讲解可变分区在内存分配过程中如何根据程序大小划分空闲区,以及在回收分区时如何处理与相邻空闲区的合并问题。介绍可变分区的实现需要设置基址寄存器和限长寄存器进行地址转换,以及利用已分配内存链表和空闲内存链表来管理内存分区。讲解可变分区的三种分配算法(最先适应算法、最优适应算法、最坏适应算法),通过实例分析每种算法的特点和适用场景。例如,最先适应算法如同在一排座位中,从第一个空座位开始找,找到能坐下的就安排(找到第一个满足申请长度的空闲区分配);最优适应算法则像找最适合自己身材的衣服,挑选能满足申请长度的最小空闲区(最贴合需求);最坏适应算法类似专门找最大的空房间,找到能满足申请要求的最大空闲区(可能造成大空间浪费)。分析可变分区的优缺点,优点是内存利用率比固定分区高,缺点是存在外碎片问题,需要进行内存紧缩来解决外碎片,但内存紧缩会增加系统开销。以动态调整教室分配为例,可变分区如同根据上课人数动态调整教室大小,但可能会出现一些小的空闲教室碎片,需要重新安排(内存紧缩)才能满足大班级的需求。
分区管理方案的优缺点总结:对比固定分区和可变分区的优缺点,再次强调分区管理方案在内存利用和管理复杂性方面的特点。总结分区管理方案的共同局限性,如内存使用仍不充分、不能实现对内存的“扩充”、程序需全部装入内存才能运行等。
3. 覆盖与交换技术(6分钟)
覆盖技术:讲解覆盖技术的定义,即程序的若干程序段或几个程序的某些部分共享某一个存储空间。通过具体案例,如一个大型程序由多个功能模块组成,部分模块不会同时执行,展示如何将这些模块划分为不同的程序段,让不会同时执行的程序段共享同一块内存区域,实现逻辑上扩充内存空间的目的。以一个多功能游戏程序为例,游戏的不同关卡模块不会同时运行,可通过覆盖技术让它们共享同一内存区域,减少内存占用。分析覆盖技术的优点是能在小容量内存上运行较大程序,缺点是需要程序员手动划分程序段,增加了编程复杂度。
交换技术:讲解交换技术的定义,即在分时系统中,将暂时不用的进程或其一部分调出内存,存放在外存后备存储区,腾出内存空间给当前需要的进程,以后再将换出的进程调入内存继续执行。介绍交换技术中需要考虑的问题,如换出进程的选择(一般选择短时间内不会投入运行的进程)、交换时机的确定(内存空间不够或进程长时间不运行时)、交换空间的分配(进程创建时分配或换出时分配)以及换入进程换回内存时位置的确定(根据地址类型决定是否在原来位置)。以宾馆房间分配为例,交换技术如同将暂时不住的客人行李放到仓库(外存后备存储区),腾出房间给新客人,等原来的客人回来再安排房间,需要考虑安排哪个房间合适(换入位置)等问题。分析交换技术的优点是提高内存利用率,缺点是交换过程涉及内外存数据传输,会增加系统开销。
4. 虚拟页式存储管理方案(11分钟)
虚拟存储技术:讲解虚拟存储技术的基本思想,即利用大容量外存扩充内存,产生一个比实际内存大得多的逻辑虚拟内存空间,以支持多道程序系统和大型程序运行。介绍虚拟存储技术的实现方式,由操作系统在硬件支持下统一管理内存和外存,将程序当前使用的部分保留在内存,其他部分存放在磁盘上,并在需要时进行动态交换。强调虚拟存储器的容量受地址空间字长和外存容量限制。通过实例,如一个大型数据库程序运行时,部分数据和程序代码在内存,部分在磁盘,当需要访问磁盘上的数据时再调入内存,说明虚拟存储技术的工作原理。对比虚拟存储技术与交换技术的区别,虚拟存储一般以页为交换单位,而传统交换技术以进程为单位。
虚拟页式存储管理:讲解虚拟页式存储管理的发展历程和实现方式,如英国曼彻斯特大学提出并在Atlas计算机上使用,现代微机系统广泛应用。介绍存储管理部件(MMU)的作用,以及内存和程序逻辑地址如何分页,虚拟地址的组成(虚拟页号和页内地址)。以一本书为例,虚拟页式存储管理就像把书分成若干页(内存和程序逻辑地址分页),每一页有一个编号(虚拟页号),页内的内容有具体位置(页内地址),方便查找和管理。
物理内存的分配与回收:讲解页式存储管理中物理内存以物理页面为单位进行分配和回收,通过位示图来记录物理页面的分配情况。详细介绍位示图的结构和使用方法,如位示图中每一位对应一个物理页面,0表示空闲,1表示已占用,以及如何根据位示图进行内存分配和回收操作,计算物理页面号和在位示图中的位置。通过实例,如给定一个位示图和程序的页面需求,演示如何在位示图中查找空闲页面进行分配,以及程序结束后如何回收页面。
虚拟页式存储地址转换过程:讲解虚拟页式存储地址转换需要页表控制寄存器(页表始址寄存器和页表长度寄存器)和高速缓冲存储器(TLB)的支持。详细介绍页表的作用,即指出虚拟地址中的页号与物理页面号的对应关系,以及页表项的设计(物理页面号、有效位、访问位、修改位、保护位)。通过实例,如给定一个虚拟地址,演示如何通过页表进行地址转换,计算出物理地址。介绍多级页表、散列页表和反置页表的概念和适用场景,以及TLB的工作原理和对地址转换速度的提升作用。以图书馆的图书索引为例,页表就像图书索引表,帮助找到图书(程序数据)在书架(内存)上的位置;多级页表如同大型图书馆的多层索引,方便管理大量图书;散列页表类似根据书名的某个特征快速查找图书的方法;反置页表则像根据书架位置查找对应的图书编号;TLB就像图书馆管理员记住的常用图书位置,加快查找速度。
讲解缺页异常处理的流程,当发生缺页时,操作系统如何寻找空闲物理页面、选择置换页面(如果没有空闲页面)以及更新页表和内存分配表。通过缺页异常处理流程图,详细解释每一步的操作和决策过程。
页面调度策略:讲解页面调度策略包括调入策略、置页策略和置换策略。介绍调入策略中的请求调页和预调页的概念和特点,请求调页如同需要某本书时才去图书馆借(只调入发生缺页时所需的页面),实现简单但可能产生较多缺页异常;预调页则像预计会用到某些书,提前借回来(一次调入该页以及相邻的几个页),可提高I/O效率但可能造成浪费。讲解置换策略中的固定分配局部置换、可变分配全局置换和可变分配局部置换的概念和区别,以及页面置换算法(理想页面置换算法、先进先出页面置换算法、第二次机会页面置换算法、时钟页面置换算法、最近最少使用页面置换算法)的原理和实现方式。通过实例,如给定一个进程的页面访问序列,分别演示不同置换算法的工作过程,分析它们的优缺点和适用场景。例如,先进先出页面置换算法像先排队的人先离开,总是选择最先装入内存的一页调出;最近最少使用页面置换算法则像根据最近使用情况,淘汰最长时间未被使用过的页面。
虚拟页式存储管理的优点缺点及性能问题:总结虚拟页式存储管理的优点,如解决碎片问题,提高内存利用率,有利于多道程序执行;缺点如存在内碎片问题,页面调度可能导致系统性能下降。讲解虚拟存储管理的性能问题,如颠簸现象的产生原因(缺页率高)和解决方法(采用工作集模型),介绍工作集的概念和工作集窗口的作用。以汽车在崎岖道路上行驶为例,颠簸现象就像汽车在坑洼路面频繁颠簸(页面频繁调度),影响行驶速度(系统性能),工作集模型则像根据汽车行驶的路况(程序运行需求)调整车轮的位置(分配合适的物理页面数),减少颠簸。
(三)课堂讨论(5分钟)
1. 提出问题:提出具有启发性和讨论价值的问题,如“在虚拟页式存储管理中,如何选择合适的页面置换算法以提高系统性能?”“对比分区管理方案和虚拟页式存储管理方案,分析它们在不同应用场景下的优劣。”“结合实际生活中的例子,解释内存共享和保护的重要性。”等。
2. 组织讨论:将学生分成小组进行讨论,鼓励学生积极发表观点,分享自己的理解和想法。教师在各小组间巡视,参与讨论,适时给予引导和启发,帮助学生拓展思路,深入分析问题。
3. 总结点评:各小组代表发言,分享小组讨论结果。教师对各小组的讨论情况进行总结和点评,肯定学生的正确观点,纠正错误认识,补充完善知识点,进一步加深学生对存储管理知识的理解和应用能力。例如,在讨论页面置换算法选择时,引导学生考虑系统中进程的特点、内存使用情况等因素对算法性能的影响;在对比分区管理和虚拟页式存储管理方案时,帮助学生从内存利用率、管理复杂度、适用场景等方面进行全面分析。
(四)课堂总结(3分钟)
1. 知识回顾:结合PPT或板书,与学生一起回顾本节课所学的重点知识,包括存储管理的概念、存储体系结构、分区管理方案、覆盖与交换技术、虚拟页式存储管理方案等。以思维导图的形式呈现知识框架,帮助学生梳理知识点之间的联系,加深记忆。
2. 强调重点:强调本节课的重点和难点内容,如地址转换技术、分区管理的分配算法、虚拟页式存储管理的地址转换过程和页面置换算法等,提醒学生在课后复习时重点关注。对学生在课堂上的表现进行总结和鼓励,激发学生继续学习操作系统相关知识的积极性。
(五)课后作业(2分钟)
1. 书面作业:布置书面作业,要求学生完成PPT中的复习题,通过书面作业巩固本节课所学的知识点,加深对存储管理概念、原理和技术的理解。
例如,让学生计算不同内存分配算法下的内存利用率、分析虚拟页式存储管理中地址转换的过程、比较不同页面置换算法的性能等。
2. 实践作业:让学生查阅资料,了解某一特定操作系统(如Linux或Windows)中存储管理的实现方式,并撰写一篇简短的报告。报告内容包括该操作系统采用的存储管理技术、内存分配和回收的具体方法、页面调度策略等,培养学生自主学习和信息收集、分析的能力,提高学生对知识的应用和拓展能力。