存储管理
11分区存储组织
不同存储管理的一些分配算法。
存储区域原来是一片大的空白区域,系统把用户需要的大小分配给相应的内存。

作业1与作业2之间的空白区域是原来的程序执行完成后释放出来的
存储区间是动态分配的,分配的过程中考虑 在哪一个空白区域切割,有相应的算法考虑。
分配的空间尽可能在与他接近的空间去切割,这样能够让系统保留很多大块的空白区。
最佳适应算法的缺陷,运行一段时间后,系统的碎块会越来越多,碎块很小不好利用。
最差适应算法:把空白区域从小到大排列,给作业分配空间先考虑从大块中切割出来。
循环首次适应算法:把空闲区域连成环状,顺次来分配。
12页式存储、段式存储、段页式存储
页式存储组织
运行时候的空间琐碎,可能加起来足够大,但是却不能运行没因为无法一次性装入程序,因此段页式存储。
采取的机制是需要运行哪些块,哪些页,就调用哪些。这时候就需要页表来记录映射关系(用户程序的多少页对应内存多少块),可以解决超越内存容量的问题。
假设内存2G,可以运行4G程序,需要哪个程序页就调哪个.可以使内存内用率提高。
缺点,增加系统开销。页表记录程序,需要查表。
逻辑地址和物理地址的转换(常考)
页号块号需要查表才知道。
通过逻辑地址求物理地址,首先知道逻辑地址中那一部分是页号,页类地址,把页类地址的页号直接写下来,就是物理地址的页类地址。然后通过页号查找块号,把页号和页类地址拼接就是物理地址。


求物理地址
第一步,把逻辑地址中的页号和页类地址分开。
通过页面大小参数分开,页面大小4K=2^12,说明页类地址是12位,转成十六进制是3位。则页类地址A29,页号是5,对应的物理块号(页帧号)需要查表得知。
访问页面4不在内存,状态位代表在不在内存。
要进行页面的淘汰,页面的淘汰只能淘汰在内存中的。
(访问位为1不能淘汰,只能淘汰为0的)
段式存储组织
段式分割的方式与页式有较大差异,段式按逻辑结构划分的。
比如程序中,一个子函数为一段,第二个为一段。
段式的大小不要求一致。
页式的大小要求一致。
逻辑关系划分最大的好处是便于共享,利用率低,内存碎片大。
段表存的段号,段长,基地址。段在内存地址是从哪一个开始的空间段。

段页式存储

快表
放在Cache里面。放在内存中的是慢表。
快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
13页面淘汰算法
考试中考先进先出算法和最近最少使用算法。
广泛用于分层的存储体系当中。
针对每一个不同场景有不同最优算法,最优算法往往和其他方案对比。
先进先出算法:需要淘汰页面的时候,看内存中哪个页面最先进到内存就先淘汰谁。
抖动:分配给更多的资源,反而使效率降低。
最近最少使用算法:分配资源越多效率越高。

先进先出算法

行是要访问的页面的序列
列是内存的三个页面
首先访问4号页,由于之前没有内存,则会产生缺页,3号同理,1号页进入的时候就淘汰4号页,依次。

FIFO考虑的是谁先进来淘汰谁
LRU考虑的是访问的情况,最近都被访问的就不会被淘汰,淘汰最久没有被访问到的。
14页面淘汰算法练习题

