存储管理
1.试述计算机系统中的存储器层次。为什么要配置层次式的存储器?
答:(1)计算机系统的存储器层次结构自上而下依次分为:寄存器、高速缓存、内存储器、磁盘缓存、可移动存储介质5层。
存储介质的访问速度由下而上越来越快,容量越来越小,价格越来越高。其中,寄存器、缓存和内存均属于操作系统存储管理的管辖范畴,掉电后他们存储的信息不复存在,磁盘和磁带属于文件管理和设备管理的管辖对象,他们所存储的信息将持久性保存。
(2)多层次的存储体系十分有效和可靠,能达到很高的性能价格比。
2.什么是逻辑地址、物理地址?简述不同编译、链接、装载与地址定位过程。
答:(1)逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
(2)程序编译:源程序经过编译程序或汇编程序的处理生成目标模块(也成目标代码)
(3)程序链接:
【1】静态链接:静态链接是在程序装载到内存和运行前,就已将他的所有目标模块及所需的库函数进行链接和装配成一个完整的可执行程序且此后不在拆分,静态方式使得链接过程和装载过程相对独立,链接程序和装载程序可独立设计,但不支持内存空间的中目标模块的单副本、不利于模块共享。
【2】动态链接:动态链接是指在程序装入内存前并未事先进行程序各目标模块的链接,而是在程序装载时一边装载一边链接,生成一个可执行程序。
【3】运行时链接:运行时链接是指将某些目标模块或库函数的链接推迟到执行时才进行。
(4)程序装载
【1】绝对装载。装载模块中的指令地址始终与其内存中的地址相同,即在模块中出现的所有地址都是内存的绝对地址。
【2】可重定位装载。根据内存当时使用情况,决定将装载代码模块放入到内存的物理地址,模块内使用的地址都是相对地址。
【3】动态运行时装载。为了提高内存使用率。装入内存的程序可换出到磁盘上,适当时候再换入到内存中,对换前后程序在内存中的位置可能不同,即允许进程的内存映像在不同时候处于不同位置,此时模块内使用的地址必为相对地址。
(5)程序定位:
【1】静态地址重定位。由装载程序实现装载代码模块的加载和地址转换,把他装入分配给进程的内存指定区域,其中所有逻辑地址修改成内存物理地址,称静态地址重定位。
【2】动态地址重定位。由装载程序实现装载代码模块的加载,把他装入分配给进程的内存指定区域,但对链接程序处理过的应用程序的逻辑地址则不做任何修改,程序内存气质地址被置入硬件专用寄存器--重定位寄存器。
【3】运行时链接地址重定位。对于静态和动态地址重定位装载方式而言,装载代码模块是由整个程序的所有目标模块及库函数目标模块经链接和整合构成的可执行程序,即在程序启东市指定已经完成了程序的链接过固定分区管理的缺点是什么?
3.固定分区管理的缺点是什么?
(1)由于预先已经规定好分区大小,使得大作业无法装入,用户不得不采用覆等技术加以补救,这样就加重了用户负担。
(2)内存空间利用率不高,作业很少会恰到好处填满分区。
(3)如果一个作业在运行过程中要求动态扩充内存空间,采用固定分区是相当困难的。
(4)分区数目实在系统初起时确定的,这就会限制多道运行的程序道数,特别应分分时系统交互型用户及内存需求变化很大的情景;
4.简述固定分区存储管理和可变分区存储管理的区别、
(1)固定分区
【1】基本思想:固定不变的分区
【2】数据结构:存储分配表
【3】作业进入固定分区排队策略:1、每个分区一个队列。2、所有作业一个队列
(2)可变分区
【1】基本思想:存储管理是按作业的实际大小来划分分区的,且分区个数也是随机的,实际多个作业对内存的共享,进一步提高内存资源利用率。
【2】分配算法:1、最先适应分配算法。2、下次适应分配算法。3、最先适应分配算法。4、最欢适应分配算法。5、快速适应分配算法
5.简述固定分区存储管理和可变分区存储管理的区别
固定分区存储管理是把主存器中的可分配的用户区域预先划分若干个连续区,每个连续去称为分区,一旦划分好后,主存储器中分区的个数就固定了。各个分区的大小可以相同,也可以不同,但每个分区的大小固定不变,每个分区可以装入一个作业,所以当有多个分区时,就可同时在每个愤分区装入一个作业,但不允许多个作业同时存入在同一个分区中
可变分区存储管理不是预先把主储存器中的用户区域划分区,而是在作业要求装入主存储器时,根据作业需要的主存空间大小和当时主存空间使用情况来决定是否为作业分配一个分区,因此分区的长度不是预先固定的,而是按作业的实际需求来划分的;分区的个数也不是预先确定的,而是装入的作业数来决定的。
6.某系统采用可变分区方式管理主存储器,在主存分配情况如图所示时,有4个作业要求装入主存,它们各自所需的主存空间为:J1:8KB,J2:15KB,J3:30KB,J4:115KB,系统不允许移动。
用最先适应分配算法,按2341的作业顺序装入,描述作业装入内存的过程。