3.1 固定分区存储管理
- 格式:pdf
- 大小:465.50 KB
- 文档页数:13
可编辑修改精选全文完整版<<操作系统教程>>(第5版)教学计划说明各学校和学院在教学计划、教学要求、课程设置、学时安排、教学大纲,乃至学生程度等方面存在种种差异,采用本教材授课时,应酌情对内容进行取舍。
课时充分时,可考虑讲授全部内容,否则,突出基本内容,简化实例,重点讲述原理。
(1)共安排54学时(每周3学时×(18)周)讲课,期中和期末测验另行安排时间。
(2)许多院校每学期讲课时间少于18周或有更多学时,则有些章节可以适当减少或增加学时,有些内容可精简不讲或略讲。
同时可以安排课堂讨论,采用分组研讨,课堂汇报,集体评论的形式。
“讨论题”可在电子资料中找到。
(3)采用ppt配合讲课,每次讲授的信息量较大,讲课速度可以提高,ppt讲稿可供学生下载,便于课后复习。
(4)第8章可略去部分或全部,以压缩课时,或者作为一次学术讲座。
(5)操作系统是一门实践性、应用性很强的课程,如果仅仅学习理论知识是很难达到理想教学效果的,必须配合上机实验,既可以单独开课,也可作为课程的一部份。
南京大学在原理教学部分--设计了“模拟类实验”配合原理教学同步进行,可参考本书网站。
实验教学部分—包含了“内核类和应用类实验”,请参考由高教育出版社出版的配套教材<<Linux操作系统实验教程>>。
(6)考试范围重点放在基本概念、基本原理和基本技术方面,实例及涉及具体操作系统细节的内容可以不作为考试范围和要求的重点。
(7)学生成绩考核采取综合评定方式,由以下部分组成:作业10-15%、上机实习20%、课程测验10-15%、期终考试60-50%。
各校可根据具体情况调整比例(实验课也可单独开设,另计学分)。
(8)由于习题较多,思考题由学生自行选做,作业仅布置应用题,每学期拟做50题左右。
注意“应用题参考答案”及“考研真题和参考答案”仅供给选择本教材院校的老师参考,不直接提供给学生使用,每学期均有多所院校学生来函索求答案,我们都会婉言拒绝。
第十一讲存储器管理之连续分配方式所谓连续分配方式:是指为一个用户程序分配一个连续的内存空间。
又可把连续分配方式分为:单一连续分配,固定分区分配,动态分区分配,动态重定位分区分配,四种方式。
1 单一连续分配(单独分区分配)最简单的一种存储管理方式,但只能用于单用户、单任务的OS中。
概念:单一连续分配就是整个主存区域的用户空间均归一个用户作业使用。
存储管理方法:将内存分为系统区(内存低端,分配给OS用)和用户区(内存高端,分配给用户用)。
其中用户区是指除了系统区外的内存空间,提供给用户程序使用。
采用静态分配方式,即作业一旦进入内存,就要等待它运行结束后才能释放内存。
主要特点:管理简单,只需小量的软件和硬件支持,便于用户了解和使用。
但因内存中只装入一道作业运行,内存空间浪费大,各类资源的利用率也不高。
例子:一个容量为256KB的内存,操作系统占用32KB,剩下224KB全部分配给用户作业,如果一个作业仅需64KB,那么就有160KB的存储空间被浪费。
2 固定分区分配分区分配方式是满足多道程序设计需要的一种最简单的存储管理方法。
2.1 思想:将内存分成若干个分区(大小相等/不相等),除OS占一区外,其余的每一个分区容纳一个用户程序。
这样来实现多道并发。
2.2 分区划分方法:分区大小相等,分区大小不等。
但事先必须确定,在运行时不能改变。
即分区大小及边界在运行时不能改变。
2.3 内存分配:首先:要先建立一张分区说明表或使用表,以记录分区号、分区大小、分区的起始地址及状态(已分配或未分配)。
其次:当某个用户程序要装入内存时,由内存分配程序检索分区说明表,从表中找出一个满足要求的尚未分配的分区分配该程序,同时修改说明表中相应分区的状态;若找不到大小足够的分区,则拒绝为该程序分配内存。
第三:当程序执行完毕,释放占用的分区,管理程序将修改说明表中相应分区的状态为未分配,实现内存资源的回收。
2.4 特点主要特点:管理简单,但因作业的大小并不一定与某个分区大小相等,从而使一部分存储空间被浪费。
操作系统存储管理实验报告一、实验目的操作系统的存储管理是计算机系统中非常重要的组成部分,它直接影响着系统的性能和资源利用率。
本次实验的目的在于深入理解操作系统中存储管理的基本原理和方法,通过实际操作和观察,掌握存储分配、回收、地址转换等关键技术,并对不同存储管理策略的性能进行分析和比较。
二、实验环境本次实验在 Windows 10 操作系统下进行,使用 Visual Studio 2019 作为编程环境,编程语言为 C++。
三、实验内容(一)固定分区存储管理1、原理固定分区存储管理将内存空间划分为若干个固定大小的分区,每个分区只能装入一道作业。
分区的大小可以相等,也可以不等。
2、实现创建一个固定大小的内存空间数组,模拟内存分区。
为每个分区设置状态标志(已分配或空闲),并实现作业的分配和回收算法。
3、实验结果与分析通过输入不同大小的作业请求,观察内存的分配和回收情况。
分析固定分区存储管理的优缺点,如内存利用率低、存在内部碎片等。
(二)可变分区存储管理1、原理可变分区存储管理根据作业的实际需求动态地划分内存空间,分区的大小和数量是可变的。
2、实现使用链表或数组来管理内存空间,记录每个分区的起始地址、大小和状态。
实现首次适应、最佳适应和最坏适应等分配算法,以及分区的合并和回收算法。
3、实验结果与分析比较不同分配算法的性能,如分配时间、内存利用率等。
观察内存碎片的产生和处理情况,分析可变分区存储管理的优缺点。
(三)页式存储管理1、原理页式存储管理将内存空间和作业都划分为固定大小的页,通过页表将逻辑地址转换为物理地址。
2、实现设计页表结构,实现逻辑地址到物理地址的转换算法。
模拟页面的调入和调出过程,处理缺页中断。
3、实验结果与分析测量页式存储管理的页面置换算法(如先进先出、最近最少使用等)的命中率,分析其对系统性能的影响。
探讨页大小的选择对存储管理的影响。
(四)段式存储管理1、原理段式存储管理将作业按照逻辑结构划分为若干个段,每个段有自己的名字和长度。
存储管理的基本模式存储管理是操作系统中重要的组成部分,负责管理计算机系统中的内存和外部存储器。
存储管理的基本模式主要有以下几种:1. 固定分区固定分区是一种简单的存储管理方式,它将内存分为若干个固定大小的区域,每个区域对应一个进程或任务。
每个进程只能在自己的区域中运行,不能访问其他区域的内存。
这种方式在一定程度上限制了进程的自由度,但由于实现简单,在一些简单系统中仍然被采用。
优点:实现简单,安全可靠。
缺点:分区数量固定,造成内存浪费,且不利于大内存程序的运行。
适用场景:适用于内存较小、任务数量固定的系统。
2. 动态分区动态分区是一种更为灵活的存储管理方式,它根据进程或任务的实际需要,动态地分配内存空间。
这种方式能够更好地利用内存资源,提高内存利用率。
优点:内存利用率高,适用于大内存程序。
缺点:实现相对复杂,需要操作系统进行更多的管理操作。
适用场景:适用于内存较大、任务数量不确定的系统。
3. 页式管理页式管理是一种将内存分为若干个页(page)的存储管理方式。
每个页的大小固定,可以存放一个进程或任务的一部分。
页式管理通过将程序分割成多个页面,实现了内存的离散分配。
优点:内存利用率高,可以实现多道程序运行。
缺点:实现相对复杂,需要处理页面置换和缺页等问题。
适用场景:适用于内存较大、任务数量不确定的系统。
4. 段式管理段式管理将内存分为若干个段(segment),每个段的大小不固定,可以存放一个进程或任务的一部分。
段式管理通过将程序分割成多个段,实现了内存的逻辑分段。
优点:便于多道程序运行,可以实现分段保护和分段共享。
缺点:实现相对复杂,需要处理段之间的地址映射和保护等问题。
适用场景:适用于内存较大、任务数量不确定的系统。
5. 段页式管理段页式管理结合了页式管理和段式管理的优点,将内存分为若干个段,每个段又包含若干个页。
这种方式可以实现内存的逻辑分段和离散分配,同时提高了内存的利用率和多道程序运行能力。
分区存储管理的种类
分区存储管理主要有以下几种类型:
1. 固定分区:这种类型的分区是将内存固定地划分为若干个大小不等的分区,供各个程序使用。
每个分区的大小和位置都固定,系统运行期间不再重新划分。
这种管理方式适用于单用户、单任务系统。
2. 可变分区:这种类型的分区是根据程序的需求动态地分配内存空间。
系统会在空闲内存中寻找合适大小的分区分配给程序。
可变分区管理方式能够适应不同程序的内存需求,但可能导致内存碎片问题。
3. 动态创建分区:这种分区管理方式是根据程序的申请要求动态地分配内存空间。
优点是没有内部碎片,但缺点是有外部碎片(难以利用的小空闲分区)。
4. 重定位分区:这种类型的分区管理方式是在程序运行时,将程序的逻辑地址转换为物理地址。
当程序需要访问内存时,系统会找到对应物理地址的数据或指令。
这种管理方式适用于多道程序运行的系统。
5. 页式存储管理:这种类型的分区管理方式是将内存划分为固定大小的页面,程序可以分散在不同的页面中。
页面可以动态分配和回收,
从而减少内存碎片。
页式存储管理具有无外部碎片的优点,但可能存在内部碎片问题。
总之,不同的分区存储管理方式有各自的优缺点和适用场景。
在实际应用中,可以根据具体需求和硬件条件选择合适的分区管理方式。
一、单项选择题1.要保证一个程序在主存中被改变了存放位置后仍能正确执行,则对主存空间应采用()技术。
A.动态重定位B.静态重定位C.动态分配D.静态分配2.固定分区存储管理把主存储器划分成若干个连续区,每个连续区称一个分区。
经划分后分区的个数是固定的,各个分区的大小()。
A.是一致的B.都不相同C.可以相同,也可以不相同,但根据作业长度固定D.在划分时确定且长度保持不变3.采用固定分区方式管理主存储器的最大缺点是()。
A.不利于存储保护B.主存空间利用率不高C.要有硬件的地址转换机构D.分配算法复杂4.采用可变分区方式管理主存储器时,若采用最优适应分配算法,宜将空闲区按()次序登记在空闲区表中。
A.地址递增B.地址递减C.长度递增D.长度递减5.在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能要与相邻空闲区合并。
在修改未分配区表时,使空闲区个数不变且空闲区始址不变的情况是()空闲区。
A.无上邻也无下邻B.无上邻但有下邻C.有上邻也有下邻D.有上邻但无下邻6.在可变分区存储管理中,采用“紧凑"技术可以()。
A.汇集主存中的空闲区B.增加主存容量C.缩短访问周期D.加速地址转换7.页式存储管理中的页表是由()建立的。
A.操作员B.系统程序员C.用户D.操作系统8.采用页式存储管理时,重定位的工作是由()完成的。
A.操作系统B.用户C.地址转换机构D.主存空间分配程序9.采用段式存储管理时,一个程序如何分段是在()决定的。
A.分配主存时B.用户编程时C.装人作业时D.程序执行时10.采用段式存储管理时,一个程序可以被分成若干段,每一段的最大长度是由( )限定的。
A.主存空闲区的长度B.硬件的地址结构C.用户编程时D.分配主存空间时11.实现虚拟存储器的目的是()。
A.扩充主存容量B.扩充辅存容量C.实现存储保护D.加快存取速度12.LRU页面调度算法是选择( )的页面先调出.A.最近才使用B.最久未被使用C.驻留时间最长D.驻留时间最短13.若进程执行到某条指令时发生了缺页中断,经操作系统处理后,当该进程再次占用处理器时,应从()指令继续执行。
中山大学信息科学与技术学院计算机科学系 中山大学信息科学与技术学院计算机科学系课程教学大纲《操作系统原理》课程教学大纲课程名称:操作系统原理类别:专业必修课授课对象:本科生总学时:72学时适用专业:计算机科学与技术/信息安全开课学期:第五学期编写人员:丘静玉审核人员:印鉴编写日期:2006年4月一、教学目的操作系统是配置在计算机硬件上的第一层软件,其他所有的系统软件和应用软件都必须依赖于操作系统的支持。
《操作系统原理》是计算机学科各相关专业的重要的必修课程之一,它在计算机知识结构中有着极其重要的地位和作用,可为学生较全面地建立起关于计算机系统的概念。
学生通过学习本课程应该达到以下目标:1.掌握操作系统的基本概念、原理、技术和方法,深入了解操作系统在计算机系统中的地位及作用,以及它与硬件和其它软件之间的关系,进而了解操作系统控制整个计算机系统执行的全过程,具有操作系统的整体概念。
2.能用程序设计语言编写、调试和运行操作系统的主要算法和功能模块。
3.了解一个以上主流操作系统的实现技术,熟练掌握应用。
4.获取知识的同时,掌握学科的基本规律及研究方法,初步培养自我拓展知识和运用知识的能力。
总之,本课程要求学生全面地了解和掌握操作系统的目标、作用和模型,从资源管理的角度领会操作系统的功能和实现过程,使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力,鼓励并初步培养学生的研究精神和能力。
二、教材选择1. 教学内容概述《操作系统原理》讲述操作系统的基本概念、原理和方法,其课程内容应包含《中国计算机科学与技术学科课程2002》(简称CCC2002)里列举的知识体系:CS-OS1至8。
从资源管理的角度来说,课程内容主要围绕操作系统的几个基本功能展开:(1) 操作系统概述:介绍操作系统的基本概念、目标、功能、发展历史和类型、操作系统的主要成就以及现代操作系统的特点等。
(2) 处理器管理:在进程概念的基础上讨论进程描述、进程控制、进程同步和互斥、死锁、饿死、线程、处理器调度等问题。
第3章存储管理3.1 计算机系统中的存储器3.2 重定位1.主存的地址空间常称为P39 ( C )A.逻辑地址空间B.程序地址空间C.物理地址空间D.相对地址空间2.支持程序浮动的地址转换机制是P40 ( D )A. 页式地址转换B. 段式地址转换C. 静态重定位D. 动态重定位3.要保证一个程序在主存中被改变了存放位置后仍能正确执行,则对主存空间应采用下列哪个技术。
( B )A.静态重定位B.动态重定位C.动态分配D.静态分配4.动态重定位是在下列哪种情况下完成的( C )A. 作业执行前集中一次B.作业执行过程中集中一次C.作业执行过程中D.作业执行过程中由用户完成5.采用静态重定位方式装入的作业,在作业执行过程中进行地址转换的是( B )A. 由软件和硬件相互配合B. 由软件独立C. 只需要硬件D. 不需要3.3 单用户连续存储管理6.在以下存贮管理方案中,不适用于多道程序设计系统的是( A )A. 单用户连续分配B. 固定式分区分配C. 可变式分区分配D. 页式存贮管理7.MS-DOS的内存空间采用的存储管理方式是( D )A.固定分区B.可变分区C.页式D.单连续3.4 固定分区存储管理8.采用固定分区方式管理主存储器的最大缺点是( B )A.不利于存储保护B.主存空间利用率不高C.要有硬件的地址转换机构D.分配算法复杂9.下面的存储管理方案中,可以采用静态重定位的是( A )A.固定分区B.可变分区C.页式D.段式3.5 可变分区存储管理10.每次分配时总是顺序查找空闲区表,找到第一个能满足作业长度要求的空闲区,此种分配算法称为( A )A. 最先适应分配算法B. 最优适应分配算法C. 最坏适应分配算法D. 随机适应分配算法11.在可变分区存储管理中,为了实现主存的空间分配,应设置( D )A.页表B.段表C.位示图D.空闲区表12.在可变分区分配方案中,为了实现主存的空间分配,管理采用( D )A.页表B.段表C.段表+页表D.分区分配表+空闲区表13.在可变式分区存储管理中,某作业完成后要收回其主存空间,该空间可能与相邻空闲区合并,在修改空闲区表时使空闲区数不变且空闲区起始地址不变的情况是( C )A.无上邻空闲区也无下邻空闲区B.有上邻空闲区但无下邻空闲区C.无上邻空闲区但有下邻空闲区D.有上邻空闲区也有下邻空闲区14.在一个可变分区存储管理中,最坏适应分配算法宜将空闲区表中的空闲区按下列次序排列的是( D )A.地址递增B.地址递减C.长度递增D.长度递减15.可变分区方式常用的主存分配算法有:最先适应、最优适应和最坏适应分配算法,其中,按分区大小排序组织空闲区表的是( B )A. 最先适应和最坏适应B. 最优适应和最坏适应C. 最先适应和最优适应D. 最先适应、最优适应和最坏适应3.6 页式虚拟存储管理16.实现虚拟存储器的目的是( A )A.扩充主存容量B.扩充辅存容量C.实现存储保护D.加快存取速度17.分页式存储管理时,每读写一个数据,要访问主存( B )A. 1次B. 2次C. 3次D. 4次18.在存储管理的各方案中,可扩充主存容量的管理方案是( D )A. 固定式分区分配B. 可变式分区分配C. 页式存储管理D. 分页虚拟存储管理19.页式存储管理中的页表是由( C )A. 用户建立B. 编译程序建立C. 操作系统建立D. 编辑程序建立20.在页式虚拟存储管理中,为实现地址变换,应建立( C )A. 空闲区表B. 分区分配表C. 页表D. 段表21.在采用页式存储管理的系统中,( B )A. 不可以把作业分散到几个不连续的主存区域B. 不需要采用移动技术移动作业区C. 不需要硬件支持 D .不采用动态重定位的方式装入作业22.在页式存储管理方案中,为地址转换提供依据需建立( A )A.页表B.段表C.段表和页表D.空闲区表23.LRU页面调度算法是选择先调出的页面是( B )A.最近才使用的B.最久未被使用的C.驻留时间最长的D.驻留时间最短的24.如果处理器有32位地址,则它的虚拟地址空间为( B )A. 2GBB. 4GBC. 640KBD. 16MB25.在请求页式存储管理中,产生缺页中断是因为查找的页不在( B )A. 外存中B. 虚存中C. 内存中D. 地址空间中26.采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是( B )A. 224B. 216C. 28D. 2321.把逻辑地址转换成绝对地址的工作称为。
计算机操作系统习题5参考答案习题5参考答案Ⅰ问答题1. 存储管理的主要功能是什么?答:(1)主存空间的分配与回收。
系统按照一定的算法把某一空闲的存储空间分配给作业或进程;用户不需要时,及时回收,以供其它用户程序使用。
(2)地址转换(地址重定位)。
把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址。
(3)主存空间的共享和保护。
可用的主存空间可由两个或多个进程共享。
同时要保护系统程序区不被用户有意或无意的侵犯,不允许用户程序读写不属于自己地址空间的数据,避免各道程序间相互干扰。
特别是当一道程序发生错误时,不至于影响其它程序的运行。
(4)主存空间的扩充。
使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。
2. 指出逻辑地址与物理地址的不同点。
答:用户的源程序一旦编译之后,每个目标模块都以0为基地址进行编址,这种地址称为逻辑地址或相对地址。
为了便于CPU访问,内存中的每个物理存储单元都有一个编号,这个编号称为内存地址,即物理地址(也称绝对地址)。
3. 何谓地址转换(重定位)?有哪些方法可以实现地址转换?答:当作业运行时,不能用逻辑地址在内存中读取信息,必须把作业地址空间中使用的逻辑地址转换成内存空间中的物理地址,这种转换称为地址转换。
实现地址转换的方法有:静态地址转换和动态地址转换。
4. 简述什么是覆盖?什么是交换?覆盖和交换的区别是什么?答:覆盖技术主要是指同一主存区可以被不同的程序段重复使用。
交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。
交换是由操作系统完成,用户并不知道。
操作系统按一定的策略采用“强占”和“礼让”的方法,把内存部分内容暂时放到硬盘交换区中。
覆盖是由用户控制,操作系统提供覆盖机制,用户给出该程序的覆盖结构。
覆盖机构将整个作业分为常驻和覆盖两部分。
子程序不会同时调入内存。
用户只要将最大的子程序作为覆盖区告诉系统即可。
简述存储管理的主要功能存储管理是计算机系统的一个重要组成部分,它负责管理计算机系统的存储器,包括内存和外部存储设备。
在计算机系统中,存储管理的主要功能包括以下几个方面:1.内存管理内存管理是存储管理的核心功能,它主要负责管理计算机系统的内存资源,包括内存的分配、释放、保护和共享等。
内存管理的主要任务是为正在运行的进程分配内存空间,并在进程结束时回收这些空间,以便其他进程可以使用。
内存管理还需要保护内存中的数据和指令,防止进程之间相互干扰和破坏。
内存管理的主要实现方式有两种:一种是固定分区法,另一种是动态分区法。
固定分区法将内存分为若干个固定大小的区域,每个区域可以分配给一个进程使用。
动态分区法则通过动态分配内存空间来满足进程的内存需求,每个进程可以获得一个可变大小的内存区域。
这两种内存管理方式都有其优缺点,需要根据不同的应用场景进行选择。
2.外部存储管理外部存储管理是指管理计算机系统的外部存储设备,如硬盘、U盘等。
外部存储设备通常具有较大的存储容量,可以用于存储大量的数据和文件。
外部存储管理的主要任务是为应用程序提供文件的读写服务,并管理存储设备中的文件系统。
外部存储管理的实现方式包括文件系统和数据库管理系统。
文件系统主要用于管理文件和目录,提供文件的读写服务。
文件系统通常采用层次结构来组织文件和目录,可以实现快速查找和访问文件。
数据库管理系统则主要用于管理数据,提供数据的查询、更新和删除等服务。
数据库管理系统通常采用关系模型来组织数据,可以实现高效的数据访问和管理。
3.虚拟存储管理虚拟存储是指在计算机系统中使用磁盘空间来扩展内存容量的技术。
虚拟存储管理的主要任务是将进程的部分数据和指令存储在磁盘上,以释放内存空间,从而提高内存利用率。
当进程需要这些数据和指令时,虚拟存储管理系统会将其从磁盘中载入内存。
虚拟存储管理的实现方式包括分页和分段两种。
分页是将内存和磁盘空间分为若干个固定大小的页,每个进程可以占用若干个页,进程所需的数据和指令可能分散在不同的页中。
解释固定分区法和动态分区法的基本原理。
固定分区法和动态分区法是操作系统中两种常用的内存分配策略。
在理解这两种分区法的基本原理之前,我们首先需要了解内存管理的概念。
内存管理是操作系统的重要功能之一,负责管理计算机内存的分配和回收。
在执行程序时,需要将程序及其所需的数据加载到内存中,供CPU进行运算。
为了能够高效地利用内存资源,操作系统需要合理地进行内存分配。
固定分区法,顾名思义,就是将内存空间划分为若干个固定大小的分区,每个分区分配给一个进程使用。
当有新的进程请求分配内存时,操作系统会根据进程所需的内存大小,选择一个合适的分区进行分配。
常见的固定分区算法有首次适应算法、最佳适应算法和最坏适应算法等。
首次适应算法是指从内存的第一个空闲分区开始查找,找到第一个能够满足进程内存需求大小的分区进行分配。
该算法的优点是简单高效,但由于内存分区大小不同,可能会造成一些较大的分区使用率较低的情况。
最佳适应算法是指从所有空闲分区中选择最小的能够满足进程内存需求的分区进行分配。
该算法的优点是可以尽量利用较小的空闲分区,但效率相对较低。
最坏适应算法是指从所有空闲分区中选择最大的分区进行分配,该算法的优点是可以尽量避免出现大块空闲分区而无法分配给进程的情况,但会导致较小的分区被浪费。
动态分区法则是区别于固定分区法的内存管理策略。
动态分区法的特点是内存空间大小可变,可以根据进程的实际需要进行动态调整。
当有新的进程请求分配内存时,操作系统会根据进程所需的内存大小,从空闲内存中选择一个大小合适的连续区域进行分配。
常见的动态分区算法有首次适应算法、最佳适应算法和最坏适应算法等。
首次适应算法和最佳适应算法在动态分区法中的应用原理与固定分区法中的相似。
首次适应算法是从所有空闲分区中选择第一个能够满足进程内存需求大小的分区进行分配。
最佳适应算法是从所有空闲分区中选择最小的能够满足进程内存需求大小的分区进行分配。
最坏适应算法是从所有空闲分区中选择最大的分区进行分配。
固定分区存储管理模拟实现问题描述:主存空间200k,分区分配如下表编程采用顺序分配算法为job3(40k)和job4(10)分配内存,回收job2。
1、数据结构:采用结构体数组,通过外部文件对结构体数组进行赋值2、用户输入欲分配的作业名及长度(一次一个作业)3、采用顺序分配算法源代码:#include <stdio.h>#include <stdlib.h>#include <string.h>struct mm{int mmstart;int mmlength;char mmflag[5];};struct mm mm1[10];int length;void getdata(){FILE * fp;int i=0;if ((fp=fopen("data.dat","r"))==NULL){printf("文件未找到\n");exit(0);}while(!feof(fp)){fscanf(fp,"%d%d%s",&mm1[i].mmstart,&mm1[i].mmlength,mm1[i].mmflag);i++;}length=i;fclose(fp);}void display(){int i;printf("序号起始地址长度占用标志\n");printf("---------------------------------\n");for(i=0;i<length;i++)printf("%4d%9d%5d%9s\n",i,mm1[i].mmstart,mm1[i].mmlength,mm1[i].mmflag); }void mm(){char jobname[5];int len,i,f;printf("请输入作业名及长度");scanf("%s%d",jobname,&len);while(1){f=0;for(i=0;i<length;i++)if(strcmp(mm1[i].mmflag,jobname)==0){printf("作业已在内存中\n");return;} for(i=0;i<length;i++){if((len<=mm1[i].mmlength)&&(strcmp(mm1[i].mmflag,"0")==0)){strcpy(mm1[i].mmflag,jobname);f=1;break;}}if(f==0){printf("作业长度太大不能分配内存或内存已满\n");break;}display();printf("请输入作业名及长度");scanf("%s%d",jobname,&len);}return ;}void main(){getdata();display();mm();}。
全国自考(操作系统概论)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题 2. 多项选择题 3. 填空题 4. 简答题 5. 综合题单项选择题1.单道系统中经常采用的存储管理方式是( )存储管理。
A.固定分区B.单用户连续C.可变分区D.段页式正确答案:B解析:单用户连续存储管理适用于单用户情况,任何时刻主存储器中最多只有一道程序。
2.( )是指将作业不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需数据。
A.覆盖技术B.交换技术C.虚拟扩充D.物理扩充正确答案:B3.固定分区存储管理中,CPU在执行作业的指令时,均会核对不等式( )是否成立,若不成立,则产生地址越界中断事件,中止该指令的执行。
A.界限地址a≤绝对地址≤最大地址cB.下限地址≤绝对地址<上限地址C.基址寄存器内容≤绝对地址≤限长寄存器内容D.基址寄存器内容<绝对地址<限长寄存器内容正确答案:B解析:为了实现存储保护,处理器设置了一对寄存器,称为“下限寄存器”和“上限寄存器”。
处理器执行该作业的指令时必须核对:下限地址≤绝对地址<上限地址,如果上述不等式不成立,则为防止破坏其他分区中的信息,硬件产生“地址越界”中断事件,停止执行该指令,以达到存储保护的目的。
4.固定分区存储管理中,在分配主存区域时,要先查( ),选择标志为0的分区。
A.页表B.空闲区表C.段表D.分区分配表正确答案:D5.在( )方式中,可以有条件地采用移动技术来合并主存中的多个分区,以便形成大的空闲分区装入大作业。
A.固定分区存储管理B.可变分区存储管理C.页式存储管理D.页式虚拟存储管理正确答案:B6.虚拟存储器是A.可提高计算机运算速度的设备B.容量扩大了的主存C.实际上不存在的存储器D.可以容纳总和超过主存容量的多个作业同时运行的一个地址空间正确答案:D解析:虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时,就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
存储管理练习题一一、单项选择题1.采用可重入程序是通过使用()的方法来改善响应时间的。
A 减少用户数目B改变时间片长短C 加快对换速度D 减少对换信息量( D可重入程序是指该程序被某进程调用,但还未结束,又被另一个进程调用。
可重入程序是通过减少对换信息量来改善系统响应时间的。
可重入程序主要通过共享来使用同一块存储空间的,或者通过动态链接的方式将所需的程序段映射到相关进程中去,其最大的优点是减少了对程序段的调入调出。
由此来减少对换信息量。
)2.段式存储管理中,用于记录作业分段在主存中的起始地址和长度的是()A基址寄存器和很长寄存器 B 段表C 界限寄存器D 上、下限寄存器答案:B3.固定分区存储管理中,CPU在执行作业的指令时,均会核对不等式()是否成立,若不成立,则产生地址越界中断事件,中止该指令的执行。
A界限寄存器≤绝对地址≤最大地址B下限地址≤绝对地址<上限地址C 基址寄存器内容≤绝对地址≤限长寄存器内容D基址寄存器内容<绝对地址<限长寄存器内容答案:B固定分区存储管理(适合多道程序设计)1.分区的定义固定分区存储管理是把主存储器中可分配的用户区域预先划分成若干个连续区,每一个连续区称为一个分区。
2.固定分区存储管理的特点(1)分区大小固定(2)分区数目固定。
3.主存空间的分配与回收存储管理设置“分区分配表”来说明各分区的分配和使用情况。
表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。
标志位为“0”表示分区空间,非“0”表示分区已被占用。
当有作业要装入分区,存储管理分配主存区域时,根据作业地址空间的长度与标志为“0”的分区的长度比较,当有分区长度能容纳该作业时,则把作业装入该分区,且把作业名填到占用标志位上。
否则,该作业暂时不能装入。
作业运行结束后,根据作业名查分区分配表,把该分区的占用标志置成“0”以示空闲。
4.地址转换和存储保护因作业存放区域不会改变,可采用静态重定位方式把作业装入所在的分区号,且把该分区的下限地址和上限地址分别送入下限寄存器和上限寄存器中。
六安职业技术学院教案
2008~2009学年度第 1 学期编号__8__信息工程系计算机教研室任课教师曹维祥
课程名称操作系统
授课班级:应0701、02,维0701,软0701 授课日期:10.27~11.2
课型:理论课课时安排:2课时
教学内容:3.1 固定分区存储管理
3.2 可变分区存储管理
教学目标:1.掌握绝对地址、相对地址等概念
2.理解地址重定位的作用及静态和动态重定位的异同
3.掌握外部碎片、内部碎片的概念
4. 掌握单一连续分区、固定分区、可变分区存储管理
教学重点:1.绝对地址、相对地址等概念
2.地址重定位的作用
3. 外部碎片、内部碎片的概念
4.单一连续分区、固定分区、可变分区存储管理
教学难点:1.绝对地址、相对地址等概念
2.地址重定位的作用
教学方法:讲授
教学用具:无
教学过程:
[复习]
存储管理的功能
[导入新课]
[新课]
一、基本概念
1.存储器的层次
三级存储器结构(粗分):
(1)寄存器――当前要执行的指令或要处理的数据
(2)内存――正在运行的程序和相关数据
(3)外存――“资料”长期保存
CPU不能直接去存取外存上的信息,外存上的程序或数据必须先移到内存中,才能被CPU访问。
内存是一个大型的,由字节构成的一维数组,每一个单元都有自己的地址。
注:存储管理主要是对内存的管理、分配,涉及到的外存,也是对内存管理的支持。
2.地址重定位
(1)物理地址(绝对地址)
内存单元唯一的、真实的地址,CPU最终依据物理地址区分(存取)各单元。
(2)逻辑地址(相对地址)
程序中相对本程序的“0”(开始)编址所产生的地址。
(3)地址空间
地址集合
物理地址空间――存储空间
逻辑地址空间――地址空间
(4)地址重定位
相对地址转换为绝对地址的过程,称为地址重定位。
(5)为什么要地址重定位?
多道程序下,编写程序时无法事先知道内存区域中哪一部分是空闲的,哪一部分已被占用,也就无法在程序中直接使用物理地址,但程序不可避免的要使用地址。
这之间有个矛盾,解决方法是编写(编译)程序时,使用相对地址,而在程序执行时(或者执行之前)将相对地址转换成绝对地址。
例:调用子程序的操作最终转化为跳转指令,跳到该子程序所在的第一条指令的地址。
编写程序时并不知道这个子程序加载到内存的哪一个区域,也就无法直接指定该地址。
(6)地址的静态重定位
程序运行之前,为用户程序实行地址重定位的工作。
一般由操作系统的加载程序完成。
特点:
A)程序运行之前
B)可完全由软件(操作系统)来实现,不需要硬件支持
C)一次性集中完成
D)重定位后,不方便在内存中移动程序
二、单一连续分区管理
适用于单道系统,将内存分为2个连续区域:系统区、用户区。
整个用户区只加载一个用户程序,且为该程序独占
系统区:由操作系统占用
用户区:由用户程序占用
1.主存空间的分配与回收
(1)分配:首先,从作业队列中取出一个作业;判断作业的大小是否大于用户区的大小,若大于则作业不能装入,否则,可以把作业装入用户区。
它一次只能装入一个作业。
(2)回收:
作业一旦进入主存,就要等到它结束后才能释放主存,再装入第二个作业即可。
2.地址转换与存储保护
(1)地址转换
它采用静态重定位方式。
(2)存储保护
通过和界限寄存器的值进行比较,不满足时产生一个“地址越界”中断信号,由操作系统进行处理,以达到存储保护的目的。
注:只有用户程序与操作系统之间的保护,无用户程序之间的保护。
3.管理特点
(1)管理简单。
(2)资源利用率低。
不管用户区有多大,它一次只能装入一个作业,这样造成
了存储空间的浪费,使系统整体资源利用率不高。
4.大作业与小作业
小作业:内部碎片――分配给用户程序了,但用户程序未使用的内存区域。
(其它程序也不能使用)
大作业:覆盖技术
早期为程序设计人员提供的一种扩充内存的技术,其中心思想是允许一个作业的若干个程序段使用同一个存储区,被共用的存储区被称为“覆盖区”。
(程序可能不会同时用到全部的子程序,用到各个子程序时,将该子程序加载到该“覆盖区”)
5.交换
早期内存容量不够大,在小内存下实现具有“多道”的效果的技术。
将作业信息都存放在辅助存储器上,根据单一连续分区存储管理的分配策略,
每次只让其中的一个进入内存投入运行。
当运行中提出输入输出请求或分配给的时间片用完时,就把这个程序从内存储器“换出”到辅助存储器,把辅助存储器里的另一个作业“换入”内存储器运行。
这样,从宏观上看,系统中同时就有几个作业处在运行之中。
注:覆盖和交换均达到了“扩充”内存的目的。
三、固定分区存储管理
早期多道系统下采用的存储管理方式,系统启动后将用户内存区域划分为若干个大小不等的固定区域,每个区域称为一个分区,每个分区装入一个作业。
分区大小和数量均相对固定。
为什么大小不等?
方便装入大小不等的作业,减少内部碎片的影响。
1.主存空间的分配与回收
(1)采用的数据结构
一般设置了一张分区分配表。
分区分配表的内容包括:分区序号、起始地址、大小、状态。
状态栏的值为“0”表示分区空闲,可以装入作业;当装入作业后,其值改为作业名,表示这个分区被该作业占有。
(2)主存空间的分配
检查分区分配表,选择状态标志为“0”的分区,按某种分配策略(首次适应、最佳适应法)检查,若符合,则将作业装入该分区。
注:大作业不能装入。
(3)主存空间的回收
当作业运行结束时,根据作业名到分区分配表中进行检查,从状态栏的记录可知该作业占用的分区,把该分区的状态标志置成“0”,表示该分区就空闲了,可以用来装入新的作业。
2.地址转换与存储保护
(1)地址转换
采用静态重定位方式。
(2)存储保护
系统设置了一对寄存器,称为“下限寄存器”和“上限寄存器”记录当前在运行作业在主存储器中的下限和上限地址。
当CPU执行作业的指令时检查:“下限地址<=绝对地址<=上限地址”。
注:用户程序和操作系统之间;用户程序之间
3.特点
(1)简单
(2)还是存在内部碎片;大作业不能装入
注:为什么会存在内部碎片?
分区大小固定
若空闲的内存大小(不连续)大小大作业,为什么大作业还是不能装入?
现在只是内部碎片,该分区已分配给其它程序。
外部碎片时,原因:要求连续的存储空间。
四、可变分区存储管理
系统启动后不划分固定的分区,而是在作业要求装入主存时,根据作业的大小动态地划分分区,使分区的大小正好适应作业的要求。
各分区的大小是不定的,主存中分区的数目也是不定的。
1.外部碎片
内存区域中未分配给任何作业,但因区域过小,又不能分配给作业的区域。
可变分区下解决了内部碎片,但又出现外部碎片。
解决方法是合并空闲分区,
这又要求程序能在内存移动。
静态重定位的机制不适合程序在内存中的移动。
2.动态重定位
程序执行时,进行地址的转换。
也就是说执行指令时,对指令中的地址进行转换工作。
特点:
A) 程序运行时(时间)
B) 要硬件支持(谁做)
C) 指令中涉及到地址时(怎么做)
D) 方便在内存中移动程序(结果)
3.空闲区的合并
一般有两种合并时机:
(1)当大作业要求未满足时
(2)作业结束时
注:合并是不得已而为之(严重影响系统效率)
4.分区的管理与组织
操作系统按什么方式记录、管理内存的使用情况。
(1)表格法
第11页
(2)单链表
(3)双链表
表格法实现简单,但要专门保留一块区域存放表格,表格多大?(可以存放多少项?,多了――浪费;少了――不够用
注:数据结构的知识,顺序表、链表等及特点
数据的逻辑形式、物理组织形式。
5.空闲分区的分配算法
按什么策略分配分区。
(1)最先适应法
分配最先找到的、满足存储需求的那个空闲分区
(2)最佳适应法
分配能够满足存储需求的、最小的空闲分区
(3)最坏适应法
分配能够满足存储需求的、最大的空闲分区
最佳适应法每次分配后,有可能造成一个很小的外部碎片,经过若干次后,系统中会存在很多很小外部碎片,系统必须频繁的合并分区;最坏适应法分配后,剩下的空闲区域相对比较大,可能能够装入另一个作业,形成碎片机率相对小。
6.地址的重定位与存储保护
(1)重定位
动态重定位
(2)存储保护
上限寄存器与下限寄存器
第12页
[小结]
总结:
单道→多道:固定分区→可变分区
内部碎片→出现外部碎片为什么可解决内部碎片?
根据作业大小,动态分配区域
静态重定位→动态重定位程序加载到内存后,相对地址不需
改动,可移动
不一定是真的要移动(为移动而移动),如交换时,作业再调入内存时,不需要加载到同样的位置
单一连续分区、固定分区、可变分区都要求程序在内存中战用连续的内存区域。
若不要求占用连续存储区域,即可解决外部碎片。
[作业]
P81 2
[课后小结]
第13页。