软考视频从8月20号开始看,看到9号看完了,到目前总结,期间一篇关于这个博客也没写,真心不知道写些什么东西啊.然后看了亚红同时期的博客,我不得不说,用心了啊!看人家,写了十多篇博客,篇篇图文并茂,你居然一篇也写不出来,我自我感觉挺那啥的.所以,我觉得我需要就软考内容写些东西.
不如就对于操作系统中存储管理的可变分区分配方式的四种方式进行一下,小小的说明,让我对这方面的内容更加了解.
这四种方式分别是(括号里是他们的简单说明),
最佳适应法(找最合适的内存自由区),
首次适应法(找第一个合适的,总是从开头),
最差适应法(找最大的),
循环首次适应法(首次的变种,不总从开头找,从上一个的后面开始找).
写的时候,差点写最差适应法是找最不合适的自由区,呵呵,看来还是不是很了解!那么,通过做题,应该可以加深理解,巩固知识.
首先最佳适应法,找最合适的.从图上可以看出,还有空余的空间为25K,28K,10K.而作业4要申请9K,扫一眼,看出最接近9K的是10K,所以结果如下图
如上图可以看出作业4分在了最后,可是还有一点蓝.10K-9K=1K,这1K的内存自由区,想要分配给某个作业很难,因为很少有作业只用1K的.所以最佳适应法的缺点是,会带来很多小的不能再使用的内存碎片.
然后第二个登场的是,首次适应法,这家伙从头开始找,找到一个合适的,就立刻分配成功了.所以它的优点就是,快速.
由于吧,题目中的这几个自由区,都比9K大,所以没什么挑的过程,直接第一个就25K了.而且25K-9K=16K,还会有16K的自由区.具体再看图.
又是一个然后,然后是最差适应法,注意一下,我不是找最不合适的,也不是找最后一个合适的.我是找最大的,这样就可以解决那个首次适应法存在的问题了,尽管麻烦了点.
我们做个比较吧,28K>25K>10K,28K胜出,恭喜28K,作业4是你的了.然后28K-9K=19K,还有这么大的空间,还可以分配给其他作业5啊什么的了.具体还是看图,
最后,终于到最后一个了,是我们的循环首次,就是从上一个后面开始找第一个合适的.
由于只有作业4,没有作业5什么的,所以他其实和首次适应是一样滴.但是如果有作业5的话,我们脑补好了,我太懒了,不愿意画.假设作业5申请17K内存.
在下图按循环首次分配好作业4的情况下,分配完了作业4,还是25K-9K=16K,还有16K的剩余空间.再分配作业5的空间,不是从最开始找,而是直接在分配好的作业4向下开始找.也就是16K,如果16K>作业5的话,就把作业5放这了.但是我假设作业5需要17K的内存,所以还得继续找,找到第一个比17K大的,也就是28K,才能分配成功.
如果还有作业6,从哪开始找?很好理解吧.不过万一我作业6=15K,应该是需要循环回来吧
最后的最后,这四种可变分区 分配方式其实很好懂的,我写这个也是因为它简单,毕竟我是打算开始写关于软考内容的博客嘛,不能给自己压力太大,要不然又不写了,咋办!
希望,从此,有个好的开始,呵呵呵!