操作系统——概念

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、虚拟存储管理

程序的局部性:时间局限性和空间局限性,前者指程序中的某条指令或某个存储单元一旦被执行或访问,则在不久的将来可能会再次发生(因为程序中存在大量的循环);

后者指一旦程序访问了某个存储单元,则不就得将来该存储单元附近的存储单元也最有可能被访问(因为程序是顺序执行的)。

虚拟存储器,从用户的角度看,是这样的一个系统,它所具有的主存容量比实际主存容量大得多,它是根据局部性原理,在一个作业运行之前只把部分程序和数据装入主存,其余部分留在磁盘,如果要访问的页或段未在贮存中(称为缺页或缺段),则将他们调入主存。

2、进程调度

在某些系统中一个作业从提交到完成需要经历高、中、低三级调度

高级调度——他决定输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程

中级调度——他决定处于交换区中的哪个就绪进程可以调入主存,以便直接参与CPU 的竞争

低级调度——他决定处于主存中的哪个进程使用CPU。

存储管理的功能:主存的分配和回收、提高主存的利用率、存储保护、主存扩充。

可变分区的四种算法:最佳适应(保留最大空白区)、最差适应(不易产生碎片)、首次适应(最易合并相邻空白区)、循环首次适应。解决碎片的方法是拼接即紧凑。

地址重定位是逻辑地址被转成主存物理地址的过程。可重定位分区是解决碎片问题的简单有效的方法。

分页存储管理:页表的作用是实现从页号到物理块号的地址映射。地址变换机构的基本任务是利用页表把用户程序中的逻辑地址变换成主存中的物理地址。

快表:硬件实现,有一组联想高速存储器组成。两级页表机制:外层页表即页目录存放页表的物理地址,内层页表页的物理块号。

分段存储管理:便于编程、分段共享、分段保护、动态链接、动态增长。段页式存储管理。

虚拟存储管理:根据程序运行局部性原理,具有请求调入和置换功能;

最差适应算法(Worst Fit):

它从全部空闲区中找出能满足作业要求的、且大小最大的空闲分区,从而使链表中的结点大小趋于均匀,适用于请求分配的内存大小范围较窄的系统。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按大小从大到小进行排序,自表头开始查找到第一个满足要求的自由分区分配。该算法保留小的空闲区,尽量减少小的碎片产生。

最佳适应算法(Best Fit):

它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。该算法保留大的空闲区,但造成许多小的空闲区。

Best fit算法等价于装箱问题,举例如下:

装箱问题:有体积为V的箱子N个,体积为Vi的物品M个,求使得物品全部能够装入箱子,箱子数量的最小值。

假设 V=6 M=10,V1,V2,...,V10分别为:3 4 4 3 5 1 2 5 3 1。计算过程如下:

第一步按物品体积降序排序:5 5 4 4 3 3 3 2 1 1

第二步:取未装箱的最大值5装入第一个箱子。

第三步:判断第一个箱子是否已满,不满且剩余空间为1,搜寻剩下体积小于等于1的物品填入箱子1,箱子1填满。

第四步:重复第二,第三步,直到所有物品装入箱子为止,得到箱子数量为6.

6即时本例N的最小值。

首次适应算法(First Fit):

从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。

循环首次适应算法(Next Fit):

该算法是首次适应算法的变种。在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。

操作系统原理,页式存储管理地址转换问题

若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。

页号块号

0 2

1 3

2 1

3 6

页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示。若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得:p=int [A/L] d=A mod L;其中,int是取整函数(取数值的整数部分),mod是取余函数(取数值的余数部分)。

物理地址=块的大小(即页的大小L)´块号f+页内地址d

设页号为p,页内位移为d,则:

(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查页表第0页在第2块,所以物理地址为1024´2+1011=3059。

(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查页表第2

页在第1块,所以物理地址为1024+100=1124。

(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查页表第3页在第6块,所以物理地址为1024´6+928=7072。

(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因页号超过页表长度,该逻辑地址非法。

UNIX文件的实现——索引节点(转)

2011-01-26 19:12:28| 分类:软件设计师| 标签:|字号大中小订阅

POSIX没有强制磁盘上的文件采取任何特定的表示方法,但是传统的UNIX文件都是按照改进的树状结构来实现的。目录项中包含一个文件名和一个定长结构的引用(索引节点)。索引节点包含与文件长度、文件位置、文件所有者、创建时间、最后访问时间、最后修改

时间、文件权限有关的信息。如图1所示:

图1

除了基本信息,还包含指向文件中前几个数据块的指针。如果文件很大,就需要使用到间接指针了。

一级间接指针是一个指向指针块的指针,而指针块中的指针是指向附加数据块的;

二级间接指针是一个执行间接知真块的指针;

三级间接指针块包含了一个指向二级间接指针块的指针。

相关文档
最新文档