存储器管理

连续分配存储管理方式

基本思想:

为每一个用户程序分配一个地址连续的内存块,程序中代码或数据的逻辑地址相邻,对应存储单元物理地址也相邻。
有四类分配方法:

单一连续分配

内存分为两个连续区域:系统区,用户区。系统区为操作系统,用户区装载一道应用程序。

固定分区分配

内存分配方法:把内存划分为若干个固定大小的连续分区。一旦划分好,在系统运行期间不再重新划分。

动态分区分配

1. 内存分配方法:系统存储器不预先划分分区,在每次作业装入时,根据作业大小要求,从可用存储空间中切一块大小与所要求相近的存储区分配给作业。
2. 动态分区管理:设置分区表、或分区链表等数据结构,管理分区起始地址、大小、分配状态等.

3. 内存分配(也适合固定分区)

最先匹配法(first-fit)(首次适配算法):空闲区按地址从小到大排列,拿在空闲区表中第一个符合要求的分区,从中切出要求大小的内存块分配出去.
  • 好处:较大的空闲分区可以被保留在内存高端。
  • 不足:但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。
最佳匹配法(best-fit):

空闲区按其大小从小到大排列,找到其大小与要求相差最小的空闲分区(即第一个满足要求的分区进行分配)较大的空闲分区可以被保留但会形成较多无法利用的较小分区(外部碎片)

最差匹配法(worst-fit):

空闲区按其大小从大到小排列,找到最大的空闲分区(即空闲区表中第一个分区),从中切出要求大小的内存块,基本不留下小空闲分区,但较大的空闲分区不被保留。

4、内存回收

作业进程运行完毕释放内存时,存储管理程序要收回已使用完毕的空闲区,并将其插入空闲分区表或空闲分区链表空闲区拼接问题。如果回收分区与某空闲分区相邻,则应该进行拼接,以把不连续的零散空闲区集中起来。
a) 上下两相邻分区都是空闲区:
b) 上相邻区是空闲区;
c) 下相邻区是空闲区;
d) 两相邻区都不是空闲区:


image.png

5.地址转换(地址重定位、地址映射)

MMU设置一个重定位寄存器(或称基址寄存器),用来存放程序(数据)在内存中的起始地址,指令执行时,处理机给出相对地址,MMU按以下方法计算绝对地址是:绝对地址=相对地址+重定位寄存器


image.png

6.存储保护