没使用快表,说明每执行一次程序块,需要现在内存上查表,查完表才能读取相应的内存块。所以,每一个块要有两次内存的访问。6个程序块,所以12次内存。
默认指令无论占到几个块,都会一次性调用。
swap指令其实垮了两个页,swap 存放在1023单元中,一个k一个块,每一个单元就是一个字节,第一个块是从0到1023字节,1023是一个块的最后一个单元,只能存指令的一半。还有一个半放在1号页最开始的单元中。跨了两个页,按常规情况产生两次缺页中断,实际上对于指令不会产生两次缺页中断,会一次性读入。
而操作数A在2和3号页各有一半,会产生两次缺页中断。
总缺页中断是5次。
约定俗称就是指令只能产生一次缺页中断,操作数产生两次。
文件管理
15索引文件结构
索引文件是一种巧妙地结构,这种结构很有限,但是索引文件引入了一种扩展机制,很方便的把文件的容量扩大很多倍。
一般的索引文件结构是有13个节点,编号是从0-12,考试时候可能不是13个节点,会说明其他节点是什么情况,没有说明,默认13个节点。
索引节点分为直接间接索引,一级间接索引,二级间接索引,三级间接索引。
分几级间接索引考虑的是索引文件本身容量扩展的问题。
一个物理盘块4k.
假设13个块都是直接索引,这个文件最大4*13=52k
扩展容量:
规定0-9地址对应的盘块是直接索引,则大小4*10=40k
第十个节点指向的物理盘块不在传索引文件的直接内容,而是存地址,每个地址假设占4字节,一个物理盘块可以存多少地址,4k/4字节=1024 个地址。
10号盘块的索引节点的地址对应的物理盘块存1024个物理盘块的地址,每一个地址对应着一个物理盘块,物理盘块才存索引文件的内容。
一级间接索引可以存的容量4k*1024
第十一号节点是二级简介索引,十一号节点地址对应的盘块存地址,地址对应的下一级的盘块还存地址,最后指向物理盘块存内容。
二级间接索引可以存的容量4k*1024 *1024
三级同样,再乘1024


逻辑块号从0开始算的,
一个物理盘号1k,一个地址4个字节,1k/4=256个地址。
16文件和树型目录结构
主要考察相对路径和绝对路径的概念
很多系统dos,windows,linux种采用树形目录结构,在这种结构有绝对路径和相对路径之分。

固定电话的 本地拨号和外地拨号,外地拨号需要加区号,相当于相对路径。
17位示图法
空闲存储空间的管理;在磁盘上面会有大量的空间,需要把空闲空间管理起来。以便在某个文件申请相应的存储空间的时候有依据的分配给他相应的空间。
空闲区表法:用一个表来记录哪些地方是空闲的。
空闲链表法,把空闲区连接起来,要用的时候划出来
成组链接法;分组也分链。
位示图法考察的最多
1代表被占用,0表示空闲。整个存储空间分成很多物理块,位示图法会直观的表现出哪些是空闲的。如电影院座位,飞机座位等都是位示图。

例题
位示图的计算

一个字是32byte,4195号实际上是4296个物理块,从0开始的
4196/32=131.25
说明在第132个字中
要占用物理块,则为1.
第132个字的第0位置


注意:
第----字是从1开始算
多少位置是从0开始算
18数据传输控制方式
数据传输控制方式主要是指的内存和外设之间的数据传输控制问题,有几种方式可以解决,程序控制方案,程序中断方案,DMA方案,通道,输入输出处理机。
通道和输入输出处理机一般是用专用类似计算的来处理传输控制问题。一般不在讨论范围之内。。
程序控制方式又称程序查询方式,最低级的又是运用最多的一种方式,其中,外设处于 十分被动的方式,不会主动反馈,而是由CPU发出相应的查询指令,传输完就进行下一步的工作。 这中间容易遇到的问题是有时候外设完成任务却不会反馈,CPU发出指令时早已完成。
程序中断方式:很多方面和程序控制方式一样,但是主动性更强一点。如果外设完成程序,CPU会发一个中断指令,会进行下一步处理。效率比程序控制方式高。
DMA方式,直接存储控制方式,会有专门的DMA控制器,只要是外设和内存之间的数据交换,过程之中就会有控制器管控,CPU只要开头管控,例如初始化等。效率高很多。

19虚设备与Spooling技术
虚设备与Spooling技术用一个实例说明下,例如打印机。

Spooling技术在磁盘上开辟了缓存区,把要输入和输出的数据缓存起来,把外设的低速和内部系统的高效之间的瓶颈差异。
按队列顺序处理。
20微内核操作系统
把内核做的更小的操作系统。
主要体现在可靠性,高效性,安全性。

用户态出现什么问题都可以解决。
核心态出现问题比较困难。
哪些部分在用户态和核心态。