存储保护的目的是限制用户作业(或用户进程的访存范围仅限于分配给作业的存储块地址范围。

动态可重定位分配

分页存储管理方式

分段存储管理方式

银行家算法
1.判断有没有分配足够资源的能力
2.预分配
3.安全性检查

页面置换算法:

  1. 最佳置换算法(OPT)
  • 算法思想:总是选择以后永不使用的,或许是在最长(未来)时间内不再被访问的页面,进行替换


    OPT.jpg

2.先进先出页面置换算法(FIFO)
算法思想:当需要调入新的页面,但无可用空闲物理块时,总是选择在内存中驻留时间最长的页并予以淘汰,用腾出的物理块来载入新的页面
访问顺序7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
M=3
淘汰

处理机调度算法:

①处理机利用率(CPU utilization):
一般越高越好
②作业周转时间(turnaround):
批处理用户从作业提交给系统开始,到作业完成为止的时间间隔称作业周转时间,作业Ji的周转时间为Ti,则平均周转时间为 。


平均周转时间.png

带权周转时间是作业的周转时间Ti与系统为它提供服务的时间TSi之比,方便比较不同规模作业获得服务质量,平均带权周转时间是评价系统服务质量的重要指标


平均带权周转时间.png

③系统吞吐量(throughout):吞吐量是指在单位时间内系统所完成的作业数。对于很多批处理系统来说,吞吐量越高,经济效益越好。
④响应时间(response time):交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间,响应时间越短,用户体验性越好。

1.FCFS先来先服务
算法思想:调度最先进入就绪队列的作业或进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。
采用FCFS调度算法进行调度给出各个作业的开始时间、结束时间、周转时间、带权周转时间,计算平均周转时间和平均带权周转时间

2.短作业优先SJF
算法思想:该算法从就绪队列或后备队列中选出所需CPU时间最短的进程或作业,调度运行或为之分配处理机。

3 响应比最高者优先(HRRF)算法
响应比=1+等待时间/估计运行时间
以下四个作业先后到达系统进入调度:
作业名 到达时间 所需CPU时间
作业1 0 20
作业2 5 15
作业3 10 5
作业4 15 10

HRRF算法.png
  • 开始只有作业1,被选中执行时间20ms;
  • 作业1执行完毕,作业2、3、4响应比依次为1+15/15、1+10/5、1+5/10,作业3被选中,执行时间5ms;
  • 作业3执行完毕,作业2、4响应比依次为1+20/15、1+10/10,作业2被选中,执行时间15ms;
  • 作业2执行完毕,作业4被选中,执行时间10ms;
    平均作业周转时间T = (20+15+35+35)/4 = 26.25
    平均带权作业周转时间W = (20/20+15/5+35/15+35/10)/4 = 2.46

4 基于优先级调度法
算法思想: 这种算法是根据确定的优先级来选取作业,每次总是选择优先数高的作业。

5.最短剩余时间优先(SRTF,Shortest Remaining Time First)
算法思想:把SJF算法改为抢占模式,又称抢占式短作业优先算法,一个新作业进入就绪状态,如果新作业需要的CPU时间比当前正在执行的作业剩余下来还需的CPU时间短,SRTF强行赶走当前正在执行作业。

进程调度算法:

非抢占调度方式:

在批处理系统环境下,一个作业一旦投入运行,就认为一直占有处理机,直到作业运行结束,或因执行I/O等原因,主动放弃CPU,这种方式具有实现简单、系统开销小的好处,但在分时环境下,可能会导致用户操作长时间得不到响应,不太适合分时系统

抢占调度方式:

一旦有新的进程到来或就绪,如果其优先级足够高,允许其请求将暂停当前进程执行,夺走CPU,让优先级更高尽快获得执行的机会,被抢占进程回到就绪队列。这种调度方式能使紧迫性和重要性更高的进程,得到快速响应,适合分时系统环境

时间片轮转调度算法:
时间片轮转调度算法RR.png

1.算法思想:
OS为每个进程分配一个时间片(time slice, 通常为10-100ms之间),每个进程在所分配到的时间内拥有CPU使用权。当某个正在执行的进程其所分配的时间片用完时,OS强行从该进程夺取CPU使用权,并将该进程重新放到就绪队列末尾。

优先权调度算法HPF(Highest-Priority-First):

算法思想:为每个进程设置一个由数字表示的优先级,作为进程竞争CPU的能力,系统总是选择优先级高进程投入运行。

1.非抢占式优先级算法
算法思想:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直到完成或因发生某事件而放弃处理机时,系统方可重新分配处理机。
2.抢占式优先级算法
算法思想:系统把处理机分配给就绪队列中优先权最高的进程,使之执行。但在其执行期间,只要出现了另一个优先权更高的进程,进程调度程序就立即停止当前进程的执行,重新将处理机分配给新到的优先权最高的进程。

(3)多级反馈队列调度算法MFQ
1.算法思想:

  • 设置多个就绪队列,并为每个队列赋予不同的优先级。队列1的优先级最高,其余队列逐个降低
  • 各队列中进程时间片的大小各不相同,优先级越高,时间片就越短
  • 新进程进入总是插入队列1的末尾,按FCFS等待调度。若一个时间片未完成,超时后转入队列2的末尾,按FCFS再次等待调度,如此下去,如果进入队列n则按RR算法调度执行。
  • 仅当队列1为空时,才调度队列2中的进程运行。若队列I中的进程正执行,此时有新进程进入优先级较高的队列中,则新进程将抢占运行,原进程转移至下一队列


    多级反馈队列.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • 存储器的层次结构‘ 多层结构的存储器系统 存储器的多层结构。 存储层次至少应具有三级:最高层为 CPU 寄存器,中...
    傻傻傻瓜_d432阅读 858评论 0 0
  • 存储器管理 存储器的层次结构 存储器的层次结构:寄存器-高速缓存-主存-磁盘缓存-磁盘-可移动存储介质 可执行存储...
    颜洛滨阅读 913评论 0 2
  • 存储器的多层结构CPU寄存器(寄存器),主存(高速缓存,主存储器,磁盘缓存),辅存(固定磁盘,可移动存储介质)寄存...
    我好菜啊_阅读 1,041评论 0 0
  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,283评论 1 22
  • 下载APP 阅读本文更深度报道 文|李星 来源|靠谱的阿星“如果阿里不惜一切代价收购头条的话,这才是腾讯最不愿意看...
    互联网商业解读阅读 1,742评论 0 0